@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 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/6/).
8
- * For the TinyMCE Angular Quick Start, see: [TinyMCE Documentation - Angular Integration](https://www.tiny.cloud/docs/tinymce/6/angular-cloud/).
9
- * For the TinyMCE Angular Technical Reference, see: [TinyMCE Documentation - TinyMCE Angular Technical Reference](https://www.tiny.cloud/docs/tinymce/6/angular-ref/).
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.0.0`
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.0.0`
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.0.0`
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.0.0`
32
+ `npm install @tinymce/tinymce-angular@^3`
29
33
 
30
34
  Versions below Angular 5 are not supported.
31
35
 
@@ -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: string;
13
+ cloudChannel: Version;
13
14
  apiKey: string;
14
- init: EditorOptions | undefined;
15
+ licenseKey?: string;
16
+ init?: EditorOptions;
15
17
  id: string;
16
- initialValue: string | undefined;
17
- outputFormat: 'html' | 'text' | undefined;
18
- inline: boolean | undefined;
19
- tagName: string | undefined;
20
- plugins: string | undefined;
21
- toolbar: string | string[] | undefined;
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: string | string[] | undefined;
24
- ignoreEvents: string | string[] | undefined;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGlueW1jZS1hbmd1bGFyLWNvbXBvbmVudC9zcmMvbWFpbi90cy9lZGl0b3IvRXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTaEUsTUFBTSxPQUFPLE1BQU07SUFDQSxhQUFhLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDM0UsTUFBTSxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2hFLE9BQU8sR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNqRSxnQkFBZ0IsR0FBNkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNoRixrQkFBa0IsR0FBNkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsRixtQkFBbUIsR0FBNkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRixhQUFhLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDdkUsTUFBTSxHQUEyQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3BFLEtBQUssR0FBMkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxVQUFVLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDcEUsTUFBTSxHQUFzQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQy9ELFVBQVUsR0FBc0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxTQUFTLEdBQXNDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDbEUsYUFBYSxHQUFzQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RFLFVBQVUsR0FBc0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxNQUFNLEdBQXNDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDL0QsT0FBTyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2pFLFNBQVMsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxVQUFVLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDcEUsU0FBUyxHQUEwQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RFLFVBQVUsR0FBMEMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN2RSxPQUFPLEdBQTBDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDcEUsV0FBVyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3JFLFlBQVksR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN0RSxZQUFZLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDdEUsV0FBVyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3JFLFVBQVUsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNwRSxXQUFXLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDckUsU0FBUyxHQUF1QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ25FLE9BQU8sR0FBMkMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNyRSxpQkFBaUIsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN0RSxVQUFVLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDN0QsU0FBUyxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVELGVBQWUsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsRSxtQkFBbUIsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN0RSxrQkFBa0IsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNyRSxnQkFBZ0IsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxrQkFBa0IsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNyRSxRQUFRLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDM0QsWUFBWSxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQy9ELFlBQVksR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMvRCxPQUFPLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDMUQsYUFBYSxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2hFLFlBQVksR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMvRCxNQUFNLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDekQsTUFBTSxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3pELE9BQU8sR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMxRCxhQUFhLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDaEUsYUFBYSxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2hFLFlBQVksR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMvRCxhQUFhLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDaEUsWUFBWSxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQy9ELFNBQVMsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUM1RCxZQUFZLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDL0QsZUFBZSxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2xFLE1BQU0sR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN6RCxRQUFRLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDM0QsT0FBTyxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzFELGNBQWMsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNqRSxhQUFhLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDaEUsV0FBVyxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzlELG1CQUFtQixHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RFLGVBQWUsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsRSxnQkFBZ0IsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNuRSxZQUFZLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDL0QsTUFBTSxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3pELFFBQVEsR0FBZ0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMzRCxNQUFNLEdBQWdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFDekQsV0FBVyxHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO3VHQXJFcEUsTUFBTTsyRkFBTixNQUFNOzsyRkFBTixNQUFNO2tCQURsQixTQUFTOzhCQUVTLGFBQWE7c0JBQTdCLE1BQU07Z0JBQ1UsTUFBTTtzQkFBdEIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLGdCQUFnQjtzQkFBaEMsTUFBTTtnQkFDVSxrQkFBa0I7c0JBQWxDLE1BQU07Z0JBQ1UsbUJBQW1CO3NCQUFuQyxNQUFNO2dCQUNVLGFBQWE7c0JBQTdCLE1BQU07Z0JBQ1UsTUFBTTtzQkFBdEIsTUFBTTtnQkFDVSxLQUFLO3NCQUFyQixNQUFNO2dCQUNVLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsTUFBTTtzQkFBdEIsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUNVLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1UsYUFBYTtzQkFBN0IsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUNVLE1BQU07c0JBQXRCLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxTQUFTO3NCQUF6QixNQUFNO2dCQUNVLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsU0FBUztzQkFBekIsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUNVLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTTtnQkFDVSxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU07Z0JBQ1UsU0FBUztzQkFBekIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLGlCQUFpQjtzQkFBakMsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUNVLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1UsZUFBZTtzQkFBL0IsTUFBTTtnQkFDVSxtQkFBbUI7c0JBQW5DLE1BQU07Z0JBQ1Usa0JBQWtCO3NCQUFsQyxNQUFNO2dCQUNVLGdCQUFnQjtzQkFBaEMsTUFBTTtnQkFDVSxrQkFBa0I7c0JBQWxDLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxhQUFhO3NCQUE3QixNQUFNO2dCQUNVLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsTUFBTTtzQkFBdEIsTUFBTTtnQkFDVSxNQUFNO3NCQUF0QixNQUFNO2dCQUNVLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsYUFBYTtzQkFBN0IsTUFBTTtnQkFDVSxhQUFhO3NCQUE3QixNQUFNO2dCQUNVLFlBQVk7c0JBQTVCLE1BQU07Z0JBQ1UsYUFBYTtzQkFBN0IsTUFBTTtnQkFDVSxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1UsWUFBWTtzQkFBNUIsTUFBTTtnQkFDVSxlQUFlO3NCQUEvQixNQUFNO2dCQUNVLE1BQU07c0JBQXRCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLGNBQWM7c0JBQTlCLE1BQU07Z0JBQ1UsYUFBYTtzQkFBN0IsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNO2dCQUNVLG1CQUFtQjtzQkFBbkMsTUFBTTtnQkFDVSxlQUFlO3NCQUEvQixNQUFNO2dCQUNVLGdCQUFnQjtzQkFBaEMsTUFBTTtnQkFDVSxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLE1BQU07c0JBQXRCLE1BQU07Z0JBQ1UsUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxNQUFNO3NCQUF0QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU07O0FBR1QsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFxQjtJQUMzQyxZQUFZO0lBQ1osV0FBVztJQUNYLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLFFBQVE7SUFDUixVQUFVO0lBQ1YsY0FBYztJQUNkLFNBQVM7SUFDVCxlQUFlO0lBQ2YsUUFBUTtJQUNSLE9BQU87SUFDUCxZQUFZO0lBQ1osY0FBYztJQUNkLFNBQVM7SUFDVCxRQUFRO0lBQ1IsWUFBWTtJQUNaLFdBQVc7SUFDWCxlQUFlO0lBQ2YsWUFBWTtJQUNaLFFBQVE7SUFDUixlQUFlO0lBQ2YsU0FBUztJQUNULFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztJQUNkLFFBQVE7SUFDUixRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxZQUFZO0lBQ1osU0FBUztJQUNULGVBQWU7SUFDZixhQUFhO0lBQ2IsY0FBYztJQUNkLGNBQWM7SUFDZCxhQUFhO0lBQ2IsWUFBWTtJQUNaLGFBQWE7SUFDYixXQUFXO0lBQ1gsY0FBYztJQUNkLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLFNBQVM7SUFDVCxlQUFlO0lBQ2YsY0FBYztJQUNkLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsUUFBUTtJQUNSLFVBQVU7SUFDVixTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsYUFBYTtJQUNiLGNBQWM7SUFDZCxRQUFRO0lBQ1IsVUFBVTtJQUNWLFFBQVE7SUFDUixhQUFhO0NBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE91dHB1dCwgRXZlbnRFbWl0dGVyLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciBhcyBUaW55TUNFRWRpdG9yIH0gZnJvbSAndGlueW1jZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRPYmo8VD4ge1xuICBldmVudDogVDtcbiAgZWRpdG9yOiBUaW55TUNFRWRpdG9yO1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBFdmVudHMge1xuICBAT3V0cHV0KCkgcHVibGljIG9uQmVmb3JlUGFzdGU6IEV2ZW50RW1pdHRlcjxFdmVudE9iajxDbGlwYm9hcmRFdmVudD4+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 = '6';
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: '<ng-template></ng-template>', isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
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: '<ng-template></ng-template>', providers: [EDITOR_COMPONENT_VALUE_ACCESSOR], standalone: true, imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
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 { defer, fromEvent, map, shareReplay, take } from 'rxjs';
9
- const createState = () => ({
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
- let state = createState();
14
- const load = (doc, url) => (state.script$ ||
15
- // Caretaker note: the `script$` is a multicast observable since it's piped with `shareReplay`,
16
- // so if there're multiple editor components simultaneously on the page, they'll subscribe to the internal
17
- // `ReplaySubject`. The script will be loaded only once, and `ReplaySubject` will cache the result.
18
- (state.script$ = defer(() => {
19
- const scriptTag = doc.createElement('script');
20
- scriptTag.referrerPolicy = 'origin';
21
- scriptTag.type = 'application/javascript';
22
- scriptTag.src = url;
23
- doc.head.appendChild(scriptTag);
24
- return fromEvent(scriptTag, 'load').pipe(take(1), map(() => undefined));
25
- }).pipe(shareReplay({ bufferSize: 1, refCount: true }))));
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
- reinitialize,
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyaXB0TG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGlueW1jZS1hbmd1bGFyLWNvbXBvbmVudC9zcmMvbWFpbi90cy91dGlscy9TY3JpcHRMb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWMsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNNUUsTUFBTSxXQUFXLEdBQUcsR0FBYyxFQUFFLENBQUMsQ0FBQztJQUNwQyxPQUFPLEVBQUUsSUFBSTtDQUNkLENBQUMsQ0FBQztBQU9ILE1BQU0sa0JBQWtCLEdBQUcsR0FBaUIsRUFBRTtJQUM1QyxJQUFJLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztJQUUxQixNQUFNLElBQUksR0FBRyxDQUFDLEdBQWEsRUFBRSxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQzNDLEtBQUssQ0FBQyxPQUFPO1FBQ2IsK0ZBQStGO1FBQy9GLDBHQUEwRztRQUMxRyxtR0FBbUc7UUFDbkcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDMUIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxTQUFTLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztZQUNwQyxTQUFTLENBQUMsSUFBSSxHQUFHLHdCQUF3QixDQUFDO1lBQzFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDekQsQ0FBQztJQUVGLDRCQUE0QjtJQUM1QixNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7UUFDeEIsS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxJQUFJO1FBQ0osWUFBWTtLQUNiLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE3LXByZXNlbnQsIEVwaG94LCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIDIgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IHsgZGVmZXIsIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgbWFwLCBzaGFyZVJlcGxheSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTdGF0ZU9iaiB7XG4gIHNjcmlwdCQ6IE9ic2VydmFibGU8dm9pZD4gfCBudWxsO1xufVxuXG5jb25zdCBjcmVhdGVTdGF0ZSA9ICgpOiBJU3RhdGVPYmogPT4gKHtcbiAgc2NyaXB0JDogbnVsbCxcbn0pO1xuXG5pbnRlcmZhY2UgU2NyaXB0TG9hZGVyIHtcbiAgbG9hZDogKGRvYzogRG9jdW1lbnQsIHVybDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPHZvaWQ+O1xuICByZWluaXRpYWxpemU6ICgpID0+IHZvaWQ7XG59XG5cbmNvbnN0IENyZWF0ZVNjcmlwdExvYWRlciA9ICgpOiBTY3JpcHRMb2FkZXIgPT4ge1xuICBsZXQgc3RhdGUgPSBjcmVhdGVTdGF0ZSgpO1xuXG4gIGNvbnN0IGxvYWQgPSAoZG9jOiBEb2N1bWVudCwgdXJsOiBzdHJpbmcpID0+IChcbiAgICBzdGF0ZS5zY3JpcHQkIHx8XG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IHRoZSBgc2NyaXB0JGAgaXMgYSBtdWx0aWNhc3Qgb2JzZXJ2YWJsZSBzaW5jZSBpdCdzIHBpcGVkIHdpdGggYHNoYXJlUmVwbGF5YCxcbiAgICAvLyBzbyBpZiB0aGVyZSdyZSBtdWx0aXBsZSBlZGl0b3IgY29tcG9uZW50cyBzaW11bHRhbmVvdXNseSBvbiB0aGUgcGFnZSwgdGhleSdsbCBzdWJzY3JpYmUgdG8gdGhlIGludGVybmFsXG4gICAgLy8gYFJlcGxheVN1YmplY3RgLiBUaGUgc2NyaXB0IHdpbGwgYmUgbG9hZGVkIG9ubHkgb25jZSwgYW5kIGBSZXBsYXlTdWJqZWN0YCB3aWxsIGNhY2hlIHRoZSByZXN1bHQuXG4gICAgKHN0YXRlLnNjcmlwdCQgPSBkZWZlcigoKSA9PiB7XG4gICAgICBjb25zdCBzY3JpcHRUYWcgPSBkb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHRUYWcucmVmZXJyZXJQb2xpY3kgPSAnb3JpZ2luJztcbiAgICAgIHNjcmlwdFRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnO1xuICAgICAgc2NyaXB0VGFnLnNyYyA9IHVybDtcbiAgICAgIGRvYy5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdFRhZyk7XG4gICAgICByZXR1cm4gZnJvbUV2ZW50KHNjcmlwdFRhZywgJ2xvYWQnKS5waXBlKHRha2UoMSksIG1hcCgoKSA9PiB1bmRlZmluZWQpKTtcbiAgICB9KS5waXBlKHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSkpKVxuICApO1xuXG4gIC8vIE9ubHkgdG8gYmUgdXNlZCBieSB0ZXN0cy5cbiAgY29uc3QgcmVpbml0aWFsaXplID0gKCkgPT4ge1xuICAgIHN0YXRlID0gY3JlYXRlU3RhdGUoKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGxvYWQsXG4gICAgcmVpbml0aWFsaXplLFxuICB9O1xufTtcblxuY29uc3QgU2NyaXB0TG9hZGVyID0gQ3JlYXRlU2NyaXB0TG9hZGVyKCk7XG5cbmV4cG9ydCB7IFNjcmlwdExvYWRlciB9O1xuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyaXB0TG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGlueW1jZS1hbmd1bGFyLWNvbXBvbmVudC9zcmMvbWFpbi90cy91dGlscy9TY3JpcHRMb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVExRyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQTJCLEVBQW9CLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBRTFILE1BQU0sa0JBQWtCLEdBQUcsR0FBaUIsRUFBRTtJQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBMEMsSUFBSSxDQUFDLENBQUM7SUFDbkYsTUFBTSxPQUFPLEdBQXFCLE9BQU8sQ0FBQyxJQUFJLENBQzVDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDZixTQUFTLENBQUMsQ0FBQyxDQUFFLEdBQUcsRUFBRSxHQUFHLENBQUUsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsU0FBUyxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7UUFDcEMsU0FBUyxDQUFDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztRQUMxQyxTQUFTLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNwQixHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxPQUFPLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0lBQ0YsMkZBQTJGO0lBQzNGLDBHQUEwRztJQUMxRyxtR0FBbUc7SUFDbkcsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDL0MsQ0FBQztJQUVGLE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixFQUFFLENBQUM7QUFFMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTctcHJlc2VudCwgRXBob3gsIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMiBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICpcbiAqL1xuXG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIEJlaGF2aW9yU3ViamVjdCwgZmlyc3QsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmludGVyZmFjZSBTY3JpcHRMb2FkZXIge1xuICBsb2FkOiAoZG9jOiBEb2N1bWVudCwgdXJsOiBzdHJpbmcpID0+IE9ic2VydmFibGU8dm9pZD47XG4gIC8qKiBJbnRlbmRlZCB0byBvbmx5IHRvIGJlIHVzZWQgYnkgdGVzdHMuICovXG4gIHJlaW5pdGlhbGl6ZTogKCkgPT4gdm9pZDtcbn1cblxuY29uc3QgZmlyc3RFbWlzc2lvbiA9ICgpID0+IChzb3VyY2U6IE9ic2VydmFibGU8dW5rbm93bj4pOiBPYnNlcnZhYmxlPHZvaWQ+ID0+IHNvdXJjZS5waXBlKGZpcnN0KCksIG1hcCgoKSA9PiB1bmRlZmluZWQpKTtcblxuY29uc3QgQ3JlYXRlU2NyaXB0TG9hZGVyID0gKCk6IFNjcmlwdExvYWRlciA9PiB7XG4gIGNvbnN0IHBhcmFtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcmFtZXRlcnM8U2NyaXB0TG9hZGVyWydsb2FkJ10+IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGxvYWRlZCQ6IE9ic2VydmFibGU8dm9pZD4gPSBwYXJhbXMkLnBpcGUoXG4gICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgIHN3aXRjaE1hcCgoWyBkb2MsIHVybCBdKSA9PiB7XG4gICAgICBjb25zdCBzY3JpcHRUYWcgPSBkb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHRUYWcucmVmZXJyZXJQb2xpY3kgPSAnb3JpZ2luJztcbiAgICAgIHNjcmlwdFRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnO1xuICAgICAgc2NyaXB0VGFnLnNyYyA9IHVybDtcbiAgICAgIGRvYy5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdFRhZyk7XG4gICAgICByZXR1cm4gZnJvbUV2ZW50KHNjcmlwdFRhZywgJ2xvYWQnKS5waXBlKGZpcnN0RW1pc3Npb24oKSk7XG4gICAgfSksXG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IGBsb2FkZWQkYCBpcyBhIG11bHRpY2FzdCBvYnNlcnZhYmxlIHNpbmNlIGl0J3MgcGlwZWQgd2l0aCBgc2hhcmVSZXBsYXlgLFxuICAgIC8vIHNvIGlmIHRoZXJlJ3JlIG11bHRpcGxlIGVkaXRvciBjb21wb25lbnRzIHNpbXVsdGFuZW91c2x5IG9uIHRoZSBwYWdlLCB0aGV5J2xsIHN1YnNjcmliZSB0byB0aGUgaW50ZXJuYWxcbiAgICAvLyBgUmVwbGF5U3ViamVjdGAuIFRoZSBzY3JpcHQgd2lsbCBiZSBsb2FkZWQgb25seSBvbmNlLCBhbmQgYFJlcGxheVN1YmplY3RgIHdpbGwgY2FjaGUgdGhlIHJlc3VsdC5cbiAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBsb2FkOiAoLi4uYXJncykgPT4ge1xuICAgICAgaWYgKCFwYXJhbXMkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgcGFyYW1zJC5uZXh0KGFyZ3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxvYWRlZCQ7XG4gICAgfSxcbiAgICByZWluaXRpYWxpemU6ICgpID0+IHtcbiAgICAgIHBhcmFtcyQubmV4dChudWxsKTtcbiAgICB9LFxuICB9O1xufTtcblxuY29uc3QgU2NyaXB0TG9hZGVyID0gQ3JlYXRlU2NyaXB0TG9hZGVyKCk7XG5cbmV4cG9ydCB7IFNjcmlwdExvYWRlciB9O1xuIl19
@@ -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 its `observers` array will be empty, and we won't run "dead" change detection.
23
- if (eventEmitter.observed || eventEmitter.observers?.length > 0) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90aW55bWNlLWFuZ3VsYXItY29tcG9uZW50L3NyYy9tYWluL3RzL3V0aWxzL1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUdILE9BQU8sRUFBRSxTQUFTLEVBQVcsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXJELE9BQU8sRUFBRSxXQUFXLEVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RCx1SEFBdUg7QUFDdkgsa0RBQWtEO0FBQ2xELE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsTUFBVyxFQUNYLFNBQWlCLEVBQ2pCLFFBQXVCLEVBQ3ZCLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBd0YsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFOUksTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFvQixFQUFFLE1BQVcsRUFBRSxRQUF1QixFQUFRLEVBQUU7SUFDeEYsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtRQUNsQyxNQUFNLFlBQVksR0FBc0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZELGtCQUFrQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQy9FLDJHQUEyRztZQUMzRyx5R0FBeUc7WUFDekcsaUdBQWlHO1lBQ2pHLGdEQUFnRDtZQUNoRCxzRkFBc0Y7WUFDdEYsSUFBSSxZQUFZLENBQUMsUUFBUSxJQUFJLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNoRSxHQUFHLENBQUMs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QUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDO0FBRTNHLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLElBQUksRUFDSixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixJQUFJLEVBQ0osaUJBQWlCLEVBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxNy1wcmVzZW50LCBFcGhveCwgSW5jLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhhc0V2ZW50VGFyZ2V0QWRkUmVtb3ZlIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21FdmVudCc7XG5cbmltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2VkaXRvci9lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IHZhbGlkRXZlbnRzLCBFdmVudHMgfSBmcm9tICcuLi9lZGl0b3IvRXZlbnRzJztcblxuLy8gQ2FyZXRha2VyIG5vdGU6IGBmcm9tRXZlbnRgIHN1cHBvcnRzIHBhc3NpbmcgSlF1ZXJ5LXN0eWxlIGV2ZW50IHRhcmdldHMsIHRoZSBlZGl0b3IgaGFzIGBvbmAgYW5kIGBvZmZgIG1ldGhvZHMgd2hpY2hcbi8vIHdpbGwgYmUgaW52b2tlZCB1cG9uIHN1YnNjcmlwdGlvbiBhbmQgdGVhcmRvd24uXG5jb25zdCBsaXN0ZW5UaW55TUNFRXZlbnQgPSAoXG4gIGVkaXRvcjogYW55LFxuICBldmVudE5hbWU6IHN0cmluZyxcbiAgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD5cbikgPT4gZnJvbUV2ZW50KGVkaXRvciBhcyBIYXNFdmVudFRhcmdldEFkZFJlbW92ZTx1bmtub3duPiB8IEFycmF5TGlrZTxIYXNFdmVudFRhcmdldEFkZFJlbW92ZTx1bmtub3duPj4sIGV2ZW50TmFtZSkucGlwZSh0YWtlVW50aWwoZGVzdHJveSQpKTtcblxuY29uc3QgYmluZEhhbmRsZXJzID0gKGN0eDogRWRpdG9yQ29tcG9uZW50LCBlZGl0b3I6IGFueSwgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4pOiB2b2lkID0+IHtcbiAgY29uc3QgYWxsb3dlZEV2ZW50cyA9IGdldFZhbGlkRXZlbnRzKGN0eCk7XG4gIGFsbG93ZWRFdmVudHMuZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XG4gICAgY29uc3QgZXZlbnRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IGN0eFtldmVudE5hbWVdO1xuXG4gICAgbGlzdGVuVGlueU1DRUV2ZW50KGVkaXRvciwgZXZlbnROYW1lLnN1YnN0cmluZygyKSwgZGVzdHJveSQpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIC8vIENhcmV0YWtlciBub3RlOiBgbmdab25lLnJ1bigpYCBydW5zIGNoYW5nZSBkZXRlY3Rpb24gc2luY2UgaXQgbm90aWZpZXMgdGhlIGZvcmtlZCBBbmd1bGFyIHpvbmUgdGhhdCBpdCdzXG4gICAgICAvLyBiZWluZyByZS1lbnRlcmVkLiBXZSBkb24ndCB3YW50IHRvIHJ1biBgQXBwbGljYXRpb25SZWYudGljaygpYCBpZiBhbnlvbmUgbGlzdGVucyB0byB0aGUgc3BlY2lmaWMgZXZlbnRcbiAgICAgIC8vIHdpdGhpbiB0aGUgdGVtcGxhdGUuIEUuZy4gaWYgdGhlIGBvblNlbGVjdGlvbkNoYW5nZWAgaXMgbm90IGxpc3RlbmVkIHdpdGhpbiB0aGUgdGVtcGxhdGUgbGlrZTpcbiAgICAgIC8vIGA8ZWRpdG9yIChvblNlbGVjdGlvbkNoYW5nZSk9XCIuLi5cIj48L2VkaXRvcj5gXG4gICAgICAvLyB0aGVuIGl0cyBgb2JzZXJ2ZXJzYCBhcnJheSB3aWxsIGJlIGVtcHR5LCBhbmQgd2Ugd29uJ3QgcnVuIFwiZGVhZFwiIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgICBpZiAoZXZlbnRFbWl0dGVyLm9ic2VydmVkIHx8IGV2ZW50RW1pdHRlci5vYnNlcnZlcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgY3R4Lm5nWm9uZS5ydW4oKCkgPT4gZXZlbnRFbWl0dGVyLmVtaXQoeyBldmVudCwgZWRpdG9yIH0pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG5jb25zdCBnZXRWYWxpZEV2ZW50cyA9IChjdHg6IEVkaXRvckNvbXBvbmVudCk6IChrZXlvZiBFdmVudHMpW10gPT4ge1xuICBjb25zdCBpZ25vcmVkRXZlbnRzID0gcGFyc2VTdHJpbmdQcm9wZXJ0eShjdHguaWdub3JlRXZlbnRzLCBbXSk7XG4gIGNvbnN0IGFsbG93ZWRFdmVudHMgPSBwYXJzZVN0cmluZ1Byb3BlcnR5KGN0eC5hbGxvd2VkRXZlbnRzLCB2YWxpZEV2ZW50cykuZmlsdGVyKFxuICAgIChldmVudCkgPT4gdmFsaWRFdmVudHMuaW5jbHVkZXMoZXZlbnQgYXMgKGtleW9mIEV2ZW50cykpICYmICFpZ25vcmVkRXZlbnRzLmluY2x1ZGVzKGV2ZW50KSkgYXMgKGtleW9mIEV2ZW50cylbXTtcbiAgcmV0dXJuIGFsbG93ZWRFdmVudHM7XG59O1xuXG5jb25zdCBwYXJzZVN0cmluZ1Byb3BlcnR5ID0gKHByb3BlcnR5OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCwgZGVmYXVsdFZhbHVlOiAoa2V5b2YgRXZlbnRzKVtdKTogc3RyaW5nW10gPT4ge1xuICBpZiAoIHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcHJvcGVydHkuc3BsaXQoJywnKS5tYXAoKHZhbHVlKSA9PiB2YWx1ZS50cmltKCkpO1xuICB9XG4gIGlmICggQXJyYXkuaXNBcnJheShwcm9wZXJ0eSkpIHtcbiAgICByZXR1cm4gcHJvcGVydHk7XG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbn07XG5cbmxldCB1bmlxdWUgPSAwO1xuXG5jb25zdCB1dWlkID0gKHByZWZpeDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IHRpbWUgPSBkYXRlLmdldFRpbWUoKTtcbiAgY29uc3QgcmFuZG9tID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMDAwMCk7XG5cbiAgdW5pcXVlKys7XG5cbiAgcmV0dXJuIHByZWZpeCArICdfJyArIHJhbmRvbSArIHVuaXF1ZSArIFN0cmluZyh0aW1lKTtcbn07XG5cbmNvbnN0IGlzVGV4dGFyZWEgPSAoZWxlbWVudD86IEVsZW1lbnQpOiBlbGVtZW50IGlzIEhUTUxUZXh0QXJlYUVsZW1lbnQgPT4gdHlwZW9mIGVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAndGV4dGFyZWEnO1xuXG5jb25zdCBub3JtYWxpemVQbHVnaW5BcnJheSA9IChwbHVnaW5zPzogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSA9PiB7XG4gIGlmICh0eXBlb2YgcGx1Z2lucyA9PT0gJ3VuZGVmaW5lZCcgfHwgcGx1Z2lucyA9PT0gJycpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gQXJyYXkuaXNBcnJheShwbHVnaW5zKSA/IHBsdWdpbnMgOiBwbHVnaW5zLnNwbGl0KCcgJyk7XG59O1xuXG5jb25zdCBtZXJnZVBsdWdpbnMgPSAoaW5pdFBsdWdpbnM6IHN0cmluZyB8IHN0cmluZ1tdLCBpbnB1dFBsdWdpbnM/OiBzdHJpbmcgfCBzdHJpbmdbXSkgPT5cbiAgbm9ybWFsaXplUGx1Z2luQXJyYXkoaW5pdFBsdWdpbnMpLmNvbmNhdChub3JtYWxpemVQbHVnaW5BcnJheShpbnB1dFBsdWdpbnMpKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuY29uc3Qgbm9vcDogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG5jb25zdCBpc051bGxPclVuZGVmaW5lZCA9ICh2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVsbCB8IHVuZGVmaW5lZCA9PiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuXG5leHBvcnQge1xuICBsaXN0ZW5UaW55TUNFRXZlbnQsXG4gIGJpbmRIYW5kbGVycyxcbiAgdXVpZCxcbiAgaXNUZXh0YXJlYSxcbiAgbm9ybWFsaXplUGx1Z2luQXJyYXksXG4gIG1lcmdlUGx1Z2lucyxcbiAgbm9vcCxcbiAgaXNOdWxsT3JVbmRlZmluZWRcbn07XG4iXX0=
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, shareReplay, take, map, defer, Subject } from 'rxjs';
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 its `observers` array will be empty, and we won't run "dead" change detection.
307
- if (eventEmitter.observed || eventEmitter.observers?.length > 0) {
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 createState = () => ({
355
- script$: null,
356
- });
371
+ const firstEmission = () => (source) => source.pipe(first(), map(() => undefined));
357
372
  const CreateScriptLoader = () => {
358
- let state = createState();
359
- const load = (doc, url) => (state.script$ ||
360
- // Caretaker note: the `script$` is a multicast observable since it's piped with `shareReplay`,
361
- // so if there're multiple editor components simultaneously on the page, they'll subscribe to the internal
362
- // `ReplaySubject`. The script will be loaded only once, and `ReplaySubject` will cache the result.
363
- (state.script$ = defer(() => {
364
- const scriptTag = doc.createElement('script');
365
- scriptTag.referrerPolicy = 'origin';
366
- scriptTag.type = 'application/javascript';
367
- scriptTag.src = url;
368
- doc.head.appendChild(scriptTag);
369
- return fromEvent(scriptTag, 'load').pipe(take(1), map(() => undefined));
370
- }).pipe(shareReplay({ bufferSize: 1, refCount: true }))));
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
- reinitialize,
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 = '6';
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: '<ng-template></ng-template>', isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
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: '<ng-template></ng-template>', providers: [EDITOR_COMPONENT_VALUE_ACCESSOR], standalone: true, imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block}\n"] }]
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": "7.1.1-rc.2",
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",
@@ -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;