slate-angular 16.0.0 → 16.1.0-next.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 (53) hide show
  1. package/components/block-card/block-card.component.d.ts +3 -3
  2. package/components/children/children.component.d.ts +3 -8
  3. package/components/editable/editable.component.d.ts +21 -10
  4. package/components/element/default-element.component.d.ts +3 -3
  5. package/components/element/element.component.d.ts +3 -3
  6. package/components/leaf/default-leaf.component.d.ts +3 -3
  7. package/components/leaf/token.d.ts +4 -0
  8. package/components/leaves/leaves.component.d.ts +3 -16
  9. package/components/string/default-string.component.d.ts +3 -3
  10. package/components/string/string.component.d.ts +13 -5
  11. package/components/string/template.component.d.ts +3 -3
  12. package/components/text/default-text.component.d.ts +3 -3
  13. package/components/text/token.d.ts +5 -0
  14. package/components/text/void-text.component.d.ts +3 -3
  15. package/esm2022/components/block-card/block-card.component.mjs +6 -6
  16. package/esm2022/components/children/children.component.mjs +11 -36
  17. package/esm2022/components/editable/editable.component.mjs +129 -46
  18. package/esm2022/components/element/default-element.component.mjs +10 -8
  19. package/esm2022/components/element/element.component.mjs +10 -8
  20. package/esm2022/components/leaf/default-leaf.component.mjs +9 -7
  21. package/esm2022/components/leaf/token.mjs +3 -0
  22. package/esm2022/components/leaves/leaves.component.mjs +11 -55
  23. package/esm2022/components/string/default-string.component.mjs +7 -6
  24. package/esm2022/components/string/string.component.mjs +25 -14
  25. package/esm2022/components/string/template.component.mjs +6 -6
  26. package/esm2022/components/text/default-text.component.mjs +10 -8
  27. package/esm2022/components/text/token.mjs +4 -0
  28. package/esm2022/components/text/void-text.component.mjs +10 -8
  29. package/esm2022/module.mjs +53 -58
  30. package/esm2022/utils/throttle.mjs +18 -0
  31. package/esm2022/view/base.mjs +26 -9
  32. package/esm2022/view/container-item.mjs +1 -1
  33. package/esm2022/view/container.mjs +2 -82
  34. package/esm2022/view/context.mjs +1 -1
  35. package/esm2022/view/render/leaves-render.mjs +105 -0
  36. package/esm2022/view/render/list-render.mjs +250 -0
  37. package/esm2022/view/render/utils.mjs +104 -0
  38. package/fesm2022/slate-angular.mjs +905 -675
  39. package/fesm2022/slate-angular.mjs.map +1 -1
  40. package/module.d.ts +12 -14
  41. package/package.json +8 -3
  42. package/utils/throttle.d.ts +2 -0
  43. package/view/base.d.ts +11 -2
  44. package/view/container-item.d.ts +2 -2
  45. package/view/container.d.ts +3 -7
  46. package/view/context.d.ts +10 -4
  47. package/view/render/leaves-render.d.ts +20 -0
  48. package/view/render/list-render.d.ts +31 -0
  49. package/view/render/utils.d.ts +11 -0
  50. package/components/descendant/descendant.component.d.ts +0 -35
  51. package/components/leaf/leaf.component.d.ts +0 -16
  52. package/esm2022/components/descendant/descendant.component.mjs +0 -185
  53. package/esm2022/components/leaf/leaf.component.mjs +0 -37
@@ -1,83 +1,78 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { SlateEditableComponent } from './components/editable/editable.component';
4
- import { SlateDefaultTextComponent } from './components/text/default-text.component';
5
- import { SlateVoidTextComponent } from './components/text/void-text.component';
6
- import { SlateElementComponent } from './components/element/element.component';
7
- import { SlateDefaultElementComponent } from './components/element/default-element.component';
8
- import { SlateStringComponent } from './components/string/string.component';
9
- import { SlateStringTemplateComponent } from './components/string/template.component';
10
- import { SlateDescendantComponent } from './components/descendant/descendant.component';
11
- import { SlateChildrenComponent } from './components/children/children.component';
12
- import { SlateBlockCardComponent } from './components/block-card/block-card.component';
13
- import { SlateLeafComponent } from './components/leaf/leaf.component';
14
- import { SlateDefaultLeafComponent } from './components/leaf/default-leaf.component';
15
- import { SlateLeavesComponent } from './components/leaves/leaves.component';
3
+ import { SlateEditable } from './components/editable/editable.component';
4
+ import { SlateDefaultText } from './components/text/default-text.component';
5
+ import { SlateVoidText } from './components/text/void-text.component';
6
+ import { SlateElement } from './components/element/element.component';
7
+ import { SlateDefaultElement } from './components/element/default-element.component';
8
+ import { SlateString } from './components/string/string.component';
9
+ import { SlateStringTemplate } from './components/string/template.component';
10
+ import { SlateChildren } from './components/children/children.component';
11
+ import { SlateBlockCard } from './components/block-card/block-card.component';
12
+ import { SlateDefaultLeaf } from './components/leaf/default-leaf.component';
13
+ import { SlateLeaves } from './components/leaves/leaves.component';
16
14
  import { SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN } from './components/element/default-element.component.token';
17
- import { SlateDefaultStringComponent } from './components/string/default-string.component';
15
+ import { SlateDefaultString } from './components/string/default-string.component';
18
16
  import * as i0 from "@angular/core";
19
17
  export class SlateModule {
20
18
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: SlateModule, declarations: [SlateEditableComponent,
22
- SlateDefaultElementComponent,
23
- SlateElementComponent,
24
- SlateVoidTextComponent,
25
- SlateDefaultTextComponent,
26
- SlateStringComponent,
27
- SlateStringTemplateComponent,
28
- SlateDescendantComponent,
29
- SlateChildrenComponent,
30
- SlateBlockCardComponent,
31
- SlateLeafComponent,
32
- SlateLeavesComponent,
33
- SlateDefaultLeafComponent,
34
- SlateDefaultStringComponent], imports: [CommonModule], exports: [SlateEditableComponent,
35
- SlateChildrenComponent,
36
- SlateElementComponent,
37
- SlateLeavesComponent,
38
- SlateStringComponent,
39
- SlateDefaultStringComponent] }); }
19
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: SlateModule, imports: [CommonModule,
20
+ SlateEditable,
21
+ SlateDefaultElement,
22
+ SlateElement,
23
+ SlateVoidText,
24
+ SlateDefaultText,
25
+ SlateString,
26
+ SlateStringTemplate,
27
+ SlateChildren,
28
+ SlateBlockCard,
29
+ SlateLeaves,
30
+ SlateDefaultLeaf,
31
+ SlateDefaultString], exports: [SlateEditable,
32
+ SlateChildren,
33
+ SlateElement,
34
+ SlateLeaves,
35
+ SlateString,
36
+ SlateDefaultString] }); }
40
37
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateModule, providers: [
41
38
  {
42
39
  provide: SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN,
43
- useValue: SlateDefaultElementComponent
40
+ useValue: SlateDefaultElement
44
41
  }
45
42
  ], imports: [CommonModule] }); }
46
43
  }
