mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-12 23:14:18 +01:00
Merge remote-tracking branch 'origin/support/3.2' into develop
This commit is contained in:
30
js/ckeditor/build/ckeditor.d.ts
vendored
30
js/ckeditor/build/ckeditor.d.ts
vendored
@@ -1,30 +0,0 @@
|
||||
/**
|
||||
* @license Copyright (c) 2014-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
||||
*/
|
||||
import { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';
|
||||
import { Alignment } from '@ckeditor/ckeditor5-alignment';
|
||||
import { Bold, Italic, Strikethrough, Subscript, Superscript, Underline } from '@ckeditor/ckeditor5-basic-styles';
|
||||
import { BlockQuote } from '@ckeditor/ckeditor5-block-quote';
|
||||
import { CodeBlock } from '@ckeditor/ckeditor5-code-block';
|
||||
import type { EditorConfig } from '@ckeditor/ckeditor5-core';
|
||||
import { Essentials } from '@ckeditor/ckeditor5-essentials';
|
||||
import { FontBackgroundColor, FontColor, FontFamily, FontSize } from '@ckeditor/ckeditor5-font';
|
||||
import { Heading } from '@ckeditor/ckeditor5-heading';
|
||||
import { Highlight } from '@ckeditor/ckeditor5-highlight';
|
||||
import { HorizontalLine } from '@ckeditor/ckeditor5-horizontal-line';
|
||||
import { Image, ImageCaption, ImageResize, ImageStyle, ImageToolbar, ImageUpload, PictureEditing } from '@ckeditor/ckeditor5-image';
|
||||
import { Indent } from '@ckeditor/ckeditor5-indent';
|
||||
import { Link, LinkImage } from '@ckeditor/ckeditor5-link';
|
||||
import { List, ListProperties } from '@ckeditor/ckeditor5-list';
|
||||
import { Mention } from '@ckeditor/ckeditor5-mention';
|
||||
import { Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableToolbar } from '@ckeditor/ckeditor5-table';
|
||||
import { Undo } from '@ckeditor/ckeditor5-undo';
|
||||
import { RemoveFormat } from '@ckeditor/ckeditor5-remove-format';
|
||||
import InsertCarriageReturnAfterBlock from "./plugins/insert-carriage-return-after-block/insert-carriage-return-after-block.plugin";
|
||||
import './resources/styles/default-theme.css';
|
||||
declare class Editor extends ClassicEditor {
|
||||
static builtinPlugins: (typeof Alignment | typeof Superscript | typeof Subscript | typeof Bold | typeof Italic | typeof Strikethrough | typeof Underline | typeof BlockQuote | typeof CodeBlock | typeof Undo | typeof Essentials | typeof FontBackgroundColor | typeof FontColor | typeof FontFamily | typeof FontSize | typeof Heading | typeof Highlight | typeof HorizontalLine | typeof Image | typeof ImageCaption | typeof ImageResize | typeof ImageStyle | typeof ImageToolbar | typeof ImageUpload | typeof Indent | typeof Link | typeof LinkImage | typeof List | typeof ListProperties | typeof Mention | typeof Table | typeof TableCaption | typeof TableCellProperties | typeof TableColumnResize | typeof TableProperties | typeof TableToolbar | typeof RemoveFormat | typeof InsertCarriageReturnAfterBlock | typeof PictureEditing)[];
|
||||
static defaultConfig: EditorConfig;
|
||||
}
|
||||
export default Editor;
|
||||
4
js/ckeditor/build/ckeditor.js
vendored
4
js/ckeditor/build/ckeditor.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
96
js/ckeditor/build/compiled-theme.scss
Normal file
96
js/ckeditor/build/compiled-theme.scss
Normal file
File diff suppressed because one or more lines are too long
4
js/ckeditor/build/maximize.plugin.d.ts
vendored
4
js/ckeditor/build/maximize.plugin.d.ts
vendored
@@ -1,4 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
export declare class Maximize extends Plugin {
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
/**
|
||||
* AppendITopClasses Plugin.
|
||||
*
|
||||
* Appends ibo-is-html-content class
|
||||
*/
|
||||
export default class AppendITopClasses extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
import { Plugin, type Editor } from 'ckeditor5/src/core.js';
|
||||
/**
|
||||
* DetectChanges Plugin.
|
||||
*
|
||||
*/
|
||||
export default class DetectChanges extends Plugin {
|
||||
constructor(editor: Editor);
|
||||
init(): void;
|
||||
static get pluginName(): string;
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
import { HtmlDataProcessor, type ViewDocument, type ViewDocumentFragment } from 'ckeditor5/src/engine.js';
|
||||
export default class iTopDataProcessor extends HtmlDataProcessor {
|
||||
/**
|
||||
* HTML data processor used to process HTML if we detect changes
|
||||
* @private
|
||||
*/
|
||||
private _htmlDP;
|
||||
/**
|
||||
* Initial value of the editor, we'll return it if we don't detect any changes
|
||||
* @private
|
||||
*/
|
||||
private readonly _initialValue;
|
||||
/**
|
||||
* Transformed initial value of the editor, we'll use it to detect changes
|
||||
* @private
|
||||
*/
|
||||
private _transformedInitialValue;
|
||||
/**
|
||||
* Creates a new instance of the Markdown data processor class.
|
||||
*/
|
||||
constructor(document: ViewDocument, initialValue: string, transformedInitialValue: string);
|
||||
setTransformedInitialValue(transformedInitialValue: string): void;
|
||||
toData(viewFragment: ViewDocumentFragment): string;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
/**
|
||||
* EditorFeatures Plugin.
|
||||
*
|
||||
* - trigger update event when editor is ready
|
||||
* - dispatch submit event on the closest editor form when Ctrl+Enter pressed
|
||||
*
|
||||
*/
|
||||
export declare class EditorFeatures extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
/**
|
||||
* EditorFeatures Plugin.
|
||||
*
|
||||
* - trigger update event when editor is ready
|
||||
* - dispatch submit event on the closest editor form when Ctrl+Enter pressed
|
||||
* - converter for mentions
|
||||
* - appends ibo-is-html-content class
|
||||
*/
|
||||
export default class EditorFeatures extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
/**
|
||||
* IBOCompatibility Plugin.
|
||||
*
|
||||
* - exclude ck-reset_all for mention dropdown
|
||||
* - appends ibo-is-html-content class
|
||||
*/
|
||||
export declare class IBOCompatibility extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): Promise<unknown> | void | undefined | null;
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
import { Command } from 'ckeditor5/src/core';
|
||||
/**
|
||||
* InsertHtmlCommand Command.
|
||||
*
|
||||
*/
|
||||
export default class InsertHtmlCommand extends Command {
|
||||
execute(sContent: string): void;
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
/**
|
||||
* InsertHtml Plugin.
|
||||
*
|
||||
*/
|
||||
export default class InsertHtml extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
export declare class ITopMention extends Plugin {
|
||||
init(): Promise<unknown> | void | undefined | null;
|
||||
static get pluginName(): string;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
/**
|
||||
* KeyboardShortcut Plugin.
|
||||
*
|
||||
* - Dispatch submit event on the closest editor form when Ctrl+Enter pressed
|
||||
*/
|
||||
export default class KeyboardShortcut extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
export declare class Maximize extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
export default class Maximize extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
export declare class MentionConverter extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): Promise<unknown> | void | undefined | null;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
/**
|
||||
* MentionsMarkup Plugin.
|
||||
*
|
||||
* - Converter for mentions
|
||||
*/
|
||||
export default class MentionsMarkup extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
||||
* For licensing, see LICENSE.md.
|
||||
*/
|
||||
import { View, LabeledFieldView, ButtonView } from '@ckeditor/ckeditor5-ui';
|
||||
import { Locale } from '@ckeditor/ckeditor5-utils';
|
||||
export default class FormView extends View {
|
||||
abbrInputView: LabeledFieldView;
|
||||
titleInputView: LabeledFieldView;
|
||||
saveButtonView: ButtonView;
|
||||
cancelButtonView: ButtonView;
|
||||
childViews: any;
|
||||
constructor(locale: Locale);
|
||||
render(): void;
|
||||
focus(): void;
|
||||
_createInput(label: string): LabeledFieldView<import("@ckeditor/ckeditor5-ui").InputTextView>;
|
||||
_createButton(label: string, icon: string, className: string): ButtonView;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
import { Dialog } from '@ckeditor/ckeditor5-ui';
|
||||
/**
|
||||
* ObjectShortcut Plugin.
|
||||
*
|
||||
*
|
||||
*/
|
||||
export declare class ObjectShortcut extends Plugin {
|
||||
static get pluginName(): string;
|
||||
get requires(): (typeof Dialog)[];
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
import { Plugin } from '@ckeditor/ckeditor5-core';
|
||||
export default class ObjectShortcutEditing extends Plugin {
|
||||
init(): void;
|
||||
_defineSchema(): void;
|
||||
_defineConverters(): void;
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
/**
|
||||
* @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
|
||||
* For licensing, see LICENSE.md.
|
||||
*/
|
||||
import { View, LabeledFieldView, ButtonView } from '@ckeditor/ckeditor5-ui';
|
||||
import { Locale } from '@ckeditor/ckeditor5-utils';
|
||||
export default class FormView extends View {
|
||||
oLabelInputView: LabeledFieldView;
|
||||
oClassInputView: LabeledFieldView;
|
||||
oReferenceInputView: LabeledFieldView;
|
||||
oSaveButtonView: ButtonView;
|
||||
oCancelButtonView: ButtonView;
|
||||
oChildViews: any;
|
||||
constructor(oLocale: Locale);
|
||||
render(): void;
|
||||
focus(): void;
|
||||
_createInput(sLabel: string): LabeledFieldView<import("@ckeditor/ckeditor5-ui").InputTextView>;
|
||||
_createButton(sLabel: string, sIcon: string, sClassName: string): ButtonView;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
import { Plugin } from '@ckeditor/ckeditor5-core';
|
||||
import ObjectShortcutUI from './object-shortcut.ui';
|
||||
export default class ObjectShortcut extends Plugin {
|
||||
static get requires(): (typeof ObjectShortcutUI)[];
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
import { Plugin } from '@ckeditor/ckeditor5-core';
|
||||
import { ContextualBalloon } from '@ckeditor/ckeditor5-ui';
|
||||
import FormView from './object-shortcut.form-view';
|
||||
import './styles.css';
|
||||
export default class ObjectShortcutUI extends Plugin {
|
||||
static get requires(): (typeof ContextualBalloon)[];
|
||||
oBalloon: ContextualBalloon | undefined;
|
||||
oFormView: FormView | undefined;
|
||||
init(): void;
|
||||
_createFormView(): FormView;
|
||||
_showUI(): void;
|
||||
_hideUI(): void;
|
||||
_getBalloonPositionData(): {
|
||||
oTarget: (() => Range) | null;
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
/**
|
||||
* TriggerUpdateOnReady Plugin.
|
||||
*
|
||||
* - Trigger update event when editor is ready
|
||||
*/
|
||||
export default class TriggerUpdateOnReady extends Plugin {
|
||||
static get pluginName(): string;
|
||||
init(): void;
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
/* mention list ui customization */
|
||||
:root {
|
||||
--ck-color-list-button-on-background: #EFF0EF;
|
||||
--ck-color-list-button-on-background-focus: #EFF0EF;
|
||||
--ck-color-list-button-hover-background: #EFF0EF;
|
||||
--ck-color-list-button-on-text: black;
|
||||
|
||||
--ck-z-default: 9999;
|
||||
|
||||
/* Custom variables overloaded by backoffice or portals */
|
||||
--ck-text-tiny-font-size: 0.7rem;
|
||||
--ck-text-small-font-size: 0.85rem;
|
||||
--ck-text-big-font-size: 1.4rem;
|
||||
--ck-text-huge-font-size: 1.8rem;
|
||||
}
|
||||
|
||||
/** text size classes */
|
||||
|
||||
.text-tiny {
|
||||
font-size: var(--ck-text-tiny-font-size);
|
||||
}
|
||||
|
||||
.text-small {
|
||||
font-size: var(--ck-text-small-font-size);
|
||||
}
|
||||
|
||||
.text-big {
|
||||
font-size: var(--ck-text-big-font-size);
|
||||
}
|
||||
|
||||
.text-huge {
|
||||
font-size: var(--ck-text-huge-font-size);
|
||||
}
|
||||
|
||||
/** marker classes */
|
||||
|
||||
.marker-yellow {
|
||||
background-color: var(--ck-highlight-marker-yellow);
|
||||
}
|
||||
|
||||
.marker-green {
|
||||
background-color: var(--ck-highlight-marker-green);
|
||||
}
|
||||
|
||||
.marker-pink {
|
||||
background-color: var(--ck-highlight-marker-pink);
|
||||
}
|
||||
|
||||
.marker-blue {
|
||||
background-color: var(--ck-highlight-marker-blue);
|
||||
}
|
||||
1
js/ckeditor/build/translations/ti.js
Normal file
1
js/ckeditor/build/translations/ti.js
Normal file
File diff suppressed because one or more lines are too long
128
js/ckeditor/package-lock.json
generated
128
js/ckeditor/package-lock.json
generated
@@ -42,6 +42,7 @@
|
||||
"@ckeditor/ckeditor5-dev-utils": "~32.1",
|
||||
"@ckeditor/ckeditor5-theme-lark": "~41.4",
|
||||
"css-loader": "~5.2",
|
||||
"mini-css-extract-plugin": "^2.9.0",
|
||||
"postcss": "~8.4",
|
||||
"postcss-loader": "~4.3",
|
||||
"raw-loader": "~4.0",
|
||||
@@ -1547,6 +1548,45 @@
|
||||
"url": "https://github.com/sponsors/epoberezkin"
|
||||
}
|
||||
},
|
||||
"node_modules/ajv-formats": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
|
||||
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ajv": "^8.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"ajv": "^8.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"ajv": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/ajv-formats/node_modules/ajv": {
|
||||
"version": "8.17.1",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
|
||||
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"fast-uri": "^3.0.1",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
"require-from-string": "^2.0.2"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/epoberezkin"
|
||||
}
|
||||
},
|
||||
"node_modules/ajv-formats/node_modules/json-schema-traverse": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/ajv-keywords": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
|
||||
@@ -2570,6 +2610,12 @@
|
||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/fast-uri": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz",
|
||||
"integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/fastest-levenshtein": {
|
||||
"version": "1.0.16",
|
||||
"resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
|
||||
@@ -3382,6 +3428,79 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/mini-css-extract-plugin": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz",
|
||||
"integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"schema-utils": "^4.0.0",
|
||||
"tapable": "^2.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/webpack"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"webpack": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mini-css-extract-plugin/node_modules/ajv": {
|
||||
"version": "8.17.1",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
|
||||
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"fast-uri": "^3.0.1",
|
||||
"json-schema-traverse": "^1.0.0",
|
||||
"require-from-string": "^2.0.2"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/epoberezkin"
|
||||
}
|
||||
},
|
||||
"node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
|
||||
"integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fast-deep-equal": "^3.1.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"ajv": "^8.8.2"
|
||||
}
|
||||
},
|
||||
"node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
||||
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
|
||||
"integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/json-schema": "^7.0.9",
|
||||
"ajv": "^8.9.0",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"ajv-keywords": "^5.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 12.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/webpack"
|
||||
}
|
||||
},
|
||||
"node_modules/minimatch": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||
@@ -4477,6 +4596,15 @@
|
||||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/require-from-string": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
|
||||
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/requires-port": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"@ckeditor/ckeditor5-dev-utils": "~32.1",
|
||||
"@ckeditor/ckeditor5-theme-lark": "~41.4",
|
||||
"css-loader": "~5.2",
|
||||
"mini-css-extract-plugin": "^2.9.0",
|
||||
"postcss": "~8.4",
|
||||
"postcss-loader": "~4.3",
|
||||
"raw-loader": "~4.0",
|
||||
|
||||
@@ -74,6 +74,70 @@ const transformationsConfig = {
|
||||
remove: [ 'ellipsis' ]
|
||||
}
|
||||
|
||||
// Colors to be used in the different palettes (font color, table cell background color, table cell border color, ...)
|
||||
const colorsPalette = [
|
||||
{
|
||||
color: '#000000',
|
||||
label: 'Black'
|
||||
},
|
||||
{
|
||||
color: '#4D4D4D',
|
||||
label: 'Dim grey'
|
||||
},
|
||||
{
|
||||
color: '#999999',
|
||||
label: 'Grey'
|
||||
},
|
||||
{
|
||||
color: '#E6E6E6',
|
||||
label: 'Light grey'
|
||||
},
|
||||
{
|
||||
color: '#FFFFFF',
|
||||
label: 'White'
|
||||
},
|
||||
{
|
||||
color: '#E64D4D',
|
||||
label: 'Red'
|
||||
},
|
||||
{
|
||||
color: '#E6994D',
|
||||
label: 'Orange'
|
||||
},
|
||||
{
|
||||
color: '#E6E64D',
|
||||
label: 'Yellow'
|
||||
},
|
||||
{
|
||||
color: '#99E64D',
|
||||
label: 'Light green'
|
||||
},
|
||||
{
|
||||
color: '#4DE64D',
|
||||
label: 'Green'
|
||||
},
|
||||
{
|
||||
color: '#4DE699',
|
||||
label: 'Aquamarine'
|
||||
},
|
||||
{
|
||||
color: '#4DE6E6',
|
||||
label: 'Turquoise'
|
||||
},
|
||||
{
|
||||
color: '#4D99E6',
|
||||
label: 'Light blue'
|
||||
},
|
||||
{
|
||||
color: '#4D4DE6',
|
||||
label: 'Blue'
|
||||
},
|
||||
{
|
||||
color: '#994DE6',
|
||||
label: 'Purple'
|
||||
},
|
||||
];
|
||||
|
||||
class Editor extends ClassicEditor {
|
||||
public static override builtinPlugins = [
|
||||
Alignment,
|
||||
@@ -100,16 +164,11 @@ class Editor extends ClassicEditor {
|
||||
IndentBlock,
|
||||
Italic,
|
||||
Link,
|
||||
LinkImage,
|
||||
List,
|
||||
ListProperties,
|
||||
Mention,
|
||||
Paragraph,
|
||||
PasteFromOffice,
|
||||
PictureEditing,
|
||||
Strikethrough,
|
||||
Subscript,
|
||||
Superscript,
|
||||
Table,
|
||||
TableCaption,
|
||||
TableCellProperties,
|
||||
@@ -176,6 +235,10 @@ class Editor extends ClassicEditor {
|
||||
shouldNotGroupWhenFull: true
|
||||
},
|
||||
language: 'en',
|
||||
fontColor: {
|
||||
// Colors are redefined to be in HEX instead of RGB in order to be supported by mail clients
|
||||
colors: colorsPalette,
|
||||
},
|
||||
image: {
|
||||
toolbar: [
|
||||
'resizeImage:25',
|
||||
@@ -212,7 +275,11 @@ class Editor extends ClassicEditor {
|
||||
'tableProperties',
|
||||
'|',
|
||||
'toggleTableCaption'
|
||||
]
|
||||
],
|
||||
tableCellProperties: {
|
||||
borderColors: colorsPalette,
|
||||
backgroundColors: colorsPalette,
|
||||
},
|
||||
},
|
||||
htmlSupport: {
|
||||
allow: [
|
||||
@@ -229,10 +296,10 @@ class Editor extends ClassicEditor {
|
||||
},
|
||||
highlight: {
|
||||
options: [
|
||||
{ model: 'yellowMarker', class: 'marker-yellow', title: 'Yellow Marker', color: 'var(--ck-highlight-marker-yellow)', type: 'marker' },
|
||||
{ model: 'greenMarker', class: 'marker-green', title: 'Green marker', color: 'var(--ck-highlight-marker-green)', type: 'marker' },
|
||||
{ model: 'pinkMarker', class: 'marker-pink', title: 'Pink marker', color: 'var(--ck-highlight-marker-pink)', type: 'marker' },
|
||||
{ model: 'blueMarker', class: 'marker-blue', title: 'Blue marker', color: 'var(--ck-highlight-marker-blue)', type: 'marker' },
|
||||
{ model: 'yellowMarker', class: 'marker-yellow', title: 'Yellow marker', color: '#FDFD77', type: 'marker' },
|
||||
{ model: 'greenMarker', class: 'marker-green', title: 'Green marker', color: '#62f962', type: 'marker' },
|
||||
{ model: 'pinkMarker', class: 'marker-pink', title: 'Pink marker', color: '#FC7899', type: 'marker' },
|
||||
{ model: 'blueMarker', class: 'marker-blue', title: 'Blue marker', color: '#72CCFD', type: 'marker' },
|
||||
]
|
||||
},
|
||||
codeBlock: {
|
||||
|
||||
@@ -3,7 +3,7 @@ import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
|
||||
/**
|
||||
* AppendITopClasses Plugin.
|
||||
*
|
||||
* Appends ibo-is-html-content class
|
||||
* Appends ibo-is-html-content (backoffice) & ipb-is-html-content (portal) classes
|
||||
*/
|
||||
export default class AppendITopClasses extends Plugin {
|
||||
|
||||
@@ -16,11 +16,17 @@ export default class AppendITopClasses extends Plugin {
|
||||
// retrieve editor instance
|
||||
const oEditor = this.editor;
|
||||
|
||||
// appends ibo-is-html-content class
|
||||
// appends ibo-is-html-content (backoffice) & ipb-is-html-content (portal) classes
|
||||
oEditor.editing.view.change( oWriter => {
|
||||
const oRootElement = oEditor.editing.view.document.getRoot();
|
||||
if(oRootElement !== null){
|
||||
oWriter.addClass( 'ibo-is-html-content', oRootElement);
|
||||
// Add the proper class depending on the GUI we are in
|
||||
const sGUIType = document.body.getAttribute('data-gui-type');
|
||||
if (sGUIType === 'backoffice') {
|
||||
oWriter.addClass( 'ibo-is-html-content', oRootElement);
|
||||
} else if (sGUIType === 'portal') {
|
||||
oWriter.addClass('ipb-is-html-content', oRootElement);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import { Plugin, type Editor } from 'ckeditor5/src/core.js';
|
||||
import iTopDataProcessor from "./itop-data-processor";
|
||||
import InsertCarriageReturnAfterBlock from "../insert-carriage-return-after-block/insert-carriage-return-after-block.plugin";
|
||||
|
||||
/**
|
||||
* DetectChanges Plugin.
|
||||
*
|
||||
*/
|
||||
export default class DetectChanges extends Plugin {
|
||||
|
||||
private readonly _processor: iTopDataProcessor | undefined;
|
||||
|
||||
constructor( editor: Editor ) {
|
||||
super( editor );
|
||||
const sInitialValue:string = editor.config.get('detectChanges.initialValue') as string;
|
||||
@@ -17,15 +19,23 @@ export default class DetectChanges extends Plugin {
|
||||
// Initialize our own data processor
|
||||
const oProcessor = new iTopDataProcessor( editor.data.viewDocument, sInitialValue, editor.getData() ) as iTopDataProcessor;
|
||||
editor.data.processor = oProcessor;
|
||||
// Listen for the dataReady event only once
|
||||
editor.model.document.once('change:data', () => {
|
||||
oProcessor.setTransformedInitialValue( editor.getData());
|
||||
});
|
||||
this._processor = oProcessor;
|
||||
}
|
||||
|
||||
init() {
|
||||
|
||||
const editor = this.editor;// Listen for the dataReady event only once
|
||||
editor.model.document.once('change:data', () => {
|
||||
if(this._processor ) {
|
||||
this._processor.setTransformedInitialValue(editor.getData());
|
||||
}
|
||||
});
|
||||
}
|
||||
static get pluginName() {
|
||||
return 'DetectChanges';
|
||||
}
|
||||
|
||||
// Needed as InsertCarriageReturnAfterBlock will possibly change data on initialization if there's a block in the content, so we need to make sure it's loaded first
|
||||
static get requires() {
|
||||
return [ InsertCarriageReturnAfterBlock ];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
import { Plugin } from '@ckeditor/ckeditor5-core';
|
||||
import {ClassicEditor} from "@ckeditor/ckeditor5-editor-classic";
|
||||
|
||||
interface BlockFieldInterface{
|
||||
(element:HTMLElement, isBlocked: boolean):any;
|
||||
}
|
||||
|
||||
declare var BlockFieldElement: BlockFieldInterface;
|
||||
|
||||
export default class Disabler extends Plugin {
|
||||
|
||||
static get pluginName() {
|
||||
@@ -42,7 +36,11 @@ export default class Disabler extends Plugin {
|
||||
// @ts-ignore
|
||||
const oElement = $(oEditor.ui.element);
|
||||
if(typeof oElement.block === 'function') {
|
||||
BlockFieldElement(oElement, oInputElement.disabled);
|
||||
if (oInputElement.disabled) {
|
||||
oElement.block({message: '', blockMsgClass: '', enableValidation : true, baseZ: 9999, overlayCSS: { backgroundColor: '#ccd6e066'}});
|
||||
} else {
|
||||
oElement.unblock();
|
||||
}
|
||||
}
|
||||
|
||||
// handle ckeditor read only mode
|
||||
|
||||
@@ -32,56 +32,56 @@ export default class Maximize extends Plugin {
|
||||
if (oEditor.ui.element !== null) {
|
||||
if (oButton.isOn) {
|
||||
// remove classes
|
||||
document.documentElement.classList.remove('html_editor_full_screen')
|
||||
document.body.classList.remove('body_editor_full_screen')
|
||||
document.documentElement.classList.remove('ck-maximize_html_editor')
|
||||
document.body.classList.remove('ck-maximize_body_editor')
|
||||
let oParentElement: HTMLElement = oEditor.ui.element;
|
||||
while (oParentElement.parentElement !== null) {
|
||||
oParentElement = oParentElement.parentElement;
|
||||
oParentElement.classList.remove('parent_editor_screen');
|
||||
oParentElement.classList.remove('ck-maximize_parent_editor');
|
||||
}
|
||||
oEditor.ui.element.classList.remove('editor_full_screen');
|
||||
oEditor.ui.element.children[2].classList.remove('editor__main_full_screen');
|
||||
oEditor.ui.element.classList.remove('ck-maximize_editor');
|
||||
oEditor.ui.element.children[2].classList.remove('ck-maximize_editor_main');
|
||||
oButton.icon = sMaximizeIconSVG;
|
||||
} else {
|
||||
// add classes to make editor full screen
|
||||
document.documentElement.classList.add('html_editor_full_screen')
|
||||
document.body.classList.add('body_editor_full_screen')
|
||||
document.documentElement.classList.add('ck-maximize_html_editor')
|
||||
document.body.classList.add('ck-maximize_body_editor')
|
||||
let oParentElement: HTMLElement = oEditor.ui.element;
|
||||
while (oParentElement.parentElement !== null) {
|
||||
oParentElement = oParentElement.parentElement;
|
||||
oParentElement.classList.add('parent_editor_screen');
|
||||
oParentElement.classList.add('ck-maximize_parent_editor');
|
||||
}
|
||||
oEditor.ui.element.classList.add('editor_full_screen');
|
||||
oEditor.ui.element.children[2].classList.add('editor__main_full_screen');
|
||||
oEditor.ui.element.classList.add('ck-maximize_editor');
|
||||
oEditor.ui.element.children[2].classList.add('ck-maximize_editor_main');
|
||||
let oStyle = document.createElement('style');
|
||||
// CSS rules definitions for each classes
|
||||
oStyle.innerHTML = `
|
||||
.editor__main_full_screen > * {
|
||||
.ck-maximize_editor_main > * {
|
||||
height: 100% !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
.editor__main_full_screen {
|
||||
.ck-maximize_editor_main {
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.parent_editor_screen {
|
||||
.ck-maximize_parent_editor {
|
||||
position: fixed !important;
|
||||
overflow: visible !important;
|
||||
z-index: 1050 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
.body_editor_full_screen {
|
||||
.ck-maximize_body_editor {
|
||||
width: 0 !important;
|
||||
height: 0 !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
.html_editor_full_screen {
|
||||
.ck-maximize_html_editor {
|
||||
position: fixed !important;
|
||||
width: 0 !important;
|
||||
height: 0 !important;
|
||||
}
|
||||
.editor_full_screen {
|
||||
.ck-maximize_editor {
|
||||
position: fixed !important;
|
||||
top: 0 !important;
|
||||
left: 0 !important;
|
||||
|
||||
@@ -46,34 +46,17 @@
|
||||
font-size: var(--ck-text-huge-font-size);
|
||||
}
|
||||
|
||||
/* Marker classes */
|
||||
.marker-yellow {
|
||||
background-color: var(--ck-highlight-marker-yellow);
|
||||
}
|
||||
|
||||
.marker-green {
|
||||
background-color: var(--ck-highlight-marker-green);
|
||||
}
|
||||
|
||||
.marker-pink {
|
||||
background-color: var(--ck-highlight-marker-pink);
|
||||
}
|
||||
|
||||
.marker-blue {
|
||||
background-color: var(--ck-highlight-marker-blue);
|
||||
}
|
||||
|
||||
/* Editor base style */
|
||||
/* - Fix editor base z-index to avoid its children (images, drop down buttons, ...) passing on top of other elements */
|
||||
.ck-editor {
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
|
||||
/* Figures / images */
|
||||
/* - Avoid text being typed next to the image, only below */
|
||||
.ck-content .image img {
|
||||
min-width: inherit;
|
||||
min-width: inherit; /* Avoid text being typed next to the image, only below */
|
||||
margin-left: 0; /* Avoid image to be centered */
|
||||
margin-right: 0; /* Avoid image to be centered */
|
||||
}
|
||||
.ck-content .image-style-align-left,
|
||||
.ck-content .image-style-align-right {
|
||||
@@ -87,4 +70,41 @@
|
||||
.ck-content .image-style-align-right {
|
||||
text-align: right;
|
||||
margin-left: 0;
|
||||
}
|
||||
/* - Avoid figures to be centered */
|
||||
.ck-content figure {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
/* - Avoid tables in figure being align centered */
|
||||
.ck-content figure table {
|
||||
text-align: initial;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
/* - Avoid tables to be centered */
|
||||
.ck-content .table {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
/* - Force header background to an HEX color so it works with emails */
|
||||
.ck-content .table table th {
|
||||
background-color: #F4F4F4;
|
||||
}
|
||||
|
||||
/* Marker classes */
|
||||
.ck-content .marker-yellow {
|
||||
background-color: #FDFD77;
|
||||
}
|
||||
|
||||
.ck-content .marker-green {
|
||||
background-color: #62F962;
|
||||
}
|
||||
|
||||
.ck-content .marker-pink {
|
||||
background-color: #FC7899;
|
||||
}
|
||||
|
||||
.ck-content .marker-blue {
|
||||
background-color: #72CCFD;
|
||||
}
|
||||
@@ -12,6 +12,7 @@ const webpack = require( 'webpack' );
|
||||
const { bundler, styles } = require( '@ckeditor/ckeditor5-dev-utils' );
|
||||
const { CKEditorTranslationsPlugin } = require( '@ckeditor/ckeditor5-dev-translations' );
|
||||
const TerserWebpackPlugin = require( 'terser-webpack-plugin' );
|
||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
||||
|
||||
module.exports = {
|
||||
devtool: 'source-map',
|
||||
@@ -51,6 +52,10 @@ module.exports = {
|
||||
language: 'en',
|
||||
additionalLanguages: 'all'
|
||||
} ),
|
||||
new MiniCssExtractPlugin({
|
||||
filename: 'compiled-theme.scss', // Compiled as SCSS so we can import it in other SCSS files, but it's already compiled in CSS
|
||||
chunkFilename: 'compiled-theme-id.css', // We don't know what this is for
|
||||
}),
|
||||
new webpack.BannerPlugin( {
|
||||
banner: bundler.getLicenseBanner(),
|
||||
raw: true
|
||||
@@ -70,15 +75,8 @@ module.exports = {
|
||||
use: 'ts-loader'
|
||||
}, {
|
||||
test: /\.css$/,
|
||||
use: [ {
|
||||
loader: 'style-loader',
|
||||
options: {
|
||||
injectType: 'singletonStyleTag',
|
||||
attributes: {
|
||||
'data-cke': true
|
||||
}
|
||||
}
|
||||
}, {
|
||||
use: [ MiniCssExtractPlugin.loader,
|
||||
{
|
||||
loader: 'css-loader'
|
||||
}, {
|
||||
loader: 'postcss-loader',
|
||||
|
||||
@@ -239,15 +239,13 @@ $(function()
|
||||
},
|
||||
_buildMultipleShowAllMessagesItem: function(aUnreadMessagesByProvider)
|
||||
{
|
||||
var sNewMessageIndicator = '<div class="ibo-navigation-menu--notifications--item--new-message-indicator"></div>';
|
||||
|
||||
var sUnreadMessages = ''
|
||||
for(k in this.options.providers) {
|
||||
var sExtraMessages = '';
|
||||
if (aUnreadMessagesByProvider[k] > 0) {
|
||||
sExtraMessages = ' <span class="ibo-navigation-menu--notifications-show-all-multiple--counter">(' + aUnreadMessagesByProvider[k] + ')</span>'
|
||||
}
|
||||
sUnreadMessages += '<a class="ibo-popover-menu--item" data-provider-id="' + k + '" href="' + this.options.providers[k].view_all_url + '" target="' + this.options.providers[k].target + '">' + sNewMessageIndicator + this.options.providers[k].label + sExtraMessages + '</a>';
|
||||
sUnreadMessages += '<a class="ibo-popover-menu--item" data-provider-id="' + k + '" href="' + this.options.providers[k].view_all_url + '" target="' + this.options.providers[k].target + '">' + this.options.providers[k].label + sExtraMessages + '</a>';
|
||||
}
|
||||
return '<a class="ibo-popover-menu--item ibo-navigation-menu--notifications-show-all-multiple" data-role="ibo-navigation-menu--notifications-show-all-multiple" href="#">'+Dict.S(this.options.labels.view_all)+'<i class="fas fas-caret-down"></i></a>' +
|
||||
'<div class="ibo-popover-menu" data-role="ibo-popover-menu"><div class="ibo-popover-menu--section" data-role="ibo-popover-menu--section">'+sUnreadMessages+'</div></div>';
|
||||
|
||||
@@ -368,7 +368,7 @@ CombodoModal.OpenConfirmationModal = function(oOptions, aData) {
|
||||
}
|
||||
// Merge external options with confirmation modal default options
|
||||
oOptions = $.extend(true, {
|
||||
title: Dict.S('UI:Modal:DefaultConfirmationTitle'),
|
||||
title: Dict.S('UI:Modal:Confirmation:DefaultTitle'),
|
||||
content: '',
|
||||
do_not_show_again_pref_key: null,
|
||||
callback_on_confirm: null,
|
||||
|
||||
@@ -314,14 +314,6 @@ function BlockField(field_id, bBlocked) {
|
||||
}
|
||||
}
|
||||
|
||||
function BlockFieldElement(element, bBlocked) {
|
||||
if (bBlocked) {
|
||||
element.block({message: '', enableValidation : true, baseZ: 9999, overlayCSS: { backgroundColor: '#ccd6e066'}});
|
||||
} else {
|
||||
element.unblock();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates (enables/disables) a "duration" field
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user