slate-angular 17.0.0-next.0 → 17.1.0

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.
Files changed (67) hide show
  1. package/components/children/children-outlet.component.d.ts +9 -0
  2. package/components/children/children.component.d.ts +1 -6
  3. package/components/editable/editable.component.d.ts +15 -5
  4. package/components/leaf/token.d.ts +4 -0
  5. package/components/leaves/leaves.component.d.ts +1 -14
  6. package/components/string/default-string.component.d.ts +1 -1
  7. package/components/string/string.component.d.ts +8 -0
  8. package/components/text/token.d.ts +5 -0
  9. package/components/text/void-text.component.d.ts +0 -1
  10. package/esm2022/components/block-card/block-card.component.mjs +6 -6
  11. package/esm2022/components/children/children-outlet.component.mjs +22 -0
  12. package/esm2022/components/children/children.component.mjs +7 -35
  13. package/esm2022/components/editable/editable.component.mjs +143 -50
  14. package/esm2022/components/element/default-element.component.mjs +5 -5
  15. package/esm2022/components/element/element.component.mjs +5 -5
  16. package/esm2022/components/leaf/default-leaf.component.mjs +3 -3
  17. package/esm2022/components/leaf/token.mjs +3 -0
  18. package/esm2022/components/leaves/leaves.component.mjs +7 -52
  19. package/esm2022/components/string/default-string.component.mjs +5 -5
  20. package/esm2022/components/string/string.component.mjs +20 -10
  21. package/esm2022/components/string/template.component.mjs +3 -3
  22. package/esm2022/components/text/default-text.component.mjs +5 -5
  23. package/esm2022/components/text/token.mjs +4 -0
  24. package/esm2022/components/text/void-text.component.mjs +5 -9
  25. package/esm2022/custom-event/BeforeInputEventPlugin.mjs +1 -1
  26. package/esm2022/custom-event/FallbackCompositionState.mjs +1 -1
  27. package/esm2022/module.mjs +11 -26
  28. package/esm2022/plugins/angular-editor.mjs +65 -20
  29. package/esm2022/plugins/with-angular.mjs +5 -4
  30. package/esm2022/public-api.mjs +3 -2
  31. package/esm2022/utils/constants.mjs +2 -0
  32. package/esm2022/utils/dom.mjs +1 -1
  33. package/esm2022/utils/hotkeys.mjs +1 -1
  34. package/esm2022/utils/index.mjs +2 -1
  35. package/esm2022/utils/lines.mjs +1 -1
  36. package/esm2022/utils/range-list.mjs +1 -1
  37. package/esm2022/utils/restore-dom.mjs +1 -1
  38. package/esm2022/utils/throttle.mjs +18 -0
  39. package/esm2022/view/base.mjs +82 -28
  40. package/esm2022/view/container-item.mjs +5 -5
  41. package/esm2022/view/container.mjs +6 -86
  42. package/esm2022/view/context-change.mjs +13 -0
  43. package/esm2022/view/context.mjs +1 -1
  44. package/esm2022/view/render/leaves-render.mjs +107 -0
  45. package/esm2022/view/render/list-render.mjs +292 -0
  46. package/esm2022/view/render/utils.mjs +115 -0
  47. package/fesm2022/slate-angular.mjs +1189 -816
  48. package/fesm2022/slate-angular.mjs.map +1 -1
  49. package/module.d.ts +7 -8
  50. package/package.json +7 -7
  51. package/plugins/angular-editor.d.ts +17 -6
  52. package/public-api.d.ts +2 -1
  53. package/utils/constants.d.ts +1 -0
  54. package/utils/index.d.ts +1 -0
  55. package/utils/throttle.d.ts +2 -0
  56. package/view/base.d.ts +17 -4
  57. package/view/container.d.ts +3 -7
  58. package/view/{before-context-change.d.ts → context-change.d.ts} +4 -0
  59. package/view/context.d.ts +7 -2
  60. package/view/render/leaves-render.d.ts +21 -0
  61. package/view/render/list-render.d.ts +35 -0
  62. package/view/render/utils.d.ts +11 -0
  63. package/components/descendant/descendant.component.d.ts +0 -35
  64. package/components/leaf/leaf.component.d.ts +0 -16
  65. package/esm2022/components/descendant/descendant.component.mjs +0 -186
  66. package/esm2022/components/leaf/leaf.component.mjs +0 -38
  67. package/esm2022/view/before-context-change.mjs +0 -7