47
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SlateModule, decorators: [{
48
45
  type: NgModule,
49
46
  args: [{
50
- declarations: [
51
- SlateEditableComponent,
52
- SlateDefaultElementComponent,
53
- SlateElementComponent,
54
- SlateVoidTextComponent,
55
- SlateDefaultTextComponent,
56
- SlateStringComponent,
57
- SlateStringTemplateComponent,
58
- SlateDescendantComponent,
59
- SlateChildrenComponent,
60
- SlateBlockCardComponent,
61
- SlateLeafComponent,
62
- SlateLeavesComponent,
63
- SlateDefaultLeafComponent,
64
- SlateDefaultStringComponent
47
+ imports: [
48
+ CommonModule,
49
+ SlateEditable,
50
+ SlateDefaultElement,
51
+ SlateElement,
52
+ SlateVoidText,
53
+ SlateDefaultText,
54
+ SlateString,
55
+ SlateStringTemplate,
56
+ SlateChildren,
57
+ SlateBlockCard,
58
+ SlateLeaves,
59
+ SlateDefaultLeaf,
60
+ SlateDefaultString
65
61
  ],
66
- imports: [CommonModule],
67
62
  exports: [
68
- SlateEditableComponent,
69
- SlateChildrenComponent,
70
- SlateElementComponent,
71
- SlateLeavesComponent,
72
- SlateStringComponent,
73
- SlateDefaultStringComponent
63
+ SlateEditable,
64
+ SlateChildren,
65
+ SlateElement,
66
+ SlateLeaves,
67
+ SlateString,
68
+ SlateDefaultString
74
69
  ],
75
70
  providers: [
76
71
  {
77
72
  provide: SLATE_DEFAULT_ELEMENT_COMPONENT_TOKEN,
78
- useValue: SlateDefaultElementComponent
73
+ useValue: SlateDefaultElement
79
74
  }
80
75
  ]
81
76
  }]
82
77
  }] });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGFja2FnZXMvc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFtQzNGLE1BQU0sT0FBTyxXQUFXOzhHQUFYLFdBQVc7K0dBQVgsV0FBVyxpQkEvQmhCLHNCQUFzQjtZQUN0Qiw0QkFBNEI7WUFDNUIscUJBQXFCO1lBQ3JCLHNCQUFzQjtZQUN0Qix5QkFBeUI7WUFDekIsb0JBQW9CO1lBQ3BCLDRCQUE0QjtZQUM1Qix3QkFBd0I7WUFDeEIsc0JBQXNCO1lBQ3RCLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLHlCQUF5QjtZQUN6QiwyQkFBMkIsYUFFckIsWUFBWSxhQUVsQixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLDJCQUEyQjsrR0FTdEIsV0FBVyxhQVBUO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLHFDQUFxQztnQkFDOUMsUUFBUSxFQUFFLDRCQUE0QjthQUN6QztTQUNKLFlBZFMsWUFBWTs7MkZBZ0JiLFdBQVc7a0JBakN2QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQiw0QkFBNEI7d0JBQzVCLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLDJCQUEyQjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUU7d0JBQ0wsc0JBQXNCO3dCQUN0QixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLDJCQUEyQjtxQkFDOUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQ0FBcUM7NEJBQzlDLFFBQVEsRUFBRSw0QkFBNEI7eUJBQ3pDO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9yd2FyZFJlZiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTbGF0ZUVkaXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkaXRhYmxlL2VkaXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZURlZmF1bHRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHQvZGVmYXVsdC10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZVZvaWRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RleHQvdm9pZC10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWxlbWVudC9lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZURlZmF1bHRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQvZGVmYXVsdC1lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZVN0cmluZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zdHJpbmcvc3RyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZVN0cmluZ1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N0cmluZy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVEZXNjZW5kYW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Rlc2NlbmRhbnQvZGVzY2VuZGFudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVDaGlsZHJlbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGlsZHJlbi9jaGlsZHJlbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2xhdGVCbG9ja0NhcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYmxvY2stY2FyZC9ibG9jay1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZUxlYWZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGVhZi9sZWFmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZURlZmF1bHRMZWFmQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xlYWYvZGVmYXVsdC1sZWFmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZUxlYXZlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sZWF2ZXMvbGVhdmVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTTEFURV9ERUZBVUxUX0VMRU1FTlRfQ09NUE9ORU5UX1RPS0VOIH0gZnJvbSAnLi9jb21wb25lbnRzL2VsZW1lbnQvZGVmYXVsdC1lbGVtZW50LmNvbXBvbmVudC50b2tlbic7XG5pbXBvcnQgeyBTbGF0ZURlZmF1bHRTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RyaW5nL2RlZmF1bHQtc3RyaW5nLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFNsYXRlRWRpdGFibGVDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRGVmYXVsdEVsZW1lbnRDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRWxlbWVudENvbXBvbmVudCxcbiAgICAgICAgU2xhdGVWb2lkVGV4dENvbXBvbmVudCxcbiAgICAgICAgU2xhdGVEZWZhdWx0VGV4dENvbXBvbmVudCxcbiAgICAgICAgU2xhdGVTdHJpbmdDb21wb25lbnQsXG4gICAgICAgIFNsYXRlU3RyaW5nVGVtcGxhdGVDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRGVzY2VuZGFudENvbXBvbmVudCxcbiAgICAgICAgU2xhdGVDaGlsZHJlbkNvbXBvbmVudCxcbiAgICAgICAgU2xhdGVCbG9ja0NhcmRDb21wb25lbnQsXG4gICAgICAgIFNsYXRlTGVhZkNvbXBvbmVudCxcbiAgICAgICAgU2xhdGVMZWF2ZXNDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRGVmYXVsdExlYWZDb21wb25lbnQsXG4gICAgICAgIFNsYXRlRGVmYXVsdFN0cmluZ0NvbXBvbmVudFxuICAgIF0sXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBTbGF0ZUVkaXRhYmxlQ29tcG9uZW50LFxuICAgICAgICBTbGF0ZUNoaWxkcmVuQ29tcG9uZW50LFxuICAgICAgICBTbGF0ZUVsZW1lbnRDb21wb25lbnQsXG4gICAgICAgIFNsYXRlTGVhdmVzQ29tcG9uZW50LFxuICAgICAgICBTbGF0ZVN0cmluZ0NvbXBvbmVudCxcbiAgICAgICAgU2xhdGVEZWZhdWx0U3RyaW5nQ29tcG9uZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU0xBVEVfREVGQVVMVF9FTEVNRU5UX0NPTVBPTkVOVF9UT0tFTixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBTbGF0ZURlZmF1bHRFbGVtZW50Q29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNsYXRlTW9kdWxlIHt9XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vcGFja2FnZXMvc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBaUNsRixNQUFNLE9BQU8sV0FBVzs4R0FBWCxXQUFXOytHQUFYLFdBQVcsWUE3QmhCLFlBQVk7WUFDWixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGNBQWM7WUFDZCxXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGtCQUFrQixhQUdsQixhQUFhO1lBQ2IsYUFBYTtZQUNiLFlBQVk7WUFDWixXQUFXO1lBQ1gsV0FBVztZQUNYLGtCQUFrQjsrR0FTYixXQUFXLGFBUFQ7WUFDUDtnQkFDSSxPQUFPLEVBQUUscUNBQXFDO2dCQUM5QyxRQUFRLEVBQUUsbUJBQW1CO2FBQ2hDO1NBQ0osWUEzQkcsWUFBWTs7MkZBNkJQLFdBQVc7a0JBL0J2QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsa0JBQWtCO3FCQUNyQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHFDQUFxQzs0QkFDOUMsUUFBUSxFQUFFLG1CQUFtQjt5QkFDaEM7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3J3YXJkUmVmLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNsYXRlRWRpdGFibGUgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdGFibGUvZWRpdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlRGVmYXVsdFRleHQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dC9kZWZhdWx0LXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlVm9pZFRleHQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dC92b2lkLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlRWxlbWVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlRGVmYXVsdEVsZW1lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWxlbWVudC9kZWZhdWx0LWVsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlU3RyaW5nIH0gZnJvbSAnLi9jb21wb25lbnRzL3N0cmluZy9zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlU3RyaW5nVGVtcGxhdGUgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RyaW5nL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZUNoaWxkcmVuIH0gZnJvbSAnLi9jb21wb25lbnRzL2NoaWxkcmVuL2NoaWxkcmVuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbGF0ZUJsb2NrQ2FyZCB9IGZyb20gJy4vY29tcG9uZW50cy9ibG9jay1jYXJkL2Jsb2NrLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlRGVmYXVsdExlYWYgfSBmcm9tICcuL2NvbXBvbmVudHMvbGVhZi9kZWZhdWx0LWxlYWYuY29tcG9uZW50JztcbmltcG9ydCB7IFNsYXRlTGVhdmVzIH0gZnJvbSAnLi9jb21wb25lbnRzL2xlYXZlcy9sZWF2ZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFNMQVRFX0RFRkFVTFRfRUxFTUVOVF9DT01QT05FTlRfVE9LRU4gfSBmcm9tICcuL2NvbXBvbmVudHMvZWxlbWVudC9kZWZhdWx0LWVsZW1lbnQuY29tcG9uZW50LnRva2VuJztcbmltcG9ydCB7IFNsYXRlRGVmYXVsdFN0cmluZyB9IGZyb20gJy4vY29tcG9uZW50cy9zdHJpbmcvZGVmYXVsdC1zdHJpbmcuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgU2xhdGVFZGl0YWJsZSxcbiAgICAgICAgU2xhdGVEZWZhdWx0RWxlbWVudCxcbiAgICAgICAgU2xhdGVFbGVtZW50LFxuICAgICAgICBTbGF0ZVZvaWRUZXh0LFxuICAgICAgICBTbGF0ZURlZmF1bHRUZXh0LFxuICAgICAgICBTbGF0ZVN0cmluZyxcbiAgICAgICAgU2xhdGVTdHJpbmdUZW1wbGF0ZSxcbiAgICAgICAgU2xhdGVDaGlsZHJlbixcbiAgICAgICAgU2xhdGVCbG9ja0NhcmQsXG4gICAgICAgIFNsYXRlTGVhdmVzLFxuICAgICAgICBTbGF0ZURlZmF1bHRMZWFmLFxuICAgICAgICBTbGF0ZURlZmF1bHRTdHJpbmdcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgU2xhdGVFZGl0YWJsZSxcbiAgICAgICAgU2xhdGVDaGlsZHJlbixcbiAgICAgICAgU2xhdGVFbGVtZW50LFxuICAgICAgICBTbGF0ZUxlYXZlcyxcbiAgICAgICAgU2xhdGVTdHJpbmcsXG4gICAgICAgIFNsYXRlRGVmYXVsdFN0cmluZ1xuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNMQVRFX0RFRkFVTFRfRUxFTUVOVF9DT01QT05FTlRfVE9LRU4sXG4gICAgICAgICAgICB1c2VWYWx1ZTogU2xhdGVEZWZhdWx0RWxlbWVudFxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTbGF0ZU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,18 @@
