@worktile/theia 17.0.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 (134) hide show
  1. package/components/contextmenu/contextmenu.component.d.ts +3 -2
  2. package/esm2022/components/action/prevent-default.mjs +3 -3
  3. package/esm2022/components/column-resize/column-resize-notifier.mjs +3 -3
  4. package/esm2022/components/column-resize/column-resize.directive.mjs +3 -3
  5. package/esm2022/components/column-resize/event-dispatcher.mjs +3 -3
  6. package/esm2022/components/column-resize/overlay-handle.component.mjs +3 -3
  7. package/esm2022/components/column-resize/resizing.store.mjs +3 -3
  8. package/esm2022/components/contextmenu/contextmenu.component.mjs +8 -7
  9. package/esm2022/components/conversion-hint/conversion-hint.component.mjs +3 -3
  10. package/esm2022/components/element/element.component.mjs +6 -8
  11. package/esm2022/components/inline-toolbar/inline-toolbar.component.mjs +3 -3
  12. package/esm2022/components/listbox/listbox.mjs +9 -9
  13. package/esm2022/components/plugin-menu/plugin-menu.component.mjs +3 -3
  14. package/esm2022/components/table-select/table-select.component.mjs +3 -3
  15. package/esm2022/components/template/template.component.mjs +3 -3
  16. package/esm2022/components/text/text.component.mjs +5 -5
  17. package/esm2022/components/toolbar/toolbar.component.mjs +4 -7
  18. package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +3 -3
  19. package/esm2022/components/toolbar-group/toolbar-group.component.mjs +3 -3
  20. package/esm2022/components/toolbar-item/toolbar-item.component.mjs +3 -3
  21. package/esm2022/core/toolbar-item/base-toolbar-item.mjs +6 -6
  22. package/esm2022/core/with-theia.mjs +2 -1
  23. package/esm2022/editor.component.mjs +11 -26
  24. package/esm2022/interfaces/editor.mjs +1 -1
  25. package/esm2022/interfaces/view-base.mjs +3 -3
  26. package/esm2022/pipes.mjs +9 -9
  27. package/esm2022/plugins/align/align.plugin.mjs +3 -3
  28. package/esm2022/plugins/autoformat/autoformat.plugin.mjs +3 -3
  29. package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +3 -3
  30. package/esm2022/plugins/blockquote/blockquote.component.mjs +6 -8
  31. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +4 -4
  32. package/esm2022/plugins/code/code.component.mjs +12 -11
  33. package/esm2022/plugins/code/code.editor.mjs +3 -3
  34. package/esm2022/plugins/color/toolbar-item.component.mjs +3 -3
  35. package/esm2022/plugins/common/block-card.plugin.mjs +41 -8
  36. package/esm2022/plugins/common/move-selection.plugin.mjs +6 -4
  37. package/esm2022/plugins/common/remove-empty.plugin.mjs +9 -8
  38. package/esm2022/plugins/common/remove-void.plugin.mjs +7 -4
  39. package/esm2022/plugins/hr/hr.component.mjs +9 -9
  40. package/esm2022/plugins/image/image.component.mjs +13 -11
  41. package/esm2022/plugins/image/image.plugin.mjs +19 -2
  42. package/esm2022/plugins/index.mjs +1 -3
  43. package/esm2022/plugins/inline-code/inline-code.component.mjs +9 -9
  44. package/esm2022/plugins/link/edit/link-edit.component.mjs +3 -3
  45. package/esm2022/plugins/link/hover/link-hover.component.mjs +3 -3
  46. package/esm2022/plugins/link/link.component.mjs +21 -18
  47. package/esm2022/plugins/list/components/bulleted-list.component.mjs +6 -8
  48. package/esm2022/plugins/list/components/list-item.component.mjs +6 -8
  49. package/esm2022/plugins/list/components/numbered-list.component.mjs +6 -8
  50. package/esm2022/plugins/list/list.editor.mjs +5 -3
  51. package/esm2022/plugins/list/list.plugin.mjs +4 -4
  52. package/esm2022/plugins/mention/suggestion.component.mjs +3 -3
  53. package/esm2022/plugins/normalizers/insert-paragraph-nodes.mjs +1 -1
  54. package/esm2022/plugins/normalizers/trailing-node.plugin.mjs +3 -3
  55. package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +3 -3
  56. package/esm2022/plugins/soft-break/soft-break.plugin.mjs +1 -1
  57. package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +11 -10
  58. package/esm2022/plugins/table/components/row/row.component.mjs +54 -32
  59. package/esm2022/plugins/table/components/table.component.mjs +322 -299
  60. package/esm2022/plugins/table/components/td/td.component.mjs +47 -47
  61. package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +6 -7
  62. package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +3 -3
  63. package/esm2022/plugins/table/table.editor.mjs +17 -13
  64. package/esm2022/plugins/table/table.pipe.mjs +38 -25
  65. package/esm2022/plugins/table/table.plugin.mjs +5 -5
  66. package/esm2022/plugins/table/table.service.mjs +13 -38
  67. package/esm2022/plugins/table/table.store.mjs +31 -30
  68. package/esm2022/plugins/table/table.types.mjs +2 -1
  69. package/esm2022/plugins/table/toolbar-item.component.mjs +3 -3
  70. package/esm2022/plugins/table/utils/calculate-table.mjs +17 -10
  71. package/esm2022/plugins/table/utils/cell-position.mjs +1 -4
  72. package/esm2022/plugins/table/utils/get-grid-columns.mjs +11 -54
  73. package/esm2022/plugins/table/utils/is-header-row.mjs +3 -2
  74. package/esm2022/plugins/table/utils/is-legal-table.mjs +11 -1
  75. package/esm2022/plugins/table/utils/merge-cell.mjs +21 -19
  76. package/esm2022/plugins/table/utils/remove-row-column.mjs +3 -4
  77. package/esm2022/plugins/table/utils/table-position.mjs +11 -1
  78. package/esm2022/plugins/todo-item/todo-item.component.mjs +18 -16
  79. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +4 -5
  80. package/esm2022/plugins/vertical-align/vertical-align.editor.mjs +2 -2
  81. package/esm2022/queries/anchor-block-entry.mjs +3 -3
  82. package/esm2022/queries/anchor-inline-entry.mjs +3 -3
  83. package/esm2022/queries/find-descendant.mjs +3 -3
  84. package/esm2022/queries/find-node.mjs +3 -3
  85. package/esm2022/queries/get-anchor-block-entry.mjs +3 -3
  86. package/esm2022/queries/get-block-above.mjs +3 -3
  87. package/esm2022/queries/get-insert-elements-path.mjs +5 -3
  88. package/esm2022/queries/index.mjs +4 -2
  89. package/esm2022/queries/is-root-path.mjs +2 -0
  90. package/esm2022/services/context.service.mjs +13 -9
  91. package/esm2022/services/table-contextmenu.service.mjs +11 -4
  92. package/esm2022/services/toolbar.service.mjs +3 -3
  93. package/esm2022/test/basic/basic.component.mjs +3 -3
  94. package/esm2022/test/faker/tethys-icon-faker.mjs +3 -3
  95. package/esm2022/transforms/handle-continual-insert-break.mjs +3 -3
  96. package/esm2022/transforms/move-children.mjs +3 -3
  97. package/esm2022/utils/fragment.mjs +11 -3
  98. package/esm2022/utils/insert-data-by-invalid-type.mjs +14 -6
  99. package/esm2022/utils/match.mjs +3 -3
  100. package/fesm2022/worktile-theia.mjs +1009 -924
  101. package/fesm2022/worktile-theia.mjs.map +1 -1
  102. package/interfaces/editor.d.ts +16 -5
  103. package/package.json +3 -3
  104. package/plugins/code/code.component.d.ts +2 -3
  105. package/plugins/image/image.component.d.ts +3 -4
  106. package/plugins/image/image.component.scss +2 -2
  107. package/plugins/link/link.component.d.ts +4 -3
  108. package/plugins/normalizers/insert-paragraph-nodes.d.ts +1 -2
  109. package/plugins/normalizers/trailing-node.plugin.d.ts +1 -2
  110. package/plugins/soft-break/soft-break.plugin.d.ts +1 -2
  111. package/plugins/table/components/insert-mark/insert-mark.component.d.ts +1 -0
  112. package/plugins/table/components/row/row.component.d.ts +11 -6
  113. package/plugins/table/components/table.component.d.ts +28 -15
  114. package/plugins/table/components/table.component.scss +37 -24
  115. package/plugins/table/components/td/td.component.d.ts +4 -7
  116. package/plugins/table/table.editor.d.ts +2 -2
  117. package/plugins/table/table.pipe.d.ts +8 -3
  118. package/plugins/table/table.service.d.ts +0 -2
  119. package/plugins/table/table.store.d.ts +10 -11
  120. package/plugins/table/table.types.d.ts +1 -0
  121. package/plugins/table/utils/calculate-table.d.ts +1 -0
  122. package/plugins/table/utils/get-grid-columns.d.ts +3 -22
  123. package/plugins/table/utils/is-header-row.d.ts +1 -1
  124. package/plugins/table/utils/is-legal-table.d.ts +2 -0
  125. package/plugins/table/utils/table-position.d.ts +3 -1
  126. package/plugins/todo-item/todo-item.component.d.ts +3 -3
  127. package/plugins/vertical-align/toolbar-item.component.d.ts +0 -1
  128. package/plugins/vertical-align/vertical-align.scss +11 -0
  129. package/queries/index.d.ts +2 -1
  130. package/queries/is-range-across-blocks.d.ts +1 -1
  131. package/queries/is-root-path.d.ts +2 -0
  132. package/utils/insert-data-by-invalid-type.d.ts +2 -1
  133. package/esm2022/plugins/common/transforms.plugin.mjs +0 -18
  134. package/plugins/common/transforms.plugin.d.ts +0 -8
@@ -1,5 +1,4 @@
1
1
  import { Component } from '@angular/core';
2
- import { SlateChildren } from 'slate-angular';
3
2
  import { TheBaseElement } from '../../interfaces';
4
3
  import * as i0 from "@angular/core";