@@ -0,0 +1,9 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SlateChildrenOutlet {
4
+ private elementRef;
5
+ constructor(elementRef: ElementRef<HTMLElement>);
6
+ getNativeElement(): HTMLElement;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<SlateChildrenOutlet, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<SlateChildrenOutlet, "slate-children-outlet", never, {}, {}, never, never, true, never>;
9
+ }
@@ -1,16 +1,11 @@
1
- import { OnInit, QueryList } from '@angular/core';
2
- import { SlateDescendant } from '../descendant/descendant.component';
3
1
  import { Descendant } from 'slate';
4
2
  import { SlateChildrenContext, SlateViewContext } from '../../view/context';
5
3
  import { ViewContainer } from '../../view/container';
6
4
  import * as i0 from "@angular/core";
7
- export declare class SlateChildren extends ViewContainer<SlateDescendant> implements OnInit {
5
+ export declare class SlateChildren extends ViewContainer<any> {
8
6
  children: Descendant[];
9
7
  context: SlateChildrenContext;
10
8
  viewContext: SlateViewContext;
11
- childrenComponent: QueryList<SlateDescendant>;
12
- ngOnInit(): void;
13
- trackBy: (index: any, node: any) => any;
14
9
  static ɵfac: i0.ɵɵFactoryDeclaration<SlateChildren, never>;
15
10
  static ɵcmp: i0.ɵɵComponentDeclaration<SlateChildren, "slate-children", never, { "children": { "alias": "children"; "required": false; }; "context": { "alias": "context"; "required": false; }; "viewContext": { "alias": "viewContext"; "required": false; }; }, {}, never, never, true, never>;
16
11
  }
@@ -1,11 +1,13 @@
1
- import { OnInit, Renderer2, ElementRef, OnDestroy, ChangeDetectorRef, NgZone, Injector, OnChanges, SimpleChanges, AfterViewChecked, DoCheck } from '@angular/core';
1
+ import { OnInit, Renderer2, ElementRef, OnDestroy, ChangeDetectorRef, NgZone, Injector, OnChanges, SimpleChanges, AfterViewChecked, DoCheck, ViewContainerRef } from '@angular/core';
2
2
  import { Text as SlateText, Element, Editor, Range, NodeEntry } from 'slate';
3
3
  import { AngularEditor } from '../../plugins/angular-editor';
4
4
  import { DOMElement, DOMNode, DOMRange } from '../../utils/dom';
5
5
  import { SlateStringTemplate } from '../string/template.component';
6
6
  import { SlateChildrenContext, SlateViewContext } from '../../view/context';
7
- import { ViewType } from '../../types/view';
7
+ import { ComponentType, ViewType } from '../../types/view';
8
8
  import { SlatePlaceholder } from '../../types/feature';
9
+ import { BaseElementComponent, BaseLeafComponent, BaseTextComponent } from '../../view/base';
10
+ import { ListRender } from '../../view/render/list-render';
9
11
  import * as i0 from "@angular/core";
10
12
  export declare class SlateEditable implements OnInit, OnChanges, OnDestroy, AfterViewChecked, DoCheck {
11
13
  elementRef: ElementRef;
@@ -13,6 +15,10 @@ export declare class SlateEditable implements OnInit, OnChanges, OnDestroy, Afte
13
15
  cdr: ChangeDetectorRef;
14
16
  private ngZone;
15
17
  private injector;
18
+ defaultElement: ComponentType<BaseElementComponent>;
19
+ defaultText: ComponentType<BaseTextComponent>;
20
+ defaultVoidText: ComponentType<BaseTextComponent>;
21
+ defaultLeaf: ComponentType<BaseLeafComponent>;
16
22
  viewContext: SlateViewContext;
17
23
  context: SlateChildrenContext;
18
24
  private destroy$;
@@ -59,7 +65,10 @@ export declare class SlateEditable implements OnInit, OnChanges, OnDestroy, Afte
59
65
  get hasBeforeInputSupport(): boolean;
60
66
  templateComponent: SlateStringTemplate;
61
67
  templateElementRef: ElementRef<any>;
62
- constructor(elementRef: ElementRef, renderer2: Renderer2, cdr: ChangeDetectorRef, ngZone: NgZone, injector: Injector);
68
+ viewContainerRef: ViewContainerRef;
69
+ getOutletParent: () => any;
70
+ listRender: ListRender;
71
+ constructor(elementRef: ElementRef, renderer2: Renderer2, cdr: ChangeDetectorRef, ngZone: NgZone, injector: Injector, defaultElement: ComponentType<BaseElementComponent>, defaultText: ComponentType<BaseTextComponent>, defaultVoidText: ComponentType<BaseTextComponent>, defaultLeaf: ComponentType<BaseLeafComponent>);
63
72
  ngOnInit(): void;
64
73
  ngOnChanges(simpleChanges: SimpleChanges): void;
65
74
  registerOnChange(fn: any): void;
@@ -70,10 +79,11 @@ export declare class SlateEditable implements OnInit, OnChanges, OnDestroy, Afte
70
79
  onChange(): void;
71
80
  ngAfterViewChecked(): void;
72
81
  ngDoCheck(): void;
73
- forceFlush(): void;
82
+ forceRender(): void;
83
+ render(): void;
84
+ updateContext(): boolean;
74
85
  initializeContext(): void;
75
86
  initializeViewContext(): void;
76
- detectContext(): void;
77
87
  composePlaceholderDecorate(editor: Editor): SlatePlaceholder[];
78
88
  generateDecorations(): import("slate").BaseRange[];
79
89
  private addEventListener;
@@ -0,0 +1,4 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { ComponentType } from '../../types/view';
3
+ import { BaseLeafComponent } from '../../view/base';
4
+ export declare const SLATE_DEFAULT_LEAF_COMPONENT_TOKEN: InjectionToken<ComponentType<BaseLeafComponent>>;
@@ -1,25 +1,12 @@
1
- import { AfterViewInit, OnChanges, OnInit, QueryList, SimpleChanges } from '@angular/core';
2
1
  import { Text } from 'slate';
3
2
  import { SlateLeafContext, SlateTextContext } from '../../view/context';
4
3
  import { ViewContainer } from '../../view/container';
5
- import { SlateLeaf } from '../leaf/leaf.component';
6
4
  import * as i0 from "@angular/core";
7
- export declare class SlateLeaves extends ViewContainer<SlateLeaf> implements OnInit, AfterViewInit, OnChanges {
5
+ export declare class SlateLeaves extends ViewContainer<any> {
8
6
  initialized: boolean;
9
7
  leafContexts: SlateLeafContext[];
10
8
  leaves: Text[];
11
9
  context: SlateTextContext;
12
- childrenComponent: QueryList<SlateLeaf>;
13
- ngOnInit(): void;
14
- getLeafContexts(): {
15
- leaf: import("slate").BaseText;
16
- text: import("slate").BaseText;
17
- parent: import("slate").BaseElement;
18
- index: number;
19
- isLast: boolean;
20
- }[];
21
- ngOnChanges(simpleChanges: SimpleChanges): void;
22
- trackBy(index: any, item: any): any;
23
10
  static ɵfac: i0.ɵɵFactoryDeclaration<SlateLeaves, never>;
24
11
  static ɵcmp: i0.ɵɵComponentDeclaration<SlateLeaves, "slate-leaves", never, { "context": { "alias": "context"; "required": false; }; }, {}, never, never, true, never>;
25
12
  }
@@ -1,7 +1,7 @@
1
1
  import { OnInit, ElementRef, ChangeDetectorRef } from '@angular/core';
2
2
  import { SlateStringContext } from '../../view/context';
3
3
  import { BaseComponent } from '../../view/base';
4
- import { BeforeContextChange } from '../../view/before-context-change';
4
+ import { BeforeContextChange } from '../../view/context-change';
5
5
  import { DOMElement } from '../../utils/dom';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class SlateDefaultString extends BaseComponent<SlateStringContext> implements OnInit, BeforeContextChange<SlateStringContext> {
@@ -22,3 +22,11 @@ export declare class SlateString extends ViewContainerItem<SlateStringContext> i
22
22
  static ɵfac: i0.ɵɵFactoryDeclaration<SlateString, never>;
23
23
  static ɵcmp: i0.ɵɵComponentDeclaration<SlateString, "span[slateString]", never, { "context": { "alias": "context"; "required": false; }; }, {}, never, never, true, never>;
24
24
  }
25
+ /**
26
+ * TODO: remove when bump slate
27
+ * copy from slate
28
+ * @param editor
29
+ * @param element
30
+ * @returns
31
+ */
32
+ export declare const isEmpty: (editor: any, element: any) => boolean;
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { ComponentType } from '../../types/view';
3
+ import { BaseTextComponent } from '../../view/base';
4
+ export declare const SLATE_DEFAULT_TEXT_COMPONENT_TOKEN: InjectionToken<ComponentType<BaseTextComponent<import("slate").BaseText>>>;
5
+ export declare const SLATE_DEFAULT_VOID_TEXT_COMPONENT_TOKEN: InjectionToken<ComponentType<BaseTextComponent<import("slate").BaseText>>>;
@@ -2,7 +2,6 @@ import { OnInit, OnChanges } from '@angular/core';
2
2
  import { BaseTextComponent } from '../../view/base';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SlateVoidText extends BaseTextComponent implements OnInit, OnChanges {
5
- isLeafBlock: boolean;
6
5
  ngOnInit(): void;
7
6
  ngOnChanges(): void;
8
7
  static ɵfac: i0.ɵɵFactoryDeclaration<SlateVoidText, never>;
@@ -11,7 +11,6 @@ export class SlateBlockCard {
11
11
  this.elementRef = elementRef;
12
12
  }
13
13
  ngOnInit() {
14
- this.append();
15
14
  this.nativeElement.classList.add(`slate-block-card`);
16
15
  }
17
16
  append() {
@@ -19,15 +18,16 @@ export class SlateBlockCard {
19
18
  }
20
19
  initializeCenter(rootNodes) {
21
20
  this.centerRootNodes = rootNodes;
21
+ this.append();
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateBlockCard, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SlateBlockCard, isStandalone: true, selector: "slate-block-card, [slateBlockCard]", viewQueries: [{ propertyName: "centerContianer", first: true, predicate: ["centerContianer"], descendants: true, static: true }], ngImport: i0, template: "<span card-target=\"card-left\" class=\"card-left\">{{ '\\uFEFF' }}</span>\n<div card-target=\"card-center\" #centerContianer></div>\n<span card-target=\"card-right\" class=\"card-right\">{{ '\\uFEFF' }}</span>\n" }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SlateBlockCard, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: SlateBlockCard, isStandalone: true, selector: "slate-block-card, [slateBlockCard]", viewQueries: [{ propertyName: "centerContianer", first: true, predicate: ["centerContianer"], descendants: true, static: true }], ngImport: i0, template: "<span card-target=\"card-left\" class=\"card-left\">{{ '\\uFEFF' }}</span>\n<div card-target=\"card-center\" #centerContianer></div>\n<span card-target=\"card-right\" class=\"card-right\">{{ '\\uFEFF' }}</span>\n" }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateBlockCard, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SlateBlockCard, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'slate-block-card, [slateBlockCard]', standalone: true, template: "<span card-target=\"card-left\" class=\"card-left\">{{ '\\uFEFF' }}</span>\n<div card-target=\"card-center\" #centerContianer></div>\n<span card-target=\"card-right\" class=\"card-right\">{{ '\\uFEFF' }}</span>\n" }]
29
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { centerContianer: [{
29
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { centerContianer: [{
30
30
  type: ViewChild,
31
31
  args: ['centerContianer', { static: true }]
32
32
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9ibG9jay1jYXJkL2Jsb2NrLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvYmxvY2stY2FyZC9ibG9jay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPekUsTUFBTSxPQUFPLGNBQWM7SUFNdkIsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQTRCLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0lBRTlDLFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUN4QixRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUNuSCxDQUFDO0lBQ04sQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQXdCO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO0lBQ3JDLENBQUM7OEdBN0JRLGNBQWM7a0dBQWQsY0FBYyxnT0NQM0Isc05BR0E7OzJGRElhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0ksb0NBQW9DLGNBRWxDLElBQUk7aUdBSWhCLGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2xhdGUtYmxvY2stY2FyZCwgW3NsYXRlQmxvY2tDYXJkXScsXG4gICAgdGVtcGxhdGVVcmw6ICdibG9jay1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFNsYXRlQmxvY2tDYXJkIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdjZW50ZXJDb250aWFuZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGNlbnRlckNvbnRpYW5lcjogRWxlbWVudFJlZjtcblxuICAgIGNlbnRlclJvb3ROb2RlczogSFRNTEVsZW1lbnRbXTtcblxuICAgIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGNlbnRlckNvbnRhaW5lckVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNlbnRlckNvbnRpYW5lci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmFwcGVuZCgpO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgc2xhdGUtYmxvY2stY2FyZGApO1xuICAgIH1cblxuICAgIGFwcGVuZCgpIHtcbiAgICAgICAgdGhpcy5jZW50ZXJSb290Tm9kZXMuZm9yRWFjaChcbiAgICAgICAgICAgIHJvb3ROb2RlID0+ICF0aGlzLmNlbnRlckNvbnRhaW5lckVsZW1lbnQuY29udGFpbnMocm9vdE5vZGUpICYmIHRoaXMuY2VudGVyQ29udGFpbmVyRWxlbWVudC5hcHBlbmRDaGlsZChyb290Tm9kZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplQ2VudGVyKHJvb3ROb2RlczogSFRNTEVsZW1lbnRbXSkge1xuICAgICAgICB0aGlzLmNlbnRlclJvb3ROb2RlcyA9IHJvb3ROb2RlcztcbiAgICB9XG59XG4iLCI8c3BhbiBjYXJkLXRhcmdldD1cImNhcmQtbGVmdFwiIGNsYXNzPVwiY2FyZC1sZWZ0XCI+e3sgJ1xcdUZFRkYnIH19PC9zcGFuPlxuPGRpdiBjYXJkLXRhcmdldD1cImNhcmQtY2VudGVyXCIgI2NlbnRlckNvbnRpYW5lcj48L2Rpdj5cbjxzcGFuIGNhcmQtdGFyZ2V0PVwiY2FyZC1yaWdodFwiIGNsYXNzPVwiY2FyZC1yaWdodFwiPnt7ICdcXHVGRUZGJyB9fTwvc3Bhbj5cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9ibG9jay1jYXJkL2Jsb2NrLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvYmxvY2stY2FyZC9ibG9jay1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPekUsTUFBTSxPQUFPLGNBQWM7SUFNdkIsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQTRCLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0lBRTlDLFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUN4QixRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUNuSCxDQUFDO0lBQ04sQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQXdCO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDOzhHQTdCUSxjQUFjO2tHQUFkLGNBQWMsZ09DUDNCLHNOQUdBOzsyRkRJYSxjQUFjO2tCQUwxQixTQUFTOytCQUNJLG9DQUFvQyxjQUVsQyxJQUFJOytFQUloQixlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NsYXRlLWJsb2NrLWNhcmQsIFtzbGF0ZUJsb2NrQ2FyZF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnYmxvY2stY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTbGF0ZUJsb2NrQ2FyZCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnY2VudGVyQ29udGlhbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBjZW50ZXJDb250aWFuZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBjZW50ZXJSb290Tm9kZXM6IEhUTUxFbGVtZW50W107XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBjZW50ZXJDb250YWluZXJFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jZW50ZXJDb250aWFuZXIubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYHNsYXRlLWJsb2NrLWNhcmRgKTtcbiAgICB9XG5cbiAgICBhcHBlbmQoKSB7XG4gICAgICAgIHRoaXMuY2VudGVyUm9vdE5vZGVzLmZvckVhY2goXG4gICAgICAgICAgICByb290Tm9kZSA9PiAhdGhpcy5jZW50ZXJDb250YWluZXJFbGVtZW50LmNvbnRhaW5zKHJvb3ROb2RlKSAmJiB0aGlzLmNlbnRlckNvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQocm9vdE5vZGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUNlbnRlcihyb290Tm9kZXM6IEhUTUxFbGVtZW50W10pIHtcbiAgICAgICAgdGhpcy5jZW50ZXJSb290Tm9kZXMgPSByb290Tm9kZXM7XG4gICAgICAgIHRoaXMuYXBwZW5kKCk7XG4gICAgfVxufVxuIiwiPHNwYW4gY2FyZC10YXJnZXQ9XCJjYXJkLWxlZnRcIiBjbGFzcz1cImNhcmQtbGVmdFwiPnt7ICdcXHVGRUZGJyB9fTwvc3Bhbj5cbjxkaXYgY2FyZC10YXJnZXQ9XCJjYXJkLWNlbnRlclwiICNjZW50ZXJDb250aWFuZXI+PC9kaXY+XG48c3BhbiBjYXJkLXRhcmdldD1cImNhcmQtcmlnaHRcIiBjbGFzcz1cImNhcmQtcmlnaHRcIj57eyAnXFx1RkVGRicgfX08L3NwYW4+XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SlateChildrenOutlet {
4
+ constructor(elementRef) {
5
+ this.elementRef = elementRef;
6
+ }
7
+ getNativeElement() {
8
+ return this.elementRef.nativeElement;
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SlateChildrenOutlet, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: SlateChildrenOutlet, isStandalone: true, selector: "slate-children-outlet", ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SlateChildrenOutlet, decorators: [{
14
+ type: Component,
15
+ args: [{
16
+ selector: 'slate-children-outlet',
17
+ template: ``,
18
+ changeDetection: ChangeDetectionStrategy.OnPush,
19
+ standalone: true
20
+ }]
21
+ }], ctorParameters: () => [{ type: i0.ElementRef }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGRyZW4tb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb21wb25lbnRzL2NoaWxkcmVuL2NoaWxkcmVuLW91dGxldC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUFRL0UsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUFvQixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtJQUFHLENBQUM7SUFDM0QsZ0JBQWdCO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDOzhHQUpRLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGlGQUpsQixFQUFFOzsyRkFJSCxtQkFBbUI7a0JBTi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzbGF0ZS1jaGlsZHJlbi1vdXRsZXQnLFxuICAgIHRlbXBsYXRlOiBgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFNsYXRlQ2hpbGRyZW5PdXRsZXQge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG4gICAgZ2V0TmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,42 +1,17 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewChildren } from '@angular/core';
2
- import { SlateDescendant } from '../descendant/descendant.component';
3
- import { AngularEditor } from '../../plugins/angular-editor';
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
4
2
  import { ViewContainer } from '../../view/container';
5
- import { NgFor } from '@angular/common';
6
3
  import * as i0 from "@angular/core";
7
4
  export class SlateChildren extends ViewContainer {
8
- constructor() {
9
- super(...arguments);
10
- this.trackBy = (index, node) => {
11
- return this.viewContext.trackBy(node) || AngularEditor.findKey(this.viewContext.editor, node);
12
- };
13
- }
14
- ngOnInit() { }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateChildren, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SlateChildren, isStandalone: true, selector: "slate-children", inputs: { children: "children", context: "context", viewContext: "viewContext" }, viewQueries: [{ propertyName: "childrenComponent", predicate: SlateDescendant, descendants: true, read: SlateDescendant }], usesInheritance: true, ngImport: i0, template: `<slate-descendant
17
- [descendant]="descendant"
18
- [context]="context"
19
- [viewContext]="viewContext"
20
- [viewContext]="viewContext"
21
- [index]="index"
22
- *ngFor="let descendant of children; let index = index; trackBy: trackBy"
23
- ></slate-descendant>`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SlateDescendant, selector: "slate-descendant", inputs: ["descendant", "context", "viewContext", "index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SlateChildren, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: SlateChildren, isStandalone: true, selector: "slate-children", inputs: { children: "children", context: "context", viewContext: "viewContext" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
7
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateChildren, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SlateChildren, decorators: [{
26
9
  type: Component,
27
10
  args: [{
28
11
  selector: 'slate-children',
29
- template: `<slate-descendant
30
- [descendant]="descendant"
31
- [context]="context"
32
- [viewContext]="viewContext"
33
- [viewContext]="viewContext"
34
- [index]="index"
35
- *ngFor="let descendant of children; let index = index; trackBy: trackBy"
36
- ></slate-descendant>`,
12
+ template: ``,
37
13
  changeDetection: ChangeDetectionStrategy.OnPush,
38
- standalone: true,
39
- imports: [NgFor, SlateDescendant]
14
+ standalone: true
40
15
  }]
41
16
  }], propDecorators: { children: [{
42
17
  type: Input
@@ -44,8 +19,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
44
19
  type: Input
45
20
  }], viewContext: [{
46
21
  type: Input
47
- }], childrenComponent: [{
48
- type: ViewChildren,
49
- args: [SlateDescendant, { read: SlateDescendant }]
50
22
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGRyZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY2hpbGRyZW4vY2hpbGRyZW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWdCeEMsTUFBTSxPQUFPLGFBQWMsU0FBUSxhQUE4QjtJQWRqRTs7UUEwQkksWUFBTyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRyxDQUFDLENBQUM7S0FDTDtJQUxHLFFBQVEsS0FBSSxDQUFDOzhHQVZKLGFBQWE7a0dBQWIsYUFBYSxrTUFPUixlQUFlLDJCQUFVLGVBQWUsb0RBbkI1Qzs7Ozs7Ozt5QkFPVyw0REFHWCxLQUFLLG1IQUFFLGVBQWU7OzJGQUV2QixhQUFhO2tCQWR6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRTs7Ozs7Ozt5QkFPVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDO2lCQUNwQzs4QkFFWSxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdOLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNsYXRlRGVzY2VuZGFudCB9IGZyb20gJy4uL2Rlc2NlbmRhbnQvZGVzY2VuZGFudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVzY2VuZGFudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICcuLi8uLi9wbHVnaW5zL2FuZ3VsYXItZWRpdG9yJztcbmltcG9ydCB7IFNsYXRlQ2hpbGRyZW5Db250ZXh0LCBTbGF0ZVZpZXdDb250ZXh0IH0gZnJvbSAnLi4vLi4vdmlldy9jb250ZXh0JztcbmltcG9ydCB7IFZpZXdDb250YWluZXIgfSBmcm9tICcuLi8uLi92aWV3L2NvbnRhaW5lcic7XG5pbXBvcnQgeyBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2xhdGUtY2hpbGRyZW4nLFxuICAgIHRlbXBsYXRlOiBgPHNsYXRlLWRlc2NlbmRhbnRcbiAgICAgICAgW2Rlc2NlbmRhbnRdPVwiZGVzY2VuZGFudFwiXG4gICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxuICAgICAgICBbdmlld0NvbnRleHRdPVwidmlld0NvbnRleHRcIlxuICAgICAgICBbdmlld0NvbnRleHRdPVwidmlld0NvbnRleHRcIlxuICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgZGVzY2VuZGFudCBvZiBjaGlsZHJlbjsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgID48L3NsYXRlLWRlc2NlbmRhbnQ+YCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0ZvciwgU2xhdGVEZXNjZW5kYW50XVxufSlcbmV4cG9ydCBjbGFzcyBTbGF0ZUNoaWxkcmVuIGV4dGVuZHMgVmlld0NvbnRhaW5lcjxTbGF0ZURlc2NlbmRhbnQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBjaGlsZHJlbjogRGVzY2VuZGFudFtdO1xuXG4gICAgQElucHV0KCkgY29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQ7XG5cbiAgICBASW5wdXQoKSB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dDtcblxuICAgIEBWaWV3Q2hpbGRyZW4oU2xhdGVEZXNjZW5kYW50LCB7IHJlYWQ6IFNsYXRlRGVzY2VuZGFudCB9KVxuICAgIGNoaWxkcmVuQ29tcG9uZW50OiBRdWVyeUxpc3Q8U2xhdGVEZXNjZW5kYW50PjtcblxuICAgIG5nT25Jbml0KCkge31cblxuICAgIHRyYWNrQnkgPSAoaW5kZXgsIG5vZGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQudHJhY2tCeShub2RlKSB8fCBBbmd1bGFyRWRpdG9yLmZpbmRLZXkodGhpcy52aWV3Q29udGV4dC5lZGl0b3IsIG5vZGUpO1xuICAgIH07XG59XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGRyZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY2hpbGRyZW4vY2hpbGRyZW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFTckQsTUFBTSxPQUFPLGFBQWMsU0FBUSxhQUFrQjs4R0FBeEMsYUFBYTtrR0FBYixhQUFhLG1MQUpaLEVBQUU7OzJGQUlILGFBQWE7a0JBTnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFFWSxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlc2NlbmRhbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBTbGF0ZUNoaWxkcmVuQ29udGV4dCwgU2xhdGVWaWV3Q29udGV4dCB9IGZyb20gJy4uLy4uL3ZpZXcvY29udGV4dCc7XG5pbXBvcnQgeyBWaWV3Q29udGFpbmVyIH0gZnJvbSAnLi4vLi4vdmlldy9jb250YWluZXInO1xuaW1wb3J0IHsgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NsYXRlLWNoaWxkcmVuJyxcbiAgICB0ZW1wbGF0ZTogYGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTbGF0ZUNoaWxkcmVuIGV4dGVuZHMgVmlld0NvbnRhaW5lcjxhbnk+IHtcbiAgICBASW5wdXQoKSBjaGlsZHJlbjogRGVzY2VuZGFudFtdO1xuXG4gICAgQElucHV0KCkgY29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQ7XG5cbiAgICBASW5wdXQoKSB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dDtcbn1cbiJdfQ==