1
+ export const createThrottleRAF = () => {
2
+ let timerId = null;
3
+ const throttleRAF = (fn) => {
4
+ const scheduleFunc = () => {
5
+ timerId = requestAnimationFrame(() => {
6
+ timerId = null;
7
+ fn();
8
+ });
9
+ };
10
+ if (timerId !== null) {
11
+ cancelAnimationFrame(timerId);
12
+ timerId = null;
13
+ }
14
+ scheduleFunc();
15
+ };
16
+ return throttleRAF;
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvdGhyb3R0bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFO0lBQ2xDLElBQUksT0FBTyxHQUFrQixJQUFJLENBQUM7SUFDbEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxFQUFjLEVBQUUsRUFBRTtRQUNuQyxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxHQUFHLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDakMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDZixFQUFFLEVBQUUsQ0FBQztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1lBQ2xCLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDbEI7UUFDRCxZQUFZLEVBQUUsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFDRixPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY3JlYXRlVGhyb3R0bGVSQUYgPSAoKSA9PiB7XG4gICAgbGV0IHRpbWVySWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIGNvbnN0IHRocm90dGxlUkFGID0gKGZuOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjaGVkdWxlRnVuYyA9ICgpID0+IHtcbiAgICAgICAgICAgIHRpbWVySWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRpbWVySWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRpbWVySWQpO1xuICAgICAgICAgICAgdGltZXJJZCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgc2NoZWR1bGVGdW5jKCk7XG4gICAgfTtcbiAgICByZXR1cm4gdGhyb3R0bGVSQUY7XG59O1xuXG5leHBvcnQgdHlwZSBUaHJvdHRsZVJBRiA9IChmbjogKCkgPT4gdm9pZCkgPT4gdm9pZCJdfQ==
@@ -1,7 +1,9 @@
1
- import { Directive, HostBinding, Input } from '@angular/core';
1
+ import { Directive, HostBinding, Input, ViewContainerRef, inject } from '@angular/core';
2
2
  import { ELEMENT_TO_COMPONENT, ELEMENT_TO_NODE, NODE_TO_ELEMENT } from '../utils/weak-maps';
3
3
  import { Range } from 'slate';
4
4
  import { hasBeforeContextChange } from './before-context-change';
5
+ import { ListRender } from './render/list-render';
6
+ import { LeavesRender } from './render/leaves-render';
5
7
  import * as i0 from "@angular/core";
6
8
  /**
7
9
  * base class for custom element component or text component
@@ -59,7 +61,7 @@ export class BaseLeafComponent extends BaseComponent {
59
61
  if (!this.initialized) {
60
62
  return;
61
63
  }
62
- this.cdr.markForCheck();
64
+ this.cdr.detectChanges();
63
65
  }
64
66
  renderPlaceholder() {
65
67
  // issue-1: IME input was interrupted
@@ -111,7 +113,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
111
113
  export class BaseElementComponent extends BaseComponent {
112
114
  constructor() {
113
115
  super(...arguments);
116
+ this.viewContainerRef = inject(ViewContainerRef);
114
117
  this.initialized = false;
118
+ this.getOutletElement = () => {
119
+ return this.elementRef.nativeElement;
120
+ };
115
121
  }
116
122
  get element() {
117
123
  return this._context && this._context.element;
@@ -119,6 +125,9 @@ export class BaseElementComponent extends BaseComponent {
119
125
  get selection() {
120
126
  return this._context && this._context.selection;
121
127
  }
128
+ get path() {
129
+ return this._context && this._context.path;
130
+ }
122
131
  get decorations() {
123
132
  return this._context && this._context.decorations;
124
133
  }
@@ -135,11 +144,12 @@ export class BaseElementComponent extends BaseComponent {
135
144
  return this._context && this._context.readonly;
136
145
  }
137
146
  ngOnInit() {
138
- this.updateWeakMap();
139
147
  for (const key in this._context.attributes) {
140
148
  this.nativeElement.setAttribute(key, this._context.attributes[key]);
141
149
  }
142
150
  this.initialized = true;
151
+ this.listRender = new ListRender(this.viewContext, this.viewContainerRef, this.getOutletElement);
152
+ this.listRender.initialize(this.children, this.element, this.path, this.childrenContext);
143
153
  }
144
154
  updateWeakMap() {
145
155
  NODE_TO_ELEMENT.set(this.element, this.nativeElement);
@@ -156,11 +166,12 @@ export class BaseElementComponent extends BaseComponent {
156
166
  }
157
167
  onContextChange() {
158
168
  this.childrenContext = this.getChildrenContext();
169
+ this.updateWeakMap();
159
170
  if (!this.initialized) {
160
171
  return;
161
172
  }
162
- this.cdr.markForCheck();
163
- this.updateWeakMap();
173
+ this.listRender.update(this.children, this.element, this.path, this.childrenContext);
174
+ this.cdr.detectChanges();
164
175
  }
165
176
  getChildrenContext() {
166
177
  return {
@@ -184,13 +195,18 @@ export class BaseTextComponent extends BaseComponent {
184
195
  constructor() {
185
196
  super(...arguments);
186
197
  this.initialized = false;
198
+ this.viewContainerRef = inject(ViewContainerRef);
199
+ this.getOutletElement = () => {
200
+ return this.elementRef.nativeElement;
201
+ };
187
202
  }
188
203
  get text() {
189
204
  return this._context && this._context.text;
190
205
  }
191
206
  ngOnInit() {
192
- this.updateWeakMap();
193
207
  this.initialized = true;
208
+ this.leavesRender = new LeavesRender(this.viewContext, this.viewContainerRef, this.getOutletElement);
209
+ this.leavesRender.initialize(this.context);
194
210
  }
195
211
  updateWeakMap() {
196
212
  ELEMENT_TO_NODE.set(this.nativeElement, this.text);
@@ -202,11 +218,12 @@ export class BaseTextComponent extends BaseComponent {
202
218
  }
203
219
  }
204
220
  onContextChange() {
221
+ this.updateWeakMap();
205
222
  if (!this.initialized) {
206
223
  return;
207
224
  }
208
- this.cdr.markForCheck();
209
- this.updateWeakMap();
225
+ this.leavesRender.update(this.context);
226
+ this.cdr.detectChanges();
210
227
  }
211
228
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
212
229
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: BaseTextComponent, usesInheritance: true, ngImport: i0 }); }
@@ -214,4 +231,4 @@ export class BaseTextComponent extends BaseComponent {
214
231
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: BaseTextComponent, decorators: [{
215
232
  type: Directive
216
233
  }] });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQyxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RixPQUFPLEVBQXVCLEtBQUssRUFBUSxNQUFNLE9BQU8sQ0FBQztBQUV6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFVakU7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFNL0IsSUFDSSxPQUFPLENBQUMsS0FBUTtRQUNoQixJQUFJLHNCQUFzQixDQUFJLElBQUksQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQW1CLFVBQXNCLEVBQVMsR0FBc0I7UUFBckQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQzs4R0E3QjFELGFBQWE7a0dBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEbEMsU0FB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bnQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJy4uL3BsdWdpbnMvYW5ndWxhci1lZGl0b3InO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19DT01QT05FTlQsIEVMRU1FTlRfVE9fTk9ERSwgTk9ERV9UT19FTEVNRU5UIH0gZnJvbSAnLi4vdXRpbHMvd2Vhay1tYXBzJztcbmltcG9ydCB7IFNsYXRlVmlld0NvbnRleHQsIFNsYXRlRWxlbWVudENvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlTGVhZkNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgRGVzY2VuZGFudCwgRWxlbWVudCwgUmFuZ2UsIFRleHQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBTbGF0ZUNoaWxkcmVuQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBoYXNCZWZvcmVDb250ZXh0Q2hhbmdlIH0gZnJvbSAnLi9iZWZvcmUtY29udGV4dC1jaGFuZ2UnO1xuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIHRlbXBsYXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUVtYmVkZGVkVmlldzxULCBLIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3I+IHtcbiAgICBjb250ZXh0OiBUO1xuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0PEs+O1xufVxuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIGN1c3RvbSBlbGVtZW50IGNvbXBvbmVudCBvciB0ZXh0IGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50PFxuICAgIFQgPSBTbGF0ZVRleHRDb250ZXh0IHwgU2xhdGVMZWFmQ29udGV4dCB8IFNsYXRlRWxlbWVudENvbnRleHQsXG4gICAgSyBleHRlbmRzIEFuZ3VsYXJFZGl0b3IgPSBBbmd1bGFyRWRpdG9yXG4+IHtcbiAgICBwcm90ZWN0ZWQgX2NvbnRleHQ6IFQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250ZXh0KHZhbHVlOiBUKSB7XG4gICAgICAgIGlmIChoYXNCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+KHRoaXMpKSB7XG4gICAgICAgICAgICB0aGlzLmJlZm9yZUNvbnRleHRDaGFuZ2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNvbnRleHRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgY29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQ8Sz47XG5cbiAgICBnZXQgZWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dCAmJiB0aGlzLnZpZXdDb250ZXh0LmVkaXRvcjtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBhYnN0cmFjdCBvbkNvbnRleHRDaGFuZ2UoKTtcbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gbGVhZiBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUxlYWZDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFNsYXRlTGVhZkNvbnRleHQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcGxhY2Vob2xkZXJFbGVtZW50OiBIVE1MU3BhbkVsZW1lbnQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zbGF0ZS1sZWFmJykgaXNTbGF0ZUxlYWYgPSB0cnVlO1xuXG4gICAgZ2V0IHRleHQoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LnRleHQ7XG4gICAgfVxuXG4gICAgZ2V0IGxlYWYoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LmxlYWY7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVuZGVyUGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIC8vIGlzc3VlLTE6IElNRSBpbnB1dCB3YXMgaW50ZXJydXB0ZWRcbiAgICAgICAgLy8gaXNzdWUtMjogSU1FIGlucHV0IGZvY3VzIGp1bXBpbmdcbiAgICAgICAgLy8gSXNzdWUgb2NjdXJzIHdoZW4gdGhlIHNwYW4gbm9kZSBvZiB0aGUgcGxhY2Vob2xkZXIgaXMgYmVmb3JlIHRoZSBzbGF0ZVN0cmluZyBzcGFuIG5vZGVcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dC5sZWFmWydwbGFjZWhvbGRlciddKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucGxhY2Vob2xkZXJFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVQbGFjZWhvbGRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVQbGFjZWhvbGRlcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95UGxhY2Vob2xkZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZVBsYWNlaG9sZGVyKCkge1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5pbm5lclRleHQgPSB0aGlzLmNvbnRleHQubGVhZlsncGxhY2Vob2xkZXInXTtcbiAgICAgICAgcGxhY2Vob2xkZXJFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9ICdmYWxzZSc7XG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2xhdGUtcGxhY2Vob2xkZXInLCAndHJ1ZScpO1xuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudCA9IHBsYWNlaG9sZGVyRWxlbWVudDtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2xlYWYtd2l0aC1wbGFjZWhvbGRlcicpO1xuICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQocGxhY2Vob2xkZXJFbGVtZW50KTtcbiAgICB9XG5cbiAgICB1cGRhdGVQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LmlubmVyVGV4dCAhPT0gdGhpcy5jb250ZXh0LmxlYWZbJ3BsYWNlaG9sZGVyJ10pIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LmlubmVyVGV4dCA9IHRoaXMuY29udGV4dC5sZWFmWydwbGFjZWhvbGRlciddO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveVBsYWNlaG9sZGVyKCkge1xuICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2xlYWYtd2l0aC1wbGFjZWhvbGRlcicpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIGN1c3RvbSBlbGVtZW50IGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlRWxlbWVudENvbXBvbmVudDxUIGV4dGVuZHMgRWxlbWVudCA9IEVsZW1lbnQsIEsgZXh0ZW5kcyBBbmd1bGFyRWRpdG9yID0gQW5ndWxhckVkaXRvcj5cbiAgICBleHRlbmRzIEJhc2VDb21wb25lbnQ8U2xhdGVFbGVtZW50Q29udGV4dDxUPiwgSz5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIGNoaWxkcmVuQ29udGV4dDogU2xhdGVDaGlsZHJlbkNvbnRleHQ7XG5cbiAgICBnZXQgZWxlbWVudCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC5lbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBzZWxlY3Rpb24oKTogUmFuZ2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LnNlbGVjdGlvbjtcbiAgICB9XG5cbiAgICBnZXQgZGVjb3JhdGlvbnMoKTogUmFuZ2VbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQuZGVjb3JhdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkcmVuKCk6IERlc2NlbmRhbnRbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQuZWxlbWVudC5jaGlsZHJlbjtcbiAgICB9XG5cbiAgICBnZXQgaXNDb2xsYXBzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZCh0aGlzLnNlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgZ2V0IGlzQ29sbGFwc2VkQW5kTm9uUmVhZG9ubHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiAmJiBSYW5nZS5pc0NvbGxhcHNlZCh0aGlzLnNlbGVjdGlvbikgJiYgIXRoaXMucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgZ2V0IHJlYWRvbmx5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LnJlYWRvbmx5O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVdlYWtNYXAoKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fY29udGV4dC5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgdGhpcy5fY29udGV4dC5hdHRyaWJ1dGVzW2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHVwZGF0ZVdlYWtNYXAoKSB7XG4gICAgICAgIE5PREVfVE9fRUxFTUVOVC5zZXQodGhpcy5lbGVtZW50LCB0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBFTEVNRU5UX1RPX05PREUuc2V0KHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgRUxFTUVOVF9UT19DT01QT05FTlQuc2V0KHRoaXMuZWxlbWVudCwgdGhpcyk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChOT0RFX1RPX0VMRU1FTlQuZ2V0KHRoaXMuZWxlbWVudCkgPT09IHRoaXMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgTk9ERV9UT19FTEVNRU5ULmRlbGV0ZSh0aGlzLmVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChFTEVNRU5UX1RPX0NPTVBPTkVOVC5nZXQodGhpcy5lbGVtZW50KSA9PT0gdGhpcykge1xuICAgICAgICAgICAgRUxFTUVOVF9UT19DT01QT05FTlQuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW5Db250ZXh0ID0gdGhpcy5nZXRDaGlsZHJlbkNvbnRleHQoKTtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMudXBkYXRlV2Vha01hcCgpO1xuICAgIH1cblxuICAgIGdldENoaWxkcmVuQ29udGV4dCgpOiBTbGF0ZUNoaWxkcmVuQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuX2NvbnRleHQuZWxlbWVudCxcbiAgICAgICAgICAgIHNlbGVjdGlvbjogdGhpcy5fY29udGV4dC5zZWxlY3Rpb24sXG4gICAgICAgICAgICBkZWNvcmF0aW9uczogdGhpcy5fY29udGV4dC5kZWNvcmF0aW9ucyxcbiAgICAgICAgICAgIGRlY29yYXRlOiB0aGlzLl9jb250ZXh0LmRlY29yYXRlLFxuICAgICAgICAgICAgcmVhZG9ubHk6IHRoaXMuX2NvbnRleHQucmVhZG9ubHlcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8qKlxuICogYmFzZSBjbGFzcyBmb3IgY3VzdG9tIHRleHQgY29tcG9uZW50XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VUZXh0Q29tcG9uZW50PFQgZXh0ZW5kcyBUZXh0ID0gVGV4dD4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFNsYXRlVGV4dENvbnRleHQ8VD4+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBnZXQgdGV4dCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC50ZXh0O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVdlYWtNYXAoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgdXBkYXRlV2Vha01hcCgpIHtcbiAgICAgICAgRUxFTUVOVF9UT19OT0RFLnNldCh0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMudGV4dCk7XG4gICAgICAgIE5PREVfVE9fRUxFTUVOVC5zZXQodGhpcy50ZXh0LCB0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAoTk9ERV9UT19FTEVNRU5ULmdldCh0aGlzLnRleHQpID09PSB0aGlzLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIE5PREVfVE9fRUxFTUVOVC5kZWxldGUodGhpcy50ZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy51cGRhdGVXZWFrTWFwKCk7XG4gICAgfVxufVxuIl19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBcUIsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUYsT0FBTyxFQUE2QixLQUFLLEVBQVEsTUFBTSxPQUFPLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFVdEQ7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFNL0IsSUFDSSxPQUFPLENBQUMsS0FBUTtRQUNoQixJQUFJLHNCQUFzQixDQUFJLElBQUksQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQW1CLFVBQXNCLEVBQVMsR0FBc0I7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LGlCQUFpQjtrQkFEN0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJy4uL3BsdWdpbnMvYW5ndWxhci1lZGl0b3InO1xuaW1wb3J0IHsgRUxFTUVOVF9UT19DT01QT05FTlQsIEVMRU1FTlRfVE9fTk9ERSwgTk9ERV9UT19FTEVNRU5UIH0gZnJvbSAnLi4vdXRpbHMvd2Vhay1tYXBzJztcbmltcG9ydCB7IFNsYXRlVmlld0NvbnRleHQsIFNsYXRlRWxlbWVudENvbnRleHQsIFNsYXRlVGV4dENvbnRleHQsIFNsYXRlTGVhZkNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgRGVzY2VuZGFudCwgRWxlbWVudCwgUGF0aCwgUmFuZ2UsIFRleHQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBTbGF0ZUNoaWxkcmVuQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBoYXNCZWZvcmVDb250ZXh0Q2hhbmdlIH0gZnJvbSAnLi9iZWZvcmUtY29udGV4dC1jaGFuZ2UnO1xuaW1wb3J0IHsgTGlzdFJlbmRlciB9IGZyb20gJy4vcmVuZGVyL2xpc3QtcmVuZGVyJztcbmltcG9ydCB7IExlYXZlc1JlbmRlciB9IGZyb20gJy4vcmVuZGVyL2xlYXZlcy1yZW5kZXInO1xuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIHRlbXBsYXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUVtYmVkZGVkVmlldzxULCBLIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3I+IHtcbiAgICBjb250ZXh0OiBUO1xuICAgIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0PEs+O1xufVxuXG4vKipcbiAqIGJhc2UgY2xhc3MgZm9yIGN1c3RvbSBlbGVtZW50IGNvbXBvbmVudCBvciB0ZXh0IGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50PFxuICAgIFQgPSBTbGF0ZVRleHRDb250ZXh0IHwgU2xhdGVMZWFmQ29udGV4dCB8IFNsYXRlRWxlbWVudENvbnRleHQsXG4gICAgSyBleHRlbmRzIEFuZ3VsYXJFZGl0b3IgPSBBbmd1bGFyRWRpdG9yXG4+IHtcbiAgICBwcm90ZWN0ZWQgX2NvbnRleHQ6IFQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBjb250ZXh0KHZhbHVlOiBUKSB7XG4gICAgICAgIGlmIChoYXNCZWZvcmVDb250ZXh0Q2hhbmdlPFQ+KHRoaXMpKSB7XG4gICAgICAgICAgICB0aGlzLmJlZm9yZUNvbnRleHRDaGFuZ2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNvbnRleHRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgY29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQ8Sz47XG5cbiAgICBnZXQgZWRpdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dCAmJiB0aGlzLnZpZXdDb250ZXh0LmVkaXRvcjtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICBhYnN0cmFjdCBvbkNvbnRleHRDaGFuZ2UoKTtcbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gbGVhZiBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUxlYWZDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFNsYXRlTGVhZkNvbnRleHQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcGxhY2Vob2xkZXJFbGVtZW50OiBIVE1MU3BhbkVsZW1lbnQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zbGF0ZS1sZWFmJykgaXNTbGF0ZUxlYWYgPSB0cnVlO1xuXG4gICAgZ2V0IHRleHQoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LnRleHQ7XG4gICAgfVxuXG4gICAgZ2V0IGxlYWYoKTogVGV4dCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LmxlYWY7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHJlbmRlclBsYWNlaG9sZGVyKCkge1xuICAgICAgICAvLyBpc3N1ZS0xOiBJTUUgaW5wdXQgd2FzIGludGVycnVwdGVkXG4gICAgICAgIC8vIGlzc3VlLTI6IElNRSBpbnB1dCBmb2N1cyBqdW1waW5nXG4gICAgICAgIC8vIElzc3VlIG9jY3VycyB3aGVuIHRoZSBzcGFuIG5vZGUgb2YgdGhlIHBsYWNlaG9sZGVyIGlzIGJlZm9yZSB0aGUgc2xhdGVTdHJpbmcgc3BhbiBub2RlXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQubGVhZlsncGxhY2Vob2xkZXInXSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveVBsYWNlaG9sZGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICBwbGFjZWhvbGRlckVsZW1lbnQuaW5uZXJUZXh0ID0gdGhpcy5jb250ZXh0LmxlYWZbJ3BsYWNlaG9sZGVyJ107XG4gICAgICAgIHBsYWNlaG9sZGVyRWxlbWVudC5jb250ZW50RWRpdGFibGUgPSAnZmFsc2UnO1xuICAgICAgICBwbGFjZWhvbGRlckVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXNsYXRlLXBsYWNlaG9sZGVyJywgJ3RydWUnKTtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlckVsZW1lbnQgPSBwbGFjZWhvbGRlckVsZW1lbnQ7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdsZWFmLXdpdGgtcGxhY2Vob2xkZXInKTtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHBsYWNlaG9sZGVyRWxlbWVudCk7XG4gICAgfVxuXG4gICAgdXBkYXRlUGxhY2Vob2xkZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyRWxlbWVudC5pbm5lclRleHQgIT09IHRoaXMuY29udGV4dC5sZWFmWydwbGFjZWhvbGRlciddKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudC5pbm5lclRleHQgPSB0aGlzLmNvbnRleHQubGVhZlsncGxhY2Vob2xkZXInXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3lQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXJFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyRWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMucGxhY2Vob2xkZXJFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdsZWFmLXdpdGgtcGxhY2Vob2xkZXInKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gZWxlbWVudCBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUVsZW1lbnRDb21wb25lbnQ8VCBleHRlbmRzIEVsZW1lbnQgPSBFbGVtZW50LCBLIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3I+XG4gICAgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFNsYXRlRWxlbWVudENvbnRleHQ8VD4sIEs+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgICBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgY2hpbGRyZW5Db250ZXh0OiBTbGF0ZUNoaWxkcmVuQ29udGV4dDtcblxuICAgIGdldCBlbGVtZW50KCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LmVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGlvbigpOiBSYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0ICYmIHRoaXMuX2NvbnRleHQuc2VsZWN0aW9uO1xuICAgIH1cblxuICAgIGdldCBwYXRoKCk6IFBhdGgge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LnBhdGg7XG4gICAgfVxuXG4gICAgZ2V0IGRlY29yYXRpb25zKCk6IFJhbmdlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LmRlY29yYXRpb25zO1xuICAgIH1cblxuICAgIGdldCBjaGlsZHJlbigpOiBEZXNjZW5kYW50W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGV4dCAmJiB0aGlzLl9jb250ZXh0LmVsZW1lbnQuY2hpbGRyZW47XG4gICAgfVxuXG4gICAgZ2V0IGlzQ29sbGFwc2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQodGhpcy5zZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIGdldCBpc0NvbGxhcHNlZEFuZE5vblJlYWRvbmx5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24gJiYgUmFuZ2UuaXNDb2xsYXBzZWQodGhpcy5zZWxlY3Rpb24pICYmICF0aGlzLnJlYWRvbmx5O1xuICAgIH1cblxuICAgIGdldCByZWFkb25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC5yZWFkb25seTtcbiAgICB9XG5cbiAgICBnZXRPdXRsZXRFbGVtZW50ID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfTtcblxuICAgIGxpc3RSZW5kZXI6IExpc3RSZW5kZXI7XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fY29udGV4dC5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgdGhpcy5fY29udGV4dC5hdHRyaWJ1dGVzW2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxpc3RSZW5kZXIgPSBuZXcgTGlzdFJlbmRlcih0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMuZ2V0T3V0bGV0RWxlbWVudCk7XG4gICAgICAgIHRoaXMubGlzdFJlbmRlci5pbml0aWFsaXplKHRoaXMuY2hpbGRyZW4sIHRoaXMuZWxlbWVudCwgdGhpcy5wYXRoLCB0aGlzLmNoaWxkcmVuQ29udGV4dCk7XG4gICAgfVxuXG4gICAgdXBkYXRlV2Vha01hcCgpIHtcbiAgICAgICAgTk9ERV9UT19FTEVNRU5ULnNldCh0aGlzLmVsZW1lbnQsIHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIEVMRU1FTlRfVE9fTk9ERS5zZXQodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmVsZW1lbnQpO1xuICAgICAgICBFTEVNRU5UX1RPX0NPTVBPTkVOVC5zZXQodGhpcy5lbGVtZW50LCB0aGlzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKE5PREVfVE9fRUxFTUVOVC5nZXQodGhpcy5lbGVtZW50KSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBOT0RFX1RPX0VMRU1FTlQuZGVsZXRlKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEVMRU1FTlRfVE9fQ09NUE9ORU5ULmdldCh0aGlzLmVsZW1lbnQpID09PSB0aGlzKSB7XG4gICAgICAgICAgICBFTEVNRU5UX1RPX0NPTVBPTkVOVC5kZWxldGUodGhpcy5lbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29udGV4dENoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbkNvbnRleHQgPSB0aGlzLmdldENoaWxkcmVuQ29udGV4dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVdlYWtNYXAoKTtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saXN0UmVuZGVyLnVwZGF0ZSh0aGlzLmNoaWxkcmVuLCB0aGlzLmVsZW1lbnQsIHRoaXMucGF0aCwgdGhpcy5jaGlsZHJlbkNvbnRleHQpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZ2V0Q2hpbGRyZW5Db250ZXh0KCk6IFNsYXRlQ2hpbGRyZW5Db250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5fY29udGV4dC5lbGVtZW50LFxuICAgICAgICAgICAgc2VsZWN0aW9uOiB0aGlzLl9jb250ZXh0LnNlbGVjdGlvbixcbiAgICAgICAgICAgIGRlY29yYXRpb25zOiB0aGlzLl9jb250ZXh0LmRlY29yYXRpb25zLFxuICAgICAgICAgICAgZGVjb3JhdGU6IHRoaXMuX2NvbnRleHQuZGVjb3JhdGUsXG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5fY29udGV4dC5yZWFkb25seVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuLyoqXG4gKiBiYXNlIGNsYXNzIGZvciBjdXN0b20gdGV4dCBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZVRleHRDb21wb25lbnQ8VCBleHRlbmRzIFRleHQgPSBUZXh0PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8U2xhdGVUZXh0Q29udGV4dDxUPj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgICBnZXQgdGV4dCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQgJiYgdGhpcy5fY29udGV4dC50ZXh0O1xuICAgIH1cblxuICAgIGxlYXZlc1JlbmRlcjogTGVhdmVzUmVuZGVyO1xuXG4gICAgZ2V0T3V0bGV0RWxlbWVudCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH07XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGVhdmVzUmVuZGVyID0gbmV3IExlYXZlc1JlbmRlcih0aGlzLnZpZXdDb250ZXh0LCB0aGlzLnZpZXdDb250YWluZXJSZWYsIHRoaXMuZ2V0T3V0bGV0RWxlbWVudCk7XG4gICAgICAgIHRoaXMubGVhdmVzUmVuZGVyLmluaXRpYWxpemUodGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICB1cGRhdGVXZWFrTWFwKCkge1xuICAgICAgICBFTEVNRU5UX1RPX05PREUuc2V0KHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy50ZXh0KTtcbiAgICAgICAgTk9ERV9UT19FTEVNRU5ULnNldCh0aGlzLnRleHQsIHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmIChOT0RFX1RPX0VMRU1FTlQuZ2V0KHRoaXMudGV4dCkgPT09IHRoaXMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgTk9ERV9UT19FTEVNRU5ULmRlbGV0ZSh0aGlzLnRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVdlYWtNYXAoKTtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sZWF2ZXNSZW5kZXIudXBkYXRlKHRoaXMuY29udGV4dCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG4iXX0=
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
105
105
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { viewContext: [{
106
106
  type: Input
107
107
  }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdmlldy9jb250YWluZXItaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBbUIsS0FBSyxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUsvRyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBSXhFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQWdCLGlCQUFpQjtJQWFuQyxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ3BGO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNyRDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQXNCLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBdkJ4RCxnQkFBVyxHQUFHLEtBQUssQ0FBQztJQXVCdUMsQ0FBQztJQUU1RCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDL0I7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFP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YUFDMUM7WUFDRCxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBc0IsQ0FBQztnQkFDL0YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDckQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUN4QyxhQUFhLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7YUFDcEM7U0FDSjtJQUNMLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNoRDtJQUNMLENBQUM7OEdBcEhpQixpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEdEMsU0FBUzt1R0FZRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBTbGF0ZUJsb2NrQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYmxvY2stY2FyZC9ibG9jay1jYXJkLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vdHlwZXMvdmlldyc7XG5pbXBvcnQgeyBpc0NvbXBvbmVudFR5cGUsIGlzRE9NRWxlbWVudCwgaXNUZW1wbGF0ZVJlZiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhc2VFbWJlZGRlZFZpZXcgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgU2xhdGVFbGVtZW50Q29udGV4dCwgU2xhdGVMZWFmQ29udGV4dCwgU2xhdGVTdHJpbmdDb250ZXh0LCBTbGF0ZVRleHRDb250ZXh0LCBTbGF0ZVZpZXdDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcblxuLyoqXG4gKiBEeW5hbWljYWxseSBjcmVhdGUvdXBkYXRlIGNvbXBvbmVudHMgb3IgdGVtcGxhdGVzXG4gKiBQcm92aWRlIHJvb3ROb2RlcyBmb3IgdGhlIHZpZXcgY29udGFpbmVyXG4gKiBJZiB0aGUgZHluYW1pY2FsbHkgY3JlYXRlZCBjb21wb25lbnQgdXNlcyBvbnB1c2ggbW9kZSwgdGhlbiBpdCBtdXN0IGNhbGwgbWFya0ZvckNoZWNrIHdoZW4gc2V0dGluZyB0aGUgY29udGV4dFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3Q29udGFpbmVySXRlbTxcbiAgICBUID0gU2xhdGVFbGVtZW50Q29udGV4dCB8IFNsYXRlVGV4dENvbnRleHQgfCBTbGF0ZUxlYWZDb250ZXh0IHwgU2xhdGVTdHJpbmdDb250ZXh0LFxuICAgIEsgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+ID0gQmFzZUNvbXBvbmVudDxUPlxuPiB7XG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBlbWJlZGRlZFZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxCYXNlRW1iZWRkZWRWaWV3PFQ+PjtcbiAgICBlbWJlZGRlZFZpZXdDb250ZXh0OiBCYXNlRW1iZWRkZWRWaWV3PFQ+O1xuICAgIGJsb2NrQ2FyZENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkQ29tcG9uZW50PjtcbiAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxLPjtcbiAgICB2aWV3VHlwZTogVmlld1R5cGU7XG5cbiAgICBASW5wdXQoKSB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dDtcblxuICAgIGdldCByb290Tm9kZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvb3ROb2RlcygpO1xuICAgIH1cblxuICAgIGdldFJvb3ROb2RlcygpOiBIVE1MRWxlbWVudFtdIHtcbiAgICAgICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbWJlZGRlZFZpZXdSZWYucm9vdE5vZGVzLmZpbHRlcihyb290Tm9kZSA9PiBpc0RPTUVsZW1lbnQocm9vdE5vZGUpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiBbdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubmF0aXZlRWxlbWVudF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gICAgZGVzdHJveVZpZXcoKSB7XG4gICAgICAgIGlmICh0aGlzLmVtYmVkZGVkVmlld1JlZikge1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZ2V0Q29udGV4dCgpOiBUO1xuXG4gICAgYWJzdHJhY3QgZ2V0Vmlld1R5cGUoKTogVmlld1R5cGU7XG5cbiAgICBhYnN0cmFjdCBtZW1vaXplZENvbnRleHQocHJldjogVCwgbmV4dDogVCk6IGJvb2xlYW47XG5cbiAgICBjcmVhdGVWaWV3KCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52aWV3VHlwZSA9IHRoaXMuZ2V0Vmlld1R5cGUoKTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuICAgICAgICBpZiAoaXNUZW1wbGF0ZVJlZih0aGlzLnZpZXdUeXBlKSkge1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdDb250ZXh0ID0ge1xuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgdmlld0NvbnRleHQ6IHRoaXMudmlld0NvbnRleHRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRlZFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3PEJhc2VFbWJlZGRlZFZpZXc8VD4+KFxuICAgICAgICAgICAgICAgIHRoaXMudmlld1R5cGUgYXMgVGVtcGxhdGVSZWY8QmFzZUVtYmVkZGVkVmlldzxULCBBbmd1bGFyRWRpdG9yPj4sXG4gICAgICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdDb250ZXh0XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYgPSBlbWJlZGRlZFZpZXdSZWY7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQ29tcG9uZW50VHlwZSh0aGlzLnZpZXdUeXBlKSkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCh0aGlzLnZpZXdUeXBlKSBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS52aWV3Q29udGV4dCA9IHRoaXMudmlld0NvbnRleHQ7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IGNvbXBvbmVudFJlZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVZpZXcoKSB7XG4gICAgICAgIGNvbnN0IHZpZXdUeXBlID0gdGhpcy5nZXRWaWV3VHlwZSgpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG4gICAgICAgIGlmICh0aGlzLnZpZXdUeXBlID09PSB2aWV3VHlwZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWVtb2l6ZWRDb250ZXh0KHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRleHQsIGNvbnRleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5lbWJlZGRlZFZpZXdSZWYpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tZW1vaXplZENvbnRleHQodGhpcy5lbWJlZGRlZFZpZXdDb250ZXh0LmNvbnRleHQsIGNvbnRleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdDb250ZXh0LmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52aWV3VHlwZSA9IHZpZXdUeXBlO1xuICAgICAgICAgICAgY29uc3QgZmlyc3RSb290Tm9kZSA9IHRoaXMucm9vdE5vZGVzWzBdO1xuICAgICAgICAgICAgaWYgKGlzVGVtcGxhdGVSZWYodGhpcy52aWV3VHlwZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtYmVkZGVkVmlld0NvbnRleHQgPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgIHZpZXdDb250ZXh0OiB0aGlzLnZpZXdDb250ZXh0XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbWJlZGRlZFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3PEJhc2VFbWJlZGRlZFZpZXc8VD4+KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdUeXBlIGFzIFRlbXBsYXRlUmVmPEJhc2VFbWJlZGRlZFZpZXc8VCwgQW5ndWxhckVkaXRvcj4+LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtYmVkZGVkVmlld0NvbnRleHRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUucmVwbGFjZVdpdGgoLi4uZW1iZWRkZWRWaWV3UmVmLnJvb3ROb2Rlcy5maWx0ZXIocm9vdE5vZGUgPT4gaXNET01FbGVtZW50KHJvb3ROb2RlKSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtYmVkZGVkVmlld1JlZiA9IGVtYmVkZGVkVmlld1JlZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0NvbXBvbmVudFR5cGUodGhpcy52aWV3VHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHRoaXMudmlld1R5cGUpIGFzIENvbXBvbmVudFJlZjxhbnk+O1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS52aWV3Q29udGV4dCA9IHRoaXMudmlld0NvbnRleHQ7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUucmVwbGFjZVdpdGgoY29tcG9uZW50UmVmLmluc3RhbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IGNvbXBvbmVudFJlZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGVuZEJsb2NrQ2FyZEVsZW1lbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ2FyZENvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5ibG9ja0NhcmRDb21wb25lbnRSZWYuaW5zdGFuY2UuYXBwZW5kKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9zcmMvdmlldy9jb250YWluZXItaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBbUIsS0FBSyxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUsvRyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBSXhFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQWdCLGlCQUFpQjtJQWFuQyxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ3BGO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNyRDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQXNCLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBdkJ4RCxnQkFBVyxHQUFHLEtBQUssQ0FBQztJQXVCdUMsQ0FBQztJQUU1RCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDL0I7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFP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YUFDMUM7WUFDRCxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBc0IsQ0FBQztnQkFDL0YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDckQsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUN4QyxhQUFhLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7YUFDcEM7U0FDSjtJQUNMLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNoRDtJQUNMLENBQUM7OEdBcEhpQixpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEdEMsU0FBUzt1R0FZRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBTbGF0ZUJsb2NrQ2FyZCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYmxvY2stY2FyZC9ibG9jay1jYXJkLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vdHlwZXMvdmlldyc7XG5pbXBvcnQgeyBpc0NvbXBvbmVudFR5cGUsIGlzRE9NRWxlbWVudCwgaXNUZW1wbGF0ZVJlZiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJhc2VFbWJlZGRlZFZpZXcgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgU2xhdGVFbGVtZW50Q29udGV4dCwgU2xhdGVMZWFmQ29udGV4dCwgU2xhdGVTdHJpbmdDb250ZXh0LCBTbGF0ZVRleHRDb250ZXh0LCBTbGF0ZVZpZXdDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcblxuLyoqXG4gKiBEeW5hbWljYWxseSBjcmVhdGUvdXBkYXRlIGNvbXBvbmVudHMgb3IgdGVtcGxhdGVzXG4gKiBQcm92aWRlIHJvb3ROb2RlcyBmb3IgdGhlIHZpZXcgY29udGFpbmVyXG4gKiBJZiB0aGUgZHluYW1pY2FsbHkgY3JlYXRlZCBjb21wb25lbnQgdXNlcyBvbnB1c2ggbW9kZSwgdGhlbiBpdCBtdXN0IGNhbGwgbWFya0ZvckNoZWNrIHdoZW4gc2V0dGluZyB0aGUgY29udGV4dFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3Q29udGFpbmVySXRlbTxcbiAgICBUID0gU2xhdGVFbGVtZW50Q29udGV4dCB8IFNsYXRlVGV4dENvbnRleHQgfCBTbGF0ZUxlYWZDb250ZXh0IHwgU2xhdGVTdHJpbmdDb250ZXh0LFxuICAgIEsgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+ID0gQmFzZUNvbXBvbmVudDxUPlxuPiB7XG4gICAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBlbWJlZGRlZFZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjxCYXNlRW1iZWRkZWRWaWV3PFQ+PjtcbiAgICBlbWJlZGRlZFZpZXdDb250ZXh0OiBCYXNlRW1iZWRkZWRWaWV3PFQ+O1xuICAgIGJsb2NrQ2FyZENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFNsYXRlQmxvY2tDYXJkPjtcbiAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxLPjtcbiAgICB2aWV3VHlwZTogVmlld1R5cGU7XG5cbiAgICBASW5wdXQoKSB2aWV3Q29udGV4dDogU2xhdGVWaWV3Q29udGV4dDtcblxuICAgIGdldCByb290Tm9kZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvb3ROb2RlcygpO1xuICAgIH1cblxuICAgIGdldFJvb3ROb2RlcygpOiBIVE1MRWxlbWVudFtdIHtcbiAgICAgICAgaWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbWJlZGRlZFZpZXdSZWYucm9vdE5vZGVzLmZpbHRlcihyb290Tm9kZSA9PiBpc0RPTUVsZW1lbnQocm9vdE5vZGUpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiBbdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubmF0aXZlRWxlbWVudF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gICAgZGVzdHJveVZpZXcoKSB7XG4gICAgICAgIGlmICh0aGlzLmVtYmVkZGVkVmlld1JlZikge1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZ2V0Q29udGV4dCgpOiBUO1xuXG4gICAgYWJzdHJhY3QgZ2V0Vmlld1R5cGUoKTogVmlld1R5cGU7XG5cbiAgICBhYnN0cmFjdCBtZW1vaXplZENvbnRleHQocHJldjogVCwgbmV4dDogVCk6IGJvb2xlYW47XG5cbiAgICBjcmVhdGVWaWV3KCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy52aWV3VHlwZSA9IHRoaXMuZ2V0Vmlld1R5cGUoKTtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuICAgICAgICBpZiAoaXNUZW1wbGF0ZVJlZih0aGlzLnZpZXdUeXBlKSkge1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdDb250ZXh0ID0ge1xuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgdmlld0NvbnRleHQ6IHRoaXMudmlld0NvbnRleHRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRlZFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3PEJhc2VFbWJlZGRlZFZpZXc8VD4+KFxuICAgICAgICAgICAgICAgIHRoaXMudmlld1R5cGUgYXMgVGVtcGxhdGVSZWY8QmFzZUVtYmVkZGVkVmlldzxULCBBbmd1bGFyRWRpdG9yPj4sXG4gICAgICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdDb250ZXh0XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdSZWYgPSBlbWJlZGRlZFZpZXdSZWY7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQ29tcG9uZW50VHlwZSh0aGlzLnZpZXdUeXBlKSkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCh0aGlzLnZpZXdUeXBlKSBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS52aWV3Q29udGV4dCA9IHRoaXMudmlld0NvbnRleHQ7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IGNvbXBvbmVudFJlZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZVZpZXcoKSB7XG4gICAgICAgIGNvbnN0IHZpZXdUeXBlID0gdGhpcy5nZXRWaWV3VHlwZSgpO1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG4gICAgICAgIGlmICh0aGlzLnZpZXdUeXBlID09PSB2aWV3VHlwZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWVtb2l6ZWRDb250ZXh0KHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRleHQsIGNvbnRleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5lbWJlZGRlZFZpZXdSZWYpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tZW1vaXplZENvbnRleHQodGhpcy5lbWJlZGRlZFZpZXdDb250ZXh0LmNvbnRleHQsIGNvbnRleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXdDb250ZXh0LmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52aWV3VHlwZSA9IHZpZXdUeXBlO1xuICAgICAgICAgICAgY29uc3QgZmlyc3RSb290Tm9kZSA9IHRoaXMucm9vdE5vZGVzWzBdO1xuICAgICAgICAgICAgaWYgKGlzVGVtcGxhdGVSZWYodGhpcy52aWV3VHlwZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVtYmVkZGVkVmlld0NvbnRleHQgPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgICAgIHZpZXdDb250ZXh0OiB0aGlzLnZpZXdDb250ZXh0XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbWJlZGRlZFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3PEJhc2VFbWJlZGRlZFZpZXc8VD4+KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZXdUeXBlIGFzIFRlbXBsYXRlUmVmPEJhc2VFbWJlZGRlZFZpZXc8VCwgQW5ndWxhckVkaXRvcj4+LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtYmVkZGVkVmlld0NvbnRleHRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUucmVwbGFjZVdpdGgoLi4uZW1iZWRkZWRWaWV3UmVmLnJvb3ROb2Rlcy5maWx0ZXIocm9vdE5vZGUgPT4gaXNET01FbGVtZW50KHJvb3ROb2RlKSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVtYmVkZGVkVmlld1JlZiA9IGVtYmVkZGVkVmlld1JlZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0NvbXBvbmVudFR5cGUodGhpcy52aWV3VHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHRoaXMudmlld1R5cGUpIGFzIENvbXBvbmVudFJlZjxhbnk+O1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS52aWV3Q29udGV4dCA9IHRoaXMudmlld0NvbnRleHQ7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICAgICAgICAgIGZpcnN0Um9vdE5vZGUucmVwbGFjZVdpdGgoY29tcG9uZW50UmVmLmluc3RhbmNlLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IGNvbXBvbmVudFJlZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGVuZEJsb2NrQ2FyZEVsZW1lbnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrQ2FyZENvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgdGhpcy5ibG9ja0NhcmRDb21wb25lbnRSZWYuaW5zdGFuY2UuYXBwZW5kKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Directive, Input } from '@angular/core';
2
- import { SlateErrorCode } from '../types/error';
3
2
  import * as i0 from "@angular/core";
4
3
  /**
4
+ * @deprecated
5
5
  * the special container for angular template
6
6
  * Add the rootNodes of each child component to the parentElement
7
7
  * Remove useless DOM elements, eg: comment...
@@ -11,86 +11,6 @@ export class ViewContainer {
11
11
  this.elementRef = elementRef;
12
12
  this.differs = differs;
13
13
  }
14
- ngAfterViewInit() {
15
- const differ = this.differs.find(this.childrenComponent).create((index, item) => {
16
- return item;
17
- });
18
- // first diff
19
- differ.diff(this.childrenComponent);
20
- const parentElement = this.elementRef.nativeElement.parentElement;
21
- if (this.childrenComponent.length > 0) {
22
- parentElement.insertBefore(this.createFragment(), this.elementRef.nativeElement);
23
- this.elementRef.nativeElement.remove();
24
- }
25
- this.childrenComponent.changes.subscribe(value => {
26
- const iterableChanges = differ.diff(this.childrenComponent);
27
- if (iterableChanges) {
28
- iterableChanges.forEachOperation((record, previousIndex, currentIndex) => {
29
- // removed
30
- if (currentIndex === null) {
31
- return;
32
- }
33
- // added or moved
34
- this.handleContainerItemChange(record, parentElement);
35
- });
36
- }
37
- });
38
- }
39
- getPreviousRootNode(currentIndex) {
40
- if (currentIndex === 0) {
41
- return null;
42
- }
43
- const previousComponent = this.childrenComponent.find((item, index) => index === currentIndex - 1);
44
- let previousRootNode = previousComponent.rootNodes[previousComponent.rootNodes.length - 1];
45
- if (previousRootNode) {
46
- return previousRootNode;
47
- }
48
- else {
49
- return this.getPreviousRootNode(currentIndex - 1);
50
- }
51
- }
52
- createFragment() {
53
- const fragment = document.createDocumentFragment();
54
- this.childrenComponent.forEach((component, index) => {
55
- fragment.append(...component.rootNodes);
56
- });
57
- return fragment;
58
- }
59
- handleContainerItemChange(record, parentElement) {
60
- // first insert
61
- if (this.elementRef.nativeElement.parentElement && this.elementRef.nativeElement.parentElement === parentElement) {
62
- const fragment = document.createDocumentFragment();
63
- fragment.append(...record.item.rootNodes);
64
- parentElement.insertBefore(fragment, this.elementRef.nativeElement);
65
- this.elementRef.nativeElement.remove();
66
- return;
67
- }
68
- // insert at start location
69
- if (record.currentIndex === 0) {
70
- const fragment = document.createDocumentFragment();
71
- fragment.append(...record.item.rootNodes);
72
- parentElement.prepend(fragment);
73
- }
74
- else {
75
- // insert afterend of previous component end
76
- let previousRootNode = this.getPreviousRootNode(record.currentIndex);
77
- if (previousRootNode) {
78
- record.item.rootNodes.forEach(rootNode => {
79
- previousRootNode.insertAdjacentElement('afterend', rootNode);
80
- previousRootNode = rootNode;
81
- });
82
- }
83
- else {
84
- this.viewContext.editor.onError({
85
- code: SlateErrorCode.NotFoundPreviousRootNodeError,
86
- name: 'not found previous rootNode',
87
- nativeError: null
88
- });
89
- }
90
- }
91
- // Solve the block-card DOMElement loss when moving nodes
92
- record.item.appendBlockCardElement();
93
- }
94
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: ViewContainer, deps: [{ token: i0.ElementRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
95
15
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.1", type: ViewContainer, inputs: { viewContext: "viewContext" }, ngImport: i0 }); }
96
16
  }
@@ -99,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
99
19
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.IterableDiffers }]; }, propDecorators: { viewContext: [{
100
20
  type: Input
101
21
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3ZpZXcvY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBb0QsTUFBTSxlQUFlLENBQUM7QUFHOUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVoRDs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQixhQUFhO0lBSy9CLFlBQXNCLFVBQTJCLEVBQVksT0FBd0I7UUFBL0QsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFBWSxZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUFHLENBQUM7SUFFekYsZUFBZTtRQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUM1RSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILGFBQWE7UUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sYUFBYSxHQUFnQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7UUFDL0UsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0MsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM1RCxJQUFJLGVBQWUsRUFBRTtnQkFDakIsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBK0IsRUFBRSxhQUFxQixFQUFFLFlBQW9CLEVBQUUsRUFBRTtvQkFDOUcsVUFBVTtvQkFDVixJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUU7d0JBQ3ZCLE9BQU87cUJBQ1Y7b0JBQ0QsaUJBQWlCO29CQUNqQixJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDLENBQUMsQ0FBQzthQUNOO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsWUFBWTtRQUM1QixJQUFJLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkcsSUFBSSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzRixJQUFJLGdCQUFnQixFQUFFO1lBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7U0FDM0I7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNyRDtJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1YsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoRCxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVELHlCQUF5QixDQUFDLE1BQStCLEVBQUUsYUFBMEI7UUFDakYsZUFBZTtRQUNmLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsS0FBSyxhQUFhLEVBQUU7WUFDOUcsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDbkQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QyxPQUFPO1NBQ1Y7UUFDRCwyQkFBMkI7UUFDM0IsSUFBSSxNQUFNLENBQUMsWUFBWSxLQUFLLENBQUMsRUFBRTtZQUMzQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNuRCxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDSCw0Q0FBNEM7WUFDNUMsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3JFLElBQUksZ0JBQWdCLEVBQUU7Z0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDckMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUM3RCxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2FBQ047aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO29CQUM1QixJQUFJLEVBQUUsY0FBYyxDQUFDLDZCQUE2QjtvQkFDbEQsSUFBSSxFQUFFLDZCQUE2QjtvQkFDbkMsV0FBVyxFQUFFLElBQUk7aUJBQ3BCLENBQUMsQ0FBQzthQUNOO1NBQ0o7UUFDRCx5REFBeUQ7UUFDekQsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7OEdBdEZpQixhQUFhO2tHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRGxDLFNBQVM7K0hBSUcsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIEl0ZXJhYmxlQ2hhbmdlUmVjb3JkLCBJdGVyYWJsZURpZmZlcnMsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2xhdGVWaWV3Q29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBWaWV3Q29udGFpbmVySXRlbSB9IGZyb20gJy4vY29udGFpbmVyLWl0ZW0nO1xuaW1wb3J0IHsgU2xhdGVFcnJvckNvZGUgfSBmcm9tICcuLi90eXBlcy9lcnJvcic7XG5cbi8qKlxuICogdGhlIHNwZWNpYWwgY29udGFpbmVyIGZvciBhbmd1bGFyIHRlbXBsYXRlXG4gKiBBZGQgdGhlIHJvb3ROb2RlcyBvZiBlYWNoIGNoaWxkIGNvbXBvbmVudCB0byB0aGUgcGFyZW50RWxlbWVudFxuICogUmVtb3ZlIHVzZWxlc3MgRE9NIGVsZW1lbnRzLCBlZzogY29tbWVudC4uLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3Q29udGFpbmVyPFQgZXh0ZW5kcyBWaWV3Q29udGFpbmVySXRlbT4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBhYnN0cmFjdCBjaGlsZHJlbkNvbXBvbmVudDogUXVlcnlMaXN0PFQ+O1xuXG4gICAgQElucHV0KCkgdmlld0NvbnRleHQ6IFNsYXRlVmlld0NvbnRleHQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjxhbnk+LCBwcm90ZWN0ZWQgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBkaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLmNoaWxkcmVuQ29tcG9uZW50KS5jcmVhdGUoKGluZGV4LCBpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGZpcnN0IGRpZmZcbiAgICAgICAgZGlmZmVyLmRpZmYodGhpcy5jaGlsZHJlbkNvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW5Db21wb25lbnQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUodGhpcy5jcmVhdGVGcmFnbWVudCgpLCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoaWxkcmVuQ29tcG9uZW50LmNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZXJhYmxlQ2hhbmdlcyA9IGRpZmZlci5kaWZmKHRoaXMuY2hpbGRyZW5Db21wb25lbnQpO1xuICAgICAgICAgICAgaWYgKGl0ZXJhYmxlQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgIGl0ZXJhYmxlQ2hhbmdlcy5mb3JFYWNoT3BlcmF0aW9uKChyZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPFQ+LCBwcmV2aW91c0luZGV4OiBOdW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIGFkZGVkIG9yIG1vdmVkXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ29udGFpbmVySXRlbUNoYW5nZShyZWNvcmQsIHBhcmVudEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRQcmV2aW91c1Jvb3ROb2RlKGN1cnJlbnRJbmRleCkge1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcmV2aW91c0NvbXBvbmVudCA9IHRoaXMuY2hpbGRyZW5Db21wb25lbnQuZmluZCgoaXRlbSwgaW5kZXgpID0+IGluZGV4ID09PSBjdXJyZW50SW5kZXggLSAxKTtcbiAgICAgICAgbGV0IHByZXZpb3VzUm9vdE5vZGUgPSBwcmV2aW91c0NvbXBvbmVudC5yb290Tm9kZXNbcHJldmlvdXNDb21wb25lbnQucm9vdE5vZGVzLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAocHJldmlvdXNSb290Tm9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzUm9vdE5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRQcmV2aW91c1Jvb3ROb2RlKGN1cnJlbnRJbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlRnJhZ21lbnQoKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICB0aGlzLmNoaWxkcmVuQ29tcG9uZW50LmZvckVhY2goKGNvbXBvbmVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGZyYWdtZW50LmFwcGVuZCguLi5jb21wb25lbnQucm9vdE5vZGVzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmcmFnbWVudDtcbiAgICB9XG5cbiAgICBoYW5kbGVDb250YWluZXJJdGVtQ2hhbmdlKHJlY29yZDogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8VD4sIHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIC8vIGZpcnN0IGluc2VydFxuICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCAmJiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50ID09PSBwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgICAgIGZyYWdtZW50LmFwcGVuZCguLi5yZWNvcmQuaXRlbS5yb290Tm9kZXMpO1xuICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoZnJhZ21lbnQsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluc2VydCBhdCBzdGFydCBsb2NhdGlvblxuICAgICAgICBpZiAocmVjb3JkLmN1cnJlbnRJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgICAgICBmcmFnbWVudC5hcHBlbmQoLi4ucmVjb3JkLml0ZW0ucm9vdE5vZGVzKTtcbiAgICAgICAgICAgIHBhcmVudEVsZW1lbnQucHJlcGVuZChmcmFnbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpbnNlcnQgYWZ0ZXJlbmQgb2YgcHJldmlvdXMgY29tcG9uZW50IGVuZFxuICAgICAgICAgICAgbGV0IHByZXZpb3VzUm9vdE5vZGUgPSB0aGlzLmdldFByZXZpb3VzUm9vdE5vZGUocmVjb3JkLmN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICBpZiAocHJldmlvdXNSb290Tm9kZSkge1xuICAgICAgICAgICAgICAgIHJlY29yZC5pdGVtLnJvb3ROb2Rlcy5mb3JFYWNoKHJvb3ROb2RlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNSb290Tm9kZS5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2FmdGVyZW5kJywgcm9vdE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1Jvb3ROb2RlID0gcm9vdE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRleHQuZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgICAgICBjb2RlOiBTbGF0ZUVycm9yQ29kZS5Ob3RGb3VuZFByZXZpb3VzUm9vdE5vZGVFcnJvcixcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ25vdCBmb3VuZCBwcmV2aW91cyByb290Tm9kZScsXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUVycm9yOiBudWxsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29sdmUgdGhlIGJsb2NrLWNhcmQgRE9NRWxlbWVudCBsb3NzIHdoZW4gbW92aW5nIG5vZGVzXG4gICAgICAgIHJlY29yZC5pdGVtLmFwcGVuZEJsb2NrQ2FyZEVsZW1lbnQoKTtcbiAgICB9XG59XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvc3JjL3ZpZXcvY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFtQixNQUFNLGVBQWUsQ0FBQzs7QUFJOUU7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQWdCLGFBQWE7SUFHL0IsWUFBc0IsVUFBMkIsRUFBWSxPQUF3QjtRQUEvRCxlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUFZLFlBQU8sR0FBUCxPQUFPLENBQWlCO0lBQUcsQ0FBQzs4R0FIdkUsYUFBYTtrR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQURsQyxTQUFTOytIQUVHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBJdGVyYWJsZURpZmZlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNsYXRlVmlld0NvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgVmlld0NvbnRhaW5lckl0ZW0gfSBmcm9tICcuL2NvbnRhaW5lci1pdGVtJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogdGhlIHNwZWNpYWwgY29udGFpbmVyIGZvciBhbmd1bGFyIHRlbXBsYXRlXG4gKiBBZGQgdGhlIHJvb3ROb2RlcyBvZiBlYWNoIGNoaWxkIGNvbXBvbmVudCB0byB0aGUgcGFyZW50RWxlbWVudFxuICogUmVtb3ZlIHVzZWxlc3MgRE9NIGVsZW1lbnRzLCBlZzogY29tbWVudC4uLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3Q29udGFpbmVyPFQgZXh0ZW5kcyBWaWV3Q29udGFpbmVySXRlbT4ge1xuICAgIEBJbnB1dCgpIHZpZXdDb250ZXh0OiBTbGF0ZVZpZXdDb250ZXh0O1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8YW55PiwgcHJvdGVjdGVkIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycykge31cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVFbnRyeSwgUmFuZ2UsIEVsZW1lbnQsIEFuY2VzdG9yLCBUZXh0IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgU2xhdGVTdHJpbmdUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3RyaW5nL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uL3R5cGVzL3ZpZXcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNsYXRlVmlld0NvbnRleHQ8VCBleHRlbmRzIEFuZ3VsYXJFZGl0b3IgPSBBbmd1bGFyRWRpdG9yPiB7XG4gICAgZWRpdG9yOiBUO1xuICAgIHRlbXBsYXRlQ29tcG9uZW50OiBTbGF0ZVN0cmluZ1RlbXBsYXRlQ29tcG9uZW50O1xuICAgIHRyYWNrQnk6IChlbGVtZW50OiBFbGVtZW50KSA9PiBhbnk7XG4gICAgcmVuZGVyRWxlbWVudD86IChlbGVtZW50OiBFbGVtZW50KSA9PiBWaWV3VHlwZTtcbiAgICByZW5kZXJMZWFmPzogKHRleHQ6IFRleHQpID0+IFZpZXdUeXBlO1xuICAgIHJlbmRlclRleHQ/OiAodGV4dDogVGV4dCkgPT4gVmlld1R5cGU7XG4gICAgaXNTdHJpY3REZWNvcmF0ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbGF0ZUNoaWxkcmVuQ29udGV4dCB7XG4gICAgcGFyZW50OiBBbmNlc3RvcjtcbiAgICBzZWxlY3Rpb246IFJhbmdlO1xuICAgIGRlY29yYXRpb25zOiBSYW5nZVtdO1xuICAgIGRlY29yYXRlOiAoZW50cnk6IE5vZGVFbnRyeSkgPT4gUmFuZ2VbXTtcbiAgICByZWFkb25seTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbGF0ZUVsZW1lbnRDb250ZXh0PFQgZXh0ZW5kcyBFbGVtZW50ID0gRWxlbWVudD4ge1xuICAgIGVsZW1lbnQ6IFQ7XG4gICAgc2VsZWN0aW9uOiBSYW5nZSB8IG51bGw7XG4gICAgZGVjb3JhdGlvbnM6IFJhbmdlW107XG4gICAgYXR0cmlidXRlczogU2xhdGVFbGVtZW50QXR0cmlidXRlcztcbiAgICBkZWNvcmF0ZTogKGVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVUZXh0Q29udGV4dDxUIGV4dGVuZHMgVGV4dCA9IFRleHQ+IHtcbiAgICB0ZXh0OiBUO1xuICAgIGRlY29yYXRpb25zOiBSYW5nZVtdO1xuICAgIGlzTGFzdDogYm9vbGVhbjtcbiAgICBwYXJlbnQ6IEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVMZWFmQ29udGV4dCB7XG4gICAgbGVhZjogVGV4dDtcbiAgICB0ZXh0OiBUZXh0O1xuICAgIHBhcmVudDogRWxlbWVudDtcbiAgICBpc0xhc3Q6IGJvb2xlYW47XG4gICAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbGF0ZUVsZW1lbnRBdHRyaWJ1dGVzIHtcbiAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnO1xuICAgICdkYXRhLXNsYXRlLXZvaWQnPzogYm9vbGVhbjtcbiAgICAnZGF0YS1zbGF0ZS1pbmxpbmUnPzogYm9vbGVhbjtcbiAgICBjb250ZW50ZWRpdGFibGU/OiBib29sZWFuO1xuICAgICdkYXRhLXNsYXRlLWtleSc/OiBzdHJpbmc7XG4gICAgZGlyPzogJ3J0bCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVTdHJpbmdDb250ZXh0IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgZWxlbWVudFN0cmluZ0xlbmd0aDogbnVtYmVyO1xuICAgIHR5cGU6ICdzdHJpbmcnIHwgJ2xpbmVCcmVha0VtcHR5U3RyaW5nJztcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy92aWV3L2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVFbnRyeSwgUmFuZ2UsIEVsZW1lbnQsIEFuY2VzdG9yLCBUZXh0LCBQYXRoIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgU2xhdGVTdHJpbmdUZW1wbGF0ZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc3RyaW5nL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnLi4vcGx1Z2lucy9hbmd1bGFyLWVkaXRvcic7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBWaWV3VHlwZSB9IGZyb20gJy4uL3R5cGVzL3ZpZXcnO1xuaW1wb3J0IHsgQmFzZUVsZW1lbnRDb21wb25lbnQsIEJhc2VMZWFmQ29tcG9uZW50LCBCYXNlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVWaWV3Q29udGV4dDxUIGV4dGVuZHMgQW5ndWxhckVkaXRvciA9IEFuZ3VsYXJFZGl0b3I+IHtcbiAgICBlZGl0b3I6IFQ7XG4gICAgdGVtcGxhdGVDb21wb25lbnQ6IFNsYXRlU3RyaW5nVGVtcGxhdGU7XG4gICAgZGVmYXVsdEVsZW1lbnQ6IENvbXBvbmVudFR5cGU8QmFzZUVsZW1lbnRDb21wb25lbnQ+O1xuICAgIGRlZmF1bHRUZXh0OiBDb21wb25lbnRUeXBlPEJhc2VUZXh0Q29tcG9uZW50PjtcbiAgICBkZWZhdWx0Vm9pZFRleHQ6IENvbXBvbmVudFR5cGU8QmFzZVRleHRDb21wb25lbnQ+O1xuICAgIGRlZmF1bHRMZWFmOiBDb21wb25lbnRUeXBlPEJhc2VMZWFmQ29tcG9uZW50PjtcbiAgICB0cmFja0J5OiAoZWxlbWVudDogRWxlbWVudCkgPT4gYW55O1xuICAgIHJlbmRlckVsZW1lbnQ/OiAoZWxlbWVudDogRWxlbWVudCkgPT4gVmlld1R5cGU7XG4gICAgcmVuZGVyTGVhZj86ICh0ZXh0OiBUZXh0KSA9PiBWaWV3VHlwZTtcbiAgICByZW5kZXJUZXh0PzogKHRleHQ6IFRleHQpID0+IFZpZXdUeXBlO1xuICAgIGlzU3RyaWN0RGVjb3JhdGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVDaGlsZHJlbkNvbnRleHQge1xuICAgIHBhcmVudDogQW5jZXN0b3I7XG4gICAgc2VsZWN0aW9uOiBSYW5nZTtcbiAgICBkZWNvcmF0aW9uczogUmFuZ2VbXTtcbiAgICBkZWNvcmF0ZTogKGVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVFbGVtZW50Q29udGV4dDxUIGV4dGVuZHMgRWxlbWVudCA9IEVsZW1lbnQ+IHtcbiAgICBlbGVtZW50OiBUO1xuICAgIHNlbGVjdGlvbjogUmFuZ2UgfCBudWxsO1xuICAgIHBhdGg6IFBhdGg7XG4gICAgZGVjb3JhdGlvbnM6IFJhbmdlW107XG4gICAgYXR0cmlidXRlczogU2xhdGVFbGVtZW50QXR0cmlidXRlcztcbiAgICBkZWNvcmF0ZTogKGVudHJ5OiBOb2RlRW50cnkpID0+IFJhbmdlW107XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVUZXh0Q29udGV4dDxUIGV4dGVuZHMgVGV4dCA9IFRleHQ+IHtcbiAgICB0ZXh0OiBUO1xuICAgIGRlY29yYXRpb25zOiBSYW5nZVtdO1xuICAgIGlzTGFzdDogYm9vbGVhbjtcbiAgICBwYXJlbnQ6IEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVMZWFmQ29udGV4dCB7XG4gICAgbGVhZjogVGV4dDtcbiAgICB0ZXh0OiBUZXh0O1xuICAgIHBhcmVudDogRWxlbWVudDtcbiAgICBpc0xhc3Q6IGJvb2xlYW47XG4gICAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTbGF0ZUVsZW1lbnRBdHRyaWJ1dGVzIHtcbiAgICAnZGF0YS1zbGF0ZS1ub2RlJzogJ2VsZW1lbnQnO1xuICAgICdkYXRhLXNsYXRlLXZvaWQnPzogYm9vbGVhbjtcbiAgICAnZGF0YS1zbGF0ZS1pbmxpbmUnPzogYm9vbGVhbjtcbiAgICBjb250ZW50ZWRpdGFibGU/OiBib29sZWFuO1xuICAgICdkYXRhLXNsYXRlLWtleSc/OiBzdHJpbmc7XG4gICAgZGlyPzogJ3J0bCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhdGVTdHJpbmdDb250ZXh0IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgZWxlbWVudFN0cmluZ0xlbmd0aDogbnVtYmVyO1xuICAgIHR5cGU6ICdzdHJpbmcnIHwgJ2xpbmVCcmVha0VtcHR5U3RyaW5nJztcbn1cbiJdfQ==