@tinymce/tinymce-angular 7.1.1-rc.2 → 8.0.0-feature.20240424022454529.sha5a2ae31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -7
- package/editor/Events.d.ts +5 -1
- package/editor/editor.component.d.ts +16 -14
- package/esm2022/editor/Events.mjs +15 -2
- package/esm2022/editor/editor.component.mjs +11 -4
- package/esm2022/utils/ScriptLoader.mjs +25 -24
- package/esm2022/utils/Utils.mjs +7 -3
- package/fesm2022/tinymce-tinymce-angular.mjs +54 -29
- package/fesm2022/tinymce-tinymce-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/utils/ScriptLoader.d.ts +1 -3
package/README.md
CHANGED
|
@@ -4,28 +4,32 @@
|
|
|
4
4
|
|
|
5
5
|
This package is a thin wrapper around [TinyMCE](https://github.com/tinymce/tinymce) to make it easier to use in an Angular application.
|
|
6
6
|
|
|
7
|
-
* If you need detailed documentation on TinyMCE, see: [TinyMCE Documentation](https://www.tiny.cloud/docs/tinymce/
|
|
8
|
-
* For the TinyMCE Angular Quick Start, see: [TinyMCE Documentation - Angular Integration](https://www.tiny.cloud/docs/tinymce/
|
|
9
|
-
* For the TinyMCE Angular Technical Reference, see: [TinyMCE Documentation - TinyMCE Angular Technical Reference](https://www.tiny.cloud/docs/tinymce/
|
|
7
|
+
* If you need detailed documentation on TinyMCE, see: [TinyMCE Documentation](https://www.tiny.cloud/docs/tinymce/7/).
|
|
8
|
+
* For the TinyMCE Angular Quick Start, see: [TinyMCE Documentation - Angular Integration](https://www.tiny.cloud/docs/tinymce/7/angular-cloud/).
|
|
9
|
+
* For the TinyMCE Angular Technical Reference, see: [TinyMCE Documentation - TinyMCE Angular Technical Reference](https://www.tiny.cloud/docs/tinymce/7/angular-ref/).
|
|
10
10
|
* For our quick demos, check out the TinyMCE Angular [Storybook](https://tinymce.github.io/tinymce-angular/).
|
|
11
11
|
|
|
12
12
|
### Support
|
|
13
13
|
|
|
14
|
+
For Angular 15+, use integration version 8.x:
|
|
15
|
+
|
|
16
|
+
`npm install @tinymce/tinymce-angular@^8`
|
|
17
|
+
|
|
14
18
|
For Angular 14+, use integration version 7.x:
|
|
15
19
|
|
|
16
|
-
`npm install @tinymce/tinymce-angular@^7
|
|
20
|
+
`npm install @tinymce/tinymce-angular@^7`
|
|
17
21
|
|
|
18
22
|
For Angular 13+, use integration version 6.x:
|
|
19
23
|
|
|
20
|
-
`npm install @tinymce/tinymce-angular@^6
|
|
24
|
+
`npm install @tinymce/tinymce-angular@^6`
|
|
21
25
|
|
|
22
26
|
For Angular 9+, use integration version 4.x:
|
|
23
27
|
|
|
24
|
-
`npm install @tinymce/tinymce-angular@^4
|
|
28
|
+
`npm install @tinymce/tinymce-angular@^4`
|
|
25
29
|
|
|
26
30
|
For Angular 8 and below use integration version 3.x:
|
|
27
31
|
|
|
28
|
-
`npm install @tinymce/tinymce-angular@^3
|
|
32
|
+
`npm install @tinymce/tinymce-angular@^3`
|
|
29
33
|
|
|
30
34
|
Versions below Angular 5 are not supported.
|
|
31
35
|
|
package/editor/Events.d.ts
CHANGED
|
@@ -9,6 +9,9 @@ export declare class Events {
|
|
|
9
9
|
onBeforePaste: EventEmitter<EventObj<ClipboardEvent>>;
|
|
10
10
|
onBlur: EventEmitter<EventObj<FocusEvent>>;
|
|
11
11
|
onClick: EventEmitter<EventObj<MouseEvent>>;
|
|
12
|
+
onCompositionEnd: EventEmitter<EventObj<CompositionEvent>>;
|
|
13
|
+
onCompositionStart: EventEmitter<EventObj<CompositionEvent>>;
|
|
14
|
+
onCompositionUpdate: EventEmitter<EventObj<CompositionEvent>>;
|
|
12
15
|
onContextMenu: EventEmitter<EventObj<MouseEvent>>;
|
|
13
16
|
onCopy: EventEmitter<EventObj<ClipboardEvent>>;
|
|
14
17
|
onCut: EventEmitter<EventObj<ClipboardEvent>>;
|
|
@@ -49,6 +52,7 @@ export declare class Events {
|
|
|
49
52
|
onGetContent: EventEmitter<EventObj<any>>;
|
|
50
53
|
onHide: EventEmitter<EventObj<any>>;
|
|
51
54
|
onInit: EventEmitter<EventObj<any>>;
|
|
55
|
+
onInput: EventEmitter<EventObj<any>>;
|
|
52
56
|
onInitNgModel: EventEmitter<EventObj<any>>;
|
|
53
57
|
onLoadContent: EventEmitter<EventObj<any>>;
|
|
54
58
|
onNodeChange: EventEmitter<EventObj<any>>;
|
|
@@ -72,6 +76,6 @@ export declare class Events {
|
|
|
72
76
|
onUndo: EventEmitter<EventObj<any>>;
|
|
73
77
|
onVisualAid: EventEmitter<EventObj<any>>;
|
|
74
78
|
static ɵfac: i0.ɵɵFactoryDeclaration<Events, never>;
|
|
75
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<Events, never, never, {}, { "onBeforePaste": "onBeforePaste"; "onBlur": "onBlur"; "onClick": "onClick"; "onContextMenu": "onContextMenu"; "onCopy": "onCopy"; "onCut": "onCut"; "onDblclick": "onDblclick"; "onDrag": "onDrag"; "onDragDrop": "onDragDrop"; "onDragEnd": "onDragEnd"; "onDragGesture": "onDragGesture"; "onDragOver": "onDragOver"; "onDrop": "onDrop"; "onFocus": "onFocus"; "onFocusIn": "onFocusIn"; "onFocusOut": "onFocusOut"; "onKeyDown": "onKeyDown"; "onKeyPress": "onKeyPress"; "onKeyUp": "onKeyUp"; "onMouseDown": "onMouseDown"; "onMouseEnter": "onMouseEnter"; "onMouseLeave": "onMouseLeave"; "onMouseMove": "onMouseMove"; "onMouseOut": "onMouseOut"; "onMouseOver": "onMouseOver"; "onMouseUp": "onMouseUp"; "onPaste": "onPaste"; "onSelectionChange": "onSelectionChange"; "onActivate": "onActivate"; "onAddUndo": "onAddUndo"; "onBeforeAddUndo": "onBeforeAddUndo"; "onBeforeExecCommand": "onBeforeExecCommand"; "onBeforeGetContent": "onBeforeGetContent"; "onBeforeRenderUI": "onBeforeRenderUI"; "onBeforeSetContent": "onBeforeSetContent"; "onChange": "onChange"; "onClearUndos": "onClearUndos"; "onDeactivate": "onDeactivate"; "onDirty": "onDirty"; "onExecCommand": "onExecCommand"; "onGetContent": "onGetContent"; "onHide": "onHide"; "onInit": "onInit"; "onInitNgModel": "onInitNgModel"; "onLoadContent": "onLoadContent"; "onNodeChange": "onNodeChange"; "onPostProcess": "onPostProcess"; "onPostRender": "onPostRender"; "onPreInit": "onPreInit"; "onPreProcess": "onPreProcess"; "onProgressState": "onProgressState"; "onRedo": "onRedo"; "onRemove": "onRemove"; "onReset": "onReset"; "onResizeEditor": "onResizeEditor"; "onSaveContent": "onSaveContent"; "onSetAttrib": "onSetAttrib"; "onObjectResizeStart": "onObjectResizeStart"; "onObjectResized": "onObjectResized"; "onObjectSelected": "onObjectSelected"; "onSetContent": "onSetContent"; "onShow": "onShow"; "onSubmit": "onSubmit"; "onUndo": "onUndo"; "onVisualAid": "onVisualAid"; }, never, never, false, never>;
|
|
79
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<Events, never, never, {}, { "onBeforePaste": "onBeforePaste"; "onBlur": "onBlur"; "onClick": "onClick"; "onCompositionEnd": "onCompositionEnd"; "onCompositionStart": "onCompositionStart"; "onCompositionUpdate": "onCompositionUpdate"; "onContextMenu": "onContextMenu"; "onCopy": "onCopy"; "onCut": "onCut"; "onDblclick": "onDblclick"; "onDrag": "onDrag"; "onDragDrop": "onDragDrop"; "onDragEnd": "onDragEnd"; "onDragGesture": "onDragGesture"; "onDragOver": "onDragOver"; "onDrop": "onDrop"; "onFocus": "onFocus"; "onFocusIn": "onFocusIn"; "onFocusOut": "onFocusOut"; "onKeyDown": "onKeyDown"; "onKeyPress": "onKeyPress"; "onKeyUp": "onKeyUp"; "onMouseDown": "onMouseDown"; "onMouseEnter": "onMouseEnter"; "onMouseLeave": "onMouseLeave"; "onMouseMove": "onMouseMove"; "onMouseOut": "onMouseOut"; "onMouseOver": "onMouseOver"; "onMouseUp": "onMouseUp"; "onPaste": "onPaste"; "onSelectionChange": "onSelectionChange"; "onActivate": "onActivate"; "onAddUndo": "onAddUndo"; "onBeforeAddUndo": "onBeforeAddUndo"; "onBeforeExecCommand": "onBeforeExecCommand"; "onBeforeGetContent": "onBeforeGetContent"; "onBeforeRenderUI": "onBeforeRenderUI"; "onBeforeSetContent": "onBeforeSetContent"; "onChange": "onChange"; "onClearUndos": "onClearUndos"; "onDeactivate": "onDeactivate"; "onDirty": "onDirty"; "onExecCommand": "onExecCommand"; "onGetContent": "onGetContent"; "onHide": "onHide"; "onInit": "onInit"; "onInput": "onInput"; "onInitNgModel": "onInitNgModel"; "onLoadContent": "onLoadContent"; "onNodeChange": "onNodeChange"; "onPostProcess": "onPostProcess"; "onPostRender": "onPostRender"; "onPreInit": "onPreInit"; "onPreProcess": "onPreProcess"; "onProgressState": "onProgressState"; "onRedo": "onRedo"; "onRemove": "onRemove"; "onReset": "onReset"; "onResizeEditor": "onResizeEditor"; "onSaveContent": "onSaveContent"; "onSetAttrib": "onSetAttrib"; "onObjectResizeStart": "onObjectResizeStart"; "onObjectResized": "onObjectResized"; "onObjectSelected": "onObjectSelected"; "onSetContent": "onSetContent"; "onShow": "onShow"; "onSubmit": "onSubmit"; "onUndo": "onUndo"; "onVisualAid": "onVisualAid"; }, never, never, false, never>;
|
|
76
80
|
}
|
|
77
81
|
export declare const validEvents: (keyof Events)[];
|
|
@@ -5,31 +5,33 @@ import { Editor as TinyMCEEditor, TinyMCE } from 'tinymce';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
type EditorOptions = Parameters<TinyMCE['init']>[0];
|
|
7
7
|
export declare const TINYMCE_SCRIPT_SRC: InjectionToken<string>;
|
|
8
|
+
export type Version = `${'4' | '5' | '6' | '7'}${'' | '-dev' | '-testing' | `.${number}` | `.${number}.${number}`}`;
|
|
8
9
|
export declare class EditorComponent extends Events implements AfterViewInit, ControlValueAccessor, OnDestroy {
|
|
9
10
|
private cdRef;
|
|
10
11
|
private platformId;
|
|
11
12
|
private tinymceScriptSrc?;
|
|
12
|
-
cloudChannel:
|
|
13
|
+
cloudChannel: Version;
|
|
13
14
|
apiKey: string;
|
|
14
|
-
|
|
15
|
+
licenseKey?: string;
|
|
16
|
+
init?: EditorOptions;
|
|
15
17
|
id: string;
|
|
16
|
-
initialValue
|
|
17
|
-
outputFormat
|
|
18
|
-
inline
|
|
19
|
-
tagName
|
|
20
|
-
plugins
|
|
21
|
-
toolbar
|
|
18
|
+
initialValue?: string;
|
|
19
|
+
outputFormat?: 'html' | 'text';
|
|
20
|
+
inline?: boolean;
|
|
21
|
+
tagName?: string;
|
|
22
|
+
plugins?: string;
|
|
23
|
+
toolbar?: string | string[];
|
|
22
24
|
modelEvents: string;
|
|
23
|
-
allowedEvents
|
|
24
|
-
ignoreEvents
|
|
25
|
+
allowedEvents?: string | string[];
|
|
26
|
+
ignoreEvents?: string | string[];
|
|
25
27
|
set disabled(val: boolean);
|
|
26
28
|
get disabled(): boolean;
|
|
27
29
|
get editor(): TinyMCEEditor;
|
|
28
30
|
ngZone: NgZone;
|
|
29
31
|
private _elementRef;
|
|
30
|
-
private _element
|
|
31
|
-
private _disabled
|
|
32
|
-
private _editor
|
|
32
|
+
private _element?;
|
|
33
|
+
private _disabled?;
|
|
34
|
+
private _editor?;
|
|
33
35
|
private onTouchedCallback;
|
|
34
36
|
private onChangeCallback;
|
|
35
37
|
private destroy$;
|
|
@@ -46,6 +48,6 @@ export declare class EditorComponent extends Events implements AfterViewInit, Co
|
|
|
46
48
|
private initEditor;
|
|
47
49
|
private emitOnChange;
|
|
48
50
|
static ɵfac: i0.ɵɵFactoryDeclaration<EditorComponent, [null, null, null, null, { optional: true; }]>;
|
|
49
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EditorComponent, "editor", never, { "cloudChannel": { "alias": "cloudChannel"; "required": false; }; "apiKey": { "alias": "apiKey"; "required": false; }; "init": { "alias": "init"; "required": false; }; "id": { "alias": "id"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "outputFormat": { "alias": "outputFormat"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "tagName": { "alias": "tagName"; "required": false; }; "plugins": { "alias": "plugins"; "required": false; }; "toolbar": { "alias": "toolbar"; "required": false; }; "modelEvents": { "alias": "modelEvents"; "required": false; }; "allowedEvents": { "alias": "allowedEvents"; "required": false; }; "ignoreEvents": { "alias": "ignoreEvents"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EditorComponent, "editor", never, { "cloudChannel": { "alias": "cloudChannel"; "required": false; }; "apiKey": { "alias": "apiKey"; "required": false; }; "licenseKey": { "alias": "licenseKey"; "required": false; }; "init": { "alias": "init"; "required": false; }; "id": { "alias": "id"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "outputFormat": { "alias": "outputFormat"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "tagName": { "alias": "tagName"; "required": false; }; "plugins": { "alias": "plugins"; "required": false; }; "toolbar": { "alias": "toolbar"; "required": false; }; "modelEvents": { "alias": "modelEvents"; "required": false; }; "allowedEvents": { "alias": "allowedEvents"; "required": false; }; "ignoreEvents": { "alias": "ignoreEvents"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
|
|
50
52
|
}
|
|
51
53
|
export {};
|
|
@@ -4,6 +4,9 @@ export class Events {
|
|
|
4
4
|
onBeforePaste = new EventEmitter();
|
|
5
5
|
onBlur = new EventEmitter();
|
|
6
6
|
onClick = new EventEmitter();
|
|
7
|
+
onCompositionEnd = new EventEmitter();
|
|
8
|
+
onCompositionStart = new EventEmitter();
|
|
9
|
+
onCompositionUpdate = new EventEmitter();
|
|
7
10
|
onContextMenu = new EventEmitter();
|
|
8
11
|
onCopy = new EventEmitter();
|
|
9
12
|
onCut = new EventEmitter();
|
|
@@ -44,6 +47,7 @@ export class Events {
|
|
|
44
47
|
onGetContent = new EventEmitter();
|
|
45
48
|
onHide = new EventEmitter();
|
|
46
49
|
onInit = new EventEmitter();
|
|
50
|
+
onInput = new EventEmitter();
|
|
47
51
|
onInitNgModel = new EventEmitter();
|
|
48
52
|
onLoadContent = new EventEmitter();
|
|
49
53
|
onNodeChange = new EventEmitter();
|
|
@@ -67,7 +71,7 @@ export class Events {
|
|
|
67
71
|
onUndo = new EventEmitter();
|
|
68
72
|
onVisualAid = new EventEmitter();
|
|
69
73
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: Events, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
70
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: Events, outputs: { onBeforePaste: "onBeforePaste", onBlur: "onBlur", onClick: "onClick", onContextMenu: "onContextMenu", onCopy: "onCopy", onCut: "onCut", onDblclick: "onDblclick", onDrag: "onDrag", onDragDrop: "onDragDrop", onDragEnd: "onDragEnd", onDragGesture: "onDragGesture", onDragOver: "onDragOver", onDrop: "onDrop", onFocus: "onFocus", onFocusIn: "onFocusIn", onFocusOut: "onFocusOut", onKeyDown: "onKeyDown", onKeyPress: "onKeyPress", onKeyUp: "onKeyUp", onMouseDown: "onMouseDown", onMouseEnter: "onMouseEnter", onMouseLeave: "onMouseLeave", onMouseMove: "onMouseMove", onMouseOut: "onMouseOut", onMouseOver: "onMouseOver", onMouseUp: "onMouseUp", onPaste: "onPaste", onSelectionChange: "onSelectionChange", onActivate: "onActivate", onAddUndo: "onAddUndo", onBeforeAddUndo: "onBeforeAddUndo", onBeforeExecCommand: "onBeforeExecCommand", onBeforeGetContent: "onBeforeGetContent", onBeforeRenderUI: "onBeforeRenderUI", onBeforeSetContent: "onBeforeSetContent", onChange: "onChange", onClearUndos: "onClearUndos", onDeactivate: "onDeactivate", onDirty: "onDirty", onExecCommand: "onExecCommand", onGetContent: "onGetContent", onHide: "onHide", onInit: "onInit", onInitNgModel: "onInitNgModel", onLoadContent: "onLoadContent", onNodeChange: "onNodeChange", onPostProcess: "onPostProcess", onPostRender: "onPostRender", onPreInit: "onPreInit", onPreProcess: "onPreProcess", onProgressState: "onProgressState", onRedo: "onRedo", onRemove: "onRemove", onReset: "onReset", onResizeEditor: "onResizeEditor", onSaveContent: "onSaveContent", onSetAttrib: "onSetAttrib", onObjectResizeStart: "onObjectResizeStart", onObjectResized: "onObjectResized", onObjectSelected: "onObjectSelected", onSetContent: "onSetContent", onShow: "onShow", onSubmit: "onSubmit", onUndo: "onUndo", onVisualAid: "onVisualAid" }, ngImport: i0 });
|
|
74
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: Events, outputs: { onBeforePaste: "onBeforePaste", onBlur: "onBlur", onClick: "onClick", onCompositionEnd: "onCompositionEnd", onCompositionStart: "onCompositionStart", onCompositionUpdate: "onCompositionUpdate", onContextMenu: "onContextMenu", onCopy: "onCopy", onCut: "onCut", onDblclick: "onDblclick", onDrag: "onDrag", onDragDrop: "onDragDrop", onDragEnd: "onDragEnd", onDragGesture: "onDragGesture", onDragOver: "onDragOver", onDrop: "onDrop", onFocus: "onFocus", onFocusIn: "onFocusIn", onFocusOut: "onFocusOut", onKeyDown: "onKeyDown", onKeyPress: "onKeyPress", onKeyUp: "onKeyUp", onMouseDown: "onMouseDown", onMouseEnter: "onMouseEnter", onMouseLeave: "onMouseLeave", onMouseMove: "onMouseMove", onMouseOut: "onMouseOut", onMouseOver: "onMouseOver", onMouseUp: "onMouseUp", onPaste: "onPaste", onSelectionChange: "onSelectionChange", onActivate: "onActivate", onAddUndo: "onAddUndo", onBeforeAddUndo: "onBeforeAddUndo", onBeforeExecCommand: "onBeforeExecCommand", onBeforeGetContent: "onBeforeGetContent", onBeforeRenderUI: "onBeforeRenderUI", onBeforeSetContent: "onBeforeSetContent", onChange: "onChange", onClearUndos: "onClearUndos", onDeactivate: "onDeactivate", onDirty: "onDirty", onExecCommand: "onExecCommand", onGetContent: "onGetContent", onHide: "onHide", onInit: "onInit", onInput: "onInput", onInitNgModel: "onInitNgModel", onLoadContent: "onLoadContent", onNodeChange: "onNodeChange", onPostProcess: "onPostProcess", onPostRender: "onPostRender", onPreInit: "onPreInit", onPreProcess: "onPreProcess", onProgressState: "onProgressState", onRedo: "onRedo", onRemove: "onRemove", onReset: "onReset", onResizeEditor: "onResizeEditor", onSaveContent: "onSaveContent", onSetAttrib: "onSetAttrib", onObjectResizeStart: "onObjectResizeStart", onObjectResized: "onObjectResized", onObjectSelected: "onObjectSelected", onSetContent: "onSetContent", onShow: "onShow", onSubmit: "onSubmit", onUndo: "onUndo", onVisualAid: "onVisualAid" }, ngImport: i0 });
|
|
71
75
|
}
|
|
72
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: Events, decorators: [{
|
|
73
77
|
type: Directive
|
|
@@ -77,6 +81,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
77
81
|
type: Output
|
|
78
82
|
}], onClick: [{
|
|
79
83
|
type: Output
|
|
84
|
+
}], onCompositionEnd: [{
|
|
85
|
+
type: Output
|
|
86
|
+
}], onCompositionStart: [{
|
|
87
|
+
type: Output
|
|
88
|
+
}], onCompositionUpdate: [{
|
|
89
|
+
type: Output
|
|
80
90
|
}], onContextMenu: [{
|
|
81
91
|
type: Output
|
|
82
92
|
}], onCopy: [{
|
|
@@ -157,6 +167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
157
167
|
type: Output
|
|
158
168
|
}], onInit: [{
|
|
159
169
|
type: Output
|
|
170
|
+
}], onInput: [{
|
|
171
|
+
type: Output
|
|
160
172
|
}], onInitNgModel: [{
|
|
161
173
|
type: Output
|
|
162
174
|
}], onLoadContent: [{
|
|
@@ -234,6 +246,7 @@ export const validEvents = [
|
|
|
234
246
|
'onGetContent',
|
|
235
247
|
'onHide',
|
|
236
248
|
'onInit',
|
|
249
|
+
'onInput',
|
|
237
250
|
'onKeyDown',
|
|
238
251
|
'onKeyPress',
|
|
239
252
|
'onKeyUp',
|
|
@@ -267,4 +280,4 @@ export const validEvents = [
|
|
|
267
280
|
'onUndo',
|
|
268
281
|
'onVisualAid'
|
|
269
282
|
];
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGlueW1jZS1hbmd1bGFyLWNvbXBvbmVudC9zcmMvbWFpbi90cy9lZGl0b3IvRXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTaEUsTUFBTSxPQUFPLE1BQU07SUFDQSxhQUFhLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDM0UsTUFBTSxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2hFLE9BQU8sR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNqRSxhQUFhLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDdkUsTUFBTSxHQUEyQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3BFLEtBQUssR0FBMkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxVQUFVLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDcEUsTUFBTSxHQUFzQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQy9ELFVBQVUsR0FBc0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxTQUFTLEdBQXNDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDbEUsYUFBYSxHQUFzQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RFLFVBQVUsR0FBc0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxNQUFNLEdBQXNDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDL0QsT0FBTyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2pFLFNBQVMsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxVQUFVLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDcEUsU0FBUyxHQUEwQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RFLFVBQVUsR0FBMEMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJ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UixlQUFlO0lBQ2YsU0FBUztJQUNULFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztJQUNkLFFBQVE7SUFDUixRQUFRO0lBQ1IsV0FBVztJQUNYLFlBQVk7SUFDWixTQUFTO0lBQ1QsZUFBZTtJQUNmLGFBQWE7SUFDYixjQUFjO0lBQ2QsY0FBYztJQUNkLGFBQWE7SUFDYixZQUFZO0lBQ1osYUFBYTtJQUNiLFdBQVc7SUFDWCxjQUFjO0lBQ2QscUJBQXFCO0lBQ3JCLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsU0FBUztJQUNULGVBQWU7SUFDZixjQUFjO0lBQ2QsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixRQUFRO0lBQ1IsVUFBVTtJQUNWLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsY0FBYztJQUNkLFFBQVE7SUFDUixVQUFVO0lBQ1YsUUFBUTtJQUNSLGFBQWE7Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWRpdG9yIGFzIFRpbnlNQ0VFZGl0b3IgfSBmcm9tICd0aW55bWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudE9iajxUPiB7XG4gIGV2ZW50OiBUO1xuICBlZGl0b3I6IFRpbnlNQ0VFZGl0b3I7XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEV2ZW50cyB7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25CZWZvcmVQYXN0ZTogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPENsaXBib2FyZEV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25CbHVyOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8Rm9jdXNFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxNb3VzZUV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Db250ZXh0TWVudTogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPE1vdXNlRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNvcHk6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxDbGlwYm9hcmRFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ3V0OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8Q2xpcGJvYXJkRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRibGNsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRHJhZzogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPERyYWdFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRHJhZ0Ryb3A6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxEcmFnRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRyYWdFbmQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxEcmFnRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRyYWdHZXN0dXJlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8RHJhZ0V2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EcmFnT3ZlcjogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPERyYWdFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRHJvcDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPERyYWdFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxGb2N1c0V2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Gb2N1c0luOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8Rm9jdXNFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRm9jdXNPdXQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxGb2N1c0V2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25LZXlEb3duOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8S2V5Ym9hcmRFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uS2V5UHJlc3M6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxLZXlib2FyZEV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25LZXlVcDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPEtleWJvYXJkRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbk1vdXNlRG93bjogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPE1vdXNlRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbk1vdXNlRW50ZXI6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxNb3VzZUV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Nb3VzZUxlYXZlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uTW91c2VNb3ZlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uTW91c2VPdXQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxNb3VzZUV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Nb3VzZU92ZXI6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxNb3VzZUV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Nb3VzZVVwOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uUGFzdGU6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxDbGlwYm9hcmRFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8RXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkFjdGl2YXRlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25BZGRVbmRvOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25CZWZvcmVBZGRVbmRvOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25CZWZvcmVFeGVjQ29tbWFuZDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQmVmb3JlR2V0Q29udGVudDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQmVmb3JlUmVuZGVyVUk6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkJlZm9yZVNldENvbnRlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ2xlYXJVbmRvczogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRGVhY3RpdmF0ZTogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRGlydHk6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkV4ZWNDb21tYW5kOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25HZXRDb250ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25IaWRlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Jbml0OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Jbml0TmdNb2RlbDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uTG9hZENvbnRlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbk5vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvblBvc3RQcm9jZXNzOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Qb3N0UmVuZGVyOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25QcmVJbml0OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25QcmVQcm9jZXNzOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Qcm9ncmVzc1N0YXRlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25SZWRvOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvblJlc2V0OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25SZXNpemVFZGl0b3I6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvblNhdmVDb250ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25TZXRBdHRyaWI6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbk9iamVjdFJlc2l6ZVN0YXJ0OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25PYmplY3RSZXNpemVkOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25PYmplY3RTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uU2V0Q29udGVudDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uU2hvdzogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uU3VibWl0OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25VbmRvOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25WaXN1YWxBaWQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkRXZlbnRzOiAoa2V5b2YgRXZlbnRzKVtdID0gW1xuICAnb25BY3RpdmF0ZScsXG4gICdvbkFkZFVuZG8nLFxuICAnb25CZWZvcmVBZGRVbmRvJyxcbiAgJ29uQmVmb3JlRXhlY0NvbW1hbmQnLFxuICAnb25CZWZvcmVHZXRDb250ZW50JyxcbiAgJ29uQmVmb3JlUmVuZGVyVUknLFxuICAnb25CZWZvcmVTZXRDb250ZW50JyxcbiAgJ29uQmVmb3JlUGFzdGUnLFxuICAnb25CbHVyJyxcbiAgJ29uQ2hhbmdlJyxcbiAgJ29uQ2xlYXJVbmRvcycsXG4gICdvbkNsaWNrJyxcbiAgJ29uQ29udGV4dE1lbnUnLFxuICAnb25Db3B5JyxcbiAgJ29uQ3V0JyxcbiAgJ29uRGJsY2xpY2snLFxuICAnb25EZWFjdGl2YXRlJyxcbiAgJ29uRGlydHknLFxuICAnb25EcmFnJyxcbiAgJ29uRHJhZ0Ryb3AnLFxuICAnb25EcmFnRW5kJyxcbiAgJ29uRHJhZ0dlc3R1cmUnLFxuICAnb25EcmFnT3ZlcicsXG4gICdvbkRyb3AnLFxuICAnb25FeGVjQ29tbWFuZCcsXG4gICdvbkZvY3VzJyxcbiAgJ29uRm9jdXNJbicsXG4gICdvbkZvY3VzT3V0JyxcbiAgJ29uR2V0Q29udGVudCcsXG4gICdvbkhpZGUnLFxuICAnb25Jbml0JyxcbiAgJ29uS2V5RG93bicsXG4gICdvbktleVByZXNzJyxcbiAgJ29uS2V5VXAnLFxuICAnb25Mb2FkQ29udGVudCcsXG4gICdvbk1vdXNlRG93bicsXG4gICdvbk1vdXNlRW50ZXInLFxuICAnb25Nb3VzZUxlYXZlJyxcbiAgJ29uTW91c2VNb3ZlJyxcbiAgJ29uTW91c2VPdXQnLFxuICAnb25Nb3VzZU92ZXInLFxuICAnb25Nb3VzZVVwJyxcbiAgJ29uTm9kZUNoYW5nZScsXG4gICdvbk9iamVjdFJlc2l6ZVN0YXJ0JyxcbiAgJ29uT2JqZWN0UmVzaXplZCcsXG4gICdvbk9iamVjdFNlbGVjdGVkJyxcbiAgJ29uUGFzdGUnLFxuICAnb25Qb3N0UHJvY2VzcycsXG4gICdvblBvc3RSZW5kZXInLFxuICAnb25QcmVQcm9jZXNzJyxcbiAgJ29uUHJvZ3Jlc3NTdGF0ZScsXG4gICdvblJlZG8nLFxuICAnb25SZW1vdmUnLFxuICAnb25SZXNldCcsXG4gICdvblJlc2l6ZUVkaXRvcicsXG4gICdvblNhdmVDb250ZW50JyxcbiAgJ29uU2VsZWN0aW9uQ2hhbmdlJyxcbiAgJ29uU2V0QXR0cmliJyxcbiAgJ29uU2V0Q29udGVudCcsXG4gICdvblNob3cnLFxuICAnb25TdWJtaXQnLFxuICAnb25VbmRvJyxcbiAgJ29uVmlzdWFsQWlkJ1xuXTtcbiJdfQ==
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGlueW1jZS1hbmd1bGFyLWNvbXBvbmVudC9zcmMvbWFpbi90cy9lZGl0b3IvRXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTaEUsTUFBTSxPQUFPLE1BQU07SUFDQSxhQUFhLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDM0UsTUFBTSxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2hFLE9BQU8sR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNqRSxnQkFBZ0IsR0FBNkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNoRixrQkFBa0IsR0FBNkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsRixtQkFBbUIsR0FBNkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRixhQUFhLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDdkUsTUFBTSxHQUEyQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3BFLEtBQUssR0FBMkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxVQUFVLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDcEUsTUFBTSxHQUFzQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQy9ELFVBQVUsR0FBc0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxTQUFTLEdBQXNDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDbEUsYUFBYSxHQUFzQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RFLFVBQVUsR0FBc0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxNQUFNLEdBQXNDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDL0QsT0FBTyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2pFLFNBQVMsR0FBdUMsSUFBSSxZQUFZLEVBQUUs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QUFZO0lBQ1osV0FBVztJQUNYLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLFFBQVE7SUFDUixVQUFVO0lBQ1YsY0FBYztJQUNkLFNBQVM7SUFDVCxlQUFlO0lBQ2YsUUFBUTtJQUNSLE9BQU87SUFDUCxZQUFZO0lBQ1osY0FBYztJQUNkLFNBQVM7SUFDVCxRQUFRO0lBQ1IsWUFBWTtJQUNaLFdBQVc7SUFDWCxlQUFlO0lBQ2YsWUFBWTtJQUNaLFFBQVE7SUFDUixlQUFlO0lBQ2YsU0FBUztJQUNULFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztJQUNkLFFBQVE7SUFDUixRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxZQUFZO0lBQ1osU0FBUztJQUNULGVBQWU7SUFDZixhQUFhO0lBQ2IsY0FBYztJQUNkLGNBQWM7SUFDZCxhQUFhO0lBQ2IsWUFBWTtJQUNaLGFBQWE7SUFDYixXQUFXO0lBQ1gsY0FBYztJQUNkLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLFNBQVM7SUFDVCxlQUFlO0lBQ2YsY0FBYztJQUNkLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsUUFBUTtJQUNSLFVBQVU7SUFDVixTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsYUFBYTtJQUNiLGNBQWM7SUFDZCxRQUFRO0lBQ1IsVUFBVTtJQUNWLFFBQVE7SUFDUixhQUFhO0NBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE91dHB1dCwgRXZlbnRFbWl0dGVyLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciBhcyBUaW55TUNFRWRpdG9yIH0gZnJvbSAndGlueW1jZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRPYmo8VD4ge1xuICBldmVudDogVDtcbiAgZWRpdG9yOiBUaW55TUNFRWRpdG9yO1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBFdmVudHMge1xuICBAT3V0cHV0KCkgcHVibGljIG9uQmVmb3JlUGFzdGU6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxDbGlwYm9hcmRFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQmx1cjogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPEZvY3VzRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ29tcG9zaXRpb25FbmQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxDb21wb3NpdGlvbkV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Db21wb3NpdGlvblN0YXJ0OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8Q29tcG9zaXRpb25FdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ29tcG9zaXRpb25VcGRhdGU6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxDb21wb3NpdGlvbkV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Db250ZXh0TWVudTogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPE1vdXNlRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNvcHk6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxDbGlwYm9hcmRFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ3V0OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8Q2xpcGJvYXJkRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRibGNsaWNrOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRHJhZzogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPERyYWdFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRHJhZ0Ryb3A6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxEcmFnRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRyYWdFbmQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxEcmFnRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRyYWdHZXN0dXJlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8RHJhZ0V2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EcmFnT3ZlcjogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPERyYWdFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRHJvcDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPERyYWdFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxGb2N1c0V2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Gb2N1c0luOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8Rm9jdXNFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRm9jdXNPdXQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxGb2N1c0V2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25LZXlEb3duOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8S2V5Ym9hcmRFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uS2V5UHJlc3M6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxLZXlib2FyZEV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25LZXlVcDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPEtleWJvYXJkRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbk1vdXNlRG93bjogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPE1vdXNlRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbk1vdXNlRW50ZXI6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxNb3VzZUV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Nb3VzZUxlYXZlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uTW91c2VNb3ZlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uTW91c2VPdXQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxNb3VzZUV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Nb3VzZU92ZXI6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxNb3VzZUV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Nb3VzZVVwOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8TW91c2VFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uUGFzdGU6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxDbGlwYm9hcmRFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8RXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkFjdGl2YXRlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25BZGRVbmRvOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25CZWZvcmVBZGRVbmRvOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25CZWZvcmVFeGVjQ29tbWFuZDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQmVmb3JlR2V0Q29udGVudDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQmVmb3JlUmVuZGVyVUk6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkJlZm9yZVNldENvbnRlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uQ2xlYXJVbmRvczogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRGVhY3RpdmF0ZTogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRGlydHk6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkV4ZWNDb21tYW5kOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25HZXRDb250ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25IaWRlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Jbml0OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25JbnB1dDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uSW5pdE5nTW9kZWw6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkxvYWRDb250ZW50OiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Ob2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25Qb3N0UHJvY2VzczogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uUG9zdFJlbmRlcjogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uUHJlSW5pdDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uUHJlUHJvY2VzczogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uUHJvZ3Jlc3NTdGF0ZTogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uUmVkbzogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uUmVtb3ZlOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25SZXNldDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uUmVzaXplRWRpdG9yOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25TYXZlQ29udGVudDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uU2V0QXR0cmliOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25PYmplY3RSZXNpemVTdGFydDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uT2JqZWN0UmVzaXplZDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uT2JqZWN0U2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvblNldENvbnRlbnQ6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvblNob3c6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvblN1Ym1pdDogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uVW5kbzogRXZlbnRFbWl0dGVyPEV2ZW50T2JqPGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uVmlzdWFsQWlkOiBFdmVudEVtaXR0ZXI8RXZlbnRPYmo8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG59XG5cbmV4cG9ydCBjb25zdCB2YWxpZEV2ZW50czogKGtleW9mIEV2ZW50cylbXSA9IFtcbiAgJ29uQWN0aXZhdGUnLFxuICAnb25BZGRVbmRvJyxcbiAgJ29uQmVmb3JlQWRkVW5kbycsXG4gICdvbkJlZm9yZUV4ZWNDb21tYW5kJyxcbiAgJ29uQmVmb3JlR2V0Q29udGVudCcsXG4gICdvbkJlZm9yZVJlbmRlclVJJyxcbiAgJ29uQmVmb3JlU2V0Q29udGVudCcsXG4gICdvbkJlZm9yZVBhc3RlJyxcbiAgJ29uQmx1cicsXG4gICdvbkNoYW5nZScsXG4gICdvbkNsZWFyVW5kb3MnLFxuICAnb25DbGljaycsXG4gICdvbkNvbnRleHRNZW51JyxcbiAgJ29uQ29weScsXG4gICdvbkN1dCcsXG4gICdvbkRibGNsaWNrJyxcbiAgJ29uRGVhY3RpdmF0ZScsXG4gICdvbkRpcnR5JyxcbiAgJ29uRHJhZycsXG4gICdvbkRyYWdEcm9wJyxcbiAgJ29uRHJhZ0VuZCcsXG4gICdvbkRyYWdHZXN0dXJlJyxcbiAgJ29uRHJhZ092ZXInLFxuICAnb25Ecm9wJyxcbiAgJ29uRXhlY0NvbW1hbmQnLFxuICAnb25Gb2N1cycsXG4gICdvbkZvY3VzSW4nLFxuICAnb25Gb2N1c091dCcsXG4gICdvbkdldENvbnRlbnQnLFxuICAnb25IaWRlJyxcbiAgJ29uSW5pdCcsXG4gICdvbklucHV0JyxcbiAgJ29uS2V5RG93bicsXG4gICdvbktleVByZXNzJyxcbiAgJ29uS2V5VXAnLFxuICAnb25Mb2FkQ29udGVudCcsXG4gICdvbk1vdXNlRG93bicsXG4gICdvbk1vdXNlRW50ZXInLFxuICAnb25Nb3VzZUxlYXZlJyxcbiAgJ29uTW91c2VNb3ZlJyxcbiAgJ29uTW91c2VPdXQnLFxuICAnb25Nb3VzZU92ZXInLFxuICAnb25Nb3VzZVVwJyxcbiAgJ29uTm9kZUNoYW5nZScsXG4gICdvbk9iamVjdFJlc2l6ZVN0YXJ0JyxcbiAgJ29uT2JqZWN0UmVzaXplZCcsXG4gICdvbk9iamVjdFNlbGVjdGVkJyxcbiAgJ29uUGFzdGUnLFxuICAnb25Qb3N0UHJvY2VzcycsXG4gICdvblBvc3RSZW5kZXInLFxuICAnb25QcmVQcm9jZXNzJyxcbiAgJ29uUHJvZ3Jlc3NTdGF0ZScsXG4gICdvblJlZG8nLFxuICAnb25SZW1vdmUnLFxuICAnb25SZXNldCcsXG4gICdvblJlc2l6ZUVkaXRvcicsXG4gICdvblNhdmVDb250ZW50JyxcbiAgJ29uU2VsZWN0aW9uQ2hhbmdlJyxcbiAgJ29uU2V0QXR0cmliJyxcbiAgJ29uU2V0Q29udGVudCcsXG4gICdvblNob3cnLFxuICAnb25TdWJtaXQnLFxuICAnb25VbmRvJyxcbiAgJ29uVmlzdWFsQWlkJ1xuXTtcbiJdfQ==
|
|
@@ -14,12 +14,16 @@ const EDITOR_COMPONENT_VALUE_ACCESSOR = {
|
|
|
14
14
|
useExisting: forwardRef(() => EditorComponent),
|
|
15
15
|
multi: true
|
|
16
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* @see {@link https://www.tiny.cloud/docs/tinymce/7/angular-ref/} for the TinyMCE Angular Technical Reference
|
|
19
|
+
*/
|
|
17
20
|
export class EditorComponent extends Events {
|
|
18
21
|
cdRef;
|
|
19
22
|
platformId;
|
|
20
23
|
tinymceScriptSrc;
|
|
21
|
-
cloudChannel = '
|
|
24
|
+
cloudChannel = '7';
|
|
22
25
|
apiKey = 'no-api-key';
|
|
26
|
+
licenseKey;
|
|
23
27
|
init;
|
|
24
28
|
id = '';
|
|
25
29
|
initialValue;
|
|
@@ -126,6 +130,7 @@ export class EditorComponent extends Events {
|
|
|
126
130
|
target: this._element,
|
|
127
131
|
inline: this.inline,
|
|
128
132
|
readonly: this.disabled,
|
|
133
|
+
license_key: this.licenseKey,
|
|
129
134
|
plugins: mergePlugins((this.init && this.init.plugins), this.plugins),
|
|
130
135
|
toolbar: this.toolbar || (this.init && this.init.toolbar),
|
|
131
136
|
setup: (editor) => {
|
|
@@ -178,11 +183,11 @@ export class EditorComponent extends Events {
|
|
|
178
183
|
}
|
|
179
184
|
}
|
|
180
185
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: EditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: PLATFORM_ID }, { token: TINYMCE_SCRIPT_SRC, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: EditorComponent, isStandalone: true, selector: "editor", inputs: { cloudChannel: "cloudChannel", apiKey: "apiKey", init: "init", id: "id", initialValue: "initialValue", outputFormat: "outputFormat", inline: "inline", tagName: "tagName", plugins: "plugins", toolbar: "toolbar", modelEvents: "modelEvents", allowedEvents: "allowedEvents", ignoreEvents: "ignoreEvents", disabled: "disabled" }, providers: [EDITOR_COMPONENT_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: '
|
|
186
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: EditorComponent, isStandalone: true, selector: "editor", inputs: { cloudChannel: "cloudChannel", apiKey: "apiKey", licenseKey: "licenseKey", init: "init", id: "id", initialValue: "initialValue", outputFormat: "outputFormat", inline: "inline", tagName: "tagName", plugins: "plugins", toolbar: "toolbar", modelEvents: "modelEvents", allowedEvents: "allowedEvents", ignoreEvents: "ignoreEvents", disabled: "disabled" }, providers: [EDITOR_COMPONENT_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
182
187
|
}
|
|
183
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: EditorComponent, decorators: [{
|
|
184
189
|
type: Component,
|
|
185
|
-
args: [{ selector: 'editor', template: '
|
|
190
|
+
args: [{ selector: 'editor', template: '', providers: [EDITOR_COMPONENT_VALUE_ACCESSOR], standalone: true, imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
|
|
186
191
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: Object, decorators: [{
|
|
187
192
|
type: Inject,
|
|
188
193
|
args: [PLATFORM_ID]
|
|
@@ -195,6 +200,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
195
200
|
type: Input
|
|
196
201
|
}], apiKey: [{
|
|
197
202
|
type: Input
|
|
203
|
+
}], licenseKey: [{
|
|
204
|
+
type: Input
|
|
198
205
|
}], init: [{
|
|
199
206
|
type: Input
|
|
200
207
|
}], id: [{
|
|
@@ -220,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
220
227
|
}], disabled: [{
|
|
221
228
|
type: Input
|
|
222
229
|
}] } });
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RpbnltY2UtYW5ndWxhci1jb21wb25lbnQvc3JjL21haW4vdHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBRUwsU0FBUyxFQUVULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLFdBQVcsRUFDWCxjQUFjLEVBQ2QsUUFBUSxFQUVSLHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzSCxPQUFPLEVBQVksTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLckQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUVuRixNQUFNLCtCQUErQixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDOUMsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBV0YsTUFBTSxPQUFP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QUVLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcGFyYW1ldGVyLXByb3BlcnRpZXMgKi9cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgUExBVEZPUk1fSUQsXG4gIEluamVjdGlvblRva2VuLFxuICBPcHRpb25hbCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0VGlueW1jZSB9IGZyb20gJy4uL1RpbnlNQ0UnO1xuaW1wb3J0IHsgbGlzdGVuVGlueU1DRUV2ZW50LCBiaW5kSGFuZGxlcnMsIGlzVGV4dGFyZWEsIG1lcmdlUGx1Z2lucywgdXVpZCwgbm9vcCwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICcuLi91dGlscy9VdGlscyc7XG5pbXBvcnQgeyBFdmVudE9iaiwgRXZlbnRzIH0gZnJvbSAnLi9FdmVudHMnO1xuaW1wb3J0IHsgU2NyaXB0TG9hZGVyIH0gZnJvbSAnLi4vdXRpbHMvU2NyaXB0TG9hZGVyJztcbmltcG9ydCB7IEVkaXRvciBhcyBUaW55TUNFRWRpdG9yLCBUaW55TUNFIH0gZnJvbSAndGlueW1jZSc7XG5cbnR5cGUgRWRpdG9yT3B0aW9ucyA9IFBhcmFtZXRlcnM8VGlueU1DRVsnaW5pdCddPlswXTtcblxuZXhwb3J0IGNvbnN0IFRJTllNQ0VfU0NSSVBUX1NSQyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdUSU5ZTUNFX1NDUklQVF9TUkMnKTtcblxuY29uc3QgRURJVE9SX0NPTVBPTkVOVF9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRvckNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlZGl0b3InLFxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZT48L25nLXRlbXBsYXRlPicsXG4gIHN0eWxlczogWyAnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfScgXSxcbiAgcHJvdmlkZXJzOiBbIEVESVRPUl9DT01QT05FTlRfVkFMVUVfQUNDRVNTT1IgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbXBvbmVudCBleHRlbmRzIEV2ZW50cyBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjbG91ZENoYW5uZWwgPSAnNic7XG4gIEBJbnB1dCgpIHB1YmxpYyBhcGlLZXkgPSAnbm8tYXBpLWtleSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0OiBFZGl0b3JPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgaWQgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGluaXRpYWxWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwdWJsaWMgb3V0cHV0Rm9ybWF0OiAnaHRtbCcgfCAndGV4dCcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyB0YWdOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbHVnaW5zOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sYmFyOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcHVibGljIG1vZGVsRXZlbnRzID0gJ2NoYW5nZSBpbnB1dCB1bmRvIHJlZG8nO1xuICBASW5wdXQoKSBwdWJsaWMgYWxsb3dlZEV2ZW50czogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZ25vcmVFdmVudHM6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbCkge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsO1xuICAgIGlmICh0aGlzLl9lZGl0b3IgJiYgdGhpcy5fZWRpdG9yLmluaXRpYWxpemVkKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuX2VkaXRvci5tb2RlPy5zZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yLm1vZGUuc2V0KHZhbCA/ICdyZWFkb25seScgOiAnZGVzaWduJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9lZGl0b3Iuc2V0TW9kZSh2YWwgPyAncmVhZG9ubHknIDogJ2Rlc2lnbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBlZGl0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRvcjtcbiAgfVxuXG4gIHB1YmxpYyBuZ1pvbmU6IE5nWm9uZTtcblxuICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIF9lbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2VkaXRvcjogVGlueU1DRUVkaXRvciB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrID0gbm9vcDtcbiAgcHJpdmF0ZSBvbkNoYW5nZUNhbGxiYWNrOiBhbnk7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSU5ZTUNFX1NDUklQVF9TUkMpIHByaXZhdGUgdGlueW1jZVNjcmlwdFNyYz86IHN0cmluZ1xuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICAgIHRoaXMubmdab25lID0gbmdab25lO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZWRpdG9yICYmIHRoaXMuX2VkaXRvci5pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fZWRpdG9yLnNldENvbnRlbnQoaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpID8gJycgOiB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbFZhbHVlID0gdmFsdWUgPT09IG51bGwgPyB1bmRlZmluZWQgOiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLmlkID0gdGhpcy5pZCB8fCB1dWlkKCd0aW55LWFuZ3VsYXInKTtcbiAgICAgIHRoaXMuaW5saW5lID0gdGhpcy5pbmxpbmUgIT09IHVuZGVmaW5lZCA/IHRoaXMuaW5saW5lICE9PSBmYWxzZSA6ICEhKHRoaXMuaW5pdD8uaW5saW5lKTtcbiAgICAgIHRoaXMuY3JlYXRlRWxlbWVudCgpO1xuICAgICAgaWYgKGdldFRpbnltY2UoKSAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpc2UoKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fZWxlbWVudCAmJiB0aGlzLl9lbGVtZW50Lm93bmVyRG9jdW1lbnQpIHtcbiAgICAgICAgLy8gQ2FyZXRha2VyIG5vdGU6IHRoZSBjb21wb25lbnQgbWlnaHQgYmUgZGVzdHJveWVkIGJlZm9yZSB0aGUgc2NyaXB0IGlzIGxvYWRlZCBhbmQgaXRzIGNvZGUgaXMgZXhlY3V0ZWQuXG4gICAgICAgIC8vIFRoaXMgd2lsbCBsZWFkIHRvIHJ1bnRpbWUgZXhjZXB0aW9ucyBpZiBgaW5pdGlhbGlzZWAgd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgY29tcG9uZW50IGhhcyBiZWVuIGRlc3Ryb3llZC5cbiAgICAgICAgU2NyaXB0TG9hZGVyLmxvYWQodGhpcy5fZWxlbWVudC5vd25lckRvY3VtZW50LCB0aGlzLmdldFNjcmlwdFNyYygpKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMuaW5pdGlhbGlzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuXG4gICAgaWYgKGdldFRpbnltY2UoKSAhPT0gbnVsbCkge1xuICAgICAgZ2V0VGlueW1jZSgpLnJlbW92ZSh0aGlzLl9lZGl0b3IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVFbGVtZW50KCkge1xuICAgIGNvbnN0IHRhZ05hbWUgPSB0eXBlb2YgdGhpcy50YWdOYW1lID09PSAnc3RyaW5nJyA/IHRoaXMudGFnTmFtZSA6ICdkaXYnO1xuICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMuaW5saW5lID8gdGFnTmFtZSA6ICd0ZXh0YXJlYScpO1xuICAgIGlmICh0aGlzLl9lbGVtZW50KSB7XG4gICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCkpIHtcbiAgICAgICAgLyogZXNsaW50IG5vLWNvbnNvbGU6IFtcImVycm9yXCIsIHsgYWxsb3c6IFtcIndhcm5cIl0gfV0gKi9cbiAgICAgICAgY29uc29sZS53YXJuKGBUaW55TUNFLUFuZ3VsYXI6IGFuIGVsZW1lbnQgd2l0aCBpZCBbJHt0aGlzLmlkfV0gYWxyZWFkeSBleGlzdHMuIEVkaXRvcnMgd2l0aCBkdXBsaWNhdGUgSWQgd2lsbCBub3QgYmUgYWJsZSB0byBtb3VudGApO1xuICAgICAgfVxuICAgICAgdGhpcy5fZWxlbWVudC5pZCA9IHRoaXMuaWQ7XG4gICAgICBpZiAoaXNUZXh0YXJlYSh0aGlzLl9lbGVtZW50KSkge1xuICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIH1cbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9lbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGlzZSA9ICgpOiB2b2lkID0+IHtcbiAgICBjb25zdCBmaW5hbEluaXQ6IEVkaXRvck9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLmluaXQsXG4gICAgICBzZWxlY3RvcjogdW5kZWZpbmVkLFxuICAgICAgdGFyZ2V0OiB0aGlzLl9lbGVtZW50LFxuICAgICAgaW5saW5lOiB0aGlzLmlubGluZSxcbiAgICAgIHJlYWRvbmx5OiB0aGlzLmRpc2FibGVkLFxuICAgICAgcGx1Z2luczogbWVyZ2VQbHVnaW5zKCh0aGlzLmluaXQgJiYgdGhpcy5pbml0LnBsdWdpbnMpIGFzIHN0cmluZywgdGhpcy5wbHVnaW5zKSxcbiAgICAgIHRvb2xiYXI6IHRoaXMudG9vbGJhciB8fCAodGhpcy5pbml0ICYmIHRoaXMuaW5pdC50b29sYmFyKSxcbiAgICAgIHNldHVwOiAoZWRpdG9yOiBUaW55TUNFRWRpdG9yKSA9PiB7XG4gICAgICAgIHRoaXMuX2VkaXRvciA9IGVkaXRvcjtcblxuICAgICAgICBsaXN0ZW5UaW55TUNFRXZlbnQoZWRpdG9yLCAnaW5pdCcsIHRoaXMuZGVzdHJveSQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbml0RWRpdG9yKGVkaXRvcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJpbmRIYW5kbGVycyh0aGlzLCBlZGl0b3IsIHRoaXMuZGVzdHJveSQpO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXQgJiYgdHlwZW9mIHRoaXMuaW5pdC5zZXR1cCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXMuaW5pdC5zZXR1cChlZGl0b3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChpc1RleHRhcmVhKHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBnZXRUaW55bWNlKCkuaW5pdChmaW5hbEluaXQpO1xuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgZ2V0U2NyaXB0U3JjKCkge1xuICAgIHJldHVybiBpc051bGxPclVuZGVmaW5lZCh0aGlzLnRpbnltY2VTY3JpcHRTcmMpID9cbiAgICAgIGBodHRwczovL2Nkbi50aW55LmNsb3VkLzEvJHt0aGlzLmFwaUtleX0vdGlueW1jZS8ke3RoaXMuY2xvdWRDaGFubmVsfS90aW55bWNlLm1pbi5qc2AgOlxuICAgICAgdGhpcy50aW55bWNlU2NyaXB0U3JjO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RWRpdG9yKGVkaXRvcjogVGlueU1DRUVkaXRvcikge1xuICAgIGxpc3RlblRpbnlNQ0VFdmVudChlZGl0b3IsICdibHVyJywgdGhpcy5kZXN0cm95JCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpKTtcbiAgICB9KTtcblxuICAgIGxpc3RlblRpbnlNQ0VFdmVudChlZGl0b3IsIHRoaXMubW9kZWxFdmVudHMsIHRoaXMuZGVzdHJveSQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuZW1pdE9uQ2hhbmdlKGVkaXRvcikpO1xuICAgIH0pO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmluaXRpYWxWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGVkaXRvci5zZXRDb250ZW50KHRoaXMuaW5pdGlhbFZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgIGlmIChlZGl0b3IuZ2V0Q29udGVudCgpICE9PSB0aGlzLmluaXRpYWxWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuZW1pdE9uQ2hhbmdlKGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub25Jbml0TmdNb2RlbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5vbkluaXROZ01vZGVsLmVtaXQoZWRpdG9yIGFzIHVua25vd24gYXMgRXZlbnRPYmo8YW55Pik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdE9uQ2hhbmdlKGVkaXRvcjogVGlueU1DRUVkaXRvcikge1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayhlZGl0b3IuZ2V0Q29udGVudCh7IGZvcm1hdDogdGhpcy5vdXRwdXRGb3JtYXQgfSkpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RpbnltY2UtYW5ndWxhci1jb21wb25lbnQvc3JjL21haW4vdHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0RBQStEO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBRUwsU0FBUyxFQUVULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLFdBQVcsRUFDWCxjQUFjLEVBQ2QsUUFBUSxFQUVSLHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzSCxPQUFPLEVBQVksTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLckQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUVuRixNQUFNLCtCQUErQixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDOUMsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBY0Y7O0dBRUc7QUFD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QUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcGFyYW1ldGVyLXByb3BlcnRpZXMgKi9cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgUExBVEZPUk1fSUQsXG4gIEluamVjdGlvblRva2VuLFxuICBPcHRpb25hbCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0VGlueW1jZSB9IGZyb20gJy4uL1RpbnlNQ0UnO1xuaW1wb3J0IHsgbGlzdGVuVGlueU1DRUV2ZW50LCBiaW5kSGFuZGxlcnMsIGlzVGV4dGFyZWEsIG1lcmdlUGx1Z2lucywgdXVpZCwgbm9vcCwgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICcuLi91dGlscy9VdGlscyc7XG5pbXBvcnQgeyBFdmVudE9iaiwgRXZlbnRzIH0gZnJvbSAnLi9FdmVudHMnO1xuaW1wb3J0IHsgU2NyaXB0TG9hZGVyIH0gZnJvbSAnLi4vdXRpbHMvU2NyaXB0TG9hZGVyJztcbmltcG9ydCB7IEVkaXRvciBhcyBUaW55TUNFRWRpdG9yLCBUaW55TUNFIH0gZnJvbSAndGlueW1jZSc7XG5cbnR5cGUgRWRpdG9yT3B0aW9ucyA9IFBhcmFtZXRlcnM8VGlueU1DRVsnaW5pdCddPlswXTtcblxuZXhwb3J0IGNvbnN0IFRJTllNQ0VfU0NSSVBUX1NSQyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdUSU5ZTUNFX1NDUklQVF9TUkMnKTtcblxuY29uc3QgRURJVE9SX0NPTVBPTkVOVF9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVkaXRvckNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlXG59O1xuXG5leHBvcnQgdHlwZSBWZXJzaW9uID0gYCR7JzQnIHwgJzUnIHwgJzYnIHwgJzcnfSR7JycgfCAnLWRldicgfCAnLXRlc3RpbmcnIHwgYC4ke251bWJlcn1gIHwgYC4ke251bWJlcn0uJHtudW1iZXJ9YH1gO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlZGl0b3InLFxuICB0ZW1wbGF0ZTogJycsXG4gIHN0eWxlczogWyAnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfScgXSxcbiAgcHJvdmlkZXJzOiBbIEVESVRPUl9DT01QT05FTlRfVkFMVUVfQUNDRVNTT1IgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG4vKipcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vd3d3LnRpbnkuY2xvdWQvZG9jcy90aW55bWNlLzcvYW5ndWxhci1yZWYvfSBmb3IgdGhlIFRpbnlNQ0UgQW5ndWxhciBUZWNobmljYWwgUmVmZXJlbmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBFdmVudHMgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBwdWJsaWMgY2xvdWRDaGFubmVsOiBWZXJzaW9uID0gJzcnO1xuICBASW5wdXQoKSBwdWJsaWMgYXBpS2V5ID0gJ25vLWFwaS1rZXknO1xuICBASW5wdXQoKSBwdWJsaWMgbGljZW5zZUtleT86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGluaXQ/OiBFZGl0b3JPcHRpb25zO1xuICBASW5wdXQoKSBwdWJsaWMgaWQgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGluaXRpYWxWYWx1ZT86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIG91dHB1dEZvcm1hdD86ICdodG1sJyB8ICd0ZXh0JztcbiAgQElucHV0KCkgcHVibGljIGlubGluZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyB0YWdOYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcGx1Z2lucz86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHRvb2xiYXI/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgQElucHV0KCkgcHVibGljIG1vZGVsRXZlbnRzID0gJ2NoYW5nZSBpbnB1dCB1bmRvIHJlZG8nO1xuICBASW5wdXQoKSBwdWJsaWMgYWxsb3dlZEV2ZW50cz86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBASW5wdXQoKSBwdWJsaWMgaWdub3JlRXZlbnRzPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWw7XG4gICAgaWYgKHRoaXMuX2VkaXRvciAmJiB0aGlzLl9lZGl0b3IuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5fZWRpdG9yLm1vZGU/LnNldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLl9lZGl0b3IubW9kZS5zZXQodmFsID8gJ3JlYWRvbmx5JyA6ICdkZXNpZ24nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2VkaXRvci5zZXRNb2RlKHZhbCA/ICdyZWFkb25seScgOiAnZGVzaWduJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVkaXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZWRpdG9yO1xuICB9XG5cbiAgcHVibGljIG5nWm9uZTogTmdab25lO1xuXG4gIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgX2VsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ/OiBib29sZWFuO1xuICBwcml2YXRlIF9lZGl0b3I/OiBUaW55TUNFRWRpdG9yO1xuXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2sgPSBub29wO1xuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IGFueTtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRJTllNQ0VfU0NSSVBUX1NSQykgcHJpdmF0ZSB0aW55bWNlU2NyaXB0U3JjPzogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy5uZ1pvbmUgPSBuZ1pvbmU7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9lZGl0b3IgJiYgdGhpcy5fZWRpdG9yLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLl9lZGl0b3Iuc2V0Q29udGVudChpc051bGxPclVuZGVmaW5lZCh2YWx1ZSkgPyAnJyA6IHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsVmFsdWUgPSB2YWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMuaWQgPSB0aGlzLmlkIHx8IHV1aWQoJ3RpbnktYW5ndWxhcicpO1xuICAgICAgdGhpcy5pbmxpbmUgPSB0aGlzLmlubGluZSAhPT0gdW5kZWZpbmVkID8gdGhpcy5pbmxpbmUgIT09IGZhbHNlIDogISEodGhpcy5pbml0Py5pbmxpbmUpO1xuICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KCk7XG4gICAgICBpZiAoZ2V0VGlueW1jZSgpICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGlzZSgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9lbGVtZW50ICYmIHRoaXMuX2VsZW1lbnQub3duZXJEb2N1bWVudCkge1xuICAgICAgICAvLyBDYXJldGFrZXIgbm90ZTogdGhlIGNvbXBvbmVudCBtaWdodCBiZSBkZXN0cm95ZWQgYmVmb3JlIHRoZSBzY3JpcHQgaXMgbG9hZGVkIGFuZCBpdHMgY29kZSBpcyBleGVjdXRlZC5cbiAgICAgICAgLy8gVGhpcyB3aWxsIGxlYWQgdG8gcnVudGltZSBleGNlcHRpb25zIGlmIGBpbml0aWFsaXNlYCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBjb21wb25lbnQgaGFzIGJlZW4gZGVzdHJveWVkLlxuICAgICAgICBTY3JpcHRMb2FkZXIubG9hZCh0aGlzLl9lbGVtZW50Lm93bmVyRG9jdW1lbnQsIHRoaXMuZ2V0U2NyaXB0U3JjKCkpXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5pbml0aWFsaXNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG5cbiAgICBpZiAoZ2V0VGlueW1jZSgpICE9PSBudWxsKSB7XG4gICAgICBnZXRUaW55bWNlKCkucmVtb3ZlKHRoaXMuX2VkaXRvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZUVsZW1lbnQoKSB7XG4gICAgY29uc3QgdGFnTmFtZSA9IHR5cGVvZiB0aGlzLnRhZ05hbWUgPT09ICdzdHJpbmcnID8gdGhpcy50YWdOYW1lIDogJ2Rpdic7XG4gICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5pbmxpbmUgPyB0YWdOYW1lIDogJ3RleHRhcmVhJyk7XG4gICAgaWYgKHRoaXMuX2VsZW1lbnQpIHtcbiAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKSkge1xuICAgICAgICAvKiBlc2xpbnQgbm8tY29uc29sZTogW1wiZXJyb3JcIiwgeyBhbGxvdzogW1wid2FyblwiXSB9XSAqL1xuICAgICAgICBjb25zb2xlLndhcm4oYFRpbnlNQ0UtQW5ndWxhcjogYW4gZWxlbWVudCB3aXRoIGlkIFske3RoaXMuaWR9XSBhbHJlYWR5IGV4aXN0cy4gRWRpdG9ycyB3aXRoIGR1cGxpY2F0ZSBJZCB3aWxsIG5vdCBiZSBhYmxlIHRvIG1vdW50YCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9lbGVtZW50LmlkID0gdGhpcy5pZDtcbiAgICAgIGlmIChpc1RleHRhcmVhKHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgfVxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXNlID0gKCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGZpbmFsSW5pdDogRWRpdG9yT3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMuaW5pdCxcbiAgICAgIHNlbGVjdG9yOiB1bmRlZmluZWQsXG4gICAgICB0YXJnZXQ6IHRoaXMuX2VsZW1lbnQsXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lLFxuICAgICAgcmVhZG9ubHk6IHRoaXMuZGlzYWJsZWQsXG4gICAgICBsaWNlbnNlX2tleTogdGhpcy5saWNlbnNlS2V5LFxuICAgICAgcGx1Z2luczogbWVyZ2VQbHVnaW5zKCh0aGlzLmluaXQgJiYgdGhpcy5pbml0LnBsdWdpbnMpIGFzIHN0cmluZywgdGhpcy5wbHVnaW5zKSxcbiAgICAgIHRvb2xiYXI6IHRoaXMudG9vbGJhciB8fCAodGhpcy5pbml0ICYmIHRoaXMuaW5pdC50b29sYmFyKSxcbiAgICAgIHNldHVwOiAoZWRpdG9yOiBUaW55TUNFRWRpdG9yKSA9PiB7XG4gICAgICAgIHRoaXMuX2VkaXRvciA9IGVkaXRvcjtcblxuICAgICAgICBsaXN0ZW5UaW55TUNFRXZlbnQoZWRpdG9yLCAnaW5pdCcsIHRoaXMuZGVzdHJveSQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbml0RWRpdG9yKGVkaXRvcik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJpbmRIYW5kbGVycyh0aGlzLCBlZGl0b3IsIHRoaXMuZGVzdHJveSQpO1xuXG4gICAgICAgIGlmICh0aGlzLmluaXQgJiYgdHlwZW9mIHRoaXMuaW5pdC5zZXR1cCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXMuaW5pdC5zZXR1cChlZGl0b3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChpc1RleHRhcmVhKHRoaXMuX2VsZW1lbnQpKSB7XG4gICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBnZXRUaW55bWNlKCkuaW5pdChmaW5hbEluaXQpO1xuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgZ2V0U2NyaXB0U3JjKCkge1xuICAgIHJldHVybiBpc051bGxPclVuZGVmaW5lZCh0aGlzLnRpbnltY2VTY3JpcHRTcmMpID9cbiAgICAgIGBodHRwczovL2Nkbi50aW55LmNsb3VkLzEvJHt0aGlzLmFwaUtleX0vdGlueW1jZS8ke3RoaXMuY2xvdWRDaGFubmVsfS90aW55bWNlLm1pbi5qc2AgOlxuICAgICAgdGhpcy50aW55bWNlU2NyaXB0U3JjO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RWRpdG9yKGVkaXRvcjogVGlueU1DRUVkaXRvcikge1xuICAgIGxpc3RlblRpbnlNQ0VFdmVudChlZGl0b3IsICdibHVyJywgdGhpcy5kZXN0cm95JCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpKTtcbiAgICB9KTtcblxuICAgIGxpc3RlblRpbnlNQ0VFdmVudChlZGl0b3IsIHRoaXMubW9kZWxFdmVudHMsIHRoaXMuZGVzdHJveSQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuZW1pdE9uQ2hhbmdlKGVkaXRvcikpO1xuICAgIH0pO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmluaXRpYWxWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGVkaXRvci5zZXRDb250ZW50KHRoaXMuaW5pdGlhbFZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgIGlmIChlZGl0b3IuZ2V0Q29udGVudCgpICE9PSB0aGlzLmluaXRpYWxWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuZW1pdE9uQ2hhbmdlKGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMub25Jbml0TmdNb2RlbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5vbkluaXROZ01vZGVsLmVtaXQoZWRpdG9yIGFzIHVua25vd24gYXMgRXZlbnRPYmo8YW55Pik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdE9uQ2hhbmdlKGVkaXRvcjogVGlueU1DRUVkaXRvcikge1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayhlZGl0b3IuZ2V0Q29udGVudCh7IGZvcm1hdDogdGhpcy5vdXRwdXRGb3JtYXQgfSkpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -5,33 +5,34 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
import {
|
|
9
|
-
const
|
|
10
|
-
script$: null,
|
|
11
|
-
});
|
|
8
|
+
import { fromEvent, shareReplay, switchMap, BehaviorSubject, first, filter, map } from 'rxjs';
|
|
9
|
+
const firstEmission = () => (source) => source.pipe(first(), map(() => undefined));
|
|
12
10
|
const CreateScriptLoader = () => {
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
// Only to be used by tests.
|
|
27
|
-
const reinitialize = () => {
|
|
28
|
-
state = createState();
|
|
29
|
-
};
|
|
11
|
+
const params$ = new BehaviorSubject(null);
|
|
12
|
+
const loaded$ = params$.pipe(filter(Boolean), switchMap(([doc, url]) => {
|
|
13
|
+
const scriptTag = doc.createElement('script');
|
|
14
|
+
scriptTag.referrerPolicy = 'origin';
|
|
15
|
+
scriptTag.type = 'application/javascript';
|
|
16
|
+
scriptTag.src = url;
|
|
17
|
+
doc.head.appendChild(scriptTag);
|
|
18
|
+
return fromEvent(scriptTag, 'load').pipe(firstEmission());
|
|
19
|
+
}),
|
|
20
|
+
// Caretaker note: `loaded$` is a multicast observable since it's piped with `shareReplay`,
|
|
21
|
+
// so if there're multiple editor components simultaneously on the page, they'll subscribe to the internal
|
|
22
|
+
// `ReplaySubject`. The script will be loaded only once, and `ReplaySubject` will cache the result.
|
|
23
|
+
shareReplay({ bufferSize: 1, refCount: true }));
|
|
30
24
|
return {
|
|
31
|
-
load
|
|
32
|
-
|
|
25
|
+
load: (...args) => {
|
|
26
|
+
if (!params$.getValue()) {
|
|
27
|
+
params$.next(args);
|
|
28
|
+
}
|
|
29
|
+
return loaded$;
|
|
30
|
+
},
|
|
31
|
+
reinitialize: () => {
|
|
32
|
+
params$.next(null);
|
|
33
|
+
},
|
|
33
34
|
};
|
|
34
35
|
};
|
|
35
36
|
const ScriptLoader = CreateScriptLoader();
|
|
36
37
|
export { ScriptLoader };
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyaXB0TG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGlueW1jZS1hbmd1bGFyLWNvbXBvbmVudC9zcmMvbWFpbi90cy91dGlscy9TY3JpcHRMb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVExRyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQTJCLEVBQW9CLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBRTFILE1BQU0sa0JBQWtCLEdBQUcsR0FBaUIsRUFBRTtJQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBMEMsSUFBSSxDQUFDLENBQUM7SUFDbkYsTUFBTSxPQUFPLEdBQXFCLE9BQU8sQ0FBQyxJQUFJLENBQzVDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDZixTQUFTLENBQUMsQ0FBQyxDQUFFLEdBQUcsRUFBRSxHQUFHLENBQUUsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7UUFDcEMsU0FBUyxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztRQUMxQyxTQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNwQixHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxPQUFPLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBQ0YsMkZBQTJGO0lBQzNGLDBHQUEwRztJQUMxRyxtR0FBbUc7SUFDbkcsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDL0MsQ0FBQztJQUVGLE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixFQUFFLENBQUM7QUFFMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTctcHJlc2VudCwgRXBob3gsIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMiBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIEJlaGF2aW9yU3ViamVjdCwgZmlyc3QsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmludGVyZmFjZSBTY3JpcHRMb2FkZXIge1xuICBsb2FkOiAoZG9jOiBEb2N1bWVudCwgdXJsOiBzdHJpbmcpID0+IE9ic2VydmFibGU8dm9pZD47XG4gIC8qKiBJbnRlbmRlZCB0byBvbmx5IHRvIGJlIHVzZWQgYnkgdGVzdHMuICovXG4gIHJlaW5pdGlhbGl6ZTogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgZmlyc3RFbWlzc2lvbiA9ICgpID0+IChzb3VyY2U6IE9ic2VydmFibGU8dW5rbm93bj4pOiBPYnNlcnZhYmxlPHZvaWQ+ID0+IHNvdXJjZS5waXBlKGZpcnN0KCksIG1hcCgoKSA9PiB1bmRlZmluZWQpKTtcblxuY29uc3QgQ3JlYXRlU2NyaXB0TG9hZGVyID0gKCk6IFNjcmlwdExvYWRlciA9PiB7XG4gIGNvbnN0IHBhcmFtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcmFtZXRlcnM8U2NyaXB0TG9hZGVyWydsb2FkJ10+IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGxvYWRlZCQ6IE9ic2VydmFibGU8dm9pZD4gPSBwYXJhbXMkLnBpcGUoXG4gICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgIHN3aXRjaE1hcCgoWyBkb2MsIHVybCBdKSA9PiB7XG4gICAgICBjb25zdCBzY3JpcHRUYWcgPSBkb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHRUYWcucmVmZXJyZXJQb2xpY3kgPSAnb3JpZ2luJztcbiAgICAgIHNjcmlwdFRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnO1xuICAgICAgc2NyaXB0VGFnLnNyYyA9IHVybDtcbiAgICAgIGRvYy5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdFRhZyk7XG4gICAgICByZXR1cm4gZnJvbUV2ZW50KHNjcmlwdFRhZywgJ2xvYWQnKS5waXBlKGZpcnN0RW1pc3Npb24oKSk7XG4gICAgfSksXG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IGBsb2FkZWQkYCBpcyBhIG11bHRpY2FzdCBvYnNlcnZhYmxlIHNpbmNlIGl0J3MgcGlwZWQgd2l0aCBgc2hhcmVSZXBsYXlgLFxuICAgIC8vIHNvIGlmIHRoZXJlJ3JlIG11bHRpcGxlIGVkaXRvciBjb21wb25lbnRzIHNpbXVsdGFuZW91c2x5IG9uIHRoZSBwYWdlLCB0aGV5J2xsIHN1YnNjcmliZSB0byB0aGUgaW50ZXJuYWxcbiAgICAvLyBgUmVwbGF5U3ViamVjdGAuIFRoZSBzY3JpcHQgd2lsbCBiZSBsb2FkZWQgb25seSBvbmNlLCBhbmQgYFJlcGxheVN1YmplY3RgIHdpbGwgY2FjaGUgdGhlIHJlc3VsdC5cbiAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBsb2FkOiAoLi4uYXJncykgPT4ge1xuICAgICAgaWYgKCFwYXJhbXMkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgcGFyYW1zJC5uZXh0KGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxvYWRlZCQ7XG4gICAgfSxcbiAgICByZWluaXRpYWxpemU6ICgpID0+IHtcbiAgICAgIHBhcmFtcyQubmV4dChudWxsKTtcbiAgICB9LFxuICB9O1xufTtcblxuY29uc3QgU2NyaXB0TG9hZGVyID0gQ3JlYXRlU2NyaXB0TG9hZGVyKCk7XG5cbmV4cG9ydCB7IFNjcmlwdExvYWRlciB9O1xuIl19
|
package/esm2022/utils/Utils.mjs
CHANGED
|
@@ -19,8 +19,8 @@ const bindHandlers = (ctx, editor, destroy$) => {
|
|
|
19
19
|
// being re-entered. We don't want to run `ApplicationRef.tick()` if anyone listens to the specific event
|
|
20
20
|
// within the template. E.g. if the `onSelectionChange` is not listened within the template like:
|
|
21
21
|
// `<editor (onSelectionChange)="..."></editor>`
|
|
22
|
-
// then
|
|
23
|
-
if (eventEmitter
|
|
22
|
+
// then it won't be "observed", and we won't run "dead" change detection.
|
|
23
|
+
if (isObserved(eventEmitter)) {
|
|
24
24
|
ctx.ngZone.run(() => eventEmitter.emit({ event, editor }));
|
|
25
25
|
}
|
|
26
26
|
});
|
|
@@ -59,5 +59,9 @@ const mergePlugins = (initPlugins, inputPlugins) => normalizePluginArray(initPlu
|
|
|
59
59
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
60
60
|
const noop = () => { };
|
|
61
61
|
const isNullOrUndefined = (value) => value === null || value === undefined;
|
|
62
|
+
const isObserved = (o) =>
|
|
63
|
+
// RXJS is making the `observers` property internal in v8. So this is intended as a backwards compatible way of
|
|
64
|
+
// checking if a subject has observers.
|
|
65
|
+
o.observed || o.observers?.length > 0;
|
|
62
66
|
export { listenTinyMCEEvent, bindHandlers, uuid, isTextarea, normalizePluginArray, mergePlugins, noop, isNullOrUndefined };
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90aW55bWNlLWFuZ3VsYXItY29tcG9uZW50L3NyYy9tYWluL3RzL3V0aWxzL1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUdILE9BQU8sRUFBRSxTQUFTLEVBQVcsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXJELE9BQU8sRUFBRSxXQUFXLEVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RCx1SEFBdUg7QUFDdkgsa0RBQWtEO0FBQ2xELE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsTUFBVyxFQUNYLFNBQWlCLEVBQ2pCLFFBQXVCLEVBQ3ZCLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBd0YsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFOUksTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFvQixFQUFFLE1BQVcsRUFBRSxRQUF1QixFQUFRLEVBQUU7SUFDeEYsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUNsQyxNQUFNLFlBQVksR0FBc0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZELGtCQUFrQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9FLDJHQUEyRztZQUMzRyx5R0FBeUc7WUFDekcsaUdBQWlHO1lBQ2pHLGdEQUFnRDtZQUNoRCx5RUFBeUU7WUFDekUsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMs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QUUzRyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQW1CLEVBQVcsRUFBRTtBQUNsRCwrR0FBK0c7QUFDL0csdUNBQXVDO0FBQ3ZDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRXhDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLElBQUksRUFDSixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixJQUFJLEVBQ0osaUJBQWlCLEVBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxNy1wcmVzZW50LCBFcGhveCwgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhhc0V2ZW50VGFyZ2V0QWRkUmVtb3ZlIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21FdmVudCc7XG5cbmltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2VkaXRvci9lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IHZhbGlkRXZlbnRzLCBFdmVudHMgfSBmcm9tICcuLi9lZGl0b3IvRXZlbnRzJztcblxuLy8gQ2FyZXRha2VyIG5vdGU6IGBmcm9tRXZlbnRgIHN1cHBvcnRzIHBhc3NpbmcgSlF1ZXJ5LXN0eWxlIGV2ZW50IHRhcmdldHMsIHRoZSBlZGl0b3IgaGFzIGBvbmAgYW5kIGBvZmZgIG1ldGhvZHMgd2hpY2hcbi8vIHdpbGwgYmUgaW52b2tlZCB1cG9uIHN1YnNjcmlwdGlvbiBhbmQgdGVhcmRvd24uXG5jb25zdCBsaXN0ZW5UaW55TUNFRXZlbnQgPSAoXG4gIGVkaXRvcjogYW55LFxuICBldmVudE5hbWU6IHN0cmluZyxcbiAgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD5cbikgPT4gZnJvbUV2ZW50KGVkaXRvciBhcyBIYXNFdmVudFRhcmdldEFkZFJlbW92ZTx1bmtub3duPiB8IEFycmF5TGlrZTxIYXNFdmVudFRhcmdldEFkZFJlbW92ZTx1bmtub3duPj4sIGV2ZW50TmFtZSkucGlwZSh0YWtlVW50aWwoZGVzdHJveSQpKTtcblxuY29uc3QgYmluZEhhbmRsZXJzID0gKGN0eDogRWRpdG9yQ29tcG9uZW50LCBlZGl0b3I6IGFueSwgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4pOiB2b2lkID0+IHtcbiAgY29uc3QgYWxsb3dlZEV2ZW50cyA9IGdldFZhbGlkRXZlbnRzKGN0eCk7XG4gIGFsbG93ZWRFdmVudHMuZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XG4gICAgY29uc3QgZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IGN0eFtldmVudE5hbWVdO1xuXG4gICAgbGlzdGVuVGlueU1DRUV2ZW50KGVkaXRvciwgZXZlbnROYW1lLnN1YnN0cmluZygyKSwgZGVzdHJveSQpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIC8vIENhcmV0YWtlciBub3RlOiBgbmdab25lLnJ1bigpYCBydW5zIGNoYW5nZSBkZXRlY3Rpb24gc2luY2UgaXQgbm90aWZpZXMgdGhlIGZvcmtlZCBBbmd1bGFyIHpvbmUgdGhhdCBpdCdzXG4gICAgICAvLyBiZWluZyByZS1lbnRlcmVkLiBXZSBkb24ndCB3YW50IHRvIHJ1biBgQXBwbGljYXRpb25SZWYudGljaygpYCBpZiBhbnlvbmUgbGlzdGVucyB0byB0aGUgc3BlY2lmaWMgZXZlbnRcbiAgICAgIC8vIHdpdGhpbiB0aGUgdGVtcGxhdGUuIEUuZy4gaWYgdGhlIGBvblNlbGVjdGlvbkNoYW5nZWAgaXMgbm90IGxpc3RlbmVkIHdpdGhpbiB0aGUgdGVtcGxhdGUgbGlrZTpcbiAgICAgIC8vIGA8ZWRpdG9yIChvblNlbGVjdGlvbkNoYW5nZSk9XCIuLi5cIj48L2VkaXRvcj5gXG4gICAgICAvLyB0aGVuIGl0IHdvbid0IGJlIFwib2JzZXJ2ZWRcIiwgYW5kIHdlIHdvbid0IHJ1biBcImRlYWRcIiBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgICAgaWYgKGlzT2JzZXJ2ZWQoZXZlbnRFbWl0dGVyKSkge1xuICAgICAgICBjdHgubmdab25lLnJ1bigoKSA9PiBldmVudEVtaXR0ZXIuZW1pdCh7IGV2ZW50LCBlZGl0b3IgfSkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbmNvbnN0IGdldFZhbGlkRXZlbnRzID0gKGN0eDogRWRpdG9yQ29tcG9uZW50KTogKGtleW9mIEV2ZW50cylbXSA9PiB7XG4gIGNvbnN0IGlnbm9yZWRFdmVudHMgPSBwYXJzZVN0cmluZ1Byb3BlcnR5KGN0eC5pZ25vcmVFdmVudHMsIFtdKTtcbiAgY29uc3QgYWxsb3dlZEV2ZW50cyA9IHBhcnNlU3RyaW5nUHJvcGVydHkoY3R4LmFsbG93ZWRFdmVudHMsIHZhbGlkRXZlbnRzKS5maWx0ZXIoXG4gICAgKGV2ZW50KSA9PiB2YWxpZEV2ZW50cy5pbmNsdWRlcyhldmVudCBhcyAoa2V5b2YgRXZlbnRzKSkgJiYgIWlnbm9yZWRFdmVudHMuaW5jbHVkZXMoZXZlbnQpKSBhcyAoa2V5b2YgRXZlbnRzKVtdO1xuICByZXR1cm4gYWxsb3dlZEV2ZW50cztcbn07XG5cbmNvbnN0IHBhcnNlU3RyaW5nUHJvcGVydHkgPSAocHJvcGVydHk6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkLCBkZWZhdWx0VmFsdWU6IChrZXlvZiBFdmVudHMpW10pOiBzdHJpbmdbXSA9PiB7XG4gIGlmICggdHlwZW9mIHByb3BlcnR5ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwcm9wZXJ0eS5zcGxpdCgnLCcpLm1hcCgodmFsdWUpID0+IHZhbHVlLnRyaW0oKSk7XG4gIH1cbiAgaWYgKCBBcnJheS5pc0FycmF5KHByb3BlcnR5KSkge1xuICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFZhbHVlO1xufTtcblxubGV0IHVuaXF1ZSA9IDA7XG5cbmNvbnN0IHV1aWQgPSAocHJlZml4OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgY29uc3QgdGltZSA9IGRhdGUuZ2V0VGltZSgpO1xuICBjb25zdCByYW5kb20gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMDAwKTtcblxuICB1bmlxdWUrKztcblxuICByZXR1cm4gcHJlZml4ICsgJ18nICsgcmFuZG9tICsgdW5pcXVlICsgU3RyaW5nKHRpbWUpO1xufTtcblxuY29uc3QgaXNUZXh0YXJlYSA9IChlbGVtZW50PzogRWxlbWVudCk6IGVsZW1lbnQgaXMgSFRNTFRleHRBcmVhRWxlbWVudCA9PiB0eXBlb2YgZWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICd0ZXh0YXJlYSc7XG5cbmNvbnN0IG5vcm1hbGl6ZVBsdWdpbkFycmF5ID0gKHBsdWdpbnM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZ1tdID0+IHtcbiAgaWYgKHR5cGVvZiBwbHVnaW5zID09PSAndW5kZWZpbmVkJyB8fCBwbHVnaW5zID09PSAnJykge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBBcnJheS5pc0FycmF5KHBsdWdpbnMpID8gcGx1Z2lucyA6IHBsdWdpbnMuc3BsaXQoJyAnKTtcbn07XG5cbmNvbnN0IG1lcmdlUGx1Z2lucyA9IChpbml0UGx1Z2luczogc3RyaW5nIHwgc3RyaW5nW10sIGlucHV0UGx1Z2lucz86IHN0cmluZyB8IHN0cmluZ1tdKSA9PlxuICBub3JtYWxpemVQbHVnaW5BcnJheShpbml0UGx1Z2lucykuY29uY2F0KG5vcm1hbGl6ZVBsdWdpbkFycmF5KGlucHV0UGx1Z2lucykpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG5jb25zdCBub29wOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbmNvbnN0IGlzTnVsbE9yVW5kZWZpbmVkID0gKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudWxsIHwgdW5kZWZpbmVkID0+IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG5cbmNvbnN0IGlzT2JzZXJ2ZWQgPSAobzogU3ViamVjdDx1bmtub3duPik6IGJvb2xlYW4gPT5cbiAgLy8gUlhKUyBpcyBtYWtpbmcgdGhlIGBvYnNlcnZlcnNgIHByb3BlcnR5IGludGVybmFsIGluIHY4LiBTbyB0aGlzIGlzIGludGVuZGVkIGFzIGEgYmFja3dhcmRzIGNvbXBhdGlibGUgd2F5IG9mXG4gIC8vIGNoZWNraW5nIGlmIGEgc3ViamVjdCBoYXMgb2JzZXJ2ZXJzLlxuICBvLm9ic2VydmVkIHx8IG8ub2JzZXJ2ZXJzPy5sZW5ndGggPiAwO1xuXG5leHBvcnQge1xuICBsaXN0ZW5UaW55TUNFRXZlbnQsXG4gIGJpbmRIYW5kbGVycyxcbiAgdXVpZCxcbiAgaXNUZXh0YXJlYSxcbiAgbm9ybWFsaXplUGx1Z2luQXJyYXksXG4gIG1lcmdlUGx1Z2lucyxcbiAgbm9vcCxcbiAgaXNOdWxsT3JVbmRlZmluZWRcbn07XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { EventEmitter, Directive, Output, InjectionToken, forwardRef, PLATFORM_ID, Component, ChangeDetectionStrategy, Inject, Optional, Input, NgModule } from '@angular/core';
|
|
3
3
|
import { isPlatformBrowser, CommonModule } from '@angular/common';
|
|
4
4
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
5
|
-
import { takeUntil, fromEvent,
|
|
5
|
+
import { takeUntil, fromEvent, first, map, BehaviorSubject, filter, switchMap, shareReplay, Subject } from 'rxjs';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Copyright (c) 2017-present, Ephox, Inc.
|
|
@@ -20,6 +20,9 @@ class Events {
|
|
|
20
20
|
onBeforePaste = new EventEmitter();
|
|
21
21
|
onBlur = new EventEmitter();
|
|
22
22
|
onClick = new EventEmitter();
|
|
23
|
+
onCompositionEnd = new EventEmitter();
|
|
24
|
+
onCompositionStart = new EventEmitter();
|
|
25
|
+
onCompositionUpdate = new EventEmitter();
|
|
23
26
|
onContextMenu = new EventEmitter();
|
|
24
27
|
onCopy = new EventEmitter();
|
|
25
28
|
onCut = new EventEmitter();
|
|
@@ -60,6 +63,7 @@ class Events {
|
|
|
60
63
|
onGetContent = new EventEmitter();
|
|
61
64
|
onHide = new EventEmitter();
|
|
62
65
|
onInit = new EventEmitter();
|
|
66
|
+
onInput = new EventEmitter();
|
|
63
67
|
onInitNgModel = new EventEmitter();
|
|
64
68
|
onLoadContent = new EventEmitter();
|
|
65
69
|
onNodeChange = new EventEmitter();
|
|
@@ -83,7 +87,7 @@ class Events {
|
|
|
83
87
|
onUndo = new EventEmitter();
|
|
84
88
|
onVisualAid = new EventEmitter();
|
|
85
89
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: Events, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
86
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: Events, outputs: { onBeforePaste: "onBeforePaste", onBlur: "onBlur", onClick: "onClick", onContextMenu: "onContextMenu", onCopy: "onCopy", onCut: "onCut", onDblclick: "onDblclick", onDrag: "onDrag", onDragDrop: "onDragDrop", onDragEnd: "onDragEnd", onDragGesture: "onDragGesture", onDragOver: "onDragOver", onDrop: "onDrop", onFocus: "onFocus", onFocusIn: "onFocusIn", onFocusOut: "onFocusOut", onKeyDown: "onKeyDown", onKeyPress: "onKeyPress", onKeyUp: "onKeyUp", onMouseDown: "onMouseDown", onMouseEnter: "onMouseEnter", onMouseLeave: "onMouseLeave", onMouseMove: "onMouseMove", onMouseOut: "onMouseOut", onMouseOver: "onMouseOver", onMouseUp: "onMouseUp", onPaste: "onPaste", onSelectionChange: "onSelectionChange", onActivate: "onActivate", onAddUndo: "onAddUndo", onBeforeAddUndo: "onBeforeAddUndo", onBeforeExecCommand: "onBeforeExecCommand", onBeforeGetContent: "onBeforeGetContent", onBeforeRenderUI: "onBeforeRenderUI", onBeforeSetContent: "onBeforeSetContent", onChange: "onChange", onClearUndos: "onClearUndos", onDeactivate: "onDeactivate", onDirty: "onDirty", onExecCommand: "onExecCommand", onGetContent: "onGetContent", onHide: "onHide", onInit: "onInit", onInitNgModel: "onInitNgModel", onLoadContent: "onLoadContent", onNodeChange: "onNodeChange", onPostProcess: "onPostProcess", onPostRender: "onPostRender", onPreInit: "onPreInit", onPreProcess: "onPreProcess", onProgressState: "onProgressState", onRedo: "onRedo", onRemove: "onRemove", onReset: "onReset", onResizeEditor: "onResizeEditor", onSaveContent: "onSaveContent", onSetAttrib: "onSetAttrib", onObjectResizeStart: "onObjectResizeStart", onObjectResized: "onObjectResized", onObjectSelected: "onObjectSelected", onSetContent: "onSetContent", onShow: "onShow", onSubmit: "onSubmit", onUndo: "onUndo", onVisualAid: "onVisualAid" }, ngImport: i0 });
|
|
90
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: Events, outputs: { onBeforePaste: "onBeforePaste", onBlur: "onBlur", onClick: "onClick", onCompositionEnd: "onCompositionEnd", onCompositionStart: "onCompositionStart", onCompositionUpdate: "onCompositionUpdate", onContextMenu: "onContextMenu", onCopy: "onCopy", onCut: "onCut", onDblclick: "onDblclick", onDrag: "onDrag", onDragDrop: "onDragDrop", onDragEnd: "onDragEnd", onDragGesture: "onDragGesture", onDragOver: "onDragOver", onDrop: "onDrop", onFocus: "onFocus", onFocusIn: "onFocusIn", onFocusOut: "onFocusOut", onKeyDown: "onKeyDown", onKeyPress: "onKeyPress", onKeyUp: "onKeyUp", onMouseDown: "onMouseDown", onMouseEnter: "onMouseEnter", onMouseLeave: "onMouseLeave", onMouseMove: "onMouseMove", onMouseOut: "onMouseOut", onMouseOver: "onMouseOver", onMouseUp: "onMouseUp", onPaste: "onPaste", onSelectionChange: "onSelectionChange", onActivate: "onActivate", onAddUndo: "onAddUndo", onBeforeAddUndo: "onBeforeAddUndo", onBeforeExecCommand: "onBeforeExecCommand", onBeforeGetContent: "onBeforeGetContent", onBeforeRenderUI: "onBeforeRenderUI", onBeforeSetContent: "onBeforeSetContent", onChange: "onChange", onClearUndos: "onClearUndos", onDeactivate: "onDeactivate", onDirty: "onDirty", onExecCommand: "onExecCommand", onGetContent: "onGetContent", onHide: "onHide", onInit: "onInit", onInput: "onInput", onInitNgModel: "onInitNgModel", onLoadContent: "onLoadContent", onNodeChange: "onNodeChange", onPostProcess: "onPostProcess", onPostRender: "onPostRender", onPreInit: "onPreInit", onPreProcess: "onPreProcess", onProgressState: "onProgressState", onRedo: "onRedo", onRemove: "onRemove", onReset: "onReset", onResizeEditor: "onResizeEditor", onSaveContent: "onSaveContent", onSetAttrib: "onSetAttrib", onObjectResizeStart: "onObjectResizeStart", onObjectResized: "onObjectResized", onObjectSelected: "onObjectSelected", onSetContent: "onSetContent", onShow: "onShow", onSubmit: "onSubmit", onUndo: "onUndo", onVisualAid: "onVisualAid" }, ngImport: i0 });
|
|
87
91
|
}
|
|
88
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: Events, decorators: [{
|
|
89
93
|
type: Directive
|
|
@@ -93,6 +97,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
93
97
|
type: Output
|
|
94
98
|
}], onClick: [{
|
|
95
99
|
type: Output
|
|
100
|
+
}], onCompositionEnd: [{
|
|
101
|
+
type: Output
|
|
102
|
+
}], onCompositionStart: [{
|
|
103
|
+
type: Output
|
|
104
|
+
}], onCompositionUpdate: [{
|
|
105
|
+
type: Output
|
|
96
106
|
}], onContextMenu: [{
|
|
97
107
|
type: Output
|
|
98
108
|
}], onCopy: [{
|
|
@@ -173,6 +183,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
173
183
|
type: Output
|
|
174
184
|
}], onInit: [{
|
|
175
185
|
type: Output
|
|
186
|
+
}], onInput: [{
|
|
187
|
+
type: Output
|
|
176
188
|
}], onInitNgModel: [{
|
|
177
189
|
type: Output
|
|
178
190
|
}], onLoadContent: [{
|
|
@@ -250,6 +262,7 @@ const validEvents = [
|
|
|
250
262
|
'onGetContent',
|
|
251
263
|
'onHide',
|
|
252
264
|
'onInit',
|
|
265
|
+
'onInput',
|
|
253
266
|
'onKeyDown',
|
|
254
267
|
'onKeyPress',
|
|
255
268
|
'onKeyUp',
|
|
@@ -303,8 +316,8 @@ const bindHandlers = (ctx, editor, destroy$) => {
|
|
|
303
316
|
// being re-entered. We don't want to run `ApplicationRef.tick()` if anyone listens to the specific event
|
|
304
317
|
// within the template. E.g. if the `onSelectionChange` is not listened within the template like:
|
|
305
318
|
// `<editor (onSelectionChange)="..."></editor>`
|
|
306
|
-
// then
|
|
307
|
-
if (eventEmitter
|
|
319
|
+
// then it won't be "observed", and we won't run "dead" change detection.
|
|
320
|
+
if (isObserved(eventEmitter)) {
|
|
308
321
|
ctx.ngZone.run(() => eventEmitter.emit({ event, editor }));
|
|
309
322
|
}
|
|
310
323
|
});
|
|
@@ -343,6 +356,10 @@ const mergePlugins = (initPlugins, inputPlugins) => normalizePluginArray(initPlu
|
|
|
343
356
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
344
357
|
const noop = () => { };
|
|
345
358
|
const isNullOrUndefined = (value) => value === null || value === undefined;
|
|
359
|
+
const isObserved = (o) =>
|
|
360
|
+
// RXJS is making the `observers` property internal in v8. So this is intended as a backwards compatible way of
|
|
361
|
+
// checking if a subject has observers.
|
|
362
|
+
o.observed || o.observers?.length > 0;
|
|
346
363
|
|
|
347
364
|
/**
|
|
348
365
|
* Copyright (c) 2017-present, Ephox, Inc.
|
|
@@ -351,30 +368,31 @@ const isNullOrUndefined = (value) => value === null || value === undefined;
|
|
|
351
368
|
* LICENSE file in the root directory of this source tree.
|
|
352
369
|
*
|
|
353
370
|
*/
|
|
354
|
-
const
|
|
355
|
-
script$: null,
|
|
356
|
-
});
|
|
371
|
+
const firstEmission = () => (source) => source.pipe(first(), map(() => undefined));
|
|
357
372
|
const CreateScriptLoader = () => {
|
|
358
|
-
|
|
359
|
-
const
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
// Only to be used by tests.
|
|
372
|
-
const reinitialize = () => {
|
|
373
|
-
state = createState();
|
|
374
|
-
};
|
|
373
|
+
const params$ = new BehaviorSubject(null);
|
|
374
|
+
const loaded$ = params$.pipe(filter(Boolean), switchMap(([doc, url]) => {
|
|
375
|
+
const scriptTag = doc.createElement('script');
|
|
376
|
+
scriptTag.referrerPolicy = 'origin';
|
|
377
|
+
scriptTag.type = 'application/javascript';
|
|
378
|
+
scriptTag.src = url;
|
|
379
|
+
doc.head.appendChild(scriptTag);
|
|
380
|
+
return fromEvent(scriptTag, 'load').pipe(firstEmission());
|
|
381
|
+
}),
|
|
382
|
+
// Caretaker note: `loaded$` is a multicast observable since it's piped with `shareReplay`,
|
|
383
|
+
// so if there're multiple editor components simultaneously on the page, they'll subscribe to the internal
|
|
384
|
+
// `ReplaySubject`. The script will be loaded only once, and `ReplaySubject` will cache the result.
|
|
385
|
+
shareReplay({ bufferSize: 1, refCount: true }));
|
|
375
386
|
return {
|
|
376
|
-
load
|
|
377
|
-
|
|
387
|
+
load: (...args) => {
|
|
388
|
+
if (!params$.getValue()) {
|
|
389
|
+
params$.next(args);
|
|
390
|
+
}
|
|
391
|
+
return loaded$;
|
|
392
|
+
},
|
|
393
|
+
reinitialize: () => {
|
|
394
|
+
params$.next(null);
|
|
395
|
+
},
|
|
378
396
|
};
|
|
379
397
|
};
|
|
380
398
|
const ScriptLoader = CreateScriptLoader();
|
|
@@ -386,12 +404,16 @@ const EDITOR_COMPONENT_VALUE_ACCESSOR = {
|
|
|
386
404
|
useExisting: forwardRef(() => EditorComponent),
|
|
387
405
|
multi: true
|
|
388
406
|
};
|
|
407
|
+
/**
|
|
408
|
+
* @see {@link https://www.tiny.cloud/docs/tinymce/7/angular-ref/} for the TinyMCE Angular Technical Reference
|
|
409
|
+
*/
|
|
389
410
|
class EditorComponent extends Events {
|
|
390
411
|
cdRef;
|
|
391
412
|
platformId;
|
|
392
413
|
tinymceScriptSrc;
|
|
393
|
-
cloudChannel = '
|
|
414
|
+
cloudChannel = '7';
|
|
394
415
|
apiKey = 'no-api-key';
|
|
416
|
+
licenseKey;
|
|
395
417
|
init;
|
|
396
418
|
id = '';
|
|
397
419
|
initialValue;
|
|
@@ -498,6 +520,7 @@ class EditorComponent extends Events {
|
|
|
498
520
|
target: this._element,
|
|
499
521
|
inline: this.inline,
|
|
500
522
|
readonly: this.disabled,
|
|
523
|
+
license_key: this.licenseKey,
|
|
501
524
|
plugins: mergePlugins((this.init && this.init.plugins), this.plugins),
|
|
502
525
|
toolbar: this.toolbar || (this.init && this.init.toolbar),
|
|
503
526
|
setup: (editor) => {
|
|
@@ -550,11 +573,11 @@ class EditorComponent extends Events {
|
|
|
550
573
|
}
|
|
551
574
|
}
|
|
552
575
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: EditorComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: PLATFORM_ID }, { token: TINYMCE_SCRIPT_SRC, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
553
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: EditorComponent, isStandalone: true, selector: "editor", inputs: { cloudChannel: "cloudChannel", apiKey: "apiKey", init: "init", id: "id", initialValue: "initialValue", outputFormat: "outputFormat", inline: "inline", tagName: "tagName", plugins: "plugins", toolbar: "toolbar", modelEvents: "modelEvents", allowedEvents: "allowedEvents", ignoreEvents: "ignoreEvents", disabled: "disabled" }, providers: [EDITOR_COMPONENT_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: '
|
|
576
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: EditorComponent, isStandalone: true, selector: "editor", inputs: { cloudChannel: "cloudChannel", apiKey: "apiKey", licenseKey: "licenseKey", init: "init", id: "id", initialValue: "initialValue", outputFormat: "outputFormat", inline: "inline", tagName: "tagName", plugins: "plugins", toolbar: "toolbar", modelEvents: "modelEvents", allowedEvents: "allowedEvents", ignoreEvents: "ignoreEvents", disabled: "disabled" }, providers: [EDITOR_COMPONENT_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
554
577
|
}
|
|
555
578
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: EditorComponent, decorators: [{
|
|
556
579
|
type: Component,
|
|
557
|
-
args: [{ selector: 'editor', template: '
|
|
580
|
+
args: [{ selector: 'editor', template: '', providers: [EDITOR_COMPONENT_VALUE_ACCESSOR], standalone: true, imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
|
|
558
581
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: Object, decorators: [{
|
|
559
582
|
type: Inject,
|
|
560
583
|
args: [PLATFORM_ID]
|
|
@@ -567,6 +590,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
567
590
|
type: Input
|
|
568
591
|
}], apiKey: [{
|
|
569
592
|
type: Input
|
|
593
|
+
}], licenseKey: [{
|
|
594
|
+
type: Input
|
|
570
595
|
}], init: [{
|
|
571
596
|
type: Input
|
|
572
597
|
}], id: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tinymce-tinymce-angular.mjs","sources":["../../../tinymce-angular-component/src/main/ts/TinyMCE.ts","../../../tinymce-angular-component/src/main/ts/editor/Events.ts","../../../tinymce-angular-component/src/main/ts/utils/Utils.ts","../../../tinymce-angular-component/src/main/ts/utils/ScriptLoader.ts","../../../tinymce-angular-component/src/main/ts/editor/editor.component.ts","../../../tinymce-angular-component/src/main/ts/editor/editor.module.ts","../../../tinymce-angular-component/src/main/ts/tinymce-tinymce-angular.ts"],"sourcesContent":["/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nconst getTinymce = () => {\n const w = typeof window !== 'undefined' ? (window as any) : undefined;\n return w && w.tinymce ? w.tinymce : null;\n};\n\nexport { getTinymce };\n","import { Output, EventEmitter, Directive } from '@angular/core';\nimport { Editor as TinyMCEEditor } from 'tinymce';\n\nexport interface EventObj<T> {\n event: T;\n editor: TinyMCEEditor;\n}\n\n@Directive()\nexport class Events {\n @Output() public onBeforePaste: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onBlur: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onClick: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onContextMenu: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onCopy: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onCut: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onDblclick: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onDrag: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragDrop: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragEnd: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragGesture: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragOver: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDrop: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onFocus: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onFocusIn: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onFocusOut: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onKeyDown: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onKeyPress: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onKeyUp: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onMouseDown: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseEnter: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseLeave: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseMove: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseOut: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseOver: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseUp: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onPaste: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onSelectionChange: EventEmitter<EventObj<Event>> = new EventEmitter();\n @Output() public onActivate: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onAddUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeAddUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeExecCommand: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeGetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeRenderUI: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeSetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onChange: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onClearUndos: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onDeactivate: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onDirty: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onExecCommand: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onGetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onHide: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onInit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onInitNgModel: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onLoadContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onNodeChange: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPostProcess: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPostRender: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPreInit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPreProcess: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onProgressState: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onRedo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onRemove: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onReset: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onResizeEditor: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSaveContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSetAttrib: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectResizeStart: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectResized: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectSelected: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onShow: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSubmit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onVisualAid: EventEmitter<EventObj<any>> = new EventEmitter();\n}\n\nexport const validEvents: (keyof Events)[] = [\n 'onActivate',\n 'onAddUndo',\n 'onBeforeAddUndo',\n 'onBeforeExecCommand',\n 'onBeforeGetContent',\n 'onBeforeRenderUI',\n 'onBeforeSetContent',\n 'onBeforePaste',\n 'onBlur',\n 'onChange',\n 'onClearUndos',\n 'onClick',\n 'onContextMenu',\n 'onCopy',\n 'onCut',\n 'onDblclick',\n 'onDeactivate',\n 'onDirty',\n 'onDrag',\n 'onDragDrop',\n 'onDragEnd',\n 'onDragGesture',\n 'onDragOver',\n 'onDrop',\n 'onExecCommand',\n 'onFocus',\n 'onFocusIn',\n 'onFocusOut',\n 'onGetContent',\n 'onHide',\n 'onInit',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onLoadContent',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onNodeChange',\n 'onObjectResizeStart',\n 'onObjectResized',\n 'onObjectSelected',\n 'onPaste',\n 'onPostProcess',\n 'onPostRender',\n 'onPreProcess',\n 'onProgressState',\n 'onRedo',\n 'onRemove',\n 'onReset',\n 'onResizeEditor',\n 'onSaveContent',\n 'onSelectionChange',\n 'onSetAttrib',\n 'onSetContent',\n 'onShow',\n 'onSubmit',\n 'onUndo',\n 'onVisualAid'\n];\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { EventEmitter } from '@angular/core';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { HasEventTargetAddRemove } from 'rxjs/internal/observable/fromEvent';\n\nimport { EditorComponent } from '../editor/editor.component';\nimport { validEvents, Events } from '../editor/Events';\n\n// Caretaker note: `fromEvent` supports passing JQuery-style event targets, the editor has `on` and `off` methods which\n// will be invoked upon subscription and teardown.\nconst listenTinyMCEEvent = (\n editor: any,\n eventName: string,\n destroy$: Subject<void>\n) => fromEvent(editor as HasEventTargetAddRemove<unknown> | ArrayLike<HasEventTargetAddRemove<unknown>>, eventName).pipe(takeUntil(destroy$));\n\nconst bindHandlers = (ctx: EditorComponent, editor: any, destroy$: Subject<void>): void => {\n const allowedEvents = getValidEvents(ctx);\n allowedEvents.forEach((eventName) => {\n const eventEmitter: EventEmitter<any> = ctx[eventName];\n\n listenTinyMCEEvent(editor, eventName.substring(2), destroy$).subscribe((event) => {\n // Caretaker note: `ngZone.run()` runs change detection since it notifies the forked Angular zone that it's\n // being re-entered. We don't want to run `ApplicationRef.tick()` if anyone listens to the specific event\n // within the template. E.g. if the `onSelectionChange` is not listened within the template like:\n // `<editor (onSelectionChange)=\"...\"></editor>`\n // then its `observers` array will be empty, and we won't run \"dead\" change detection.\n if (eventEmitter.observed || eventEmitter.observers?.length > 0) {\n ctx.ngZone.run(() => eventEmitter.emit({ event, editor }));\n }\n });\n });\n};\n\nconst getValidEvents = (ctx: EditorComponent): (keyof Events)[] => {\n const ignoredEvents = parseStringProperty(ctx.ignoreEvents, []);\n const allowedEvents = parseStringProperty(ctx.allowedEvents, validEvents).filter(\n (event) => validEvents.includes(event as (keyof Events)) && !ignoredEvents.includes(event)) as (keyof Events)[];\n return allowedEvents;\n};\n\nconst parseStringProperty = (property: string | string[] | undefined, defaultValue: (keyof Events)[]): string[] => {\n if ( typeof property === 'string') {\n return property.split(',').map((value) => value.trim());\n }\n if ( Array.isArray(property)) {\n return property;\n }\n return defaultValue;\n};\n\nlet unique = 0;\n\nconst uuid = (prefix: string): string => {\n const date = new Date();\n const time = date.getTime();\n const random = Math.floor(Math.random() * 1000000000);\n\n unique++;\n\n return prefix + '_' + random + unique + String(time);\n};\n\nconst isTextarea = (element?: Element): element is HTMLTextAreaElement => typeof element !== 'undefined' && element.tagName.toLowerCase() === 'textarea';\n\nconst normalizePluginArray = (plugins?: string | string[]): string[] => {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\n\nconst mergePlugins = (initPlugins: string | string[], inputPlugins?: string | string[]) =>\n normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins));\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop: (...args: any[]) => void = () => { };\n\nconst isNullOrUndefined = (value: any): value is null | undefined => value === null || value === undefined;\n\nexport {\n listenTinyMCEEvent,\n bindHandlers,\n uuid,\n isTextarea,\n normalizePluginArray,\n mergePlugins,\n noop,\n isNullOrUndefined\n};\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { defer, fromEvent, Observable, map, shareReplay, take } from 'rxjs';\n\nexport interface IStateObj {\n script$: Observable<void> | null;\n}\n\nconst createState = (): IStateObj => ({\n script$: null,\n});\n\ninterface ScriptLoader {\n load: (doc: Document, url: string) => Observable<void>;\n reinitialize: () => void;\n}\n\nconst CreateScriptLoader = (): ScriptLoader => {\n let state = createState();\n\n const load = (doc: Document, url: string) => (\n state.script$ ||\n // Caretaker note: the `script$` is a multicast observable since it's piped with `shareReplay`,\n // so if there're multiple editor components simultaneously on the page, they'll subscribe to the internal\n // `ReplaySubject`. The script will be loaded only once, and `ReplaySubject` will cache the result.\n (state.script$ = defer(() => {\n const scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.src = url;\n doc.head.appendChild(scriptTag);\n return fromEvent(scriptTag, 'load').pipe(take(1), map(() => undefined));\n }).pipe(shareReplay({ bufferSize: 1, refCount: true })))\n );\n\n // Only to be used by tests.\n const reinitialize = () => {\n state = createState();\n };\n\n return {\n load,\n reinitialize,\n };\n};\n\nconst ScriptLoader = CreateScriptLoader();\n\nexport { ScriptLoader };\n","/* eslint-disable @typescript-eslint/no-parameter-properties */\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n InjectionToken,\n Optional,\n ChangeDetectorRef,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { FormsModule, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { getTinymce } from '../TinyMCE';\nimport { listenTinyMCEEvent, bindHandlers, isTextarea, mergePlugins, uuid, noop, isNullOrUndefined } from '../utils/Utils';\nimport { EventObj, Events } from './Events';\nimport { ScriptLoader } from '../utils/ScriptLoader';\nimport { Editor as TinyMCEEditor, TinyMCE } from 'tinymce';\n\ntype EditorOptions = Parameters<TinyMCE['init']>[0];\n\nexport const TINYMCE_SCRIPT_SRC = new InjectionToken<string>('TINYMCE_SCRIPT_SRC');\n\nconst EDITOR_COMPONENT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorComponent),\n multi: true\n};\n\n@Component({\n selector: 'editor',\n template: '<ng-template></ng-template>',\n styles: [ ':host { display: block; }' ],\n providers: [ EDITOR_COMPONENT_VALUE_ACCESSOR ],\n standalone: true,\n imports: [ CommonModule, FormsModule ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditorComponent extends Events implements AfterViewInit, ControlValueAccessor, OnDestroy {\n\n @Input() public cloudChannel = '6';\n @Input() public apiKey = 'no-api-key';\n @Input() public init: EditorOptions | undefined;\n @Input() public id = '';\n @Input() public initialValue: string | undefined;\n @Input() public outputFormat: 'html' | 'text' | undefined;\n @Input() public inline: boolean | undefined;\n @Input() public tagName: string | undefined;\n @Input() public plugins: string | undefined;\n @Input() public toolbar: string | string[] | undefined;\n @Input() public modelEvents = 'change input undo redo';\n @Input() public allowedEvents: string | string[] | undefined;\n @Input() public ignoreEvents: string | string[] | undefined;\n @Input()\n public set disabled(val) {\n this._disabled = val;\n if (this._editor && this._editor.initialized) {\n if (typeof this._editor.mode?.set === 'function') {\n this._editor.mode.set(val ? 'readonly' : 'design');\n } else {\n this._editor.setMode(val ? 'readonly' : 'design');\n }\n }\n }\n\n public get disabled() {\n return this._disabled;\n }\n\n public get editor() {\n return this._editor;\n }\n\n public ngZone: NgZone;\n\n private _elementRef: ElementRef;\n private _element: HTMLElement | undefined;\n private _disabled: boolean | undefined;\n private _editor: TinyMCEEditor | undefined;\n\n private onTouchedCallback = noop;\n private onChangeCallback: any;\n\n private destroy$ = new Subject<void>();\n\n public constructor(\n elementRef: ElementRef,\n ngZone: NgZone,\n private cdRef: ChangeDetectorRef,\n @Inject(PLATFORM_ID) private platformId: Object,\n @Optional() @Inject(TINYMCE_SCRIPT_SRC) private tinymceScriptSrc?: string\n ) {\n super();\n this._elementRef = elementRef;\n this.ngZone = ngZone;\n }\n\n public writeValue(value: string | null): void {\n if (this._editor && this._editor.initialized) {\n this._editor.setContent(isNullOrUndefined(value) ? '' : value);\n } else {\n this.initialValue = value === null ? undefined : value;\n }\n }\n\n public registerOnChange(fn: (_: any) => void): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.id = this.id || uuid('tiny-angular');\n this.inline = this.inline !== undefined ? this.inline !== false : !!(this.init?.inline);\n this.createElement();\n if (getTinymce() !== null) {\n this.initialise();\n } else if (this._element && this._element.ownerDocument) {\n // Caretaker note: the component might be destroyed before the script is loaded and its code is executed.\n // This will lead to runtime exceptions if `initialise` will be called when the component has been destroyed.\n ScriptLoader.load(this._element.ownerDocument, this.getScriptSrc())\n .pipe(takeUntil(this.destroy$))\n .subscribe(this.initialise);\n }\n }\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n\n if (getTinymce() !== null) {\n getTinymce().remove(this._editor);\n }\n }\n\n public createElement() {\n const tagName = typeof this.tagName === 'string' ? this.tagName : 'div';\n this._element = document.createElement(this.inline ? tagName : 'textarea');\n if (this._element) {\n if (document.getElementById(this.id)) {\n /* eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n console.warn(`TinyMCE-Angular: an element with id [${this.id}] already exists. Editors with duplicate Id will not be able to mount`);\n }\n this._element.id = this.id;\n if (isTextarea(this._element)) {\n this._element.style.visibility = 'hidden';\n }\n this._elementRef.nativeElement.appendChild(this._element);\n }\n }\n\n public initialise = (): void => {\n const finalInit: EditorOptions = {\n ...this.init,\n selector: undefined,\n target: this._element,\n inline: this.inline,\n readonly: this.disabled,\n plugins: mergePlugins((this.init && this.init.plugins) as string, this.plugins),\n toolbar: this.toolbar || (this.init && this.init.toolbar),\n setup: (editor: TinyMCEEditor) => {\n this._editor = editor;\n\n listenTinyMCEEvent(editor, 'init', this.destroy$).subscribe(() => {\n this.initEditor(editor);\n });\n\n bindHandlers(this, editor, this.destroy$);\n\n if (this.init && typeof this.init.setup === 'function') {\n this.init.setup(editor);\n }\n }\n };\n\n if (isTextarea(this._element)) {\n this._element.style.visibility = '';\n }\n\n this.ngZone.runOutsideAngular(() => {\n getTinymce().init(finalInit);\n });\n };\n\n private getScriptSrc() {\n return isNullOrUndefined(this.tinymceScriptSrc) ?\n `https://cdn.tiny.cloud/1/${this.apiKey}/tinymce/${this.cloudChannel}/tinymce.min.js` :\n this.tinymceScriptSrc;\n }\n\n private initEditor(editor: TinyMCEEditor) {\n listenTinyMCEEvent(editor, 'blur', this.destroy$).subscribe(() => {\n this.cdRef.markForCheck();\n this.ngZone.run(() => this.onTouchedCallback());\n });\n\n listenTinyMCEEvent(editor, this.modelEvents, this.destroy$).subscribe(() => {\n this.cdRef.markForCheck();\n this.ngZone.run(() => this.emitOnChange(editor));\n });\n\n if (typeof this.initialValue === 'string') {\n this.ngZone.run(() => {\n editor.setContent(this.initialValue as string);\n if (editor.getContent() !== this.initialValue) {\n this.emitOnChange(editor);\n }\n if (this.onInitNgModel !== undefined) {\n this.onInitNgModel.emit(editor as unknown as EventObj<any>);\n }\n });\n }\n }\n\n private emitOnChange(editor: TinyMCEEditor) {\n if (this.onChangeCallback) {\n this.onChangeCallback(editor.getContent({ format: this.outputFormat }));\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { EditorComponent } from './editor.component';\n\n@NgModule({\n imports: [ EditorComponent ],\n exports: [ EditorComponent ]\n})\nexport class EditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tinymce-tinymce-angular.mjs","sources":["../../../tinymce-angular-component/src/main/ts/TinyMCE.ts","../../../tinymce-angular-component/src/main/ts/editor/Events.ts","../../../tinymce-angular-component/src/main/ts/utils/Utils.ts","../../../tinymce-angular-component/src/main/ts/utils/ScriptLoader.ts","../../../tinymce-angular-component/src/main/ts/editor/editor.component.ts","../../../tinymce-angular-component/src/main/ts/editor/editor.module.ts","../../../tinymce-angular-component/src/main/ts/tinymce-tinymce-angular.ts"],"sourcesContent":["/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nconst getTinymce = () => {\n const w = typeof window !== 'undefined' ? (window as any) : undefined;\n return w && w.tinymce ? w.tinymce : null;\n};\n\nexport { getTinymce };\n","import { Output, EventEmitter, Directive } from '@angular/core';\nimport { Editor as TinyMCEEditor } from 'tinymce';\n\nexport interface EventObj<T> {\n event: T;\n editor: TinyMCEEditor;\n}\n\n@Directive()\nexport class Events {\n @Output() public onBeforePaste: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onBlur: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onClick: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onCompositionEnd: EventEmitter<EventObj<CompositionEvent>> = new EventEmitter();\n @Output() public onCompositionStart: EventEmitter<EventObj<CompositionEvent>> = new EventEmitter();\n @Output() public onCompositionUpdate: EventEmitter<EventObj<CompositionEvent>> = new EventEmitter();\n @Output() public onContextMenu: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onCopy: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onCut: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onDblclick: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onDrag: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragDrop: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragEnd: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragGesture: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDragOver: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onDrop: EventEmitter<EventObj<DragEvent>> = new EventEmitter();\n @Output() public onFocus: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onFocusIn: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onFocusOut: EventEmitter<EventObj<FocusEvent>> = new EventEmitter();\n @Output() public onKeyDown: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onKeyPress: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onKeyUp: EventEmitter<EventObj<KeyboardEvent>> = new EventEmitter();\n @Output() public onMouseDown: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseEnter: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseLeave: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseMove: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseOut: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseOver: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onMouseUp: EventEmitter<EventObj<MouseEvent>> = new EventEmitter();\n @Output() public onPaste: EventEmitter<EventObj<ClipboardEvent>> = new EventEmitter();\n @Output() public onSelectionChange: EventEmitter<EventObj<Event>> = new EventEmitter();\n @Output() public onActivate: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onAddUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeAddUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeExecCommand: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeGetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeRenderUI: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onBeforeSetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onChange: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onClearUndos: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onDeactivate: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onDirty: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onExecCommand: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onGetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onHide: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onInit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onInput: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onInitNgModel: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onLoadContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onNodeChange: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPostProcess: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPostRender: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPreInit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onPreProcess: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onProgressState: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onRedo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onRemove: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onReset: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onResizeEditor: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSaveContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSetAttrib: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectResizeStart: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectResized: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onObjectSelected: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSetContent: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onShow: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onSubmit: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onUndo: EventEmitter<EventObj<any>> = new EventEmitter();\n @Output() public onVisualAid: EventEmitter<EventObj<any>> = new EventEmitter();\n}\n\nexport const validEvents: (keyof Events)[] = [\n 'onActivate',\n 'onAddUndo',\n 'onBeforeAddUndo',\n 'onBeforeExecCommand',\n 'onBeforeGetContent',\n 'onBeforeRenderUI',\n 'onBeforeSetContent',\n 'onBeforePaste',\n 'onBlur',\n 'onChange',\n 'onClearUndos',\n 'onClick',\n 'onContextMenu',\n 'onCopy',\n 'onCut',\n 'onDblclick',\n 'onDeactivate',\n 'onDirty',\n 'onDrag',\n 'onDragDrop',\n 'onDragEnd',\n 'onDragGesture',\n 'onDragOver',\n 'onDrop',\n 'onExecCommand',\n 'onFocus',\n 'onFocusIn',\n 'onFocusOut',\n 'onGetContent',\n 'onHide',\n 'onInit',\n 'onInput',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onLoadContent',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onNodeChange',\n 'onObjectResizeStart',\n 'onObjectResized',\n 'onObjectSelected',\n 'onPaste',\n 'onPostProcess',\n 'onPostRender',\n 'onPreProcess',\n 'onProgressState',\n 'onRedo',\n 'onRemove',\n 'onReset',\n 'onResizeEditor',\n 'onSaveContent',\n 'onSelectionChange',\n 'onSetAttrib',\n 'onSetContent',\n 'onShow',\n 'onSubmit',\n 'onUndo',\n 'onVisualAid'\n];\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { EventEmitter } from '@angular/core';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { HasEventTargetAddRemove } from 'rxjs/internal/observable/fromEvent';\n\nimport { EditorComponent } from '../editor/editor.component';\nimport { validEvents, Events } from '../editor/Events';\n\n// Caretaker note: `fromEvent` supports passing JQuery-style event targets, the editor has `on` and `off` methods which\n// will be invoked upon subscription and teardown.\nconst listenTinyMCEEvent = (\n editor: any,\n eventName: string,\n destroy$: Subject<void>\n) => fromEvent(editor as HasEventTargetAddRemove<unknown> | ArrayLike<HasEventTargetAddRemove<unknown>>, eventName).pipe(takeUntil(destroy$));\n\nconst bindHandlers = (ctx: EditorComponent, editor: any, destroy$: Subject<void>): void => {\n const allowedEvents = getValidEvents(ctx);\n allowedEvents.forEach((eventName) => {\n const eventEmitter: EventEmitter<any> = ctx[eventName];\n\n listenTinyMCEEvent(editor, eventName.substring(2), destroy$).subscribe((event) => {\n // Caretaker note: `ngZone.run()` runs change detection since it notifies the forked Angular zone that it's\n // being re-entered. We don't want to run `ApplicationRef.tick()` if anyone listens to the specific event\n // within the template. E.g. if the `onSelectionChange` is not listened within the template like:\n // `<editor (onSelectionChange)=\"...\"></editor>`\n // then it won't be \"observed\", and we won't run \"dead\" change detection.\n if (isObserved(eventEmitter)) {\n ctx.ngZone.run(() => eventEmitter.emit({ event, editor }));\n }\n });\n });\n};\n\nconst getValidEvents = (ctx: EditorComponent): (keyof Events)[] => {\n const ignoredEvents = parseStringProperty(ctx.ignoreEvents, []);\n const allowedEvents = parseStringProperty(ctx.allowedEvents, validEvents).filter(\n (event) => validEvents.includes(event as (keyof Events)) && !ignoredEvents.includes(event)) as (keyof Events)[];\n return allowedEvents;\n};\n\nconst parseStringProperty = (property: string | string[] | undefined, defaultValue: (keyof Events)[]): string[] => {\n if ( typeof property === 'string') {\n return property.split(',').map((value) => value.trim());\n }\n if ( Array.isArray(property)) {\n return property;\n }\n return defaultValue;\n};\n\nlet unique = 0;\n\nconst uuid = (prefix: string): string => {\n const date = new Date();\n const time = date.getTime();\n const random = Math.floor(Math.random() * 1000000000);\n\n unique++;\n\n return prefix + '_' + random + unique + String(time);\n};\n\nconst isTextarea = (element?: Element): element is HTMLTextAreaElement => typeof element !== 'undefined' && element.tagName.toLowerCase() === 'textarea';\n\nconst normalizePluginArray = (plugins?: string | string[]): string[] => {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\n\nconst mergePlugins = (initPlugins: string | string[], inputPlugins?: string | string[]) =>\n normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins));\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop: (...args: any[]) => void = () => { };\n\nconst isNullOrUndefined = (value: any): value is null | undefined => value === null || value === undefined;\n\nconst isObserved = (o: Subject<unknown>): boolean =>\n // RXJS is making the `observers` property internal in v8. So this is intended as a backwards compatible way of\n // checking if a subject has observers.\n o.observed || o.observers?.length > 0;\n\nexport {\n listenTinyMCEEvent,\n bindHandlers,\n uuid,\n isTextarea,\n normalizePluginArray,\n mergePlugins,\n noop,\n isNullOrUndefined\n};\n","/**\n * Copyright (c) 2017-present, Ephox, Inc.\n *\n * This source code is licensed under the Apache 2 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { fromEvent, Observable, shareReplay, switchMap, BehaviorSubject, first, filter, map } from 'rxjs';\n\ninterface ScriptLoader {\n load: (doc: Document, url: string) => Observable<void>;\n /** Intended to only to be used by tests. */\n reinitialize: () => void;\n}\n\nconst firstEmission = () => (source: Observable<unknown>): Observable<void> => source.pipe(first(), map(() => undefined));\n\nconst CreateScriptLoader = (): ScriptLoader => {\n const params$ = new BehaviorSubject<Parameters<ScriptLoader['load']> | null>(null);\n const loaded$: Observable<void> = params$.pipe(\n filter(Boolean),\n switchMap(([ doc, url ]) => {\n const scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.src = url;\n doc.head.appendChild(scriptTag);\n return fromEvent(scriptTag, 'load').pipe(firstEmission());\n }),\n // Caretaker note: `loaded$` is a multicast observable since it's piped with `shareReplay`,\n // so if there're multiple editor components simultaneously on the page, they'll subscribe to the internal\n // `ReplaySubject`. The script will be loaded only once, and `ReplaySubject` will cache the result.\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n return {\n load: (...args) => {\n if (!params$.getValue()) {\n params$.next(args);\n }\n return loaded$;\n },\n reinitialize: () => {\n params$.next(null);\n },\n };\n};\n\nconst ScriptLoader = CreateScriptLoader();\n\nexport { ScriptLoader };\n","/* eslint-disable @typescript-eslint/no-parameter-properties */\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n PLATFORM_ID,\n InjectionToken,\n Optional,\n ChangeDetectorRef,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { FormsModule, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { getTinymce } from '../TinyMCE';\nimport { listenTinyMCEEvent, bindHandlers, isTextarea, mergePlugins, uuid, noop, isNullOrUndefined } from '../utils/Utils';\nimport { EventObj, Events } from './Events';\nimport { ScriptLoader } from '../utils/ScriptLoader';\nimport { Editor as TinyMCEEditor, TinyMCE } from 'tinymce';\n\ntype EditorOptions = Parameters<TinyMCE['init']>[0];\n\nexport const TINYMCE_SCRIPT_SRC = new InjectionToken<string>('TINYMCE_SCRIPT_SRC');\n\nconst EDITOR_COMPONENT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorComponent),\n multi: true\n};\n\nexport type Version = `${'4' | '5' | '6' | '7'}${'' | '-dev' | '-testing' | `.${number}` | `.${number}.${number}`}`;\n\n@Component({\n selector: 'editor',\n template: '',\n styles: [ ':host { display: block; }' ],\n providers: [ EDITOR_COMPONENT_VALUE_ACCESSOR ],\n standalone: true,\n imports: [ CommonModule, FormsModule ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\n/**\n * @see {@link https://www.tiny.cloud/docs/tinymce/7/angular-ref/} for the TinyMCE Angular Technical Reference\n */\nexport class EditorComponent extends Events implements AfterViewInit, ControlValueAccessor, OnDestroy {\n\n @Input() public cloudChannel: Version = '7';\n @Input() public apiKey = 'no-api-key';\n @Input() public licenseKey?: string;\n @Input() public init?: EditorOptions;\n @Input() public id = '';\n @Input() public initialValue?: string;\n @Input() public outputFormat?: 'html' | 'text';\n @Input() public inline?: boolean;\n @Input() public tagName?: string;\n @Input() public plugins?: string;\n @Input() public toolbar?: string | string[];\n @Input() public modelEvents = 'change input undo redo';\n @Input() public allowedEvents?: string | string[];\n @Input() public ignoreEvents?: string | string[];\n @Input()\n public set disabled(val) {\n this._disabled = val;\n if (this._editor && this._editor.initialized) {\n if (typeof this._editor.mode?.set === 'function') {\n this._editor.mode.set(val ? 'readonly' : 'design');\n } else {\n this._editor.setMode(val ? 'readonly' : 'design');\n }\n }\n }\n\n public get disabled() {\n return this._disabled;\n }\n\n public get editor() {\n return this._editor;\n }\n\n public ngZone: NgZone;\n\n private _elementRef: ElementRef;\n private _element?: HTMLElement;\n private _disabled?: boolean;\n private _editor?: TinyMCEEditor;\n\n private onTouchedCallback = noop;\n private onChangeCallback: any;\n\n private destroy$ = new Subject<void>();\n\n public constructor(\n elementRef: ElementRef,\n ngZone: NgZone,\n private cdRef: ChangeDetectorRef,\n @Inject(PLATFORM_ID) private platformId: Object,\n @Optional() @Inject(TINYMCE_SCRIPT_SRC) private tinymceScriptSrc?: string\n ) {\n super();\n this._elementRef = elementRef;\n this.ngZone = ngZone;\n }\n\n public writeValue(value: string | null): void {\n if (this._editor && this._editor.initialized) {\n this._editor.setContent(isNullOrUndefined(value) ? '' : value);\n } else {\n this.initialValue = value === null ? undefined : value;\n }\n }\n\n public registerOnChange(fn: (_: any) => void): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public ngAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.id = this.id || uuid('tiny-angular');\n this.inline = this.inline !== undefined ? this.inline !== false : !!(this.init?.inline);\n this.createElement();\n if (getTinymce() !== null) {\n this.initialise();\n } else if (this._element && this._element.ownerDocument) {\n // Caretaker note: the component might be destroyed before the script is loaded and its code is executed.\n // This will lead to runtime exceptions if `initialise` will be called when the component has been destroyed.\n ScriptLoader.load(this._element.ownerDocument, this.getScriptSrc())\n .pipe(takeUntil(this.destroy$))\n .subscribe(this.initialise);\n }\n }\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n\n if (getTinymce() !== null) {\n getTinymce().remove(this._editor);\n }\n }\n\n public createElement() {\n const tagName = typeof this.tagName === 'string' ? this.tagName : 'div';\n this._element = document.createElement(this.inline ? tagName : 'textarea');\n if (this._element) {\n if (document.getElementById(this.id)) {\n /* eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n console.warn(`TinyMCE-Angular: an element with id [${this.id}] already exists. Editors with duplicate Id will not be able to mount`);\n }\n this._element.id = this.id;\n if (isTextarea(this._element)) {\n this._element.style.visibility = 'hidden';\n }\n this._elementRef.nativeElement.appendChild(this._element);\n }\n }\n\n public initialise = (): void => {\n const finalInit: EditorOptions = {\n ...this.init,\n selector: undefined,\n target: this._element,\n inline: this.inline,\n readonly: this.disabled,\n license_key: this.licenseKey,\n plugins: mergePlugins((this.init && this.init.plugins) as string, this.plugins),\n toolbar: this.toolbar || (this.init && this.init.toolbar),\n setup: (editor: TinyMCEEditor) => {\n this._editor = editor;\n\n listenTinyMCEEvent(editor, 'init', this.destroy$).subscribe(() => {\n this.initEditor(editor);\n });\n\n bindHandlers(this, editor, this.destroy$);\n\n if (this.init && typeof this.init.setup === 'function') {\n this.init.setup(editor);\n }\n }\n };\n\n if (isTextarea(this._element)) {\n this._element.style.visibility = '';\n }\n\n this.ngZone.runOutsideAngular(() => {\n getTinymce().init(finalInit);\n });\n };\n\n private getScriptSrc() {\n return isNullOrUndefined(this.tinymceScriptSrc) ?\n `https://cdn.tiny.cloud/1/${this.apiKey}/tinymce/${this.cloudChannel}/tinymce.min.js` :\n this.tinymceScriptSrc;\n }\n\n private initEditor(editor: TinyMCEEditor) {\n listenTinyMCEEvent(editor, 'blur', this.destroy$).subscribe(() => {\n this.cdRef.markForCheck();\n this.ngZone.run(() => this.onTouchedCallback());\n });\n\n listenTinyMCEEvent(editor, this.modelEvents, this.destroy$).subscribe(() => {\n this.cdRef.markForCheck();\n this.ngZone.run(() => this.emitOnChange(editor));\n });\n\n if (typeof this.initialValue === 'string') {\n this.ngZone.run(() => {\n editor.setContent(this.initialValue as string);\n if (editor.getContent() !== this.initialValue) {\n this.emitOnChange(editor);\n }\n if (this.onInitNgModel !== undefined) {\n this.onInitNgModel.emit(editor as unknown as EventObj<any>);\n }\n });\n }\n }\n\n private emitOnChange(editor: TinyMCEEditor) {\n if (this.onChangeCallback) {\n this.onChangeCallback(editor.getContent({ format: this.outputFormat }));\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { EditorComponent } from './editor.component';\n\n@NgModule({\n imports: [ EditorComponent ],\n exports: [ EditorComponent ]\n})\nexport class EditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tinymce/tinymce-angular",
|
|
3
3
|
"description": "Official TinyMCE Angular Component",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "8.0.0-feature.20240424022454529.sha5a2ae31",
|
|
5
5
|
"repository": "https://github.com/tinymce/tinymce-angular.git",
|
|
6
6
|
"author": "Ephox Corporation DBA Tiny Technologies, Inc.",
|
|
7
7
|
"license": "MIT",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"@angular/forms": ">=14.0.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"tinymce": "^6.0.0 || ^5.5.0",
|
|
15
|
+
"tinymce": "^7.0.0 || ^6.0.0 || ^5.5.0",
|
|
16
16
|
"tslib": "^2.3.0"
|
|
17
17
|
},
|
|
18
18
|
"module": "fesm2022/tinymce-tinymce-angular.mjs",
|
package/utils/ScriptLoader.d.ts
CHANGED
|
@@ -6,11 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
import { Observable } from 'rxjs';
|
|
9
|
-
export interface IStateObj {
|
|
10
|
-
script$: Observable<void> | null;
|
|
11
|
-
}
|
|
12
9
|
interface ScriptLoader {
|
|
13
10
|
load: (doc: Document, url: string) => Observable<void>;
|
|
11
|
+
/** Intended to only to be used by tests. */
|
|
14
12
|
reinitialize: () => void;
|
|
15
13
|
}
|
|
16
14
|
declare const ScriptLoader: ScriptLoader;
|