5
4
  export class TheBlockquote extends TheBaseElement {
@@ -8,16 +7,15 @@ export class TheBlockquote extends TheBaseElement {
8
7
  this.elementRef = elementRef;
9
8
  this.cdr = cdr;
10
9
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TheBlockquote, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: TheBlockquote, isStandalone: true, selector: "blockquote[theBlockquote]", usesInheritance: true, ngImport: i0, template: `<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>`, isInline: true, dependencies: [{ kind: "component", type: SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }] }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheBlockquote, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheBlockquote, isStandalone: true, selector: "blockquote[theBlockquote]", usesInheritance: true, ngImport: i0, template: ``, isInline: true }); }
13
12
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TheBlockquote, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheBlockquote, decorators: [{
15
14
  type: Component,
16
15
  args: [{
17
16
  selector: 'blockquote[theBlockquote]',
18
- template: `<slate-children [children]="children" [context]="childrenContext" [viewContext]="viewContext"></slate-children>`,
19
- standalone: true,
20
- imports: [SlateChildren]
17
+ template: ``,
18
+ standalone: true
21
19
  }]
22
20
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2txdW90ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ibG9ja3F1b3RlL2Jsb2NrcXVvdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVFsRCxNQUFNLE9BQU8sYUFBYyxTQUFRLGNBQStCO0lBQzlELFlBQ1csVUFBc0IsRUFDdEIsR0FBc0I7UUFFN0IsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUhoQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBR2pDLENBQUM7OEdBTlEsYUFBYTtrR0FBYixhQUFhLDRHQUpaLGlIQUFpSCw0REFFakgsYUFBYTs7MkZBRWQsYUFBYTtrQkFOekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsaUhBQWlIO29CQUMzSCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFNsYXRlQ2hpbGRyZW4gfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IFRoZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmxvY2txdW90ZVt0aGVCbG9ja3F1b3RlXScsXG4gICAgdGVtcGxhdGU6IGA8c2xhdGUtY2hpbGRyZW4gW2NoaWxkcmVuXT1cImNoaWxkcmVuXCIgW2NvbnRleHRdPVwiY2hpbGRyZW5Db250ZXh0XCIgW3ZpZXdDb250ZXh0XT1cInZpZXdDb250ZXh0XCI+PC9zbGF0ZS1jaGlsZHJlbj5gLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1NsYXRlQ2hpbGRyZW5dXG59KVxuZXhwb3J0IGNsYXNzIFRoZUJsb2NrcXVvdGUgZXh0ZW5kcyBUaGVCYXNlRWxlbWVudDxFbGVtZW50LCBFZGl0b3I+IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XG4gICAgfVxufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2txdW90ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ibG9ja3F1b3RlL2Jsb2NrcXVvdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLGFBQWMsU0FBUSxjQUErQjtJQUM5RCxZQUNXLFVBQXNCLEVBQ3RCLEdBQXNCO1FBRTdCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFIaEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUdqQyxDQUFDOzhHQU5RLGFBQWE7a0dBQWIsYUFBYSw0R0FIWixFQUFFOzsyRkFHSCxhQUFhO2tCQUx6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmxvY2txdW90ZVt0aGVCbG9ja3F1b3RlXScsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGhlQmxvY2txdW90ZSBleHRlbmRzIFRoZUJhc2VFbGVtZW50PEVsZW1lbnQsIEVkaXRvcj4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcbiAgICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Editor, Transforms } from 'slate';
1
+ import { Editor, Element, Transforms } from 'slate';
2
2
  import { ElementKinds, PluginMenuIcons, ThePluginMenuItemType } from '../../constants';
3
3
  import { createPluginFactory } from '../../core';
4
4
  import { PluginKeys } from '../../interfaces';
@@ -17,7 +17,7 @@ export const withBlockquote = (editor) => {
17
17
  };
18
18
  editor.deleteBackward = unit => {
19
19
  const aboveResult = Editor.above(editor, {
20
- match: n => Editor.isBlock(editor, n) && n.type === ElementKinds.blockquote
20
+ match: n => Element.isElement(n) && Editor.isBlock(editor, n) && n.type === ElementKinds.blockquote
21
21
  });
22
22
  if (!aboveResult) {
23
23
  return deleteBackward(unit);
@@ -39,7 +39,7 @@ export const withBlockquote = (editor) => {
39
39
  return;
40
40
  }
41
41
  const voidEntry = Editor.above(editor, {
42
- match: n => Editor.isBlock(editor, n) && Editor.isVoid(editor, n)
42
+ match: n => Element.isElement(n) && Editor.isBlock(editor, n) && Editor.isVoid(editor, n)
43
43
  });
44
44
  if (voidEntry && voidEntry[0]) {
45
45
  Transforms.insertNodes(editor, createEmptyParagraph());
@@ -81,4 +81,4 @@ export const createBlockquotePlugin = createPluginFactory({
81
81
  allowParentTypes: [ElementKinds.tableCell]
82
82
  }
83
83
  });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2txdW90ZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ibG9ja3F1b3RlL2Jsb2NrcXVvdGUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQVcsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFtQixNQUFTLEVBQUssRUFBRTtJQUM3RCxNQUFNLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTNFLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxPQUFnQixFQUFFLEVBQUU7UUFDeEMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQyxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxD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RUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUM7WUFDM0UsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1lBQzVELElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFLFFBQVE7WUFDckIsUUFBUSxFQUFFLGVBQWUsQ0FBQyxVQUFVO1lBQ3BDLFVBQVUsRUFBRSxLQUFLO1NBQ3BCO0tBQ0o7SUFDRCxPQUFPLEVBQUU7UUFDTCxnQkFBZ0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7S0FDN0M7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMsIFBsdWdpbk1lbnVJY29ucywgVGhlUGx1Z2luTWVudUl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFBsdWdpbktleXMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRoZVF1ZXJpZXMgfSBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IFRoZVRyYW5zZm9ybXMgfSBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IGNyZWF0ZUVtcHR5UGFyYWdyYXBoIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgVGhlQmxvY2txdW90ZSB9IGZyb20gJy4vYmxvY2txdW90ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmxvY2txdW90ZUVkaXRvciB9IGZyb20gJy4vYmxvY2txdW90ZS5lZGl0b3InO1xuXG5leHBvcnQgY29uc3Qgd2l0aEJsb2NrcXVvdGUgPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyByZW5kZXJFbGVtZW50LCBkZWxldGVCYWNrd2FyZCwgaW5zZXJ0QnJlYWssIGlzQ29udGFpbmVyIH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3IucmVuZGVyRWxlbWVudCA9IChlbGVtZW50OiBFbGVtZW50KSA9PiB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlKSB7XG4gICAgICAgICAgICByZXR1cm4gVGhlQmxvY2txdW90ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IGFib3ZlUmVzdWx0ID0gRWRpdG9yLmFib3ZlPEVsZW1lbnQ+KGVkaXRvciwge1xuICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWRpdG9yLmlzQmxvY2soZWRpdG9yLCBuKSAmJiBuLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIWFib3ZlUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFzSGFuZGxlZCA9IFRoZVRyYW5zZm9ybXMuaGFuZGxlQ29udGludWFsRGVsZXRlQmFja3dhcmQoZWRpdG9yLCBhYm92ZVJlc3VsdCwgRWxlbWVudEtpbmRzLmJsb2NrcXVvdGUpO1xuICAgICAgICBpZiAoaGFzSGFuZGxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmluc2VydEJyZWFrID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBsb3dlc3RCbG9jayA9IFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2soZWRpdG9yKTtcblxuICAgICAgICBpZiAoIWxvd2VzdEJsb2NrKSB7XG4gICAgICAgICAgICBpbnNlcnRCcmVhaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhhc0hhbmRsZWQgPSBUaGVUcmFuc2Zvcm1zLmhhbmRsZUNvbnRpbnVhbEluc2VydEJyZWFrKGVkaXRvciwgbG93ZXN0QmxvY2ssIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlKTtcbiAgICAgICAgaWYgKGhhc0hhbmRsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2b2lkRW50cnkgPSBFZGl0b3IuYWJvdmU8RWxlbWVudD4oZWRpdG9yLCB7XG4gICAgICAgICAgICBtYXRjaDogbiA9PiBFZGl0b3IuaXNCbG9jayhlZGl0b3IsIG4pICYmIEVkaXRvci5pc1ZvaWQoZWRpdG9yLCBuKVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHZvaWRFbnRyeSAmJiB2b2lkRW50cnlbMF0pIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBjcmVhdGVFbXB0eVBhcmFncmFwaCgpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5zZXJ0QnJlYWsoKTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmlzQ29udGFpbmVyID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmJsb2NrcXVvdGUgPyB0cnVlIDogaXNDb250YWluZXIoZWxlbWVudCk7XG4gICAgfTtcblxuICAgIHJldHVybiBlZGl0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQmxvY2txdW90ZVBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnkoe1xuICAgIGtleTogUGx1Z2luS2V5cy5ibG9ja3F1b3RlLFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhCbG9ja3F1b3RlLFxuICAgIHRvb2xiYXJJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlLFxuICAgICAgICAgICAgaWNvbjogJ2Jsb2NrcXVvdGUnLFxuICAgICAgICAgICAgbmFtZTogJ+W8leeUqCcsXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBUaGVRdWVyaWVzLmlzQmxvY2tBY3RpdmUoZWRpdG9yLCBFbGVtZW50S2luZHMuYmxvY2txdW90ZSksXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gQmxvY2txdW90ZUVkaXRvci50b2dnbGVCbG9ja3F1b3RlKGVkaXRvcilcbiAgICAgICAgfVxuICAgIF0sXG4gICAgbWVudUl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogRWxlbWVudEtpbmRzLmJsb2NrcXVvdGUsXG4gICAgICAgICAgICB0eXBlOiBUaGVQbHVnaW5NZW51SXRlbVR5cGUuZ3JvdXAsXG4gICAgICAgICAgICBrZXl3b3JkczogJ3l5LHlpbnlvbmcscXVvdGUs5byV55SoJyxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IFRoZVF1ZXJpZXMuaXNCbG9ja0FjdGl2ZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlKSxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBCbG9ja3F1b3RlRWRpdG9yLnRvZ2dsZUJsb2NrcXVvdGUoZWRpdG9yKSxcbiAgICAgICAgICAgIG5hbWU6ICflvJXnlKgnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICfmlK/mjIHlvJXnlKjlhoXlrrknLFxuICAgICAgICAgICAgbWVudUljb246IFBsdWdpbk1lbnVJY29ucy5ibG9ja3F1b3RlLFxuICAgICAgICAgICAgZGlzcGxheUtleTogJy95eSdcbiAgICAgICAgfVxuICAgIF0sXG4gICAgb3B0aW9uczoge1xuICAgICAgICBhbGxvd1BhcmVudFR5cGVzOiBbRWxlbWVudEtpbmRzLnRhYmxlQ2VsbF1cbiAgICB9XG59KTtcbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2txdW90ZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ibG9ja3F1b3RlL2Jsb2NrcXVvdGUucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBbUIsTUFBUyxFQUFLLEVBQUU7SUFDN0QsTUFBTSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUUzRSxNQUFNLENBQUMsYUFBYSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1FBQ3hDLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0MsT0FBTyxhQUFhLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQztJ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QVksQ0FBQyxVQUFVO1lBQzVCLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxLQUFLO1lBQ2pDLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQztZQUMzRSxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDNUQsSUFBSSxFQUFFLElBQUk7WUFDVixXQUFXLEVBQUUsUUFBUTtZQUNyQixRQUFRLEVBQUUsZUFBZSxDQUFDLFVBQVU7WUFDcEMsVUFBVSxFQUFFLEtBQUs7U0FDcEI7S0FDSjtJQUNELE9BQU8sRUFBRTtRQUNMLGdCQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztLQUM3QztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvciwgRWxlbWVudCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcywgUGx1Z2luTWVudUljb25zLCBUaGVQbHVnaW5NZW51SXRlbVR5cGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGhlUXVlcmllcyB9IGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgVGhlVHJhbnNmb3JtcyB9IGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgY3JlYXRlRW1wdHlQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBUaGVCbG9ja3F1b3RlIH0gZnJvbSAnLi9ibG9ja3F1b3RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbG9ja3F1b3RlRWRpdG9yIH0gZnJvbSAnLi9ibG9ja3F1b3RlLmVkaXRvcic7XG5cbmV4cG9ydCBjb25zdCB3aXRoQmxvY2txdW90ZSA9IDxUIGV4dGVuZHMgRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCB7IHJlbmRlckVsZW1lbnQsIGRlbGV0ZUJhY2t3YXJkLCBpbnNlcnRCcmVhaywgaXNDb250YWluZXIgfSA9IGVkaXRvcjtcblxuICAgIGVkaXRvci5yZW5kZXJFbGVtZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmJsb2NrcXVvdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBUaGVCbG9ja3F1b3RlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZW5kZXJFbGVtZW50KGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuZGVsZXRlQmFja3dhcmQgPSB1bml0ID0+IHtcbiAgICAgICAgY29uc3QgYWJvdmVSZXN1bHQgPSBFZGl0b3IuYWJvdmU8RWxlbWVudD4oZWRpdG9yLCB7XG4gICAgICAgICAgICBtYXRjaDogbiA9PiBFbGVtZW50LmlzRWxlbWVudChuKSAmJiBFZGl0b3IuaXNCbG9jayhlZGl0b3IsIG4pICYmIG4udHlwZSA9PT0gRWxlbWVudEtpbmRzLmJsb2NrcXVvdGVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghYWJvdmVSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoYXNIYW5kbGVkID0gVGhlVHJhbnNmb3Jtcy5oYW5kbGVDb250aW51YWxEZWxldGVCYWNrd2FyZChlZGl0b3IsIGFib3ZlUmVzdWx0LCBFbGVtZW50S2luZHMuYmxvY2txdW90ZSk7XG4gICAgICAgIGlmIChoYXNIYW5kbGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0QnJlYWsgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxvd2VzdEJsb2NrID0gVGhlUXVlcmllcy5hbmNob3JCbG9jayhlZGl0b3IpO1xuXG4gICAgICAgIGlmICghbG93ZXN0QmxvY2spIHtcbiAgICAgICAgICAgIGluc2VydEJyZWFrKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFzSGFuZGxlZCA9IFRoZVRyYW5zZm9ybXMuaGFuZGxlQ29udGludWFsSW5zZXJ0QnJlYWsoZWRpdG9yLCBsb3dlc3RCbG9jaywgRWxlbWVudEtpbmRzLmJsb2NrcXVvdGUpO1xuICAgICAgICBpZiAoaGFzSGFuZGxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZvaWRFbnRyeSA9IEVkaXRvci5hYm92ZTxFbGVtZW50PihlZGl0b3IsIHtcbiAgICAgICAgICAgIG1hdGNoOiBuID0+IEVsZW1lbnQuaXNFbGVtZW50KG4pICYmIEVkaXRvci5pc0Jsb2NrKGVkaXRvciwgbikgJiYgRWRpdG9yLmlzVm9pZChlZGl0b3IsIG4pXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodm9pZEVudHJ5ICYmIHZvaWRFbnRyeVswXSkge1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGNyZWF0ZUVtcHR5UGFyYWdyYXBoKCkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnNlcnRCcmVhaygpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaXNDb250YWluZXIgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMuYmxvY2txdW90ZSA/IHRydWUgOiBpc0NvbnRhaW5lcihlbGVtZW50KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVCbG9ja3F1b3RlUGx1Z2luID0gY3JlYXRlUGx1Z2luRmFjdG9yeSh7XG4gICAga2V5OiBQbHVnaW5LZXlzLmJsb2NrcXVvdGUsXG4gICAgd2l0aE92ZXJyaWRlczogd2l0aEJsb2NrcXVvdGUsXG4gICAgdG9vbGJhckl0ZW1zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogRWxlbWVudEtpbmRzLmJsb2NrcXVvdGUsXG4gICAgICAgICAgICBpY29uOiAnYmxvY2txdW90ZScsXG4gICAgICAgICAgICBuYW1lOiAn5byV55SoJyxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IFRoZVF1ZXJpZXMuaXNCbG9ja0FjdGl2ZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlKSxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBCbG9ja3F1b3RlRWRpdG9yLnRvZ2dsZUJsb2NrcXVvdGUoZWRpdG9yKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBtZW51SXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMuYmxvY2txdW90ZSxcbiAgICAgICAgICAgIHR5cGU6IFRoZVBsdWdpbk1lbnVJdGVtVHlwZS5ncm91cCxcbiAgICAgICAgICAgIGtleXdvcmRzOiAneXkseWlueW9uZyxxdW90ZSzlvJXnlKgnLFxuICAgICAgICAgICAgYWN0aXZlOiBlZGl0b3IgPT4gVGhlUXVlcmllcy5pc0Jsb2NrQWN0aXZlKGVkaXRvciwgRWxlbWVudEtpbmRzLmJsb2NrcXVvdGUpLFxuICAgICAgICAgICAgZXhlY3V0ZTogZWRpdG9yID0+IEJsb2NrcXVvdGVFZGl0b3IudG9nZ2xlQmxvY2txdW90ZShlZGl0b3IpLFxuICAgICAgICAgICAgbmFtZTogJ+W8leeUqCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ+aUr+aMgeW8leeUqOWGheWuuScsXG4gICAgICAgICAgICBtZW51SWNvbjogUGx1Z2luTWVudUljb25zLmJsb2NrcXVvdGUsXG4gICAgICAgICAgICBkaXNwbGF5S2V5OiAnL3l5J1xuICAgICAgICB9XG4gICAgXSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAgIGFsbG93UGFyZW50VHlwZXM6IFtFbGVtZW50S2luZHMudGFibGVDZWxsXVxuICAgIH1cbn0pO1xuIl19
@@ -11,7 +11,8 @@ import { Subject, fromEvent } from 'rxjs';
11
11
  import { delay, take, takeUntil } from 'rxjs/operators';
12
12
  import { Transforms } from 'slate';
13
13
  import { AngularEditor, SlateModule } from 'slate-angular';
14
- import { ThePreventDefaultDirective, TheToolbarDropdown } from '../../components';
14
+ import { TheToolbarDropdown } from '../../components';
15
+ import { ThePreventDefaultDirective } from '../../components/action/prevent-default';
15
16
  import { CODEMIRROR_PADDING_TOP, CODE_MODES, DropdownMode } from '../../constants';
16
17
  import { TheBaseElement } from '../../interfaces';
17
18
  import { TheQueries } from '../../queries';
@@ -24,8 +25,7 @@ import * as i2 from "../../services/context.service";
24
25
  import * as i3 from "ngx-tethys/popover";
25
26
  import * as i4 from "@angular/cdk/overlay";
26
27
  import * as i5 from "@angular/forms";
27
- import * as i6 from "slate-angular";
28
- import * as i7 from "ng-codemirror";
28
+ import * as i6 from "ng-codemirror";
29
29
  export class TheCode extends TheBaseElement {
30
30
  get code() {
31
31
  return this.element.content;
@@ -33,7 +33,7 @@ export class TheCode extends TheBaseElement {
33
33
  get isToolbarOpen() {
34
34
  return this.toolbarPopoverRef && this.toolbarPopoverRef.getOverlayRef() && this.toolbarPopoverRef.getOverlayRef().hasAttached();
35
35
  }
36
- constructor(elementRef, cdr, thyNotifyService, contextService, ngZone, thyPopover, viewContainerRef, overlay) {
36
+ constructor(elementRef, cdr, thyNotifyService, contextService, ngZone, thyPopover, overlay) {
37
37
  super(elementRef, cdr);
38
38
  this.elementRef = elementRef;
39
39
  this.cdr = cdr;
@@ -41,7 +41,6 @@ export class TheCode extends TheBaseElement {
41
41
  this.contextService = contextService;
42
42
  this.ngZone = ngZone;
43
43
  this.thyPopover = thyPopover;
44
- this.viewContainerRef = viewContainerRef;
45
44
  this.overlay = overlay;
46
45
  this.startRenderCodemirror = false;
47
46
  this.dropdownMode = DropdownMode;
@@ -228,14 +227,16 @@ export class TheCode extends TheBaseElement {
228
227
  this.destroy$.next();
229
228
  this.destroy$.complete();
230
229
  }
231
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TheCode, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ThyNotifyService }, { token: i2.TheContextService }, { token: i0.NgZone }, { token: i3.ThyPopover }, { token: i0.ViewContainerRef }, { token: i4.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
232
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: TheCode, isStandalone: true, selector: "div[theCode]", host: { classAttribute: "the-code-container" }, viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true, read: TemplateRef, static: true }, { propertyName: "codemirror", first: true, predicate: ["codemirror"], descendants: true, read: CodeMirrorComponent }, { propertyName: "toolbarDropdown", first: true, predicate: TheToolbarDropdown, descendants: true, read: TheToolbarDropdown }], usesInheritance: true, ngImport: i0, template: "<slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n\n<!-- \u53EA\u8BFB\u6A21\u5F0F\u4E0BCodeMirror-sizer\u9AD8\u5EA6\u6BD4\u7F16\u8F91\u6A21\u5F0F\u4E0B\u591A2px\uFF0C\u8BBE\u7F6EthyMinHeight\u4E3A46px\u9632\u6B62\u62D6\u62FD\u5230\u6700\u5C0F\u9AD8\u5EA6\u65F6\u53EA\u8BFB\u6A21\u5F0F\u4E0B\u51FA\u73B0\u6EDA\u52A8\u6761 -->\n<div\n thyResizable\n [thyMinHeight]=\"46\"\n [thyBounds]=\"resizeBounds\"\n [style.height.px]=\"resizeHeight\"\n (thyResize)=\"onResize($event)\"\n (thyResizeEnd)=\"onEndResize()\"\n class=\"resize-code-container\"\n [ngClass]=\"{ focus: isCollapsedAndNonReadonly, readonly: options.readOnly, active: isHightLight && isCollapsedAndNonReadonly }\"\n>\n <ng-codemirror\n *ngIf=\"startRenderCodemirror\"\n #codemirror\n contenteditable=\"false\"\n class=\"ng-codemirror-wrapper\"\n [ngStyle]=\"{ maxHeight: maxHeight > 0 ? maxHeight + 'px' : 'auto' }\"\n [options]=\"options\"\n [ngModel]=\"code\"\n [delayRefreshTime]=\"300\"\n (ngModelChange)=\"codeChange($event)\"\n (focusChange)=\"focusChange($event)\"\n [autoMaxHeight]=\"maxHeight\"\n >\n </ng-codemirror>\n <thy-resize-handle thyDirection=\"bottom\" class=\"code-resize-icon\" *ngIf=\"isCollapsedAndNonReadonly\"></thy-resize-handle>\n</div>\n\n<ng-template #toolbar>\n <thy-actions thySize=\"xxs\" thePreventDefault>\n <the-toolbar-dropdown\n [menus]=\"menus\"\n [toolbarItem]=\"activeLanguage\"\n [dropdownItemKey]=\"activeLanguage?.key\"\n [itemMousedownHandle]=\"onChangeLanguage\"\n >\n </the-toolbar-dropdown>\n <span class=\"auto-wrap d-flex align-items-center px-2 text-secondary\">\n <span>\u81EA\u52A8\u6362\u884C</span>\n <thy-switch\n class=\"auto-wrap-btn d-flex ml-1\"\n [(ngModel)]=\"options.lineWrapping\"\n (ngModelChange)=\"onChangeWrap($event)\"\n thySize=\"sm\"\n ></thy-switch>\n </span>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"copy\" thyTooltip=\"\u590D\u5236\" thyTooltipPlacement=\"top\" (click)=\"onCopy($event)\"></a>\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n thyActionIcon=\"trash\"\n thyTooltip=\"\u5220\u9664\"\n thyTooltipPlacement=\"top\"\n (click)=\"onDelete($event)\"\n ></a>\n </thy-actions>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SlateModule }, { kind: "component", type: i6.SlateChildren, selector: "slate-children", inputs: ["children", "context", "viewContext"] }, { kind: "ngmodule", type: CodemirrorModule }, { kind: "component", type: i7.CodeMirrorComponent, selector: "ng-codemirror, [ngCodeMirror]", inputs: ["autoMaxHeight", "options", "delayRefreshTime"], outputs: ["focusChange"] }, { kind: "component", type: ThySwitch, selector: "thy-switch", inputs: ["thyType", "thySize", "thyDisabled", "thyLoading"], outputs: ["thyChange"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "component", type: ThyActions, selector: "thy-actions", inputs: ["thySize"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: ThyResizableDirective, selector: "[thyResizable]", inputs: ["thyBounds", "thyMaxHeight", "thyMaxWidth", "thyMinHeight", "thyMinWidth", "thyGridColumnCount", "thyMaxColumn", "thyMinColumn", "thyLockAspectRatio", "thyPreview", "thyDisabled"], outputs: ["thyResize", "thyResizeStart", "thyResizeEnd"] }, { kind: "component", type: ThyResizeHandle, selector: "thy-resize-handle, [thy-resize-handle]", inputs: ["thyDirection", "thyLine"], outputs: ["thyMouseDown"], exportAs: ["thyResizeHandle"] }, { kind: "component", type: TheToolbarDropdown, selector: "the-toolbar-dropdown" }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheCode, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ThyNotifyService }, { token: i2.TheContextService }, { token: i0.NgZone }, { token: i3.ThyPopover }, { token: i4.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
231
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheCode, isStandalone: true, selector: "div[theCode]", host: { classAttribute: "the-code-container" }, viewQueries: [{ propertyName: "toolbar", first: true, predicate: ["toolbar"], descendants: true, read: TemplateRef, static: true }, { propertyName: "codemirror", first: true, predicate: ["codemirror"], descendants: true, read: CodeMirrorComponent }, { propertyName: "toolbarDropdown", first: true, predicate: TheToolbarDropdown, descendants: true, read: TheToolbarDropdown }], usesInheritance: true, ngImport: i0, template: "<!-- \u53EA\u8BFB\u6A21\u5F0F\u4E0BCodeMirror-sizer\u9AD8\u5EA6\u6BD4\u7F16\u8F91\u6A21\u5F0F\u4E0B\u591A2px\uFF0C\u8BBE\u7F6EthyMinHeight\u4E3A46px\u9632\u6B62\u62D6\u62FD\u5230\u6700\u5C0F\u9AD8\u5EA6\u65F6\u53EA\u8BFB\u6A21\u5F0F\u4E0B\u51FA\u73B0\u6EDA\u52A8\u6761 -->\n<div\n thyResizable\n [thyMinHeight]=\"46\"\n [thyBounds]=\"resizeBounds\"\n [style.height.px]=\"resizeHeight\"\n (thyResize)=\"onResize($event)\"\n (thyResizeEnd)=\"onEndResize()\"\n class=\"resize-code-container\"\n [ngClass]=\"{ focus: isCollapsedAndNonReadonly, readonly: options.readOnly, active: isHightLight && isCollapsedAndNonReadonly }\"\n>\n <ng-codemirror\n *ngIf=\"startRenderCodemirror\"\n #codemirror\n contenteditable=\"false\"\n class=\"ng-codemirror-wrapper\"\n [ngStyle]=\"{ maxHeight: maxHeight > 0 ? maxHeight + 'px' : 'auto' }\"\n [options]=\"options\"\n [ngModel]=\"code\"\n [delayRefreshTime]=\"300\"\n (ngModelChange)=\"codeChange($event)\"\n (focusChange)=\"focusChange($event)\"\n [autoMaxHeight]=\"maxHeight\"\n >\n </ng-codemirror>\n <thy-resize-handle thyDirection=\"bottom\" class=\"code-resize-icon\" *ngIf=\"isCollapsedAndNonReadonly\"></thy-resize-handle>\n</div>\n\n<ng-template #toolbar>\n <thy-actions thySize=\"xxs\" thePreventDefault>\n <the-toolbar-dropdown\n [menus]=\"menus\"\n [toolbarItem]=\"activeLanguage\"\n [dropdownItemKey]=\"activeLanguage?.key\"\n [itemMousedownHandle]=\"onChangeLanguage\"\n >\n </the-toolbar-dropdown>\n <span class=\"auto-wrap d-flex align-items-center px-2 text-secondary\">\n <span>\u81EA\u52A8\u6362\u884C</span>\n <thy-switch\n class=\"auto-wrap-btn d-flex ml-1\"\n [(ngModel)]=\"options.lineWrapping\"\n (ngModelChange)=\"onChangeWrap($event)\"\n thySize=\"sm\"\n ></thy-switch>\n </span>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"copy\" thyTooltip=\"\u590D\u5236\" thyTooltipPlacement=\"top\" (click)=\"onCopy($event)\"></a>\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n thyActionIcon=\"trash\"\n thyTooltip=\"\u5220\u9664\"\n thyTooltipPlacement=\"top\"\n (click)=\"onDelete($event)\"\n ></a>\n </thy-actions>\n</ng-template>\n", dependencies: [{ kind: "directive", type: ThyResizableDirective, selector: "[thyResizable]", inputs: ["thyBounds", "thyMaxHeight", "thyMaxWidth", "thyMinHeight", "thyMinWidth", "thyGridColumnCount", "thyMaxColumn", "thyMinColumn", "thyLockAspectRatio", "thyPreview", "thyDisabled"], outputs: ["thyResize", "thyResizeStart", "thyResizeEnd"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SlateModule }, { kind: "ngmodule", type: CodemirrorModule }, { kind: "component", type: i6.CodeMirrorComponent, selector: "ng-codemirror, [ngCodeMirror]", inputs: ["autoMaxHeight", "options", "delayRefreshTime"], outputs: ["focusChange"] }, { kind: "component", type: ThySwitch, selector: "thy-switch", inputs: ["thyType", "thySize", "thyDisabled", "thyLoading"], outputs: ["thyChange"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }, { kind: "component", type: ThyActions, selector: "thy-actions", inputs: ["thySize"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyResizeHandle, selector: "thy-resize-handle, [thy-resize-handle]", inputs: ["thyDirection", "thyLine"], outputs: ["thyMouseDown"], exportAs: ["thyResizeHandle"] }, { kind: "component", type: TheToolbarDropdown, selector: "the-toolbar-dropdown" }, { kind: "directive", type: ThePreventDefaultDirective, selector: "[thePreventDefault]", exportAs: ["thePreventDefault"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
233
232
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TheCode, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheCode, decorators: [{
235
234
  type: Component,
236
235
  args: [{ selector: 'div[theCode]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
237
236
  class: 'the-code-container'
238
237
  }, standalone: true, imports: [
238
+ ThyResizableDirective,
239
+ NgClass,
239
240
  NgIf,
240
241
  NgClass,
241
242
  NgStyle,
@@ -251,8 +252,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
251
252
  ThyResizeHandle,
252
253
  TheToolbarDropdown,
253
254
  ThePreventDefaultDirective
254
- ], template: "<slate-children [children]=\"children\" [context]=\"childrenContext\" [viewContext]=\"viewContext\"></slate-children>\n\n<!-- \u53EA\u8BFB\u6A21\u5F0F\u4E0BCodeMirror-sizer\u9AD8\u5EA6\u6BD4\u7F16\u8F91\u6A21\u5F0F\u4E0B\u591A2px\uFF0C\u8BBE\u7F6EthyMinHeight\u4E3A46px\u9632\u6B62\u62D6\u62FD\u5230\u6700\u5C0F\u9AD8\u5EA6\u65F6\u53EA\u8BFB\u6A21\u5F0F\u4E0B\u51FA\u73B0\u6EDA\u52A8\u6761 -->\n<div\n thyResizable\n [thyMinHeight]=\"46\"\n [thyBounds]=\"resizeBounds\"\n [style.height.px]=\"resizeHeight\"\n (thyResize)=\"onResize($event)\"\n (thyResizeEnd)=\"onEndResize()\"\n class=\"resize-code-container\"\n [ngClass]=\"{ focus: isCollapsedAndNonReadonly, readonly: options.readOnly, active: isHightLight && isCollapsedAndNonReadonly }\"\n>\n <ng-codemirror\n *ngIf=\"startRenderCodemirror\"\n #codemirror\n contenteditable=\"false\"\n class=\"ng-codemirror-wrapper\"\n [ngStyle]=\"{ maxHeight: maxHeight > 0 ? maxHeight + 'px' : 'auto' }\"\n [options]=\"options\"\n [ngModel]=\"code\"\n [delayRefreshTime]=\"300\"\n (ngModelChange)=\"codeChange($event)\"\n (focusChange)=\"focusChange($event)\"\n [autoMaxHeight]=\"maxHeight\"\n >\n </ng-codemirror>\n <thy-resize-handle thyDirection=\"bottom\" class=\"code-resize-icon\" *ngIf=\"isCollapsedAndNonReadonly\"></thy-resize-handle>\n</div>\n\n<ng-template #toolbar>\n <thy-actions thySize=\"xxs\" thePreventDefault>\n <the-toolbar-dropdown\n [menus]=\"menus\"\n [toolbarItem]=\"activeLanguage\"\n [dropdownItemKey]=\"activeLanguage?.key\"\n [itemMousedownHandle]=\"onChangeLanguage\"\n >\n </the-toolbar-dropdown>\n <span class=\"auto-wrap d-flex align-items-center px-2 text-secondary\">\n <span>\u81EA\u52A8\u6362\u884C</span>\n <thy-switch\n class=\"auto-wrap-btn d-flex ml-1\"\n [(ngModel)]=\"options.lineWrapping\"\n (ngModelChange)=\"onChangeWrap($event)\"\n thySize=\"sm\"\n ></thy-switch>\n </span>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"copy\" thyTooltip=\"\u590D\u5236\" thyTooltipPlacement=\"top\" (click)=\"onCopy($event)\"></a>\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n thyActionIcon=\"trash\"\n thyTooltip=\"\u5220\u9664\"\n thyTooltipPlacement=\"top\"\n (click)=\"onDelete($event)\"\n ></a>\n </thy-actions>\n</ng-template>\n" }]
255
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ThyNotifyService }, { type: i2.TheContextService }, { type: i0.NgZone }, { type: i3.ThyPopover }, { type: i0.ViewContainerRef }, { type: i4.Overlay }], propDecorators: { toolbar: [{
255
+ ], template: "<!-- \u53EA\u8BFB\u6A21\u5F0F\u4E0BCodeMirror-sizer\u9AD8\u5EA6\u6BD4\u7F16\u8F91\u6A21\u5F0F\u4E0B\u591A2px\uFF0C\u8BBE\u7F6EthyMinHeight\u4E3A46px\u9632\u6B62\u62D6\u62FD\u5230\u6700\u5C0F\u9AD8\u5EA6\u65F6\u53EA\u8BFB\u6A21\u5F0F\u4E0B\u51FA\u73B0\u6EDA\u52A8\u6761 -->\n<div\n thyResizable\n [thyMinHeight]=\"46\"\n [thyBounds]=\"resizeBounds\"\n [style.height.px]=\"resizeHeight\"\n (thyResize)=\"onResize($event)\"\n (thyResizeEnd)=\"onEndResize()\"\n class=\"resize-code-container\"\n [ngClass]=\"{ focus: isCollapsedAndNonReadonly, readonly: options.readOnly, active: isHightLight && isCollapsedAndNonReadonly }\"\n>\n <ng-codemirror\n *ngIf=\"startRenderCodemirror\"\n #codemirror\n contenteditable=\"false\"\n class=\"ng-codemirror-wrapper\"\n [ngStyle]=\"{ maxHeight: maxHeight > 0 ? maxHeight + 'px' : 'auto' }\"\n [options]=\"options\"\n [ngModel]=\"code\"\n [delayRefreshTime]=\"300\"\n (ngModelChange)=\"codeChange($event)\"\n (focusChange)=\"focusChange($event)\"\n [autoMaxHeight]=\"maxHeight\"\n >\n </ng-codemirror>\n <thy-resize-handle thyDirection=\"bottom\" class=\"code-resize-icon\" *ngIf=\"isCollapsedAndNonReadonly\"></thy-resize-handle>\n</div>\n\n<ng-template #toolbar>\n <thy-actions thySize=\"xxs\" thePreventDefault>\n <the-toolbar-dropdown\n [menus]=\"menus\"\n [toolbarItem]=\"activeLanguage\"\n [dropdownItemKey]=\"activeLanguage?.key\"\n [itemMousedownHandle]=\"onChangeLanguage\"\n >\n </the-toolbar-dropdown>\n <span class=\"auto-wrap d-flex align-items-center px-2 text-secondary\">\n <span>\u81EA\u52A8\u6362\u884C</span>\n <thy-switch\n class=\"auto-wrap-btn d-flex ml-1\"\n [(ngModel)]=\"options.lineWrapping\"\n (ngModelChange)=\"onChangeWrap($event)\"\n thySize=\"sm\"\n ></thy-switch>\n </span>\n <a href=\"javascript:;\" thyAction thyActionIcon=\"copy\" thyTooltip=\"\u590D\u5236\" thyTooltipPlacement=\"top\" (click)=\"onCopy($event)\"></a>\n <thy-divider class=\"mr-2 ml-1 align-self-center\" [thyVertical]=\"true\" thyColor=\"light\"></thy-divider>\n <a\n href=\"javascript:;\"\n thyAction\n thyType=\"danger\"\n thyActionIcon=\"trash\"\n thyTooltip=\"\u5220\u9664\"\n thyTooltipPlacement=\"top\"\n (click)=\"onDelete($event)\"\n ></a>\n </thy-actions>\n</ng-template>\n" }]
256
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ThyNotifyService }, { type: i2.TheContextService }, { type: i0.NgZone }, { type: i3.ThyPopover }, { type: i4.Overlay }], propDecorators: { toolbar: [{
256
257
  type: ViewChild,
257
258
  args: ['toolbar', { read: TemplateRef, static: true }]
258
259
  }], codemirror: [{
@@ -262,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
262
263
  type: ViewChild,
263
264
  args: [TheToolbarDropdown, { read: TheToolbarDropdown, static: false }]
264
265
  }] } });
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvY29kZS9jb2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUtULFdBQVcsRUFDWCxTQUFTLEVBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUscUJBQXFCLEVBQWtCLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNE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QUM5QixjQUNXLElBQUksV0FDUDt3QkFDTCxJQUFJO3dCQUNKLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3FCQUM3QjtpUkFvQ0QsT0FBTztzQkFETixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekQsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUlyRSxlQUFlO3NCQURkLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29kZU1pcnJvckNvbXBvbmVudCwgQ29kZW1pcnJvck1vZHVsZSB9IGZyb20gJ25nLWNvZGVtaXJyb3InO1xuaW1wb3J0IHsgVGh5QWN0aW9uLCBUaHlBY3Rpb25zIH0gZnJvbSAnbmd4LXRldGh5cy9hY3Rpb24nO1xuaW1wb3J0IHsgVGh5RGl2aWRlciB9IGZyb20gJ25neC10ZXRoeXMvZGl2aWRlcic7XG5pbXBvcnQgeyBUaHlOb3RpZnlTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9ub3RpZnknO1xuaW1wb3J0IHsgVGh5UG9wb3ZlciwgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBUaHlSZXNpemFibGVEaXJlY3RpdmUsIFRoeVJlc2l6ZUV2ZW50LCBUaHlSZXNpemVIYW5kbGUgfSBmcm9tICduZ3gtdGV0aHlzL3Jlc2l6YWJsZSc7XG5pbXBvcnQgeyBUaHlTd2l0Y2ggfSBmcm9tICduZ3gtdGV0aHlzL3N3aXRjaCc7XG5pbXBvcnQgeyBUaHlUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy90b29sdGlwJztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVkaXRvciwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IsIFNsYXRlTW9kdWxlIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBUaGVQcmV2ZW50RGVmYXVsdERpcmVjdGl2ZSwgVGhlVG9vbGJhckRyb3Bkb3duIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDT0RFTUlSUk9SX1BBRERJTkdfVE9QLCBDT0RFX01PREVTLCBEcm9wZG93bk1vZGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgRGVmYXVsdFRvb2xiYXJJdGVtLCBUaGVCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGhlUXVlcmllcyB9IGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgY29weU5vZGUsIHRvcExlZnRQb3NpdGlvbiwgdXBkYXRlUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgaXNNb2JpbGVNb2RlLCBpc1ByaW50TW9kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1tb2RlJztcbmltcG9ydCB7IENvZGVFZGl0b3IgfSBmcm9tICcuL2NvZGUuZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkaXZbdGhlQ29kZV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2RlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLWNvZGUtY29udGFpbmVyJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE5nU3R5bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBTbGF0ZU1vZHVsZSxcbiAgICAgICAgQ29kZW1pcnJvck1vZHVsZSxcbiAgICAgICAgVGh5U3dpdGNoLFxuICAgICAgICBUaHlBY3Rpb24sXG4gICAgICAgIFRoeURpdmlkZXIsXG4gICAgICAgIFRoeUFjdGlvbnMsXG4gICAgICAgIFRoeVRvb2x0aXBEaXJlY3RpdmUsXG4gICAgICAgIFRoeVJlc2l6YWJsZURpcmVjdGl2ZSxcbiAgICAgICAgVGh5UmVzaXplSGFuZGxlLFxuICAgICAgICBUaGVUb29sYmFyRHJvcGRvd24sXG4gICAgICAgIFRoZVByZXZlbnREZWZhdWx0RGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVDb2RlIGV4dGVuZHMgVGhlQmFzZUVsZW1lbnQ8Q29kZUVsZW1lbnQsIEVkaXRvcj4gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgc3RhcnRSZW5kZXJDb2RlbWlycm9yID0gZmFsc2U7XG5cbiAgICBkcm9wZG93bk1vZGUgPSBEcm9wZG93bk1vZGU7XG5cbiAgICBtYXhIZWlnaHQgPSAwO1xuXG4gICAgbWVudXMgPSBDT0RFX01PREVTLm1hcChpdGVtID0+IHtcbiAgICAgICAgcmV0dXJuIHsga2V5OiBpdGVtLnZhbHVlLCBuYW1lOiBpdGVtLnNob3dOYW1lIH07XG4gICAgfSk7XG5cbiAgICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBpc0hpZ2h0TGlnaHQgPSBmYWxzZTtcblxuICAgIHJlc2l6ZUhlaWdodDogbnVtYmVyID0gbnVsbDtcblxuICAgIG9wdGlvbnMgPSB7XG4gICAgICAgIG1vZGU6IHRoaXMubWVudXNbMF0ua2V5LFxuICAgICAgICBsaW5lTnVtYmVyczogZmFsc2UsXG4gICAgICAgIHJlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgYXV0b2ZvY3VzOiBmYWxzZSxcbiAgICAgICAgbGluZVdpc2VDb3B5Q3V0OiB0cnVlLFxuICAgICAgICBsaW5lV3JhcHBpbmc6IGZhbHNlLFxuICAgICAgICBjdXJzb3JCbGlua1JhdGU6IDUwMFxuICAgIH07XG5cbiAgICBhY3RpdmVMYW5ndWFnZTogRGVmYXVsdFRvb2xiYXJJdGVtID0gdGhpcy5tZW51c1swXTtcblxuICAgIHJlc2l6ZUJvdW5kcyA9IG51bGw7XG5cbiAgICB0b29sYmFyUG9wb3ZlclJlZjogVGh5UG9wb3ZlclJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgndG9vbGJhcicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHRvb2xiYXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKCdjb2RlbWlycm9yJywgeyByZWFkOiBDb2RlTWlycm9yQ29tcG9uZW50LCBzdGF0aWM6IGZhbHNlIH0pXG4gICAgY29kZW1pcnJvcjogQ29kZU1pcnJvckNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVGhlVG9vbGJhckRyb3Bkb3duLCB7IHJlYWQ6IFRoZVRvb2xiYXJEcm9wZG93biwgc3RhdGljOiBmYWxzZSB9KVxuICAgIHRvb2xiYXJEcm9wZG93bjogVGhlVG9vbGJhckRyb3Bkb3duO1xuXG4gICAgZ2V0IGNvZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQuY29udGVudDtcbiAgICB9XG5cbiAgICBnZXQgaXNUb29sYmFyT3BlbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhclBvcG92ZXJSZWYgJiYgdGhpcy50b29sYmFyUG9wb3ZlclJlZi5nZXRPdmVybGF5UmVmKCkgJiYgdGhpcy50b29sYmFyUG9wb3ZlclJlZi5nZXRPdmVybGF5UmVmKCkuaGFzQXR0YWNoZWQoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHRoeU5vdGlmeVNlcnZpY2U6IFRoeU5vdGlmeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IFRoZUNvbnRleHRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHRoeVBvcG92ZXI6IFRoeVBvcG92ZXIsXG4gICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlKCkge1xuICAgICAgICBzdXBlci5vbkNvbnRleHRDaGFuZ2UoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSAmJiAhaXNNb2JpbGVNb2RlKHRoaXMuZWRpdG9yKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuVG9vbGJhcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVRvb2xiYXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJlYWRPbmx5ICE9PSB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VSZWFkb25seSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5tb2RlICE9PSB0aGlzLmVsZW1lbnQubGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZU1vZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubGluZVdyYXBwaW5nICE9PSB0aGlzLmVsZW1lbnQuYXV0b1dyYXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZUF1dG9XcmFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemVIZWlnaHQgIT09IHRoaXMuZWxlbWVudC5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZUhlaWdodCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdE1heEhlaWdodCgpO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0Jsb2NrT3BlcmF0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50aGUtY29kZS1ibG9jay1vcGVyYXRpb24nKT8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDb2RlbWlycm9yID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uZy1jb2RlbWlycm9yJyk/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNIaWdodExpZ2h0ID0gIWlzQ29kZW1pcnJvciAmJiAhaXNCbG9ja09wZXJhdGlvbjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgLy8gZGVsYXkgMjBtc1xuICAgICAgICAgICAgLy8gY2NvZGVtaXJyb3IgaXMgdG9vIHNsb3dcbiAgICAgICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSwgZGVsYXkoMjApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29kZW1pcnJvcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBlZGl0IG1vZGUgY2FuIG5vdCBkZWxheVxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29kZW1pcnJvcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvZGVtaXJyb3JGb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQm91bmRzID0ge1xuICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldEVkaXRhYmxlRWxlbWVudCgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0TWF4SGVpZ2h0KCkge1xuICAgICAgICB0aGlzLm1heEhlaWdodCA9IGlzUHJpbnRNb2RlKHRoaXMuZWRpdG9yKSA/IDAgOiAzNTAgLSBDT0RFTUlSUk9SX1BBRERJTkdfVE9QICogMjtcbiAgICB9XG5cbiAgICBvcGVuVG9vbGJhcigpIHtcbiAgICAgICAgaWYgKCFUaGVRdWVyaWVzLmlzR2xvYmFsQ29sbGFwc2VkKHRoaXMuZWRpdG9yKSB8fCB0aGlzLmlzVG9vbGJhck9wZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvb2xiYXJQb3BvdmVyUmVmID0gdGhpcy50aHlQb3BvdmVyLm9wZW4odGhpcy50b29sYmFyLCB7XG4gICAgICAgICAgICBvcmlnaW46IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogWyd0aGUtcGx1Z2luLXRvb2xiYXItcG9wb3ZlciddLFxuICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICBtYW51YWxDbG9zdXJlOiB0cnVlLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgaW5zaWRlQ2xvc2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgb3V0c2lkZUNsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLnRvb2xiYXJQb3BvdmVyUmVmPy5nZXRPdmVybGF5UmVmKCk7XG4gICAgICAgIHVwZGF0ZVBvcG92ZXJQb3NpdGlvbihvdmVybGF5UmVmLCBvcmlnaW4sIFt0b3BMZWZ0UG9zaXRpb25dKTtcbiAgICB9XG5cbiAgICBjbG9zZVRvb2xiYXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVG9vbGJhck9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMudG9vbGJhclBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlckNvZGVtaXJyb3IoKSB7XG4gICAgICAgIHRoaXMuc3RhcnRSZW5kZXJDb2RlbWlycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51c2VSZWFkb25seSgpO1xuICAgICAgICB0aGlzLnVzZU1vZGUoKTtcbiAgICAgICAgdGhpcy51c2VBdXRvV3JhcCgpO1xuICAgICAgICB0aGlzLnVzZUhlaWdodCgpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUNvZGVtaXJyb3JGb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSAmJiB0aGlzLmNvZGVtaXJyb3IgJiYgdGhpcy5jb2RlbWlycm9yLmVkaXRvciAmJiAhdGhpcy5jb2RlbWlycm9yLmVkaXRvci5oYXNGb2N1cygpKSB7XG4gICAgICAgICAgICAgICAgICAgIEFuZ3VsYXJFZGl0b3IuYmx1cih0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29kZW1pcnJvci5lZGl0b3IuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2RlbWlycm9yLmVkaXRvci5yZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvZGVDaGFuZ2UoJGV2ZW50KSB7XG4gICAgICAgIHRoaXMuaXNIaWdodExpZ2h0ID0gZmFsc2U7XG4gICAgICAgIENvZGVFZGl0b3Iuc2V0Q29kZUF0dHJpYnV0ZSh0aGlzLmVkaXRvciwgeyBjb250ZW50OiAkZXZlbnQgfSwgdGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbkRlbGV0ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBDb2RlRWRpdG9yLnJlbW92ZUNvZGUodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25Db3B5KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvcHlOb2RlKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQsIHRoaXMudGh5Tm90aWZ5U2VydmljZSwgdGhpcy5jb2RlbWlycm9yLmVkaXRvcik7XG4gICAgfVxuXG4gICAgZm9jdXNDaGFuZ2UoY29kZU1pcnJvckZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGNvZGVNaXJyb3JGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmlzSGlnaHRMaWdodCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaGFuZ2VMYW5ndWFnZSA9IGl0ZW0gPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgbW9kZTogaXRlbS5rZXkgfTtcbiAgICAgICAgdGhpcy5hY3RpdmVMYW5ndWFnZSA9IGl0ZW07XG4gICAgICAgIENvZGVFZGl0b3Iuc2V0Q29kZUF0dHJpYnV0ZSh0aGlzLmVkaXRvciwgeyBsYW5ndWFnZTogaXRlbS5rZXkgfSwgdGhpcy5lbGVtZW50KTtcbiAgICB9O1xuXG4gICAgdXNlTW9kZSgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIG1vZGU6IHRoaXMuZWxlbWVudC5sYW5ndWFnZSB9O1xuICAgICAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMubWVudXMuZmluZChpID0+IGkua2V5ID09PSB0aGlzLmVsZW1lbnQubGFuZ3VhZ2UpO1xuICAgICAgICBpZiAobWVudUl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTGFuZ3VhZ2UgPSBtZW51SXRlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVzZUF1dG9XcmFwKCkge1xuICAgICAgICBjb25zdCBpc1ByaW50ID0gaXNQcmludE1vZGUodGhpcy5lZGl0b3IpO1xuICAgICAgICBjb25zdCBsaW5lV3JhcHBpbmcgPSBpc1ByaW50ID8gdHJ1ZSA6IHRoaXMuZWxlbWVudC5hdXRvV3JhcCB8fCBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIGxpbmVXcmFwcGluZyB9O1xuICAgIH1cblxuICAgIHVzZUhlaWdodCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5oZWlnaHQgJiYgIWlzUHJpbnRNb2RlKHRoaXMuZWRpdG9yKSkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXNlUmVhZG9ubHkoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCByZWFkT25seTogdGhpcy5yZWFkb25seSwgY3Vyc29yQmxpbmtSYXRlOiB0aGlzLnJlYWRvbmx5ID8gLTEgOiA1MDAgfTtcbiAgICB9XG5cbiAgICBvblJlc2l6ZSh7IGhlaWdodCB9OiBUaHlSZXNpemVFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSBoZWlnaHQ7XG4gICAgfVxuXG4gICAgb25FbmRSZXNpemUoKSB7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQpKTtcbiAgICAgICAgQ29kZUVkaXRvci5zZXRDb2RlQXR0cmlidXRlKHRoaXMuZWRpdG9yLCB7IGhlaWdodDogdGhpcy5yZXNpemVIZWlnaHQgfSwgdGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZVdyYXAodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0hpZ2h0TGlnaHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIGxpbmVXcmFwcGluZzogdmFsdWUgfHwgZmFsc2UgfTtcbiAgICAgICAgQ29kZUVkaXRvci5zZXRDb2RlQXR0cmlidXRlKHRoaXMuZWRpdG9yLCB7IGF1dG9XcmFwOiB2YWx1ZSA/IHZhbHVlIDogbnVsbCB9LCB0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxzbGF0ZS1jaGlsZHJlbiBbY2hpbGRyZW5dPVwiY2hpbGRyZW5cIiBbY29udGV4dF09XCJjaGlsZHJlbkNvbnRleHRcIiBbdmlld0NvbnRleHRdPVwidmlld0NvbnRleHRcIj48L3NsYXRlLWNoaWxkcmVuPlxuXG48IS0tIOWPquivu+aooeW8j+S4i0NvZGVNaXJyb3Itc2l6ZXLpq5jluqbmr5TnvJbovpHmqKHlvI/kuIvlpJoycHjvvIzorr7nva50aHlNaW5IZWlnaHTkuLo0NnB46Ziy5q2i5ouW5ou95Yiw5pyA5bCP6auY5bqm5pe25Y+q6K+75qih5byP5LiL5Ye6546w5rua5Yqo5p2hICAtLT5cbjxkaXZcbiAgdGh5UmVzaXphYmxlXG4gIFt0aHlNaW5IZWlnaHRdPVwiNDZcIlxuICBbdGh5Qm91bmRzXT1cInJlc2l6ZUJvdW5kc1wiXG4gIFtzdHlsZS5oZWlnaHQucHhdPVwicmVzaXplSGVpZ2h0XCJcbiAgKHRoeVJlc2l6ZSk9XCJvblJlc2l6ZSgkZXZlbnQpXCJcbiAgKHRoeVJlc2l6ZUVuZCk9XCJvbkVuZFJlc2l6ZSgpXCJcbiAgY2xhc3M9XCJyZXNpemUtY29kZS1jb250YWluZXJcIlxuICBbbmdDbGFzc109XCJ7IGZvY3VzOiBpc0NvbGxhcHNlZEFuZE5vblJlYWRvbmx5LCByZWFkb25seTogb3B0aW9ucy5yZWFkT25seSwgYWN0aXZlOiBpc0hpZ2h0TGlnaHQgJiYgaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSB9XCJcbj5cbiAgPG5nLWNvZGVtaXJyb3JcbiAgICAqbmdJZj1cInN0YXJ0UmVuZGVyQ29kZW1pcnJvclwiXG4gICAgI2NvZGVtaXJyb3JcbiAgICBjb250ZW50ZWRpdGFibGU9XCJmYWxzZVwiXG4gICAgY2xhc3M9XCJuZy1jb2RlbWlycm9yLXdyYXBwZXJcIlxuICAgIFtuZ1N0eWxlXT1cInsgbWF4SGVpZ2h0OiBtYXhIZWlnaHQgPiAwID8gbWF4SGVpZ2h0ICsgJ3B4JyA6ICdhdXRvJyB9XCJcbiAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcbiAgICBbbmdNb2RlbF09XCJjb2RlXCJcbiAgICBbZGVsYXlSZWZyZXNoVGltZV09XCIzMDBcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cImNvZGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGZvY3VzQ2hhbmdlKT1cImZvY3VzQ2hhbmdlKCRldmVudClcIlxuICAgIFthdXRvTWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiXG4gID5cbiAgPC9uZy1jb2RlbWlycm9yPlxuICA8dGh5LXJlc2l6ZS1oYW5kbGUgdGh5RGlyZWN0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJjb2RlLXJlc2l6ZS1pY29uXCIgKm5nSWY9XCJpc0NvbGxhcHNlZEFuZE5vblJlYWRvbmx5XCI+PC90aHktcmVzaXplLWhhbmRsZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3Rvb2xiYXI+XG4gIDx0aHktYWN0aW9ucyB0aHlTaXplPVwieHhzXCIgdGhlUHJldmVudERlZmF1bHQ+XG4gICAgPHRoZS10b29sYmFyLWRyb3Bkb3duXG4gICAgICBbbWVudXNdPVwibWVudXNcIlxuICAgICAgW3Rvb2xiYXJJdGVtXT1cImFjdGl2ZUxhbmd1YWdlXCJcbiAgICAgIFtkcm9wZG93bkl0ZW1LZXldPVwiYWN0aXZlTGFuZ3VhZ2U/LmtleVwiXG4gICAgICBbaXRlbU1vdXNlZG93bkhhbmRsZV09XCJvbkNoYW5nZUxhbmd1YWdlXCJcbiAgICA+XG4gICAgPC90aGUtdG9vbGJhci1kcm9wZG93bj5cbiAgICA8c3BhbiBjbGFzcz1cImF1dG8td3JhcCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHB4LTIgdGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgIDxzcGFuPuiHquWKqOaNouihjDwvc3Bhbj5cbiAgICAgIDx0aHktc3dpdGNoXG4gICAgICAgIGNsYXNzPVwiYXV0by13cmFwLWJ0biBkLWZsZXggbWwtMVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwib3B0aW9ucy5saW5lV3JhcHBpbmdcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNoYW5nZVdyYXAoJGV2ZW50KVwiXG4gICAgICAgIHRoeVNpemU9XCJzbVwiXG4gICAgICA+PC90aHktc3dpdGNoPlxuICAgIDwvc3Bhbj5cbiAgICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgdGh5QWN0aW9uIHRoeUFjdGlvbkljb249XCJjb3B5XCIgdGh5VG9vbHRpcD1cIuWkjeWItlwiIHRoeVRvb2x0aXBQbGFjZW1lbnQ9XCJ0b3BcIiAoY2xpY2spPVwib25Db3B5KCRldmVudClcIj48L2E+XG4gICAgPHRoeS1kaXZpZGVyIGNsYXNzPVwibXItMiBtbC0xIGFsaWduLXNlbGYtY2VudGVyXCIgW3RoeVZlcnRpY2FsXT1cInRydWVcIiB0aHlDb2xvcj1cImxpZ2h0XCI+PC90aHktZGl2aWRlcj5cbiAgICA8YVxuICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICB0aHlBY3Rpb25cbiAgICAgIHRoeVR5cGU9XCJkYW5nZXJcIlxuICAgICAgdGh5QWN0aW9uSWNvbj1cInRyYXNoXCJcbiAgICAgIHRoeVRvb2x0aXA9XCLliKDpmaRcIlxuICAgICAgdGh5VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiXG4gICAgICAoY2xpY2spPVwib25EZWxldGUoJGV2ZW50KVwiXG4gICAgPjwvYT5cbiAgPC90aHktYWN0aW9ucz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9jb2RlL2NvZGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvY29kZS9jb2RlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUtULFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUscUJBQXFCLEVBQWtCLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNE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SSxXQUNQO3dCQUNMLHFCQUFxQjt3QkFDckIsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3FCQUM3QjtrUEFvQ0QsT0FBTztzQkFETixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJekQsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUlyRSxlQUFlO3NCQURkLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvZGVNaXJyb3JDb21wb25lbnQsIENvZGVtaXJyb3JNb2R1bGUgfSBmcm9tICduZy1jb2RlbWlycm9yJztcbmltcG9ydCB7IFRoeUFjdGlvbiwgVGh5QWN0aW9ucyB9IGZyb20gJ25neC10ZXRoeXMvYWN0aW9uJztcbmltcG9ydCB7IFRoeURpdmlkZXIgfSBmcm9tICduZ3gtdGV0aHlzL2RpdmlkZXInO1xuaW1wb3J0IHsgVGh5Tm90aWZ5U2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvbm90aWZ5JztcbmltcG9ydCB7IFRoeVBvcG92ZXIsIFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgVGh5UmVzaXphYmxlRGlyZWN0aXZlLCBUaHlSZXNpemVFdmVudCwgVGh5UmVzaXplSGFuZGxlIH0gZnJvbSAnbmd4LXRldGh5cy9yZXNpemFibGUnO1xuaW1wb3J0IHsgVGh5U3dpdGNoIH0gZnJvbSAnbmd4LXRldGh5cy9zd2l0Y2gnO1xuaW1wb3J0IHsgVGh5VG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvdG9vbHRpcCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFZGl0b3IsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBTbGF0ZU1vZHVsZSB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGhlVG9vbGJhckRyb3Bkb3duIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUaGVQcmV2ZW50RGVmYXVsdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYWN0aW9uL3ByZXZlbnQtZGVmYXVsdCc7XG5pbXBvcnQgeyBDT0RFTUlSUk9SX1BBRERJTkdfVE9QLCBDT0RFX01PREVTLCBEcm9wZG93bk1vZGUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ29kZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgRGVmYXVsdFRvb2xiYXJJdGVtLCBUaGVCYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGhlUXVlcmllcyB9IGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgY29weU5vZGUsIHRvcExlZnRQb3NpdGlvbiwgdXBkYXRlUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgaXNNb2JpbGVNb2RlLCBpc1ByaW50TW9kZSB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1tb2RlJztcbmltcG9ydCB7IENvZGVFZGl0b3IgfSBmcm9tICcuL2NvZGUuZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkaXZbdGhlQ29kZV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2RlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLWNvZGUtY29udGFpbmVyJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRoeVJlc2l6YWJsZURpcmVjdGl2ZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgTmdTdHlsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFNsYXRlTW9kdWxlLFxuICAgICAgICBDb2RlbWlycm9yTW9kdWxlLFxuICAgICAgICBUaHlTd2l0Y2gsXG4gICAgICAgIFRoeUFjdGlvbixcbiAgICAgICAgVGh5RGl2aWRlcixcbiAgICAgICAgVGh5QWN0aW9ucyxcbiAgICAgICAgVGh5VG9vbHRpcERpcmVjdGl2ZSxcbiAgICAgICAgVGh5UmVzaXphYmxlRGlyZWN0aXZlLFxuICAgICAgICBUaHlSZXNpemVIYW5kbGUsXG4gICAgICAgIFRoZVRvb2xiYXJEcm9wZG93bixcbiAgICAgICAgVGhlUHJldmVudERlZmF1bHREaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZUNvZGUgZXh0ZW5kcyBUaGVCYXNlRWxlbWVudDxDb2RlRWxlbWVudCwgRWRpdG9yPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBzdGFydFJlbmRlckNvZGVtaXJyb3IgPSBmYWxzZTtcblxuICAgIGRyb3Bkb3duTW9kZSA9IERyb3Bkb3duTW9kZTtcblxuICAgIG1heEhlaWdodCA9IDA7XG5cbiAgICBtZW51cyA9IENPREVfTU9ERVMubWFwKGl0ZW0gPT4ge1xuICAgICAgICByZXR1cm4geyBrZXk6IGl0ZW0udmFsdWUsIG5hbWU6IGl0ZW0uc2hvd05hbWUgfTtcbiAgICB9KTtcblxuICAgIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGlzSGlnaHRMaWdodCA9IGZhbHNlO1xuXG4gICAgcmVzaXplSGVpZ2h0OiBudW1iZXIgPSBudWxsO1xuXG4gICAgb3B0aW9ucyA9IHtcbiAgICAgICAgbW9kZTogdGhpcy5tZW51c1swXS5rZXksXG4gICAgICAgIGxpbmVOdW1iZXJzOiBmYWxzZSxcbiAgICAgICAgcmVhZE9ubHk6IGZhbHNlLFxuICAgICAgICBhdXRvZm9jdXM6IGZhbHNlLFxuICAgICAgICBsaW5lV2lzZUNvcHlDdXQ6IHRydWUsXG4gICAgICAgIGxpbmVXcmFwcGluZzogZmFsc2UsXG4gICAgICAgIGN1cnNvckJsaW5rUmF0ZTogNTAwXG4gICAgfTtcblxuICAgIGFjdGl2ZUxhbmd1YWdlOiBEZWZhdWx0VG9vbGJhckl0ZW0gPSB0aGlzLm1lbnVzWzBdO1xuXG4gICAgcmVzaXplQm91bmRzID0gbnVsbDtcblxuICAgIHRvb2xiYXJQb3BvdmVyUmVmOiBUaHlQb3BvdmVyUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKCd0b29sYmFyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgdG9vbGJhcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvZGVtaXJyb3InLCB7IHJlYWQ6IENvZGVNaXJyb3JDb21wb25lbnQsIHN0YXRpYzogZmFsc2UgfSlcbiAgICBjb2RlbWlycm9yOiBDb2RlTWlycm9yQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUaGVUb29sYmFyRHJvcGRvd24sIHsgcmVhZDogVGhlVG9vbGJhckRyb3Bkb3duLCBzdGF0aWM6IGZhbHNlIH0pXG4gICAgdG9vbGJhckRyb3Bkb3duOiBUaGVUb29sYmFyRHJvcGRvd247XG5cbiAgICBnZXQgY29kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5jb250ZW50O1xuICAgIH1cblxuICAgIGdldCBpc1Rvb2xiYXJPcGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyUG9wb3ZlclJlZiAmJiB0aGlzLnRvb2xiYXJQb3BvdmVyUmVmLmdldE92ZXJsYXlSZWYoKSAmJiB0aGlzLnRvb2xiYXJQb3BvdmVyUmVmLmdldE92ZXJsYXlSZWYoKS5oYXNBdHRhY2hlZCgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdGh5Tm90aWZ5U2VydmljZTogVGh5Tm90aWZ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogVGhlQ29udGV4dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgdGh5UG9wb3ZlcjogVGh5UG9wb3ZlcixcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlKCkge1xuICAgICAgICBzdXBlci5vbkNvbnRleHRDaGFuZ2UoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSAmJiAhaXNNb2JpbGVNb2RlKHRoaXMuZWRpdG9yKSkge1xuICAgICAgICAgICAgdGhpcy5vcGVuVG9vbGJhcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVRvb2xiYXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJlYWRPbmx5ICE9PSB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VSZWFkb25seSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5tb2RlICE9PSB0aGlzLmVsZW1lbnQubGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZU1vZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubGluZVdyYXBwaW5nICE9PSB0aGlzLmVsZW1lbnQuYXV0b1dyYXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZUF1dG9XcmFwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemVIZWlnaHQgIT09IHRoaXMuZWxlbWVudC5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZUhlaWdodCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuaW5pdE1heEhlaWdodCgpO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0Jsb2NrT3BlcmF0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50aGUtY29kZS1ibG9jay1vcGVyYXRpb24nKT8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDb2RlbWlycm9yID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uZy1jb2RlbWlycm9yJyk/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNIaWdodExpZ2h0ID0gIWlzQ29kZW1pcnJvciAmJiAhaXNCbG9ja09wZXJhdGlvbjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgLy8gZGVsYXkgMjBtc1xuICAgICAgICAgICAgLy8gY2NvZGVtaXJyb3IgaXMgdG9vIHNsb3dcbiAgICAgICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSwgZGVsYXkoMjApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29kZW1pcnJvcigpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBlZGl0IG1vZGUgY2FuIG5vdCBkZWxheVxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyQ29kZW1pcnJvcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvZGVtaXJyb3JGb2N1cygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQm91bmRzID0ge1xuICAgICAgICAgICAgICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldEVkaXRhYmxlRWxlbWVudCgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0TWF4SGVpZ2h0KCkge1xuICAgICAgICB0aGlzLm1heEhlaWdodCA9IGlzUHJpbnRNb2RlKHRoaXMuZWRpdG9yKSA/IDAgOiAzNTAgLSBDT0RFTUlSUk9SX1BBRERJTkdfVE9QICogMjtcbiAgICB9XG5cbiAgICBvcGVuVG9vbGJhcigpIHtcbiAgICAgICAgaWYgKCFUaGVRdWVyaWVzLmlzR2xvYmFsQ29sbGFwc2VkKHRoaXMuZWRpdG9yKSB8fCB0aGlzLmlzVG9vbGJhck9wZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvb2xiYXJQb3BvdmVyUmVmID0gdGhpcy50aHlQb3BvdmVyLm9wZW4odGhpcy50b29sYmFyLCB7XG4gICAgICAgICAgICBvcmlnaW46IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogWyd0aGUtcGx1Z2luLXRvb2xiYXItcG9wb3ZlciddLFxuICAgICAgICAgICAgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICBtYW51YWxDbG9zdXJlOiB0cnVlLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgaW5zaWRlQ2xvc2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgb3V0c2lkZUNsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLnRvb2xiYXJQb3BvdmVyUmVmPy5nZXRPdmVybGF5UmVmKCk7XG4gICAgICAgIHVwZGF0ZVBvcG92ZXJQb3NpdGlvbihvdmVybGF5UmVmLCBvcmlnaW4sIFt0b3BMZWZ0UG9zaXRpb25dKTtcbiAgICB9XG5cbiAgICBjbG9zZVRvb2xiYXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVG9vbGJhck9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMudG9vbGJhclBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlckNvZGVtaXJyb3IoKSB7XG4gICAgICAgIHRoaXMuc3RhcnRSZW5kZXJDb2RlbWlycm9yID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51c2VSZWFkb25seSgpO1xuICAgICAgICB0aGlzLnVzZU1vZGUoKTtcbiAgICAgICAgdGhpcy51c2VBdXRvV3JhcCgpO1xuICAgICAgICB0aGlzLnVzZUhlaWdodCgpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUNvZGVtaXJyb3JGb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWRBbmROb25SZWFkb25seSAmJiB0aGlzLmNvZGVtaXJyb3IgJiYgdGhpcy5jb2RlbWlycm9yLmVkaXRvciAmJiAhdGhpcy5jb2RlbWlycm9yLmVkaXRvci5oYXNGb2N1cygpKSB7XG4gICAgICAgICAgICAgICAgICAgIEFuZ3VsYXJFZGl0b3IuYmx1cih0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29kZW1pcnJvci5lZGl0b3IuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2RlbWlycm9yLmVkaXRvci5yZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvZGVDaGFuZ2UoJGV2ZW50KSB7XG4gICAgICAgIHRoaXMuaXNIaWdodExpZ2h0ID0gZmFsc2U7XG4gICAgICAgIENvZGVFZGl0b3Iuc2V0Q29kZUF0dHJpYnV0ZSh0aGlzLmVkaXRvciwgeyBjb250ZW50OiAkZXZlbnQgfSwgdGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbkRlbGV0ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBDb2RlRWRpdG9yLnJlbW92ZUNvZGUodGhpcy5lZGl0b3IsIHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgb25Db3B5KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvcHlOb2RlKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQsIHRoaXMudGh5Tm90aWZ5U2VydmljZSwgdGhpcy5jb2RlbWlycm9yLmVkaXRvcik7XG4gICAgfVxuXG4gICAgZm9jdXNDaGFuZ2UoY29kZU1pcnJvckZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGNvZGVNaXJyb3JGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmlzSGlnaHRMaWdodCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaGFuZ2VMYW5ndWFnZSA9IGl0ZW0gPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgbW9kZTogaXRlbS5rZXkgfTtcbiAgICAgICAgdGhpcy5hY3RpdmVMYW5ndWFnZSA9IGl0ZW07XG4gICAgICAgIENvZGVFZGl0b3Iuc2V0Q29kZUF0dHJpYnV0ZSh0aGlzLmVkaXRvciwgeyBsYW5ndWFnZTogaXRlbS5rZXkgfSwgdGhpcy5lbGVtZW50KTtcbiAgICB9O1xuXG4gICAgdXNlTW9kZSgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIG1vZGU6IHRoaXMuZWxlbWVudC5sYW5ndWFnZSB9O1xuICAgICAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMubWVudXMuZmluZChpID0+IGkua2V5ID09PSB0aGlzLmVsZW1lbnQubGFuZ3VhZ2UpO1xuICAgICAgICBpZiAobWVudUl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlTGFuZ3VhZ2UgPSBtZW51SXRlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVzZUF1dG9XcmFwKCkge1xuICAgICAgICBjb25zdCBpc1ByaW50ID0gaXNQcmludE1vZGUodGhpcy5lZGl0b3IpO1xuICAgICAgICBjb25zdCBsaW5lV3JhcHBpbmcgPSBpc1ByaW50ID8gdHJ1ZSA6IHRoaXMuZWxlbWVudC5hdXRvV3JhcCB8fCBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIGxpbmVXcmFwcGluZyB9O1xuICAgIH1cblxuICAgIHVzZUhlaWdodCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC5oZWlnaHQgJiYgIWlzUHJpbnRNb2RlKHRoaXMuZWRpdG9yKSkge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLmVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXNlUmVhZG9ubHkoKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHsgLi4udGhpcy5vcHRpb25zLCByZWFkT25seTogdGhpcy5yZWFkb25seSwgY3Vyc29yQmxpbmtSYXRlOiB0aGlzLnJlYWRvbmx5ID8gLTEgOiA1MDAgfTtcbiAgICB9XG5cbiAgICBvblJlc2l6ZSh7IGhlaWdodCB9OiBUaHlSZXNpemVFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSBoZWlnaHQ7XG4gICAgfVxuXG4gICAgb25FbmRSZXNpemUoKSB7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KHRoaXMuZWRpdG9yLCBBbmd1bGFyRWRpdG9yLmZpbmRQYXRoKHRoaXMuZWRpdG9yLCB0aGlzLmVsZW1lbnQpKTtcbiAgICAgICAgQ29kZUVkaXRvci5zZXRDb2RlQXR0cmlidXRlKHRoaXMuZWRpdG9yLCB7IGhlaWdodDogdGhpcy5yZXNpemVIZWlnaHQgfSwgdGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZVdyYXAodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0hpZ2h0TGlnaHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi50aGlzLm9wdGlvbnMsIGxpbmVXcmFwcGluZzogdmFsdWUgfHwgZmFsc2UgfTtcbiAgICAgICAgQ29kZUVkaXRvci5zZXRDb2RlQXR0cmlidXRlKHRoaXMuZWRpdG9yLCB7IGF1dG9XcmFwOiB2YWx1ZSA/IHZhbHVlIDogbnVsbCB9LCB0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjwhLS0g5Y+q6K+75qih5byP5LiLQ29kZU1pcnJvci1zaXplcumrmOW6puavlOe8lui+keaooeW8j+S4i+WkmjJweO+8jOiuvue9rnRoeU1pbkhlaWdodOS4ujQ2cHjpmLLmraLmi5bmi73liLDmnIDlsI/pq5jluqbml7blj6ror7vmqKHlvI/kuIvlh7rnjrDmu5rliqjmnaEgIC0tPlxuPGRpdlxuICB0aHlSZXNpemFibGVcbiAgW3RoeU1pbkhlaWdodF09XCI0NlwiXG4gIFt0aHlCb3VuZHNdPVwicmVzaXplQm91bmRzXCJcbiAgW3N0eWxlLmhlaWdodC5weF09XCJyZXNpemVIZWlnaHRcIlxuICAodGh5UmVzaXplKT1cIm9uUmVzaXplKCRldmVudClcIlxuICAodGh5UmVzaXplRW5kKT1cIm9uRW5kUmVzaXplKClcIlxuICBjbGFzcz1cInJlc2l6ZS1jb2RlLWNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cInsgZm9jdXM6IGlzQ29sbGFwc2VkQW5kTm9uUmVhZG9ubHksIHJlYWRvbmx5OiBvcHRpb25zLnJlYWRPbmx5LCBhY3RpdmU6IGlzSGlnaHRMaWdodCAmJiBpc0NvbGxhcHNlZEFuZE5vblJlYWRvbmx5IH1cIlxuPlxuICA8bmctY29kZW1pcnJvclxuICAgICpuZ0lmPVwic3RhcnRSZW5kZXJDb2RlbWlycm9yXCJcbiAgICAjY29kZW1pcnJvclxuICAgIGNvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCJcbiAgICBjbGFzcz1cIm5nLWNvZGVtaXJyb3Itd3JhcHBlclwiXG4gICAgW25nU3R5bGVdPVwieyBtYXhIZWlnaHQ6IG1heEhlaWdodCA+IDAgPyBtYXhIZWlnaHQgKyAncHgnIDogJ2F1dG8nIH1cIlxuICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxuICAgIFtuZ01vZGVsXT1cImNvZGVcIlxuICAgIFtkZWxheVJlZnJlc2hUaW1lXT1cIjMwMFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiY29kZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoZm9jdXNDaGFuZ2UpPVwiZm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2F1dG9NYXhIZWlnaHRdPVwibWF4SGVpZ2h0XCJcbiAgPlxuICA8L25nLWNvZGVtaXJyb3I+XG4gIDx0aHktcmVzaXplLWhhbmRsZSB0aHlEaXJlY3Rpb249XCJib3R0b21cIiBjbGFzcz1cImNvZGUtcmVzaXplLWljb25cIiAqbmdJZj1cImlzQ29sbGFwc2VkQW5kTm9uUmVhZG9ubHlcIj48L3RoeS1yZXNpemUtaGFuZGxlPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cbiAgPHRoeS1hY3Rpb25zIHRoeVNpemU9XCJ4eHNcIiB0aGVQcmV2ZW50RGVmYXVsdD5cbiAgICA8dGhlLXRvb2xiYXItZHJvcGRvd25cbiAgICAgIFttZW51c109XCJtZW51c1wiXG4gICAgICBbdG9vbGJhckl0ZW1dPVwiYWN0aXZlTGFuZ3VhZ2VcIlxuICAgICAgW2Ryb3Bkb3duSXRlbUtleV09XCJhY3RpdmVMYW5ndWFnZT8ua2V5XCJcbiAgICAgIFtpdGVtTW91c2Vkb3duSGFuZGxlXT1cIm9uQ2hhbmdlTGFuZ3VhZ2VcIlxuICAgID5cbiAgICA8L3RoZS10b29sYmFyLWRyb3Bkb3duPlxuICAgIDxzcGFuIGNsYXNzPVwiYXV0by13cmFwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHgtMiB0ZXh0LXNlY29uZGFyeVwiPlxuICAgICAgPHNwYW4+6Ieq5Yqo5o2i6KGMPC9zcGFuPlxuICAgICAgPHRoeS1zd2l0Y2hcbiAgICAgICAgY2xhc3M9XCJhdXRvLXdyYXAtYnRuIGQtZmxleCBtbC0xXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJvcHRpb25zLmxpbmVXcmFwcGluZ1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ2hhbmdlV3JhcCgkZXZlbnQpXCJcbiAgICAgICAgdGh5U2l6ZT1cInNtXCJcbiAgICAgID48L3RoeS1zd2l0Y2g+XG4gICAgPC9zcGFuPlxuICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiB0aHlBY3Rpb24gdGh5QWN0aW9uSWNvbj1cImNvcHlcIiB0aHlUb29sdGlwPVwi5aSN5Yi2XCIgdGh5VG9vbHRpcFBsYWNlbWVudD1cInRvcFwiIChjbGljayk9XCJvbkNvcHkoJGV2ZW50KVwiPjwvYT5cbiAgICA8dGh5LWRpdmlkZXIgY2xhc3M9XCJtci0yIG1sLTEgYWxpZ24tc2VsZi1jZW50ZXJcIiBbdGh5VmVydGljYWxdPVwidHJ1ZVwiIHRoeUNvbG9yPVwibGlnaHRcIj48L3RoeS1kaXZpZGVyPlxuICAgIDxhXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgIHRoeUFjdGlvblxuICAgICAgdGh5VHlwZT1cImRhbmdlclwiXG4gICAgICB0aHlBY3Rpb25JY29uPVwidHJhc2hcIlxuICAgICAgdGh5VG9vbHRpcD1cIuWIoOmZpFwiXG4gICAgICB0aHlUb29sdGlwUGxhY2VtZW50PVwidG9wXCJcbiAgICAgIChjbGljayk9XCJvbkRlbGV0ZSgkZXZlbnQpXCJcbiAgICA+PC9hPlxuICA8L3RoeS1hY3Rpb25zPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Editor, Node, Range, Transforms } from 'slate';
1
+ import { Editor, Element, Node, Range, Transforms } from 'slate';
2
2
  import { DEFAULT_LANGUAGE, ElementKinds } from '../../constants';
3
3
  import { TheQueries } from '../../queries';
4
4
  import { TheTransforms } from '../../transforms';
@@ -19,7 +19,7 @@ export const CodeEditor = {
19
19
  from: startPoint.path,
20
20
  to: endPoint.path,
21
21
  pass: ([node, path]) => {
22
- return Editor.isBlock(editor, node);
22
+ return Element.isElement(node) && Editor.isBlock(editor, node);
23
23
  }
24
24
  });
25
25
  const elementEntrys = Array.from(elementEntryIterator);
@@ -56,4 +56,4 @@ export const CodeEditor = {
56
56
  }
57
57
  }
58
58
  };
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9jb2RlL2NvZGUuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN0QixnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsS0FBMkIsRUFBRSxPQUFxQjtRQUMvRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbEQsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNMLENBQUM7SUFDRCxVQUFVLENBQUMsTUFBYztRQUNyQixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEUsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQy9DLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtZQUNyQixFQUFFLEVBQUUsUUFBUSxDQUFDLElBQUk7WUFDakIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDbkIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4QyxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RixJQUFJLGVBQWUsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqRixJQUFJLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQyxPQUFPLE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3BGLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNQLE1BQU0sV0FBVyxHQUFnQjtnQkFDN0IsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO2dCQUN2QixPQUFPO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUNoQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUMzQixDQUFDO1lBQ0YsYUFBYSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEQsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLFdBQVcsR0FBZ0I7Z0JBQzdCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtnQkFDdkIsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLGdCQUFnQixDQUFDLEtBQUs7Z0JBQ2hDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzNCLENBQUM7WUFDRixhQUFhLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxNQUFjLEVBQUUsSUFBa0I7UUFDekMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxDQUFDO1lBQ0osYUFBYSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNMLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBOb2RlLCBSYW5nZSwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IERFRkFVTFRfTEFOR1VBR0UsIEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb2RlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBUaGVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBUaGVUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBDb2RlRWRpdG9yID0ge1xuICAgIHNldENvZGVBdHRyaWJ1dGUoZWRpdG9yOiBFZGl0b3IsIHByb3BzOiBQYXJ0aWFsPENvZGVFbGVtZW50PiwgZWxlbWVudD86IENvZGVFbGVtZW50KSB7XG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXROb2RlQnlUeXBlKGVkaXRvciwgcHJvcHMsIEVsZW1lbnRLaW5kcy5jb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVRdWVyaWVzLmZpbmRQYXRoKGVkaXRvciwgZWxlbWVudCk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgcHJvcHMsIHsgYXQ6IHBhdGggfSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGluc2VydENvZGUoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RDb250ZW50ID0gRWRpdG9yLnN0cmluZyhlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBbc3RhcnRQb2ludCwgZW5kUG9pbnRdID0gUmFuZ2UuZWRnZXMoZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRFbnRyeUl0ZXJhdG9yID0gTm9kZS5lbGVtZW50cyhlZGl0b3IsIHtcbiAgICAgICAgICAgIGZyb206IHN0YXJ0UG9pbnQucGF0aCxcbiAgICAgICAgICAgIHRvOiBlbmRQb2ludC5wYXRoLFxuICAgICAgICAgICAgcGFzczogKFtub2RlLCBwYXRoXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBFZGl0b3IuaXNCbG9jayhlZGl0b3IsIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZWxlbWVudEVudHJ5cyA9IEFycmF5LmZyb20oZWxlbWVudEVudHJ5SXRlcmF0b3IpO1xuICAgICAgICBjb25zdCBpc0FsbFBhcmFncmFwaCA9IGVsZW1lbnRFbnRyeXMuZXZlcnkoaXRlbSA9PiBpdGVtWzBdLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgpO1xuICAgICAgICBpZiAoaXNTZWxlY3RDb250ZW50ICYmIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgubGVuZ3RoID09PSAyICYmIGlzQWxsUGFyYWdyYXBoKSB7XG4gICAgICAgICAgICBsZXQgY29udGVudCA9IGVsZW1lbnRFbnRyeXMucmVkdWNlKChjb250ZW50LCBbZWxlbWVudCwgcGF0aF0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IE5vZGUuc3RyaW5nKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50ICsgKGVsZW1lbnRFbnRyeXMubGVuZ3RoIC0gMSA9PT0gaW5kZXggPyBgJHt0ZXh0fWAgOiBgJHt0ZXh0fVxcbmApO1xuICAgICAgICAgICAgfSwgJycpO1xuICAgICAgICAgICAgY29uc3QgY29kZUVsZW1lbnQ6IENvZGVFbGVtZW50ID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5jb2RlLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2U6IERFRkFVTFRfTEFOR1VBR0UudmFsdWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5pbnNlcnRFbGVtZW50cyhlZGl0b3IsIGNvZGVFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVFbGVtZW50OiBDb2RlRWxlbWVudCA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMuY29kZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgICAgICAgICAgICBsYW5ndWFnZTogREVGQVVMVF9MQU5HVUFHRS52YWx1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdGV4dDogJycgfV1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLmluc2VydEVsZW1lbnRzKGVkaXRvciwgY29kZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICByZW1vdmVDb2RlKGVkaXRvcjogRWRpdG9yLCBjb2RlPzogQ29kZUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGNvZGUpIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuZGVsZXRlRWxlbWVudChlZGl0b3IsIGNvZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5kZWxldGVOb2RlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmNvZGUpO1xuICAgICAgICB9XG4gICAgfVxufTtcbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9jb2RlL2NvZGUuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEIsZ0JBQWdCLENBQUMsTUFBYyxFQUFFLEtBQTJCLEVBQUUsT0FBcUI7UUFDL0UsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRSxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2xELFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVSxDQUFDLE1BQWM7UUFDckIsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUMvQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDckIsRUFBRSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1lBQ2pCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ25CLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuRSxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RixJQUFJLGVBQWUsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqRixJQUFJLE9BQU8sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQyxPQUFPLE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ3BGLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNQLE1BQU0sV0FBVyxHQUFnQjtnQkFDN0IsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO2dCQUN2QixPQUFPO2dCQUNQLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO2dCQUNoQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUMzQixDQUFDO1lBQ0YsYUFBYSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEQsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLFdBQVcsR0FBZ0I7Z0JBQzdCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtnQkFDdkIsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLGdCQUFnQixDQUFDLEtBQUs7Z0JBQ2hDLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzNCLENBQUM7WUFDRixhQUFhLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0wsQ0FBQztJQUNELFVBQVUsQ0FBQyxNQUFjLEVBQUUsSUFBa0I7UUFDekMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxDQUFDO1lBQ0osYUFBYSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNMLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBOb2RlLCBSYW5nZSwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IERFRkFVTFRfTEFOR1VBR0UsIEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb2RlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBUaGVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBUaGVUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBDb2RlRWRpdG9yID0ge1xuICAgIHNldENvZGVBdHRyaWJ1dGUoZWRpdG9yOiBFZGl0b3IsIHByb3BzOiBQYXJ0aWFsPENvZGVFbGVtZW50PiwgZWxlbWVudD86IENvZGVFbGVtZW50KSB7XG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXROb2RlQnlUeXBlKGVkaXRvciwgcHJvcHMsIEVsZW1lbnRLaW5kcy5jb2RlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVRdWVyaWVzLmZpbmRQYXRoKGVkaXRvciwgZWxlbWVudCk7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgcHJvcHMsIHsgYXQ6IHBhdGggfSk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGluc2VydENvZGUoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RDb250ZW50ID0gRWRpdG9yLnN0cmluZyhlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBbc3RhcnRQb2ludCwgZW5kUG9pbnRdID0gUmFuZ2UuZWRnZXMoZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRFbnRyeUl0ZXJhdG9yID0gTm9kZS5lbGVtZW50cyhlZGl0b3IsIHtcbiAgICAgICAgICAgIGZyb206IHN0YXJ0UG9pbnQucGF0aCxcbiAgICAgICAgICAgIHRvOiBlbmRQb2ludC5wYXRoLFxuICAgICAgICAgICAgcGFzczogKFtub2RlLCBwYXRoXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJiBFZGl0b3IuaXNCbG9jayhlZGl0b3IsIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZWxlbWVudEVudHJ5cyA9IEFycmF5LmZyb20oZWxlbWVudEVudHJ5SXRlcmF0b3IpO1xuICAgICAgICBjb25zdCBpc0FsbFBhcmFncmFwaCA9IGVsZW1lbnRFbnRyeXMuZXZlcnkoaXRlbSA9PiBpdGVtWzBdLnR5cGUgPT09IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgpO1xuICAgICAgICBpZiAoaXNTZWxlY3RDb250ZW50ICYmIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgubGVuZ3RoID09PSAyICYmIGlzQWxsUGFyYWdyYXBoKSB7XG4gICAgICAgICAgICBsZXQgY29udGVudCA9IGVsZW1lbnRFbnRyeXMucmVkdWNlKChjb250ZW50LCBbZWxlbWVudCwgcGF0aF0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IE5vZGUuc3RyaW5nKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50ICsgKGVsZW1lbnRFbnRyeXMubGVuZ3RoIC0gMSA9PT0gaW5kZXggPyBgJHt0ZXh0fWAgOiBgJHt0ZXh0fVxcbmApO1xuICAgICAgICAgICAgfSwgJycpO1xuICAgICAgICAgICAgY29uc3QgY29kZUVsZW1lbnQ6IENvZGVFbGVtZW50ID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IEVsZW1lbnRLaW5kcy5jb2RlLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgbGFuZ3VhZ2U6IERFRkFVTFRfTEFOR1VBR0UudmFsdWUsXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5pbnNlcnRFbGVtZW50cyhlZGl0b3IsIGNvZGVFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNvZGVFbGVtZW50OiBDb2RlRWxlbWVudCA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMuY29kZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgICAgICAgICAgICBsYW5ndWFnZTogREVGQVVMVF9MQU5HVUFHRS52YWx1ZSxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdGV4dDogJycgfV1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLmluc2VydEVsZW1lbnRzKGVkaXRvciwgY29kZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICByZW1vdmVDb2RlKGVkaXRvcjogRWRpdG9yLCBjb2RlPzogQ29kZUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKGNvZGUpIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuZGVsZXRlRWxlbWVudChlZGl0b3IsIGNvZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5kZWxldGVOb2RlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmNvZGUpO1xuICAgICAgICB9XG4gICAgfVxufTtcbiJdfQ==
@@ -76,10 +76,10 @@ export class TheColorToolbarItem extends TheBaseToolbarItem {
76
76
  AngularEditor.focus(this.editor);
77
77
  });
78
78
  }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TheColorToolbarItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: TheColorToolbarItem, isStandalone: true, selector: "the-color-toolbar-item", host: { classAttribute: "the-color-toolbar-item" }, usesInheritance: true, ngImport: i0, template: "<thy-actions\n class=\"d-flex p-0\"\n thySize=\"zero\"\n thyTooltipPlacement=\"top\"\n [thyTooltip]=\"toolbarItem.name\"\n [ngClass]=\"{ 'thy-default-picker-active': pickerActive }\"\n>\n <a href=\"javascript:;\" class=\"color\" thyAction (mousedown)=\"selectColor($event)\">\n <thy-icon\n thyIconType=\"twotone\"\n [thyIconName]=\"toolbarItem.icon\"\n [thyTwotoneColor]=\"toolbarItem.key === 'color' ? lastTextColor : lastBackgroundColor\"\n (mousedown)=\"selectColor($event)\"\n ></thy-icon>\n </a>\n <a\n class=\"pl-0 pr-0 caret-down\"\n href=\"javascript:;\"\n thyAction\n thyColorPicker\n thyPlacement=\"bottomLeft\"\n [(ngModel)]=\"selectedColor\"\n (thyPanelOpen)=\"pickerActive = true\"\n (thyPanelClose)=\"colorPanelClose()\"\n (ngModelChange)=\"changeColor($event)\"\n (mousedown)=\"preventDefault($event)\"\n >\n <thy-icon class=\"link-down-icon font-size-sm text-desc\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n</thy-actions>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyActions, selector: "thy-actions", inputs: ["thySize"] }, { kind: "directive", type: ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyDisabled"], outputs: ["thyPanelOpen", "thyPanelClose"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheColorToolbarItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TheColorToolbarItem, isStandalone: true, selector: "the-color-toolbar-item", host: { classAttribute: "the-color-toolbar-item" }, usesInheritance: true, ngImport: i0, template: "<thy-actions\n class=\"d-flex p-0\"\n thySize=\"zero\"\n thyTooltipPlacement=\"top\"\n [thyTooltip]=\"toolbarItem.name\"\n [ngClass]=\"{ 'thy-default-picker-active': pickerActive }\"\n>\n <a href=\"javascript:;\" class=\"color\" thyAction (mousedown)=\"selectColor($event)\">\n <thy-icon\n thyIconType=\"twotone\"\n [thyIconName]=\"toolbarItem.icon\"\n [thyTwotoneColor]=\"toolbarItem.key === 'color' ? lastTextColor : lastBackgroundColor\"\n (mousedown)=\"selectColor($event)\"\n ></thy-icon>\n </a>\n <a\n class=\"pl-0 pr-0 caret-down\"\n href=\"javascript:;\"\n thyAction\n thyColorPicker\n thyPlacement=\"bottomLeft\"\n [(ngModel)]=\"selectedColor\"\n (thyPanelOpen)=\"pickerActive = true\"\n (thyPanelClose)=\"colorPanelClose()\"\n (ngModelChange)=\"changeColor($event)\"\n (mousedown)=\"preventDefault($event)\"\n >\n <thy-icon class=\"link-down-icon font-size-sm text-desc\" thyIconName=\"caret-down\"></thy-icon>\n </a>\n</thy-actions>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyActions, selector: "thy-actions", inputs: ["thySize"] }, { kind: "directive", type: ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyDisabled"], outputs: ["thyPanelOpen", "thyPanelClose"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
81
81
  }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: TheColorToolbarItem, decorators: [{
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: TheColorToolbarItem, decorators: [{
83
83
  type: Component,
84
84
  args: [{ selector: 'the-color-toolbar-item', host: {
85
85
  class: 'the-color-toolbar-item'