@acorex/platform 20.6.0-next.5 → 20.6.0-next.7

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 (87) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +19 -19
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-CGVarshJ.mjs → acorex-platform-common-common-settings.provider-zhqNP3xb.mjs} +4 -4
  4. package/fesm2022/{acorex-platform-common-common-settings.provider-CGVarshJ.mjs.map → acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map} +1 -1
  5. package/fesm2022/acorex-platform-common.mjs +103 -103
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +54 -54
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +16 -16
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +17 -17
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components.mjs +147 -147
  14. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-designer.mjs +72 -72
  16. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-layout-entity-create-entity.command-BsLbiAdA.mjs → acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs} +4 -4
  18. package/fesm2022/{acorex-platform-layout-entity-create-entity.command-BsLbiAdA.mjs.map → acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs.map} +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +141 -141
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +16 -16
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +74 -73
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-lHfg4JFJ.mjs → acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs} +4 -4
  26. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-lHfg4JFJ.mjs.map → acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map} +1 -1
  27. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CMSnecnD.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs} +4 -4
  28. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CMSnecnD.mjs.map → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs.map} +1 -1
  29. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-DN-sIFYe.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs} +4 -4
  30. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-DN-sIFYe.mjs.map → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs.map} +1 -1
  31. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-Bn9w0SEz.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs} +4 -4
  32. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-Bn9w0SEz.mjs.map → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs.map} +1 -1
  33. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-view.component-B8mgcvoX.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs} +4 -4
  34. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-view.component-B8mgcvoX.mjs.map → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs.map} +1 -1
  35. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-edit.component-Bhof2SY8.mjs → acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs} +4 -4
  36. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-edit.component-Bhof2SY8.mjs.map → acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-view.component-CeQIvKVV.mjs → acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs} +4 -4
  38. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-view.component-CeQIvKVV.mjs.map → acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs.map} +1 -1
  39. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-2q4whXBx.mjs → acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs} +4 -4
  40. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-2q4whXBx.mjs.map → acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs.map} +1 -1
  41. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-C57lyBs3.mjs → acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs} +4 -4
  42. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-C57lyBs3.mjs.map → acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map} +1 -1
  43. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DGDLHbaR.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs} +5 -5
  44. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs.map +1 -0
  45. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-CvZTRhct.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs} +4 -4
  46. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-CvZTRhct.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs.map} +1 -1
  47. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-DHES_0ot.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs} +4 -4
  48. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-DHES_0ot.mjs.map → acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map} +1 -1
  49. package/fesm2022/acorex-platform-layout-widgets.mjs +800 -548
  50. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  51. package/fesm2022/acorex-platform-native.mjs +7 -7
  52. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  53. package/fesm2022/acorex-platform-runtime.mjs +40 -40
  54. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  55. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-C_XmJV7Y.mjs → acorex-platform-themes-default-entity-master-create-view.component-g-EOvXP_.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-g-EOvXP_.mjs.map +1 -0
  57. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-Beba9db5.mjs → acorex-platform-themes-default-entity-master-list-view.component-CD3dS3z9.mjs} +10 -10
  58. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-Beba9db5.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-CD3dS3z9.mjs.map} +1 -1
  59. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DJPDil7w.mjs → acorex-platform-themes-default-entity-master-modify-view.component-Cwntcjyy.mjs} +4 -4
  60. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Cwntcjyy.mjs.map +1 -0
  61. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BArdGNfr.mjs → acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs} +7 -7
  62. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-default-error-401.component-D7rEInHg.mjs → acorex-platform-themes-default-error-401.component-cfREo88K.mjs} +4 -4
  64. package/fesm2022/{acorex-platform-themes-default-error-401.component-D7rEInHg.mjs.map → acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map} +1 -1
  65. package/fesm2022/{acorex-platform-themes-default-error-404.component-BTZlVrd8.mjs → acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs} +4 -4
  66. package/fesm2022/{acorex-platform-themes-default-error-404.component-BTZlVrd8.mjs.map → acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map} +1 -1
  67. package/fesm2022/{acorex-platform-themes-default-error-offline.component-BhvEi6nX.mjs → acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs} +4 -4
  68. package/fesm2022/{acorex-platform-themes-default-error-offline.component-BhvEi6nX.mjs.map → acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map} +1 -1
  69. package/fesm2022/acorex-platform-themes-default.mjs +39 -39
  70. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  71. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BXV40gay.mjs → acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs} +4 -4
  72. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BXV40gay.mjs.map → acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map} +1 -1
  73. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BpIf4s53.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs} +4 -4
  74. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BpIf4s53.mjs.map → acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map} +1 -1
  75. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-C9gvfQfX.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs} +4 -4
  76. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-C9gvfQfX.mjs.map → acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map} +1 -1
  77. package/fesm2022/acorex-platform-themes-shared.mjs +42 -42
  78. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  79. package/fesm2022/acorex-platform-workflow.mjs +37 -37
  80. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  81. package/layout/widget-core/index.d.ts +1 -0
  82. package/layout/widgets/index.d.ts +65 -3
  83. package/package.json +1 -1
  84. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DGDLHbaR.mjs.map +0 -1
  85. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-C_XmJV7Y.mjs.map +0 -1
  86. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DJPDil7w.mjs.map +0 -1
  87. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BArdGNfr.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-layout-designer.mjs","sources":["../tmp-esm2022/layout/designer/lib/designer/shared/command.js","../tmp-esm2022/layout/designer/lib/designer/shared/designer-connector.service.js","../tmp-esm2022/layout/designer/lib/designer/shared/generic-commands.types.js","../tmp-esm2022/layout/designer/lib/designer/shared/designer.types.js","../tmp-esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.service.js","../tmp-esm2022/layout/designer/lib/designer/shared/designer.service.js","../tmp-esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-button.component.js","../tmp-esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.js","../tmp-esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.js","../tmp-esm2022/layout/designer/lib/designer/components/flex-drawer/flex-drawer.component.js","../tmp-esm2022/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.js","../tmp-esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.js","../tmp-esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.js","../tmp-esm2022/layout/designer/lib/designer/components/board/board.component.js","../tmp-esm2022/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.js","../tmp-esm2022/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.js","../tmp-esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.js","../tmp-esm2022/layout/designer/lib/designer/components/drawers/history/history.component.js","../tmp-esm2022/layout/designer/lib/designer/components/drawers/outline/outline.component.js","../tmp-esm2022/layout/designer/lib/designer/components/drawers/pages/pages.component.js","../tmp-esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.js","../tmp-esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.js","../tmp-esm2022/layout/designer/lib/designer/designer.component.js","../tmp-esm2022/layout/designer/lib/preview/preview-viewer.component.js","../tmp-esm2022/layout/designer/lib/preview/preview-frame.component.js","../tmp-esm2022/layout/designer/lib/preview/preview.component.js","../tmp-esm2022/layout/designer/acorex-platform-layout-designer.js"],"sourcesContent":["import { computed, Injectable, signal } from \"@angular/core\";\nimport { cloneDeep, merge } from \"lodash-es\";\nimport * as i0 from \"@angular/core\";\n// AddWidgetCommand\nexport class AddWidgetCommand {\n constructor(widget, parent, previousSelection) {\n this.widget = widget;\n this.parent = parent;\n this.previousSelection = previousSelection;\n }\n execute() {\n this.parent.children = this.parent.children || [];\n this.parent.children.push(this.widget);\n }\n undo() {\n this.parent.children = this.parent.children || [];\n const index = this.parent.children.indexOf(this.widget);\n if (index > -1) {\n this.parent.children.splice(index, 1);\n }\n }\n description() {\n return `Added widget ${this.widget.name}`;\n }\n icon() {\n return `fa-solid fa-square-plus`;\n }\n getExecutionSelection() {\n return this.widget; // After executing, select the newly added widget\n }\n getUndoSelection() {\n return this.previousSelection; // After undo, select the previously selected widget\n }\n}\nexport class RemoveWidgetCommand {\n constructor(widget, parent, previousSelection) {\n this.widget = widget;\n this.parent = parent;\n this.previousSelection = previousSelection;\n parent.children = parent.children || [];\n this.index = parent.children.indexOf(widget); // Capture the index for undo purposes\n }\n execute() {\n this.parent.children = this.parent.children || [];\n this.index = this.parent.children.indexOf(this.widget); // Re-assert the index in case it has changed\n this.parent.children.splice(this.index, 1);\n }\n undo() {\n this.parent.children = this.parent.children || [];\n this.parent.children.splice(this.index, 0, this.widget); // Reinsert at the original index\n }\n description() {\n return `Removed widget ${this.widget.name}`;\n }\n icon() {\n return `fa-solid fa-square-minus`;\n }\n getExecutionSelection() {\n return this.previousSelection; // Typically the parent or a nearby sibling could be focused\n }\n getUndoSelection() {\n return this.widget; // Select the widget itself when the operation is undone\n }\n}\nexport class UpdateWidgetCommand {\n constructor(widget, values, previousSelection) {\n this.widget = widget;\n this.newState = merge(cloneDeep(widget), values);\n this.previousSelection = previousSelection;\n this.previousState = cloneDeep(widget);\n }\n execute() {\n merge(this.widget, this.newState);\n }\n undo() {\n this.deepPruneAndRestore(this.widget, this.previousState);\n }\n description() {\n return `Updated widget ${this.widget.name}`;\n }\n icon() {\n return `fa-solid fa-pen`;\n }\n getExecutionSelection() {\n return this.widget; // Focus the widget after it's updated\n }\n getUndoSelection() {\n return this.previousSelection; // Restore the focus to where it was before the update\n }\n deepPruneAndRestore(current, original) {\n Object.keys(current).forEach(key => {\n if (original.hasOwnProperty(key)) {\n if (typeof current[key] === 'object' && current[key] !== null && !(current[key] instanceof Array)) {\n this.deepPruneAndRestore(current[key], original[key]);\n }\n }\n else {\n delete current[key]; // Remove properties not present in original\n }\n });\n // Restore the original properties\n merge(current, original);\n }\n}\nexport class CommandManager {\n constructor() {\n this.undoStack = signal([], ...(ngDevMode ? [{ debugName: \"undoStack\" }] : []));\n this.currentIndex = signal(-1, ...(ngDevMode ? [{ debugName: \"currentIndex\" }] : []));\n this.selectedNode = signal(null, ...(ngDevMode ? [{ debugName: \"selectedNode\" }] : []));\n this.canUndo = computed(() => this.currentIndex() >= 0, ...(ngDevMode ? [{ debugName: \"canUndo\" }] : []));\n this.canRedo = computed(() => this.currentIndex() < this.undoStack().length - 1, ...(ngDevMode ? [{ debugName: \"canRedo\" }] : []));\n this.history = computed(() => this.undoStack().map((cmd, index) => ({\n description: cmd.description(),\n icon: cmd.icon(),\n isPast: this.currentIndex() > index,\n isFuture: this.currentIndex() < index,\n isCurrent: this.currentIndex() == index\n })), ...(ngDevMode ? [{ debugName: \"history\" }] : []));\n }\n executeCommand(command) {\n // Check if the currentIndex is not at the end of the undoStack\n if (this.currentIndex() !== this.undoStack().length - 1) {\n // Remove all commands beyond the current index to discard the \"future\" commands\n const newUndoStack = this.undoStack().slice(0, this.currentIndex() + 1);\n this.undoStack.set(newUndoStack);\n }\n command.execute();\n this.undoStack.set([...this.undoStack(), command]); // Add the new command to the stack\n this.currentIndex.set(this.undoStack().length - 1); // Update currentIndex to the end of the stack\n this.selectedNode.set(command.getExecutionSelection()); // Update the selected node\n }\n undo() {\n if (this.currentIndex() >= 0) {\n const command = this.undoStack()[this.currentIndex()];\n command.undo();\n this.currentIndex.set(this.currentIndex() - 1);\n if (this.currentIndex() >= 0) {\n this.selectedNode.set(this.undoStack()[this.currentIndex()].getUndoSelection());\n }\n else {\n this.selectedNode.set(null); // No selection if all commands are undone\n }\n }\n }\n redo() {\n if (this.currentIndex() < this.undoStack().length - 1) {\n this.currentIndex.set(this.currentIndex() + 1);\n const command = this.undoStack()[this.currentIndex()];\n command.execute();\n this.selectedNode.set(command.getExecutionSelection());\n }\n }\n goToCommand(index) {\n if (index < 0 || index >= this.undoStack().length || index === this.currentIndex()) {\n return; // Out of bounds or already at the desired index\n }\n if (index > this.currentIndex()) {\n // Need to redo until reaching the desired index\n while (this.currentIndex() < index) {\n this.redo();\n }\n }\n else {\n // Need to undo until reaching the desired index\n while (this.currentIndex() > index) {\n this.undo();\n }\n }\n // Optionally update any UI components or state here\n this.selectedNode.set(this.undoStack()[this.currentIndex()].getExecutionSelection());\n }\n clear() {\n this.undoStack.set([]);\n this.currentIndex.set(-1);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: CommandManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: CommandManager, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: CommandManager, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQVk3QyxtQkFBbUI7QUFDbkIsTUFBTSxPQUFPLGdCQUFnQjtJQUt6QixZQUFZLE1BQXFCLEVBQUUsTUFBcUIsRUFBRSxpQkFBZ0M7UUFDdEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENB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QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQWFNLEtBQUs7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBL0VRLGNBQWM7bUhBQWQsY0FBYyxjQUZYLE1BQU07OzRGQUVULGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZVwiO1xuaW1wb3J0IHsgY29tcHV0ZWQsIEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjbG9uZURlZXAsIG1lcmdlIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG4vLyBDb21tYW5kIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kIHtcbiAgICBleGVjdXRlKCk6IHZvaWQ7XG4gICAgdW5kbygpOiB2b2lkO1xuICAgIGRlc2NyaXB0aW9uKCk6IHN0cmluZztcbiAgICBpY29uKCk6IHN0cmluZztcbiAgICBnZXRFeGVjdXRpb25TZWxlY3Rpb24oKTogQVhQV2lkZ2V0Tm9kZTsgIC8vIE5vZGUgdG8gc2VsZWN0IGFmdGVyIGV4ZWN1dGlvblxuICAgIGdldFVuZG9TZWxlY3Rpb24oKTogQVhQV2lkZ2V0Tm9kZTsgICAgICAgLy8gTm9kZSB0byBzZWxlY3QgYWZ0ZXIgdW5kb1xufVxuXG4vLyBBZGRXaWRnZXRDb21tYW5kXG5leHBvcnQgY2xhc3MgQWRkV2lkZ2V0Q29tbWFuZCBpbXBsZW1lbnRzIENvbW1hbmQge1xuICAgIHByaXZhdGUgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xuICAgIHByaXZhdGUgcGFyZW50OiBBWFBXaWRnZXROb2RlO1xuICAgIHByaXZhdGUgcHJldmlvdXNTZWxlY3Rpb246IEFYUFdpZGdldE5vZGU7XG5cbiAgICBjb25zdHJ1Y3Rvcih3aWRnZXQ6IEFYUFdpZGdldE5vZGUsIHBhcmVudDogQVhQV2lkZ2V0Tm9kZSwgcHJldmlvdXNTZWxlY3Rpb246IEFYUFdpZGdldE5vZGUpIHtcbiAgICAgICAgdGhpcy53aWRnZXQgPSB3aWRnZXQ7XG4gICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VsZWN0aW9uID0gcHJldmlvdXNTZWxlY3Rpb247XG4gICAgfVxuXG4gICAgZXhlY3V0ZSgpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4gPSB0aGlzLnBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4ucHVzaCh0aGlzLndpZGdldCk7XG4gICAgfVxuXG4gICAgdW5kbygpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4gPSB0aGlzLnBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMud2lkZ2V0KTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50LmNoaWxkcmVuLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGBBZGRlZCB3aWRnZXQgJHt0aGlzLndpZGdldC5uYW1lfWA7XG4gICAgfVxuXG4gICAgaWNvbigpIHtcbiAgICAgICAgcmV0dXJuIGBmYS1zb2xpZCBmYS1zcXVhcmUtcGx1c2A7XG4gICAgfVxuXG4gICAgZ2V0RXhlY3V0aW9uU2VsZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXQ7ICAvLyBBZnRlciBleGVjdXRpbmcsIHNlbGVjdCB0aGUgbmV3bHkgYWRkZWQgd2lkZ2V0XG4gICAgfVxuXG4gICAgZ2V0VW5kb1NlbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNTZWxlY3Rpb247ICAvLyBBZnRlciB1bmRvLCBzZWxlY3QgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgd2lkZ2V0XG4gICAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBSZW1vdmVXaWRnZXRDb21tYW5kIGltcGxlbWVudHMgQ29tbWFuZCB7XG4gICAgcHJpdmF0ZSB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG4gICAgcHJpdmF0ZSBwYXJlbnQ6IEFYUFdpZGdldE5vZGU7XG4gICAgcHJpdmF0ZSBwcmV2aW91c1NlbGVjdGlvbjogQVhQV2lkZ2V0Tm9kZTtcbiAgICBwcml2YXRlIGluZGV4OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcih3aWRnZXQ6IEFYUFdpZGdldE5vZGUsIHBhcmVudDogQVhQV2lkZ2V0Tm9kZSwgcHJldmlvdXNTZWxlY3Rpb246IEFYUFdpZGdldE5vZGUpIHtcbiAgICAgICAgdGhpcy53aWRnZXQgPSB3aWRnZXQ7XG4gICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VsZWN0aW9uID0gcHJldmlvdXNTZWxlY3Rpb247XG4gICAgICAgIHBhcmVudC5jaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgdGhpcy5pbmRleCA9IHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHdpZGdldCk7ICAvLyBDYXB0dXJlIHRoZSBpbmRleCBmb3IgdW5kbyBwdXJwb3Nlc1xuICAgIH1cblxuICAgIGV4ZWN1dGUoKSB7XG4gICAgICAgIHRoaXMucGFyZW50LmNoaWxkcmVuID0gdGhpcy5wYXJlbnQuY2hpbGRyZW4gfHwgW107XG4gICAgICAgIHRoaXMuaW5kZXggPSB0aGlzLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMud2lkZ2V0KTsgIC8vIFJlLWFzc2VydCB0aGUgaW5kZXggaW4gY2FzZSBpdCBoYXMgY2hhbmdlZFxuICAgICAgICB0aGlzLnBhcmVudC5jaGlsZHJlbi5zcGxpY2UodGhpcy5pbmRleCwgMSk7XG4gICAgfVxuXG4gICAgdW5kbygpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4gPSB0aGlzLnBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4uc3BsaWNlKHRoaXMuaW5kZXgsIDAsIHRoaXMud2lkZ2V0KTsgIC8vIFJlaW5zZXJ0IGF0IHRoZSBvcmlnaW5hbCBpbmRleFxuICAgIH1cblxuICAgIGRlc2NyaXB0aW9uKCkge1xuICAgICAgICByZXR1cm4gYFJlbW92ZWQgd2lkZ2V0ICR7dGhpcy53aWRnZXQubmFtZX1gO1xuICAgIH1cblxuICAgIGljb24oKSB7XG4gICAgICAgIHJldHVybiBgZmEtc29saWQgZmEtc3F1YXJlLW1pbnVzYDtcbiAgICB9XG5cbiAgICBnZXRFeGVjdXRpb25TZWxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzU2VsZWN0aW9uOyAgLy8gVHlwaWNhbGx5IHRoZSBwYXJlbnQgb3IgYSBuZWFyYnkgc2libGluZyBjb3VsZCBiZSBmb2N1c2VkXG4gICAgfVxuXG4gICAgZ2V0VW5kb1NlbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0OyAgLy8gU2VsZWN0IHRoZSB3aWRnZXQgaXRzZWxmIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyB1bmRvbmVcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVXaWRnZXRDb21tYW5kIGltcGxlbWVudHMgQ29tbWFuZCB7XG4gICAgcHJpdmF0ZSB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG4gICAgcHJpdmF0ZSBwcmV2aW91c1N0YXRlOiBBWFBXaWRnZXROb2RlO1xuICAgIHByaXZhdGUgbmV3U3RhdGU6IEFYUFdpZGdldE5vZGU7XG4gICAgcHJpdmF0ZSBwcmV2aW91c1NlbGVjdGlvbjogQVhQV2lkZ2V0Tm9kZTtcblxuICAgIGNvbnN0cnVjdG9yKHdpZGdldDogQVhQV2lkZ2V0Tm9kZSwgdmFsdWVzOiBQYXJ0aWFsPEFYUFdpZGdldE5vZGU+LCBwcmV2aW91c1NlbGVjdGlvbjogQVhQV2lkZ2V0Tm9kZSkge1xuICAgICAgICB0aGlzLndpZGdldCA9IHdpZGdldDtcbiAgICAgICAgdGhpcy5uZXdTdGF0ZSA9IG1lcmdlKGNsb25lRGVlcCh3aWRnZXQpLCB2YWx1ZXMpO1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VsZWN0aW9uID0gcHJldmlvdXNTZWxlY3Rpb247XG4gICAgICAgIHRoaXMucHJldmlvdXNTdGF0ZSA9IGNsb25lRGVlcCh3aWRnZXQpO1xuICAgIH1cblxuICAgIGV4ZWN1dGUoKSB7XG4gICAgICAgIG1lcmdlKHRoaXMud2lkZ2V0LCB0aGlzLm5ld1N0YXRlKVxuICAgIH1cblxuICAgIHVuZG8oKSB7XG4gICAgICAgIHRoaXMuZGVlcFBydW5lQW5kUmVzdG9yZSh0aGlzLndpZGdldCwgdGhpcy5wcmV2aW91c1N0YXRlKTtcbiAgICB9XG5cbiAgICBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGBVcGRhdGVkIHdpZGdldCAke3RoaXMud2lkZ2V0Lm5hbWV9YDtcbiAgICB9XG5cbiAgICBpY29uKCkge1xuICAgICAgICByZXR1cm4gYGZhLXNvbGlkIGZhLXBlbmA7XG4gICAgfVxuXG4gICAgZ2V0RXhlY3V0aW9uU2VsZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXQ7ICAvLyBGb2N1cyB0aGUgd2lkZ2V0IGFmdGVyIGl0J3MgdXBkYXRlZFxuICAgIH1cblxuICAgIGdldFVuZG9TZWxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzU2VsZWN0aW9uOyAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgdG8gd2hlcmUgaXQgd2FzIGJlZm9yZSB0aGUgdXBkYXRlXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWVwUHJ1bmVBbmRSZXN0b3JlKGN1cnJlbnQ6IGFueSwgb3JpZ2luYWw6IGFueSkge1xuICAgICAgICBPYmplY3Qua2V5cyhjdXJyZW50KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAob3JpZ2luYWwuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudFtrZXldID09PSAnb2JqZWN0JyAmJiBjdXJyZW50W2tleV0gIT09IG51bGwgJiYgIShjdXJyZW50W2tleV0gaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWVwUHJ1bmVBbmRSZXN0b3JlKGN1cnJlbnRba2V5XSwgb3JpZ2luYWxba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgY3VycmVudFtrZXldOyAgLy8gUmVtb3ZlIHByb3BlcnRpZXMgbm90IHByZXNlbnQgaW4gb3JpZ2luYWxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgcHJvcGVydGllc1xuICAgICAgICBtZXJnZShjdXJyZW50LCBvcmlnaW5hbCk7XG4gICAgfVxufVxuXG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kTWFuYWdlciB7XG4gICAgcHJpdmF0ZSB1bmRvU3RhY2sgPSBzaWduYWw8Q29tbWFuZFtdPihbXSk7XG4gICAgcHJpdmF0ZSBjdXJyZW50SW5kZXggPSBzaWduYWw8bnVtYmVyPigtMSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkTm9kZSA9IHNpZ25hbDxBWFBXaWRnZXROb2RlIHwgbnVsbD4obnVsbCk7XG5cbiAgICBwdWJsaWMgY2FuVW5kbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3VycmVudEluZGV4KCkgPj0gMClcbiAgICBwdWJsaWMgY2FuUmVkbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3VycmVudEluZGV4KCkgPCB0aGlzLnVuZG9TdGFjaygpLmxlbmd0aCAtIDEpXG5cbiAgICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiBDb21tYW5kKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50SW5kZXggaXMgbm90IGF0IHRoZSBlbmQgb2YgdGhlIHVuZG9TdGFja1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXgoKSAhPT0gdGhpcy51bmRvU3RhY2soKS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAvLyBSZW1vdmUgYWxsIGNvbW1hbmRzIGJleW9uZCB0aGUgY3VycmVudCBpbmRleCB0byBkaXNjYXJkIHRoZSBcImZ1dHVyZVwiIGNvbW1hbmRzXG4gICAgICAgICAgICBjb25zdCBuZXdVbmRvU3RhY2sgPSB0aGlzLnVuZG9TdGFjaygpLnNsaWNlKDAsIHRoaXMuY3VycmVudEluZGV4KCkgKyAxKTtcbiAgICAgICAgICAgIHRoaXMudW5kb1N0YWNrLnNldChuZXdVbmRvU3RhY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgY29tbWFuZC5leGVjdXRlKCk7XG4gICAgICAgIHRoaXMudW5kb1N0YWNrLnNldChbLi4udGhpcy51bmRvU3RhY2soKSwgY29tbWFuZF0pOyAvLyBBZGQgdGhlIG5ldyBjb21tYW5kIHRvIHRoZSBzdGFja1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleC5zZXQodGhpcy51bmRvU3RhY2soKS5sZW5ndGggLSAxKTsgLy8gVXBkYXRlIGN1cnJlbnRJbmRleCB0byB0aGUgZW5kIG9mIHRoZSBzdGFja1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5zZXQoY29tbWFuZC5nZXRFeGVjdXRpb25TZWxlY3Rpb24oKSk7IC8vIFVwZGF0ZSB0aGUgc2VsZWN0ZWQgbm9kZVxuICAgIH1cblxuICAgIHVuZG8oKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbmRleCgpID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSB0aGlzLnVuZG9TdGFjaygpW3RoaXMuY3VycmVudEluZGV4KCldO1xuICAgICAgICAgICAgY29tbWFuZC51bmRvKCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleC5zZXQodGhpcy5jdXJyZW50SW5kZXgoKSAtIDEpO1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4KCkgPj0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlLnNldCh0aGlzLnVuZG9TdGFjaygpW3RoaXMuY3VycmVudEluZGV4KCldLmdldFVuZG9TZWxlY3Rpb24oKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlLnNldChudWxsKTsgLy8gTm8gc2VsZWN0aW9uIGlmIGFsbCBjb21tYW5kcyBhcmUgdW5kb25lXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWRvKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXgoKSA8IHRoaXMudW5kb1N0YWNrKCkubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXguc2V0KHRoaXMuY3VycmVudEluZGV4KCkgKyAxKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSB0aGlzLnVuZG9TdGFjaygpW3RoaXMuY3VycmVudEluZGV4KCldO1xuICAgICAgICAgICAgY29tbWFuZC5leGVjdXRlKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5zZXQoY29tbWFuZC5nZXRFeGVjdXRpb25TZWxlY3Rpb24oKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnb1RvQ29tbWFuZChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy51bmRvU3RhY2soKS5sZW5ndGggfHwgaW5kZXggPT09IHRoaXMuY3VycmVudEluZGV4KCkpIHtcbiAgICAgICAgICAgIHJldHVybjsgIC8vIE91dCBvZiBib3VuZHMgb3IgYWxyZWFkeSBhdCB0aGUgZGVzaXJlZCBpbmRleFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4ID4gdGhpcy5jdXJyZW50SW5kZXgoKSkge1xuICAgICAgICAgICAgLy8gTmVlZCB0byByZWRvIHVudGlsIHJlYWNoaW5nIHRoZSBkZXNpcmVkIGluZGV4XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5jdXJyZW50SW5kZXgoKSA8IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWRvKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBOZWVkIHRvIHVuZG8gdW50aWwgcmVhY2hpbmcgdGhlIGRlc2lyZWQgaW5kZXhcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLmN1cnJlbnRJbmRleCgpID4gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuZG8oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9wdGlvbmFsbHkgdXBkYXRlIGFueSBVSSBjb21wb25lbnRzIG9yIHN0YXRlIGhlcmVcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUuc2V0KHRoaXMudW5kb1N0YWNrKClbdGhpcy5jdXJyZW50SW5kZXgoKV0uZ2V0RXhlY3V0aW9uU2VsZWN0aW9uKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoaXN0b3J5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51bmRvU3RhY2soKS5tYXAoKGNtZCwgaW5kZXgpID0+IChcbiAgICAgICAge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IGNtZC5kZXNjcmlwdGlvbigpLFxuICAgICAgICAgICAgaWNvbjogY21kLmljb24oKSxcbiAgICAgICAgICAgIGlzUGFzdDogdGhpcy5jdXJyZW50SW5kZXgoKSA+IGluZGV4LFxuICAgICAgICAgICAgaXNGdXR1cmU6IHRoaXMuY3VycmVudEluZGV4KCkgPCBpbmRleCxcbiAgICAgICAgICAgIGlzQ3VycmVudDogdGhpcy5jdXJyZW50SW5kZXgoKSA9PSBpbmRleFxuICAgICAgICB9XG4gICAgKSkpXG5cblxuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgdGhpcy51bmRvU3RhY2suc2V0KFtdKTtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXguc2V0KC0xKTtcbiAgICB9XG59Il19","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerConnector {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerConnector, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerConnector }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerConnector, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItY29ubmVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL3NoYXJlZC9kZXNpZ25lci1jb25uZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQWdCLG9CQUFvQjsrR0FBcEIsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyQ29udGVudCB7XG4gICAganNvbjogc3RyaW5nLFxuICAgIGh0bWw/OiBzdHJpbmdcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUERlc2lnbmVyQ29ubmVjdG9yPFQgPSBzdHJpbmc+IHtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBzYXZlKGlkOiBzdHJpbmcsIGNvbnRlbnQ6IEFYUERlc2lnbmVyQ29udGVudCk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2F2ZUFzKGNvbnRlbnQ6IEFYUERlc2lnbmVyQ29udGVudCk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgbG9hZChpZDogVCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG59Il19","import { assign, cloneDeep } from 'lodash-es';\nexport const AXP_DESIGNER_COPY_MENU = {\n text: 'Copy',\n name: 'copy',\n icon: 'fa-solid fa-copy',\n suffix: {\n text: 'Ctrl+C',\n },\n};\nexport const AXP_DESIGNER_CLONE_MENU = {\n text: 'Clone',\n name: 'clone',\n icon: 'fa-solid fa-clone',\n suffix: {\n text: 'Ctrl+D',\n },\n};\nexport const AXP_DESIGNER_CUT_MENU = {\n text: 'Cut',\n name: 'cut',\n icon: 'fa-solid fa-cut',\n suffix: {\n text: 'Ctrl+X',\n },\n};\nexport const AXP_DESIGNER_PASTE_MENU = {\n text: 'Paste',\n name: 'paste',\n icon: 'fa-solid fa-paste',\n suffix: {\n text: 'Ctrl+V',\n },\n};\nexport const AXP_DESIGNER_ADD_WIDGET_MENU = {\n text: 'Add Widget',\n name: 'add-widget',\n icon: 'fa-solid fa-plus',\n};\nexport const AXP_DESIGNER_SELECT_WIDGET_MENU = {\n text: 'Select',\n name: 'select',\n break: true,\n icon: 'fa-solid fa-arrow-pointer',\n};\nexport const AXP_DESIGNER_DELETE_WIDGET_MENU = {\n text: 'Delete',\n name: 'remove-widget',\n icon: 'fa-solid fa-trash',\n};\nexport const AXP_DESIGNER_SAVE_AS_WIDGET_MENU = {\n text: 'Save As...',\n name: 'save-as',\n icon: 'fa-solid fa-save',\n};\nexport function cloneWidgetMenu(item, options) {\n return assign(cloneDeep(item), options);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jb21tYW5kcy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL2dlbmVyaWMtY29tbWFuZHMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWU7SUFDaEQsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7S0FDZjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZTtJQUNqRCxJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFlO0lBQy9DLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLEtBQUs7SUFDWCxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO0tBQ2Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWU7SUFDakQsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxtQkFBbUI7SUFDekIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7S0FDZjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBZTtJQUN0RCxJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsa0JBQWtCO0NBQ3pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBZTtJQUN6RCxJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxJQUFJLEVBQUUsMkJBQTJCO0NBQ2xDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBZTtJQUN6RCxJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxlQUFlO0lBQ3JCLElBQUksRUFBRSxtQkFBbUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFlO0lBQzFELElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxTQUFTO0lBQ2YsSUFBSSxFQUFFLGtCQUFrQjtDQUN6QixDQUFDO0FBR0YsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFnQixFQUFFLE9BQTZCO0lBQzdFLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNZW51SXRlbSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IGFzc2lnbiwgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9DT1BZX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdDb3B5JyxcbiAgbmFtZTogJ2NvcHknLFxuICBpY29uOiAnZmEtc29saWQgZmEtY29weScsXG4gIHN1ZmZpeDoge1xuICAgIHRleHQ6ICdDdHJsK0MnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9DTE9ORV9NRU5VOiBBWE1lbnVJdGVtID0ge1xuICB0ZXh0OiAnQ2xvbmUnLFxuICBuYW1lOiAnY2xvbmUnLFxuICBpY29uOiAnZmEtc29saWQgZmEtY2xvbmUnLFxuICBzdWZmaXg6IHtcbiAgICB0ZXh0OiAnQ3RybCtEJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBBWFBfREVTSUdORVJfQ1VUX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdDdXQnLFxuICBuYW1lOiAnY3V0JyxcbiAgaWNvbjogJ2ZhLXNvbGlkIGZhLWN1dCcsXG4gIHN1ZmZpeDoge1xuICAgIHRleHQ6ICdDdHJsK1gnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9QQVNURV9NRU5VOiBBWE1lbnVJdGVtID0ge1xuICB0ZXh0OiAnUGFzdGUnLFxuICBuYW1lOiAncGFzdGUnLFxuICBpY29uOiAnZmEtc29saWQgZmEtcGFzdGUnLFxuICBzdWZmaXg6IHtcbiAgICB0ZXh0OiAnQ3RybCtWJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBBWFBfREVTSUdORVJfQUREX1dJREdFVF9NRU5VOiBBWE1lbnVJdGVtID0ge1xuICB0ZXh0OiAnQWRkIFdpZGdldCcsXG4gIG5hbWU6ICdhZGQtd2lkZ2V0JyxcbiAgaWNvbjogJ2ZhLXNvbGlkIGZhLXBsdXMnLFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9TRUxFQ1RfV0lER0VUX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdTZWxlY3QnLFxuICBuYW1lOiAnc2VsZWN0JyxcbiAgYnJlYWs6IHRydWUsXG4gIGljb246ICdmYS1zb2xpZCBmYS1hcnJvdy1wb2ludGVyJyxcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9ERUxFVEVfV0lER0VUX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdEZWxldGUnLFxuICBuYW1lOiAncmVtb3ZlLXdpZGdldCcsXG4gIGljb246ICdmYS1zb2xpZCBmYS10cmFzaCcsXG59O1xuXG5leHBvcnQgY29uc3QgQVhQX0RFU0lHTkVSX1NBVkVfQVNfV0lER0VUX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdTYXZlIEFzLi4uJyxcbiAgbmFtZTogJ3NhdmUtYXMnLFxuICBpY29uOiAnZmEtc29saWQgZmEtc2F2ZScsXG59O1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZVdpZGdldE1lbnUoaXRlbTogQVhNZW51SXRlbSwgb3B0aW9ucz86IFBhcnRpYWw8QVhNZW51SXRlbT4pOiBBWE1lbnVJdGVtIHtcbiAgcmV0dXJuIGFzc2lnbihjbG9uZURlZXAoaXRlbSksIG9wdGlvbnMpO1xufVxuIl19","export class AXPDesignerModes {\n static { this.View = { id: 'view', title: 'View' }; }\n static { this.Design = { id: 'designer', title: 'Designer' }; }\n static { this.Edit = { id: 'edit', title: 'Edit' }; }\n}\nexport var AXPTemplateLoadingStrategy;\n(function (AXPTemplateLoadingStrategy) {\n AXPTemplateLoadingStrategy[\"Connector\"] = \"Connector\";\n AXPTemplateLoadingStrategy[\"Broadcast\"] = \"Broadcast\";\n})(AXPTemplateLoadingStrategy || (AXPTemplateLoadingStrategy = {}));\nexport const AXPDesignerMessageKeys = {\n Preview: \"designer-preview\",\n Loaded: \"designer-preview-loaded\",\n ContextChanged: \"designer-preview-context-changed\",\n PreviewWindow: \"designer-open-preview-window\",\n RequestFormContent: \"designer-request-form-content\",\n ResponseFormContent: \"designer-response-form-content\",\n SaveForm: 'designer-save-form-content',\n FormSaved: 'designer-form-saved-content',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL3NoYXJlZC9kZXNpZ25lci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQU8sZ0JBQWdCO2FBQ1gsU0FBSSxHQUFvQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3RELFdBQU0sR0FBb0IsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQzthQUNoRSxTQUFJLEdBQW9CLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7O0FBSXhFLE1BQU0sQ0FBTixJQUFZLDBCQUdYO0FBSEQsV0FBWSwwQkFBMEI7SUFDcEMscURBQXVCLENBQUE7SUFDdkIscURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUhXLDBCQUEwQixLQUExQiwwQkFBMEIsUUFHckM7QUFvQkQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ25DO0lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtJQUMzQixNQUFNLEVBQUUseUJBQXlCO0lBQ2pDLGNBQWMsRUFBRSxrQ0FBa0M7SUFDbEQsYUFBYSxFQUFFLDhCQUE4QjtJQUM3QyxrQkFBa0IsRUFBRSwrQkFBK0I7SUFDbkQsbUJBQW1CLEVBQUUsZ0NBQWdDO0lBQ3JELFFBQVEsRUFBRSw0QkFBNEI7SUFDdEMsU0FBUyxFQUFFLDZCQUE2QjtDQUN6QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNZW51SXRlbSB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvbWVudVwiO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZVwiO1xuXG5leHBvcnQgdHlwZSBBWFBEZXNpZ25lck1vZGUgPVxuICB8IHsgaWQ6ICdkZXNpZ25lcic7IHRpdGxlOiAnRGVzaWduZXInIH1cbiAgfCB7IGlkOiAndmlldyc7IHRpdGxlOiAnVmlldycgfVxuICB8IHsgaWQ6ICdlZGl0JzsgdGl0bGU6ICdFZGl0JyB9O1xuXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJNb2RlcyB7XG4gIHN0YXRpYyByZWFkb25seSBWaWV3OiBBWFBEZXNpZ25lck1vZGUgPSB7IGlkOiAndmlldycsIHRpdGxlOiAnVmlldycgfTtcbiAgc3RhdGljIHJlYWRvbmx5IERlc2lnbjogQVhQRGVzaWduZXJNb2RlID0geyBpZDogJ2Rlc2lnbmVyJywgdGl0bGU6ICdEZXNpZ25lcicgfTtcbiAgc3RhdGljIHJlYWRvbmx5IEVkaXQ6IEFYUERlc2lnbmVyTW9kZSA9IHsgaWQ6ICdlZGl0JywgdGl0bGU6ICdFZGl0JyB9O1xufVxuXG5cbmV4cG9ydCBlbnVtIEFYUFRlbXBsYXRlTG9hZGluZ1N0cmF0ZWd5IHtcbiAgQ29ubmVjdG9yID0gXCJDb25uZWN0b3JcIixcbiAgQnJvYWRjYXN0ID0gXCJCcm9hZGNhc3RcIixcbn1cblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQge1xuICBvbkNvbnRleHRNZW51KGNvbnRleHQ6IHsgaXRlbXM6IEFYTWVudUl0ZW1bXSB9KTogdm9pZFxuICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiB7IG5hbWU6IHN0cmluZywgZGF0YT86IGFueSwgaGFuZGxlZDogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyUHJldmlld01lc3NhZ2Uge1xuICBpZDogc3RyaW5nLFxuICBkb2N1bWVudDogQVhQV2lkZ2V0Tm9kZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyU2F2ZUZvcm1NZXNzYWdlIHtcbiAgaWQ6IHN0cmluZyxcbiAgc3VjY2VzczogYm9vbGVhbixcbiAgY29udGVudD86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgQVhQRGVzaWduZXJNZXNzYWdlS2V5cyA9XG57XG4gIFByZXZpZXc6IFwiZGVzaWduZXItcHJldmlld1wiLFxuICBMb2FkZWQ6IFwiZGVzaWduZXItcHJldmlldy1sb2FkZWRcIixcbiAgQ29udGV4dENoYW5nZWQ6IFwiZGVzaWduZXItcHJldmlldy1jb250ZXh0LWNoYW5nZWRcIixcbiAgUHJldmlld1dpbmRvdzogXCJkZXNpZ25lci1vcGVuLXByZXZpZXctd2luZG93XCIsXG4gIFJlcXVlc3RGb3JtQ29udGVudDogXCJkZXNpZ25lci1yZXF1ZXN0LWZvcm0tY29udGVudFwiLFxuICBSZXNwb25zZUZvcm1Db250ZW50OiBcImRlc2lnbmVyLXJlc3BvbnNlLWZvcm0tY29udGVudFwiLFxuICBTYXZlRm9ybTogJ2Rlc2lnbmVyLXNhdmUtZm9ybS1jb250ZW50JyxcbiAgRm9ybVNhdmVkOiAnZGVzaWduZXItZm9ybS1zYXZlZC1jb250ZW50Jyxcbn0iXX0=","import { AXPopupService } from '@acorex/components/popup';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWidgetRegistryService, } from '@acorex/platform/layout/widget-core';\nimport { inject, Injectable } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetPickerService {\n constructor() {\n this.popupService = inject(AXPopupService);\n this.widgetRegistryService = inject(AXPWidgetRegistryService);\n this.translationService = inject(AXTranslationService);\n }\n async showPicker(options) {\n const com = await import('./widget-picker.component').then((c) => c.AXPDesignerWidgetPickerComponent);\n const widgets = this.widgetRegistryService.all();\n const filteredWidgets = widgets.filter((c) => options.groups.some((d) => c.groups?.includes(d)));\n //\n const result = await this.popupService.open(com, {\n title: await this.translationService.translateAsync('@form-template-management:designer.components.widget-picker.title'),\n size: 'md',\n closeButton: true,\n data: {\n widgets: sortBy(filteredWidgets, (c) => c.title),\n },\n });\n //\n const selectedWidgets = (result.data?.widgets ?? []);\n return selectedWidgets.map((c) => ({\n type: c.name,\n meta: c.meta,\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWidgetPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWidgetPickerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWidgetPickerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBpY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL3dpZGdldC1waWNrZXIvd2lkZ2V0LXBpY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBSUwsd0JBQXdCLEdBQ3pCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFLbkMsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUlVLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3pELHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBdUIzRDtJQXJCQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQXlDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN0RyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakQsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRyxFQUFFO1FBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0MsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxtRUFBbUUsQ0FBQztZQUN4SCxJQUFJLEVBQUUsSUFBSTtZQUNWLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUNqRDtTQUNGLENBQUMsQ0FBQztRQUNILEVBQUU7UUFDRixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBc0IsQ0FBQztRQUUxRSxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFXO1lBQ25CLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtTQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzsrR0F6QlUsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIEFYUFdpZGdldENvbmZpZyxcbiAgQVhQV2lkZ2V0R3JvdXBFbnVtLFxuICBBWFBXaWRnZXROb2RlLFxuICBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFBpY2tlclNlcnZpY2Uge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgd2lkZ2V0UmVnaXN0cnlTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBhc3luYyBzaG93UGlja2VyKG9wdGlvbnM6IHsgZ3JvdXBzOiBBWFBXaWRnZXRHcm91cEVudW1bXSB9KTogUHJvbWlzZTxBWFBXaWRnZXROb2RlW10+IHtcbiAgICBjb25zdCBjb20gPSBhd2FpdCBpbXBvcnQoJy4vd2lkZ2V0LXBpY2tlci5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUERlc2lnbmVyV2lkZ2V0UGlja2VyQ29tcG9uZW50KTtcbiAgICBjb25zdCB3aWRnZXRzID0gdGhpcy53aWRnZXRSZWdpc3RyeVNlcnZpY2UuYWxsKCk7XG4gICAgY29uc3QgZmlsdGVyZWRXaWRnZXRzID0gd2lkZ2V0cy5maWx0ZXIoKGMpID0+IG9wdGlvbnMuZ3JvdXBzLnNvbWUoKGQpID0+IGMuZ3JvdXBzPy5pbmNsdWRlcyhkKSkpO1xuICAgIC8vXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGZvcm0tdGVtcGxhdGUtbWFuYWdlbWVudDpkZXNpZ25lci5jb21wb25lbnRzLndpZGdldC1waWNrZXIudGl0bGUnKSxcbiAgICAgIHNpemU6ICdtZCcsXG4gICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgd2lkZ2V0czogc29ydEJ5KGZpbHRlcmVkV2lkZ2V0cywgKGMpID0+IGMudGl0bGUpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICAvL1xuICAgIGNvbnN0IHNlbGVjdGVkV2lkZ2V0cyA9IChyZXN1bHQuZGF0YT8ud2lkZ2V0cyA/PyBbXSkgYXMgQVhQV2lkZ2V0Q29uZmlnW107XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRXaWRnZXRzLm1hcCgoYykgPT4gKHtcbiAgICAgIHR5cGU6IGMubmFtZSBhcyBhbnksXG4gICAgICBtZXRhOiBjLm1ldGEsXG4gICAgfSkpO1xuICB9XG59XG4iXX0=","import { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetsCatalog, } from '@acorex/platform/layout/widget-core';\nimport { computed, effect, inject, Injectable, signal } from '@angular/core';\nimport { cloneDeep, get, isEmpty, isNil, set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AddWidgetCommand, CommandManager, RemoveWidgetCommand, UpdateWidgetCommand } from './command';\nimport { AXPDesignerConnector } from './designer-connector.service';\nimport { AXP_DESIGNER_ADD_WIDGET_MENU, AXP_DESIGNER_CLONE_MENU, AXP_DESIGNER_COPY_MENU, AXP_DESIGNER_CUT_MENU, AXP_DESIGNER_DELETE_WIDGET_MENU as AXP_DESIGNER_DELETE_WIDGET_MENU, AXP_DESIGNER_PASTE_MENU, AXP_DESIGNER_SAVE_AS_WIDGET_MENU, AXP_DESIGNER_SELECT_WIDGET_MENU, cloneWidgetMenu, } from './generic-commands.types';\nimport { AXPDesignerMessageKeys, AXPTemplateLoadingStrategy } from './designer.types';\nimport { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXPWidgetPickerService } from '../components/widget-picker/widget-picker.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerService {\n #ef;\n constructor() {\n this.popupService = inject(AXPopupService);\n this.toastService = inject(AXToastService);\n this.fileService = inject(AXFileService);\n this.loadingService = inject(AXLoadingDialogService);\n this.widgetRegisteryService = inject(AXPWidgetRegistryService);\n this.connector = inject(AXPDesignerConnector);\n this.eventService = inject(AXPBroadcastEventService);\n this.widgetPickerService = inject(AXPWidgetPickerService);\n this.document = signal(this.createDoc(), ...(ngDevMode ? [{ debugName: \"document\" }] : []));\n this.currentPageIndex = signal(0, ...(ngDevMode ? [{ debugName: \"currentPageIndex\" }] : []));\n this.currentPage = signal(this.document().children?.[0], ...(ngDevMode ? [{ debugName: \"currentPage\" }] : []));\n this.commandManager = inject(CommandManager);\n this.clipboard = signal(null, ...(ngDevMode ? [{ debugName: \"clipboard\" }] : []));\n //\n this.canCutCopy = computed(() => this.can(this.selectedNode()).copyOrCut, ...(ngDevMode ? [{ debugName: \"canCutCopy\" }] : []));\n this.canDelete = computed(() => this.can(this.selectedNode()).delete, ...(ngDevMode ? [{ debugName: \"canDelete\" }] : []));\n this.canInsert = computed(() => this.can(this.selectedNode()).insert, ...(ngDevMode ? [{ debugName: \"canInsert\" }] : []));\n this.canPaste = computed(() => this.can(this.selectedNode()).paste, ...(ngDevMode ? [{ debugName: \"canPaste\" }] : []));\n //\n this.history = computed(() => this.commandManager.history(), ...(ngDevMode ? [{ debugName: \"history\" }] : []));\n this.canUndo = computed(() => this.commandManager.canUndo(), ...(ngDevMode ? [{ debugName: \"canUndo\" }] : []));\n this.canRedo = computed(() => this.commandManager.canRedo(), ...(ngDevMode ? [{ debugName: \"canRedo\" }] : []));\n //\n this.canSave = computed(() => this.templateId() != null, ...(ngDevMode ? [{ debugName: \"canSave\" }] : []));\n this.unsavedChanges = signal(false, ...(ngDevMode ? [{ debugName: \"unsavedChanges\" }] : []));\n this.breadcrumbs = computed(() => {\n return this.selectedNode() ? this.findBreadcrumbs(this.currentPage(), this.selectedNode()) ?? [] : [];\n }, ...(ngDevMode ? [{ debugName: \"breadcrumbs\" }] : []));\n this.selectedNode = signal(null, ...(ngDevMode ? [{ debugName: \"selectedNode\" }] : []));\n this.selectedNodeConfig = computed(() => get(this.selectedNode(), '__meta__.config'), ...(ngDevMode ? [{ debugName: \"selectedNodeConfig\" }] : []));\n this._focusedNode = null;\n this.focusedNode = () => this._focusedNode;\n this.size = signal('xl', ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n this.onSelected = new Subject();\n this.onRefresh = new Subject();\n this.onUpdate = new Subject();\n this.onFocused = new Subject();\n this.templateId = signal(null, ...(ngDevMode ? [{ debugName: \"templateId\" }] : []));\n this.loadingStrategy = signal(AXPTemplateLoadingStrategy.Connector, ...(ngDevMode ? [{ debugName: \"loadingStrategy\" }] : []));\n this.#ef = effect(() => {\n this.refresh({ widget: this.currentPage() });\n }, ...(ngDevMode ? [{ debugName: \"#ef\" }] : []));\n this.can = (widget) => {\n if (!widget) {\n return {\n delete: false,\n copyOrCut: false,\n insert: false,\n paste: false,\n };\n }\n const config = get(widget, '__meta__.config');\n return {\n delete: widget.type != 'page-layout',\n copyOrCut: widget.type != 'page-layout',\n paste: this.clipboard() != null && config.type == 'container' && config.designer?.canInsert != false,\n insert: config.type == 'container' && config.designer?.canInsert != false,\n };\n };\n this.eventService.listen(AXPDesignerMessageKeys.Loaded).subscribe(() => {\n this.updatePreview();\n });\n //\n this.eventService.listen(AXPDesignerMessageKeys.PreviewWindow).subscribe(() => {\n this.openPreviewWindow();\n });\n //\n // window.addEventListener(\"beforeunload\", (event) => {\n // console.log(\"Window is before closing...\");\n // // event.preventDefault();\n // // event.returnValue = 'abc'; // Some browsers require this to show the prompt.\n // });\n window.addEventListener(\"unload\", async () => {\n console.log(\"Window is closing...\");\n if (this.unsavedChanges()) {\n this.eventService.publish(AXPDesignerMessageKeys.SaveForm, { id: this.templateId(), success: false });\n }\n this.unsubscribeEvents();\n });\n }\n register(command) {\n this.select({ widget: command.widget });\n }\n select(command) {\n this.selectedNode.set(command.widget);\n this.onSelected.next(command);\n }\n update(command) {\n const node = command.widget ?? this.selectedNode();\n if (command.mode == 'update' && node) {\n this.commandManager.executeCommand(new UpdateWidgetCommand(node, command.values, node));\n }\n //this.selectedNode.update((c) => merge(node, command.values));\n this.onUpdate.next({ widget: node, values: command.values });\n this.unsavedChanges.set(true);\n this.updatePreview();\n }\n focus(command) {\n if (this._focusedNode != command.widget) {\n this._focusedNode = command.widget;\n this.onFocused.next({ widget: this._focusedNode });\n }\n }\n refresh(command) {\n this.onRefresh.next({ widget: command.widget });\n this.updatePreview();\n }\n findBreadcrumbs(node, targetNode, breadcrumb = []) {\n // Add the current node to the breadcrumb path\n const currentBreadcrumb = [...breadcrumb, node];\n // Check if the current node is the target node\n if (node === targetNode) {\n return currentBreadcrumb;\n }\n // If the node has children, recursively search them\n if (node.children) {\n for (const child of node.children) {\n const result = this.findBreadcrumbs(child, targetNode, currentBreadcrumb);\n if (result) {\n return result;\n }\n }\n }\n // Return undefined if no match is found\n return undefined;\n }\n async showPicker(currentNode = this.selectedNode()) {\n const widgets = await this.widgetPickerService.showPicker({ groups: [AXPWidgetGroupEnum.FormElement] });\n const result = [];\n if (widgets.length) {\n widgets.forEach((c) => {\n result.push(this.addWidget(currentNode, { type: c.type }));\n });\n }\n return result;\n }\n new() {\n this.commandManager.clear();\n this.document.set(this.createDoc());\n this.currentPage.set(this.document().children?.[0]);\n this.reRenderPage();\n }\n createDoc() {\n const doc = {\n type: AXPWidgetsCatalog.document,\n children: [this.createPage()],\n name: 'document',\n };\n set(doc, '__meta__.id', this.generateUniqueId());\n return doc;\n }\n createPage() {\n const config = this.widgetRegisteryService.resolve('page-layout');\n const page = {\n type: 'page-layout',\n children: [],\n name: 'page-layout1',\n };\n set(page, '__meta__.id', this.generateUniqueId());\n set(page, '__meta__.config', config);\n return page;\n }\n addNewPage() {\n this.addWidget(this.document(), this.createPage());\n this.goToPage(this.currentPageIndex() + 1);\n }\n removePage(index) {\n const page = this.document().children?.[index];\n this.removeWidget(page);\n this.goToPage(index - 1);\n }\n clonePage(index) {\n const page = this.document().children?.[index];\n this.clone(page);\n this.goToPage((this.document().children?.length ?? 1) - 1);\n }\n goToPage(index) {\n this.currentPageIndex.set(index);\n this.currentPage.set(this.document().children?.[this.currentPageIndex()]);\n this.select({ widget: this.currentPage() });\n }\n reRenderPage() {\n this.currentPage.set({ ...this.currentPage() });\n setTimeout(() => {\n this.refresh({ widget: this.currentPage() });\n });\n }\n findWidgetById(root, id) {\n if (get(root, '__meta__.id') === id) {\n return root; // Return the root if it matches the ID\n }\n if (!root.children)\n return null;\n for (const child of root.children) {\n const found = this.findWidgetById(child, id);\n if (found) {\n return found; // Return the found child\n }\n }\n return null; // Node not found\n }\n findParent(id, parent = this.currentPage()) {\n if (!parent.children)\n return null;\n if (parent.children.some((child) => get(child, '__meta__.id') === id)) {\n return parent; // Return this node as it's the parent of the node with the given ID\n }\n for (const child of parent.children) {\n const foundParent = this.findParent(id, child);\n if (foundParent)\n return foundParent;\n }\n return null; // No parent found\n }\n findNearestContainer(node, searchUpward = true) {\n if (searchUpward) {\n let current = node;\n while (current) {\n const config = this.widgetRegisteryService.resolve(current.type);\n if (config && config.type == 'container') {\n return current;\n }\n current = this.findParent(get(current, '__meta__.id')); // Use findParent to navigate upwards\n }\n }\n else {\n // Recursive search to find the first container among children\n if (node.children) {\n for (const child of node.children) {\n const config = this.widgetRegisteryService.resolve(child.type);\n if (config && config.type == 'container') {\n return child;\n }\n const foundContainer = this.findNearestContainer(child, false); // Continue searching downwards\n if (foundContainer)\n return foundContainer;\n }\n }\n }\n return null; // Return null if no container found\n }\n addWidget(currentNode, node) {\n //\n const cloned = cloneDeep(node);\n const config = this.widgetRegisteryService.resolve(node.type);\n //\n this.commandManager.executeCommand(new AddWidgetCommand(cloned, currentNode, currentNode));\n //\n cloned.name = this.generateUniqueName(node.type);\n set(cloned, '__meta__.id', this.generateUniqueId());\n set(cloned, '__meta__.config', config);\n set(cloned, '__meta__.added', true);\n //\n this.reRenderPage();\n //\n this.refresh({ widget: currentNode });\n this.select({ widget: cloned });\n return cloned;\n }\n removeWidget(node = this.selectedNode()) {\n if (node.type === 'document-layout' ||\n (node.type === 'page-layout' && (this.document().children?.length ?? 1) == 1)) {\n console.error('Cannot remove the page node.');\n return; // Prevent removing the root page node or document\n }\n const nodeIdToRemove = get(node, '__meta__.id');\n if (!nodeIdToRemove) {\n throw new Error('Node does not have a valid __meta__.id to identify it for removal.');\n }\n // Find the parent of the node to remove it\n const parent = this.findParent(nodeIdToRemove, this.document());\n if (!parent) {\n throw new Error('Parent node not found. The node might be the root node or does not exist.');\n }\n const previousSelection = this.selectedNode(); // Capture the currently selected node before removal\n const command = new RemoveWidgetCommand(node, parent, previousSelection);\n this.commandManager.executeCommand(command);\n this.refresh({ widget: parent }); // Refresh the UI to reflect changes\n this.select({ widget: parent }); // Select the parent node after removal\n }\n navigateTo(index) {\n this.commandManager.goToCommand(index);\n this.reRenderPage();\n const currentSelection = this.commandManager.selectedNode();\n this.refresh({ widget: this.currentPage() });\n this.select({ widget: currentSelection });\n }\n redo() {\n this.commandManager.redo();\n this.reRenderPage();\n const currentSelection = this.commandManager.selectedNode();\n this.refresh({ widget: this.currentPage() });\n this.select({ widget: currentSelection });\n }\n undo() {\n this.commandManager.undo();\n this.reRenderPage();\n const currentSelection = this.commandManager.selectedNode();\n this.refresh({ widget: this.currentPage() });\n this.select({ widget: currentSelection });\n }\n clearHistory() {\n this.commandManager.clear();\n }\n removeMetaProp(obj) {\n const nodeName = '__meta__';\n // Check if the object is an array\n if (Array.isArray(obj)) {\n return obj.map((item) => this.removeMetaProp(item));\n }\n else if (typeof obj === 'object' && obj !== null) {\n // Create a new object to store the result\n let newObj = {};\n for (let key in obj) {\n // Only add the key if it's not the nodeName we want to remove\n if (key !== nodeName) {\n newObj[key] = this.removeMetaProp(obj[key]);\n }\n }\n return newObj;\n }\n // If the value is not an object or array, return it as is\n return obj;\n }\n async addMetaToNodes(node, processedNodes, progressCallback) {\n // Apply your meta logic here\n const config = this.widgetRegisteryService.resolve(node.type);\n //\n set(node, '__meta__.id', this.generateUniqueId());\n set(node, '__meta__.config', config);\n //\n // Increment the processed node count and update the progress dialog\n processedNodes.count++;\n progressCallback(processedNodes.count);\n // Recursively process child nodes using Promise.all\n if (node.children && node.children.length > 0) {\n node.children = await Promise.all(node.children.map(async (child) => await this.addMetaToNodes(child, processedNodes, progressCallback)));\n }\n return node;\n }\n copy(widget = this.selectedNode()) {\n if (this.can(widget).copyOrCut) {\n this.clipboard.set(cloneDeep(widget)); // Use lodash's cloneDeep to ensure a deep copy\n }\n }\n cut(widget = this.selectedNode()) {\n if (this.can(widget).copyOrCut) {\n this.copy(widget); // Copy the widget to the clipboard\n this.removeWidget(widget); // Reuse the removeWidget method which should handle undo internally\n }\n }\n clone(widget = this.selectedNode()) {\n if (!widget)\n return;\n this.copy(widget); // Copy the widget to the clipboard\n if (widget.type == 'page-layout') {\n this.paste(this.document());\n }\n else {\n this.paste(widget);\n }\n }\n paste(parentNode = this.selectedNode() ?? this.currentPage()) {\n if (!this.clipboard() || !this.selectedNode() || !parentNode) {\n console.error('Clipboard is empty or no node is selected.');\n return;\n }\n const newNode = cloneDeep(this.clipboard());\n const nearestContainer = this.findNearestContainer(parentNode, true);\n if (!nearestContainer) {\n console.error('No suitable container found.');\n return;\n }\n //\n if (!nearestContainer.children) {\n nearestContainer.children = [];\n }\n //\n const setNameId = (node) => {\n set(node, 'name', this.generateUniqueName(node.type));\n set(node, '__meta__.id', this.generateUniqueId());\n node.children?.forEach((n) => {\n setNameId(n);\n });\n };\n setNameId(newNode);\n //\n this.commandManager.executeCommand(new AddWidgetCommand(newNode, nearestContainer, nearestContainer));\n //\n setTimeout(() => {\n this.refresh({ widget: nearestContainer }); // Refresh the UI\n this.select({ widget: newNode }); // Select the newly pasted node\n });\n }\n async save() {\n if (this.templateId()) {\n const content = this.export();\n if (this.loadingStrategy() == AXPTemplateLoadingStrategy.Connector) {\n await this.connector.save(this.templateId(), { json: content });\n this.toastService.success('Your changes saved successfully');\n }\n else {\n const result = await this.eventService.sendAndWaitForResponse(AXPDesignerMessageKeys.SaveForm, { id: this.templateId(), success: true, content });\n if (result.success) {\n this.unsavedChanges.set(false);\n window.close();\n }\n }\n }\n else {\n this.downloadJson();\n }\n }\n async saveAs(node = this.document()) {\n const content = this.export(node);\n const result = await this.connector.saveAs({ json: content });\n if (result) {\n this.toastService.success('Your changes saved successfully');\n }\n }\n export(node = this.document()) {\n const json = this.removeMetaProp(node);\n return JSON.stringify(json);\n }\n downloadJson() {\n // Convert the object to a JSON string\n const jsonStr = this.export();\n // Create a blob object from the JSON string\n const blob = new Blob([jsonStr], { type: 'application/json' });\n // Create a URL for the blob object\n const url = URL.createObjectURL(blob);\n // Create a temporary <a> element to trigger the download\n const a = document.createElement('a');\n a.href = url;\n a.download = 'export.json';\n // Append the <a> element to the document body (necessary for some browsers)\n document.body.appendChild(a);\n // Trigger the download by clicking the <a> element\n a.click();\n // Clean up by revoking the object URL and removing the <a> element\n URL.revokeObjectURL(url);\n document.body.removeChild(a);\n }\n async loadById(id, options = { strategy: AXPTemplateLoadingStrategy.Connector }) {\n let content = null;\n try {\n if (options.strategy == AXPTemplateLoadingStrategy.Connector) {\n content = await this.connector.load(id);\n }\n else {\n content = await this.eventService.sendAndWaitForResponse(AXPDesignerMessageKeys.RequestFormContent, { formId: id }, { timeout: 10000, retries: 3, retryDelay: 1000 });\n }\n if (!isNil(content) && !isEmpty(content)) {\n await this.loadByContent(content);\n }\n this.templateId.set(id);\n this.loadingStrategy.set(options.strategy);\n }\n catch (error) {\n this.toastService.danger(error.message);\n }\n }\n async importJSon() {\n const files = await this.fileService.choose({ multiple: false, accept: 'application/json' });\n if (files && files.length) {\n const file = files[0];\n const content = await file.text();\n await this.loadByContent(content);\n }\n }\n async loadByContent(content) {\n const rootNode = JSON.parse(content);\n const totalNode = this.countTotalNodes(rootNode);\n const processedNodes = { count: 0 };\n const button = {\n text: 'Cancel',\n autofocus: true,\n color: 'primary',\n onClick: (e) => {\n dialog.close();\n },\n };\n const dialog = this.loadingService.show({\n mode: 'determinate',\n title: 'Loading Content',\n progressColor: 'primary',\n text: 'Processing content',\n status: `0 of ${totalNode}`,\n buttons: [button],\n });\n try {\n const root = await this.addMetaToNodes(rootNode, processedNodes, (count) => {\n dialog.setProgressValue(Math.ceil((count / totalNode) * 100));\n dialog.setProgressStatus(`${count} of ${totalNode}`);\n });\n const page = root.children?.[0];\n this.document.set(root);\n this.currentPage.set(page);\n dialog.setProgressColor('success');\n dialog.setProgressText('Content loaded successfully');\n button.text = 'Okay';\n button.color = 'success';\n dialog.setProgressValue(100);\n setTimeout(() => {\n this.reRenderPage();\n dialog.close();\n }, 250);\n }\n catch (error) {\n dialog.setProgressColor('danger');\n dialog.setProgressText(error instanceof Error ? error.message : 'Cannot load content');\n button.text = 'Close';\n button.color = 'danger';\n }\n }\n countTotalNodes(node) {\n let count = 1; // Count the current node\n if (node.children && node.children.length > 0) {\n count += node.children.reduce((sum, child) => sum + this.countTotalNodes(child), 0);\n }\n return count;\n }\n generateUniqueName(type) {\n // Normalize the type to follow camelCase convention\n const baseName = type.charAt(0).toLowerCase() + type.slice(1);\n let index = 1;\n let uniqueName = `${baseName}${index}`;\n // Gather all existing names to check against\n const existingNames = new Set();\n this.collectAllNames(this.document(), existingNames);\n // Increment the index until a unique name is found\n while (existingNames.has(uniqueName)) {\n index++;\n uniqueName = `${baseName}${index}`;\n }\n return uniqueName;\n }\n generateUniqueId() {\n return Math.random() * Math.pow(10, 18);\n }\n collectAllNames(node, names) {\n if (node.name) {\n names.add(node.name);\n }\n if (node.children) {\n for (const child of node.children) {\n this.collectAllNames(child, names);\n }\n }\n }\n updatePreview() {\n this.eventService.publish(AXPDesignerMessageKeys.Preview, {\n id: this.templateId(),\n document: this.removeMetaProp(this.document())\n });\n }\n async openPreviewDialog() {\n const com = await import('../../preview/preview.component').then((c) => c.AXPLayoutDesignerPreviewComponent);\n await this.popupService.open(com, {\n header: false,\n size: 'full',\n data: {\n initialSize: this.size(),\n isDialogWindow: true,\n },\n });\n }\n openPreviewWindow() {\n window.open('/forms/preview', '_blank');\n }\n getContextMenuItems(instance, isRoot = false) {\n const widget = instance;\n const node = widget.node;\n const items = [];\n // \n if (this.can(node).insert) {\n items.push(cloneWidgetMenu(AXP_DESIGNER_ADD_WIDGET_MENU, {\n break: true,\n }));\n }\n //\n items.push(cloneWidgetMenu(AXP_DESIGNER_CLONE_MENU, { disabled: !this.can(node).copyOrCut }));\n items.push(cloneWidgetMenu(AXP_DESIGNER_CUT_MENU, { disabled: !this.can(node).copyOrCut }));\n items.push(cloneWidgetMenu(AXP_DESIGNER_COPY_MENU, { disabled: !this.can(node).copyOrCut }));\n items.push(cloneWidgetMenu(AXP_DESIGNER_PASTE_MENU, { disabled: !this.can(node).paste, break: true }));\n //\n items.push(cloneWidgetMenu(AXP_DESIGNER_DELETE_WIDGET_MENU, { disabled: !this.can(node).delete, break: true }));\n //\n items.push(cloneWidgetMenu(AXP_DESIGNER_SAVE_AS_WIDGET_MENU));\n if (instance.onContextMenu) {\n instance.onContextMenu({ items });\n }\n if (!isRoot) {\n items.forEach(item => {\n item.suffix = undefined;\n });\n }\n return items;\n }\n async executeCommand(context) {\n const widget = context.instance;\n if (context.instance.executeCommand) {\n const command = {\n name: context.name,\n data: context.data,\n handled: false\n };\n await context.instance.executeCommand(command);\n if (command.handled)\n return;\n }\n switch (context.name) {\n case AXP_DESIGNER_SELECT_WIDGET_MENU.name: {\n this.select({ widget: widget.node });\n break;\n }\n case AXP_DESIGNER_ADD_WIDGET_MENU.name: {\n this.showPicker(widget.node);\n break;\n }\n //\n case AXP_DESIGNER_DELETE_WIDGET_MENU.name: {\n this.removeWidget(widget.node);\n break;\n }\n //\n case AXP_DESIGNER_CLONE_MENU.name: {\n this.clone(widget.node);\n break;\n }\n case AXP_DESIGNER_CUT_MENU.name: {\n this.cut(widget.node);\n break;\n }\n case AXP_DESIGNER_COPY_MENU.name: {\n this.copy(widget.node);\n break;\n }\n case AXP_DESIGNER_PASTE_MENU.name: {\n this.paste(widget.node);\n break;\n }\n //\n }\n }\n unsubscribeEvents() {\n this.eventService.unsubscribe(AXPDesignerMessageKeys.Loaded);\n this.eventService.unsubscribe(AXPDesignerMessageKeys.PreviewWindow);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QixzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFJTCxrQkFBa0IsRUFFbEIsd0JBQXdCLEVBQ3hCLGlCQUFpQixHQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQXlCLEdBQUcsRUFBVSxNQUFNLFdBQVcsQ0FBQztBQUMvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQiwrQkFBK0IsSUFBSSwrQkFBK0IsRUFDbEUsdUJBQXVCLEVBQ3ZCLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0Is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QXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLE1BQUs7WUFDUCxDQUFDO1lBQ0QsRUFBRTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0F4dkJVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhMb2FkaW5nRGlhbG9nQnV0dG9uSXRlbSwgQVhMb2FkaW5nRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuaW1wb3J0IHsgQVhGaWxlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7XG4gIEFYUEJhc2VXaWRnZXRDb21wb25lbnQsXG4gIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50LFxuICBBWFBXaWRnZXRDb25maWcsXG4gIEFYUFdpZGdldEdyb3VwRW51bSxcbiAgQVhQV2lkZ2V0Tm9kZSxcbiAgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlLFxuICBBWFBXaWRnZXRzQ2F0YWxvZyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc0VtcHR5LCBpc05pbCwgaXNOdWxsLCBtZXJnZSwgcmVzdWx0LCBzZXQsIHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZGRXaWRnZXRDb21tYW5kLCBDb21tYW5kTWFuYWdlciwgUmVtb3ZlV2lkZ2V0Q29tbWFuZCwgVXBkYXRlV2lkZ2V0Q29tbWFuZCB9IGZyb20gJy4vY29tbWFuZCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckNvbm5lY3RvciB9IGZyb20gJy4vZGVzaWduZXItY29ubmVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQVhQX0RFU0lHTkVSX0FERF9XSURHRVRfTUVOVSxcbiAgQVhQX0RFU0lHTkVSX0NMT05FX01FTlUsXG4gIEFYUF9ERVNJR05FUl9DT1BZX01FTlUsXG4gIEFYUF9ERVNJR05FUl9DVVRfTUVOVSxcbiAgQVhQX0RFU0lHTkVSX0RFTEVURV9XSURHRVRfTUVOVSBhcyBBWFBfREVTSUdORVJfREVMRVRFX1dJREdFVF9NRU5VLFxuICBBWFBfREVTSUdORVJfUEFTVEVfTUVOVSxcbiAgQVhQX0RFU0lHTkVSX1NBVkVfQVNfV0lER0VUX01FTlUsXG4gIEFYUF9ERVNJR05FUl9TRUxFQ1RfV0lER0VUX01FTlUsXG4gIGNsb25lV2lkZ2V0TWVudSxcbn0gZnJvbSAnLi9nZW5lcmljLWNvbW1hbmRzLnR5cGVzJztcbmltcG9ydCB7IEFYUERlc2lnbmVyTWVzc2FnZUtleXMsIEFYUERlc2lnbmVyUHJldmlld01lc3NhZ2UsIEFYUERlc2lnbmVyU2F2ZUZvcm1NZXNzYWdlLCBBWFBEZXNpZ25lcldpZGdldENvbXBvbmVudCwgQVhQVGVtcGxhdGVMb2FkaW5nU3RyYXRlZ3kgfSBmcm9tICcuL2Rlc2lnbmVyLnR5cGVzJztcbmltcG9ydCB7IEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy93aWRnZXQtcGlja2VyL3dpZGdldC1waWNrZXIuc2VydmljZSc7XG5leHBvcnQgdHlwZSBBWFBEZXNpZ25lclByZXZpZXdTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICd4eGwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyRm9jdXNDb21tYW5kIHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclVwZGF0ZUNvbW1hbmQge1xuICB2YWx1ZXM6IGFueTtcbiAgd2lkZ2V0PzogQVhQV2lkZ2V0Tm9kZSB8IG51bGw7XG4gIG1vZGU6ICdpbml0JyB8ICd1cGRhdGUnO1xufVxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclVwZGF0ZUV2ZW50IHtcbiAgdmFsdWVzOiBhbnk7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclNlbGVjdENvbW1hbmQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVzaWduZXJSZWdpc3RlckNvbW1hbmQge1xuICBpZDogbnVtYmVyO1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG4gIGNvbmZpZzogQVhQV2lkZ2V0Q29uZmlnO1xuICBpbnN0YW5jZTogQVhQQmFzZVdpZGdldENvbXBvbmVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclNlbGVjdEV2ZW50IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyUmVmcmVzaENvbW1hbmQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyUmVmcmVzaEV2ZW50IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyQWRkTm9kZUNvbW1hbmQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyQWRkTm9kZUV2ZW50IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyRm9jdXNFdmVudCB7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZSB8IG51bGw7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lclNlcnZpY2Uge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmaWxlU2VydmljZSA9IGluamVjdChBWEZpbGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsb2FkaW5nU2VydmljZSA9IGluamVjdChBWExvYWRpbmdEaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3aWRnZXRSZWdpc3RlcnlTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgY29ubmVjdG9yID0gaW5qZWN0KEFYUERlc2lnbmVyQ29ubmVjdG9yKTtcbiAgcHJpdmF0ZSBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3aWRnZXRQaWNrZXJTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFBpY2tlclNlcnZpY2UpO1xuXG5cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50ID0gc2lnbmFsKHRoaXMuY3JlYXRlRG9jKCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudFBhZ2VJbmRleCA9IHNpZ25hbCgwKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudFBhZ2UgPSBzaWduYWwodGhpcy5kb2N1bWVudCgpLmNoaWxkcmVuPy5bMF0gYXMgQVhQV2lkZ2V0Tm9kZSk7XG5cbiAgcHJpdmF0ZSBjb21tYW5kTWFuYWdlciA9IGluamVjdChDb21tYW5kTWFuYWdlcik7XG5cbiAgcHJpdmF0ZSBjbGlwYm9hcmQgPSBzaWduYWw8QVhQV2lkZ2V0Tm9kZSB8IG51bGw+KG51bGwpO1xuXG4gIC8vXG4gIHB1YmxpYyBjYW5DdXRDb3B5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jYW4odGhpcy5zZWxlY3RlZE5vZGUoKSkuY29weU9yQ3V0KTtcbiAgcHVibGljIGNhbkRlbGV0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY2FuKHRoaXMuc2VsZWN0ZWROb2RlKCkpLmRlbGV0ZSk7XG4gIHB1YmxpYyBjYW5JbnNlcnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNhbih0aGlzLnNlbGVjdGVkTm9kZSgpKS5pbnNlcnQpO1xuICBwdWJsaWMgY2FuUGFzdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNhbih0aGlzLnNlbGVjdGVkTm9kZSgpKS5wYXN0ZSk7XG4gIC8vXG4gIHB1YmxpYyByZWFkb25seSBoaXN0b3J5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb21tYW5kTWFuYWdlci5oaXN0b3J5KCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FuVW5kbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29tbWFuZE1hbmFnZXIuY2FuVW5kbygpKTtcbiAgcHVibGljIHJlYWRvbmx5IGNhblJlZG8gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNhblJlZG8oKSk7XG4gIC8vXG4gIHB1YmxpYyByZWFkb25seSBjYW5TYXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50ZW1wbGF0ZUlkKCkgIT0gbnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHVuc2F2ZWRDaGFuZ2VzID0gc2lnbmFsKGZhbHNlKTtcblxuICBwdWJsaWMgYnJlYWRjcnVtYnMgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE5vZGUoKSA/IHRoaXMuZmluZEJyZWFkY3J1bWJzKHRoaXMuY3VycmVudFBhZ2UoKSwgdGhpcy5zZWxlY3RlZE5vZGUoKSkgPz8gW10gOiBbXTtcbiAgfSk7XG5cbiAgcHVibGljIHNlbGVjdGVkTm9kZSA9IHNpZ25hbDxBWFBXaWRnZXROb2RlIHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHNlbGVjdGVkTm9kZUNvbmZpZyA9IGNvbXB1dGVkKCgpID0+IGdldCh0aGlzLnNlbGVjdGVkTm9kZSgpLCAnX19tZXRhX18uY29uZmlnJykgYXMgYW55IGFzIEFYUFdpZGdldENvbmZpZyk7XG5cbiAgcHJpdmF0ZSBfZm9jdXNlZE5vZGU6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGZvY3VzZWROb2RlID0gKCkgPT4gdGhpcy5fZm9jdXNlZE5vZGU7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNpemUgPSBzaWduYWw8QVhQRGVzaWduZXJQcmV2aWV3U2l6ZT4oJ3hsJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9uU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDxBWFBEZXNpZ25lclNlbGVjdEV2ZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb25SZWZyZXNoID0gbmV3IFN1YmplY3Q8QVhQRGVzaWduZXJSZWZyZXNoRXZlbnQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvblVwZGF0ZSA9IG5ldyBTdWJqZWN0PEFYUERlc2lnbmVyVXBkYXRlRXZlbnQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvbkZvY3VzZWQgPSBuZXcgU3ViamVjdDxBWFBEZXNpZ25lckZvY3VzRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSB0ZW1wbGF0ZUlkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgbG9hZGluZ1N0cmF0ZWd5ID0gc2lnbmFsPEFYUFRlbXBsYXRlTG9hZGluZ1N0cmF0ZWd5PihBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneS5Db25uZWN0b3IpO1xuXG4gICNlZiA9IGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IHRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICB9XG4gICk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UubGlzdGVuKEFYUERlc2lnbmVyTWVzc2FnZUtleXMuTG9hZGVkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQcmV2aWV3KCk7XG4gICAgfSlcbiAgICAvL1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmxpc3RlbihBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlByZXZpZXdXaW5kb3cpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm9wZW5QcmV2aWV3V2luZG93KCk7XG4gICAgfSk7XG4gICAgLy9cbiAgICAvLyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZXVubG9hZFwiLCAoZXZlbnQpID0+IHtcbiAgICAvLyAgIGNvbnNvbGUubG9nKFwiV2luZG93IGlzIGJlZm9yZSBjbG9zaW5nLi4uXCIpO1xuICAgIC8vICAgLy8gZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyAgIC8vIGV2ZW50LnJldHVyblZhbHVlID0gJ2FiYyc7IC8vIFNvbWUgYnJvd3NlcnMgcmVxdWlyZSB0aGlzIHRvIHNob3cgdGhlIHByb21wdC5cbiAgICAvLyB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInVubG9hZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhcIldpbmRvdyBpcyBjbG9zaW5nLi4uXCIpO1xuICAgICAgaWYgKHRoaXMudW5zYXZlZENoYW5nZXMoKSkge1xuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5wdWJsaXNoPEFYUERlc2lnbmVyU2F2ZUZvcm1NZXNzYWdlPihBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlNhdmVGb3JtLCB7IGlkOiB0aGlzLnRlbXBsYXRlSWQoKSEsIHN1Y2Nlc3M6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy51bnN1YnNjcmliZUV2ZW50cygpO1xuICAgIH0pO1xuICB9XG5cblxuICBwcml2YXRlIGNhbiA9ICh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsKToge1xuICAgIGRlbGV0ZTogYm9vbGVhbixcbiAgICBjb3B5T3JDdXQ6IGJvb2xlYW4sXG4gICAgaW5zZXJ0OiBib29sZWFuLFxuICAgIHBhc3RlOiBib29sZWFuLFxuICB9ID0+IHtcbiAgICBpZiAoIXdpZGdldCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVsZXRlOiBmYWxzZSxcbiAgICAgICAgY29weU9yQ3V0OiBmYWxzZSxcbiAgICAgICAgaW5zZXJ0OiBmYWxzZSxcbiAgICAgICAgcGFzdGU6IGZhbHNlLFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjb25maWcgPSBnZXQod2lkZ2V0LCAnX19tZXRhX18uY29uZmlnJykgYXMgYW55IGFzIEFYUFdpZGdldENvbmZpZztcbiAgICByZXR1cm4ge1xuICAgICAgZGVsZXRlOiB3aWRnZXQudHlwZSAhPSAncGFnZS1sYXlvdXQnLFxuICAgICAgY29weU9yQ3V0OiB3aWRnZXQudHlwZSAhPSAncGFnZS1sYXlvdXQnLFxuICAgICAgcGFzdGU6IHRoaXMuY2xpcGJvYXJkKCkgIT0gbnVsbCAmJiBjb25maWcudHlwZSA9PSAnY29udGFpbmVyJyAmJiBjb25maWcuZGVzaWduZXI/LmNhbkluc2VydCAhPSBmYWxzZSxcbiAgICAgIGluc2VydDogY29uZmlnLnR5cGUgPT0gJ2NvbnRhaW5lcicgJiYgY29uZmlnLmRlc2lnbmVyPy5jYW5JbnNlcnQgIT0gZmFsc2UsXG4gICAgfVxuICB9XG5cblxuXG4gIHB1YmxpYyByZWdpc3Rlcihjb21tYW5kOiBBWFBEZXNpZ25lclJlZ2lzdGVyQ29tbWFuZCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBjb21tYW5kLndpZGdldCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoY29tbWFuZDogQVhQRGVzaWduZXJTZWxlY3RDb21tYW5kKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGUuc2V0KGNvbW1hbmQud2lkZ2V0KTtcbiAgICB0aGlzLm9uU2VsZWN0ZWQubmV4dChjb21tYW5kKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUoY29tbWFuZDogQVhQRGVzaWduZXJVcGRhdGVDb21tYW5kKTogdm9pZCB7XG4gICAgY29uc3Qgbm9kZSA9IGNvbW1hbmQud2lkZ2V0ID8/IHRoaXMuc2VsZWN0ZWROb2RlKCk7XG5cbiAgICBpZiAoY29tbWFuZC5tb2RlID09ICd1cGRhdGUnICYmIG5vZGUpIHtcbiAgICAgIHRoaXMuY29tbWFuZE1hbmFnZXIuZXhlY3V0ZUNvbW1hbmQobmV3IFVwZGF0ZVdpZGdldENvbW1hbmQobm9kZSEsIGNvbW1hbmQudmFsdWVzLCBub2RlISkpO1xuICAgIH1cbiAgICAvL3RoaXMuc2VsZWN0ZWROb2RlLnVwZGF0ZSgoYykgPT4gbWVyZ2Uobm9kZSwgY29tbWFuZC52YWx1ZXMpKTtcbiAgICB0aGlzLm9uVXBkYXRlLm5leHQoeyB3aWRnZXQ6IG5vZGUhLCB2YWx1ZXM6IGNvbW1hbmQudmFsdWVzIH0pO1xuICAgIHRoaXMudW5zYXZlZENoYW5nZXMuc2V0KHRydWUpO1xuICAgIHRoaXMudXBkYXRlUHJldmlldygpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKGNvbW1hbmQ6IEFYUERlc2lnbmVyRm9jdXNDb21tYW5kKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2ZvY3VzZWROb2RlICE9IGNvbW1hbmQud2lkZ2V0KSB7XG4gICAgICB0aGlzLl9mb2N1c2VkTm9kZSA9IGNvbW1hbmQud2lkZ2V0O1xuICAgICAgdGhpcy5vbkZvY3VzZWQubmV4dCh7IHdpZGdldDogdGhpcy5fZm9jdXNlZE5vZGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goY29tbWFuZDogQVhQRGVzaWduZXJSZWZyZXNoQ29tbWFuZCkge1xuICAgIHRoaXMub25SZWZyZXNoLm5leHQoeyB3aWRnZXQ6IGNvbW1hbmQud2lkZ2V0IH0pO1xuICAgIHRoaXMudXBkYXRlUHJldmlldygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQnJlYWRjcnVtYnMoXG4gICAgbm9kZTogQVhQV2lkZ2V0Tm9kZSxcbiAgICB0YXJnZXROb2RlPzogQVhQV2lkZ2V0Tm9kZSB8IG51bGwsXG4gICAgYnJlYWRjcnVtYjogQVhQV2lkZ2V0Tm9kZVtdID0gW11cbiAgKTogQVhQV2lkZ2V0Tm9kZVtdIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBBZGQgdGhlIGN1cnJlbnQgbm9kZSB0byB0aGUgYnJlYWRjcnVtYiBwYXRoXG4gICAgY29uc3QgY3VycmVudEJyZWFkY3J1bWIgPSBbLi4uYnJlYWRjcnVtYiwgbm9kZV07XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBub2RlIGlzIHRoZSB0YXJnZXQgbm9kZVxuICAgIGlmIChub2RlID09PSB0YXJnZXROb2RlKSB7XG4gICAgICByZXR1cm4gY3VycmVudEJyZWFkY3J1bWI7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIG5vZGUgaGFzIGNoaWxkcmVuLCByZWN1cnNpdmVseSBzZWFyY2ggdGhlbVxuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kQnJlYWRjcnVtYnMoY2hpbGQsIHRhcmdldE5vZGUsIGN1cnJlbnRCcmVhZGNydW1iKTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vIG1hdGNoIGlzIGZvdW5kXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGFzeW5jIHNob3dQaWNrZXIoY3VycmVudE5vZGU6IEFYUFdpZGdldE5vZGUgPSB0aGlzLnNlbGVjdGVkTm9kZSgpISk6IFByb21pc2U8QVhQV2lkZ2V0Tm9kZVtdPiB7XG4gICAgY29uc3Qgd2lkZ2V0cyA9IGF3YWl0IHRoaXMud2lkZ2V0UGlja2VyU2VydmljZS5zaG93UGlja2VyKHsgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLkZvcm1FbGVtZW50XSB9KTtcbiAgICBjb25zdCByZXN1bHQ6IEFYUFdpZGdldE5vZGVbXSA9IFtdO1xuICAgIGlmICh3aWRnZXRzLmxlbmd0aCkge1xuICAgICAgd2lkZ2V0cy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuYWRkV2lkZ2V0KGN1cnJlbnROb2RlLCB7IHR5cGU6IGMudHlwZSB9KSEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgbmV3KCkge1xuICAgIHRoaXMuY29tbWFuZE1hbmFnZXIuY2xlYXIoKTtcbiAgICB0aGlzLmRvY3VtZW50LnNldCh0aGlzLmNyZWF0ZURvYygpKTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/LlswXSEpO1xuICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURvYygpOiBBWFBXaWRnZXROb2RlIHtcbiAgICBjb25zdCBkb2M6IEFYUFdpZGdldE5vZGUgPSB7XG4gICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kb2N1bWVudCxcbiAgICAgIGNoaWxkcmVuOiBbdGhpcy5jcmVhdGVQYWdlKCldLFxuICAgICAgbmFtZTogJ2RvY3VtZW50JyxcbiAgICB9O1xuICAgIHNldChkb2MsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICByZXR1cm4gZG9jO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQYWdlKCk6IEFYUFdpZGdldE5vZGUge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKCdwYWdlLWxheW91dCcpO1xuXG4gICAgY29uc3QgcGFnZTogQVhQV2lkZ2V0Tm9kZSA9IHtcbiAgICAgIHR5cGU6ICdwYWdlLWxheW91dCcsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBuYW1lOiAncGFnZS1sYXlvdXQxJyxcbiAgICB9O1xuXG4gICAgc2V0KHBhZ2UsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICBzZXQocGFnZSwgJ19fbWV0YV9fLmNvbmZpZycsIGNvbmZpZyk7XG4gICAgcmV0dXJuIHBhZ2U7XG4gIH1cblxuICBwdWJsaWMgYWRkTmV3UGFnZSgpIHtcbiAgICB0aGlzLmFkZFdpZGdldCh0aGlzLmRvY3VtZW50KCksIHRoaXMuY3JlYXRlUGFnZSgpKTtcbiAgICB0aGlzLmdvVG9QYWdlKHRoaXMuY3VycmVudFBhZ2VJbmRleCgpICsgMSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlUGFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuZG9jdW1lbnQoKS5jaGlsZHJlbj8uW2luZGV4XSE7XG4gICAgdGhpcy5yZW1vdmVXaWRnZXQocGFnZSk7XG4gICAgdGhpcy5nb1RvUGFnZShpbmRleCAtIDEpO1xuICB9XG5cbiAgcHVibGljIGNsb25lUGFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuZG9jdW1lbnQoKS5jaGlsZHJlbj8uW2luZGV4XSE7XG4gICAgdGhpcy5jbG9uZShwYWdlKTtcbiAgICB0aGlzLmdvVG9QYWdlKCh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Lmxlbmd0aCA/PyAxKSAtIDEpO1xuICB9XG5cbiAgcHVibGljIGdvVG9QYWdlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXguc2V0KGluZGV4KTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Llt0aGlzLmN1cnJlbnRQYWdlSW5kZXgoKV0hKTtcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogdGhpcy5jdXJyZW50UGFnZSgpIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZVJlbmRlclBhZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoeyAuLi50aGlzLmN1cnJlbnRQYWdlKCkgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IHRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kV2lkZ2V0QnlJZChyb290OiBBWFBXaWRnZXROb2RlLCBpZDogc3RyaW5nKTogQVhQV2lkZ2V0Tm9kZSB8IG51bGwge1xuICAgIGlmIChnZXQocm9vdCwgJ19fbWV0YV9fLmlkJykgPT09IGlkKSB7XG4gICAgICByZXR1cm4gcm9vdDsgLy8gUmV0dXJuIHRoZSByb290IGlmIGl0IG1hdGNoZXMgdGhlIElEXG4gICAgfVxuICAgIGlmICghcm9vdC5jaGlsZHJlbikgcmV0dXJuIG51bGw7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHJvb3QuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5maW5kV2lkZ2V0QnlJZChjaGlsZCwgaWQpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHJldHVybiBmb3VuZDsgLy8gUmV0dXJuIHRoZSBmb3VuZCBjaGlsZFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsOyAvLyBOb2RlIG5vdCBmb3VuZFxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kUGFyZW50KGlkOiBzdHJpbmcsIHBhcmVudDogQVhQV2lkZ2V0Tm9kZSA9IHRoaXMuY3VycmVudFBhZ2UoKSk6IEFYUFdpZGdldE5vZGUgfCBudWxsIHtcbiAgICBpZiAoIXBhcmVudC5jaGlsZHJlbikgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAocGFyZW50LmNoaWxkcmVuLnNvbWUoKGNoaWxkKSA9PiBnZXQoY2hpbGQsICdfX21ldGFfXy5pZCcpID09PSBpZCkpIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7IC8vIFJldHVybiB0aGlzIG5vZGUgYXMgaXQncyB0aGUgcGFyZW50IG9mIHRoZSBub2RlIHdpdGggdGhlIGdpdmVuIElEXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBwYXJlbnQuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGZvdW5kUGFyZW50ID0gdGhpcy5maW5kUGFyZW50KGlkLCBjaGlsZCk7XG4gICAgICBpZiAoZm91bmRQYXJlbnQpIHJldHVybiBmb3VuZFBhcmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDsgLy8gTm8gcGFyZW50IGZvdW5kXG4gIH1cblxuICBwcml2YXRlIGZpbmROZWFyZXN0Q29udGFpbmVyKG5vZGU6IEFYUFdpZGdldE5vZGUsIHNlYXJjaFVwd2FyZCA9IHRydWUpOiBBWFBXaWRnZXROb2RlIHwgbnVsbCB7XG4gICAgaWYgKHNlYXJjaFVwd2FyZCkge1xuICAgICAgbGV0IGN1cnJlbnQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gbm9kZTtcbiAgICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKGN1cnJlbnQudHlwZSk7XG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLnR5cGUgPT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50ID0gdGhpcy5maW5kUGFyZW50KGdldChjdXJyZW50LCAnX19tZXRhX18uaWQnKSEpOyAvLyBVc2UgZmluZFBhcmVudCB0byBuYXZpZ2F0ZSB1cHdhcmRzXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBzZWFyY2ggdG8gZmluZCB0aGUgZmlyc3QgY29udGFpbmVyIGFtb25nIGNoaWxkcmVuXG4gICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UucmVzb2x2ZShjaGlsZC50eXBlKTtcbiAgICAgICAgICBpZiAoY29uZmlnICYmIGNvbmZpZy50eXBlID09ICdjb250YWluZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGZvdW5kQ29udGFpbmVyID0gdGhpcy5maW5kTmVhcmVzdENvbnRhaW5lcihjaGlsZCwgZmFsc2UpOyAvLyBDb250aW51ZSBzZWFyY2hpbmcgZG93bndhcmRzXG4gICAgICAgICAgaWYgKGZvdW5kQ29udGFpbmVyKSByZXR1cm4gZm91bmRDb250YWluZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIG5vIGNvbnRhaW5lciBmb3VuZFxuICB9XG5cbiAgYWRkV2lkZ2V0KGN1cnJlbnROb2RlOiBBWFBXaWRnZXROb2RlLCBub2RlOiBBWFBXaWRnZXROb2RlKTogQVhQV2lkZ2V0Tm9kZSB7XG4gICAgLy9cbiAgICBjb25zdCBjbG9uZWQgPSBjbG9uZURlZXAobm9kZSk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy53aWRnZXRSZWdpc3RlcnlTZXJ2aWNlLnJlc29sdmUobm9kZS50eXBlKTtcblxuICAgIC8vXG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5leGVjdXRlQ29tbWFuZChuZXcgQWRkV2lkZ2V0Q29tbWFuZChjbG9uZWQsIGN1cnJlbnROb2RlLCBjdXJyZW50Tm9kZSkpO1xuICAgIC8vXG4gICAgY2xvbmVkLm5hbWUgPSB0aGlzLmdlbmVyYXRlVW5pcXVlTmFtZShub2RlLnR5cGUpO1xuICAgIHNldChjbG9uZWQsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICBzZXQoY2xvbmVkLCAnX19tZXRhX18uY29uZmlnJywgY29uZmlnKTtcbiAgICBzZXQoY2xvbmVkLCAnX19tZXRhX18uYWRkZWQnLCB0cnVlKTtcbiAgICAvL1xuICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gICAgLy9cbiAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IGN1cnJlbnROb2RlIH0pO1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBjbG9uZWQgfSk7XG5cbiAgICByZXR1cm4gY2xvbmVkO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVdpZGdldChub2RlOiBBWFBXaWRnZXROb2RlID0gdGhpcy5zZWxlY3RlZE5vZGUoKSEpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBub2RlLnR5cGUgPT09ICdkb2N1bWVudC1sYXlvdXQnIHx8XG4gICAgICAobm9kZS50eXBlID09PSAncGFnZS1sYXlvdXQnICYmICh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Lmxlbmd0aCA/PyAxKSA9PSAxKVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2Fubm90IHJlbW92ZSB0aGUgcGFnZSBub2RlLicpO1xuICAgICAgcmV0dXJuOyAvLyBQcmV2ZW50IHJlbW92aW5nIHRoZSByb290IHBhZ2Ugbm9kZSBvciBkb2N1bWVudFxuICAgIH1cblxuICAgIGNvbnN0IG5vZGVJZFRvUmVtb3ZlID0gZ2V0KG5vZGUsICdfX21ldGFfXy5pZCcpO1xuICAgIGlmICghbm9kZUlkVG9SZW1vdmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm9kZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgX19tZXRhX18uaWQgdG8gaWRlbnRpZnkgaXQgZm9yIHJlbW92YWwuJyk7XG4gICAgfVxuXG4gICAgLy8gRmluZCB0aGUgcGFyZW50IG9mIHRoZSBub2RlIHRvIHJlbW92ZSBpdFxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChub2RlSWRUb1JlbW92ZSwgdGhpcy5kb2N1bWVudCgpKTtcbiAgICBpZiAoIXBhcmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXJlbnQgbm9kZSBub3QgZm91bmQuIFRoZSBub2RlIG1pZ2h0IGJlIHRoZSByb290IG5vZGUgb3IgZG9lcyBub3QgZXhpc3QuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXNTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGVkTm9kZSgpOyAvLyBDYXB0dXJlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbm9kZSBiZWZvcmUgcmVtb3ZhbFxuICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgUmVtb3ZlV2lkZ2V0Q29tbWFuZChub2RlLCBwYXJlbnQsIHByZXZpb3VzU2VsZWN0aW9uISk7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5leGVjdXRlQ29tbWFuZChjb21tYW5kKTtcblxuICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogcGFyZW50IH0pOyAvLyBSZWZyZXNoIHRoZSBVSSB0byByZWZsZWN0IGNoYW5nZXNcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogcGFyZW50IH0pOyAvLyBTZWxlY3QgdGhlIHBhcmVudCBub2RlIGFmdGVyIHJlbW92YWxcbiAgfVxuXG4gIG5hdmlnYXRlVG8oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY29tbWFuZE1hbmFnZXIuZ29Ub0NvbW1hbmQoaW5kZXgpO1xuICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuY29tbWFuZE1hbmFnZXIuc2VsZWN0ZWROb2RlKCk7XG4gICAgdGhpcy5yZWZyZXNoKHsgd2lkZ2V0OiB0aGlzLmN1cnJlbnRQYWdlKCkgfSk7XG4gICAgdGhpcy5zZWxlY3QoeyB3aWRnZXQ6IGN1cnJlbnRTZWxlY3Rpb24hIH0pO1xuICB9XG5cbiAgcHVibGljIHJlZG8oKSB7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5yZWRvKCk7XG4gICAgdGhpcy5yZVJlbmRlclBhZ2UoKTtcbiAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gdGhpcy5jb21tYW5kTWFuYWdlci5zZWxlY3RlZE5vZGUoKTtcbiAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IHRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogY3VycmVudFNlbGVjdGlvbiEgfSk7XG4gIH1cblxuICBwdWJsaWMgdW5kbygpIHtcbiAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLnVuZG8oKTtcbiAgICB0aGlzLnJlUmVuZGVyUGFnZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmNvbW1hbmRNYW5hZ2VyLnNlbGVjdGVkTm9kZSgpO1xuICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogdGhpcy5jdXJyZW50UGFnZSgpIH0pO1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBjdXJyZW50U2VsZWN0aW9uISB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckhpc3RvcnkoKSB7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVNZXRhUHJvcChvYmo6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSAnX19tZXRhX18nO1xuICAgIC8vIENoZWNrIGlmIHRoZSBvYmplY3QgaXMgYW4gYXJyYXlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLm1hcCgoaXRlbSkgPT4gdGhpcy5yZW1vdmVNZXRhUHJvcChpdGVtKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcbiAgICAgIC8vIENyZWF0ZSBhIG5ldyBvYmplY3QgdG8gc3RvcmUgdGhlIHJlc3VsdFxuICAgICAgbGV0IG5ld09iajogYW55ID0ge307XG4gICAgICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7XG4gICAgICAgIC8vIE9ubHkgYWRkIHRoZSBrZXkgaWYgaXQncyBub3QgdGhlIG5vZGVOYW1lIHdlIHdhbnQgdG8gcmVtb3ZlXG4gICAgICAgIGlmIChrZXkgIT09IG5vZGVOYW1lKSB7XG4gICAgICAgICAgbmV3T2JqW2tleV0gPSB0aGlzLnJlbW92ZU1ldGFQcm9wKG9ialtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG4gICAgLy8gSWYgdGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3Qgb3IgYXJyYXksIHJldHVybiBpdCBhcyBpc1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFkZE1ldGFUb05vZGVzKFxuICAgIG5vZGU6IEFYUFdpZGdldE5vZGUsXG4gICAgcHJvY2Vzc2VkTm9kZXM6IHsgY291bnQ6IG51bWJlciB9LFxuICAgIHByb2dyZXNzQ2FsbGJhY2s6IChwcm9jZXNzZWQ6IG51bWJlcikgPT4gdm9pZFxuICApOiBQcm9taXNlPEFYUFdpZGdldE5vZGU+IHtcbiAgICAvLyBBcHBseSB5b3VyIG1ldGEgbG9naWMgaGVyZVxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKG5vZGUudHlwZSk7XG4gICAgLy9cbiAgICBzZXQobm9kZSwgJ19fbWV0YV9fLmlkJywgdGhpcy5nZW5lcmF0ZVVuaXF1ZUlkKCkpO1xuICAgIHNldChub2RlLCAnX19tZXRhX18uY29uZmlnJywgY29uZmlnKTtcbiAgICAvL1xuICAgIC8vIEluY3JlbWVudCB0aGUgcHJvY2Vzc2VkIG5vZGUgY291bnQgYW5kIHVwZGF0ZSB0aGUgcHJvZ3Jlc3MgZGlhbG9nXG4gICAgcHJvY2Vzc2VkTm9kZXMuY291bnQrKztcbiAgICBwcm9ncmVzc0NhbGxiYWNrKHByb2Nlc3NlZE5vZGVzLmNvdW50KTtcbiAgICAvLyBSZWN1cnNpdmVseSBwcm9jZXNzIGNoaWxkIG5vZGVzIHVzaW5nIFByb21pc2UuYWxsXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBub2RlLmNoaWxkcmVuID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIG5vZGUuY2hpbGRyZW4ubWFwKGFzeW5jIChjaGlsZCkgPT4gYXdhaXQgdGhpcy5hZGRNZXRhVG9Ob2RlcyhjaGlsZCwgcHJvY2Vzc2VkTm9kZXMsIHByb2dyZXNzQ2FsbGJhY2spKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBwdWJsaWMgY29weSh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gdGhpcy5zZWxlY3RlZE5vZGUoKSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbih3aWRnZXQpLmNvcHlPckN1dCkge1xuICAgICAgdGhpcy5jbGlwYm9hcmQuc2V0KGNsb25lRGVlcCh3aWRnZXQpKTsgLy8gVXNlIGxvZGFzaCdzIGNsb25lRGVlcCB0byBlbnN1cmUgYSBkZWVwIGNvcHlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY3V0KHdpZGdldDogQVhQV2lkZ2V0Tm9kZSB8IG51bGwgPSB0aGlzLnNlbGVjdGVkTm9kZSgpKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuKHdpZGdldCkuY29weU9yQ3V0KSB7XG4gICAgICB0aGlzLmNvcHkod2lkZ2V0KTsgLy8gQ29weSB0aGUgd2lkZ2V0IHRvIHRoZSBjbGlwYm9hcmRcbiAgICAgIHRoaXMucmVtb3ZlV2lkZ2V0KHdpZGdldCEpOyAvLyBSZXVzZSB0aGUgcmVtb3ZlV2lkZ2V0IG1ldGhvZCB3aGljaCBzaG91bGQgaGFuZGxlIHVuZG8gaW50ZXJuYWxseVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gdGhpcy5zZWxlY3RlZE5vZGUoKSk6IHZvaWQge1xuICAgIGlmICghd2lkZ2V0KSByZXR1cm47XG4gICAgdGhpcy5jb3B5KHdpZGdldCk7IC8vIENvcHkgdGhlIHdpZGdldCB0byB0aGUgY2xpcGJvYXJkXG4gICAgaWYgKHdpZGdldC50eXBlID09ICdwYWdlLWxheW91dCcpIHtcbiAgICAgIHRoaXMucGFzdGUodGhpcy5kb2N1bWVudCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXN0ZSh3aWRnZXQhKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcGFzdGUocGFyZW50Tm9kZTogQVhQV2lkZ2V0Tm9kZSB8IHVuZGVmaW5lZCA9IHRoaXMuc2VsZWN0ZWROb2RlKCkgPz8gdGhpcy5jdXJyZW50UGFnZSgpKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNsaXBib2FyZCgpIHx8ICF0aGlzLnNlbGVjdGVkTm9kZSgpIHx8ICFwYXJlbnROb2RlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDbGlwYm9hcmQgaXMgZW1wdHkgb3Igbm8gbm9kZSBpcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3Tm9kZSA9IGNsb25lRGVlcCh0aGlzLmNsaXBib2FyZCgpIGFzIEFYUFdpZGdldE5vZGUpO1xuICAgIGNvbnN0IG5lYXJlc3RDb250YWluZXIgPSB0aGlzLmZpbmROZWFyZXN0Q29udGFpbmVyKHBhcmVudE5vZGUsIHRydWUpO1xuICAgIGlmICghbmVhcmVzdENvbnRhaW5lcikge1xuICAgICAgY29uc29sZS5lcnJvcignTm8gc3VpdGFibGUgY29udGFpbmVyIGZvdW5kLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvL1xuICAgIGlmICghbmVhcmVzdENvbnRhaW5lci5jaGlsZHJlbikge1xuICAgICAgbmVhcmVzdENvbnRhaW5lci5jaGlsZHJlbiA9IFtdO1xuICAgIH1cbiAgICAvL1xuICAgIGNvbnN0IHNldE5hbWVJZCA9IChub2RlOiBBWFBXaWRnZXROb2RlKSA9PiB7XG4gICAgICBzZXQobm9kZSwgJ25hbWUnLCB0aGlzLmdlbmVyYXRlVW5pcXVlTmFtZShub2RlLnR5cGUpKTtcbiAgICAgIHNldChub2RlLCAnX19tZXRhX18uaWQnLCB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSk7XG4gICAgICBub2RlLmNoaWxkcmVuPy5mb3JFYWNoKChuKSA9PiB7XG4gICAgICAgIHNldE5hbWVJZChuKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgc2V0TmFtZUlkKG5ld05vZGUpO1xuICAgIC8vXG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5leGVjdXRlQ29tbWFuZChuZXcgQWRkV2lkZ2V0Q29tbWFuZChuZXdOb2RlLCBuZWFyZXN0Q29udGFpbmVyLCBuZWFyZXN0Q29udGFpbmVyKSk7XG4gICAgLy9cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogbmVhcmVzdENvbnRhaW5lciB9KTsgLy8gUmVmcmVzaCB0aGUgVUlcbiAgICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBuZXdOb2RlIH0pOyAvLyBTZWxlY3QgdGhlIG5ld2x5IHBhc3RlZCBub2RlXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzYXZlKCkge1xuICAgIGlmICh0aGlzLnRlbXBsYXRlSWQoKSkge1xuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuZXhwb3J0KCk7XG4gICAgICBpZiAodGhpcy5sb2FkaW5nU3RyYXRlZ3koKSA9PSBBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneS5Db25uZWN0b3IpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb25uZWN0b3Iuc2F2ZSh0aGlzLnRlbXBsYXRlSWQoKSEsIHsganNvbjogY29udGVudCB9KTtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcygnWW91ciBjaGFuZ2VzIHNhdmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZlbnRTZXJ2aWNlLnNlbmRBbmRXYWl0Rm9yUmVzcG9uc2U8QVhQRGVzaWduZXJTYXZlRm9ybU1lc3NhZ2UsIHsgc3VjY2VzczogYm9vbGVhbiB9PihBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlNhdmVGb3JtLCB7IGlkOiB0aGlzLnRlbXBsYXRlSWQoKSEsIHN1Y2Nlc3M6IHRydWUsIGNvbnRlbnQgfSk7XG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMudW5zYXZlZENoYW5nZXMuc2V0KGZhbHNlKTtcbiAgICAgICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvd25sb2FkSnNvbigpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNhdmVBcyhub2RlOiBBWFBXaWRnZXROb2RlID0gdGhpcy5kb2N1bWVudCgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZXhwb3J0KG5vZGUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnNhdmVBcyh7IGpzb246IGNvbnRlbnQgfSk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcygnWW91ciBjaGFuZ2VzIHNhdmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydChub2RlOiBBWFBXaWRnZXROb2RlID0gdGhpcy5kb2N1bWVudCgpKTogc3RyaW5nIHtcbiAgICBjb25zdCBqc29uID0gdGhpcy5yZW1vdmVNZXRhUHJvcChub2RlKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gIH1cblxuICBkb3dubG9hZEpzb24oKSB7XG4gICAgLy8gQ29udmVydCB0aGUgb2JqZWN0IHRvIGEgSlNPTiBzdHJpbmdcbiAgICBjb25zdCBqc29uU3RyID0gdGhpcy5leHBvcnQoKTtcblxuICAgIC8vIENyZWF0ZSBhIGJsb2Igb2JqZWN0IGZyb20gdGhlIEpTT04gc3RyaW5nXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtqc29uU3RyXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG5cbiAgICAvLyBDcmVhdGUgYSBVUkwgZm9yIHRoZSBibG9iIG9iamVjdFxuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cbiAgICAvLyBDcmVhdGUgYSB0ZW1wb3JhcnkgPGE+IGVsZW1lbnQgdG8gdHJpZ2dlciB0aGUgZG93bmxvYWRcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGEuaHJlZiA9IHVybDtcbiAgICBhLmRvd25sb2FkID0gJ2V4cG9ydC5qc29uJztcblxuICAgIC8vIEFwcGVuZCB0aGUgPGE+IGVsZW1lbnQgdG8gdGhlIGRvY3VtZW50IGJvZHkgKG5lY2Vzc2FyeSBmb3Igc29tZSBicm93c2VycylcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuXG4gICAgLy8gVHJpZ2dlciB0aGUgZG93bmxvYWQgYnkgY2xpY2tpbmcgdGhlIDxhPiBlbGVtZW50XG4gICAgYS5jbGljaygpO1xuICAgIC8vIENsZWFuIHVwIGJ5IHJldm9raW5nIHRoZSBvYmplY3QgVVJMIGFuZCByZW1vdmluZyB0aGUgPGE+IGVsZW1lbnRcbiAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRCeUlkKGlkOiBzdHJpbmcsIG9wdGlvbnM6IHsgc3RyYXRlZ3k6IEFYUFRlbXBsYXRlTG9hZGluZ1N0cmF0ZWd5IH0gPSB7IHN0cmF0ZWd5OiBBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneS5Db25uZWN0b3IgfSkge1xuICAgIGxldCBjb250ZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgaWYgKG9wdGlvbnMuc3RyYXRlZ3kgPT0gQVhQVGVtcGxhdGVMb2FkaW5nU3RyYXRlZ3kuQ29ubmVjdG9yKSB7XG4gICAgICAgIGNvbnRlbnQgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5sb2FkKGlkKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBjb250ZW50ID0gYXdhaXQgdGhpcy5ldmVudFNlcnZpY2Uuc2VuZEFuZFdhaXRGb3JSZXNwb25zZTx7IGZvcm1JZDogc3RyaW5nIH0sIHN0cmluZz4oQVhQRGVzaWduZXJNZXNzYWdlS2V5cy5SZXF1ZXN0Rm9ybUNvbnRlbnQsIHsgZm9ybUlkOiBpZCB9LCB7IHRpbWVvdXQ6IDEwMDAwLCByZXRyaWVzOiAzLCByZXRyeURlbGF5OiAxMDAwIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFpc05pbChjb250ZW50KSAmJiAhaXNFbXB0eShjb250ZW50KSkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRCeUNvbnRlbnQoY29udGVudCEpO1xuICAgICAgfVxuICAgICAgdGhpcy50ZW1wbGF0ZUlkLnNldChpZCk7XG4gICAgICB0aGlzLmxvYWRpbmdTdHJhdGVneS5zZXQob3B0aW9ucy5zdHJhdGVneSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZGFuZ2VyKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGltcG9ydEpTb24oKSB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCB0aGlzLmZpbGVTZXJ2aWNlLmNob29zZSh7IG11bHRpcGxlOiBmYWxzZSwgYWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicgfSk7XG4gICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgZmlsZSA9IGZpbGVzWzBdO1xuICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZpbGUudGV4dCgpO1xuICAgICAgYXdhaXQgdGhpcy5sb2FkQnlDb250ZW50KGNvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvYWRCeUNvbnRlbnQoY29udGVudDogc3RyaW5nKSB7XG4gICAgY29uc3Qgcm9vdE5vZGUgPSBKU09OLnBhcnNlKGNvbnRlbnQpIGFzIEFYUFdpZGdldE5vZGU7XG4gICAgY29uc3QgdG90YWxOb2RlID0gdGhpcy5jb3VudFRvdGFsTm9kZXMocm9vdE5vZGUpO1xuICAgIGNvbnN0IHByb2Nlc3NlZE5vZGVzID0geyBjb3VudDogMCB9O1xuXG4gICAgY29uc3QgYnV0dG9uOiBBWExvYWRpbmdEaWFsb2dCdXR0b25JdGVtID0ge1xuICAgICAgdGV4dDogJ0NhbmNlbCcsXG4gICAgICBhdXRvZm9jdXM6IHRydWUsXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgZGlhbG9nLmNsb3NlKCk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNob3coe1xuICAgICAgbW9kZTogJ2RldGVybWluYXRlJyxcbiAgICAgIHRpdGxlOiAnTG9hZGluZyBDb250ZW50JyxcbiAgICAgIHByb2dyZXNzQ29sb3I6ICdwcmltYXJ5JyxcbiAgICAgIHRleHQ6ICdQcm9jZXNzaW5nIGNvbnRlbnQnLFxuICAgICAgc3RhdHVzOiBgMCBvZiAke3RvdGFsTm9kZX1gLFxuICAgICAgYnV0dG9uczogW2J1dHRvbl0sXG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgcm9vdCA9IGF3YWl0IHRoaXMuYWRkTWV0YVRvTm9kZXMocm9vdE5vZGUsIHByb2Nlc3NlZE5vZGVzLCAoY291bnQpID0+IHtcbiAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzVmFsdWUoTWF0aC5jZWlsKChjb3VudCAvIHRvdGFsTm9kZSkgKiAxMDApKTtcbiAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzU3RhdHVzKGAke2NvdW50fSBvZiAke3RvdGFsTm9kZX1gKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwYWdlID0gcm9vdC5jaGlsZHJlbj8uWzBdITtcbiAgICAgIHRoaXMuZG9jdW1lbnQuc2V0KHJvb3QpO1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQocGFnZSk7XG5cbiAgICAgIGRpYWxvZy5zZXRQcm9ncmVzc0NvbG9yKCdzdWNjZXNzJyk7XG4gICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NUZXh0KCdDb250ZW50IGxvYWRlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgIGJ1dHRvbi50ZXh0ID0gJ09rYXknO1xuICAgICAgYnV0dG9uLmNvbG9yID0gJ3N1Y2Nlc3MnO1xuICAgICAgZGlhbG9nLnNldFByb2dyZXNzVmFsdWUoMTAwKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgfSwgMjUwKTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NDb2xvcignZGFuZ2VyJyk7XG4gICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NUZXh0KGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0Nhbm5vdCBsb2FkIGNvbnRlbnQnKTtcbiAgICAgIGJ1dHRvbi50ZXh0ID0gJ0Nsb3NlJztcbiAgICAgIGJ1dHRvbi5jb2xvciA9ICdkYW5nZXInO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY291bnRUb3RhbE5vZGVzKG5vZGU6IEFYUFdpZGdldE5vZGUpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDE7IC8vIENvdW50IHRoZSBjdXJyZW50IG5vZGVcbiAgICBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvdW50ICs9IG5vZGUuY2hpbGRyZW4ucmVkdWNlKChzdW0sIGNoaWxkKSA9PiBzdW0gKyB0aGlzLmNvdW50VG90YWxOb2RlcyhjaGlsZCksIDApO1xuICAgIH1cbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlVW5pcXVlTmFtZSh0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIE5vcm1hbGl6ZSB0aGUgdHlwZSB0byBmb2xsb3cgY2FtZWxDYXNlIGNvbnZlbnRpb25cbiAgICBjb25zdCBiYXNlTmFtZSA9IHR5cGUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpO1xuICAgIGxldCBpbmRleCA9IDE7XG4gICAgbGV0IHVuaXF1ZU5hbWUgPSBgJHtiYXNlTmFtZX0ke2luZGV4fWA7XG5cbiAgICAvLyBHYXRoZXIgYWxsIGV4aXN0aW5nIG5hbWVzIHRvIGNoZWNrIGFnYWluc3RcbiAgICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgdGhpcy5jb2xsZWN0QWxsTmFtZXModGhpcy5kb2N1bWVudCgpLCBleGlzdGluZ05hbWVzKTtcblxuICAgIC8vIEluY3JlbWVudCB0aGUgaW5kZXggdW50aWwgYSB1bmlxdWUgbmFtZSBpcyBmb3VuZFxuICAgIHdoaWxlIChleGlzdGluZ05hbWVzLmhhcyh1bmlxdWVOYW1lKSkge1xuICAgICAgaW5kZXgrKztcbiAgICAgIHVuaXF1ZU5hbWUgPSBgJHtiYXNlTmFtZX0ke2luZGV4fWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaXF1ZU5hbWU7XG4gIH1cblxuICBnZW5lcmF0ZVVuaXF1ZUlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiBNYXRoLnBvdygxMCwgMTgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsZWN0QWxsTmFtZXMobm9kZTogQVhQV2lkZ2V0Tm9kZSwgbmFtZXM6IFNldDxzdHJpbmc+KTogdm9pZCB7XG4gICAgaWYgKG5vZGUubmFtZSkge1xuICAgICAgbmFtZXMuYWRkKG5vZGUubmFtZSk7XG4gICAgfVxuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5jb2xsZWN0QWxsTmFtZXMoY2hpbGQsIG5hbWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUHJldmlldygpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5wdWJsaXNoPEFYUERlc2lnbmVyUHJldmlld01lc3NhZ2U+KEFYUERlc2lnbmVyTWVzc2FnZUtleXMuUHJldmlldywge1xuICAgICAgaWQ6IHRoaXMudGVtcGxhdGVJZCgpISxcbiAgICAgIGRvY3VtZW50OiB0aGlzLnJlbW92ZU1ldGFQcm9wKHRoaXMuZG9jdW1lbnQoKSlcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvcGVuUHJldmlld0RpYWxvZygpIHtcbiAgICBjb25zdCBjb20gPSBhd2FpdCBpbXBvcnQoJy4uLy4uL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUExheW91dERlc2lnbmVyUHJldmlld0NvbXBvbmVudCk7XG4gICAgYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIGhlYWRlcjogZmFsc2UsXG4gICAgICBzaXplOiAnZnVsbCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGluaXRpYWxTaXplOiB0aGlzLnNpemUoKSxcbiAgICAgICAgaXNEaWFsb2dXaW5kb3c6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9wZW5QcmV2aWV3V2luZG93KCkge1xuICAgIHdpbmRvdy5vcGVuKCcvZm9ybXMvcHJldmlldycsICdfYmxhbmsnKTtcbiAgfVxuXG5cblxuICBnZXRDb250ZXh0TWVudUl0ZW1zKGluc3RhbmNlOiBBWFBEZXNpZ25lcldpZGdldENvbXBvbmVudCwgaXNSb290ID0gZmFsc2UpOiBBWE1lbnVJdGVtW10ge1xuICAgIGNvbnN0IHdpZGdldCA9IGluc3RhbmNlIGFzIGFueSBhcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDtcbiAgICBjb25zdCBub2RlID0gd2lkZ2V0Lm5vZGU7XG5cbiAgICBjb25zdCBpdGVtczogQVhNZW51SXRlbVtdID0gW107XG4gICAgLy8gICAgICAgXG4gICAgaWYgKHRoaXMuY2FuKG5vZGUpLmluc2VydCkge1xuICAgICAgaXRlbXMucHVzaChjbG9uZVdpZGdldE1lbnUoQVhQX0RFU0lHTkVSX0FERF9XSURHRVRfTUVOVSwge1xuICAgICAgICBicmVhazogdHJ1ZSxcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgLy9cbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfQ0xPTkVfTUVOVSwgeyBkaXNhYmxlZDogIXRoaXMuY2FuKG5vZGUpLmNvcHlPckN1dCB9KSk7XG4gICAgaXRlbXMucHVzaChjbG9uZVdpZGdldE1lbnUoQVhQX0RFU0lHTkVSX0NVVF9NRU5VLCB7IGRpc2FibGVkOiAhdGhpcy5jYW4obm9kZSkuY29weU9yQ3V0IH0pKTtcbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfQ09QWV9NRU5VLCB7IGRpc2FibGVkOiAhdGhpcy5jYW4obm9kZSkuY29weU9yQ3V0IH0pKTtcbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfUEFTVEVfTUVOVSwgeyBkaXNhYmxlZDogIXRoaXMuY2FuKG5vZGUpLnBhc3RlLCBicmVhazogdHJ1ZSB9KSk7XG4gICAgLy9cbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfREVMRVRFX1dJREdFVF9NRU5VLCB7IGRpc2FibGVkOiAhdGhpcy5jYW4obm9kZSkuZGVsZXRlLCBicmVhazogdHJ1ZSB9KSk7XG4gICAgLy9cbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfU0FWRV9BU19XSURHRVRfTUVOVSkpO1xuICAgIGlmIChpbnN0YW5jZS5vbkNvbnRleHRNZW51KSB7XG4gICAgICBpbnN0YW5jZS5vbkNvbnRleHRNZW51KHsgaXRlbXMgfSlcbiAgICB9XG4gICAgaWYgKCFpc1Jvb3QpIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0uc3VmZml4ID0gdW5kZWZpbmVkO1xuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29udGV4dDogeyBpbnN0YW5jZTogQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQsIG5hbWU6IHN0cmluZywgZGF0YT86IGFueSB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgd2lkZ2V0ID0gY29udGV4dC5pbnN0YW5jZSBhcyBhbnkgYXMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ7XG4gICAgaWYgKGNvbnRleHQuaW5zdGFuY2UuZXhlY3V0ZUNvbW1hbmQpIHtcbiAgICAgIGNvbnN0IGNvbW1hbmQ6IGFueSA9IHtcbiAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICBkYXRhOiBjb250ZXh0LmRhdGEsXG4gICAgICAgIGhhbmRsZWQ6IGZhbHNlXG4gICAgICB9XG4gICAgICBhd2FpdCBjb250ZXh0Lmluc3RhbmNlLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQpO1xuICAgICAgaWYgKGNvbW1hbmQuaGFuZGxlZClcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKGNvbnRleHQubmFtZSkge1xuICAgICAgY2FzZSBBWFBfREVTSUdORVJfU0VMRUNUX1dJREdFVF9NRU5VLm5hbWU6IHtcbiAgICAgICAgdGhpcy5zZWxlY3QoeyB3aWRnZXQ6IHdpZGdldC5ub2RlIH0pXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIEFYUF9ERVNJR05FUl9BRERfV0lER0VUX01FTlUubmFtZToge1xuICAgICAgICB0aGlzLnNob3dQaWNrZXIod2lkZ2V0Lm5vZGUpO1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgLy9cbiAgICAgIGNhc2UgQVhQX0RFU0lHTkVSX0RFTEVURV9XSURHRVRfTUVOVS5uYW1lOiB7XG4gICAgICAgIHRoaXMucmVtb3ZlV2lkZ2V0KHdpZGdldC5ub2RlKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIC8vXG4gICAgICBjYXNlIEFYUF9ERVNJR05FUl9DTE9ORV9NRU5VLm5hbWU6IHtcbiAgICAgICAgdGhpcy5jbG9uZSh3aWRnZXQubm9kZSk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIEFYUF9ERVNJR05FUl9DVVRfTUVOVS5uYW1lOiB7XG4gICAgICAgIHRoaXMuY3V0KHdpZGdldC5ub2RlKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgQVhQX0RFU0lHTkVSX0NPUFlfTUVOVS5uYW1lOiB7XG4gICAgICAgIHRoaXMuY29weSh3aWRnZXQubm9kZSk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIEFYUF9ERVNJR05FUl9QQVNURV9NRU5VLm5hbWU6IHtcbiAgICAgICAgdGhpcy5wYXN0ZSh3aWRnZXQubm9kZSk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICAvL1xuICAgIH1cbiAgfVxuXG4gIHVuc3Vic2NyaWJlRXZlbnRzKCkge1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnVuc3Vic2NyaWJlKEFYUERlc2lnbmVyTWVzc2FnZUtleXMuTG9hZGVkKTtcbiAgICB0aGlzLmV2ZW50U2VydmljZS51bnN1YnNjcmliZShBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlByZXZpZXdXaW5kb3cpO1xuICB9XG59XG4iXX0=","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPLayoutBaseWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/decorators\";\nexport class AXPDesignerAddWidgetButtonComponent {\n constructor() {\n this.designerService = inject(AXPDesignerService);\n this.parent = inject(AXPLayoutBaseWidgetComponent);\n }\n async handleClick(e) {\n e.nativeEvent.stopPropagation();\n await this.designerService.showPicker(this.parent.node);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.10\", type: AXPDesignerAddWidgetButtonComponent, isStandalone: true, selector: \"axp-designer-add-widget-button\", ngImport: i0, template: `\n <div class=\"ax-container\">\n <ax-button [text]=\"'Add New Element'\" (onClick)=\"handleClick($event)\" [look]=\"'solid'\" [color]=\"'primary'\">\n <ax-icon icon=\"fa-solid fa-plus\"></ax-icon>\n </ax-button>\n </div>\n `, isInline: true, styles: [\"axp-designer-add-widget-button .ax-container{margin-left:auto;margin-right:auto;display:flex;justify-content:center;padding:.5rem}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-add-widget-button', template: `\n <div class=\"ax-container\">\n <ax-button [text]=\"'Add New Element'\" (onClick)=\"handleClick($event)\" [look]=\"'solid'\" [color]=\"'primary'\">\n <ax-icon icon=\"fa-solid fa-plus\"></ax-icon>\n </ax-button>\n </div>\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule], encapsulation: ViewEncapsulation.None, styles: [\"axp-designer-add-widget-button .ax-container{margin-left:auto;margin-right:auto;display:flex;justify-content:center;padding:.5rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXdpZGdldC1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2FkZC13aWRnZXQtYnV0dG9uL2FkZC13aWRnZXQtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFnQm5FLE1BQU0sT0FBTyxtQ0FBbUM7SUFkaEQ7UUFlVSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLFdBQU0sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQU12RDtJQUpDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBZTtRQUMvQixDQUFDLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQVBVLG1DQUFtQzttR0FBbkMsbUNBQW1DLDBGQVhwQzs7Ozs7O0dBTVQsNk1BRVMsY0FBYyw2WEFBRSxpQkFBaUI7OzRGQUdoQyxtQ0FBbUM7a0JBZC9DLFNBQVM7K0JBQ0UsZ0NBQWdDLFlBRWhDOzs7Ozs7R0FNVCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItYWRkLXdpZGdldC1idXR0b24nLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtd2lkZ2V0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJheC1jb250YWluZXJcIj5cbiAgICAgIDxheC1idXR0b24gW3RleHRdPVwiJ0FkZCBOZXcgRWxlbWVudCdcIiAob25DbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCIgW2xvb2tdPVwiJ3NvbGlkJ1wiIFtjb2xvcl09XCIncHJpbWFyeSdcIj5cbiAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLXBsdXNcIj48L2F4LWljb24+XG4gICAgICA8L2F4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWEJ1dHRvbk1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGVdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckFkZFdpZGdldEJ1dHRvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgZGVzaWduZXJTZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG4gIHByaXZhdGUgcGFyZW50ID0gaW5qZWN0KEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQpO1xuXG4gIGFzeW5jIGhhbmRsZUNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgIGUubmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgYXdhaXQgdGhpcy5kZXNpZ25lclNlcnZpY2Uuc2hvd1BpY2tlcih0aGlzLnBhcmVudC5ub2RlKTtcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, input, output, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/decorators\";\nexport class AXPDesignerAddWidgetLineButtonComponent {\n constructor() {\n this.text = input(...(ngDevMode ? [undefined, { debugName: \"text\" }] : []));\n this.onClick = output();\n }\n handleClick() {\n this.onClick.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerAddWidgetLineButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.10\", type: AXPDesignerAddWidgetLineButtonComponent, isStandalone: true, selector: \"axp-designer-add-widget-line-button\", inputs: { text: { classPropertyName: \"text\", publicName: \"text\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: \"onClick\" }, ngImport: i0, template: `\n <div class=\"ax-flex ax-items-center ax-py-4 ax-text-xs\">\n <div class=\"ax-flex-grow ax-border-t-2 ax-border-dashed ax-border-surface\"></div>\n <div class=\"ax-mx-2 ax-sm \">\n <ax-button [text]=\"text()\" [look]=\"'twotone'\" class=\"ax-capitalize\" (onClick)=\"handleClick()\">\n <ax-icon icon=\"fa-solid fa-plus\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"ax-flex-grow ax-border-t-2 ax-border-dashed ax-border-surface\"></div>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerAddWidgetLineButtonComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-designer-add-widget-line-button',\n template: `\n <div class=\"ax-flex ax-items-center ax-py-4 ax-text-xs\">\n <div class=\"ax-flex-grow ax-border-t-2 ax-border-dashed ax-border-surface\"></div>\n <div class=\"ax-mx-2 ax-sm \">\n <ax-button [text]=\"text()\" [look]=\"'twotone'\" class=\"ax-capitalize\" (onClick)=\"handleClick()\">\n <ax-icon icon=\"fa-solid fa-plus\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"ax-flex-grow ax-border-t-2 ax-border-dashed ax-border-surface\"></div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXButtonModule, AXDecoratorModule],\n encapsulation: ViewEncapsulation.None\n }]\n }], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: \"text\", required: false }] }], onClick: [{ type: i0.Output, args: [\"onClick\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXdpZGdldC1saW5lLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvYWRkLXdpZGdldC1idXR0b24vYWRkLXdpZGdldC1saW5lLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQW1CckcsTUFBTSxPQUFPLHVDQUF1QztJQWpCcEQ7UUFtQkUsU0FBSSxHQUFHLEtBQUssMERBQUUsQ0FBQztRQUNmLFlBQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQztLQU9wQjtJQUpXLFdBQVc7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQVJVLHVDQUF1QzttR0FBdkMsdUNBQXVDLGlRQWZ4Qzs7Ozs7Ozs7OztHQVVULDJEQUVTLGNBQWMsNlhBQUUsaUJBQWlCOzs0RkFHaEMsdUNBQXVDO2tCQWpCbkQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUNBQXFDO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDO29CQUM1QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItYWRkLXdpZGdldC1saW5lLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtcHktNCBheC10ZXh0LXhzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleC1ncm93IGF4LWJvcmRlci10LTIgYXgtYm9yZGVyLWRhc2hlZCBheC1ib3JkZXItc3VyZmFjZVwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW14LTIgYXgtc20gXCI+XG4gICAgICAgIDxheC1idXR0b24gW3RleHRdPVwidGV4dCgpXCIgW2xvb2tdPVwiJ3R3b3RvbmUnXCIgIGNsYXNzPVwiYXgtY2FwaXRhbGl6ZVwiIChvbkNsaWNrKT1cImhhbmRsZUNsaWNrKClcIj5cbiAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtcGx1c1wiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4LWdyb3cgYXgtYm9yZGVyLXQtMiBheC1ib3JkZXItZGFzaGVkIGF4LWJvcmRlci1zdXJmYWNlXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Nb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckFkZFdpZGdldExpbmVCdXR0b25Db21wb25lbnQge1xuXG4gIHRleHQgPSBpbnB1dCgpO1xuICBvbkNsaWNrID0gb3V0cHV0KCk7XG5cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soKSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoKTtcbiAgfVxuXG59XG4iXX0=","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPLayoutBaseWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, inject, Output, ViewEncapsulation, } from '@angular/core';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerAddWidgetMiniButtonComponent {\n constructor() {\n this.designerService = inject(AXPDesignerService);\n this.parent = inject(AXPLayoutBaseWidgetComponent);\n this.onClick = new EventEmitter();\n }\n async handleClick(e) {\n e.stopPropagation();\n const a = this.onClick;\n if (this.onClick.observed) {\n this.onClick.emit();\n }\n else {\n await this.designerService.showPicker(this.parent.node);\n }\n }\n get __class() {\n const cls = {};\n //\n cls[`ax-flex`] = true;\n cls[`ax-w-full`] = true;\n cls[`ax-h-full`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerAddWidgetMiniButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.10\", type: AXPDesignerAddWidgetMiniButtonComponent, isStandalone: true, selector: \"axp-designer-add-widget-mini-button\", outputs: { onClick: \"onClick\" }, host: { properties: { \"class\": \"this.__class\" } }, ngImport: i0, template: `\n <div class=\"axp-empty-space\">\n <div class=\"ax-m-auto ax-py-4 ax-px-8\">\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-size-4 hover:ax-scale-125 ax-cursor-pointer\"\n (click)=\"handleClick($event)\"\n >\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n </div>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerAddWidgetMiniButtonComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-designer-add-widget-mini-button',\n template: `\n <div class=\"axp-empty-space\">\n <div class=\"ax-m-auto ax-py-4 ax-px-8\">\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-size-4 hover:ax-scale-125 ax-cursor-pointer\"\n (click)=\"handleClick($event)\"\n >\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXButtonModule, AXDecoratorModule],\n encapsulation: ViewEncapsulation.None,\n }]\n }], propDecorators: { onClick: [{\n type: Output\n }], __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXdpZGdldC1taW5pLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvYWRkLXdpZGdldC1idXR0b24vYWRkLXdpZGdldC1taW5pLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25GLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBb0JuRSxNQUFNLE9BQU8sdUNBQXVDO0lBbEJwRDtRQW1CVSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLFdBQU0sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUcvQyxZQUFPLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7S0FxQi9EO0lBbkJXLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBYTtRQUN2QyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQ1ksT0FBTztRQUNqQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsRUFBRTtRQUNGLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QixHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzsrR0F6QlUsdUNBQXVDO21HQUF2Qyx1Q0FBdUMsbUxBaEJ4Qzs7Ozs7Ozs7Ozs7R0FXVCwyREFFUyxjQUFjLDhCQUFFLGlCQUFpQjs7NEZBR2hDLHVDQUF1QztrQkFsQm5ELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7OztHQVdUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUM7b0JBQzVDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7c0JBS0UsTUFBTTs7c0JBYU4sV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGVzaWduZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LW1pbmktYnV0dG9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXhwLWVtcHR5LXNwYWNlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbS1hdXRvIGF4LXB5LTQgYXgtcHgtOFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1zaXplLTQgaG92ZXI6YXgtc2NhbGUtMTI1IGF4LWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXBsdXNcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Nb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJBZGRXaWRnZXRNaW5pQnV0dG9uQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBkZXNpZ25lclNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwYXJlbnQgPSBpbmplY3QoQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGEgPSB0aGlzLm9uQ2xpY2s7XG4gICAgaWYgKHRoaXMub25DbGljay5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5kZXNpZ25lclNlcnZpY2Uuc2hvd1BpY2tlcih0aGlzLnBhcmVudC5ub2RlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsczogYW55ID0ge307XG4gICAgLy9cbiAgICBjbHNbYGF4LWZsZXhgXSA9IHRydWU7XG4gICAgY2xzW2BheC13LWZ1bGxgXSA9IHRydWU7XG4gICAgY2xzW2BheC1oLWZ1bGxgXSA9IHRydWU7XG4gICAgcmV0dXJuIGNscztcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, Component, HostListener, computed, model, output, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerFlexDrawerComponent {\n constructor() {\n this.itemsCount = model(12, ...(ngDevMode ? [{ debugName: \"itemsCount\", alias: 'items' }] : [{ alias: 'items' }]));\n this.onSelect = output();\n this.items = computed(() => Array.from({ length: this.itemsCount() }).map((v, index) => index + 1), ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n this.range = signal(0, ...(ngDevMode ? [{ debugName: \"range\" }] : []));\n }\n handleMouseHover(c) {\n this.range.set(c);\n }\n handleClick(c) {\n this.onSelect.emit(c);\n }\n handleMouseLeave(event) {\n this.range.set(0);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerFlexDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPDesignerFlexDrawerComponent, isStandalone: true, selector: \"axp-designer-flex-drawer\", inputs: { itemsCount: { classPropertyName: \"itemsCount\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsCount: \"itemsChange\", onSelect: \"onSelect\" }, host: { listeners: { \"mouseleave\": \"handleMouseLeave($event)\" } }, ngImport: i0, template: `\n <table class=\"table-picker\">\n <tbody>\n <tr>\n @for (c of items(); track $index) {\n <td (mouseenter)=\"handleMouseHover(c)\" [class.picked]=\"c <= range()\" (click)=\"handleClick(c)\"></td>\n }\n </tr>\n <tr>\n <td [attr.colspan]=\"items().length\" class=\"ax-text-center\">\n <small>{{ range() }}</small>\n </td>\n </tr>\n </tbody>\n </table>\n `, isInline: true, styles: [\":host{width:100%}:host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))}:host table td:after{content:\\\"\\\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1))}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerFlexDrawerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-flex-drawer', template: `\n <table class=\"table-picker\">\n <tbody>\n <tr>\n @for (c of items(); track $index) {\n <td (mouseenter)=\"handleMouseHover(c)\" [class.picked]=\"c <= range()\" (click)=\"handleClick(c)\"></td>\n }\n </tr>\n <tr>\n <td [attr.colspan]=\"items().length\" class=\"ax-text-center\">\n <small>{{ range() }}</small>\n </td>\n </tr>\n </tbody>\n </table>\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [], styles: [\":host{width:100%}:host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))}:host table td:after{content:\\\"\\\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1))}\\n\"] }]\n }], propDecorators: { itemsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: \"items\", required: false }] }, { type: i0.Output, args: [\"itemsChange\"] }], onSelect: [{ type: i0.Output, args: [\"onSelect\"] }], handleMouseLeave: [{\n type: HostListener,\n args: ['mouseleave', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2ZsZXgtZHJhd2VyL2ZsZXgtZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBd0JsSCxNQUFNLE9BQU8sOEJBQThCO0lBdEIzQztRQXVCRSxlQUFVLEdBQUcsS0FBSyxDQUFTLEVBQUUsOENBQUksS0FBSyxFQUFFLE9BQU8sT0FBaEIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUMsQ0FBQztRQUVuRCxhQUFRLEdBQUcsTUFBTSxFQUFVLENBQUM7UUFFbEIsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxpREFBQyxDQUFDO1FBRS9GLFVBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxpREFBQyxDQUFDO0tBYzdCO0lBWlcsZ0JBQWdCLENBQUMsQ0FBUztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRVMsV0FBVyxDQUFDLENBQVM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUdTLGdCQUFnQixDQUFDLEtBQWlCO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7K0dBcEJVLDhCQUE4QjttR0FBOUIsOEJBQThCLG1XQW5CL0I7Ozs7Ozs7Ozs7Ozs7OztHQWVUOzs0RkFJVSw4QkFBOEI7a0JBdEIxQyxTQUFTOytCQUNFLDBCQUEwQixZQUUxQjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsRUFBRTs7c0JBbUJWLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBjb21wdXRlZCwgbW9kZWwsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1mbGV4LWRyYXdlcicsXG4gIHN0eWxlVXJsczogWycuL2ZsZXgtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHRhYmxlIGNsYXNzPVwidGFibGUtcGlja2VyXCI+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICBAZm9yIChjIG9mIGl0ZW1zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRkIChtb3VzZWVudGVyKT1cImhhbmRsZU1vdXNlSG92ZXIoYylcIiBbY2xhc3MucGlja2VkXT1cImMgPD0gcmFuZ2UoKVwiIChjbGljayk9XCJoYW5kbGVDbGljayhjKVwiPjwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiaXRlbXMoKS5sZW5ndGhcIiBjbGFzcz1cImF4LXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8c21hbGw+e3sgcmFuZ2UoKSB9fTwvc21hbGw+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckZsZXhEcmF3ZXJDb21wb25lbnQge1xuICBpdGVtc0NvdW50ID0gbW9kZWw8bnVtYmVyPigxMiwgeyBhbGlhczogJ2l0ZW1zJyB9KTtcblxuICBvblNlbGVjdCA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgcHJvdGVjdGVkIGl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5pdGVtc0NvdW50KCkgfSkubWFwKCh2LCBpbmRleCkgPT4gaW5kZXggKyAxKSk7XG5cbiAgcHJvdGVjdGVkIHJhbmdlID0gc2lnbmFsKDApO1xuXG4gIHByb3RlY3RlZCBoYW5kbGVNb3VzZUhvdmVyKGM6IG51bWJlcikge1xuICAgIHRoaXMucmFuZ2Uuc2V0KGMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrKGM6IG51bWJlcikge1xuICAgIHRoaXMub25TZWxlY3QuZW1pdChjKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlTW91c2VMZWF2ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMucmFuZ2Uuc2V0KDApO1xuICB9XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, computed, HostBinding, HostListener, model, output, signal, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerGridDrawerComponent {\n constructor() {\n this.rowsCount = model(5, ...(ngDevMode ? [{ debugName: \"rowsCount\", alias: 'rows' }] : [{ alias: 'rows' }]));\n this.colsCount = model(12, ...(ngDevMode ? [{ debugName: \"colsCount\", alias: 'columns' }] : [{ alias: 'columns' }]));\n this.onSelect = output();\n this.rows = computed(() => Array.from({ length: this.rowsCount() }).map((v, index) => index + 1), ...(ngDevMode ? [{ debugName: \"rows\" }] : []));\n this.columns = computed(() => Array.from({ length: this.colsCount() }).map((v, index) => index + 1), ...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n this.rangeR = signal(0, ...(ngDevMode ? [{ debugName: \"rangeR\" }] : []));\n this.rangeC = signal(0, ...(ngDevMode ? [{ debugName: \"rangeC\" }] : []));\n }\n handleMouseHover(r, c) {\n this.rangeR.set(r);\n this.rangeC.set(c);\n }\n handleClick(r, c) {\n this.onSelect.emit({ rows: r, cols: c });\n }\n handleMouseLeave(event) {\n this.rangeR.set(0);\n this.rangeC.set(0);\n }\n get __style() {\n return {\n '--cols-width': `${this.colsCount() == 0 ? 0 : 100 / this.colsCount()}%`,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerGridDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPDesignerGridDrawerComponent, isStandalone: true, selector: \"axp-designer-grid-drawer\", inputs: { rowsCount: { classPropertyName: \"rowsCount\", publicName: \"rows\", isSignal: true, isRequired: false, transformFunction: null }, colsCount: { classPropertyName: \"colsCount\", publicName: \"columns\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rowsCount: \"rowsChange\", colsCount: \"columnsChange\", onSelect: \"onSelect\" }, host: { listeners: { \"mouseleave\": \"handleMouseLeave($event)\" }, properties: { \"style\": \"this.__style\" } }, ngImport: i0, template: `\n <table class=\"table-picker\">\n <tbody>\n @for (r of rows(); track $index) {\n <tr>\n @for (c of columns(); track $index) {\n <td\n (mouseenter)=\"handleMouseHover(r, c)\"\n [class.picked]=\"c <= rangeC() && r <= rangeR()\"\n (click)=\"handleClick(r, c)\"\n ></td>\n }\n </tr>\n }\n <tr>\n <td [attr.colspan]=\"columns().length\" class=\"ax-text-center\">\n <small>{{ rangeC() }}×{{ rangeR() }}</small>\n </td>\n </tr>\n </tbody>\n </table>\n `, isInline: true, styles: [\":host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));width:var(--cols-width)}:host table td:after{content:\\\"\\\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1))}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerGridDrawerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-grid-drawer', template: `\n <table class=\"table-picker\">\n <tbody>\n @for (r of rows(); track $index) {\n <tr>\n @for (c of columns(); track $index) {\n <td\n (mouseenter)=\"handleMouseHover(r, c)\"\n [class.picked]=\"c <= rangeC() && r <= rangeR()\"\n (click)=\"handleClick(r, c)\"\n ></td>\n }\n </tr>\n }\n <tr>\n <td [attr.colspan]=\"columns().length\" class=\"ax-text-center\">\n <small>{{ rangeC() }}×{{ rangeR() }}</small>\n </td>\n </tr>\n </tbody>\n </table>\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [], styles: [\":host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));width:var(--cols-width)}:host table td:after{content:\\\"\\\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1))}\\n\"] }]\n }], propDecorators: { rowsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: \"rows\", required: false }] }, { type: i0.Output, args: [\"rowsChange\"] }], colsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: \"columns\", required: false }] }, { type: i0.Output, args: [\"columnsChange\"] }], onSelect: [{ type: i0.Output, args: [\"onSelect\"] }], handleMouseLeave: [{\n type: HostListener,\n args: ['mouseleave', ['$event']]\n }], __style: [{\n type: HostBinding,\n args: ['style']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2dyaWQtZHJhd2VyL2dyaWQtZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUE4QnZCLE1BQU0sT0FBTyw4QkFBOEI7SUE1QjNDO1FBNkJFLGNBQVMsR0FBRyxLQUFLLENBQVMsQ0FBQyw2Q0FBSSxLQUFLLEVBQUUsTUFBTSxPQUFmLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFDLENBQUM7UUFDaEQsY0FBUyxHQUFHLEtBQUssQ0FBUyxFQUFFLDZDQUFJLEtBQUssRUFBRSxTQUFTLE9BQWxCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFDLENBQUM7UUFFcEQsYUFBUSxHQUFHLE1BQU0sRUFBa0MsQ0FBQztRQUUxQyxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLGdEQUFDLENBQUM7UUFDN0YsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxtREFBQyxDQUFDO1FBRWhHLFdBQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxrREFBQyxDQUFDO1FBQ25CLFdBQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxrREFBQyxDQUFDO0tBdUI5QjtJQXJCVyxnQkFBZ0IsQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRVMsV0FBVyxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBR1MsZ0JBQWdCLENBQUMsS0FBaUI7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQ1ksT0FBTztRQUNqQixPQUFPO1lBQ0wsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHO1NBQ3pFLENBQUM7SUFDSixDQUFDOytHQWhDVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixxaUJBekIvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJUOzs0RkFJVSw4QkFBOEI7a0JBNUIxQyxTQUFTOytCQUNFLDBCQUEwQixZQUUxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJULG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLEVBQUU7O3NCQXVCVixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBTXJDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItZ3JpZC1kcmF3ZXInLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLWRyYXdlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLXBpY2tlclwiPlxuICAgICAgPHRib2R5PlxuICAgICAgICBAZm9yIChyIG9mIHJvd3MoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgQGZvciAoYyBvZiBjb2x1bW5zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJoYW5kbGVNb3VzZUhvdmVyKHIsIGMpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucGlja2VkXT1cImMgPD0gcmFuZ2VDKCkgJiYgciA8PSByYW5nZVIoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKHIsIGMpXCJcbiAgICAgICAgICAgICAgPjwvdGQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgfVxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucygpLmxlbmd0aFwiIGNsYXNzPVwiYXgtdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzbWFsbD57eyByYW5nZUMoKSB9fcOXe3sgcmFuZ2VSKCkgfX08L3NtYWxsPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJHcmlkRHJhd2VyQ29tcG9uZW50IHtcbiAgcm93c0NvdW50ID0gbW9kZWw8bnVtYmVyPig1LCB7IGFsaWFzOiAncm93cycgfSk7XG4gIGNvbHNDb3VudCA9IG1vZGVsPG51bWJlcj4oMTIsIHsgYWxpYXM6ICdjb2x1bW5zJyB9KTtcblxuICBvblNlbGVjdCA9IG91dHB1dDx7IHJvd3M6IG51bWJlcjsgY29sczogbnVtYmVyIH0+KCk7XG5cbiAgcHJvdGVjdGVkIHJvd3MgPSBjb21wdXRlZCgoKSA9PiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLnJvd3NDb3VudCgpIH0pLm1hcCgodiwgaW5kZXgpID0+IGluZGV4ICsgMSkpO1xuICBwcm90ZWN0ZWQgY29sdW1ucyA9IGNvbXB1dGVkKCgpID0+IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuY29sc0NvdW50KCkgfSkubWFwKCh2LCBpbmRleCkgPT4gaW5kZXggKyAxKSk7XG5cbiAgcHJvdGVjdGVkIHJhbmdlUiA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHJhbmdlQyA9IHNpZ25hbCgwKTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlTW91c2VIb3ZlcihyOiBudW1iZXIsIGM6IG51bWJlcikge1xuICAgIHRoaXMucmFuZ2VSLnNldChyKTtcbiAgICB0aGlzLnJhbmdlQy5zZXQoYyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2socjogbnVtYmVyLCBjOiBudW1iZXIpIHtcbiAgICB0aGlzLm9uU2VsZWN0LmVtaXQoeyByb3dzOiByLCBjb2xzOiBjIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBoYW5kbGVNb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5yYW5nZVIuc2V0KDApO1xuICAgIHRoaXMucmFuZ2VDLnNldCgwKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKVxuICBwcml2YXRlIGdldCBfX3N0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICctLWNvbHMtd2lkdGgnOiBgJHt0aGlzLmNvbHNDb3VudCgpID09IDAgPyAwIDogMTAwIC8gdGhpcy5jb2xzQ291bnQoKX0lYCxcbiAgICB9O1xuICB9XG59XG4iXX0=","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXPSettingService, AXPStickyDirective } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPWidgetItemComponent } from '@acorex/platform/layout/components';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, inject, model, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { castArray, orderBy, uniqBy } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/cdk/common\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"@acorex/components/button\";\nimport * as i5 from \"@acorex/components/decorators\";\nimport * as i6 from \"@acorex/components/tabs\";\nimport * as i7 from \"@acorex/components/search-box\";\n/**\n * Maps AXPDisplayWidgetConfig to generic AXPWidgetItemData\n */\nfunction mapToWidgetItemData(widget) {\n return {\n title: widget.title,\n description: widget.description,\n icon: widget.icon ?? 'fa-solid fa-cube',\n isPinned: widget.pinned,\n data: widget\n };\n}\nexport class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.settingService = inject(AXPSettingService);\n this.pinnedSettingKey = 'forms:widgets:picker:pinned';\n this.searchTerm = model('', ...(ngDevMode ? [{ debugName: \"searchTerm\" }] : []));\n // Signals\n this.widgets = [];\n this.allWidgets = signal([], ...(ngDevMode ? [{ debugName: \"allWidgets\" }] : []));\n this.pinnedWidgets = signal([], ...(ngDevMode ? [{ debugName: \"pinnedWidgets\" }] : []));\n this.displayWidgets = computed(() => {\n return this.allWidgets().map((c) => ({ ...c, pinned: this.pinnedWidgets().includes(c.name) }));\n }, ...(ngDevMode ? [{ debugName: \"displayWidgets\" }] : []));\n // Signal to track selected widgets\n this.selectedWidgets = signal([], ...(ngDevMode ? [{ debugName: \"selectedWidgets\" }] : []));\n // Computed for filtered and ordered widget list\n this.orderedList = computed(() => {\n const search = this.searchTerm().toLowerCase();\n const selectedTabName = this.selectedTab().name;\n return orderBy(this.displayWidgets().filter((w) => {\n const matchesTab = selectedTabName === 'all' || castArray(w.categories ?? []).some((c) => c.name === selectedTabName);\n const matchesSearch = !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);\n return matchesTab && matchesSearch;\n }), ['pinned', 'title'], ['desc', 'asc']);\n }, ...(ngDevMode ? [{ debugName: \"orderedList\" }] : []));\n // Pinned and regular lists\n this.pinnedList = computed(() => this.orderedList().filter((c) => c.pinned), ...(ngDevMode ? [{ debugName: \"pinnedList\" }] : []));\n this.regularList = computed(() => this.orderedList().filter((c) => !c.pinned), ...(ngDevMode ? [{ debugName: \"regularList\" }] : []));\n // Mapped data for generic widget items\n this.pinnedWidgetItems = computed(() => this.pinnedList().map(mapToWidgetItemData), ...(ngDevMode ? [{ debugName: \"pinnedWidgetItems\" }] : []));\n this.regularWidgetItems = computed(() => this.regularList().map(mapToWidgetItemData), ...(ngDevMode ? [{ debugName: \"regularWidgetItems\" }] : []));\n // Tabs for the widget groups\n this.categories = computed(() => uniqBy(this.allWidgets()\n .map((w) => castArray(w.categories ?? []))\n .filter((c) => c.length > 0)\n .flat(), 'name'), ...(ngDevMode ? [{ debugName: \"categories\" }] : []));\n this.tabs = computed(() => orderBy([{ name: 'all', title: 'All', order: 0 }, ...this.categories()], (c) => c.order), ...(ngDevMode ? [{ debugName: \"tabs\" }] : []));\n // computed max visible widgets in a tab\n this.maxVisibleWidgets = computed(() => Math.max(...this.categories().map((c) => this.allWidgets().filter((w) => castArray(w.categories ?? []).some((c) => c.name === c.name)).length)), ...(ngDevMode ? [{ debugName: \"maxVisibleWidgets\" }] : []));\n this.currentTabIndex = signal(0, ...(ngDevMode ? [{ debugName: \"currentTabIndex\" }] : []));\n this.selectedTab = computed(() => this.tabs()[this.currentTabIndex()], ...(ngDevMode ? [{ debugName: \"selectedTab\" }] : []));\n }\n async ngOnInit() {\n super.ngOnInit();\n this.allWidgets.set(this.widgets);\n this.pinnedWidgets.set((await this.settingService.get(this.pinnedSettingKey)) || []);\n }\n handleTabChange(event) {\n const indx = event.index;\n if (this.currentTabIndex() != indx) {\n this.currentTabIndex.set(indx);\n }\n }\n handleWidgetClick(clickEvent) {\n const { event, widget } = clickEvent;\n const originalWidget = widget.data;\n if (event.ctrlKey) {\n const currentSelection = this.selectedWidgets();\n const isAlreadySelected = currentSelection.some((w) => w === originalWidget);\n if (isAlreadySelected) {\n // Deselect widget if already selected\n this.selectedWidgets.set(currentSelection.filter((w) => w !== originalWidget));\n }\n else {\n // Add widget to selection\n this.selectedWidgets.set([...currentSelection, originalWidget]);\n }\n }\n else {\n // If CTRL is not pressed, select only the clicked widget\n this.close({ widgets: [originalWidget] });\n }\n }\n async handleWidgetPinClick(clickEvent) {\n const { widget } = clickEvent;\n const originalWidget = widget.data;\n originalWidget.pinned = !originalWidget.pinned;\n // Get the current list of pinned widgets from settings\n let pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];\n // Update the list of pinned widgets based on the pinned status\n if (originalWidget.pinned) {\n if (!pinnedWidgets.includes(originalWidget.name)) {\n pinnedWidgets.push(originalWidget.name);\n }\n }\n else {\n pinnedWidgets = pinnedWidgets.filter((name) => name !== originalWidget.name);\n }\n // Save the updated list of pinned widgets\n await this.settingService.scope(AXPPlatformScope.User).set(this.pinnedSettingKey, pinnedWidgets);\n // Trigger a re-render of the widgets\n this.pinnedWidgets.set(pinnedWidgets);\n }\n // Check if a widget is selected\n isWidgetSelected(widget) {\n return this.selectedWidgets().includes(widget);\n }\n // Check if a generic widget item is selected\n isWidgetItemSelected(widgetItem) {\n const originalWidget = widgetItem.data;\n return this.isWidgetSelected(originalWidget);\n }\n handleConfirmSelection() {\n this.close({ widgets: this.selectedWidgets() });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerWidgetPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPDesignerWidgetPickerComponent, isStandalone: true, selector: \"ng-component\", inputs: { searchTerm: { classPropertyName: \"searchTerm\", publicName: \"searchTerm\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchTerm: \"searchTermChange\" }, usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-flex ax-flex-col ax-h-[95vh]\\\"\\n [ngClass]=\\\"{ 'lg:ax-h-[75vh]': maxVisibleWidgets() > 10, 'lg:ax-h-[50vh]': maxVisibleWidgets() <= 10 }\\\">\\n <div>\\n <ax-tabs [look]=\\\"'with-line'\\\" (onActiveTabChanged)=\\\"handleTabChange($event)\\\">\\n @for(w of tabs();track $index) {\\n <ax-tab-item [text]=\\\"w.title\\\" [key]=\\\"$index.toString()\\\" [active]=\\\"currentTabIndex() === $index\\\"></ax-tab-item>\\n }\\n </ax-tabs>\\n </div>\\n <div class=\\\"ax-overflow-auto\\\" #content>\\n <div class=\\\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\\\" #sticky=\\\"axpSticky\\\"\\n [axpSticky]=\\\"'ax-bg-lightest ax-shadow-xl'\\\" [stickyParent]=\\\"content\\\" [stickyOffset]=\\\"10\\\">\\n <ax-search-box look=\\\"fill\\\" placeholder=\\\"e.g. Button, Text, ...\\\" [(ngModel)]=\\\"searchTerm\\\" [delayTime]=\\\"300\\\"\\n [axAutoFocus]=\\\"true\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-p-4 ax-pt-0\\\">\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for(widgetItem of pinnedWidgetItems();track widgetItem.title) {\\n <axp-widget-item [widget]=\\\"widgetItem\\\" [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\" (onPinClick)=\\\"handleWidgetPinClick($event)\\\">\\n </axp-widget-item>\\n }\\n </div>\\n @if(pinnedWidgetItems().length) {\\n <hr class=\\\"ax-my-4 ax-border-dashed\\\" />\\n }\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for(widgetItem of regularWidgetItems();track widgetItem.title) {\\n <axp-widget-item [widget]=\\\"widgetItem\\\" [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\" (onPinClick)=\\\"handleWidgetPinClick($event)\\\">\\n </axp-widget-item>\\n }\\n </div>\\n </div>\\n </div>\\n</div>\\n@if(selectedWidgets().length) {\\n<ax-footer>\\n <ax-suffix>\\n <ax-button look=\\\"solid\\\" color=\\\"primary\\\" text=\\\"{{ selectedWidgets().length }} Selected\\\"\\n (onClick)=\\\"handleConfirmSelection()\\\"></ax-button>\\n </ax-suffix>\\n</ax-footer>\\n}\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"directive\", type: i2.AXAutoFocusDirective, selector: \"[axAutoFocus]\", inputs: [\"axAutoFocus\", \"axAutoFocusTime\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i4.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i5.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i5.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"component\", type: i6.AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: i6.AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i7.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\", \"autoSearch\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"directive\", type: AXPStickyDirective, selector: \"[axpSticky]\", inputs: [\"axpSticky\", \"stickyOffset\", \"stickyParent\", \"stickyTarget\"], outputs: [\"isStickyChange\"], exportAs: [\"axpSticky\"] }, { kind: \"component\", type: AXPWidgetItemComponent, selector: \"axp-widget-item\", inputs: [\"widget\", \"isSelected\", \"showPinButton\", \"customClasses\"], outputs: [\"onWidgetClick\", \"onPinClick\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerWidgetPickerComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n AXCommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTabsModule,\n AXSearchBoxModule,\n AXPStickyDirective,\n AXPWidgetItemComponent,\n ], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"ax-flex ax-flex-col ax-h-[95vh]\\\"\\n [ngClass]=\\\"{ 'lg:ax-h-[75vh]': maxVisibleWidgets() > 10, 'lg:ax-h-[50vh]': maxVisibleWidgets() <= 10 }\\\">\\n <div>\\n <ax-tabs [look]=\\\"'with-line'\\\" (onActiveTabChanged)=\\\"handleTabChange($event)\\\">\\n @for(w of tabs();track $index) {\\n <ax-tab-item [text]=\\\"w.title\\\" [key]=\\\"$index.toString()\\\" [active]=\\\"currentTabIndex() === $index\\\"></ax-tab-item>\\n }\\n </ax-tabs>\\n </div>\\n <div class=\\\"ax-overflow-auto\\\" #content>\\n <div class=\\\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\\\" #sticky=\\\"axpSticky\\\"\\n [axpSticky]=\\\"'ax-bg-lightest ax-shadow-xl'\\\" [stickyParent]=\\\"content\\\" [stickyOffset]=\\\"10\\\">\\n <ax-search-box look=\\\"fill\\\" placeholder=\\\"e.g. Button, Text, ...\\\" [(ngModel)]=\\\"searchTerm\\\" [delayTime]=\\\"300\\\"\\n [axAutoFocus]=\\\"true\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-p-4 ax-pt-0\\\">\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for(widgetItem of pinnedWidgetItems();track widgetItem.title) {\\n <axp-widget-item [widget]=\\\"widgetItem\\\" [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\" (onPinClick)=\\\"handleWidgetPinClick($event)\\\">\\n </axp-widget-item>\\n }\\n </div>\\n @if(pinnedWidgetItems().length) {\\n <hr class=\\\"ax-my-4 ax-border-dashed\\\" />\\n }\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for(widgetItem of regularWidgetItems();track widgetItem.title) {\\n <axp-widget-item [widget]=\\\"widgetItem\\\" [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\" (onPinClick)=\\\"handleWidgetPinClick($event)\\\">\\n </axp-widget-item>\\n }\\n </div>\\n </div>\\n </div>\\n</div>\\n@if(selectedWidgets().length) {\\n<ax-footer>\\n <ax-suffix>\\n <ax-button look=\\\"solid\\\" color=\\\"primary\\\" text=\\\"{{ selectedWidgets().length }} Selected\\\"\\n (onClick)=\\\"handleConfirmSelection()\\\"></ax-button>\\n </ax-suffix>\\n</ax-footer>\\n}\" }]\n }], propDecorators: { searchTerm: [{ type: i0.Input, args: [{ isSignal: true, alias: \"searchTerm\", required: false }] }, { type: i0.Output, args: [\"searchTermChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvd2lkZ2V0LXBpY2tlci93aWRnZXQtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy93aWRnZXQtcGlja2VyL3dpZGdldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUEwQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxzQkFBc0IsRUFBOEMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFB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QUFDOytHQS9JVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQywrUkMvQzdDLDRsRUE2Q0MsMkNEWEcsWUFBWSw0SEFDWixjQUFjLDJKQUNkLFdBQVcsOFZBQ1gsY0FBYyw2WEFDZCxpQkFBaUIscVdBQ2pCLFlBQVksa2FBQ1osaUJBQWlCLDJaQUNqQixrQkFBa0IscUxBQ2xCLHNCQUFzQjs7NEZBS2IsZ0NBQWdDO2tCQWY1QyxTQUFTOzhCQUNDO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixzQkFBc0I7cUJBQ3ZCLGlCQUVjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb21tb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUsIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nU2VydmljZSwgQVhQU3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQUGxhdGZvcm1TY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldENhdGVnb3J5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0SXRlbUNvbXBvbmVudCwgQVhQV2lkZ2V0SXRlbURhdGEsIEFYUFdpZGdldEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBtb2RlbCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjYXN0QXJyYXksIG9yZGVyQnksIHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGlzcGxheVdpZGdldENvbmZpZyBleHRlbmRzIEFYUFdpZGdldENvbmZpZyB7XG4gIHBpbm5lZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYXBzIEFYUERpc3BsYXlXaWRnZXRDb25maWcgdG8gZ2VuZXJpYyBBWFBXaWRnZXRJdGVtRGF0YVxuICovXG5mdW5jdGlvbiBtYXBUb1dpZGdldEl0ZW1EYXRhKHdpZGdldDogQVhQRGlzcGxheVdpZGdldENvbmZpZyk6IEFYUFdpZGdldEl0ZW1EYXRhIHtcbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogd2lkZ2V0LnRpdGxlLFxuICAgIGRlc2NyaXB0aW9uOiB3aWRnZXQuZGVzY3JpcHRpb24sXG4gICAgaWNvbjogd2lkZ2V0Lmljb24gPz8gJ2ZhLXNvbGlkIGZhLWN1YmUnLFxuICAgIGlzUGlubmVkOiB3aWRnZXQucGlubmVkLFxuICAgIGRhdGE6IHdpZGdldFxuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhQU3RpY2t5RGlyZWN0aXZlLFxuICAgIEFYUFdpZGdldEl0ZW1Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJXaWRnZXRQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQYWdlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZSA9IGluamVjdChBWFBTZXR0aW5nU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGlubmVkU2V0dGluZ0tleSA9ICdmb3Jtczp3aWRnZXRzOnBpY2tlcjpwaW5uZWQnO1xuXG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtID0gbW9kZWwoJycpO1xuXG4gIC8vIFNpZ25hbHNcbiAgcHJpdmF0ZSB3aWRnZXRzOiBBWFBXaWRnZXRDb25maWdbXSA9IFtdO1xuICBwcml2YXRlIGFsbFdpZGdldHMgPSBzaWduYWw8QVhQV2lkZ2V0Q29uZmlnW10+KFtdKTtcbiAgcHJpdmF0ZSBwaW5uZWRXaWRnZXRzID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG5cbiAgcHJpdmF0ZSBkaXNwbGF5V2lkZ2V0cyA9IGNvbXB1dGVkPEFYUERpc3BsYXlXaWRnZXRDb25maWdbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbFdpZGdldHMoKS5tYXAoKGMpID0+ICh7IC4uLmMsIHBpbm5lZDogdGhpcy5waW5uZWRXaWRnZXRzKCkuaW5jbHVkZXMoYy5uYW1lKSB9KSk7XG4gIH0pO1xuXG4gIC8vIFNpZ25hbCB0byB0cmFjayBzZWxlY3RlZCB3aWRnZXRzXG4gIHByb3RlY3RlZCBzZWxlY3RlZFdpZGdldHMgPSBzaWduYWw8QVhQRGlzcGxheVdpZGdldENvbmZpZ1tdPihbXSk7XG5cbiAgLy8gQ29tcHV0ZWQgZm9yIGZpbHRlcmVkIGFuZCBvcmRlcmVkIHdpZGdldCBsaXN0XG4gIHByaXZhdGUgb3JkZXJlZExpc3QgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2hUZXJtKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzZWxlY3RlZFRhYk5hbWUgPSB0aGlzLnNlbGVjdGVkVGFiKCkubmFtZTtcblxuICAgIHJldHVybiBvcmRlckJ5KFxuICAgICAgdGhpcy5kaXNwbGF5V2lkZ2V0cygpLmZpbHRlcigodykgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzVGFiID1cbiAgICAgICAgICBzZWxlY3RlZFRhYk5hbWUgPT09ICdhbGwnIHx8IGNhc3RBcnJheSh3LmNhdGVnb3JpZXMgPz8gW10pLnNvbWUoKGMpID0+IGMubmFtZSA9PT0gc2VsZWN0ZWRUYWJOYW1lKTtcbiAgICAgICAgY29uc3QgbWF0Y2hlc1NlYXJjaCA9XG4gICAgICAgICAgIXNlYXJjaCB8fCB3LnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fCB3LmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCk7XG4gICAgICAgIHJldHVybiBtYXRjaGVzVGFiICYmIG1hdGNoZXNTZWFyY2g7XG4gICAgICB9KSxcbiAgICAgIFsncGlubmVkJywgJ3RpdGxlJ10sXG4gICAgICBbJ2Rlc2MnLCAnYXNjJ10sXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gUGlubmVkIGFuZCByZWd1bGFyIGxpc3RzXG4gIHByb3RlY3RlZCBwaW5uZWRMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gYy5waW5uZWQpKTtcbiAgcHJvdGVjdGVkIHJlZ3VsYXJMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gIWMucGlubmVkKSk7XG5cbiAgLy8gTWFwcGVkIGRhdGEgZm9yIGdlbmVyaWMgd2lkZ2V0IGl0ZW1zXG4gIHByb3RlY3RlZCBwaW5uZWRXaWRnZXRJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGlubmVkTGlzdCgpLm1hcChtYXBUb1dpZGdldEl0ZW1EYXRhKSk7XG4gIHByb3RlY3RlZCByZWd1bGFyV2lkZ2V0SXRlbXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlZ3VsYXJMaXN0KCkubWFwKG1hcFRvV2lkZ2V0SXRlbURhdGEpKTtcblxuICAvLyBUYWJzIGZvciB0aGUgd2lkZ2V0IGdyb3Vwc1xuICBwcm90ZWN0ZWQgY2F0ZWdvcmllcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdW5pcUJ5KFxuICAgICAgdGhpcy5hbGxXaWRnZXRzKClcbiAgICAgICAgLm1hcCgodykgPT4gY2FzdEFycmF5KHcuY2F0ZWdvcmllcyA/PyBbXSkpXG4gICAgICAgIC5maWx0ZXIoKGMpID0+IGMubGVuZ3RoID4gMClcbiAgICAgICAgLmZsYXQoKSxcbiAgICAgICduYW1lJyxcbiAgICApLFxuICApO1xuXG4gIHByb3RlY3RlZCB0YWJzID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Q2F0ZWdvcnlbXT4oKCkgPT5cbiAgICBvcmRlckJ5KFt7IG5hbWU6ICdhbGwnLCB0aXRsZTogJ0FsbCcsIG9yZGVyOiAwIH0sIC4uLnRoaXMuY2F0ZWdvcmllcygpXSwgKGMpID0+IGMub3JkZXIpLFxuICApO1xuXG4gIC8vIGNvbXB1dGVkIG1heCB2aXNpYmxlIHdpZGdldHMgaW4gYSB0YWJcbiAgcHJvdGVjdGVkIG1heFZpc2libGVXaWRnZXRzID0gY29tcHV0ZWQoKCkgPT5cbiAgICBNYXRoLm1heChcbiAgICAgIC4uLnRoaXMuY2F0ZWdvcmllcygpLm1hcChcbiAgICAgICAgKGMpID0+IHRoaXMuYWxsV2lkZ2V0cygpLmZpbHRlcigodykgPT4gY2FzdEFycmF5KHcuY2F0ZWdvcmllcyA/PyBbXSkuc29tZSgoYykgPT4gYy5uYW1lID09PSBjLm5hbWUpKS5sZW5ndGgsXG4gICAgICApLFxuICAgICksXG4gICk7XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRUYWJJbmRleCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkVGFiID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50YWJzKClbdGhpcy5jdXJyZW50VGFiSW5kZXgoKV0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuYWxsV2lkZ2V0cy5zZXQodGhpcy53aWRnZXRzKTtcbiAgICB0aGlzLnBpbm5lZFdpZGdldHMuc2V0KChhd2FpdCB0aGlzLnNldHRpbmdTZXJ2aWNlLmdldDxzdHJpbmdbXT4odGhpcy5waW5uZWRTZXR0aW5nS2V5KSkgfHwgW10pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVRhYkNoYW5nZShldmVudDogQVhUYWJTdHJpcENoYW5nZWRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGluZHggPSBldmVudC5pbmRleDtcbiAgICBpZiAodGhpcy5jdXJyZW50VGFiSW5kZXgoKSAhPSBpbmR4KSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJJbmRleC5zZXQoaW5keCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVdpZGdldENsaWNrKGNsaWNrRXZlbnQ6IEFYUFdpZGdldEl0ZW1DbGlja0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgeyBldmVudCwgd2lkZ2V0IH0gPSBjbGlja0V2ZW50O1xuICAgIGNvbnN0IG9yaWdpbmFsV2lkZ2V0ID0gd2lkZ2V0LmRhdGEgYXMgQVhQRGlzcGxheVdpZGdldENvbmZpZztcblxuICAgIGlmIChldmVudC5jdHJsS2V5KSB7XG4gICAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZFdpZGdldHMoKTtcbiAgICAgIGNvbnN0IGlzQWxyZWFkeVNlbGVjdGVkID0gY3VycmVudFNlbGVjdGlvbi5zb21lKCh3KSA9PiB3ID09PSBvcmlnaW5hbFdpZGdldCk7XG5cbiAgICAgIGlmIChpc0FscmVhZHlTZWxlY3RlZCkge1xuICAgICAgICAvLyBEZXNlbGVjdCB3aWRnZXQgaWYgYWxyZWFkeSBzZWxlY3RlZFxuICAgICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5zZXQoY3VycmVudFNlbGVjdGlvbi5maWx0ZXIoKHcpID0+IHcgIT09IG9yaWdpbmFsV2lkZ2V0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBZGQgd2lkZ2V0IHRvIHNlbGVjdGlvblxuICAgICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5zZXQoWy4uLmN1cnJlbnRTZWxlY3Rpb24sIG9yaWdpbmFsV2lkZ2V0XSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIENUUkwgaXMgbm90IHByZXNzZWQsIHNlbGVjdCBvbmx5IHRoZSBjbGlja2VkIHdpZGdldFxuICAgICAgdGhpcy5jbG9zZSh7IHdpZGdldHM6IFtvcmlnaW5hbFdpZGdldF0gfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVdpZGdldFBpbkNsaWNrKGNsaWNrRXZlbnQ6IEFYUFdpZGdldEl0ZW1DbGlja0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyB3aWRnZXQgfSA9IGNsaWNrRXZlbnQ7XG4gICAgY29uc3Qgb3JpZ2luYWxXaWRnZXQgPSB3aWRnZXQuZGF0YSBhcyBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnO1xuXG4gICAgb3JpZ2luYWxXaWRnZXQucGlubmVkID0gIW9yaWdpbmFsV2lkZ2V0LnBpbm5lZDtcblxuICAgIC8vIEdldCB0aGUgY3VycmVudCBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzIGZyb20gc2V0dGluZ3NcbiAgICBsZXQgcGlubmVkV2lkZ2V0cyA9IChhd2FpdCB0aGlzLnNldHRpbmdTZXJ2aWNlLmdldDxzdHJpbmdbXT4odGhpcy5waW5uZWRTZXR0aW5nS2V5KSkgfHwgW107XG5cbiAgICAvLyBVcGRhdGUgdGhlIGxpc3Qgb2YgcGlubmVkIHdpZGdldHMgYmFzZWQgb24gdGhlIHBpbm5lZCBzdGF0dXNcbiAgICBpZiAob3JpZ2luYWxXaWRnZXQucGlubmVkKSB7XG4gICAgICBpZiAoIXBpbm5lZFdpZGdldHMuaW5jbHVkZXMob3JpZ2luYWxXaWRnZXQubmFtZSkpIHtcbiAgICAgICAgcGlubmVkV2lkZ2V0cy5wdXNoKG9yaWdpbmFsV2lkZ2V0Lm5hbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwaW5uZWRXaWRnZXRzID0gcGlubmVkV2lkZ2V0cy5maWx0ZXIoKG5hbWUpID0+IG5hbWUgIT09IG9yaWdpbmFsV2lkZ2V0Lm5hbWUpO1xuICAgIH1cblxuICAgIC8vIFNhdmUgdGhlIHVwZGF0ZWQgbGlzdCBvZiBwaW5uZWQgd2lkZ2V0c1xuICAgIGF3YWl0IHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2NvcGUoQVhQUGxhdGZvcm1TY29wZS5Vc2VyKS5zZXQodGhpcy5waW5uZWRTZXR0aW5nS2V5LCBwaW5uZWRXaWRnZXRzKTtcblxuICAgIC8vIFRyaWdnZXIgYSByZS1yZW5kZXIgb2YgdGhlIHdpZGdldHNcbiAgICB0aGlzLnBpbm5lZFdpZGdldHMuc2V0KHBpbm5lZFdpZGdldHMpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgYSB3aWRnZXQgaXMgc2VsZWN0ZWRcbiAgcHJvdGVjdGVkIGlzV2lkZ2V0U2VsZWN0ZWQod2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCkuaW5jbHVkZXMod2lkZ2V0KTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIGEgZ2VuZXJpYyB3aWRnZXQgaXRlbSBpcyBzZWxlY3RlZFxuICBwcm90ZWN0ZWQgaXNXaWRnZXRJdGVtU2VsZWN0ZWQod2lkZ2V0SXRlbTogQVhQV2lkZ2V0SXRlbURhdGEpOiBib29sZWFuIHtcbiAgICBjb25zdCBvcmlnaW5hbFdpZGdldCA9IHdpZGdldEl0ZW0uZGF0YSBhcyBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnO1xuICAgIHJldHVybiB0aGlzLmlzV2lkZ2V0U2VsZWN0ZWQob3JpZ2luYWxXaWRnZXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbmZpcm1TZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSh7IHdpZGdldHM6IHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCkgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWgtWzk1dmhdXCJcbiAgW25nQ2xhc3NdPVwieyAnbGc6YXgtaC1bNzV2aF0nOiBtYXhWaXNpYmxlV2lkZ2V0cygpID4gMTAsICdsZzpheC1oLVs1MHZoXSc6IG1heFZpc2libGVXaWRnZXRzKCkgPD0gMTAgfVwiPlxuICA8ZGl2PlxuICAgIDxheC10YWJzIFtsb29rXT1cIid3aXRoLWxpbmUnXCIgKG9uQWN0aXZlVGFiQ2hhbmdlZCk9XCJoYW5kbGVUYWJDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgQGZvcih3IG9mIHRhYnMoKTt0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCJ3LnRpdGxlXCIgW2tleV09XCIkaW5kZXgudG9TdHJpbmcoKVwiIFthY3RpdmVdPVwiY3VycmVudFRhYkluZGV4KCkgPT09ICRpbmRleFwiPjwvYXgtdGFiLWl0ZW0+XG4gICAgICB9XG4gICAgPC9heC10YWJzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImF4LW92ZXJmbG93LWF1dG9cIiAjY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsXCIgI3N0aWNreT1cImF4cFN0aWNreVwiXG4gICAgICBbYXhwU3RpY2t5XT1cIidheC1iZy1saWdodGVzdCBheC1zaGFkb3cteGwnXCIgW3N0aWNreVBhcmVudF09XCJjb250ZW50XCIgW3N0aWNreU9mZnNldF09XCIxMFwiPlxuICAgICAgPGF4LXNlYXJjaC1ib3ggbG9vaz1cImZpbGxcIiBwbGFjZWhvbGRlcj1cImUuZy4gQnV0dG9uLCBUZXh0LCAuLi5cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIiBbZGVsYXlUaW1lXT1cIjMwMFwiXG4gICAgICAgIFtheEF1dG9Gb2N1c109XCJ0cnVlXCI+XG4gICAgICAgIDxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b24+XG4gICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtcC00IGF4LXB0LTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy0yIGF4LWdhcC0yXCI+XG4gICAgICAgIEBmb3Iod2lkZ2V0SXRlbSBvZiBwaW5uZWRXaWRnZXRJdGVtcygpO3RyYWNrIHdpZGdldEl0ZW0udGl0bGUpIHtcbiAgICAgICAgPGF4cC13aWRnZXQtaXRlbSBbd2lkZ2V0XT1cIndpZGdldEl0ZW1cIiBbaXNTZWxlY3RlZF09XCJpc1dpZGdldEl0ZW1TZWxlY3RlZCh3aWRnZXRJdGVtKVwiXG4gICAgICAgICAgKG9uV2lkZ2V0Q2xpY2spPVwiaGFuZGxlV2lkZ2V0Q2xpY2soJGV2ZW50KVwiIChvblBpbkNsaWNrKT1cImhhbmRsZVdpZGdldFBpbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPC9heHAtd2lkZ2V0LWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmKHBpbm5lZFdpZGdldEl0ZW1zKCkubGVuZ3RoKSB7XG4gICAgICA8aHIgY2xhc3M9XCJheC1teS00IGF4LWJvcmRlci1kYXNoZWRcIiAvPlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTJcIj5cbiAgICAgICAgQGZvcih3aWRnZXRJdGVtIG9mIHJlZ3VsYXJXaWRnZXRJdGVtcygpO3RyYWNrIHdpZGdldEl0ZW0udGl0bGUpIHtcbiAgICAgICAgPGF4cC13aWRnZXQtaXRlbSBbd2lkZ2V0XT1cIndpZGdldEl0ZW1cIiBbaXNTZWxlY3RlZF09XCJpc1dpZGdldEl0ZW1TZWxlY3RlZCh3aWRnZXRJdGVtKVwiXG4gICAgICAgICAgKG9uV2lkZ2V0Q2xpY2spPVwiaGFuZGxlV2lkZ2V0Q2xpY2soJGV2ZW50KVwiIChvblBpbkNsaWNrKT1cImhhbmRsZVdpZGdldFBpbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPC9heHAtd2lkZ2V0LWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuQGlmKHNlbGVjdGVkV2lkZ2V0cygpLmxlbmd0aCkge1xuPGF4LWZvb3Rlcj5cbiAgPGF4LXN1ZmZpeD5cbiAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJ7eyBzZWxlY3RlZFdpZGdldHMoKS5sZW5ndGggfX0gU2VsZWN0ZWRcIlxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ29uZmlybVNlbGVjdGlvbigpXCI+PC9heC1idXR0b24+XG4gIDwvYXgtc3VmZml4PlxuPC9heC1mb290ZXI+XG59Il19","import { AXP_WIDGET_TOKEN, AXPValueWidgetComponent, AXPWidgetRegistryService, AXPWidgetStatus, } from '@acorex/platform/layout/widget-core';\nimport { Directive, inject, Injector, input, NgZone, signal, ViewContainerRef, } from '@angular/core';\nimport { cloneDeep, get, isEqual, isNil, merge, set } from 'lodash-es';\nimport { debounceTime, distinctUntilChanged, filter, first } from 'rxjs';\nimport { AXPDesignerService } from './designer.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetDesignerRendererDirective {\n /**\n * @ignore\n */\n constructor() {\n this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: \"mergedOptions\" }] : []));\n this.injector = inject(Injector);\n this.widgetRegistry = inject(AXPWidgetRegistryService);\n this.zone = inject(NgZone);\n this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.isLoadingComponent = false;\n this.currentNodeId = null;\n this.service = inject(AXPDesignerService);\n this.viewContainerRef = inject(ViewContainerRef);\n this.parentNode = input(...(ngDevMode ? [undefined, { debugName: \"parentNode\" }] : []));\n this.parentElement = input(...(ngDevMode ? [undefined, { debugName: \"parentElement\" }] : []));\n this.parentComponent = input(...(ngDevMode ? [undefined, { debugName: \"parentComponent\" }] : []));\n this.index = input(...(ngDevMode ? [undefined, { debugName: \"index\" }] : []));\n this.locked = input(false, ...(ngDevMode ? [{ debugName: \"locked\" }] : []));\n this.mode = input.required(...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.node = input.required(...(ngDevMode ? [{ debugName: \"node\" }] : []));\n this.hostElement = () => this.instance?.host;\n this.getId = (w) => get(w, '__meta__.id');\n this.isCurrentWidget = (w) => this.getId(w) == this.getId(this.node());\n this.subs = [];\n this.subs[0] = this.service.onUpdate\n .pipe(\n //debounceTime(time),\n distinctUntilChanged((p, c) => this.getId(p.widget) == this.getId(c.widget) && isEqual(p.values?.options, c.values?.options)), filter((c) => this.isCurrentWidget(c.widget) && !this.locked()))\n .subscribe((c) => {\n this.applyOptions(c.values?.options);\n });\n //\n this.subs[1] = this.service.onSelected\n .pipe(distinctUntilChanged((p, c) => this.getId(p.widget) == this.getId(c.widget)))\n .subscribe((c) => {\n this.zone.runOutsideAngular(() => {\n if (this.isCurrentWidget(c.widget) && !this.locked()) {\n this.applySelectedStyle();\n }\n else {\n this.removeSelectedStyle();\n }\n });\n });\n //\n this.subs[2] = this.service.onFocused\n .pipe(distinctUntilChanged((p, c) => !isNil(p.widget) && !isNil(c.widget) && this.getId(p.widget) == this.getId(c.widget)))\n .subscribe((c) => {\n if (c.widget && this.isCurrentWidget(c.widget)) {\n this.addOverlay();\n }\n else {\n this.removeOverlay();\n }\n });\n //\n this.subs[3] = this.service.onRefresh\n .pipe(debounceTime(200), filter((c) => this.isCurrentWidget(c.widget)))\n .subscribe((c) => {\n this.instance?.setChildren(this.node().children ?? []);\n });\n //\n }\n // Detect input changes\n ngOnChanges(changes) {\n if (changes['mode'] || changes['node']) {\n const nodeId = this.getId(this.node()) || null;\n const modeChanged = changes['mode']?.currentValue !== changes['mode']?.previousValue;\n const nodeChanged = changes['node'] && nodeId !== this.currentNodeId;\n // Only load if there's an actual change and we're not already loading\n //if ((modeChanged || nodeChanged) && !this.isLoadingComponent) {\n this.loadComponent();\n //}\n }\n }\n ngOnDestroy() {\n this.subs.forEach((s) => {\n s.unsubscribe();\n });\n // Clear loading state and reset tracking variables\n this.isLoadingComponent = false;\n this.currentNodeId = null;\n this.isLoading.set(false);\n // Clear view container\n this.viewContainerRef.clear();\n }\n async loadComponent() {\n // Prevent duplicate loading\n if (this.isLoadingComponent) {\n return;\n }\n try {\n this.isLoadingComponent = true;\n const nodeId = this.getId(this.node()) || null;\n // Skip if already loaded for the same node and mode\n // if (this.currentNodeId === nodeId && this.instance) {\n // this.isLoadingComponent = false;\n // return;\n // }\n this.viewContainerRef.clear();\n this.isLoading.set(true);\n this.currentNodeId = nodeId;\n this.config = this.widgetRegistry.resolve(this.node().type);\n //\n const props = [...(this.config?.properties ?? []), ...(this.config?.components[this.mode()]?.properties ?? [])]\n ?.filter((c) => c.schema.defaultValue != null)\n .map((c) => ({ [c.name]: cloneDeep(c.schema.defaultValue) }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node().options) || {});\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n const tokenValue = {\n node: this.node(),\n options: this.mergedOptions(),\n config: this.config,\n defaultValue: cloneDeep(this.node().defaultValue),\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n var com = await this.config?.components[this.mode()]?.component();\n this.instance = this.viewContainerRef.createComponent(com, { injector: token }).instance;\n this.instance.locked = this.locked();\n this.instance.parent = this.parentNode();\n this.instance.parentElement = this.parentElement();\n this.instance.parentComponent = this.parentComponent();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n //\n this.instance.onStatusChanged\n .pipe(filter((c) => c == AXPWidgetStatus.Rendered), first())\n .subscribe(() => {\n const host = this.hostElement();\n set(host, '__meta__.renderer', this);\n set(host, '__meta__.instance', this.instance);\n host.classList.add('axp-widget-host');\n if (this.mode() == 'designer') {\n if (!this.locked()) {\n host.addEventListener('mouseover', (e) => {\n e.stopPropagation();\n this.addOverlay();\n this.focus();\n });\n host.addEventListener('mouseleave', (e) => {\n e.stopPropagation();\n this.removeOverlay();\n this.blur();\n });\n host.addEventListener('click', (e) => {\n e.stopPropagation();\n this.applySelectedStyle();\n this.service.select({ widget: this.node() });\n });\n this.service.register({\n config: this.config,\n id: get(this.node(), '__meta__.id'),\n instance: this.instance,\n widget: this.node(),\n });\n }\n }\n this.isLoading.set(false);\n });\n }\n catch (error) {\n console.error('Error loading component:', error);\n this.isLoading.set(false);\n }\n finally {\n this.isLoadingComponent = false;\n }\n }\n select() {\n if (this.locked())\n return;\n //\n this.service.select({ widget: this.node() });\n this.applySelectedStyle();\n }\n focus() {\n if (this.locked())\n return;\n //\n this.service.focus({ widget: this.node() });\n }\n blur() {\n if (this.locked())\n return;\n //\n this.service.focus({ widget: null });\n }\n applySelectedStyle() {\n if (this.locked())\n return;\n //\n this.hostElement()?.classList.add('axp-state-selected');\n this.hostElement()?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n removeSelectedStyle() {\n this.hostElement()?.classList.remove('axp-state-selected');\n }\n addOverlay() {\n if (this.locked())\n return;\n //\n this.zone.runOutsideAngular(() => {\n if (this.hostElement()) {\n this.hostElement()?.classList.add('axp-state-hover');\n //\n if (this.hostElement().querySelector('.axp-widget-overlay') || this.config?.type == 'container') {\n return;\n }\n this.overlay = document.createElement('div');\n this.overlay.classList.add('axp-widget-overlay');\n this.overlay.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n this.select();\n });\n this.overlay.addEventListener('mouseleave', (e) => {\n e.preventDefault();\n e.stopPropagation();\n this.blur();\n });\n this.hostElement().appendChild(this.overlay);\n }\n });\n }\n removeOverlay() {\n this.zone.runOutsideAngular(() => {\n if (this.hostElement()) {\n this.hostElement()?.classList.remove('axp-state-hover');\n //\n this.overlay?.remove();\n }\n });\n }\n preprocessAndInitialOptions(obj, pathPrefix = '') {\n if (!obj)\n return;\n //\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n });\n }\n applyOptions(values) {\n if (this.instance instanceof AXPValueWidgetComponent && this.node().defaultValue != null) {\n this.instance.setValue(cloneDeep(this.node().defaultValue));\n }\n this.mergedOptions.update((currentOptions) => {\n return merge(currentOptions, values);\n });\n this.instance?.setOptions(this.mergedOptions());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWidgetDesignerRendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.10\", type: AXPWidgetDesignerRendererDirective, isStandalone: true, selector: \"[axp-widget-designer-renderer]\", inputs: { parentNode: { classPropertyName: \"parentNode\", publicName: \"parentNode\", isSignal: true, isRequired: false, transformFunction: null }, parentElement: { classPropertyName: \"parentElement\", publicName: \"parentElement\", isSignal: true, isRequired: false, transformFunction: null }, parentComponent: { classPropertyName: \"parentComponent\", publicName: \"parentComponent\", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: \"index\", publicName: \"index\", isSignal: true, isRequired: false, transformFunction: null }, locked: { classPropertyName: \"locked\", publicName: \"locked\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: \"node\", publicName: \"node\", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWidgetDesignerRendererDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-widget-designer-renderer]',\n standalone: true,\n }]\n }], ctorParameters: () => [], propDecorators: { parentNode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"parentNode\", required: false }] }], parentElement: [{ type: i0.Input, args: [{ isSignal: true, alias: \"parentElement\", required: false }] }], parentComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: \"parentComponent\", required: false }] }], index: [{ type: i0.Input, args: [{ isSignal: true, alias: \"index\", required: false }] }], locked: [{ type: i0.Input, args: [{ isSignal: true, alias: \"locked\", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"mode\", required: true }] }], node: [{ type: i0.Input, args: [{ isSignal: true, alias: \"node\", required: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWRlc2lnbmVyLXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL3dpZGdldC1kZXNpZ25lci1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUdoQix1QkFBdUIsRUFJdkIsd0JBQXdCLEVBRXhCLGVBQWUsR0FDaEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBRUwsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBRU4sZ0JBQWdCLEdBRWpCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU14RCxNQUFNLE9BQU8sa0NBQWtDO0lBaUM3Qzs7T0FFRztJQUNIO1FBbkNVLGtCQUFhLEdBQXdCLE1BQU0sQ0FBTSxFQUFFLHlEQUFDLENBQUM7UUFFdkQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2xELFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLHFEQUFDLENBQUM7UUFJM0IsdUJBQWtCLEdBQUcs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QUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUMzQyxPQUFPLEtBQUssQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDOytHQW5UVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQzs7NEZBQWxDLGtDQUFrQztrQkFKOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWFBfV0lER0VUX1RPS0VOLFxuICBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50LFxuICBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50LFxuICBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCxcbiAgQVhQV2lkZ2V0Q29uZmlnLFxuICBBWFBXaWRnZXROb2RlLFxuICBBWFBXaWRnZXROb2RlVG9rZW4sXG4gIEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSxcbiAgQVhQV2lkZ2V0UmVuZGVyTW9kZSxcbiAgQVhQV2lkZ2V0U3RhdHVzLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIHNpZ25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBnZXQsIGlzRXF1YWwsIGlzTmlsLCBtZXJnZSwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmlyc3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi9kZXNpZ25lci5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4cC13aWRnZXQtZGVzaWduZXItcmVuZGVyZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIG1lcmdlZE9wdGlvbnM6IFdyaXRhYmxlU2lnbmFsPGFueT4gPSBzaWduYWw8YW55Pih7fSk7XG5cbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByb3RlY3RlZCB3aWRnZXRSZWdpc3RyeSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIHByb3RlY3RlZCBpc0xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJpdmF0ZSBpbnN0YW5jZSE6IEFYUEJhc2VXaWRnZXRDb21wb25lbnQ7XG4gIHByaXZhdGUgY29uZmlnPzogQVhQV2lkZ2V0Q29uZmlnIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGlzTG9hZGluZ0NvbXBvbmVudCA9IGZhbHNlO1xuICBwcml2YXRlIGN1cnJlbnROb2RlSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgcGFyZW50Tm9kZSA9IGlucHV0PEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQgfCBudWxsPigpO1xuICBwYXJlbnRFbGVtZW50ID0gaW5wdXQ8SFRNTEVsZW1lbnQgfCBudWxsPigpO1xuICBwYXJlbnRDb21wb25lbnQgPSBpbnB1dDxDb21wb25lbnRSZWY8YW55PiB8IG51bGw+KCk7XG5cbiAgaW5kZXggPSBpbnB1dDxudW1iZXIgfCBudWxsPigpO1xuICBsb2NrZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgbW9kZSA9IGlucHV0LnJlcXVpcmVkPEFYUFdpZGdldFJlbmRlck1vZGU+KCk7XG4gIG5vZGUgPSBpbnB1dC5yZXF1aXJlZDxBWFBXaWRnZXROb2RlPigpO1xuXG4gIHByaXZhdGUgaG9zdEVsZW1lbnQgPSAoKSA9PiB0aGlzLmluc3RhbmNlPy5ob3N0IGFzIEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIGdldElkID0gKHc6IEFYUFdpZGdldE5vZGUpID0+IGdldCh3LCAnX19tZXRhX18uaWQnKTtcbiAgcHJpdmF0ZSBpc0N1cnJlbnRXaWRnZXQgPSAodzogQVhQV2lkZ2V0Tm9kZSkgPT4gdGhpcy5nZXRJZCh3KSA9PSB0aGlzLmdldElkKHRoaXMubm9kZSgpKTtcblxuICBwcml2YXRlIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3Vic1swXSA9IHRoaXMuc2VydmljZS5vblVwZGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vZGVib3VuY2VUaW1lKHRpbWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChcbiAgICAgICAgICAocCwgYykgPT4gdGhpcy5nZXRJZChwLndpZGdldCkgPT0gdGhpcy5nZXRJZChjLndpZGdldCkgJiYgaXNFcXVhbChwLnZhbHVlcz8ub3B0aW9ucywgYy52YWx1ZXM/Lm9wdGlvbnMpLFxuICAgICAgICApLFxuICAgICAgICBmaWx0ZXIoKGMpID0+IHRoaXMuaXNDdXJyZW50V2lkZ2V0KGMud2lkZ2V0KSAmJiAhdGhpcy5sb2NrZWQoKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKGMudmFsdWVzPy5vcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIC8vXG4gICAgdGhpcy5zdWJzWzFdID0gdGhpcy5zZXJ2aWNlLm9uU2VsZWN0ZWRcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwLCBjKSA9PiB0aGlzLmdldElkKHAud2lkZ2V0KSA9PSB0aGlzLmdldElkKGMud2lkZ2V0KSkpXG4gICAgICAuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50V2lkZ2V0KGMud2lkZ2V0KSAmJiAhdGhpcy5sb2NrZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5hcHBseVNlbGVjdGVkU3R5bGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFN0eWxlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIC8vXG4gICAgdGhpcy5zdWJzWzJdID0gdGhpcy5zZXJ2aWNlLm9uRm9jdXNlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAgIChwLCBjKSA9PiAhaXNOaWwocC53aWRnZXQpICYmICFpc05pbChjLndpZGdldCkgJiYgdGhpcy5nZXRJZChwLndpZGdldCkgPT0gdGhpcy5nZXRJZChjLndpZGdldCksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIGlmIChjLndpZGdldCAmJiB0aGlzLmlzQ3VycmVudFdpZGdldChjLndpZGdldCkpIHtcbiAgICAgICAgICB0aGlzLmFkZE92ZXJsYXkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLnN1YnNbM10gPSB0aGlzLnNlcnZpY2Uub25SZWZyZXNoXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgIGZpbHRlcigoYykgPT4gdGhpcy5pc0N1cnJlbnRXaWRnZXQoYy53aWRnZXQpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZT8uc2V0Q2hpbGRyZW4odGhpcy5ub2RlKCkuY2hpbGRyZW4gPz8gW10pO1xuICAgICAgfSk7XG4gICAgLy9cbiAgfVxuXG4gIC8vIERldGVjdCBpbnB1dCBjaGFuZ2VzXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddIHx8IGNoYW5nZXNbJ25vZGUnXSkge1xuICAgICAgY29uc3Qgbm9kZUlkID0gdGhpcy5nZXRJZCh0aGlzLm5vZGUoKSkgfHwgbnVsbDtcbiAgICAgIGNvbnN0IG1vZGVDaGFuZ2VkID0gY2hhbmdlc1snbW9kZSddPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ21vZGUnXT8ucHJldmlvdXNWYWx1ZTtcbiAgICAgIGNvbnN0IG5vZGVDaGFuZ2VkID0gY2hhbmdlc1snbm9kZSddICYmIG5vZGVJZCAhPT0gdGhpcy5jdXJyZW50Tm9kZUlkO1xuXG4gICAgICAvLyBPbmx5IGxvYWQgaWYgdGhlcmUncyBhbiBhY3R1YWwgY2hhbmdlIGFuZCB3ZSdyZSBub3QgYWxyZWFkeSBsb2FkaW5nXG4gICAgICAvL2lmICgobW9kZUNoYW5nZWQgfHwgbm9kZUNoYW5nZWQpICYmICF0aGlzLmlzTG9hZGluZ0NvbXBvbmVudCkge1xuICAgICAgdGhpcy5sb2FkQ29tcG9uZW50KCk7XG4gICAgICAvL31cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgcy51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuXG4gICAgLy8gQ2xlYXIgbG9hZGluZyBzdGF0ZSBhbmQgcmVzZXQgdHJhY2tpbmcgdmFyaWFibGVzXG4gICAgdGhpcy5pc0xvYWRpbmdDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmN1cnJlbnROb2RlSWQgPSBudWxsO1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG5cbiAgICAvLyBDbGVhciB2aWV3IGNvbnRhaW5lclxuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkQ29tcG9uZW50KCkge1xuICAgIC8vIFByZXZlbnQgZHVwbGljYXRlIGxvYWRpbmdcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdDb21wb25lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0xvYWRpbmdDb21wb25lbnQgPSB0cnVlO1xuICAgICAgY29uc3Qgbm9kZUlkID0gdGhpcy5nZXRJZCh0aGlzLm5vZGUoKSkgfHwgbnVsbDtcblxuICAgICAgLy8gU2tpcCBpZiBhbHJlYWR5IGxvYWRlZCBmb3IgdGhlIHNhbWUgbm9kZSBhbmQgbW9kZVxuICAgICAgLy8gaWYgKHRoaXMuY3VycmVudE5vZGVJZCA9PT0gbm9kZUlkICYmIHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIC8vICAgdGhpcy5pc0xvYWRpbmdDb21wb25lbnQgPSBmYWxzZTtcbiAgICAgIC8vICAgcmV0dXJuO1xuICAgICAgLy8gfVxuXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgIHRoaXMuY3VycmVudE5vZGVJZCA9IG5vZGVJZDtcblxuICAgICAgdGhpcy5jb25maWcgPSB0aGlzLndpZGdldFJlZ2lzdHJ5LnJlc29sdmUodGhpcy5ub2RlKCkudHlwZSk7XG4gICAgICAvL1xuICAgICAgY29uc3QgcHJvcHMgPSBbLi4uKHRoaXMuY29uZmlnPy5wcm9wZXJ0aWVzID8/IFtdKSwgLi4uKHRoaXMuY29uZmlnPy5jb21wb25lbnRzW3RoaXMubW9kZSgpXT8ucHJvcGVydGllcyA/PyBbXSldXG4gICAgICAgID8uZmlsdGVyKChjKSA9PiBjLnNjaGVtYS5kZWZhdWx0VmFsdWUgIT0gbnVsbClcbiAgICAgICAgLm1hcCgoYykgPT4gKHsgW2MubmFtZV06IGNsb25lRGVlcChjLnNjaGVtYS5kZWZhdWx0VmFsdWUpIH0pKVxuICAgICAgICAucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICByZXR1cm4geyAuLi5hY2MsIC4uLmN1cnIgfTtcbiAgICAgICAgfSwge30pO1xuICAgICAgLy9cbiAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXQobWVyZ2UocHJvcHMsIHRoaXMubm9kZSgpLm9wdGlvbnMpIHx8IHt9KTtcblxuICAgICAgdGhpcy5wcmVwcm9jZXNzQW5kSW5pdGlhbE9wdGlvbnMoY2xvbmVEZWVwKHRoaXMubm9kZSgpLm9wdGlvbnMpKTtcblxuICAgICAgY29uc3QgdG9rZW5WYWx1ZSA9IHtcbiAgICAgICAgbm9kZTogdGhpcy5ub2RlKCksXG4gICAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VkT3B0aW9ucygpLFxuICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGNsb25lRGVlcCh0aGlzLm5vZGUoKS5kZWZhdWx0VmFsdWUpLFxuICAgICAgfSBhcyBBWFBXaWRnZXROb2RlVG9rZW47XG5cbiAgICAgIGNvbnN0IHRva2VuID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBWFBfV0lER0VUX1RPS0VOLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHRva2VuVmFsdWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgY29tID0gYXdhaXQgdGhpcy5jb25maWc/LmNvbXBvbmVudHNbdGhpcy5tb2RlKCldPy5jb21wb25lbnQoKTtcbiAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PEFYUEJhc2VXaWRnZXRDb21wb25lbnQ+KGNvbSwgeyBpbmplY3RvcjogdG9rZW4gfSkuaW5zdGFuY2U7XG4gICAgICB0aGlzLmluc3RhbmNlLmxvY2tlZCA9IHRoaXMubG9ja2VkKCk7XG4gICAgICB0aGlzLmluc3RhbmNlLnBhcmVudCA9IHRoaXMucGFyZW50Tm9kZSgpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5wYXJlbnRFbGVtZW50ID0gdGhpcy5wYXJlbnRFbGVtZW50KCk7XG4gICAgICB0aGlzLmluc3RhbmNlLnBhcmVudENvbXBvbmVudCA9IHRoaXMucGFyZW50Q29tcG9uZW50KCk7XG4gICAgICB0aGlzLmluc3RhbmNlLmluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgICAvL1xuICAgICAgdGhpcy5pbnN0YW5jZS5vblN0YXR1c0NoYW5nZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChjKSA9PiBjID09IEFYUFdpZGdldFN0YXR1cy5SZW5kZXJlZCksXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5ob3N0RWxlbWVudCgpO1xuICAgICAgICAgIHNldChob3N0LCAnX19tZXRhX18ucmVuZGVyZXInLCB0aGlzKTtcbiAgICAgICAgICBzZXQoaG9zdCwgJ19fbWV0YV9fLmluc3RhbmNlJywgdGhpcy5pbnN0YW5jZSk7XG4gICAgICAgICAgaG9zdC5jbGFzc0xpc3QuYWRkKCdheHAtd2lkZ2V0LWhvc3QnKTtcbiAgICAgICAgICBpZiAodGhpcy5tb2RlKCkgPT0gJ2Rlc2lnbmVyJykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmxvY2tlZCgpKSB7XG4gICAgICAgICAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgKGUpID0+IHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkT3ZlcmxheSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJsdXIoKTtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgaG9zdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGx5U2VsZWN0ZWRTdHlsZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZWxlY3QoeyB3aWRnZXQ6IHRoaXMubm9kZSgpIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnISxcbiAgICAgICAgICAgICAgICBpZDogZ2V0KHRoaXMubm9kZSgpLCAnX19tZXRhX18uaWQnKSBhcyBhbnkgYXMgbnVtYmVyLFxuICAgICAgICAgICAgICAgIGluc3RhbmNlOiB0aGlzLmluc3RhbmNlLFxuICAgICAgICAgICAgICAgIHdpZGdldDogdGhpcy5ub2RlKCksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBjb21wb25lbnQ6JywgZXJyb3IpO1xuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmdDb21wb25lbnQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG92ZXJsYXk6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwdWJsaWMgc2VsZWN0KCkge1xuICAgIGlmICh0aGlzLmxvY2tlZCgpKSByZXR1cm47XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0KHsgd2lkZ2V0OiB0aGlzLm5vZGUoKSB9KTtcbiAgICB0aGlzLmFwcGx5U2VsZWN0ZWRTdHlsZSgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCkge1xuICAgIGlmICh0aGlzLmxvY2tlZCgpKSByZXR1cm47XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2UuZm9jdXMoeyB3aWRnZXQ6IHRoaXMubm9kZSgpIH0pO1xuICB9XG5cbiAgcHVibGljIGJsdXIoKSB7XG4gICAgaWYgKHRoaXMubG9ja2VkKCkpIHJldHVybjtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5mb2N1cyh7IHdpZGdldDogbnVsbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWxlY3RlZFN0eWxlKCkge1xuICAgIGlmICh0aGlzLmxvY2tlZCgpKSByZXR1cm47XG4gICAgLy9cbiAgICB0aGlzLmhvc3RFbGVtZW50KCk/LmNsYXNzTGlzdC5hZGQoJ2F4cC1zdGF0ZS1zZWxlY3RlZCcpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQoKT8uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNlbGVjdGVkU3R5bGUoKSB7XG4gICAgdGhpcy5ob3N0RWxlbWVudCgpPy5jbGFzc0xpc3QucmVtb3ZlKCdheHAtc3RhdGUtc2VsZWN0ZWQnKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkT3ZlcmxheSgpIHtcbiAgICBpZiAodGhpcy5sb2NrZWQoKSkgcmV0dXJuO1xuICAgIC8vXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhvc3RFbGVtZW50KCkpIHtcbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudCgpPy5jbGFzc0xpc3QuYWRkKCdheHAtc3RhdGUtaG92ZXInKTtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKHRoaXMuaG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXhwLXdpZGdldC1vdmVybGF5JykgfHwgdGhpcy5jb25maWc/LnR5cGUgPT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMub3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdheHAtd2lkZ2V0LW92ZXJsYXknKTtcbiAgICAgICAgdGhpcy5vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoZSkgPT4ge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudCgpLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU92ZXJsYXkoKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhvc3RFbGVtZW50KCkpIHtcbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudCgpPy5jbGFzc0xpc3QucmVtb3ZlKCdheHAtc3RhdGUtaG92ZXInKTtcbiAgICAgICAgLy9cbiAgICAgICAgdGhpcy5vdmVybGF5Py5yZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcHJvY2Vzc0FuZEluaXRpYWxPcHRpb25zKG9iajogYW55LCBwYXRoUHJlZml4OiBzdHJpbmcgPSAnJyk6IHZvaWQge1xuICAgIGlmICghb2JqKSByZXR1cm47XG4gICAgLy9cbiAgICBPYmplY3QuZW50cmllcyhvYmopLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXRoUHJlZml4ID8gYCR7cGF0aFByZWZpeH0uJHtrZXl9YCA6IGtleTtcbiAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy51cGRhdGUoKGN1cnJlbnRPcHRpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBzZXQoY3VycmVudE9wdGlvbnMsIGN1cnJlbnRQYXRoLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlPcHRpb25zKHZhbHVlczogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UgaW5zdGFuY2VvZiBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCAmJiB0aGlzLm5vZGUoKS5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZShjbG9uZURlZXAodGhpcy5ub2RlKCkuZGVmYXVsdFZhbHVlKSk7XG4gICAgfVxuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy51cGRhdGUoKGN1cnJlbnRPcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gbWVyZ2UoY3VycmVudE9wdGlvbnMsIHZhbHVlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5pbnN0YW5jZT8uc2V0T3B0aW9ucyh0aGlzLm1lcmdlZE9wdGlvbnMoKSk7XG4gIH1cbn1cbiJdfQ==","import { AXContextMenuComponent, AXMenuModule, } from '@acorex/components/menu';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, HostBinding, inject, ViewChild, ViewEncapsulation, } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport { AXPWidgetDesignerRendererDirective } from '../../shared/widget-designer-renderer.directive';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/widget-core\";\nimport * as i2 from \"@acorex/components/menu\";\nexport class AXPDesignerBoardComponent {\n // Unified method to extract media queries and create a custom class\n applyResponsiveStyles(breakpoint) {\n const minWidth = get(this.breakpointMap, breakpoint);\n const mediaRules = [];\n // Loop through all the stylesheets\n for (const sheet of Array.from(document.styleSheets)) {\n try {\n // Loop through CSS rules\n for (const rule of Array.from(sheet.cssRules)) {\n // Check if the rule is a CSSMediaRule\n if (rule instanceof CSSMediaRule && rule.media.mediaText.includes(`min-width: ${minWidth}px`)) {\n // Loop through the media rule's CSS rules\n for (const subRule of Array.from(rule.cssRules)) {\n mediaRules.push(subRule.cssText);\n }\n }\n }\n }\n catch (e) {\n console.error('Error accessing stylesheet:', e);\n }\n }\n // Create a dynamic class for the media queries\n this.createCustomClass(`axp-preview-${breakpoint}`, mediaRules, breakpoint);\n }\n createCustomClass(className, styles, breakpoint) {\n const styleSheet = document.createElement('style');\n styleSheet.setAttribute('data-screen', breakpoint);\n // Construct a pure CSS string, dynamically replacing the breakpoint prefix\n let styleString = '';\n styles.forEach((style) => {\n // Replace any prefixed classes like 'lg:' or 'md:' dynamically\n const dynamicPrefix = new RegExp(`\\\\.${breakpoint}\\\\\\\\:`, 'g');\n styleString += `.${className} ${style.replace(dynamicPrefix, '.')}`; // Replace the breakpoint prefix\n });\n styleSheet.innerText = styleString;\n this.removeCustomClass();\n this.elementRef.nativeElement.appendChild(styleSheet);\n }\n removeCustomClass() {\n this.elementRef.nativeElement.querySelectorAll('style').forEach((s) => s.remove());\n }\n /**\n * @ignore\n */\n constructor() {\n this.context = {};\n this.elementRef = inject((ElementRef));\n this.breakpointMap = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n xxl: 1536,\n };\n this.service = inject(AXPDesignerService);\n this.width = computed(() => {\n switch (this.service.size()) {\n case 'sm':\n return '340px';\n case 'md':\n case 'lg':\n return '768px';\n default:\n return '100%';\n }\n }, ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n this.ef = effect(() => {\n this.removeCustomClass();\n if (this.service.size() != 'xl') {\n this.applyResponsiveStyles(this.service.size());\n }\n }, ...(ngDevMode ? [{ debugName: \"ef\" }] : []));\n this.service.onRefresh.subscribe(() => {\n this.contextMenu?.refresh();\n });\n }\n handleContextMenuOpening(e) {\n const renderer = get(e.targetElement, '__meta__.renderer');\n const instance = get(e.targetElement, '__meta__.instance');\n if (!renderer || !instance) {\n e.canceled = true;\n return;\n }\n renderer.select();\n // Fetch context menu items for the current instance\n try {\n const items = this.service.getContextMenuItems(instance, true);\n if (items.length) {\n e.items.push(...items);\n }\n else {\n e.canceled = true;\n }\n }\n catch (error) {\n console.error('Failed to get context menu items:', error);\n e.canceled = true;\n }\n // Recursively bind instance data to all items\n this.bindInstanceToItems(e.items, instance);\n // Traverse through parents and add their menu items directly to the root level\n this.addParentsToRootMenu(instance, e.items);\n }\n addParentsToRootMenu(instance, items) {\n let parent = instance?.parent;\n const parentItems = [];\n // Traverse up the parent chain, adding each parent to the \"Parents\" menu\n while (parent) {\n try {\n const widget = parent;\n const parentContextItems = this.service.getContextMenuItems(widget);\n // Create a new menu item for this parent\n const parentMenuItem = {\n text: parent.config.title,\n icon: parent.config.icon,\n items: [\n {\n text: 'Select',\n name: 'select',\n break: true,\n icon: 'fa-solid fa-arrow-pointer',\n },\n ...parentContextItems,\n ],\n };\n // Recursively bind instance data to all items\n this.bindInstanceToItems(parentMenuItem.items ?? [], widget);\n // Add the parent menu item to the parentItems array\n parentItems.push(parentMenuItem);\n }\n catch (error) {\n console.error('Failed to get parent context menu items:', error);\n }\n // Move to the next parent in the chain\n parent = parent?.parent;\n }\n // If there are any parent items, add them under a \"Parents\" group\n if (parentItems.length > 0) {\n items[items.length - 1].break = true;\n items.push({\n text: 'Parents',\n icon: 'fa-solid fa-turn-up', // Icon for the \"Parents\" group\n items: parentItems, // Add all parent items here\n });\n }\n }\n async handleContextMenuItemClick(e) {\n if (e.item.name) {\n const instance = get(e.item.data, \"instance\");\n await this.service.executeCommand({ instance, name: e.item.name });\n }\n }\n bindInstanceToItems(items, instance) {\n items.forEach(item => {\n // Ensure each item gets the correct instance\n item.data = { ...(item.data ?? {}), instance };\n // If the item has sub-items, bind instance to them recursively\n if (item.items) {\n this.bindInstanceToItems(item.items, instance);\n }\n });\n }\n get __style() {\n const cls = {};\n cls[`width`] = this.width();\n cls[`max-width`] = '1280px';\n return cls;\n }\n get __class() {\n const cls = {};\n cls[`axp-designer-board`] = true;\n cls[`axp-state-design`] = true;\n cls['ax-h-full'] = true;\n cls['ax-overflow-auto'] = true;\n cls[`axp-preview-${this.service.size()}`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerBoardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.10\", type: AXPDesignerBoardComponent, isStandalone: true, selector: \"axp-designer-board\", host: { properties: { \"style\": \"this.__style\", \"class\": \"this.__class\" } }, viewQueries: [{ propertyName: \"contextMenu\", first: true, predicate: [\"contextMenu\"], descendants: true }], ngImport: i0, template: \"<axp-widgets-container [context]=\\\"context\\\">\\n <ng-container axp-widget-designer-renderer [node]=\\\"service.currentPage()\\\" [mode]=\\\"'designer'\\\"></ng-container>\\n</axp-widgets-container>\\n\\n<ax-context-menu class=\\\"ax-dark\\\" #contextMenu [target]=\\\"'.axp-widget-host'\\\" [orientation]=\\\"'vertical'\\\"\\n [closeOn]=\\\"'leave'\\\" (onOpening)=\\\"handleContextMenuOpening($event)\\\" (onItemClick)=\\\"handleContextMenuItemClick($event)\\\">\\n</ax-context-menu>\", dependencies: [{ kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: i1.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: AXPWidgetDesignerRendererDirective, selector: \"[axp-widget-designer-renderer]\", inputs: [\"parentNode\", \"parentElement\", \"parentComponent\", \"index\", \"locked\", \"mode\", \"node\"] }, { kind: \"ngmodule\", type: AXMenuModule }, { kind: \"component\", type: i2.AXContextMenuComponent, selector: \"ax-context-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"items\", \"target\"], outputs: [\"onItemClick\", \"onOpening\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerBoardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-board', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPWidgetCoreModule, AXPWidgetDesignerRendererDirective, AXMenuModule], template: \"<axp-widgets-container [context]=\\\"context\\\">\\n <ng-container axp-widget-designer-renderer [node]=\\\"service.currentPage()\\\" [mode]=\\\"'designer'\\\"></ng-container>\\n</axp-widgets-container>\\n\\n<ax-context-menu class=\\\"ax-dark\\\" #contextMenu [target]=\\\"'.axp-widget-host'\\\" [orientation]=\\\"'vertical'\\\"\\n [closeOn]=\\\"'leave'\\\" (onOpening)=\\\"handleContextMenuOpening($event)\\\" (onItemClick)=\\\"handleContextMenuItemClick($event)\\\">\\n</ax-context-menu>\" }]\n }], ctorParameters: () => [], propDecorators: { contextMenu: [{\n type: ViewChild,\n args: ['contextMenu']\n }], __style: [{\n type: HostBinding,\n args: ['style']\n }], __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2JvYXJkL2JvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9ib2FyZC9ib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEVBSXRCLFlBQVksR0FDYixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBMkIsTUFBTSxxQ0FBcUMsQ0FBQztBQUVuRyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBTyxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7OztBQVdyRyxNQUFNLE9BQU8seUJBQXlCO0lBZXBDLG9FQUFvRTtJQUNwRSxxQkFBcUIsQ0FBQyxVQUFrQjtRQUN0QyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQVcsQ0FBQztRQUMvRCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFdEIsbUNBQW1DO1FBQ25DLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUM7Z0JBQ0gseUJBQXlCO2dCQUN6QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQzlDLHNDQUFzQztvQkFDdEMsSUFBSSxJQUFJLFlBQVksWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDOUYsMENBQTBDO3dCQUMxQyxLQUFLLE1BQU0sT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7NEJBQ2hELFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNuQyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7UUFFRCwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsVUFBVSxFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxTQUFpQixFQUFFLE1BQWdCLEVBQUUsVUFBa0I7UUFDL0UsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxVQUFVLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVuRCwyRUFBMkU7UUFDM0UsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QiwrREFBK0Q7WUFDL0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxVQUFVLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMvRCxXQUFXLElBQUksSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGdDQUFnQztRQUN2RyxDQUFDLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQXVCRDs7T0FFRztJQUNIO1FBbkZVLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFDcEIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQTBCLENBQUEsQ0FBK0IsQ0FBQztRQUU5RSxrQkFBYSxHQUFHO1lBQ3RCLEVBQUUsRUFBRSxHQUFHO1lBQ1AsRUFBRSxFQUFFLEdBQUc7WUFDUCxFQUFFLEVBQUUsSUFBSTtZQUNSLEVBQUUsRUFBRSxJQUFJO1lBQ1IsR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDO1FBa0RRLFlBQU8sR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVyQyxVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxJQUFJO29CQUNQLE9BQU8sT0FBTyxDQUFDO2dCQUNqQixLQUFLLElBQUksQ0FBQztnQkFDVixLQUFLLElBQUk7b0JBQ1AsT0FBTyxPQUFPLENBQUM7Z0JBQ2pCO29CQUNFLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDLGlEQUFDLENBQUM7UUFFSyxPQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUMsOENBQUMsQ0FBQztRQU1ELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHUyx3QkFBd0IsQ0FBQyxDQUE0QjtRQUM3RCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBa0QsQ0FBQztRQUM1RyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBMEMsQ0FBQztRQUVwRyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDbEIsT0FBTztRQUNULENBQUM7UUFFRCxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFbEIsb0RBQW9EO1FBQ3BELElBQUksQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO1FBRUQsOENBQThDO1FBQzlDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTVDLCtFQUErRTtRQUMvRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBR08sb0JBQW9CLENBQUMsUUFBb0MsRUFBRSxLQUFtQjtRQUNwRixJQUFJLE1BQU0sR0FBSSxRQUErQyxFQUFFLE1BQU0sQ0FBQztRQUN0RSxNQUFNLFdBQVcsR0FBaUIsRUFBRSxDQUFDO1FBRXJDLHlFQUF5RTtRQUN6RSxPQUFPLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLE1BQStDLENBQUM7Z0JBQy9ELE1BQU0sa0JBQWtCLEdBQWlCLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRWxGLHlDQUF5QztnQkFDekMsTUFBTSxjQUFjLEdBQWU7b0JBQ2pDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUs7b0JBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUk7b0JBQ3hCLEtBQUssRUFBRTt3QkFDTDs0QkFDRSxJQUFJLEVBQUUsUUFBUTs0QkFDZCxJQUFJLEVBQUUsUUFBUTs0QkFDZCxLQUFLLEVBQUUsSUFBSTs0QkFDWCxJQUFJLEVBQUUsMkJBQTJCO3lCQUNsQzt3QkFDRCxHQUFHLGtCQUFrQjtxQkFDdEI7aUJBQ0YsQ0FBQztnQkFFRiw4Q0FBOEM7Z0JBQzlDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFFN0Qsb0RBQW9EO2dCQUNwRCxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMENBQTBDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkUsQ0FBQztZQUVELHVDQUF1QztZQUN2QyxNQUFNLEdBQUksTUFBNkMsRUFBRSxNQUFNLENBQUM7UUFDbEUsQ0FBQztRQUVELGtFQUFrRTtRQUNsRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNyQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNULElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxxQkFBcUIsRUFBRSwrQkFBK0I7Z0JBQzVELEtBQUssRUFBRSxXQUFXLEVBQUUsNEJBQTRCO2FBQ2pELENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRVMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQStCO1FBQ3hFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQixNQUFNLFFBQVEsR0FBK0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBMEMsQ0FBQztZQUNuSCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFtQixFQUFFLFFBQW9DO1FBQ25GLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkIsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUUvQywrREFBK0Q7WUFDL0QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQ1ksT0FBTztRQUNqQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQ1ksT0FBTztRQUNqQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMvQixHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMvQixHQUFHLENBQUMsZUFBZSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDakQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOytHQW5OVSx5QkFBeUI7bUdBQXpCLHlCQUF5QixzUUNqQ3RDLGtjQU1rQiwyQ0R5Qk4sbUJBQW1CLGdNQUFFLGtDQUFrQyx5S0FBRSxZQUFZOzs0RkFFcEUseUJBQXlCO2tCQVByQyxTQUFTOytCQUNFLG9CQUFvQixpQkFFZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsbUJBQW1CLEVBQUUsa0NBQWtDLEVBQUUsWUFBWSxDQUFDOztzQkFHL0UsU0FBUzt1QkFBQyxhQUFhOztzQkFpTXZCLFdBQVc7dUJBQUMsT0FBTzs7c0JBUW5CLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29udGV4dE1lbnVDb21wb25lbnQsXG4gIEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQsXG4gIEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQsXG4gIEFYTWVudUl0ZW0sXG4gIEFYTWVudU1vZHVsZSxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29yZU1vZHVsZSwgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0LCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC93aWRnZXQtZGVzaWduZXItcmVuZGVyZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFYUERlc2lnbmVyV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnR5cGVzJztcbmltcG9ydCB7IEFYUF9ERVNJR05FUl9TRUxFQ1RfV0lER0VUX01FTlUgfSBmcm9tICcuLi8uLi9zaGFyZWQvZ2VuZXJpYy1jb21tYW5kcy50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1ib2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhQV2lkZ2V0Q29yZU1vZHVsZSwgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSwgQVhNZW51TW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckJvYXJkQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnY29udGV4dE1lbnUnKVxuICBwcm90ZWN0ZWQgY29udGV4dE1lbnU6IEFYQ29udGV4dE1lbnVDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIGNvbnRleHQ6IGFueSA9IHt9O1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pIGFzIEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgYnJlYWtwb2ludE1hcCA9IHtcbiAgICBzbTogNjQwLFxuICAgIG1kOiA3NjgsXG4gICAgbGc6IDEwMjQsXG4gICAgeGw6IDEyODAsXG4gICAgeHhsOiAxNTM2LFxuICB9O1xuXG4gIC8vIFVuaWZpZWQgbWV0aG9kIHRvIGV4dHJhY3QgbWVkaWEgcXVlcmllcyBhbmQgY3JlYXRlIGEgY3VzdG9tIGNsYXNzXG4gIGFwcGx5UmVzcG9uc2l2ZVN0eWxlcyhicmVha3BvaW50OiBzdHJpbmcpIHtcbiAgICBjb25zdCBtaW5XaWR0aCA9IGdldCh0aGlzLmJyZWFrcG9pbnRNYXAsIGJyZWFrcG9pbnQpIGFzIG51bWJlcjtcbiAgICBjb25zdCBtZWRpYVJ1bGVzID0gW107XG5cbiAgICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBzdHlsZXNoZWV0c1xuICAgIGZvciAoY29uc3Qgc2hlZXQgb2YgQXJyYXkuZnJvbShkb2N1bWVudC5zdHlsZVNoZWV0cykpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCBDU1MgcnVsZXNcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIEFycmF5LmZyb20oc2hlZXQuY3NzUnVsZXMpKSB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHJ1bGUgaXMgYSBDU1NNZWRpYVJ1bGVcbiAgICAgICAgICBpZiAocnVsZSBpbnN0YW5jZW9mIENTU01lZGlhUnVsZSAmJiBydWxlLm1lZGlhLm1lZGlhVGV4dC5pbmNsdWRlcyhgbWluLXdpZHRoOiAke21pbldpZHRofXB4YCkpIHtcbiAgICAgICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgbWVkaWEgcnVsZSdzIENTUyBydWxlc1xuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJSdWxlIG9mIEFycmF5LmZyb20ocnVsZS5jc3NSdWxlcykpIHtcbiAgICAgICAgICAgICAgbWVkaWFSdWxlcy5wdXNoKHN1YlJ1bGUuY3NzVGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFjY2Vzc2luZyBzdHlsZXNoZWV0OicsIGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIGR5bmFtaWMgY2xhc3MgZm9yIHRoZSBtZWRpYSBxdWVyaWVzXG4gICAgdGhpcy5jcmVhdGVDdXN0b21DbGFzcyhgYXhwLXByZXZpZXctJHticmVha3BvaW50fWAsIG1lZGlhUnVsZXMsIGJyZWFrcG9pbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDdXN0b21DbGFzcyhjbGFzc05hbWU6IHN0cmluZywgc3R5bGVzOiBzdHJpbmdbXSwgYnJlYWtwb2ludDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc3R5bGVTaGVldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGVTaGVldC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2NyZWVuJywgYnJlYWtwb2ludCk7XG5cbiAgICAvLyBDb25zdHJ1Y3QgYSBwdXJlIENTUyBzdHJpbmcsIGR5bmFtaWNhbGx5IHJlcGxhY2luZyB0aGUgYnJlYWtwb2ludCBwcmVmaXhcbiAgICBsZXQgc3R5bGVTdHJpbmcgPSAnJztcbiAgICBzdHlsZXMuZm9yRWFjaCgoc3R5bGUpID0+IHtcbiAgICAgIC8vIFJlcGxhY2UgYW55IHByZWZpeGVkIGNsYXNzZXMgbGlrZSAnbGc6JyBvciAnbWQ6JyBkeW5hbWljYWxseVxuICAgICAgY29uc3QgZHluYW1pY1ByZWZpeCA9IG5ldyBSZWdFeHAoYFxcXFwuJHticmVha3BvaW50fVxcXFxcXFxcOmAsICdnJyk7XG4gICAgICBzdHlsZVN0cmluZyArPSBgLiR7Y2xhc3NOYW1lfSAke3N0eWxlLnJlcGxhY2UoZHluYW1pY1ByZWZpeCwgJy4nKX1gOyAvLyBSZXBsYWNlIHRoZSBicmVha3BvaW50IHByZWZpeFxuICAgIH0pO1xuXG4gICAgc3R5bGVTaGVldC5pbm5lclRleHQgPSBzdHlsZVN0cmluZztcbiAgICB0aGlzLnJlbW92ZUN1c3RvbUNsYXNzKCk7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoc3R5bGVTaGVldCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUN1c3RvbUNsYXNzKCkge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJykuZm9yRWFjaCgocykgPT4gcy5yZW1vdmUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCB3aWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMuc2VydmljZS5zaXplKCkpIHtcbiAgICAgIGNhc2UgJ3NtJzpcbiAgICAgICAgcmV0dXJuICczNDBweCc7XG4gICAgICBjYXNlICdtZCc6XG4gICAgICBjYXNlICdsZyc6XG4gICAgICAgIHJldHVybiAnNzY4cHgnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcxMDAlJztcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgZWYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMucmVtb3ZlQ3VzdG9tQ2xhc3MoKTtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLnNpemUoKSAhPSAneGwnKSB7XG4gICAgICB0aGlzLmFwcGx5UmVzcG9uc2l2ZVN0eWxlcyh0aGlzLnNlcnZpY2Uuc2l6ZSgpKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNlcnZpY2Uub25SZWZyZXNoLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHRNZW51Py5yZWZyZXNoKCk7XG4gICAgfSk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb250ZXh0TWVudU9wZW5pbmcoZTogQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudCkge1xuICAgIGNvbnN0IHJlbmRlcmVyID0gZ2V0KGUudGFyZ2V0RWxlbWVudCwgJ19fbWV0YV9fLnJlbmRlcmVyJykgYXMgdW5rbm93biBhcyBBWFBXaWRnZXREZXNpZ25lclJlbmRlcmVyRGlyZWN0aXZlO1xuICAgIGNvbnN0IGluc3RhbmNlID0gZ2V0KGUudGFyZ2V0RWxlbWVudCwgJ19fbWV0YV9fLmluc3RhbmNlJykgYXMgdW5rbm93biBhcyBBWFBEZXNpZ25lcldpZGdldENvbXBvbmVudDtcblxuICAgIGlmICghcmVuZGVyZXIgfHwgIWluc3RhbmNlKSB7XG4gICAgICBlLmNhbmNlbGVkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZW5kZXJlci5zZWxlY3QoKTtcblxuICAgIC8vIEZldGNoIGNvbnRleHQgbWVudSBpdGVtcyBmb3IgdGhlIGN1cnJlbnQgaW5zdGFuY2VcbiAgICB0cnkge1xuICAgICAgY29uc3QgaXRlbXM6IEFYTWVudUl0ZW1bXSA9IHRoaXMuc2VydmljZS5nZXRDb250ZXh0TWVudUl0ZW1zKGluc3RhbmNlLCB0cnVlKTtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgZS5pdGVtcy5wdXNoKC4uLml0ZW1zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGUuY2FuY2VsZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZ2V0IGNvbnRleHQgbWVudSBpdGVtczonLCBlcnJvcik7XG4gICAgICBlLmNhbmNlbGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBSZWN1cnNpdmVseSBiaW5kIGluc3RhbmNlIGRhdGEgdG8gYWxsIGl0ZW1zXG4gICAgdGhpcy5iaW5kSW5zdGFuY2VUb0l0ZW1zKGUuaXRlbXMsIGluc3RhbmNlKTtcblxuICAgIC8vIFRyYXZlcnNlIHRocm91Z2ggcGFyZW50cyBhbmQgYWRkIHRoZWlyIG1lbnUgaXRlbXMgZGlyZWN0bHkgdG8gdGhlIHJvb3QgbGV2ZWxcbiAgICB0aGlzLmFkZFBhcmVudHNUb1Jvb3RNZW51KGluc3RhbmNlLCBlLml0ZW1zKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBhZGRQYXJlbnRzVG9Sb290TWVudShpbnN0YW5jZTogQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQsIGl0ZW1zOiBBWE1lbnVJdGVtW10pIHtcbiAgICBsZXQgcGFyZW50ID0gKGluc3RhbmNlIGFzIHVua25vd24gYXMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQpPy5wYXJlbnQ7XG4gICAgY29uc3QgcGFyZW50SXRlbXM6IEFYTWVudUl0ZW1bXSA9IFtdO1xuXG4gICAgLy8gVHJhdmVyc2UgdXAgdGhlIHBhcmVudCBjaGFpbiwgYWRkaW5nIGVhY2ggcGFyZW50IHRvIHRoZSBcIlBhcmVudHNcIiBtZW51XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgd2lkZ2V0ID0gcGFyZW50IGFzIHVua25vd24gYXMgQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQ7XG4gICAgICAgIGNvbnN0IHBhcmVudENvbnRleHRJdGVtczogQVhNZW51SXRlbVtdID0gdGhpcy5zZXJ2aWNlLmdldENvbnRleHRNZW51SXRlbXMod2lkZ2V0KTtcblxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgbWVudSBpdGVtIGZvciB0aGlzIHBhcmVudFxuICAgICAgICBjb25zdCBwYXJlbnRNZW51SXRlbTogQVhNZW51SXRlbSA9IHtcbiAgICAgICAgICB0ZXh0OiBwYXJlbnQuY29uZmlnLnRpdGxlLFxuICAgICAgICAgIGljb246IHBhcmVudC5jb25maWcuaWNvbixcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXh0OiAnU2VsZWN0JyxcbiAgICAgICAgICAgICAgbmFtZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgIGJyZWFrOiB0cnVlLFxuICAgICAgICAgICAgICBpY29uOiAnZmEtc29saWQgZmEtYXJyb3ctcG9pbnRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4ucGFyZW50Q29udGV4dEl0ZW1zLFxuICAgICAgICAgIF0sXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgYmluZCBpbnN0YW5jZSBkYXRhIHRvIGFsbCBpdGVtc1xuICAgICAgICB0aGlzLmJpbmRJbnN0YW5jZVRvSXRlbXMocGFyZW50TWVudUl0ZW0uaXRlbXMgPz8gW10sIHdpZGdldCk7XG5cbiAgICAgICAgLy8gQWRkIHRoZSBwYXJlbnQgbWVudSBpdGVtIHRvIHRoZSBwYXJlbnRJdGVtcyBhcnJheVxuICAgICAgICBwYXJlbnRJdGVtcy5wdXNoKHBhcmVudE1lbnVJdGVtKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBnZXQgcGFyZW50IGNvbnRleHQgbWVudSBpdGVtczonLCBlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIE1vdmUgdG8gdGhlIG5leHQgcGFyZW50IGluIHRoZSBjaGFpblxuICAgICAgcGFyZW50ID0gKHBhcmVudCBhcyB1bmtub3duIGFzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50KT8ucGFyZW50O1xuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgcGFyZW50IGl0ZW1zLCBhZGQgdGhlbSB1bmRlciBhIFwiUGFyZW50c1wiIGdyb3VwXG4gICAgaWYgKHBhcmVudEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmJyZWFrID0gdHJ1ZTtcbiAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICB0ZXh0OiAnUGFyZW50cycsXG4gICAgICAgIGljb246ICdmYS1zb2xpZCBmYS10dXJuLXVwJywgLy8gSWNvbiBmb3IgdGhlIFwiUGFyZW50c1wiIGdyb3VwXG4gICAgICAgIGl0ZW1zOiBwYXJlbnRJdGVtcywgLy8gQWRkIGFsbCBwYXJlbnQgaXRlbXMgaGVyZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNvbnRleHRNZW51SXRlbUNsaWNrKGU6IEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQpIHtcbiAgICBpZiAoZS5pdGVtLm5hbWUpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBBWFBEZXNpZ25lcldpZGdldENvbXBvbmVudCA9IGdldChlLml0ZW0uZGF0YSwgXCJpbnN0YW5jZVwiKSBhcyB1bmtub3duIGFzIEFYUERlc2lnbmVyV2lkZ2V0Q29tcG9uZW50O1xuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmV4ZWN1dGVDb21tYW5kKHsgaW5zdGFuY2UsIG5hbWU6IGUuaXRlbS5uYW1lIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmluZEluc3RhbmNlVG9JdGVtcyhpdGVtczogQVhNZW51SXRlbVtdLCBpbnN0YW5jZTogQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgLy8gRW5zdXJlIGVhY2ggaXRlbSBnZXRzIHRoZSBjb3JyZWN0IGluc3RhbmNlXG4gICAgICBpdGVtLmRhdGEgPSB7IC4uLihpdGVtLmRhdGEgPz8ge30pLCBpbnN0YW5jZSB9O1xuXG4gICAgICAvLyBJZiB0aGUgaXRlbSBoYXMgc3ViLWl0ZW1zLCBiaW5kIGluc3RhbmNlIHRvIHRoZW0gcmVjdXJzaXZlbHlcbiAgICAgIGlmIChpdGVtLml0ZW1zKSB7XG4gICAgICAgIHRoaXMuYmluZEluc3RhbmNlVG9JdGVtcyhpdGVtLml0ZW1zLCBpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcbiAgcHJpdmF0ZSBnZXQgX19zdHlsZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsczogYW55ID0ge307XG4gICAgY2xzW2B3aWR0aGBdID0gdGhpcy53aWR0aCgpO1xuICAgIGNsc1tgbWF4LXdpZHRoYF0gPSAnMTI4MHB4JztcbiAgICByZXR1cm4gY2xzO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9fY2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIGNsc1tgYXhwLWRlc2lnbmVyLWJvYXJkYF0gPSB0cnVlO1xuICAgIGNsc1tgYXhwLXN0YXRlLWRlc2lnbmBdID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LWgtZnVsbCddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LW92ZXJmbG93LWF1dG8nXSA9IHRydWU7XG4gICAgY2xzW2BheHAtcHJldmlldy0ke3RoaXMuc2VydmljZS5zaXplKCl9YF0gPSB0cnVlO1xuICAgIHJldHVybiBjbHM7XG4gIH1cbn1cbiIsIjxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwiY29udGV4dFwiPlxuICA8bmctY29udGFpbmVyIGF4cC13aWRnZXQtZGVzaWduZXItcmVuZGVyZXIgW25vZGVdPVwic2VydmljZS5jdXJyZW50UGFnZSgpXCIgW21vZGVdPVwiJ2Rlc2lnbmVyJ1wiPjwvbmctY29udGFpbmVyPlxuPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG5cbjxheC1jb250ZXh0LW1lbnUgY2xhc3M9XCJheC1kYXJrXCIgI2NvbnRleHRNZW51IFt0YXJnZXRdPVwiJy5heHAtd2lkZ2V0LWhvc3QnXCIgW29yaWVudGF0aW9uXT1cIid2ZXJ0aWNhbCdcIlxuICBbY2xvc2VPbl09XCInbGVhdmUnXCIgKG9uT3BlbmluZyk9XCJoYW5kbGVDb250ZXh0TWVudU9wZW5pbmcoJGV2ZW50KVwiIChvbkl0ZW1DbGljayk9XCJoYW5kbGVDb250ZXh0TWVudUl0ZW1DbGljaygkZXZlbnQpXCI+XG48L2F4LWNvbnRleHQtbWVudT4iXX0=","import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/breadcrumbs\";\nexport class AXPDesignerBreadcrumbsComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n }\n getTitle(node) {\n return get(node, '__meta__.config.title');\n }\n handleClick(node) {\n this.service.select({ widget: node });\n }\n handleMouseOver(node) {\n this.service.focus({ widget: node });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerBreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPDesignerBreadcrumbsComponent, isStandalone: true, selector: \"axp-designer-breadcrumbs\", ngImport: i0, template: `\n <ax-breadcrumbs>\n @for( b of service.breadcrumbs();track $index){\n <ax-breadcrumbs-item>\n <a (click)=\"handleClick(b)\" (mouseover)=\"handleMouseOver(b)\"> {{ getTitle(b) }}</a>\n </ax-breadcrumbs-item>\n }\n <ng-template #divider>\n <i class=\"ax-icon ax-icon-chevron-right\"></i>\n </ng-template>\n </ax-breadcrumbs>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"ngmodule\", type: AXBreadcrumbsModule }, { kind: \"component\", type: i1.AXBreadCrumbsComponent, selector: \"ax-breadcrumbs\" }, { kind: \"component\", type: i1.AXBreadCrumbsItemComponent, selector: \"ax-breadcrumbs-item\", inputs: [\"disabled\", \"active\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerBreadcrumbsComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-designer-breadcrumbs',\n template: `\n <ax-breadcrumbs>\n @for( b of service.breadcrumbs();track $index){\n <ax-breadcrumbs-item>\n <a (click)=\"handleClick(b)\" (mouseover)=\"handleMouseOver(b)\"> {{ getTitle(b) }}</a>\n </ax-breadcrumbs-item>\n }\n <ng-template #divider>\n <i class=\"ax-icon ax-icon-chevron-right\"></i>\n </ng-template>\n </ax-breadcrumbs>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXPWidgetCoreModule, AXBreadcrumbsModule, AXDecoratorModule]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQWlCLE1BQU0scUNBQXFDLENBQUM7QUFFekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBb0JuRSxNQUFNLE9BQU8sK0JBQStCO0lBbEI1QztRQW1CWSxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FhaEQ7SUFYVyxRQUFRLENBQUMsSUFBbUI7UUFDcEMsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFrQixDQUFDO0lBQzdELENBQUM7SUFFUyxXQUFXLENBQUMsSUFBbUI7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVMsZUFBZSxDQUFDLElBQW1CO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0FiVSwrQkFBK0I7bUdBQS9CLCtCQUErQixvRkFoQjlCOzs7Ozs7Ozs7OztHQVdYLDJEQUdXLG1CQUFtQiw4QkFBRSxtQkFBbUIsK09BQUUsaUJBQWlCOzs0RkFFNUQsK0JBQStCO2tCQWxCM0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0dBV1g7b0JBQ0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQztpQkFDekUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29yZU1vZHVsZSwgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUERlc2lnbmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9kZXNpZ25lci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItYnJlYWRjcnVtYnMnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGF4LWJyZWFkY3J1bWJzPlxuICAgICAgQGZvciggYiBvZiBzZXJ2aWNlLmJyZWFkY3J1bWJzKCk7dHJhY2sgJGluZGV4KXtcbiAgICAgIDxheC1icmVhZGNydW1icy1pdGVtPlxuICAgICAgICA8YSAoY2xpY2spPVwiaGFuZGxlQ2xpY2soYilcIiAobW91c2VvdmVyKT1cImhhbmRsZU1vdXNlT3ZlcihiKVwiPiB7eyBnZXRUaXRsZShiKSB9fTwvYT5cbiAgICAgIDwvYXgtYnJlYWRjcnVtYnMtaXRlbT5cbiAgICAgIH1cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGl2aWRlcj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1yaWdodFwiPjwvaT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9heC1icmVhZGNydW1icz5cbiAgYCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtBWFBXaWRnZXRDb3JlTW9kdWxlLCBBWEJyZWFkY3J1bWJzTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJCcmVhZGNydW1ic0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGdldFRpdGxlKG5vZGU6IEFYUFdpZGdldE5vZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXQobm9kZSwgJ19fbWV0YV9fLmNvbmZpZy50aXRsZScpIGFzIGFueSBhcyBzdHJpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2sobm9kZTogQVhQV2lkZ2V0Tm9kZSkge1xuICAgIHRoaXMuc2VydmljZS5zZWxlY3QoeyB3aWRnZXQ6IG5vZGUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlTW91c2VPdmVyKG5vZGU6IEFYUFdpZGdldE5vZGUpIHtcbiAgICB0aGlzLnNlcnZpY2UuZm9jdXMoeyB3aWRnZXQ6IG5vZGUgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nexport class AXPLayoutDesignerDrawerContentComponent {\n constructor() { }\n ngOnInit() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerDrawerContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.10\", type: AXPLayoutDesignerDrawerContentComponent, isStandalone: true, selector: \"axp-designer-drawer-content\", ngImport: i0, template: \"<div class=\\\"ax-flex ax-flex-col ax-border-e ax-w-72 ax-h-full\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-p-2 ax-border-b\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-gap-2 ax-items-center ax-font-semibold\\\">\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n </div>\\n <div class=\\\"ax-flex ax-gap-1 ax-items-center\\\">\\n <ng-content select=\\\"ax-content[header]\\\">\\n </ng-content>\\n <ax-close-button></ax-close-button>\\n </div>\\n </div>\\n <div class=\\\"ax-flex-1 ax-h-full ax-overflow-auto\\\">\\n <ng-content select=\\\"ax-content[body]\\\">\\n\\n </ng-content>\\n </div>\\n</div>\", dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorCloseButtonComponent, selector: \"ax-close-button\", inputs: [\"closeAll\", \"icon\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerDrawerContentComponent, decorators: [{\n type: Component,\n args: [{ imports: [AXDecoratorModule], selector: 'axp-designer-drawer-content', template: \"<div class=\\\"ax-flex ax-flex-col ax-border-e ax-w-72 ax-h-full\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-p-2 ax-border-b\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-gap-2 ax-items-center ax-font-semibold\\\">\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n </div>\\n <div class=\\\"ax-flex ax-gap-1 ax-items-center\\\">\\n <ng-content select=\\\"ax-content[header]\\\">\\n </ng-content>\\n <ax-close-button></ax-close-button>\\n </div>\\n </div>\\n <div class=\\\"ax-flex-1 ax-h-full ax-overflow-auto\\\">\\n <ng-content select=\\\"ax-content[body]\\\">\\n\\n </ng-content>\\n </div>\\n</div>\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9zaGFyZWQvZHJhd2VyLWNvbnRlbnQvZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9zaGFyZWQvZHJhd2VyLWNvbnRlbnQvZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBUWxELE1BQU0sT0FBTyx1Q0FBdUM7SUFDaEQsZ0JBQWdCLENBQUM7SUFFakIsUUFBUSxLQUFLLENBQUM7K0dBSEwsdUNBQXVDO21HQUF2Qyx1Q0FBdUMsdUZDVnBELGtyQkFnQk0sMkNEWFEsaUJBQWlCOzs0RkFLbEIsdUNBQXVDO2tCQU5uRCxTQUFTOzhCQUNHLENBQUMsaUJBQWlCLENBQUMsWUFDbEIsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtBWERlY29yYXRvck1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7IH1cbn0iLCI8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1ib3JkZXItZSBheC13LTcyIGF4LWgtZnVsbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LXctZnVsbCBheC1qdXN0aWZ5LWJldHdlZW4gIGF4LXAtMiBheC1ib3JkZXItYlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LXJvdyBheC1nYXAtMiBheC1pdGVtcy1jZW50ZXIgYXgtZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMSBheC1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWNvbnRlbnRbaGVhZGVyXVwiPlxuICAgICAgICAgICAgPC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPGF4LWNsb3NlLWJ1dHRvbj48L2F4LWNsb3NlLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXgtMSBheC1oLWZ1bGwgYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jb250ZW50W2JvZHldXCI+XG5cbiAgICAgICAgPC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19","import { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPDesignerService } from '../../../shared/designer.service';\nimport { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXPDataSourceDefinitionProviderService } from '@acorex/platform/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/button\";\nexport class AXPDesignerDataSourcesComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n this.workflow = inject(AXPWorkflowService);\n this.dataSourceProvider = inject(AXPDataSourceDefinitionProviderService);\n this.list = signal([], ...(ngDevMode ? [{ debugName: \"list\" }] : []));\n }\n async ngOnInit() {\n const items = (await this.dataSourceProvider.items()).map(c => ({ name: c.name, title: c.title }));\n this.list.set(items);\n }\n async handleAddClick() {\n this.workflow.execute('create-entity', {\n entity: `PlatformManagement.DataSource`,\n options: {\n process: {\n canCreateNewOne: false,\n redirect: false,\n },\n layout: {\n size: 'lg'\n }\n },\n metadata: {\n formBuilder: true\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerDataSourcesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPDesignerDataSourcesComponent, isStandalone: true, selector: \"axp-designer-data-sources\", ngImport: i0, template: \"<axp-designer-drawer-content>\\n <ax-title>Data Sources</ax-title>\\n\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" title=\\\"Add New Data Source\\\" (onClick)=\\\"handleAddClick()\\\">\\n <ax-icon class=\\\"fa-light fa-plus\\\"></ax-icon>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @if (list().length) {\\n <ul class=\\\"axp-designer-drawer-list\\\">\\n @for (item of list(); track $index) {\\n <li>\\n <i class=\\\"ax-me-1 fa-solid fa-table\\\"></i>\\n {{ item.title }}\\n </li>\\n }\\n </ul>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-database\\\"\\n [title]=\\\"'@layout-designer:components.data-sources.empty-states.no-data-sources.title'\\\"\\n [description]=\\\"'@layout-designer:components.data-sources.empty-states.no-data-sources.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\", dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXPLayoutDesignerDrawerContentComponent, selector: \"axp-designer-drawer-content\" }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerDataSourcesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-data-sources', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n AXDecoratorModule,\n AXButtonModule,\n AXPLayoutDesignerDrawerContentComponent,\n AXPStateMessageComponent\n ], template: \"<axp-designer-drawer-content>\\n <ax-title>Data Sources</ax-title>\\n\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" title=\\\"Add New Data Source\\\" (onClick)=\\\"handleAddClick()\\\">\\n <ax-icon class=\\\"fa-light fa-plus\\\"></ax-icon>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @if (list().length) {\\n <ul class=\\\"axp-designer-drawer-list\\\">\\n @for (item of list(); track $index) {\\n <li>\\n <i class=\\\"ax-me-1 fa-solid fa-table\\\"></i>\\n {{ item.title }}\\n </li>\\n }\\n </ul>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-database\\\"\\n [title]=\\\"'@layout-designer:components.data-sources.empty-states.no-data-sources.title'\\\"\\n [description]=\\\"'@layout-designer:components.data-sources.empty-states.no-data-sources.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9kcmF3ZXJzL2RhdGEtc291cmNlcy9kYXRhLXNvdXJjZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvZGF0YS1zb3VyY2VzL2RhdGEtc291cmNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBZS9FLE1BQU0sT0FBTywrQkFBK0I7SUFiNUM7UUFlYyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBRXBFLFNBQUksR0FBRyxNQUFNLENBQW9DLEVBQUUsZ0RBQUMsQ0FBQztLQStCbEU7SUE1QkcsS0FBSyxDQUFDLFFBQVE7UUFDVixNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFHUyxLQUFLLENBQUMsY0FBYztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQ2pDO1lBQ0ksTUFBTSxFQUFFLCtCQUErQjtZQUN2QyxPQUFPLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFO29CQUNMLGVBQWUsRUFBRSxLQUFLO29CQUN0QixRQUFRLEVBQUUsS0FBSztpQkFDbEI7Z0JBQ0QsTUFBTSxFQUFFO29CQUNKLElBQUksRUFBRSxJQUFJO2lCQUNiO2FBQ0o7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLElBQUk7YUFDcEI7U0FDSixDQUVKLENBQUE7SUFDTCxDQUFDOytHQWxDUSwrQkFBK0I7bUdBQS9CLCtCQUErQixxRkN2QjVDLG84QkE2QkEsMkNEYlEsaUJBQWlCLHNWQUNqQixjQUFjLDhYQUNkLHVDQUF1Qyx3RUFDdkMsd0JBQXdCOzs0RkFJbkIsK0JBQStCO2tCQWIzQyxTQUFTOytCQUNJLDJCQUEyQixpQkFFdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDTCxpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsdUNBQXVDO3dCQUN2Qyx3QkFBd0I7cUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYUFN0YXRlTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RyYXdlci1jb250ZW50L2RyYXdlci1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUERhdGFTb3VyY2VEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItZGF0YS1zb3VyY2VzJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RhdGEtc291cmNlcy5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnRcbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJEYXRhU291cmNlc0NvbXBvbmVudCB7XG5cbiAgICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBkYXRhU291cmNlUHJvdmlkZXIgPSBpbmplY3QoQVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlclNlcnZpY2UpO1xuXG4gICAgcHJvdGVjdGVkIGxpc3QgPSBzaWduYWw8eyBuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcgfVtdPihbXSk7XG5cblxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IChhd2FpdCB0aGlzLmRhdGFTb3VyY2VQcm92aWRlci5pdGVtcygpKS5tYXAoYyA9PiAoeyBuYW1lOiBjLm5hbWUsIHRpdGxlOiBjLnRpdGxlIH0pKTtcbiAgICAgICAgdGhpcy5saXN0LnNldChpdGVtcyk7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQWRkQ2xpY2soKSB7XG4gICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW50aXR5OiBgUGxhdGZvcm1NYW5hZ2VtZW50LkRhdGFTb3VyY2VgLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FuQ3JlYXRlTmV3T25lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAnbGcnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1CdWlsZGVyOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIClcbiAgICB9XG5cblxufSIsIjxheHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQ+XG4gIDxheC10aXRsZT5EYXRhIFNvdXJjZXM8L2F4LXRpdGxlPlxuXG4gIDxheC1jb250ZW50IGhlYWRlcj5cbiAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIGNsYXNzPVwiYXgtc21cIiB0aXRsZT1cIkFkZCBOZXcgRGF0YSBTb3VyY2VcIiAob25DbGljayk9XCJoYW5kbGVBZGRDbGljaygpXCI+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0IGZhLXBsdXNcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gIDwvYXgtY29udGVudD5cblxuICA8YXgtY29udGVudCBib2R5PlxuICAgIEBpZiAobGlzdCgpLmxlbmd0aCkge1xuICAgICAgPHVsIGNsYXNzPVwiYXhwLWRlc2lnbmVyLWRyYXdlci1saXN0XCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgbGlzdCgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LW1lLTEgZmEtc29saWQgZmEtdGFibGVcIj48L2k+XG4gICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgfVxuICAgICAgPC91bD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxheHAtc3RhdGUtbWVzc2FnZVxuICAgICAgICBpY29uPVwiZmEtbGlnaHQgZmEtZGF0YWJhc2VcIlxuICAgICAgICBbdGl0bGVdPVwiJ0BsYXlvdXQtZGVzaWduZXI6Y29tcG9uZW50cy5kYXRhLXNvdXJjZXMuZW1wdHktc3RhdGVzLm5vLWRhdGEtc291cmNlcy50aXRsZSdcIlxuICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ0BsYXlvdXQtZGVzaWduZXI6Y29tcG9uZW50cy5kYXRhLXNvdXJjZXMuZW1wdHktc3RhdGVzLm5vLWRhdGEtc291cmNlcy5kZXNjcmlwdGlvbidcIlxuICAgICAgPlxuICAgICAgPC9heHAtc3RhdGUtbWVzc2FnZT5cbiAgICB9XG4gIDwvYXgtY29udGVudD5cbjwvYXhwLWRlc2lnbmVyLWRyYXdlci1jb250ZW50PlxuIl19","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';\nimport { AXPDesignerService } from '../../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/dropdown\";\nexport class AXPDesignerHistoryComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPDesignerHistoryComponent, isStandalone: true, selector: \"axp-designer-history\", ngImport: i0, template: \"<axp-designer-drawer-content>\\n <ax-title>History</ax-title>\\n\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\">\\n <ax-icon class=\\\"fa-light fa-ellipsis\\\"></ax-icon>\\n <ax-dropdown-panel class=\\\"ax-sm\\\">\\n <ax-button-item-list>\\n <ax-button-item text=\\\"Clear\\\" name=\\\"add\\\" (onClick)=\\\"service.clearHistory()\\\"> </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @if (service.history().length) {\\n <ul class=\\\"axp-designer-drawer-list\\\">\\n @for (step of service.history(); track $index) {\\n <li\\n (click)=\\\"service.navigateTo($index)\\\"\\n [class.ax-italic]=\\\"step.isFuture\\\"\\n [class.ax-text-neutral-400]=\\\"step.isFuture\\\"\\n [class.ax-state-selected]=\\\"step.isCurrent\\\"\\n >\\n <i class=\\\"ax-me-1\\\" [ngClass]=\\\"step.icon\\\"></i>\\n {{ step.description }}\\n </li>\\n }\\n </ul>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-history\\\"\\n [title]=\\\"'@layout-designer:components.history.empty-states.no-changes.title'\\\"\\n [description]=\\\"'@layout-designer:components.history.empty-states.no-changes.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i3.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i3.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i3.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i4.AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"component\", type: AXPLayoutDesignerDrawerContentComponent, selector: \"axp-designer-drawer-content\" }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerHistoryComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-history', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXDropdownModule,\n AXPLayoutDesignerDrawerContentComponent,\n AXPStateMessageComponent\n ], template: \"<axp-designer-drawer-content>\\n <ax-title>History</ax-title>\\n\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\">\\n <ax-icon class=\\\"fa-light fa-ellipsis\\\"></ax-icon>\\n <ax-dropdown-panel class=\\\"ax-sm\\\">\\n <ax-button-item-list>\\n <ax-button-item text=\\\"Clear\\\" name=\\\"add\\\" (onClick)=\\\"service.clearHistory()\\\"> </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @if (service.history().length) {\\n <ul class=\\\"axp-designer-drawer-list\\\">\\n @for (step of service.history(); track $index) {\\n <li\\n (click)=\\\"service.navigateTo($index)\\\"\\n [class.ax-italic]=\\\"step.isFuture\\\"\\n [class.ax-text-neutral-400]=\\\"step.isFuture\\\"\\n [class.ax-state-selected]=\\\"step.isCurrent\\\"\\n >\\n <i class=\\\"ax-me-1\\\" [ngClass]=\\\"step.icon\\\"></i>\\n {{ step.description }}\\n </li>\\n }\\n </ul>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-history\\\"\\n [title]=\\\"'@layout-designer:components.history.empty-states.no-changes.title'\\\"\\n [description]=\\\"'@layout-designer:components.history.empty-states.no-changes.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvZHJhd2Vycy9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvaGlzdG9yeS9oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQWlCdEUsTUFBTSxPQUFPLDJCQUEyQjtJQWZ4QztRQWdCYyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDbEQ7K0dBRlksMkJBQTJCO21HQUEzQiwyQkFBMkIsZ0ZDeEJ4Qyw4MkNBdUNBLDJDRHhCUSxZQUFZLDRIQUNaLGlCQUFpQixzVkFDakIsY0FBYyxvdUJBQ2QsZ0JBQWdCLHNRQUNoQix1Q0FBdUMsd0VBQ3ZDLHdCQUF3Qjs7NEZBSW5CLDJCQUEyQjtrQkFmdkMsU0FBUzsrQkFDSSxzQkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ0wsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQix1Q0FBdUM7d0JBQ3ZDLHdCQUF3QjtxQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzJztcbmltcG9ydCB7IEFYUExheW91dERlc2lnbmVyRHJhd2VyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kcmF3ZXItY29udGVudC9kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1oaXN0b3J5JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2hpc3RvcnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICAgICAgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnRcbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJIaXN0b3J5Q29tcG9uZW50IHtcbiAgICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xufSIsIjxheHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQ+XG4gIDxheC10aXRsZT5IaXN0b3J5PC9heC10aXRsZT5cblxuICA8YXgtY29udGVudCBoZWFkZXI+XG4gICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCI+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0IGZhLWVsbGlwc2lzXCI+PC9heC1pY29uPlxuICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsIGNsYXNzPVwiYXgtc21cIj5cbiAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJDbGVhclwiIG5hbWU9XCJhZGRcIiAob25DbGljayk9XCJzZXJ2aWNlLmNsZWFySGlzdG9yeSgpXCI+IDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgPC9heC1idXR0b24+XG4gIDwvYXgtY29udGVudD5cblxuICA8YXgtY29udGVudCBib2R5PlxuICAgIEBpZiAoc2VydmljZS5oaXN0b3J5KCkubGVuZ3RoKSB7XG4gICAgICA8dWwgY2xhc3M9XCJheHAtZGVzaWduZXItZHJhd2VyLWxpc3RcIj5cbiAgICAgICAgQGZvciAoc3RlcCBvZiBzZXJ2aWNlLmhpc3RvcnkoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAoY2xpY2spPVwic2VydmljZS5uYXZpZ2F0ZVRvKCRpbmRleClcIlxuICAgICAgICAgICAgW2NsYXNzLmF4LWl0YWxpY109XCJzdGVwLmlzRnV0dXJlXCJcbiAgICAgICAgICAgIFtjbGFzcy5heC10ZXh0LW5ldXRyYWwtNDAwXT1cInN0ZXAuaXNGdXR1cmVcIlxuICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLXNlbGVjdGVkXT1cInN0ZXAuaXNDdXJyZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LW1lLTFcIiBbbmdDbGFzc109XCJzdGVwLmljb25cIj48L2k+XG4gICAgICAgICAgICB7eyBzdGVwLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgfVxuICAgICAgPC91bD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxheHAtc3RhdGUtbWVzc2FnZVxuICAgICAgICBpY29uPVwiZmEtbGlnaHQgZmEtaGlzdG9yeVwiXG4gICAgICAgIFt0aXRsZV09XCInQGxheW91dC1kZXNpZ25lcjpjb21wb25lbnRzLmhpc3RvcnkuZW1wdHktc3RhdGVzLm5vLWNoYW5nZXMudGl0bGUnXCJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIidAbGF5b3V0LWRlc2lnbmVyOmNvbXBvbmVudHMuaGlzdG9yeS5lbXB0eS1zdGF0ZXMubm8tY2hhbmdlcy5kZXNjcmlwdGlvbidcIlxuICAgICAgPlxuICAgICAgPC9heHAtc3RhdGUtbWVzc2FnZT5cbiAgICB9XG4gIDwvYXgtY29udGVudD5cbjwvYXhwLWRlc2lnbmVyLWRyYXdlci1jb250ZW50PlxuIl19","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { merge } from 'rxjs';\nimport { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';\nimport { AXPDesignerService } from '../../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/decorators\";\nexport class AXPDesignerOutlineComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n this.collapsedStates = new Map();\n this.root = signal(this.getTree(), ...(ngDevMode ? [{ debugName: \"root\" }] : []));\n merge(this.service.onRefresh, this.service.onUpdate).subscribe(() => {\n this.root.update((c) => ({ ...this.getTree() }));\n });\n }\n getTree() {\n return {\n type: AXPWidgetsCatalog.document,\n children: [this.service.currentPage()],\n };\n }\n toggleCollapse(node) {\n // Toggle the current state or set to true if undefined\n this.collapsedStates.set(node, !this.collapsedStates.get(node));\n }\n isCollapsed(node) {\n // Return the collapsed state, default is false (expanded)\n return !!this.collapsedStates.get(node);\n }\n getConfig(node) {\n return get(node, '__meta__.config');\n }\n handleClick(e, node) {\n e.stopPropagation();\n this.service.select({ widget: node });\n }\n handleToggleClick(event, item) {\n event.stopPropagation(); // Prevents the event from bubbling up to parent elements\n this.toggleCollapse(item);\n }\n handleMouseOver(e, node) {\n e.stopPropagation();\n this.service.focus({ widget: node });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerOutlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPDesignerOutlineComponent, isStandalone: true, selector: \"axp-designer-outline\", ngImport: i0, template: \"<axp-designer-drawer-content>\\n <ax-title>Outline</ax-title>\\n\\n <ax-content body>\\n @if (root().children?.length) {\\n <ul class=\\\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\\\">\\n @for (node of root().children; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"sideMenu\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n }\\n </ul>\\n <ng-template #sideMenu let-item>\\n <li (click)=\\\"handleClick($event, item)\\\" (mouseover)=\\\"handleMouseOver($event, item)\\\">\\n <div\\n [class.ax-bg-neutral-700]=\\\"item === service.selectedNode()\\\"\\n class=\\\"ax-flex ax-flex-row ax-items-center ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group\\\"\\n >\\n <span class=\\\"ax-w-5\\\">\\n @if (item.children?.length) {\\n <i\\n class=\\\"fa-solid\\\"\\n [class.fa-chevron-right]=\\\"isCollapsed(item)\\\"\\n (click)=\\\"handleToggleClick($event, item)\\\"\\n [class.fa-chevron-down]=\\\"!isCollapsed(item)\\\"\\n ></i>\\n }\\n </span>\\n @let config = getConfig(item);\\n <span class=\\\"ax-w-5\\\">\\n @if (config.icon) {\\n <i [ngClass]=\\\"config.icon\\\"></i>\\n }\\n </span>\\n <span class=\\\"ax-truncate ax-flex-1 ax-pe-2\\\">{{ config.title }} : {{ item.name }}</span>\\n <div class=\\\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2 ax-justify-end\\\">\\n @if (config.type == 'container') {\\n <i class=\\\"fa-light fa-plus hover:ax-text-primary-500\\\" (click)=\\\"service.showPicker(item)\\\"></i>\\n }\\n @if (config.name != 'page-layout') {\\n <i class=\\\"fa-light fa-xmark hover:ax-text-danger-500\\\" (click)=\\\"service.removeWidget(item)\\\"></i>\\n }\\n </div>\\n </div>\\n @if (item.children?.length && !isCollapsed(item)) {\\n <ul class=\\\"ax-space-y-1 ax-ps-3 ax-text-white ax-text-sm\\\">\\n @for (child of item.children; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"sideMenu\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\">\\n </ng-container>\\n }\\n </ul>\\n }\\n </li>\\n </ng-template>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-shapes\\\"\\n [title]=\\\"'@layout-designer:components.outline.empty-states.no-widgets.title'\\\"\\n [description]=\\\"'@layout-designer:components.outline.empty-states.no-widgets.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXPLayoutDesignerDrawerContentComponent, selector: \"axp-designer-drawer-content\" }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerOutlineComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-outline', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n AXDecoratorModule,\n AXPLayoutDesignerDrawerContentComponent,\n AXPStateMessageComponent\n ], template: \"<axp-designer-drawer-content>\\n <ax-title>Outline</ax-title>\\n\\n <ax-content body>\\n @if (root().children?.length) {\\n <ul class=\\\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\\\">\\n @for (node of root().children; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"sideMenu\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n }\\n </ul>\\n <ng-template #sideMenu let-item>\\n <li (click)=\\\"handleClick($event, item)\\\" (mouseover)=\\\"handleMouseOver($event, item)\\\">\\n <div\\n [class.ax-bg-neutral-700]=\\\"item === service.selectedNode()\\\"\\n class=\\\"ax-flex ax-flex-row ax-items-center ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group\\\"\\n >\\n <span class=\\\"ax-w-5\\\">\\n @if (item.children?.length) {\\n <i\\n class=\\\"fa-solid\\\"\\n [class.fa-chevron-right]=\\\"isCollapsed(item)\\\"\\n (click)=\\\"handleToggleClick($event, item)\\\"\\n [class.fa-chevron-down]=\\\"!isCollapsed(item)\\\"\\n ></i>\\n }\\n </span>\\n @let config = getConfig(item);\\n <span class=\\\"ax-w-5\\\">\\n @if (config.icon) {\\n <i [ngClass]=\\\"config.icon\\\"></i>\\n }\\n </span>\\n <span class=\\\"ax-truncate ax-flex-1 ax-pe-2\\\">{{ config.title }} : {{ item.name }}</span>\\n <div class=\\\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2 ax-justify-end\\\">\\n @if (config.type == 'container') {\\n <i class=\\\"fa-light fa-plus hover:ax-text-primary-500\\\" (click)=\\\"service.showPicker(item)\\\"></i>\\n }\\n @if (config.name != 'page-layout') {\\n <i class=\\\"fa-light fa-xmark hover:ax-text-danger-500\\\" (click)=\\\"service.removeWidget(item)\\\"></i>\\n }\\n </div>\\n </div>\\n @if (item.children?.length && !isCollapsed(item)) {\\n <ul class=\\\"ax-space-y-1 ax-ps-3 ax-text-white ax-text-sm\\\">\\n @for (child of item.children; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"sideMenu\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\">\\n </ng-container>\\n }\\n </ul>\\n }\\n </li>\\n </ng-template>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-shapes\\\"\\n [title]=\\\"'@layout-designer:components.outline.empty-states.no-widgets.title'\\\"\\n [description]=\\\"'@layout-designer:components.outline.empty-states.no-widgets.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0bGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvZHJhd2Vycy9vdXRsaW5lL291dGxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvb3V0bGluZS9vdXRsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBa0MsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWN0RSxNQUFNLE9BQU8sMkJBQTJCO0lBT3RDO1FBTlUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXJDLG9CQUFlLEdBQXNCLElBQUksR0FBRyxFQUFFLENBQUM7UUFFL0MsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGdEQUFDLENBQUM7UUFHdEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE9BQU87UUFDYixPQUFPO1lBQ0wsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7WUFDaEMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QixDQUFDO0lBQ3JCLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBUztRQUM5Qix1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRVMsV0FBVyxDQUFDLElBQVM7UUFDN0IsMERBQTBEO1FBQzFELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxTQUFTLENBQUMsSUFBbUI7UUFDckMsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUEyQixDQUFDO0lBQ2hFLENBQUM7SUFFUyxXQUFXLENBQUMsQ0FBYSxFQUFFLElBQW1CO1FBQ3RELENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFpQixFQUFFLElBQVM7UUFDdEQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMseURBQXlEO1FBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVTLGVBQWUsQ0FBQyxDQUFhLEVBQUUsSUFBbUI7UUFDMUQsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0EvQ1UsMkJBQTJCO21HQUEzQiwyQkFBMkIsZ0ZDdEJ4Qyxtd0ZBOERBLDJDRDlDSSxZQUFZLG1TQUNaLGlCQUFpQixzUEFDakIsdUNBQXVDLHdFQUN2Qyx3QkFBd0I7OzRGQUdmLDJCQUEyQjtrQkFadkMsU0FBUzsrQkFDRSxzQkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHVDQUF1Qzt3QkFDdkMsd0JBQXdCO3FCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldE5vZGUsIEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBMYXlvdXREZXNpZ25lckRyYXdlckNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHJhd2VyLWNvbnRlbnQvZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZXNpZ25lci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLW91dGxpbmUnLFxuICB0ZW1wbGF0ZVVybDogJ291dGxpbmUuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFBMYXlvdXREZXNpZ25lckRyYXdlckNvbnRlbnRDb21wb25lbnQsXG4gICAgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJPdXRsaW5lQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgY29sbGFwc2VkU3RhdGVzOiBNYXA8YW55LCBib29sZWFuPiA9IG5ldyBNYXAoKTtcblxuICBwcm90ZWN0ZWQgcm9vdCA9IHNpZ25hbCh0aGlzLmdldFRyZWUoKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgbWVyZ2UodGhpcy5zZXJ2aWNlLm9uUmVmcmVzaCwgdGhpcy5zZXJ2aWNlLm9uVXBkYXRlKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yb290LnVwZGF0ZSgoYykgPT4gKHsgLi4udGhpcy5nZXRUcmVlKCkgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmVlKCk6IEFYUFdpZGdldE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kb2N1bWVudCxcbiAgICAgIGNoaWxkcmVuOiBbdGhpcy5zZXJ2aWNlLmN1cnJlbnRQYWdlKCldLFxuICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlQ29sbGFwc2Uobm9kZTogYW55KSB7XG4gICAgLy8gVG9nZ2xlIHRoZSBjdXJyZW50IHN0YXRlIG9yIHNldCB0byB0cnVlIGlmIHVuZGVmaW5lZFxuICAgIHRoaXMuY29sbGFwc2VkU3RhdGVzLnNldChub2RlLCAhdGhpcy5jb2xsYXBzZWRTdGF0ZXMuZ2V0KG5vZGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NvbGxhcHNlZChub2RlOiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyBSZXR1cm4gdGhlIGNvbGxhcHNlZCBzdGF0ZSwgZGVmYXVsdCBpcyBmYWxzZSAoZXhwYW5kZWQpXG4gICAgcmV0dXJuICEhdGhpcy5jb2xsYXBzZWRTdGF0ZXMuZ2V0KG5vZGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvbmZpZyhub2RlOiBBWFBXaWRnZXROb2RlKTogQVhQV2lkZ2V0Q29uZmlnIHtcbiAgICByZXR1cm4gZ2V0KG5vZGUsICdfX21ldGFfXy5jb25maWcnKSBhcyBhbnkgYXMgQVhQV2lkZ2V0Q29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQsIG5vZGU6IEFYUFdpZGdldE5vZGUpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2VydmljZS5zZWxlY3QoeyB3aWRnZXQ6IG5vZGUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVG9nZ2xlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBQcmV2ZW50cyB0aGUgZXZlbnQgZnJvbSBidWJibGluZyB1cCB0byBwYXJlbnQgZWxlbWVudHNcbiAgICB0aGlzLnRvZ2dsZUNvbGxhcHNlKGl0ZW0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU1vdXNlT3ZlcihlOiBNb3VzZUV2ZW50LCBub2RlOiBBWFBXaWRnZXROb2RlKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnNlcnZpY2UuZm9jdXMoeyB3aWRnZXQ6IG5vZGUgfSk7XG4gIH1cbn1cbiIsIjxheHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQ+XG4gIDxheC10aXRsZT5PdXRsaW5lPC9heC10aXRsZT5cblxuICA8YXgtY29udGVudCBib2R5PlxuICAgIEBpZiAocm9vdCgpLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIDx1bCBjbGFzcz1cImF4LXNwYWNlLXktMSBheC1wLTEgYXgtdGV4dC13aGl0ZSBheC10ZXh0LXNtXCI+XG4gICAgICAgIEBmb3IgKG5vZGUgb2Ygcm9vdCgpLmNoaWxkcmVuOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNpZGVNZW51XCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgICA8bmctdGVtcGxhdGUgI3NpZGVNZW51IGxldC1pdGVtPlxuICAgICAgICA8bGkgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudCwgaXRlbSlcIiAobW91c2VvdmVyKT1cImhhbmRsZU1vdXNlT3ZlcigkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW2NsYXNzLmF4LWJnLW5ldXRyYWwtNzAwXT1cIml0ZW0gPT09IHNlcnZpY2Uuc2VsZWN0ZWROb2RlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LWl0ZW1zLWNlbnRlciBheC1jdXJzb3ItcG9pbnRlciBheC10cmFuc2l0aW9uIGF4LWR1cmF0aW9uLTE1MCBheC1lYXNlLWluLW91dCBheC1ob3ZlcjpiZy1ncmF5LTcwMCBheC1weS0xIGF4LXB4LTIgYXgtcm91bmRlZC1zbSBheC1ncm91cFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC13LTVcIj5cbiAgICAgICAgICAgICAgQGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYS1zb2xpZFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuZmEtY2hldnJvbi1yaWdodF09XCJpc0NvbGxhcHNlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVG9nZ2xlQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuZmEtY2hldnJvbi1kb3duXT1cIiFpc0NvbGxhcHNlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgQGxldCBjb25maWcgPSBnZXRDb25maWcoaXRlbSk7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXctNVwiPlxuICAgICAgICAgICAgICBAaWYgKGNvbmZpZy5pY29uKSB7XG4gICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiY29uZmlnLmljb25cIj48L2k+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdHJ1bmNhdGUgYXgtZmxleC0xIGF4LXBlLTJcIj57eyBjb25maWcudGl0bGUgfX0gOiB7eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtaW52aXNpYmxlIGdyb3VwLWhvdmVyOmF4LXZpc2libGUgYXgtZmxleCBheC1nYXAtMiBheC1qdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgICAgICBAaWYgKGNvbmZpZy50eXBlID09ICdjb250YWluZXInKSB7XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1wbHVzIGhvdmVyOmF4LXRleHQtcHJpbWFyeS01MDBcIiAoY2xpY2spPVwic2VydmljZS5zaG93UGlja2VyKGl0ZW0pXCI+PC9pPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoY29uZmlnLm5hbWUgIT0gJ3BhZ2UtbGF5b3V0Jykge1xuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEteG1hcmsgaG92ZXI6YXgtdGV4dC1kYW5nZXItNTAwXCIgKGNsaWNrKT1cInNlcnZpY2UucmVtb3ZlV2lkZ2V0KGl0ZW0pXCI+PC9pPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQoaXRlbSkpIHtcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImF4LXNwYWNlLXktMSBheC1wcy0zIGF4LXRleHQtd2hpdGUgYXgtdGV4dC1zbVwiPlxuICAgICAgICAgICAgICBAZm9yIChjaGlsZCBvZiBpdGVtLmNoaWxkcmVuOyB0cmFjayBjaGlsZCkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGF4cC1zdGF0ZS1tZXNzYWdlXG4gICAgICAgIGljb249XCJmYS1saWdodCBmYS1zaGFwZXNcIlxuICAgICAgICBbdGl0bGVdPVwiJ0BsYXlvdXQtZGVzaWduZXI6Y29tcG9uZW50cy5vdXRsaW5lLmVtcHR5LXN0YXRlcy5uby13aWRnZXRzLnRpdGxlJ1wiXG4gICAgICAgIFtkZXNjcmlwdGlvbl09XCInQGxheW91dC1kZXNpZ25lcjpjb21wb25lbnRzLm91dGxpbmUuZW1wdHktc3RhdGVzLm5vLXdpZGdldHMuZGVzY3JpcHRpb24nXCJcbiAgICAgID5cbiAgICAgIDwvYXhwLXN0YXRlLW1lc3NhZ2U+XG4gICAgfVxuICA8L2F4LWNvbnRlbnQ+XG48L2F4cC1kZXNpZ25lci1kcmF3ZXItY29udGVudD5cbiJdfQ==","import { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';\nimport { AXPDesignerService } from '../../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/button\";\nexport class AXPDesignerPagesComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerPagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPDesignerPagesComponent, isStandalone: true, selector: \"axp-designer-pages\", ngImport: i0, template: \"<axp-designer-drawer-content class=\\\"ax-text-on-lightest\\\">\\n <ax-title>Pages</ax-title>\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"service.addNewPage()\\\" title=\\\"Add New Page\\\">\\n <ax-icon class=\\\"fa-light fa-file-circle-plus\\\"></ax-icon>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @let count = service.document().children?.length ?? 0; @if(count) {\\n <ul class=\\\"ax-text-sm ax-p-2 ax-rounded ax-md ax-space-y-1\\\">\\n @for( page of service.document().children;track $index) {\\n <li (click)=\\\"service.goToPage($index)\\\"\\n class=\\\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out hover:ax-bg-dark ax-py-1 ax-px-2 ax-rounded-sm ax-group ax-flex ax-justify-between ax-items-center\\\"\\n [class.ax-bg-darkest]=\\\"$index == service.currentPageIndex()\\\">\\n <div>\\n <i class=\\\"fa-light fa-file ax-me-1\\\"></i>\\n Page {{ $index + 1 }}\\n </div>\\n <div class=\\\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2\\\">\\n @if(count>1) {\\n <i class=\\\"fa-light fa-xmark hover:ax-text-danger-500\\\" (click)=\\\"service.removePage($index)\\\"></i>\\n }\\n <i class=\\\"fa-light fa-clone hover:ax-text-primary-500\\\" (click)=\\\"service.clonePage($index)\\\"></i>\\n </div>\\n </li>\\n }\\n </ul>\\n } @else {\\n <div class=\\\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\\\">No pages found in the document</div>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\", dependencies: [{ kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXPLayoutDesignerDrawerContentComponent, selector: \"axp-designer-drawer-content\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerPagesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-pages', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n AXPWidgetCoreModule,\n AXDecoratorModule,\n AXButtonModule,\n AXPLayoutDesignerDrawerContentComponent\n ], template: \"<axp-designer-drawer-content class=\\\"ax-text-on-lightest\\\">\\n <ax-title>Pages</ax-title>\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"service.addNewPage()\\\" title=\\\"Add New Page\\\">\\n <ax-icon class=\\\"fa-light fa-file-circle-plus\\\"></ax-icon>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @let count = service.document().children?.length ?? 0; @if(count) {\\n <ul class=\\\"ax-text-sm ax-p-2 ax-rounded ax-md ax-space-y-1\\\">\\n @for( page of service.document().children;track $index) {\\n <li (click)=\\\"service.goToPage($index)\\\"\\n class=\\\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out hover:ax-bg-dark ax-py-1 ax-px-2 ax-rounded-sm ax-group ax-flex ax-justify-between ax-items-center\\\"\\n [class.ax-bg-darkest]=\\\"$index == service.currentPageIndex()\\\">\\n <div>\\n <i class=\\\"fa-light fa-file ax-me-1\\\"></i>\\n Page {{ $index + 1 }}\\n </div>\\n <div class=\\\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2\\\">\\n @if(count>1) {\\n <i class=\\\"fa-light fa-xmark hover:ax-text-danger-500\\\" (click)=\\\"service.removePage($index)\\\"></i>\\n }\\n <i class=\\\"fa-light fa-clone hover:ax-text-primary-500\\\" (click)=\\\"service.clonePage($index)\\\"></i>\\n </div>\\n </li>\\n }\\n </ul>\\n } @else {\\n <div class=\\\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\\\">No pages found in the document</div>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvcGFnZXMvcGFnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvcGFnZXMvcGFnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBZXRFLE1BQU0sT0FBTyx5QkFBeUI7SUFidEM7UUFlYyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FFbEQ7K0dBSlkseUJBQXlCO21HQUF6Qix5QkFBeUIsOEVDckJ0QyxraERBaUNBLDJDRG5CSSxtQkFBbUIsOEJBQ25CLGlCQUFpQixzVkFDakIsY0FBYyw4WEFDZCx1Q0FBdUM7OzRGQUk5Qix5QkFBeUI7a0JBYnJDLFNBQVM7K0JBQ0ksb0JBQW9CLGlCQUVmLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1QsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsdUNBQXVDO3FCQUMxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYUExheW91dERlc2lnbmVyRHJhd2VyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kcmF3ZXItY29udGVudC9kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1wYWdlcycsXG4gICAgdGVtcGxhdGVVcmw6ICdwYWdlcy5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgQVhQV2lkZ2V0Q29yZU1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFBMYXlvdXREZXNpZ25lckRyYXdlckNvbnRlbnRDb21wb25lbnRcbl1cbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lclBhZ2VzQ29tcG9uZW50IHtcblxuICAgIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbn0iLCI8YXhwLWRlc2lnbmVyLWRyYXdlci1jb250ZW50IGNsYXNzPVwiYXgtdGV4dC1vbi1saWdodGVzdFwiPlxuICA8YXgtdGl0bGU+UGFnZXM8L2F4LXRpdGxlPlxuICA8YXgtY29udGVudCBoZWFkZXI+XG4gICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwic2VydmljZS5hZGROZXdQYWdlKClcIiB0aXRsZT1cIkFkZCBOZXcgUGFnZVwiPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1saWdodCBmYS1maWxlLWNpcmNsZS1wbHVzXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICA8L2F4LWNvbnRlbnQ+XG5cbiAgPGF4LWNvbnRlbnQgYm9keT5cbiAgICBAbGV0IGNvdW50ID0gc2VydmljZS5kb2N1bWVudCgpLmNoaWxkcmVuPy5sZW5ndGggPz8gMDsgQGlmKGNvdW50KSB7XG4gICAgPHVsIGNsYXNzPVwiYXgtdGV4dC1zbSBheC1wLTIgYXgtcm91bmRlZCBheC1tZCBheC1zcGFjZS15LTFcIj5cbiAgICAgIEBmb3IoIHBhZ2Ugb2Ygc2VydmljZS5kb2N1bWVudCgpLmNoaWxkcmVuO3RyYWNrICRpbmRleCkge1xuICAgICAgPGxpIChjbGljayk9XCJzZXJ2aWNlLmdvVG9QYWdlKCRpbmRleClcIlxuICAgICAgICBjbGFzcz1cImF4LWN1cnNvci1wb2ludGVyIGF4LXRyYW5zaXRpb24gYXgtZHVyYXRpb24tMTUwIGF4LWVhc2UtaW4tb3V0IGhvdmVyOmF4LWJnLWRhcmsgYXgtcHktMSBheC1weC0yIGF4LXJvdW5kZWQtc20gYXgtZ3JvdXAgYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaXRlbXMtY2VudGVyXCJcbiAgICAgICAgW2NsYXNzLmF4LWJnLWRhcmtlc3RdPVwiJGluZGV4ID09IHNlcnZpY2UuY3VycmVudFBhZ2VJbmRleCgpXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1maWxlIGF4LW1lLTFcIj48L2k+XG4gICAgICAgICAgUGFnZSB7eyAkaW5kZXggKyAxIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtaW52aXNpYmxlIGdyb3VwLWhvdmVyOmF4LXZpc2libGUgYXgtZmxleCBheC1nYXAtMlwiPlxuICAgICAgICAgIEBpZihjb3VudD4xKSB7XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS14bWFyayBob3ZlcjpheC10ZXh0LWRhbmdlci01MDBcIiAoY2xpY2spPVwic2VydmljZS5yZW1vdmVQYWdlKCRpbmRleClcIj48L2k+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtY2xvbmUgaG92ZXI6YXgtdGV4dC1wcmltYXJ5LTUwMFwiIChjbGljayk9XCJzZXJ2aWNlLmNsb25lUGFnZSgkaW5kZXgpXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC91bD5cbiAgICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWNlbnRlciBheC1pdGVtcy1jZW50ZXIgYXgtdGV4dC1ncmF5LTMwMCBheC1wLTRcIj5ObyBwYWdlcyBmb3VuZCBpbiB0aGUgZG9jdW1lbnQ8L2Rpdj5cbiAgICB9XG4gIDwvYXgtY29udGVudD5cbjwvYXhwLWRlc2lnbmVyLWRyYXdlci1jb250ZW50PlxuIl19","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { Component, HostListener, inject } from '@angular/core';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/menu\";\nexport class AXPDesignerHeaderMenuComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n }\n handleKeyboardEvent(event) {\n if (event.code == 'Delete' && this.service.canDelete()) {\n event.preventDefault();\n this.service.removeWidget();\n }\n if (event.code == 'Insert' && this.service.canInsert()) {\n event.preventDefault();\n this.service.showPicker();\n }\n if (event.shiftKey && event.target == document.body) {\n switch (event.code) {\n case 'KeyN':\n event.preventDefault();\n this.service.new();\n break;\n }\n }\n if (event.ctrlKey) {\n switch (event.code) {\n case 'KeyS':\n event.preventDefault();\n if (event.shiftKey) {\n this.service.saveAs();\n }\n else {\n this.service.save();\n }\n break;\n case 'KeyR':\n event.preventDefault();\n if (event.shiftKey) {\n this.service.openPreviewWindow();\n }\n else {\n this.service.openPreviewDialog();\n }\n break;\n }\n }\n //\n if (event.ctrlKey && event.target == document.body) {\n switch (event.code) {\n case 'KeyZ':\n if (this.service.canUndo()) {\n event.preventDefault();\n this.service.undo();\n }\n break;\n case 'KeyY':\n if (this.service.canRedo()) {\n event.preventDefault();\n this.service.redo();\n }\n break;\n case 'KeyC':\n if (this.service.canCutCopy()) {\n event.preventDefault();\n this.service.copy();\n }\n break;\n case 'KeyD':\n if (this.service.canCutCopy()) {\n event.preventDefault();\n this.service.clone();\n }\n break;\n case 'KeyX':\n if (this.service.canCutCopy()) {\n // ;\n event.preventDefault();\n this.service.cut();\n }\n break;\n case 'KeyV':\n if (this.service.canPaste()) {\n event.preventDefault();\n this.service.paste();\n }\n break;\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerHeaderMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPDesignerHeaderMenuComponent, isStandalone: true, selector: \"axp-designer-header-menu\", host: { listeners: { \"document:keydown\": \"handleKeyboardEvent($event)\" } }, ngImport: i0, template: \"<ax-menu [openOn]=\\\"'hover'\\\" [hasArrow]=\\\"false\\\">\\n <ax-menu-item>\\n <ax-text>File</ax-text>\\n <ax-menu-item (onClick)=\\\"service.new()\\\">\\n <ax-text>New</ax-text>\\n <ax-suffix>\\n <ax-text> Shift+N </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n @if(service.canSave())\\n {\\n <ng-container>\\n <ax-menu-item (onClick)=\\\"service.save()\\\">\\n <ax-text>Save</ax-text>\\n <ax-suffix>\\n <ax-text> Ctrl+S </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item (onClick)=\\\"service.saveAs()\\\">\\n <ax-text>Save As...</ax-text>\\n <ax-suffix>\\n <ax-text> Ctrl+Shift+S </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n </ng-container>\\n }\\n <ax-menu-item>\\n <ax-text>Export</ax-text>\\n <ax-menu-item (onClick)=\\\"service.downloadJson()\\\">\\n <ax-text>Download JSON</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Import</ax-text>\\n <ax-menu-item (onClick)=\\\"service.importJSon()\\\">\\n <ax-text>Import JSON</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Edit</ax-text>\\n <ax-menu-item [disabled]=\\\"!service.canUndo()\\\" (onClick)=\\\"service.undo()\\\">\\n <ax-text>Undo</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-rotate-left\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+Z </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canRedo()\\\" (onClick)=\\\"service.redo()\\\">\\n <ax-text>Redo</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-rotate-right\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+Y </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.clone()\\\">\\n <ax-text>Clone</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-clone\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+D </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.cut()\\\">\\n <ax-text>Cut</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-cut\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+X </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.copy()\\\">\\n <ax-text>Copy</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-copy\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+C </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canPaste()\\\" (onClick)=\\\"service.paste()\\\">\\n <ax-text>Paste</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-paste\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+V</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n <ax-menu-item [disabled]=\\\"!service.canDelete()\\\" (onClick)=\\\"service.removeWidget()\\\">\\n <ax-text>Delete</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-trash\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Del</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Run</ax-text>\\n <ax-menu-item (onClick)=\\\"service.openPreviewDialog()\\\">\\n <ax-text>Preview</ax-text>\\n <ax-prefix>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+R</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item (onClick)=\\\"service.openPreviewWindow()\\\">\\n <ax-text>Preview in seperate window</ax-text>\\n <ax-prefix> </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+Shift+R</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Help</ax-text>\\n <ax-menu-item>\\n <ax-text>About</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n</ax-menu>\", dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXMenuModule }, { kind: \"component\", type: i2.AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: i2.AXMenuComponent, selector: \"ax-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"items\", \"hasArrow\"], outputs: [\"onItemClick\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerHeaderMenuComponent, decorators: [{\n type: Component,\n args: [{ imports: [AXDecoratorModule, AXMenuModule], selector: 'axp-designer-header-menu', template: \"<ax-menu [openOn]=\\\"'hover'\\\" [hasArrow]=\\\"false\\\">\\n <ax-menu-item>\\n <ax-text>File</ax-text>\\n <ax-menu-item (onClick)=\\\"service.new()\\\">\\n <ax-text>New</ax-text>\\n <ax-suffix>\\n <ax-text> Shift+N </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n @if(service.canSave())\\n {\\n <ng-container>\\n <ax-menu-item (onClick)=\\\"service.save()\\\">\\n <ax-text>Save</ax-text>\\n <ax-suffix>\\n <ax-text> Ctrl+S </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item (onClick)=\\\"service.saveAs()\\\">\\n <ax-text>Save As...</ax-text>\\n <ax-suffix>\\n <ax-text> Ctrl+Shift+S </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n </ng-container>\\n }\\n <ax-menu-item>\\n <ax-text>Export</ax-text>\\n <ax-menu-item (onClick)=\\\"service.downloadJson()\\\">\\n <ax-text>Download JSON</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Import</ax-text>\\n <ax-menu-item (onClick)=\\\"service.importJSon()\\\">\\n <ax-text>Import JSON</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Edit</ax-text>\\n <ax-menu-item [disabled]=\\\"!service.canUndo()\\\" (onClick)=\\\"service.undo()\\\">\\n <ax-text>Undo</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-rotate-left\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+Z </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canRedo()\\\" (onClick)=\\\"service.redo()\\\">\\n <ax-text>Redo</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-rotate-right\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+Y </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.clone()\\\">\\n <ax-text>Clone</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-clone\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+D </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.cut()\\\">\\n <ax-text>Cut</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-cut\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+X </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.copy()\\\">\\n <ax-text>Copy</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-copy\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+C </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canPaste()\\\" (onClick)=\\\"service.paste()\\\">\\n <ax-text>Paste</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-paste\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+V</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n <ax-menu-item [disabled]=\\\"!service.canDelete()\\\" (onClick)=\\\"service.removeWidget()\\\">\\n <ax-text>Delete</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-trash\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Del</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Run</ax-text>\\n <ax-menu-item (onClick)=\\\"service.openPreviewDialog()\\\">\\n <ax-text>Preview</ax-text>\\n <ax-prefix>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+R</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item (onClick)=\\\"service.openPreviewWindow()\\\">\\n <ax-text>Preview in seperate window</ax-text>\\n <ax-prefix> </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+Shift+R</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Help</ax-text>\\n <ax-menu-item>\\n <ax-text>About</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n</ax-menu>\" }]\n }], propDecorators: { handleKeyboardEvent: [{\n type: HostListener,\n args: ['document:keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBT25FLE1BQU0sT0FBTyw4QkFBOEI7SUFMM0M7UUFNWSxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FtRmhEO0lBaEZXLG1CQUFtQixDQUFDLEtBQW9CO1FBQ2hELElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN2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QU07b0JBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7d0JBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQzt3QkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDdkIsQ0FBQztvQkFDRCxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQW5GVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixnS0NYM0MsMjBJQW1KVSwyQ0Q1SUUsaUJBQWlCLHNWQUFFLFlBQVk7OzRGQUk5Qiw4QkFBOEI7a0JBTDFDLFNBQVM7OEJBQ0MsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsWUFDaEMsMEJBQTBCOztzQkFNbkMsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhNZW51TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGVzaWduZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbQVhEZWNvcmF0b3JNb2R1bGUsIEFYTWVudU1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLWhlYWRlci1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICdoZWFkZXItbWVudS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUERlc2lnbmVySGVhZGVyTWVudUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmNvZGUgPT0gJ0RlbGV0ZScgJiYgdGhpcy5zZXJ2aWNlLmNhbkRlbGV0ZSgpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zZXJ2aWNlLnJlbW92ZVdpZGdldCgpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuY29kZSA9PSAnSW5zZXJ0JyAmJiB0aGlzLnNlcnZpY2UuY2FuSW5zZXJ0KCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2hvd1BpY2tlcigpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQudGFyZ2V0ID09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICBjYXNlICdLZXlOJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMuc2VydmljZS5uZXcoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICBjYXNlICdLZXlTJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNhdmVBcygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2F2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnS2V5Uic6XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5vcGVuUHJldmlld1dpbmRvdygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQudGFyZ2V0ID09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICBjYXNlICdLZXlaJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhblVuZG8oKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS51bmRvKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdLZXlZJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhblJlZG8oKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5yZWRvKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdLZXlDJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhbkN1dENvcHkoKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5jb3B5KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdLZXlEJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhbkN1dENvcHkoKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5jbG9uZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnS2V5WCc6XG4gICAgICAgICAgaWYgKHRoaXMuc2VydmljZS5jYW5DdXRDb3B5KCkpIHtcbiAgICAgICAgICAgIC8vIDtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuY3V0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdLZXlWJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhblBhc3RlKCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UucGFzdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8YXgtbWVudSBbb3Blbk9uXT1cIidob3ZlcidcIiBbaGFzQXJyb3ddPVwiZmFsc2VcIj5cbiAgPGF4LW1lbnUtaXRlbT5cbiAgICA8YXgtdGV4dD5GaWxlPC9heC10ZXh0PlxuICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5uZXcoKVwiPlxuICAgICAgPGF4LXRleHQ+TmV3PC9heC10ZXh0PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+IFNoaWZ0K04gPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgIEBpZihzZXJ2aWNlLmNhblNhdmUoKSlcbiAgICB7XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5zYXZlKClcIj5cbiAgICAgICAgPGF4LXRleHQ+U2F2ZTwvYXgtdGV4dD5cbiAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICA8YXgtdGV4dD4gQ3RybCtTIDwvYXgtdGV4dD5cbiAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5zYXZlQXMoKVwiPlxuICAgICAgICA8YXgtdGV4dD5TYXZlIEFzLi4uPC9heC10ZXh0PlxuICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgIDxheC10ZXh0PiBDdHJsK1NoaWZ0K1MgPC9heC10ZXh0PlxuICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICA8YXgtbWVudS1pdGVtPlxuICAgICAgPGF4LXRleHQ+RXhwb3J0PC9heC10ZXh0PlxuICAgICAgPGF4LW1lbnUtaXRlbSAob25DbGljayk9XCJzZXJ2aWNlLmRvd25sb2FkSnNvbigpXCI+XG4gICAgICAgIDxheC10ZXh0PkRvd25sb2FkIEpTT048L2F4LXRleHQ+XG4gICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8YXgtbWVudS1pdGVtPlxuICAgICAgPGF4LXRleHQ+SW1wb3J0PC9heC10ZXh0PlxuICAgICAgPGF4LW1lbnUtaXRlbSAob25DbGljayk9XCJzZXJ2aWNlLmltcG9ydEpTb24oKVwiPlxuICAgICAgICA8YXgtdGV4dD5JbXBvcnQgSlNPTjwvYXgtdGV4dD5cbiAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICA8L2F4LW1lbnUtaXRlbT5cbiAgPGF4LW1lbnUtaXRlbT5cbiAgICA8YXgtdGV4dD5FZGl0PC9heC10ZXh0PlxuICAgIDxheC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhblVuZG8oKVwiIChvbkNsaWNrKT1cInNlcnZpY2UudW5kbygpXCI+XG4gICAgICA8YXgtdGV4dD5VbmRvPC9heC10ZXh0PlxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGUtbGVmdFwiPjwvaT5cbiAgICAgICAgPC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtdGV4dD4gQ3RybCtaIDwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhblJlZG8oKVwiIChvbkNsaWNrKT1cInNlcnZpY2UucmVkbygpXCI+XG4gICAgICA8YXgtdGV4dD5SZWRvPC9heC10ZXh0PlxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGUtcmlnaHRcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+IEN0cmwrWSA8L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gICAgPGF4LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuQ3V0Q29weSgpXCIgKG9uQ2xpY2spPVwic2VydmljZS5jbG9uZSgpXCI+XG4gICAgICA8YXgtdGV4dD5DbG9uZTwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2xvbmVcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+IEN0cmwrRCA8L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8YXgtbWVudS1pdGVtIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5DdXRDb3B5KClcIiAob25DbGljayk9XCJzZXJ2aWNlLmN1dCgpXCI+XG4gICAgICA8YXgtdGV4dD5DdXQ8L2F4LXRleHQ+XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICA8YXgtaWNvbj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWN1dFwiPjwvaT5cbiAgICAgICAgPC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtdGV4dD4gQ3RybCtYIDwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhbkN1dENvcHkoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UuY29weSgpXCI+XG4gICAgICA8YXgtdGV4dD5Db3B5PC9heC10ZXh0PlxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jb3B5XCI+PC9pPlxuICAgICAgICA8L2F4LWljb24+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0PiBDdHJsK0MgPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPGF4LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuUGFzdGUoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UucGFzdGUoKVwiPlxuICAgICAgPGF4LXRleHQ+UGFzdGU8L2F4LXRleHQ+XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICA8YXgtaWNvbj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXBhc3RlXCI+PC9pPlxuICAgICAgICA8L2F4LWljb24+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0PkN0cmwrVjwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cbiAgICA8YXgtbWVudS1pdGVtIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5EZWxldGUoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UucmVtb3ZlV2lkZ2V0KClcIj5cbiAgICAgIDxheC10ZXh0PkRlbGV0ZTwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtdHJhc2hcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+RGVsPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gIDwvYXgtbWVudS1pdGVtPlxuICA8YXgtbWVudS1pdGVtPlxuICAgIDxheC10ZXh0PlJ1bjwvYXgtdGV4dD5cbiAgICA8YXgtbWVudS1pdGVtIChvbkNsaWNrKT1cInNlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coKVwiPlxuICAgICAgPGF4LXRleHQ+UHJldmlldzwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0PkN0cmwrUjwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5vcGVuUHJldmlld1dpbmRvdygpXCI+XG4gICAgICA8YXgtdGV4dD5QcmV2aWV3IGluIHNlcGVyYXRlIHdpbmRvdzwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+IDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+Q3RybCtTaGlmdCtSPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gIDwvYXgtbWVudS1pdGVtPlxuICA8YXgtbWVudS1pdGVtPlxuICAgIDxheC10ZXh0PkhlbHA8L2F4LXRleHQ+XG4gICAgPGF4LW1lbnUtaXRlbT5cbiAgICAgIDxheC10ZXh0PkFib3V0PC9heC10ZXh0PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICA8L2F4LW1lbnUtaXRlbT5cbjwvYXgtbWVudT4iXX0=","import { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { Component, model } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button-group\";\nimport * as i2 from \"@acorex/components/decorators\";\nexport class AXPDesignerViewSizeToolbarComponent {\n constructor() {\n this.size = model('xl', ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerViewSizeToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.10\", type: AXPDesignerViewSizeToolbarComponent, isStandalone: true, selector: \"axp-designer-view-sizes\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { size: \"sizeChange\" }, ngImport: i0, template: `\n <ax-button-group [color]=\"'primary'\" [selection]=\"'multiple'\">\n <ax-button-group-item [selected]=\"size() == 'xl'\" [data]=\"'xl'\" (onClick)=\"size.set('xl')\">\n <ax-icon class=\"fa-light fa-desktop fa-fw \"></ax-icon>\n </ax-button-group-item>\n <ax-button-group-item [selected]=\"size() == 'lg'\" [data]=\"'lg'\" (onClick)=\"size.set('lg')\">\n <ax-icon class=\"fa-light fa-tablet fa-fw \"></ax-icon>\n </ax-button-group-item>\n <ax-button-group-item [selected]=\"size() == 'sm'\" [data]=\"'sm'\" (onClick)=\"size.set('sm')\">\n <ax-icon class=\"fa-light fa-mobile fa-fw \"></ax-icon>\n </ax-button-group-item>\n </ax-button-group>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"component\", type: i1.AXButtonGroupComponent, selector: \"ax-button-group\", inputs: [\"disabled\", \"color\", \"look\", \"fitParent\", \"selection\"], outputs: [\"onBlur\", \"onFocus\", \"lookChange\", \"colorChange\", \"disabledChange\", \"onClick\", \"selectionChange\", \"selectedButtonChange\"] }, { kind: \"component\", type: i1.AXButtonGroupItemComponent, selector: \"ax-button-group-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXMenuModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDesignerViewSizeToolbarComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-designer-view-sizes',\n imports: [AXButtonGroupModule, AXDecoratorModule, AXMenuModule],\n template: `\n <ax-button-group [color]=\"'primary'\" [selection]=\"'multiple'\">\n <ax-button-group-item [selected]=\"size() == 'xl'\" [data]=\"'xl'\" (onClick)=\"size.set('xl')\">\n <ax-icon class=\"fa-light fa-desktop fa-fw \"></ax-icon>\n </ax-button-group-item>\n <ax-button-group-item [selected]=\"size() == 'lg'\" [data]=\"'lg'\" (onClick)=\"size.set('lg')\">\n <ax-icon class=\"fa-light fa-tablet fa-fw \"></ax-icon>\n </ax-button-group-item>\n <ax-button-group-item [selected]=\"size() == 'sm'\" [data]=\"'sm'\" (onClick)=\"size.set('sm')\">\n <ax-icon class=\"fa-light fa-mobile fa-fw \"></ax-icon>\n </ax-button-group-item>\n </ax-button-group>\n `,\n }]\n }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: \"size\", required: false }] }, { type: i0.Output, args: [\"sizeChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1zaXplLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL3NpemUtbW9kZS92aWV3LXNpemUtdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBbUJqRCxNQUFNLE9BQU8sbUNBQW1DO0lBakJoRDtRQWtCUyxTQUFJLEdBQUcsS0FBSyxDQUFTLElBQUksZ0RBQUMsQ0FBQztLQUNuQzsrR0FGWSxtQ0FBbUM7bUdBQW5DLG1DQUFtQyxxUEFkcEM7Ozs7Ozs7Ozs7OztHQVlULDJEQWJTLG1CQUFtQixraUJBQUUsaUJBQWlCLCtIQUFFLFlBQVk7OzRGQWVuRCxtQ0FBbUM7a0JBakIvQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQztvQkFDL0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7R0FZVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uR3JvdXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhNZW51TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIG1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci12aWV3LXNpemVzJyxcbiAgaW1wb3J0czogW0FYQnV0dG9uR3JvdXBNb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlLCBBWE1lbnVNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxheC1idXR0b24tZ3JvdXAgW2NvbG9yXT1cIidwcmltYXJ5J1wiIFtzZWxlY3Rpb25dPVwiJ211bHRpcGxlJ1wiPlxuICAgICAgPGF4LWJ1dHRvbi1ncm91cC1pdGVtICBbc2VsZWN0ZWRdPVwic2l6ZSgpID09ICd4bCdcIiBbZGF0YV09XCIneGwnXCIgKG9uQ2xpY2spPVwic2l6ZS5zZXQoJ3hsJylcIj5cbiAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1saWdodCBmYS1kZXNrdG9wIGZhLWZ3IFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtYnV0dG9uLWdyb3VwLWl0ZW0+XG4gICAgICA8YXgtYnV0dG9uLWdyb3VwLWl0ZW0gW3NlbGVjdGVkXT1cInNpemUoKSA9PSAnbGcnXCIgW2RhdGFdPVwiJ2xnJ1wiIChvbkNsaWNrKT1cInNpemUuc2V0KCdsZycpXCI+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGFibGV0IGZhLWZ3IFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtYnV0dG9uLWdyb3VwLWl0ZW0+XG4gICAgICA8YXgtYnV0dG9uLWdyb3VwLWl0ZW0gW3NlbGVjdGVkXT1cInNpemUoKSA9PSAnc20nXCIgW2RhdGFdPVwiJ3NtJ1wiIChvbkNsaWNrKT1cInNpemUuc2V0KCdzbScpXCI+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtbGlnaHQgZmEtbW9iaWxlIGZhLWZ3IFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtYnV0dG9uLWdyb3VwLWl0ZW0+XG4gICAgPC9heC1idXR0b24tZ3JvdXA+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEFYUERlc2lnbmVyVmlld1NpemVUb29sYmFyQ29tcG9uZW50IHtcbiAgcHVibGljIHNpemUgPSBtb2RlbDxzdHJpbmc+KCd4bCcpO1xufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, HostBinding, inject, input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPDesignerBoardComponent } from './components/board/board.component';\nimport { AXPDesignerBreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component';\nimport { AXPDesignerDataSourcesComponent } from './components/drawers/data-sources/data-sources.component';\nimport { AXPDesignerHistoryComponent } from './components/drawers/history/history.component';\nimport { AXPDesignerOutlineComponent } from './components/drawers/outline/outline.component';\nimport { AXPDesignerPagesComponent } from './components/drawers/pages/pages.component';\nimport { AXPDesignerHeaderMenuComponent } from './components/header-menu/header-menu.component';\nimport { AXPDesignerViewSizeToolbarComponent } from './components/size-mode/view-size-toolbar.component';\nimport { AXPDesignerService } from './shared/designer.service';\nimport { AXPTemplateLoadingStrategy } from './shared/designer.types';\nimport { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/drawer\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/dropdown-button\";\nexport class AXPLayoutDesignerComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n this.id = input(...(ngDevMode ? [undefined, { debugName: \"id\" }] : []));\n this.strategy = input(...(ngDevMode ? [undefined, { debugName: \"strategy\" }] : []));\n this.nodeConfig = computed(() => this.service.selectedNode() ? get(this.service.selectedNode(), '__meta__.config') : null, ...(ngDevMode ? [{ debugName: \"nodeConfig\" }] : []));\n this.service.onUpdate.subscribe((e) => {\n this.propertyViewer.update(e.values);\n });\n }\n ngOnInit() {\n if (this.id()) {\n this.service.loadById(this.id(), { strategy: (this.strategy() ?? AXPTemplateLoadingStrategy.Connector) });\n }\n }\n get __styles() {\n const styles = {};\n styles[`direction`] = 'ltr';\n return styles;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.10\", type: AXPLayoutDesignerComponent, isStandalone: true, selector: \"axp-layout-designer\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, strategy: { classPropertyName: \"strategy\", publicName: \"strategy\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"style\": \"this.__styles\" } }, providers: [AXPDesignerService], viewQueries: [{ propertyName: \"propertyViewer\", first: true, predicate: AXPWidgetPropertyViewerComponent, descendants: true, static: true }], ngImport: i0, template: \"<ax-drawer-container class=\\\"ax-h-full ax-w-full ax-flex ax-relative ax-overflow-hidden\\\">\\n <ax-content class=\\\"ax-contents\\\">\\n <!-- Toolbar Side -->\\n <div class=\\\"ax-min-w-10 ax-bg-lightest ax-border-e ax-sm ax-flex ax-flex-col ax-items-center ax-dark\\\">\\n <div class=\\\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\\\">\\n <img src=\\\"assets/images/logos/icon-light.svg\\\" class=\\\"ax-w-6\\\" />\\n </div>\\n <div class=\\\"ax-py-1\\\"></div>\\n <div class=\\\"ax-flex ax-flex-col ax-gap-2\\\">\\n <!-- <ax-button look=\\\"blank\\\">\\n <ax-icon class=\\\"fa-solid fa-puzzle ax-text-sm\\\"> </ax-icon>\\n </ax-button> -->\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"pages.toggle()\\\" title=\\\"Pages\\\">\\n <ax-icon class=\\\"fa-solid fa-page ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"datasources.toggle()\\\" title=\\\"Data Sources\\\">\\n <ax-icon class=\\\"fa-solid fa-database ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"outline.toggle()\\\" title=\\\"Outline\\\">\\n <ax-icon class=\\\"fa-solid fa-list-tree ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"history.toggle()\\\" title=\\\"History\\\">\\n <ax-icon class=\\\"fa-solid fa-clock-rotate-left ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <!-- <ax-button look=\\\"blank\\\" title=\\\"Timeline\\\">\\n <ax-icon class=\\\"fa-solid fa-diagram-sankey ax-text-sm\\\"> </ax-icon>\\n </ax-button> -->\\n </div>\\n </div>\\n <!-- Main Side -->\\n <div class=\\\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\\\">\\n <!-- Header Toolbar -->\\n <div class=\\\"ax-h-10 ax-bg-lightest ax-border-b ax-flex ax-justify-between ax-px-2 ax-dark\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-items-center ax-text-white ax-justify-start\\\">\\n <axp-designer-header-menu></axp-designer-header-menu>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\">\\n <axp-designer-view-sizes [(size)]=\\\"service.size\\\"></axp-designer-view-sizes>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-end\\\">\\n <ax-dropdown-button mode=\\\"split\\\" look=\\\"solid\\\" text=\\\"Preview\\\" class=\\\"ax-sm\\\"\\n (onClick)=\\\"service.openPreviewDialog()\\\">\\n <ax-button-item-list>\\n <ax-button-item text=\\\"Open in new window\\\" (onClick)=\\\"service.openPreviewWindow()\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-regular fa-window-restore\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n </div>\\n </div>\\n <!-- Board -->\\n <ax-drawer-container class=\\\"ax-w-full ax-flex-1\\\">\\n <!-- Pages -->\\n <ax-drawer #pages location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-pages></axp-designer-pages>\\n </ax-content>\\n </ax-drawer>\\n <!-- Datasources -->\\n <ax-drawer #datasources location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-data-sources></axp-designer-data-sources>\\n </ax-content>\\n </ax-drawer>\\n <!-- Outline Pnael -->\\n <ax-drawer #outline location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-outline></axp-designer-outline>\\n </ax-content>\\n </ax-drawer>\\n <!-- History Pnael -->\\n <ax-drawer #history location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-history></axp-designer-history>\\n </ax-content>\\n </ax-drawer>\\n <!-- Content of board -->\\n <ax-content class=\\\"ax-light ax-bg-lighter ax-flex ax-justify-center ax-p-10\\\">\\n <axp-designer-board class=\\\"ax-rounded-lg ax-bg-lightest ax-shadow-md\\\"> </axp-designer-board>\\n </ax-content>\\n </ax-drawer-container>\\n <!-- Footer -->\\n <div class=\\\"ax-h-10 ax-bg-lightest ax-border-t ax-flex ax-items-center ax-dark\\\">\\n <axp-designer-breadcrumbs class=\\\"ax-border-default ax-p-2 ax-font-normal\\\">\\n </axp-designer-breadcrumbs>\\n </div>\\n </div>\\n </ax-content>\\n <!-- Property Side -->\\n <ax-drawer class=\\\"ax-dark axp-designer-prop-side\\\" location=\\\"end\\\" mode=\\\"push\\\" [collapsed]=\\\"false\\\" #pd>\\n <ax-content class=\\\"ax-flex ax-flex-col ax-h-full ax-overflow-hidden \\\">\\n <div class=\\\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-px-4 ax-border-b ax-h-10\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-gap-2 ax-items-center\\\">\\n <i [ngClass]=\\\"nodeConfig()?.icon\\\"></i>\\n <span class=\\\"ax-font-semibold\\\">{{ nodeConfig()?.title }}</span>\\n </div>\\n </div>\\n <axp-widget-property-viewer [mode]=\\\"'advanced'\\\" [widget]=\\\"service.selectedNode()!\\\"\\n (onChanged)=\\\"service.update({ values: $event.values, mode: $event.mode })\\\" class=\\\"ax-flex-1 ax-overflow-auto\\\">\\n </axp-widget-property-viewer>\\n </ax-content>\\n </ax-drawer>\\n</ax-drawer-container>\", styles: [\"axp-layout-designer .axp-designer-board{background-color:#fff;background-image:linear-gradient(45deg,#f0f0f0 25%,transparent 25%,transparent 75%,#f0f0f0 75%,#f0f0f0),linear-gradient(45deg,#f0f0f0 25%,#fff 25%,#fff 75%,#f0f0f0 75%,#f0f0f0);background-size:20px 20px;background-position:0 0,10px 10px;display:block;height:100%;width:100%;overflow:auto;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-surface),var(--tw-bg-opacity, 1));padding:.75rem}axp-layout-designer .axp-designer-board ax-drawer{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}axp-layout-designer .axp-designer-board.axp-state-design .ax-widget-outline{outline-style:dashed;outline-width:1px;outline-offset:2px;outline-color:#d1d5db}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host{cursor:pointer;position:relative}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:2px;outline-offset:1px;outline-color:rgba(var(--ax-sys-color-lightest-surface),1);outline-color:#60a5fa}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected.ax-widget-container{outline-offset:2px}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:2px;outline-offset:2px;outline-color:#d946ef}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.axp-state-selected{outline-color:#60a5fa}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.ax-widget-container{outline-offset:4px}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:2000;height:100%;width:100%}axp-layout-designer .axp-designer-board .axp-empty-space{display:flex;flex:1 1 0%;cursor:default;align-items:center;justify-content:center;background-color:rgba(var(--ax-sys-color-primary-300),10%);background-image:linear-gradient(135deg,rgba(var(--ax-sys-color-primary-300),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-sys-color-primary-300),50%) 0,rgba(var(--ax-sys-color-primary-300),50%) 60%,transparent 0,transparent);background-size:7.5px 7.5px;height:100%}axp-layout-designer .axp-designer-board .axp-page-widget-header,axp-layout-designer .axp-designer-board .axp-page-widget-footer{filter:grayscale(100%);opacity:.5}axp-layout-designer .axp-designer-board .axp-page-widget-header:hover,axp-layout-designer .axp-designer-board .axp-page-widget-footer:hover{filter:grayscale(0);opacity:1}axp-layout-designer .axp-designer-board .axp-page-widget-header{margin-bottom:.5rem}axp-layout-designer .axp-designer-board .axp-page-widget-footer{margin-top:.5rem}axp-layout-designer .axp-designer-prop-side{width:20rem;border-inline-start-width:1px;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}axp-designer-drawer-content ul.axp-designer-drawer-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}axp-designer-drawer-content ul.axp-designer-drawer-list{padding:.25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}axp-designer-drawer-content ul.axp-designer-drawer-list li{cursor:pointer;border-radius:.125rem;padding:.25rem .5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.15s;animation-timing-function:cubic-bezier(.4,0,.2,1)}axp-designer-drawer-content ul.axp-designer-drawer-list li:hover:not(.axp-designer-drawer-list){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}axp-designer-drawer-content ul.axp-designer-drawer-list li.ax-state-selected{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}axp-designer-drawer-content .axp-designer-drawer-empty{display:flex;align-items:center;justify-content:center;padding:1rem;--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: AXPDesignerBoardComponent, selector: \"axp-designer-board\" }, { kind: \"component\", type: AXPWidgetPropertyViewerComponent, selector: \"axp-widget-property-viewer\", inputs: [\"widget\", \"mode\"], outputs: [\"onChanged\"] }, { kind: \"component\", type: AXPDesignerBreadcrumbsComponent, selector: \"axp-designer-breadcrumbs\" }, { kind: \"component\", type: AXPDesignerOutlineComponent, selector: \"axp-designer-outline\" }, { kind: \"component\", type: AXPDesignerHeaderMenuComponent, selector: \"axp-designer-header-menu\" }, { kind: \"component\", type: AXPDesignerHistoryComponent, selector: \"axp-designer-history\" }, { kind: \"component\", type: AXPDesignerDataSourcesComponent, selector: \"axp-designer-data-sources\" }, { kind: \"component\", type: AXPDesignerPagesComponent, selector: \"axp-designer-pages\" }, { kind: \"component\", type: AXPDesignerViewSizeToolbarComponent, selector: \"axp-designer-view-sizes\", inputs: [\"size\"], outputs: [\"sizeChange\"] }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i2.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i2.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"component\", type: i3.AXDrawerComponent, selector: \"ax-drawer\", inputs: [\"location\", \"showBackdrop\", \"mode\", \"transition\", \"closeOnBackdropClick\", \"backdropClass\", \"collapsed\", \"singleOpenMode\"], outputs: [\"onBackdropClick\", \"collapsedStateChanged\"] }, { kind: \"component\", type: i3.AXDrawerContainerComponent, selector: \"ax-drawer-container\" }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXMenuModule }, { kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"component\", type: i5.AXDropdownButtonComponent, selector: \"ax-dropdown-button\", inputs: [\"disabled\", \"size\", \"color\", \"look\", \"text\", \"type\", \"mode\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"lookChange\", \"colorChange\", \"disabledChange\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-layout-designer', encapsulation: ViewEncapsulation.None, imports: [\n CommonModule,\n AXPWidgetCoreModule,\n AXPDesignerBoardComponent,\n AXPWidgetPropertyViewerComponent,\n AXPDesignerBreadcrumbsComponent,\n AXPDesignerOutlineComponent,\n AXPDesignerHeaderMenuComponent,\n AXPDesignerHistoryComponent,\n AXPDesignerDataSourcesComponent,\n AXPDesignerPagesComponent,\n AXPDesignerViewSizeToolbarComponent,\n AXTabsModule,\n AXButtonModule,\n AXDrawerModule,\n AXDecoratorModule,\n AXMenuModule,\n AXButtonGroupModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n ], providers: [AXPDesignerService], template: \"<ax-drawer-container class=\\\"ax-h-full ax-w-full ax-flex ax-relative ax-overflow-hidden\\\">\\n <ax-content class=\\\"ax-contents\\\">\\n <!-- Toolbar Side -->\\n <div class=\\\"ax-min-w-10 ax-bg-lightest ax-border-e ax-sm ax-flex ax-flex-col ax-items-center ax-dark\\\">\\n <div class=\\\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\\\">\\n <img src=\\\"assets/images/logos/icon-light.svg\\\" class=\\\"ax-w-6\\\" />\\n </div>\\n <div class=\\\"ax-py-1\\\"></div>\\n <div class=\\\"ax-flex ax-flex-col ax-gap-2\\\">\\n <!-- <ax-button look=\\\"blank\\\">\\n <ax-icon class=\\\"fa-solid fa-puzzle ax-text-sm\\\"> </ax-icon>\\n </ax-button> -->\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"pages.toggle()\\\" title=\\\"Pages\\\">\\n <ax-icon class=\\\"fa-solid fa-page ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"datasources.toggle()\\\" title=\\\"Data Sources\\\">\\n <ax-icon class=\\\"fa-solid fa-database ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"outline.toggle()\\\" title=\\\"Outline\\\">\\n <ax-icon class=\\\"fa-solid fa-list-tree ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"history.toggle()\\\" title=\\\"History\\\">\\n <ax-icon class=\\\"fa-solid fa-clock-rotate-left ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <!-- <ax-button look=\\\"blank\\\" title=\\\"Timeline\\\">\\n <ax-icon class=\\\"fa-solid fa-diagram-sankey ax-text-sm\\\"> </ax-icon>\\n </ax-button> -->\\n </div>\\n </div>\\n <!-- Main Side -->\\n <div class=\\\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\\\">\\n <!-- Header Toolbar -->\\n <div class=\\\"ax-h-10 ax-bg-lightest ax-border-b ax-flex ax-justify-between ax-px-2 ax-dark\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-items-center ax-text-white ax-justify-start\\\">\\n <axp-designer-header-menu></axp-designer-header-menu>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\">\\n <axp-designer-view-sizes [(size)]=\\\"service.size\\\"></axp-designer-view-sizes>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-end\\\">\\n <ax-dropdown-button mode=\\\"split\\\" look=\\\"solid\\\" text=\\\"Preview\\\" class=\\\"ax-sm\\\"\\n (onClick)=\\\"service.openPreviewDialog()\\\">\\n <ax-button-item-list>\\n <ax-button-item text=\\\"Open in new window\\\" (onClick)=\\\"service.openPreviewWindow()\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-regular fa-window-restore\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n </div>\\n </div>\\n <!-- Board -->\\n <ax-drawer-container class=\\\"ax-w-full ax-flex-1\\\">\\n <!-- Pages -->\\n <ax-drawer #pages location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-pages></axp-designer-pages>\\n </ax-content>\\n </ax-drawer>\\n <!-- Datasources -->\\n <ax-drawer #datasources location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-data-sources></axp-designer-data-sources>\\n </ax-content>\\n </ax-drawer>\\n <!-- Outline Pnael -->\\n <ax-drawer #outline location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-outline></axp-designer-outline>\\n </ax-content>\\n </ax-drawer>\\n <!-- History Pnael -->\\n <ax-drawer #history location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-history></axp-designer-history>\\n </ax-content>\\n </ax-drawer>\\n <!-- Content of board -->\\n <ax-content class=\\\"ax-light ax-bg-lighter ax-flex ax-justify-center ax-p-10\\\">\\n <axp-designer-board class=\\\"ax-rounded-lg ax-bg-lightest ax-shadow-md\\\"> </axp-designer-board>\\n </ax-content>\\n </ax-drawer-container>\\n <!-- Footer -->\\n <div class=\\\"ax-h-10 ax-bg-lightest ax-border-t ax-flex ax-items-center ax-dark\\\">\\n <axp-designer-breadcrumbs class=\\\"ax-border-default ax-p-2 ax-font-normal\\\">\\n </axp-designer-breadcrumbs>\\n </div>\\n </div>\\n </ax-content>\\n <!-- Property Side -->\\n <ax-drawer class=\\\"ax-dark axp-designer-prop-side\\\" location=\\\"end\\\" mode=\\\"push\\\" [collapsed]=\\\"false\\\" #pd>\\n <ax-content class=\\\"ax-flex ax-flex-col ax-h-full ax-overflow-hidden \\\">\\n <div class=\\\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-px-4 ax-border-b ax-h-10\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-gap-2 ax-items-center\\\">\\n <i [ngClass]=\\\"nodeConfig()?.icon\\\"></i>\\n <span class=\\\"ax-font-semibold\\\">{{ nodeConfig()?.title }}</span>\\n </div>\\n </div>\\n <axp-widget-property-viewer [mode]=\\\"'advanced'\\\" [widget]=\\\"service.selectedNode()!\\\"\\n (onChanged)=\\\"service.update({ values: $event.values, mode: $event.mode })\\\" class=\\\"ax-flex-1 ax-overflow-auto\\\">\\n </axp-widget-property-viewer>\\n </ax-content>\\n </ax-drawer>\\n</ax-drawer-container>\", styles: [\"axp-layout-designer .axp-designer-board{background-color:#fff;background-image:linear-gradient(45deg,#f0f0f0 25%,transparent 25%,transparent 75%,#f0f0f0 75%,#f0f0f0),linear-gradient(45deg,#f0f0f0 25%,#fff 25%,#fff 75%,#f0f0f0 75%,#f0f0f0);background-size:20px 20px;background-position:0 0,10px 10px;display:block;height:100%;width:100%;overflow:auto;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-surface),var(--tw-bg-opacity, 1));padding:.75rem}axp-layout-designer .axp-designer-board ax-drawer{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}axp-layout-designer .axp-designer-board.axp-state-design .ax-widget-outline{outline-style:dashed;outline-width:1px;outline-offset:2px;outline-color:#d1d5db}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host{cursor:pointer;position:relative}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:2px;outline-offset:1px;outline-color:rgba(var(--ax-sys-color-lightest-surface),1);outline-color:#60a5fa}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected.ax-widget-container{outline-offset:2px}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:2px;outline-offset:2px;outline-color:#d946ef}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.axp-state-selected{outline-color:#60a5fa}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.ax-widget-container{outline-offset:4px}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:2000;height:100%;width:100%}axp-layout-designer .axp-designer-board .axp-empty-space{display:flex;flex:1 1 0%;cursor:default;align-items:center;justify-content:center;background-color:rgba(var(--ax-sys-color-primary-300),10%);background-image:linear-gradient(135deg,rgba(var(--ax-sys-color-primary-300),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-sys-color-primary-300),50%) 0,rgba(var(--ax-sys-color-primary-300),50%) 60%,transparent 0,transparent);background-size:7.5px 7.5px;height:100%}axp-layout-designer .axp-designer-board .axp-page-widget-header,axp-layout-designer .axp-designer-board .axp-page-widget-footer{filter:grayscale(100%);opacity:.5}axp-layout-designer .axp-designer-board .axp-page-widget-header:hover,axp-layout-designer .axp-designer-board .axp-page-widget-footer:hover{filter:grayscale(0);opacity:1}axp-layout-designer .axp-designer-board .axp-page-widget-header{margin-bottom:.5rem}axp-layout-designer .axp-designer-board .axp-page-widget-footer{margin-top:.5rem}axp-layout-designer .axp-designer-prop-side{width:20rem;border-inline-start-width:1px;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}axp-designer-drawer-content ul.axp-designer-drawer-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}axp-designer-drawer-content ul.axp-designer-drawer-list{padding:.25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}axp-designer-drawer-content ul.axp-designer-drawer-list li{cursor:pointer;border-radius:.125rem;padding:.25rem .5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.15s;animation-timing-function:cubic-bezier(.4,0,.2,1)}axp-designer-drawer-content ul.axp-designer-drawer-list li:hover:not(.axp-designer-drawer-list){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}axp-designer-drawer-content ul.axp-designer-drawer-list li.ax-state-selected{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}axp-designer-drawer-content .axp-designer-drawer-empty{display:flex;align-items:center;justify-content:center;padding:1rem;--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: \"id\", required: false }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: \"strategy\", required: false }] }], propertyViewer: [{\n type: ViewChild,\n args: [AXPWidgetPropertyViewerComponent, { static: true }]\n }], __styles: [{\n type: HostBinding,\n args: ['style']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2Rlc2lnbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0scUNBQXFDLENBQUM7QUFDM0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxN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K0JBQStCO3dCQUMvQix5QkFBeUI7d0JBQ3pCLG1DQUFtQzt3QkFDbkMsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7cUJBQ3ZCLGFBQ1UsQ0FBQyxrQkFBa0IsQ0FBQzs7c0JBUTlCLFNBQVM7dUJBQUMsZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztzQkFtQjVELFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkdyb3VwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYRHJvcGRvd25CdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24tYnV0dG9uJztcbmltcG9ydCB7IEFYTWVudU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUsIEFYUFdpZGdldENvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBIb3N0QmluZGluZywgaW5qZWN0LCBpbnB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUERlc2lnbmVyQm9hcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYm9hcmQvYm9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyQnJlYWRjcnVtYnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyRGF0YVNvdXJjZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJhd2Vycy9kYXRhLXNvdXJjZXMvZGF0YS1zb3VyY2VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckhpc3RvcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJhd2Vycy9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyT3V0bGluZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kcmF3ZXJzL291dGxpbmUvb3V0bGluZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJQYWdlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kcmF3ZXJzL3BhZ2VzL3BhZ2VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckhlYWRlck1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyLW1lbnUvaGVhZGVyLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyVmlld1NpemVUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NpemUtbW9kZS92aWV3LXNpemUtdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZGVzaWduZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4vc2hhcmVkL2Rlc2lnbmVyLnR5cGVzJztcbmltcG9ydCB7IEFYUFdpZGdldFByb3BlcnR5Vmlld2VyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtZGVzaWduZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVzaWduZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGVzaWduZXIuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYUFdpZGdldENvcmVNb2R1bGUsXG4gICAgQVhQRGVzaWduZXJCb2FyZENvbXBvbmVudCxcbiAgICBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudCxcbiAgICBBWFBEZXNpZ25lckJyZWFkY3J1bWJzQ29tcG9uZW50LFxuICAgIEFYUERlc2lnbmVyT3V0bGluZUNvbXBvbmVudCxcbiAgICBBWFBEZXNpZ25lckhlYWRlck1lbnVDb21wb25lbnQsXG4gICAgQVhQRGVzaWduZXJIaXN0b3J5Q29tcG9uZW50LFxuICAgIEFYUERlc2lnbmVyRGF0YVNvdXJjZXNDb21wb25lbnQsXG4gICAgQVhQRGVzaWduZXJQYWdlc0NvbXBvbmVudCxcbiAgICBBWFBEZXNpZ25lclZpZXdTaXplVG9vbGJhckNvbXBvbmVudCxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhNZW51TW9kdWxlLFxuICAgIEFYQnV0dG9uR3JvdXBNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtBWFBEZXNpZ25lclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEFYUExheW91dERlc2lnbmVyQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcblxuICBpZCA9IGlucHV0PHN0cmluZyB8IG51bGw+KCk7XG4gIHN0cmF0ZWd5ID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4oKTtcblxuICBAVmlld0NoaWxkKEFYUFdpZGdldFByb3BlcnR5Vmlld2VyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIHByb3BlcnR5Vmlld2VyOiBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudDtcblxuICBwcm90ZWN0ZWQgbm9kZUNvbmZpZyA9IGNvbXB1dGVkPEFYUFdpZGdldENvbmZpZyB8IG51bGw+KCgpID0+XG4gICAgdGhpcy5zZXJ2aWNlLnNlbGVjdGVkTm9kZSgpID8gKGdldCh0aGlzLnNlcnZpY2Uuc2VsZWN0ZWROb2RlKCksICdfX21ldGFfXy5jb25maWcnKSBhcyBhbnkgYXMgQVhQV2lkZ2V0Q29uZmlnKSA6IG51bGxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNlcnZpY2Uub25VcGRhdGUuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICB0aGlzLnByb3BlcnR5Vmlld2VyLnVwZGF0ZShlLnZhbHVlcyk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5pZCgpKSB7XG4gICAgICB0aGlzLnNlcnZpY2UubG9hZEJ5SWQodGhpcy5pZCgpISwgeyBzdHJhdGVneTogKHRoaXMuc3RyYXRlZ3koKSA/PyBBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneS5Db25uZWN0b3IpIGFzIEFYUFRlbXBsYXRlTG9hZGluZ1N0cmF0ZWd5IH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKVxuICBwcml2YXRlIGdldCBfX3N0eWxlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0eWxlczogYW55ID0ge307XG4gICAgc3R5bGVzW2BkaXJlY3Rpb25gXSA9ICdsdHInO1xuICAgIHJldHVybiBzdHlsZXM7XG4gIH1cbn1cbiIsIjxheC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiYXgtaC1mdWxsIGF4LXctZnVsbCBheC1mbGV4IGF4LXJlbGF0aXZlIGF4LW92ZXJmbG93LWhpZGRlblwiPlxuICA8YXgtY29udGVudCBjbGFzcz1cImF4LWNvbnRlbnRzXCI+XG4gICAgPCEtLSBUb29sYmFyIFNpZGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LW1pbi13LTEwIGF4LWJnLWxpZ2h0ZXN0IGF4LWJvcmRlci1lIGF4LXNtIGF4LWZsZXggYXgtZmxleC1jb2wgYXgtaXRlbXMtY2VudGVyIGF4LWRhcmtcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1taW4tdy0xMCBheC1oLTEwIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LWJvcmRlci1iXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ltYWdlcy9sb2dvcy9pY29uLWxpZ2h0LnN2Z1wiIGNsYXNzPVwiYXgtdy02XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LXB5LTFcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0yXCI+XG4gICAgICAgIDwhLS0gPGF4LWJ1dHRvbiAgbG9vaz1cImJsYW5rXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1wdXp6bGUgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPiAtLT5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJwYWdlcy50b2dnbGUoKVwiIHRpdGxlPVwiUGFnZXNcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXBhZ2UgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImRhdGFzb3VyY2VzLnRvZ2dsZSgpXCIgdGl0bGU9XCJEYXRhIFNvdXJjZXNcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWRhdGFiYXNlIGF4LXRleHQtc21cIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJvdXRsaW5lLnRvZ2dsZSgpXCIgdGl0bGU9XCJPdXRsaW5lXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1saXN0LXRyZWUgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImhpc3RvcnkudG9nZ2xlKClcIiB0aXRsZT1cIkhpc3RvcnlcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWNsb2NrLXJvdGF0ZS1sZWZ0IGF4LXRleHQtc21cIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPCEtLSA8YXgtYnV0dG9uICBsb29rPVwiYmxhbmtcIiB0aXRsZT1cIlRpbWVsaW5lXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1kaWFncmFtLXNhbmtleSBheC10ZXh0LXNtXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+IC0tPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBNYWluIFNpZGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbC1zcGFuLTEwIGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZmxleC0xXCI+XG4gICAgICA8IS0tIEhlYWRlciBUb29sYmFyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWgtMTAgYXgtYmctbGlnaHRlc3QgYXgtYm9yZGVyLWIgYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtcHgtMiBheC1kYXJrXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtMSBheC1pdGVtcy1jZW50ZXIgYXgtdGV4dC13aGl0ZSBheC1qdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgICAgPGF4cC1kZXNpZ25lci1oZWFkZXItbWVudT48L2F4cC1kZXNpZ25lci1oZWFkZXItbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtMSBheC1mbGV4LXJvdyBheC1nYXAtMiBheC1zbSBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8YXhwLWRlc2lnbmVyLXZpZXctc2l6ZXMgWyhzaXplKV09XCJzZXJ2aWNlLnNpemVcIj48L2F4cC1kZXNpZ25lci12aWV3LXNpemVzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC0xIGF4LWZsZXgtcm93IGF4LWdhcC0yIGF4LXNtIGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgIDxheC1kcm9wZG93bi1idXR0b24gbW9kZT1cInNwbGl0XCIgbG9vaz1cInNvbGlkXCIgdGV4dD1cIlByZXZpZXdcIiBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cInNlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coKVwiPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSB0ZXh0PVwiT3BlbiBpbiBuZXcgd2luZG93XCIgKG9uQ2xpY2spPVwic2VydmljZS5vcGVuUHJldmlld1dpbmRvdygpXCI+XG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1yZWd1bGFyIGZhLXdpbmRvdy1yZXN0b3JlXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgIDwvYXgtZHJvcGRvd24tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBCb2FyZCAtLT5cbiAgICAgIDxheC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiYXgtdy1mdWxsIGF4LWZsZXgtMVwiPlxuICAgICAgICA8IS0tIFBhZ2VzIC0tPlxuICAgICAgICA8YXgtZHJhd2VyICNwYWdlcyBsb2NhdGlvbj1cInN0YXJ0XCIgbW9kZT1cInB1c2hcIiBjbGFzcz1cImF4LWRhcmsgYXgtYmctbGlnaHRlc3RcIj5cbiAgICAgICAgICA8YXgtY29udGVudD5cbiAgICAgICAgICAgIDxheHAtZGVzaWduZXItcGFnZXM+PC9heHAtZGVzaWduZXItcGFnZXM+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgPCEtLSBEYXRhc291cmNlcyAtLT5cbiAgICAgICAgPGF4LWRyYXdlciAjZGF0YXNvdXJjZXMgbG9jYXRpb249XCJzdGFydFwiIG1vZGU9XCJwdXNoXCIgY2xhc3M9XCJheC1kYXJrIGF4LWJnLWxpZ2h0ZXN0XCI+XG4gICAgICAgICAgPGF4LWNvbnRlbnQ+XG4gICAgICAgICAgICA8YXhwLWRlc2lnbmVyLWRhdGEtc291cmNlcz48L2F4cC1kZXNpZ25lci1kYXRhLXNvdXJjZXM+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgPCEtLSBPdXRsaW5lIFBuYWVsIC0tPlxuICAgICAgICA8YXgtZHJhd2VyICNvdXRsaW5lIGxvY2F0aW9uPVwic3RhcnRcIiBtb2RlPVwicHVzaFwiIGNsYXNzPVwiYXgtZGFyayBheC1iZy1saWdodGVzdFwiPlxuICAgICAgICAgIDxheC1jb250ZW50PlxuICAgICAgICAgICAgPGF4cC1kZXNpZ25lci1vdXRsaW5lPjwvYXhwLWRlc2lnbmVyLW91dGxpbmU+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgPCEtLSBIaXN0b3J5IFBuYWVsIC0tPlxuICAgICAgICA8YXgtZHJhd2VyICNoaXN0b3J5IGxvY2F0aW9uPVwic3RhcnRcIiBtb2RlPVwicHVzaFwiIGNsYXNzPVwiYXgtZGFyayBheC1iZy1saWdodGVzdFwiPlxuICAgICAgICAgIDxheC1jb250ZW50PlxuICAgICAgICAgICAgPGF4cC1kZXNpZ25lci1oaXN0b3J5PjwvYXhwLWRlc2lnbmVyLWhpc3Rvcnk+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgPCEtLSBDb250ZW50IG9mIGJvYXJkIC0tPlxuICAgICAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LWxpZ2h0IGF4LWJnLWxpZ2h0ZXIgYXgtZmxleCBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTEwXCI+XG4gICAgICAgICAgPGF4cC1kZXNpZ25lci1ib2FyZCBjbGFzcz1cImF4LXJvdW5kZWQtbGcgYXgtYmctbGlnaHRlc3QgYXgtc2hhZG93LW1kXCI+IDwvYXhwLWRlc2lnbmVyLWJvYXJkPlxuICAgICAgICA8L2F4LWNvbnRlbnQ+XG4gICAgICA8L2F4LWRyYXdlci1jb250YWluZXI+XG4gICAgICA8IS0tIEZvb3RlciAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1oLTEwIGF4LWJnLWxpZ2h0ZXN0IGF4LWJvcmRlci10IGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWRhcmtcIj5cbiAgICAgICAgPGF4cC1kZXNpZ25lci1icmVhZGNydW1icyBjbGFzcz1cImF4LWJvcmRlci1kZWZhdWx0ICBheC1wLTIgYXgtZm9udC1ub3JtYWxcIj5cbiAgICAgICAgPC9heHAtZGVzaWduZXItYnJlYWRjcnVtYnM+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9heC1jb250ZW50PlxuICA8IS0tIFByb3BlcnR5IFNpZGUgLS0+XG4gIDxheC1kcmF3ZXIgY2xhc3M9XCJheC1kYXJrIGF4cC1kZXNpZ25lci1wcm9wLXNpZGVcIiBsb2NhdGlvbj1cImVuZFwiIG1vZGU9XCJwdXNoXCIgW2NvbGxhcHNlZF09XCJmYWxzZVwiICNwZD5cbiAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtaC1mdWxsIGF4LW92ZXJmbG93LWhpZGRlbiBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LXctZnVsbCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtdGV4dC13aGl0ZSBheC1weC00IGF4LWJvcmRlci1iIGF4LWgtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1yb3cgYXgtZ2FwLTIgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGkgW25nQ2xhc3NdPVwibm9kZUNvbmZpZygpPy5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7IG5vZGVDb25maWcoKT8udGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXhwLXdpZGdldC1wcm9wZXJ0eS12aWV3ZXIgW21vZGVdPVwiJ2FkdmFuY2VkJ1wiIFt3aWRnZXRdPVwic2VydmljZS5zZWxlY3RlZE5vZGUoKSFcIlxuICAgICAgICAob25DaGFuZ2VkKT1cInNlcnZpY2UudXBkYXRlKHsgdmFsdWVzOiAkZXZlbnQudmFsdWVzLCBtb2RlOiAkZXZlbnQubW9kZSB9KVwiIGNsYXNzPVwiYXgtZmxleC0xIGF4LW92ZXJmbG93LWF1dG9cIj5cbiAgICAgIDwvYXhwLXdpZGdldC1wcm9wZXJ0eS12aWV3ZXI+XG4gICAgPC9heC1jb250ZW50PlxuICA8L2F4LWRyYXdlcj5cbjwvYXgtZHJhd2VyLWNvbnRhaW5lcj4iXX0=","import { AXPWidgetCoreModule, AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Component, computed, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXPDesignerConnector, AXPDesignerMessageKeys } from '../designer';\nimport { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/widget-core\";\nexport class AXPLayoutDesignerPreviewViewerComponent {\n constructor() {\n this.context = {};\n this.document = signal({ type: AXPWidgetsCatalog.document }, ...(ngDevMode ? [{ debugName: \"document\" }] : []));\n this.currentPageIndex = signal(0, ...(ngDevMode ? [{ debugName: \"currentPageIndex\" }] : []));\n this.connector = inject(AXPDesignerConnector);\n this.eventService = inject(AXPBroadcastEventService);\n this.unsubscriber = inject(AXUnsubscriber);\n this.currentPage = computed(() => {\n return (this.document().children?.[this.currentPageIndex()] ?? { type: AXPWidgetsCatalog.pageLayout });\n }, ...(ngDevMode ? [{ debugName: \"currentPage\" }] : []));\n this.eventService\n .listen(AXPDesignerMessageKeys.Preview)\n .pipe(this.unsubscriber.takeUntilDestroy)\n .subscribe((event) => {\n this.document.set(event.data.document);\n });\n //\n if (document.body.parentElement) {\n document.body.parentElement.classList.remove('ax-dark');\n document.body.parentElement.style.backgroundColor = 'unset';\n document.body.style.backgroundColor = 'unset';\n }\n }\n ngAfterViewInit() {\n this.eventService.publish(AXPDesignerMessageKeys.Loaded);\n }\n handleContextChanged(e) {\n this.context = e.data;\n this.eventService.publish(AXPDesignerMessageKeys.ContextChanged, this.context);\n }\n ngOnDestroy() {\n this.eventService.unsubscribe(AXPDesignerMessageKeys.Preview);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerPreviewViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.10\", type: AXPLayoutDesignerPreviewViewerComponent, isStandalone: true, selector: \"axp-layout-builder-viewer\", providers: [AXUnsubscriber], ngImport: i0, template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChanged($event)\">\n <ng-container axp-widget-renderer [node]=\"currentPage()\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: i1.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i1.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerPreviewViewerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-layout-builder-viewer',\n template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChanged($event)\">\n <ng-container axp-widget-renderer [node]=\"currentPage()\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n `,\n encapsulation: ViewEncapsulation.None,\n imports: [AXPWidgetCoreModule],\n providers: [AXUnsubscriber],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9wcmV2aWV3L3ByZXZpZXctdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQWtELGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFN0ksT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQTZCLE1BQU0sYUFBYSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBYXBELE1BQU0sT0FBTyx1Q0FBdUM7SUFnQmxEO1FBZlUsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUVULGFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxFQUFtQixvREFBQyxDQUFDO1FBQ3pFLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxDQUFDLDREQUFDLENBQUM7UUFDdEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDaEQsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0IsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzdDLE9BQU8sQ0FDTCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSyxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQW9CLENBQ2pILENBQUM7UUFDSixDQUFDLHVEQUFDLENBQUM7UUFJRCxJQUFJLENBQUMsWUFBWTthQUNkLE1BQU0sQ0FBNEIsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO2FBQ3hDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUE7UUFDSixFQUFFO1FBQ0YsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEQsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7WUFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRVMsb0JBQW9CLENBQUMsQ0FBa0M7UUFDL0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDaEYsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVoRSxDQUFDOytHQTNDVSx1Q0FBdUM7bUdBQXZDLHVDQUF1Qyx3RUFGdkMsQ0FBQyxjQUFjLENBQUMsMEJBUGpCOzs7O0dBSVQsMkRBRVMsbUJBQW1COzs0RkFHbEIsdUNBQXVDO2tCQVhuRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDOUIsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUsIEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQsIEFYUFdpZGdldE5vZGUsIEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUERlc2lnbmVyQ29ubmVjdG9yLCBBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLCBBWFBEZXNpZ25lclByZXZpZXdNZXNzYWdlIH0gZnJvbSAnLi4vZGVzaWduZXInO1xuaW1wb3J0IHsgQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1idWlsZGVyLXZpZXdlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJjb250ZXh0XCIgKG9uQ29udGV4dENoYW5nZWQpPVwiaGFuZGxlQ29udGV4dENoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBheHAtd2lkZ2V0LXJlbmRlcmVyIFtub2RlXT1cImN1cnJlbnRQYWdlKClcIiBbbW9kZV09XCInZWRpdCdcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2F4cC13aWRnZXRzLWNvbnRhaW5lcj5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYUFdpZGdldENvcmVNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtBWFVuc3Vic2NyaWJlcl0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExheW91dERlc2lnbmVyUHJldmlld1ZpZXdlckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBjb250ZXh0OiBhbnkgPSB7fTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQgPSBzaWduYWwoeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kb2N1bWVudCB9IGFzIEFYUFdpZGdldE5vZGUpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBhZ2VJbmRleCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIGNvbm5lY3RvciA9IGluamVjdChBWFBEZXNpZ25lckNvbm5lY3Rvcik7XG4gIHByb3RlY3RlZCBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHVuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRQYWdlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Llt0aGlzLmN1cnJlbnRQYWdlSW5kZXgoKV0gPz8gKHsgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cucGFnZUxheW91dCB9IGFzIEFYUFdpZGdldE5vZGUpXG4gICAgKTtcbiAgfSk7XG5cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLmxpc3RlbjxBWFBEZXNpZ25lclByZXZpZXdNZXNzYWdlPihBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlByZXZpZXcpXG4gICAgICAucGlwZSh0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5zZXQoZXZlbnQuZGF0YS5kb2N1bWVudCk7XG4gICAgICB9KVxuICAgIC8vXG4gICAgaWYgKGRvY3VtZW50LmJvZHkucGFyZW50RWxlbWVudCkge1xuICAgICAgZG9jdW1lbnQuYm9keS5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LWRhcmsnKTtcbiAgICAgIGRvY3VtZW50LmJvZHkucGFyZW50RWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndW5zZXQnO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndW5zZXQnO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5wdWJsaXNoKEFYUERlc2lnbmVyTWVzc2FnZUtleXMuTG9hZGVkKVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbnRleHRDaGFuZ2VkKGU6IEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBlLmRhdGE7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UucHVibGlzaChBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLkNvbnRleHRDaGFuZ2VkLCB0aGlzLmNvbnRleHQpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS51bnN1YnNjcmliZShBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlByZXZpZXcpO1xuXG4gIH1cbn1cbiJdfQ==","import { AXSafePipe } from '@acorex/core/pipes';\nimport { Component, computed, HostBinding, input, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPLayoutDesignerPreviewFrameComponent {\n constructor() {\n this.size = input('xl', ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n this.width = computed(() => {\n ;\n switch (this.size()) {\n case 'sm':\n return '340px';\n case 'md':\n case 'lg':\n return '768px';\n default:\n return '100%';\n }\n }, ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n }\n get __class() {\n const cls = {};\n cls['ax-flex'] = true;\n cls['ax-flex-col'] = true;\n cls['ax-h-full'] = true;\n cls['ax-W-full'] = true;\n cls['lg:ax-p-20'] = true;\n cls['ax-bg-[#f3f3fe]'] = true;\n cls['ax-w-full'] = true;\n cls['ax-items-center'] = true;\n cls['ax-overflow-auto'] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerPreviewFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.10\", type: AXPLayoutDesignerPreviewFrameComponent, isStandalone: true, selector: \"axp-layout-preview-frame\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class\": \"this.__class\" } }, ngImport: i0, template: `\n <div\n class=\"ax-flex-1 lg:ax-rounded-lg ax-bg-white lg:ax-shadow-md ax-p-2\"\n [style.width]=\"width()\"\n style=\"max-width: 1280px;\"\n >\n <iframe\n class=\"ax-w-full ax-h-full ax-bg-transparent\"\n [frameBorder]=\"0\"\n [src]=\"'/forms/viewer' | safe : 'resourceUrl'\"\n >\n </iframe>\n </div>\n `, isInline: true, dependencies: [{ kind: \"pipe\", type: AXSafePipe, name: \"safe\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerPreviewFrameComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-layout-preview-frame',\n template: `\n <div\n class=\"ax-flex-1 lg:ax-rounded-lg ax-bg-white lg:ax-shadow-md ax-p-2\"\n [style.width]=\"width()\"\n style=\"max-width: 1280px;\"\n >\n <iframe\n class=\"ax-w-full ax-h-full ax-bg-transparent\"\n [frameBorder]=\"0\"\n [src]=\"'/forms/viewer' | safe : 'resourceUrl'\"\n >\n </iframe>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n imports: [AXSafePipe]\n }]\n }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: \"size\", required: false }] }], __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy1mcmFtZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy1mcmFtZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBcUIzRixNQUFNLE9BQU8sc0NBQXNDO0lBbkJuRDtRQW9CUyxTQUFJLEdBQUcsS0FBSyxDQUFTLElBQUksZ0RBQUMsQ0FBQztRQUV4QixVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixDQUFDO1lBQ0QsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxJQUFJO29CQUNQLE9BQU8sT0FBTyxDQUFDO2dCQUNqQixLQUFLLElBQUksQ0FBQztnQkFDVixLQUFLLElBQUk7b0JBQ1AsT0FBTyxPQUFPLENBQUM7Z0JBQ2pCO29CQUNFLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDLGlEQUFDLENBQUM7S0FnQko7SUFkQyxJQUNZLE9BQU87UUFDakIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMxQixHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDeEIsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN6QixHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QixHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUIsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzsrR0E3QlUsc0NBQXNDO21HQUF0QyxzQ0FBc0Msd1FBakJyQzs7Ozs7Ozs7Ozs7OztHQWFYLHVEQUVXLFVBQVU7OzRGQUVYLHNDQUFzQztrQkFuQmxELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVg7b0JBQ0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDeEI7O3NCQWlCRSxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFNhZmVQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BpcGVzJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEhvc3RCaW5kaW5nLCBpbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LXByZXZpZXctZnJhbWUnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJheC1mbGV4LTEgbGc6YXgtcm91bmRlZC1sZyBheC1iZy13aGl0ZSBsZzpheC1zaGFkb3ctbWQgICBheC1wLTJcIlxuICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoKClcIlxuICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDEyODBweDtcIlxuICAgID5cbiAgICAgIDxpZnJhbWVcbiAgICAgICAgY2xhc3M9XCJheC13LWZ1bGwgYXgtaC1mdWxsIGF4LWJnLXRyYW5zcGFyZW50XCJcbiAgICAgICAgW2ZyYW1lQm9yZGVyXT1cIjBcIlxuICAgICAgICBbc3JjXT1cIicvZm9ybXMvdmlld2VyJyB8IHNhZmUgOiAncmVzb3VyY2VVcmwnXCJcbiAgICAgID5cbiAgICAgIDwvaWZyYW1lPlxuICAgIDwvZGl2PlxuICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW1wb3J0czogW0FYU2FmZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEFYUExheW91dERlc2lnbmVyUHJldmlld0ZyYW1lQ29tcG9uZW50IHtcbiAgcHVibGljIHNpemUgPSBpbnB1dDxzdHJpbmc+KCd4bCcpO1xuXG4gIHByb3RlY3RlZCB3aWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICA7XG4gICAgc3dpdGNoICh0aGlzLnNpemUoKSkge1xuICAgICAgY2FzZSAnc20nOlxuICAgICAgICByZXR1cm4gJzM0MHB4JztcbiAgICAgIGNhc2UgJ21kJzpcbiAgICAgIGNhc2UgJ2xnJzpcbiAgICAgICAgcmV0dXJuICc3NjhweCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJzEwMCUnO1xuICAgIH1cbiAgfSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9fY2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIGNsc1snYXgtZmxleCddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LWZsZXgtY29sJ10gPSB0cnVlO1xuICAgIGNsc1snYXgtaC1mdWxsJ10gPSB0cnVlO1xuICAgIGNsc1snYXgtVy1mdWxsJ10gPSB0cnVlO1xuICAgIGNsc1snbGc6YXgtcC0yMCddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LWJnLVsjZjNmM2ZlXSddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LXctZnVsbCddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LWl0ZW1zLWNlbnRlciddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LW92ZXJmbG93LWF1dG8nXSA9IHRydWU7XG4gICAgcmV0dXJuIGNscztcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXJsonViewerModule } from '@acorex/components/json-viewer';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXPClipBoardService, AXPSettingService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXPDesignerViewSizeToolbarComponent } from '../designer/components/size-mode/view-size-toolbar.component';\nimport { AXPLayoutDesignerPreviewFrameComponent } from './preview-frame.component';\nimport { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXPDesignerMessageKeys } from '../designer';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/drawer\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/json-viewer\";\nexport class AXPLayoutDesignerPreviewComponent extends AXBasePageComponent {\n constructor() {\n super();\n this.clipboard = inject(AXPClipBoardService);\n this.settings = inject(AXPSettingService);\n this.eventService = inject(AXPBroadcastEventService);\n this.initialSize = 'xl';\n this.isDialogWindow = false;\n this.jsonSettingsKey = 'forms:preview:json';\n this.jsonViewCollapsed = signal(true, ...(ngDevMode ? [{ debugName: \"jsonViewCollapsed\" }] : []));\n this.size = signal(this.initialSize, ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n this.context = signal({}, ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n //\n this.eventService.listen(AXPDesignerMessageKeys.ContextChanged).subscribe((event) => {\n this.context.set(event.data);\n });\n }\n async ngOnInit() {\n this.size.set(this.initialSize);\n const settingValue = await this.settings.get(this.jsonSettingsKey);\n this.jsonViewCollapsed.set(!settingValue);\n }\n handleCloseButton() {\n if (this.isDialogWindow) {\n this.close();\n }\n else {\n window.opener.focus();\n window.close();\n }\n }\n handlePreviewWindow() {\n this.eventService.publish(AXPDesignerMessageKeys.PreviewWindow);\n this.close();\n }\n handleCopyJson() {\n this.clipboard.copy('Json Data', JSON.stringify(this.context()));\n }\n async handleCollapsedChange(value) {\n await this.settings.scope(AXPPlatformScope.User).set(this.jsonSettingsKey, !value);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPLayoutDesignerPreviewComponent, isStandalone: true, selector: \"axp-layout-preview\", usesInheritance: true, ngImport: i0, template: \"<ax-drawer-container class=\\\"ax-dark ax-h-full ax-w-full ax-flex ax-relative ax-overflow-hidden\\\">\\n <ax-content>\\n <div class=\\\"ax-dark ax-flex ax-flex-col ax-h-full ax-relative ax-bg-default\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-lightest ax-shadow ax-sm ax-px-2\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-start\\\">\\n <ax-button look=\\\"blank\\\" text=\\\"Back to Designer\\\" (onClick)=\\\"handleCloseButton()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-chevron-left\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\">\\n <axp-designer-view-sizes [(size)]=\\\"size\\\"></axp-designer-view-sizes>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-end\\\">\\n @if(isDialogWindow) {\\n <ax-button look=\\\"blank\\\" [title]=\\\"'Preview in to seperate window'\\\" (onClick)=\\\"handlePreviewWindow()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-window-restore\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }@else { }\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"jsonView.toggle()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-list-tree\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n\\n <div class=\\\"ax-bg-[#f3f3fe] ax-flex ax-flex-1 ax-justify-center ax-overflow-auto\\\">\\n <axp-layout-preview-frame [size]=\\\"size()\\\"></axp-layout-preview-frame>\\n </div>\\n </div>\\n </ax-content>\\n <!-- [collapsed]=\\\"jsonViewCollapsed()\\\"\\n (collapsedChange)=\\\"handleCollapsedChange($event)\\\" -->\\n <ax-drawer class=\\\"ax-w-1/3 ax-border-s\\\" location=\\\"end\\\" mode=\\\"push\\\" #jsonView>\\n <ax-content>\\n <div class=\\\"ax-dark ax-flex ax-flex-col ax-h-full ax-relative ax-bg-default\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-lightest ax-shadow ax-sm ax-px-2\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-start\\\">\\n <span class=\\\"ax-text-surface-fore ax-font-semibold\\\">Form Data</span>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\"></div>\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-end\\\">\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"handleCopyJson()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-copy\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n <div class=\\\"ax-px-6 ax-text-white\\\">\\n <ax-json-viewer [json]=\\\"context()\\\"></ax-json-viewer>\\n </div>\\n </div>\\n </ax-content>\\n </ax-drawer>\\n</ax-drawer-container>\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"component\", type: i2.AXDrawerComponent, selector: \"ax-drawer\", inputs: [\"location\", \"showBackdrop\", \"mode\", \"transition\", \"closeOnBackdropClick\", \"backdropClass\", \"collapsed\", \"singleOpenMode\"], outputs: [\"onBackdropClick\", \"collapsedStateChanged\"] }, { kind: \"component\", type: i2.AXDrawerContainerComponent, selector: \"ax-drawer-container\" }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXJsonViewerModule }, { kind: \"component\", type: i4.JsonViewerComponent, selector: \"ax-json-viewer\", inputs: [\"json\"] }, { kind: \"component\", type: AXPLayoutDesignerPreviewFrameComponent, selector: \"axp-layout-preview-frame\", inputs: [\"size\"] }, { kind: \"component\", type: AXPDesignerViewSizeToolbarComponent, selector: \"axp-designer-view-sizes\", inputs: [\"size\"], outputs: [\"sizeChange\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLayoutDesignerPreviewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-layout-preview', encapsulation: ViewEncapsulation.None, imports: [\n AXButtonModule,\n AXButtonGroupModule,\n AXDrawerModule,\n AXDecoratorModule,\n AXJsonViewerModule,\n AXPLayoutDesignerPreviewFrameComponent,\n AXPDesignerViewSizeToolbarComponent\n ], template: \"<ax-drawer-container class=\\\"ax-dark ax-h-full ax-w-full ax-flex ax-relative ax-overflow-hidden\\\">\\n <ax-content>\\n <div class=\\\"ax-dark ax-flex ax-flex-col ax-h-full ax-relative ax-bg-default\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-lightest ax-shadow ax-sm ax-px-2\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-start\\\">\\n <ax-button look=\\\"blank\\\" text=\\\"Back to Designer\\\" (onClick)=\\\"handleCloseButton()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-chevron-left\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\">\\n <axp-designer-view-sizes [(size)]=\\\"size\\\"></axp-designer-view-sizes>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-end\\\">\\n @if(isDialogWindow) {\\n <ax-button look=\\\"blank\\\" [title]=\\\"'Preview in to seperate window'\\\" (onClick)=\\\"handlePreviewWindow()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-window-restore\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }@else { }\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"jsonView.toggle()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-list-tree\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n\\n <div class=\\\"ax-bg-[#f3f3fe] ax-flex ax-flex-1 ax-justify-center ax-overflow-auto\\\">\\n <axp-layout-preview-frame [size]=\\\"size()\\\"></axp-layout-preview-frame>\\n </div>\\n </div>\\n </ax-content>\\n <!-- [collapsed]=\\\"jsonViewCollapsed()\\\"\\n (collapsedChange)=\\\"handleCollapsedChange($event)\\\" -->\\n <ax-drawer class=\\\"ax-w-1/3 ax-border-s\\\" location=\\\"end\\\" mode=\\\"push\\\" #jsonView>\\n <ax-content>\\n <div class=\\\"ax-dark ax-flex ax-flex-col ax-h-full ax-relative ax-bg-default\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-lightest ax-shadow ax-sm ax-px-2\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-start\\\">\\n <span class=\\\"ax-text-surface-fore ax-font-semibold\\\">Form Data</span>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\"></div>\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-end\\\">\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"handleCopyJson()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-copy\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n <div class=\\\"ax-px-6 ax-text-white\\\">\\n <ax-json-viewer [json]=\\\"context()\\\"></ax-json-viewer>\\n </div>\\n </div>\\n </ax-content>\\n </ax-drawer>\\n</ax-drawer-container>\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7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b21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkdyb3VwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XG5pbXBvcnQgeyBBWEpzb25WaWV3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvanNvbi12aWV3ZXInO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYUENsaXBCb2FyZFNlcnZpY2UsIEFYUFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQUGxhdGZvcm1TY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclZpZXdTaXplVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL2Rlc2lnbmVyL2NvbXBvbmVudHMvc2l6ZS1tb2RlL3ZpZXctc2l6ZS10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBMYXlvdXREZXNpZ25lclByZXZpZXdGcmFtZUNvbXBvbmVudCB9IGZyb20gJy4vcHJldmlldy1mcmFtZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUERlc2lnbmVyTWVzc2FnZUtleXMgfSBmcm9tICcuLi9kZXNpZ25lcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhCdXR0b25Hcm91cE1vZHVsZSxcbiAgICBBWERyYXdlck1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEpzb25WaWV3ZXJNb2R1bGUsXG4gICAgQVhQTGF5b3V0RGVzaWduZXJQcmV2aWV3RnJhbWVDb21wb25lbnQsXG4gICAgQVhQRGVzaWduZXJWaWV3U2l6ZVRvb2xiYXJDb21wb25lbnRcbl1cbn0pXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0RGVzaWduZXJQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBjbGlwYm9hcmQgPSBpbmplY3QoQVhQQ2xpcEJvYXJkU2VydmljZSk7XG4gIHByb3RlY3RlZCBzZXR0aW5ncyA9IGluamVjdChBWFBTZXR0aW5nU2VydmljZSk7XG4gIHByb3RlY3RlZCBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgaW5pdGlhbFNpemU6IHN0cmluZyA9ICd4bCc7XG4gIHByb3RlY3RlZCBpc0RpYWxvZ1dpbmRvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUganNvblNldHRpbmdzS2V5ID0gJ2Zvcm1zOnByZXZpZXc6anNvbic7XG4gIHByb3RlY3RlZCBqc29uVmlld0NvbGxhcHNlZCA9IHNpZ25hbCh0cnVlKTtcblxuICBwcm90ZWN0ZWQgc2l6ZSA9IHNpZ25hbDxzdHJpbmc+KHRoaXMuaW5pdGlhbFNpemUpO1xuXG4gIHByb3RlY3RlZCBjb250ZXh0ID0gc2lnbmFsPGFueT4oe30pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy9cbiAgICB0aGlzLmV2ZW50U2VydmljZS5saXN0ZW4oQVhQRGVzaWduZXJNZXNzYWdlS2V5cy5Db250ZXh0Q2hhbmdlZCkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LnNldChldmVudC5kYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNpemUuc2V0KHRoaXMuaW5pdGlhbFNpemUpO1xuICAgIGNvbnN0IHNldHRpbmdWYWx1ZSA9IGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0PGJvb2xlYW4+KHRoaXMuanNvblNldHRpbmdzS2V5KTtcbiAgICB0aGlzLmpzb25WaWV3Q29sbGFwc2VkLnNldCghc2V0dGluZ1ZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbG9zZUJ1dHRvbigpIHtcbiAgICBpZiAodGhpcy5pc0RpYWxvZ1dpbmRvdykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3cub3BlbmVyLmZvY3VzKCk7XG4gICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUHJldmlld1dpbmRvdygpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5wdWJsaXNoKEFYUERlc2lnbmVyTWVzc2FnZUtleXMuUHJldmlld1dpbmRvdylcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29weUpzb24oKSB7XG4gICAgdGhpcy5jbGlwYm9hcmQuY29weSgnSnNvbiBEYXRhJywgSlNPTi5zdHJpbmdpZnkodGhpcy5jb250ZXh0KCkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVDb2xsYXBzZWRDaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNjb3BlKEFYUFBsYXRmb3JtU2NvcGUuVXNlcikuc2V0PGJvb2xlYW4+KHRoaXMuanNvblNldHRpbmdzS2V5LCAhdmFsdWUpO1xuICB9XG59XG4iLCI8YXgtZHJhd2VyLWNvbnRhaW5lciBjbGFzcz1cImF4LWRhcmsgYXgtaC1mdWxsIGF4LXctZnVsbCBheC1mbGV4IGF4LXJlbGF0aXZlIGF4LW92ZXJmbG93LWhpZGRlblwiPlxuICA8YXgtY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZGFyayBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWgtZnVsbCBheC1yZWxhdGl2ZSBheC1iZy1kZWZhdWx0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWgtMTIgYXgtYmctbGlnaHRlc3QgYXgtc2hhZG93IGF4LXNtIGF4LXB4LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC0xIGF4LXctMTYgYXgtanVzdGlmeS1zdGFydFwiPlxuICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgdGV4dD1cIkJhY2sgdG8gRGVzaWduZXJcIiAob25DbGljayk9XCJoYW5kbGVDbG9zZUJ1dHRvbigpXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtY2hldnJvbi1sZWZ0XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LTEgYXgtZmxleC1yb3cgYXgtZ2FwLTIgYXgtc20gYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgPGF4cC1kZXNpZ25lci12aWV3LXNpemVzIFsoc2l6ZSldPVwic2l6ZVwiPjwvYXhwLWRlc2lnbmVyLXZpZXctc2l6ZXM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LTEgYXgtdy0xNiBheC1qdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgIEBpZihpc0RpYWxvZ1dpbmRvdykge1xuICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgW3RpdGxlXT1cIidQcmV2aWV3IGluIHRvIHNlcGVyYXRlIHdpbmRvdydcIiAob25DbGljayk9XCJoYW5kbGVQcmV2aWV3V2luZG93KClcIj5cbiAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtcmVndWxhciBmYS13aW5kb3ctcmVzdG9yZVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgIH1AZWxzZSB7IH1cbiAgICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImpzb25WaWV3LnRvZ2dsZSgpXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtbGlzdC10cmVlXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1iZy1bI2YzZjNmZV0gYXgtZmxleCBheC1mbGV4LTEgYXgtanVzdGlmeS1jZW50ZXIgYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICA8YXhwLWxheW91dC1wcmV2aWV3LWZyYW1lIFtzaXplXT1cInNpemUoKVwiPjwvYXhwLWxheW91dC1wcmV2aWV3LWZyYW1lPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvYXgtY29udGVudD5cbiAgPCEtLSBbY29sbGFwc2VkXT1cImpzb25WaWV3Q29sbGFwc2VkKClcIlxuICAoY29sbGFwc2VkQ2hhbmdlKT1cImhhbmRsZUNvbGxhcHNlZENoYW5nZSgkZXZlbnQpXCIgLS0+XG4gIDxheC1kcmF3ZXIgY2xhc3M9XCJheC13LTEvMyBheC1ib3JkZXItc1wiIGxvY2F0aW9uPVwiZW5kXCIgbW9kZT1cInB1c2hcIiAjanNvblZpZXc+XG4gICAgPGF4LWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZGFyayBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWgtZnVsbCBheC1yZWxhdGl2ZSBheC1iZy1kZWZhdWx0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaC0xMiBheC1iZy1saWdodGVzdCBheC1zaGFkb3cgYXgtc20gYXgtcHgtMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtMSBheC13LTE2IGF4LWp1c3RpZnktc3RhcnRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1zdXJmYWNlLWZvcmUgYXgtZm9udC1zZW1pYm9sZFwiPkZvcm0gRGF0YTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LTEgYXgtZmxleC1yb3cgYXgtZ2FwLTIgYXgtc20gYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC0xIGF4LXctMTYgYXgtanVzdGlmeS1lbmRcIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ29weUpzb24oKVwiPlxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtcmVndWxhciBmYS1jb3B5XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXB4LTYgYXgtdGV4dC13aGl0ZVwiPlxuICAgICAgICAgIDxheC1qc29uLXZpZXdlciBbanNvbl09XCJjb250ZXh0KClcIj48L2F4LWpzb24tdmlld2VyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXgtY29udGVudD5cbiAgPC9heC1kcmF3ZXI+XG48L2F4LWRyYXdlci1jb250YWluZXI+Il19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1kZXNpZ25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9hY29yZXgtcGxhdGZvcm0tbGF5b3V0LWRlc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1","i2","i4","i5","i3","merge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE;AACnD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAClD,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE;AACzD,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9C,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE;AACzD,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/D,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACxB,YAAY,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,OAAO,CAAC,uBAAuB,CAAC;AACxC,IAAI;AACJ,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC;AACtC,IAAI;AACJ;AACO,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE;AACnD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAClD,QAAQ,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE;AAC/C,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACrD,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE;AACzD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAClD,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE;AACzD,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAChE,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnD,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,OAAO,CAAC,wBAAwB,CAAC;AACzC,IAAI;AACJ,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC;AACtC,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAI;AACJ;AACO,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE;AACnD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;AACxD,QAAQ,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;AAClD,QAAQ,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;AAC9C,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;AACzC,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC;AACjE,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnD,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,OAAO,CAAC,eAAe,CAAC;AAChC,IAAI;AACJ,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC;AACtC,IAAI;AACJ,IAAI,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE;AAC3C,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AAC5C,YAAY,IAAI,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC9C,gBAAgB,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,EAAE;AACnH,oBAAoB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;AACzE,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACpC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;AAChC,IAAI;AACJ;AACO,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjH,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1I,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,MAAM;AAC5E,YAAY,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE;AAC1C,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;AAC5B,YAAY,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK;AAC/C,YAAY,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK;AACjD,YAAY,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI;AAC9C,SAAS,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,IAAI;AACJ,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B;AACA,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE;AACA,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AACnF,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;AAC5C,QAAQ;AACR,QAAQ,OAAO,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC/D,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;AACtC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AACjE,YAAY,OAAO,CAAC,IAAI,EAAE;AAC1B,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AAC1D,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;AAC1C,gBAAgB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC/F,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5C,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/D,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AAC1D,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AACjE,YAAY,OAAO,CAAC,OAAO,EAAE;AAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAClE,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE;AAC5F,YAAY,OAAO;AACnB,QAAQ;AACR,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;AACzC;AACA,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,EAAE;AAChD,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,YAAY;AACZ,QAAQ;AACR,aAAa;AACb;AACA,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,KAAK,EAAE;AAChD,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC;AAC5F,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAClL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACzJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE;AAChC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACrLN,MAAM,oBAAoB,CAAC;AAClC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACxL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAC3I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACPD,MAAC,sBAAsB,GAAG;AACtC,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,IAAI,EAAE,kBAAkB;AAC5B,IAAI,MAAM,EAAE;AACZ,QAAQ,IAAI,EAAE,QAAQ;AACtB,KAAK;AACL;AACY,MAAC,uBAAuB,GAAG;AACvC,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,IAAI,EAAE,mBAAmB;AAC7B,IAAI,MAAM,EAAE;AACZ,QAAQ,IAAI,EAAE,QAAQ;AACtB,KAAK;AACL;AACY,MAAC,qBAAqB,GAAG;AACrC,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,IAAI,EAAE,iBAAiB;AAC3B,IAAI,MAAM,EAAE;AACZ,QAAQ,IAAI,EAAE,QAAQ;AACtB,KAAK;AACL;AACY,MAAC,uBAAuB,GAAG;AACvC,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,IAAI,EAAE,mBAAmB;AAC7B,IAAI,MAAM,EAAE;AACZ,QAAQ,IAAI,EAAE,QAAQ;AACtB,KAAK;AACL;AACY,MAAC,4BAA4B,GAAG;AAC5C,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,IAAI,EAAE,kBAAkB;AAC5B;AACY,MAAC,+BAA+B,GAAG;AAC/C,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,IAAI,EAAE,2BAA2B;AACrC;AACY,MAAC,+BAA+B,GAAG;AAC/C,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,eAAe;AACzB,IAAI,IAAI,EAAE,mBAAmB;AAC7B;AACY,MAAC,gCAAgC,GAAG;AAChD,IAAI,IAAI,EAAE,YAAY;AACtB,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,IAAI,EAAE,kBAAkB;AAC5B;AACO,SAAS,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE;AAC/C,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;AAC3C;;ACxDO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACvD,IAAI,SAAS,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACjE,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACvD;AACU,IAAC;AACX,CAAC,UAAU,0BAA0B,EAAE;AACvC,IAAI,0BAA0B,CAAC,WAAW,CAAC,GAAG,WAAW;AACzD,IAAI,0BAA0B,CAAC,WAAW,CAAC,GAAG,WAAW;AACzD,CAAC,EAAE,0BAA0B,KAAK,0BAA0B,GAAG,EAAE,CAAC,CAAC;AACvD,MAAC,sBAAsB,GAAG;AACtC,IAAI,OAAO,EAAE,kBAAkB;AAC/B,IAAI,MAAM,EAAE,yBAAyB;AACrC,IAAI,cAAc,EAAE,kCAAkC;AACtD,IAAI,aAAa,EAAE,8BAA8B;AACjD,IAAI,kBAAkB,EAAE,+BAA+B;AACvD,IAAI,mBAAmB,EAAE,gCAAgC;AACzD,IAAI,QAAQ,EAAE,4BAA4B;AAC1C,IAAI,SAAS,EAAE,6BAA6B;AAC5C;;ACbO,MAAM,sBAAsB,CAAC;AACpC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACrE,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC9D,IAAI;AACJ,IAAI,MAAM,UAAU,CAAC,OAAO,EAAE;AAC9B,QAAQ,MAAM,GAAG,GAAG,MAAM,sEAAmC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AAC7G,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE;AACxD,QAAQ,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE;AACzD,YAAY,KAAK,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,mEAAmE,CAAC;AACpI,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,IAAI,EAAE;AAClB,gBAAgB,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AAChE,aAAa;AACb,SAAS,CAAC;AACV;AACA,QAAQ,MAAM,eAAe,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;AAC5D,QAAQ,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC3C,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI;AACxB,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI;AACxB,SAAS,CAAC,CAAC;AACX,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACjK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACzBN,MAAM,kBAAkB,CAAC;AAChC,IAAI,GAAG;AACP,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;AAChD,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC5D,QAAQ,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACtE,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACrD,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC5D,QAAQ,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACjE,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnG,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpG,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtH,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AACpD,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtI,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjI,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjI,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9H;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtH,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtH,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtH;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClH,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpG,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE;AACjH,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,iBAAiB,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1J,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY;AAClD,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,EAAE;AACvC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE;AACrC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,0BAA0B,CAAC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrI,QAAQ,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM;AAChC,YAAY,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACxD,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,KAAK;AAC/B,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,KAAK;AACjC,oBAAoB,SAAS,EAAE,KAAK;AACpC,oBAAoB,MAAM,EAAE,KAAK;AACjC,oBAAoB,KAAK,EAAE,KAAK;AAChC,iBAAiB;AACjB,YAAY;AACZ,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC;AACzD,YAAY,OAAO;AACnB,gBAAgB,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,aAAa;AACpD,gBAAgB,SAAS,EAAE,MAAM,CAAC,IAAI,IAAI,aAAa;AACvD,gBAAgB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,KAAK;AACpH,gBAAgB,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,KAAK;AACzF,aAAa;AACb,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM;AAChF,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,MAAM;AACvF,YAAY,IAAI,CAAC,iBAAiB,EAAE;AACpC,QAAQ,CAAC,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY;AACtD,YAAY,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAC/C,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AACvC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACrH,YAAY;AACZ,YAAY,IAAI,CAAC,iBAAiB,EAAE;AACpC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AACrC,IAAI;AACJ,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AAC1D,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;AAC9C,YAAY,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACnG,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACpE,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;AACrC,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,IAAI;AACJ,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE;AACjD,YAAY,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM;AAC9C,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AAC9D,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,CAAC,OAAO,EAAE;AACrB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACvD,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,IAAI;AACJ,IAAI,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,GAAG,EAAE,EAAE;AACvD;AACA,QAAQ,MAAM,iBAAiB,GAAG,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC;AACvD;AACA,QAAQ,IAAI,IAAI,KAAK,UAAU,EAAE;AACjC,YAAY,OAAO,iBAAiB;AACpC,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/C,gBAAgB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,iBAAiB,CAAC;AACzF,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,OAAO,MAAM;AACjC,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,MAAM,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;AACxD,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;AAC/G,QAAQ,MAAM,MAAM,GAAG,EAAE;AACzB,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE;AAC5B,YAAY,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACnC,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1E,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,GAAG,GAAG;AACV,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AAC3C,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,IAAI,EAAE,iBAAiB,CAAC,QAAQ;AAC5C,YAAY,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACzC,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS;AACT,QAAQ,GAAG,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxD,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC;AACzE,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,IAAI,EAAE,aAAa;AAC/B,YAAY,QAAQ,EAAE,EAAE;AACxB,YAAY,IAAI,EAAE,cAAc;AAChC,SAAS;AACT,QAAQ,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzD,QAAQ,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC;AAC5C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1D,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAClD,IAAI;AACJ,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtD,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC/B,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;AAChC,IAAI;AACJ,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtD,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;AAClE,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;AACxC,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACnD,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACvD,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACxD,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE;AAC7B,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,EAAE;AAC7C,YAAY,OAAO,IAAI,CAAC;AACxB,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC1B,YAAY,OAAO,IAAI;AACvB,QAAQ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3C,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;AACxD,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO,KAAK,CAAC;AAC7B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI;AACJ,IAAI,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE;AAChD,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC5B,YAAY,OAAO,IAAI;AACvB,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE;AAC/E,YAAY,OAAO,MAAM,CAAC;AAC1B,QAAQ;AACR,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE;AAC7C,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC;AAC1D,YAAY,IAAI,WAAW;AAC3B,gBAAgB,OAAO,WAAW;AAClC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI;AACJ,IAAI,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE;AACpD,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,IAAI,OAAO,GAAG,IAAI;AAC9B,YAAY,OAAO,OAAO,EAAE;AAC5B,gBAAgB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AAChF,gBAAgB,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE;AAC1D,oBAAoB,OAAO,OAAO;AAClC,gBAAgB;AAChB,gBAAgB,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AACvE,YAAY;AACZ,QAAQ;AACR,aAAa;AACb;AACA,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnD,oBAAoB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;AAClF,oBAAoB,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,EAAE;AAC9D,wBAAwB,OAAO,KAAK;AACpC,oBAAoB;AACpB,oBAAoB,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACnF,oBAAoB,IAAI,cAAc;AACtC,wBAAwB,OAAO,cAAc;AAC7C,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI;AACJ,IAAI,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE;AACjC;AACA,QAAQ,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;AACtC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACrE;AACA,QAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAClG;AACA,QAAQ,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AACxD,QAAQ,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3D,QAAQ,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC;AAC9C,QAAQ,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC;AAC3C;AACA,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAC7C,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACvC,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;AAC7C,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB;AAC3C,aAAa,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAC3F,YAAY,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC;AACzD,YAAY,OAAO;AACnB,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC;AACvD,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,YAAY,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC;AACjG,QAAQ;AACR;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvE,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC;AACxG,QAAQ;AACR,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACtD,QAAQ,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC;AAChF,QAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC;AACnD,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACxC,IAAI;AACJ,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC;AAC9C,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AACnE,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACjD,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAClC,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AACnE,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACjD,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;AAClC,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;AACnE,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACjD,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AACnC,IAAI;AACJ,IAAI,cAAc,CAAC,GAAG,EAAE;AACxB,QAAQ,MAAM,QAAQ,GAAG,UAAU;AACnC;AACA,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAChC,YAAY,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC/D,QAAQ;AACR,aAAa,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AAC1D;AACA,YAAY,IAAI,MAAM,GAAG,EAAE;AAC3B,YAAY,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACjC;AACA,gBAAgB,IAAI,GAAG,KAAK,QAAQ,EAAE;AACtC,oBAAoB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/D,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,MAAM;AACzB,QAAQ;AACR;AACA,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,MAAM,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE;AACjE;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACrE;AACA,QAAQ,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzD,QAAQ,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC;AAC5C;AACA;AACA,QAAQ,cAAc,CAAC,KAAK,EAAE;AAC9B,QAAQ,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC;AAC9C;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,YAAY,IAAI,CAAC,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACrJ,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;AACvC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;AACxC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,QAAQ;AACR,IAAI;AACJ,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;AACtC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;AACxC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AACtC,QAAQ;AACR,IAAI;AACJ,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;AACxC,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,aAAa,EAAE;AAC1C,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9B,QAAQ;AACR,IAAI;AACJ,IAAI,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAClE,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE;AACtE,YAAY,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC;AACvE,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACnD,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC;AAC5E,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAY,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC;AACzD,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;AACxC,YAAY,gBAAgB,CAAC,QAAQ,GAAG,EAAE;AAC1C,QAAQ;AACR;AACA,QAAQ,MAAM,SAAS,GAAG,CAAC,IAAI,KAAK;AACpC,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjE,YAAY,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7D,YAAY,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK;AAC1C,gBAAgB,SAAS,CAAC,CAAC,CAAC;AAC5B,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC;AACT,QAAQ,SAAS,CAAC,OAAO,CAAC;AAC1B;AACA,QAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAC7G;AACA,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACvD,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7C,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;AAC/B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AACzC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,0BAA0B,CAAC,SAAS,EAAE;AAChF,gBAAgB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/E,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,iCAAiC,CAAC;AAC5E,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACjK,gBAAgB,IAAI,MAAM,CAAC,OAAO,EAAE;AACpC,oBAAoB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;AAClD,oBAAoB,MAAM,CAAC,KAAK,EAAE;AAClC,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE;AACzC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACrE,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,iCAAiC,CAAC;AACxE,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAC9C,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AACnC,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB;AACA,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AACrC;AACA,QAAQ,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;AACtE;AACA,QAAQ,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAC7C;AACA,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AAC7C,QAAQ,CAAC,CAAC,IAAI,GAAG,GAAG;AACpB,QAAQ,CAAC,CAAC,QAAQ,GAAG,aAAa;AAClC;AACA,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACpC;AACA,QAAQ,CAAC,CAAC,KAAK,EAAE;AACjB;AACA,QAAQ,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC;AAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACpC,IAAI;AACJ,IAAI,MAAM,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,QAAQ,EAAE,0BAA0B,CAAC,SAAS,EAAE,EAAE;AACrF,QAAQ,IAAI,OAAO,GAAG,IAAI;AAC1B,QAAQ,IAAI;AACZ,YAAY,IAAI,OAAO,CAAC,QAAQ,IAAI,0BAA0B,CAAC,SAAS,EAAE;AAC1E,gBAAgB,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AACvD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACrL,YAAY;AACZ,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AACtD,gBAAgB,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AACjD,YAAY;AACZ,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AACnC,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;AACtD,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;AACpG,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACnC,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACjC,YAAY,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AAC7C,YAAY,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,aAAa,CAAC,OAAO,EAAE;AACjC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC5C,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AACxD,QAAQ,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;AAC3C,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,KAAK,EAAE,SAAS;AAC5B,YAAY,OAAO,EAAE,CAAC,CAAC,KAAK;AAC5B,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,CAAC;AACb,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAChD,YAAY,IAAI,EAAE,aAAa;AAC/B,YAAY,KAAK,EAAE,iBAAiB;AACpC,YAAY,aAAa,EAAE,SAAS;AACpC,YAAY,IAAI,EAAE,oBAAoB;AACtC,YAAY,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACvC,YAAY,OAAO,EAAE,CAAC,MAAM,CAAC;AAC7B,SAAS,CAAC;AACV,QAAQ,IAAI;AACZ,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,KAAK,KAAK;AACxF,gBAAgB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,IAAI,GAAG,CAAC,CAAC;AAC7E,gBAAgB,MAAM,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AACpE,YAAY,CAAC,CAAC;AACd,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC3C,YAAY,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AACtC,YAAY,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAC9C,YAAY,MAAM,CAAC,eAAe,CAAC,6BAA6B,CAAC;AACjE,YAAY,MAAM,CAAC,IAAI,GAAG,MAAM;AAChC,YAAY,MAAM,CAAC,KAAK,GAAG,SAAS;AACpC,YAAY,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC;AACxC,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,YAAY,CAAC,EAAE,GAAG,CAAC;AACnB,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC7C,YAAY,MAAM,CAAC,eAAe,CAAC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,qBAAqB,CAAC;AAClG,YAAY,MAAM,CAAC,IAAI,GAAG,OAAO;AACjC,YAAY,MAAM,CAAC,KAAK,GAAG,QAAQ;AACnC,QAAQ;AACR,IAAI;AACJ,IAAI,eAAe,CAAC,IAAI,EAAE;AAC1B,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AACtB,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,YAAY,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC/F,QAAQ;AACR,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,kBAAkB,CAAC,IAAI,EAAE;AAC7B;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,IAAI,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C;AACA,QAAQ,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE;AACvC,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC;AAC5D;AACA,QAAQ,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC9C,YAAY,KAAK,EAAE;AACnB,YAAY,UAAU,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,QAAQ;AACR,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;AAC/C,IAAI;AACJ,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE;AACjC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;AACvB,YAAY,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/C,gBAAgB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;AAClD,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO,EAAE;AAClE,YAAY,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE;AACjC,YAAY,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;AACzD,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,iBAAiB,GAAG;AAC9B,QAAQ,MAAM,GAAG,GAAG,MAAM,iEAAyC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAAC;AACpH,QAAQ,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE;AAC1C,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,IAAI,EAAE;AAClB,gBAAgB,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE;AACxC,gBAAgB,cAAc,EAAE,IAAI;AACpC,aAAa;AACb,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AAC/C,IAAI;AACJ,IAAI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE;AAClD,QAAQ,MAAM,MAAM,GAAG,QAAQ;AAC/B,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAChC,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB;AACA,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;AACnC,YAAY,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,4BAA4B,EAAE;AACrE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC,CAAC;AACf,QAAQ;AACR;AACA,QAAQ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACrG,QAAQ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACnG,QAAQ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AACpG,QAAQ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9G;AACA,QAAQ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,+BAA+B,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvH;AACA,QAAQ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,gCAAgC,CAAC,CAAC;AACrE,QAAQ,IAAI,QAAQ,CAAC,aAAa,EAAE;AACpC,YAAY,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AAC7C,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;AAClC,gBAAgB,IAAI,CAAC,MAAM,GAAG,SAAS;AACvC,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,MAAM,cAAc,CAAC,OAAO,EAAE;AAClC,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ;AACvC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC7C,YAAY,MAAM,OAAO,GAAG;AAC5B,gBAAgB,IAAI,EAAE,OAAO,CAAC,IAAI;AAClC,gBAAgB,IAAI,EAAE,OAAO,CAAC,IAAI;AAClC,gBAAgB,OAAO,EAAE;AACzB,aAAa;AACb,YAAY,MAAM,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;AAC1D,YAAY,IAAI,OAAO,CAAC,OAAO;AAC/B,gBAAgB;AAChB,QAAQ;AACR,QAAQ,QAAQ,OAAO,CAAC,IAAI;AAC5B,YAAY,KAAK,+BAA+B,CAAC,IAAI,EAAE;AACvD,gBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACpD,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,4BAA4B,CAAC,IAAI,EAAE;AACpD,gBAAgB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5C,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,KAAK,+BAA+B,CAAC,IAAI,EAAE;AACvD,gBAAgB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9C,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,KAAK,uBAAuB,CAAC,IAAI,EAAE;AAC/C,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,qBAAqB,CAAC,IAAI,EAAE;AAC7C,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,sBAAsB,CAAC,IAAI,EAAE;AAC9C,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,uBAAuB,CAAC,IAAI,EAAE;AAC/C,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,gBAAgB;AAChB,YAAY;AACZ;AACA;AACA,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC;AACpE,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC,aAAa,CAAC;AAC3E,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACtL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACzI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACxpBhC,MAAM,mCAAmC,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACzD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC1D,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE;AACzB,QAAQ,CAAC,CAAC,WAAW,CAAC,eAAe,EAAE;AACvC,QAAQ,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/D,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACtM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,mCAAmC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAChO;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,sIAAsI,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AAClzB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,UAAU,EAAE,CAAC;AAC9I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,QAAQ,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,sIAAsI,CAAC,EAAE;AAC7R,SAAS,CAAC,EAAE,CAAC;;AC7BN,MAAM,uCAAuC,CAAC;AACrD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnF,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE;AAC/B,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3B,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1M,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,uCAAuC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qCAAqC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3Y;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAED,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AAChqB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,UAAU,EAAE,CAAC;AAClJ,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,qCAAqC;AACnE,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC;AAChE,oBAAoB,aAAa,EAAE,iBAAiB,CAAC;AACrD,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;ACxCrK,MAAM,uCAAuC,CAAC;AACrD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACzD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC1D,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAE;AACzC,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE;AACzB,QAAQ,CAAC,CAAC,eAAe,EAAE;AAC3B,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO;AAC9B,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACnC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC/B,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACnE,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB;AACA,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;AAC7B,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI;AAC/B,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI;AAC/B,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1M,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,uCAAuC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qCAAqC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC7T;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AAChO;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,UAAU,EAAE,CAAC;AAClJ,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,qCAAqC;AACnE,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC;AAChE,oBAAoB,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACzD,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC;AACxC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACnEZ,MAAM,8BAA8B,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1H,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE;AAChC,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3J,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI;AACJ,IAAI,gBAAgB,CAAC,CAAC,EAAE;AACxB,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI;AACJ,IAAI,WAAW,CAAC,CAAC,EAAE;AACnB,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACzB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,0BAA0B,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACpe;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,2oBAA2oB,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACluB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,QAAQ,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,2oBAA2oB,CAAC,EAAE;AAC1tB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACjP,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;AAC/C,aAAa,CAAC,EAAE,EAAE,CAAC;;ACvDZ,MAAM,8BAA8B,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACrH,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC5H,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxJ,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9J,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,IAAI;AACJ,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3B,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,IAAI;AACJ,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAChD,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1B,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO;AACf,YAAY,cAAc,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACpF,SAAS;AACT,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,0BAA0B,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACtqB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,kpBAAkpB,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACzuB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,QAAQ,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,kpBAAkpB,CAAC,EAAE;AACjuB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC;AAC5X,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;AAC/C,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;AC7DnB;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,MAAM,CAAC,KAAK;AAC3B,QAAQ,WAAW,EAAE,MAAM,CAAC,WAAW;AACvC,QAAQ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,kBAAkB;AAC/C,QAAQ,QAAQ,EAAE,MAAM,CAAC,MAAM;AAC/B,QAAQ,IAAI,EAAE;AACd,KAAK;AACL;AACO,MAAM,gCAAgC,SAAS,mBAAmB,CAAC;AAC1E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,6BAA6B;AAC7D,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM;AAC7C,YAAY,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1G,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnE;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnG;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE;AAC1D,YAAY,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI;AAC3D,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;AAC/D,gBAAgB,MAAM,UAAU,GAAG,eAAe,KAAK,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC;AACrI,gBAAgB,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AACxI,gBAAgB,OAAO,UAAU,IAAI,aAAa;AAClD,YAAY,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrD,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzI,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5I;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvJ,QAAQ,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1J;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU;AAC/D,aAAa,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC;AACrD,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;AACvC,aAAa,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3K;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5P,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClG,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpI,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACzC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC5F,IAAI;AACJ,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK;AAChC,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,EAAE;AAC5C,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C,QAAQ;AACR,IAAI;AACJ,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAClC,QAAQ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU;AAC5C,QAAQ,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI;AAC1C,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;AAC3B,YAAY,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE;AAC3D,YAAY,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC;AACxF,YAAY,IAAI,iBAAiB,EAAE;AACnC;AACA,gBAAgB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,CAAC;AAC9F,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAC/E,YAAY;AACZ,QAAQ;AACR,aAAa;AACb;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;AACrD,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,oBAAoB,CAAC,UAAU,EAAE;AAC3C,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU;AACrC,QAAQ,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI;AAC1C,QAAQ,cAAc,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM;AACtD;AACA,QAAQ,IAAI,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACxF;AACA,QAAQ,IAAI,cAAc,CAAC,MAAM,EAAE;AACnC,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC9D,gBAAgB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvD,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC;AACxF,QAAQ;AACR;AACA,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC;AACxG;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC;AAC7C,IAAI;AACJ;AACA,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtD,IAAI;AACJ;AACA,IAAI,oBAAoB,CAAC,UAAU,EAAE;AACrC,QAAQ,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI;AAC9C,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;AACpD,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;AACvD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACrM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,gCAAgC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,4lEAA4lE,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAED,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,+BAA+B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACvrK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,UAAU,EAAE,CAAC;AAC3I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE;AAC9B,wBAAwB,YAAY;AACpC,wBAAwB,cAAc;AACtC,wBAAwB,WAAW;AACnC,wBAAwB,cAAc;AACtC,wBAAwB,iBAAiB;AACzC,wBAAwB,YAAY;AACpC,wBAAwB,iBAAiB;AACzC,wBAAwB,kBAAkB;AAC1C,wBAAwB,sBAAsB;AAC9C,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,4lEAA4lE,EAAE;AACtqE,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;;;;;;ACpJ/K,MAAM,kCAAkC,CAAC;AAChD;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC9D,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AAClC,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF,QAAQ,IAAI,CAAC,kBAAkB,GAAG,KAAK;AACvC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI;AACjC,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxD,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrG,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzG,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnF,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI;AACpD,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC;AACjD,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC9E,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AACpC,aAAa,IAAI;AACjB;AACA,QAAQ,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACtM,aAAa,SAAS,CAAC,CAAC,CAAC,KAAK;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC;AAChD,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AACpC,aAAa,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9F,aAAa,SAAS,CAAC,CAAC,CAAC,KAAK;AAC9B,YAAY,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM;AAC9C,gBAAgB,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AACtE,oBAAoB,IAAI,CAAC,kBAAkB,EAAE;AAC7C,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,mBAAmB,EAAE;AAC9C,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AACpC,aAAa,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACtI,aAAa,SAAS,CAAC,CAAC,CAAC,KAAK;AAC9B,YAAY,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AAC5D,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AACpC,aAAa,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAClF,aAAa,SAAS,CAAC,CAAC,CAAC,KAAK;AAC9B,YAAY,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;AAClE,QAAQ,CAAC,CAAC;AACV;AACA,IAAI;AACJ;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAChD,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI;AAC1D,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa;AAChG,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa;AAChF;AACA;AACA,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC;AACA,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACjC,YAAY,CAAC,CAAC,WAAW,EAAE;AAC3B,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,KAAK;AACvC,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI;AACjC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC;AACA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrC,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG;AAC1B;AACA,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC1C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACzC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACpC,YAAY,IAAI,CAAC,aAAa,GAAG,MAAM;AACvC,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;AACvE;AACA,YAAY,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC;AAC1H,kBAAkB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI;AAC7D,iBAAiB,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;AAC5E,iBAAiB,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK;AACvC,gBAAgB,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE;AAC1C,YAAY,CAAC,EAAE,EAAE,CAAC;AAClB;AACA,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC3E,YAAY,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;AAC5E,YAAY,MAAM,UAAU,GAAG;AAC/B,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjC,gBAAgB,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;AAC7C,gBAAgB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnC,gBAAgB,YAAY,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC;AACjE,aAAa;AACb,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC1C,gBAAgB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrC,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB;AACpB,wBAAwB,OAAO,EAAE,gBAAgB;AACjD,wBAAwB,QAAQ,EAAE,UAAU;AAC5C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC;AACd,YAAY,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE;AAC7E,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ;AACpG,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAChD,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;AACpD,YAAY,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AAC9D,YAAY,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAClE,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC9C,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAC5C;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC;AAC1B,iBAAiB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE;AAC3E,iBAAiB,SAAS,CAAC,MAAM;AACjC,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAC/C,gBAAgB,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC;AACpD,gBAAgB,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC7D,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACrD,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,UAAU,EAAE;AAC/C,oBAAoB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AACxC,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK;AAClE,4BAA4B,CAAC,CAAC,eAAe,EAAE;AAC/C,4BAA4B,IAAI,CAAC,UAAU,EAAE;AAC7C,4BAA4B,IAAI,CAAC,KAAK,EAAE;AACxC,wBAAwB,CAAC,CAAC;AAC1B,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK;AACnE,4BAA4B,CAAC,CAAC,eAAe,EAAE;AAC/C,4BAA4B,IAAI,CAAC,aAAa,EAAE;AAChD,4BAA4B,IAAI,CAAC,IAAI,EAAE;AACvC,wBAAwB,CAAC,CAAC;AAC1B,wBAAwB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;AAC9D,4BAA4B,CAAC,CAAC,eAAe,EAAE;AAC/C,4BAA4B,IAAI,CAAC,kBAAkB,EAAE;AACrD,4BAA4B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACxE,wBAAwB,CAAC,CAAC;AAC1B,wBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC9C,4BAA4B,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/C,4BAA4B,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,aAAa,CAAC;AAC/D,4BAA4B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnD,4BAA4B,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE;AAC/C,yBAAyB,CAAC;AAC1B,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzC,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC;AAC5D,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC,QAAQ;AACR,gBAAgB;AAChB,YAAY,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC3C,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACpD,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACnD,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC5C,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;AAC/D,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACpF,IAAI;AACJ,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC;AAClE,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM;AAC1C,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACpC,gBAAgB,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACpE;AACA,gBAAgB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,WAAW,EAAE;AACjH,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5D,gBAAgB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;AAChE,gBAAgB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;AAC9D,oBAAoB,CAAC,CAAC,cAAc,EAAE;AACtC,oBAAoB,CAAC,CAAC,eAAe,EAAE;AACvC,oBAAoB,IAAI,CAAC,MAAM,EAAE;AACjC,gBAAgB,CAAC,CAAC;AAClB,gBAAgB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK;AACnE,oBAAoB,CAAC,CAAC,cAAc,EAAE;AACtC,oBAAoB,CAAC,CAAC,eAAe,EAAE;AACvC,oBAAoB,IAAI,CAAC,IAAI,EAAE;AAC/B,gBAAgB,CAAC,CAAC;AAClB,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5D,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM;AAC1C,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACpC,gBAAgB,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;AACvE;AACA,gBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AACtC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,2BAA2B,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE;AACtD,QAAQ,IAAI,CAAC,GAAG;AAChB,YAAY;AACZ;AACA,QAAQ,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACtD,YAAY,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG;AACzE,YAAY,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,cAAc,KAAK;AAC1D,gBAAgB,OAAO,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,CAAC;AAC9D,YAAY,CAAC,CAAC;AACd,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,CAAC,MAAM,EAAE;AACzB,QAAQ,IAAI,IAAI,CAAC,QAAQ,YAAY,uBAAuB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,IAAI,IAAI,EAAE;AAClG,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC;AACvE,QAAQ;AACR,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,cAAc,KAAK;AACtD,YAAY,OAAO,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC;AAChD,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AACvD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACrM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,kCAAkC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAChoC;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kCAAkC,EAAE,UAAU,EAAE,CAAC;AAC7I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,gCAAgC;AAC9D,oBAAoB,UAAU,EAAE,IAAI;AACpC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;AChRptB,MAAM,yBAAyB,CAAC;AACvC;AACA,IAAI,qBAAqB,CAAC,UAAU,EAAE;AACtC,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;AAC5D,QAAQ,MAAM,UAAU,GAAG,EAAE;AAC7B;AACA,QAAQ,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC9D,YAAY,IAAI;AAChB;AACA,gBAAgB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AAC/D;AACA,oBAAoB,IAAI,IAAI,YAAY,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE;AACnH;AACA,wBAAwB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACzE,4BAA4B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC5D,wBAAwB;AACxB,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,CAAC,CAAC;AAC/D,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC;AACnF,IAAI;AACJ,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE;AACrD,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC1D,QAAQ,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC;AAC1D;AACA,QAAQ,IAAI,WAAW,GAAG,EAAE;AAC5B,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClC;AACA,YAAY,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;AAC1E,YAAY,WAAW,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAChF,QAAQ,CAAC,CAAC;AACV,QAAQ,UAAU,CAAC,SAAS,GAAG,WAAW;AAC1C,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC;AAC7D,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AAC1F,IAAI;AACJ;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,UAAU,EAAE;AAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,YAAY,EAAE,EAAE,GAAG;AACnB,YAAY,EAAE,EAAE,GAAG;AACnB,YAAY,EAAE,EAAE,IAAI;AACpB,YAAY,EAAE,EAAE,IAAI;AACpB,YAAY,GAAG,EAAE,IAAI;AACrB,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACvC,gBAAgB,KAAK,IAAI;AACzB,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,KAAK,IAAI;AACzB,gBAAgB,KAAK,IAAI;AACzB,oBAAoB,OAAO,OAAO;AAClC,gBAAgB;AAChB,oBAAoB,OAAO,MAAM;AACjC;AACA,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM;AAC/B,YAAY,IAAI,CAAC,iBAAiB,EAAE;AACpC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;AAC7C,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC/D,YAAY;AACZ,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM;AAC/C,YAAY,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;AACvC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,wBAAwB,CAAC,CAAC,EAAE;AAChC,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,mBAAmB,CAAC;AAClE,QAAQ,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,mBAAmB,CAAC;AAClE,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAY,CAAC,CAAC,QAAQ,GAAG,IAAI;AAC7B,YAAY;AACZ,QAAQ;AACR,QAAQ,QAAQ,CAAC,MAAM,EAAE;AACzB;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC1E,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE;AAC9B,gBAAgB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACtC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,CAAC,CAAC,QAAQ,GAAG,IAAI;AACjC,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC;AACrE,YAAY,CAAC,CAAC,QAAQ,GAAG,IAAI;AAC7B,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC;AACnD;AACA,QAAQ,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC;AACpD,IAAI;AACJ,IAAI,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE;AAC1C,QAAQ,IAAI,MAAM,GAAG,QAAQ,EAAE,MAAM;AACrC,QAAQ,MAAM,WAAW,GAAG,EAAE;AAC9B;AACA,QAAQ,OAAO,MAAM,EAAE;AACvB,YAAY,IAAI;AAChB,gBAAgB,MAAM,MAAM,GAAG,MAAM;AACrC,gBAAgB,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC;AACnF;AACA,gBAAgB,MAAM,cAAc,GAAG;AACvC,oBAAoB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;AAC7C,oBAAoB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;AAC5C,oBAAoB,KAAK,EAAE;AAC3B,wBAAwB;AACxB,4BAA4B,IAAI,EAAE,QAAQ;AAC1C,4BAA4B,IAAI,EAAE,QAAQ;AAC1C,4BAA4B,KAAK,EAAE,IAAI;AACvC,4BAA4B,IAAI,EAAE,2BAA2B;AAC7D,yBAAyB;AACzB,wBAAwB,GAAG,kBAAkB;AAC7C,qBAAqB;AACrB,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC;AAC5E;AACA,gBAAgB,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;AAChD,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AAChF,YAAY;AACZ;AACA,YAAY,MAAM,GAAG,MAAM,EAAE,MAAM;AACnC,QAAQ;AACR;AACA,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,YAAY,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI;AAChD,YAAY,KAAK,CAAC,IAAI,CAAC;AACvB,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,qBAAqB;AAC3C,gBAAgB,KAAK,EAAE,WAAW;AAClC,aAAa,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,0BAA0B,CAAC,CAAC,EAAE;AACxC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACzB,YAAY,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;AACzD,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC9E,QAAQ;AACR,IAAI;AACJ,IAAI,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE;AACzC,QAAQ,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;AAC9B;AACA,YAAY,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE;AAC1D;AACA,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC9D,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACnC,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ;AACnC,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI;AACxC,QAAQ,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI;AACtC,QAAQ,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI;AAC/B,QAAQ,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI;AACtC,QAAQ,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI;AACxD,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,kcAAkc,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEH,IAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3jD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,kCAAkC,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,kcAAkc,EAAE;AAC7qB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC;AACtE,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,aAAa;AACpC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACnMZ,MAAM,+BAA+B,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,OAAO,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC;AACjD,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7C,IAAI;AACJ,IAAI,eAAe,CAAC,IAAI,EAAE;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC5C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAClM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACtN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAED,IAAE,CAAC,sBAAsB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,0BAA0B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACve;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AAC1I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,0BAA0B;AACxD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACzD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB;AACzF,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACnDN,MAAM,uCAAuC,CAAC;AACrD,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1M,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,uCAAuC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,6BAA6B,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,krBAAkrB,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,+BAA+B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACllC;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,UAAU,EAAE,CAAC;AAClJ,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,QAAQ,EAAE,krBAAkrB,EAAE;AAC1xB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACFhC,MAAM,+BAA+B,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,sCAAsC,CAAC;AAChF,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7E,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1G,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG;AAC3B,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE;AAC/C,YAAY,MAAM,EAAE,CAAC,6BAA6B,CAAC;AACnD,YAAY,OAAO,EAAE;AACrB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,eAAe,EAAE,KAAK;AAC1C,oBAAoB,QAAQ,EAAE,KAAK;AACnC,iBAAiB;AACjB,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,IAAI,EAAE;AAC1B;AACA,aAAa;AACb,YAAY,QAAQ,EAAE;AACtB,gBAAgB,WAAW,EAAE;AAC7B;AACA,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAClM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,o8BAAo8B,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,uCAAuC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACjwE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AAC1I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE;AAC7J,wBAAwB,iBAAiB;AACzC,wBAAwB,cAAc;AACtC,wBAAwB,uCAAuC;AAC/D,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,o8BAAo8B,EAAE;AACv+B,SAAS,CAAC,EAAE,CAAC;;ACrCN,MAAM,2BAA2B,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,82CAA82C,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEG,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,yBAAyB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,uCAAuC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACt6G;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE;AACxJ,wBAAwB,YAAY;AACpC,wBAAwB,iBAAiB;AACzC,wBAAwB,cAAc;AACtC,wBAAwB,gBAAgB;AACxC,wBAAwB,uCAAuC;AAC/D,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,82CAA82C,EAAE;AACj5C,SAAS,CAAC,EAAE,CAAC;;AClBN,MAAM,2BAA2B,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE;AACxC,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF,QAAQC,OAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM;AAC7E,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC5D,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,iBAAiB,CAAC,QAAQ;AAC5C,YAAY,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAClD,SAAS;AACT,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE;AACzB;AACA,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvE,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB;AACA,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/C,IAAI;AACJ,IAAI,SAAS,CAAC,IAAI,EAAE;AACpB,QAAQ,OAAO,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC;AAC3C,IAAI;AACJ,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE;AACzB,QAAQ,CAAC,CAAC,eAAe,EAAE;AAC3B,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7C,IAAI;AACJ,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE;AACnC,QAAQ,KAAK,CAAC,eAAe,EAAE,CAAC;AAChC,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACjC,IAAI;AACJ,IAAI,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE;AAC7B,QAAQ,CAAC,CAAC,eAAe,EAAE;AAC3B,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC5C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mwFAAmwF,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEL,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,uCAAuC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC13H;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE;AACxJ,wBAAwB,YAAY;AACpC,wBAAwB,iBAAiB;AACzC,wBAAwB,uCAAuC;AAC/D,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,mwFAAmwF,EAAE;AACtyF,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACpDhC,MAAM,yBAAyB,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,khDAAkhD,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,uCAAuC,EAAE,QAAQ,EAAE,6BAA6B,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AAChuF;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE;AACtJ,wBAAwB,mBAAmB;AAC3C,wBAAwB,iBAAiB;AACzC,wBAAwB,cAAc;AACtC,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,khDAAkhD,EAAE;AACrjD,SAAS,CAAC,EAAE,CAAC;;ACjBN,MAAM,8BAA8B,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,IAAI;AACJ,IAAI,mBAAmB,CAAC,KAAK,EAAE;AAC/B,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AAChE,YAAY,KAAK,CAAC,cAAc,EAAE;AAClC,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACvC,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;AAChE,YAAY,KAAK,CAAC,cAAc,EAAE;AAClC,YAAY,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AACrC,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC7D,YAAY,QAAQ,KAAK,CAAC,IAAI;AAC9B,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,KAAK,CAAC,cAAc,EAAE;AAC1C,oBAAoB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACtC,oBAAoB;AACpB;AACA,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;AAC3B,YAAY,QAAQ,KAAK,CAAC,IAAI;AAC9B,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,KAAK,CAAC,cAAc,EAAE;AAC1C,oBAAoB,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxC,wBAAwB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC7C,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3C,oBAAoB;AACpB,oBAAoB;AACpB,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,KAAK,CAAC,cAAc,EAAE;AAC1C,oBAAoB,IAAI,KAAK,CAAC,QAAQ,EAAE;AACxC,wBAAwB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACxD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;AACxD,oBAAoB;AACpB,oBAAoB;AACpB;AACA,QAAQ;AACR;AACA,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC5D,YAAY,QAAQ,KAAK,CAAC,IAAI;AAC9B,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;AAChD,wBAAwB,KAAK,CAAC,cAAc,EAAE;AAC9C,wBAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3C,oBAAoB;AACpB,oBAAoB;AACpB,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;AAChD,wBAAwB,KAAK,CAAC,cAAc,EAAE;AAC9C,wBAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3C,oBAAoB;AACpB,oBAAoB;AACpB,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AACnD,wBAAwB,KAAK,CAAC,cAAc,EAAE;AAC9C,wBAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC3C,oBAAoB;AACpB,oBAAoB;AACpB,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AACnD,wBAAwB,KAAK,CAAC,cAAc,EAAE;AAC9C,wBAAwB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC5C,oBAAoB;AACpB,oBAAoB;AACpB,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AACnD;AACA,wBAAwB,KAAK,CAAC,cAAc,EAAE;AAC9C,wBAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC1C,oBAAoB;AACpB,oBAAoB;AACpB,gBAAgB,KAAK,MAAM;AAC3B,oBAAoB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;AACjD,wBAAwB,KAAK,CAAC,cAAc,EAAE;AAC9C,wBAAwB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC5C,oBAAoB;AACpB,oBAAoB;AACpB;AACA,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,20IAA20I,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACx0K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,QAAQ,EAAE,20IAA20I,EAAE;AAC97I,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,mBAAmB,EAAE,CAAC;AACpD,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;AACrD,aAAa,CAAC,EAAE,EAAE,CAAC;;AC/FZ,MAAM,mCAAmC,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACtM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,mCAAmC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3X;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAED,IAAE,CAAC,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,iBAAiB,EAAE,sBAAsB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,0BAA0B,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;AACtxB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,UAAU,EAAE,CAAC;AAC9I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,yBAAyB;AACvD,oBAAoB,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,YAAY,CAAC;AACnF,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;AChB7J,MAAM,0BAA0B,CAAC;AACxC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACjD,QAAQ,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,iBAAiB,CAAC,GAAG,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvL,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AAC/C,YAAY,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAChD,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE;AACvB,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,0BAA0B,CAAC,SAAS,CAAC,EAAE,CAAC;AACrH,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,MAAM,MAAM,GAAG,EAAE;AACzB,QAAQ,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK;AACnC,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,0BAA0B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,gCAAgC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,0yKAA0yK,EAAE,MAAM,EAAE,CAAC,g3IAAg3I,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAED,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,+BAA+B,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,0BAA0B,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,+BAA+B,EAAE,QAAQ,EAAE,2BAA2B,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mCAAmC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,yBAAyB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEI,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,0BAA0B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,yBAAyB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACr+a;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;AACtG,wBAAwB,YAAY;AACpC,wBAAwB,mBAAmB;AAC3C,wBAAwB,yBAAyB;AACjD,wBAAwB,gCAAgC;AACxD,wBAAwB,+BAA+B;AACvD,wBAAwB,2BAA2B;AACnD,wBAAwB,8BAA8B;AACtD,wBAAwB,2BAA2B;AACnD,wBAAwB,+BAA+B;AACvD,wBAAwB,yBAAyB;AACjD,wBAAwB,mCAAmC;AAC3D,wBAAwB,YAAY;AACpC,wBAAwB,cAAc;AACtC,wBAAwB,cAAc;AACtC,wBAAwB,iBAAiB;AACzC,wBAAwB,YAAY;AACpC,wBAAwB,mBAAmB;AAC3C,wBAAwB,gBAAgB;AACxC,wBAAwB,sBAAsB;AAC9C,qBAAqB,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,0yKAA0yK,EAAE,MAAM,EAAE,CAAC,g3IAAg3I,CAAC,EAAE;AAC1uT,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;AAC7P,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,gCAAgC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;AACzE,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;AC1EZ,MAAM,uCAAuC,CAAC;AACrD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvH,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpG,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACrD,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC5D,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,UAAU,EAAE;AACjH,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC;AACb,aAAa,MAAM,CAAC,sBAAsB,CAAC,OAAO;AAClD,aAAa,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB;AACpD,aAAa,SAAS,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAClD,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE;AACzC,YAAY,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;AACnE,YAAY,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO;AACvE,YAAY,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO;AACzD,QAAQ;AACR,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC;AAChE,IAAI;AACJ,IAAI,oBAAoB,CAAC,CAAC,EAAE;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI;AAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC;AACtF,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC,OAAO,CAAC;AACrE,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1M,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,uCAAuC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC5P;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,0BAA0B,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AAClgB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,UAAU,EAAE,CAAC;AAClJ,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,2BAA2B;AACzD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACzD,oBAAoB,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAClD,oBAAoB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC/C,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC1DhC,MAAM,sCAAsC,CAAC;AACpD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY;AACZ,YAAY,QAAQ,IAAI,CAAC,IAAI,EAAE;AAC/B,gBAAgB,KAAK,IAAI;AACzB,oBAAoB,OAAO,OAAO;AAClC,gBAAgB,KAAK,IAAI;AACzB,gBAAgB,KAAK,IAAI;AACzB,oBAAoB,OAAO,OAAO;AAClC,gBAAgB;AAChB,oBAAoB,OAAO,MAAM;AACjC;AACA,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI;AAC7B,QAAQ,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI;AACjC,QAAQ,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI;AAC/B,QAAQ,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI;AAC/B,QAAQ,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI;AAChC,QAAQ,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI;AACrC,QAAQ,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI;AAC/B,QAAQ,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI;AACrC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,GAAG,IAAI;AACtC,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACzM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,sCAAsC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACjZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACnI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,UAAU,EAAE,CAAC;AACjJ,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,0BAA0B;AACxD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACzD,oBAAoB,OAAO,EAAE,CAAC,UAAU;AACxC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AAChI,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACtDZ,MAAM,iCAAiC,SAAS,mBAAmB,CAAC;AAC3E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACpD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACjD,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC5D,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK;AACnC,QAAQ,IAAI,CAAC,eAAe,GAAG,oBAAoB;AACnD,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzG,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnF;AACA,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK;AAC7F,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;AACxC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACvC,QAAQ,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;AAC1E,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;AACjD,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AACjC,YAAY,MAAM,CAAC,KAAK,EAAE;AAC1B,QAAQ;AACR,IAAI;AACJ,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC;AACvE,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACxE,IAAI;AACJ,IAAI,MAAM,qBAAqB,CAAC,KAAK,EAAE;AACvC,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC;AAC1F,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACpM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,iCAAiC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,81FAA81F,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,0BAA0B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEG,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sCAAsC,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mCAAmC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACtuJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,UAAU,EAAE,CAAC;AAC5I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;AACrG,wBAAwB,cAAc;AACtC,wBAAwB,mBAAmB;AAC3C,wBAAwB,cAAc;AACtC,wBAAwB,iBAAiB;AACzC,wBAAwB,kBAAkB;AAC1C,wBAAwB,sCAAsC;AAC9D,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,81FAA81F,EAAE;AACj4F,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;;;;;;ACzEvC;AACA;AACA;;;;"}
1
+ {"version":3,"file":"acorex-platform-layout-designer.mjs","sources":["../tmp-esm2022/layout/designer/lib/designer/shared/command.js","../tmp-esm2022/layout/designer/lib/designer/shared/designer-connector.service.js","../tmp-esm2022/layout/designer/lib/designer/shared/generic-commands.types.js","../tmp-esm2022/layout/designer/lib/designer/shared/designer.types.js","../tmp-esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.service.js","../tmp-esm2022/layout/designer/lib/designer/shared/designer.service.js","../tmp-esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-button.component.js","../tmp-esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.js","../tmp-esm2022/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.js","../tmp-esm2022/layout/designer/lib/designer/components/flex-drawer/flex-drawer.component.js","../tmp-esm2022/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.js","../tmp-esm2022/layout/designer/lib/designer/components/widget-picker/widget-picker.component.js","../tmp-esm2022/layout/designer/lib/designer/shared/widget-designer-renderer.directive.js","../tmp-esm2022/layout/designer/lib/designer/components/board/board.component.js","../tmp-esm2022/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.js","../tmp-esm2022/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.js","../tmp-esm2022/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.js","../tmp-esm2022/layout/designer/lib/designer/components/drawers/history/history.component.js","../tmp-esm2022/layout/designer/lib/designer/components/drawers/outline/outline.component.js","../tmp-esm2022/layout/designer/lib/designer/components/drawers/pages/pages.component.js","../tmp-esm2022/layout/designer/lib/designer/components/header-menu/header-menu.component.js","../tmp-esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.js","../tmp-esm2022/layout/designer/lib/designer/designer.component.js","../tmp-esm2022/layout/designer/lib/preview/preview-viewer.component.js","../tmp-esm2022/layout/designer/lib/preview/preview-frame.component.js","../tmp-esm2022/layout/designer/lib/preview/preview.component.js","../tmp-esm2022/layout/designer/acorex-platform-layout-designer.js"],"sourcesContent":["import { computed, Injectable, signal } from \"@angular/core\";\nimport { cloneDeep, merge } from \"lodash-es\";\nimport * as i0 from \"@angular/core\";\n// AddWidgetCommand\nexport class AddWidgetCommand {\n constructor(widget, parent, previousSelection) {\n this.widget = widget;\n this.parent = parent;\n this.previousSelection = previousSelection;\n }\n execute() {\n this.parent.children = this.parent.children || [];\n this.parent.children.push(this.widget);\n }\n undo() {\n this.parent.children = this.parent.children || [];\n const index = this.parent.children.indexOf(this.widget);\n if (index > -1) {\n this.parent.children.splice(index, 1);\n }\n }\n description() {\n return `Added widget ${this.widget.name}`;\n }\n icon() {\n return `fa-solid fa-square-plus`;\n }\n getExecutionSelection() {\n return this.widget; // After executing, select the newly added widget\n }\n getUndoSelection() {\n return this.previousSelection; // After undo, select the previously selected widget\n }\n}\nexport class RemoveWidgetCommand {\n constructor(widget, parent, previousSelection) {\n this.widget = widget;\n this.parent = parent;\n this.previousSelection = previousSelection;\n parent.children = parent.children || [];\n this.index = parent.children.indexOf(widget); // Capture the index for undo purposes\n }\n execute() {\n this.parent.children = this.parent.children || [];\n this.index = this.parent.children.indexOf(this.widget); // Re-assert the index in case it has changed\n this.parent.children.splice(this.index, 1);\n }\n undo() {\n this.parent.children = this.parent.children || [];\n this.parent.children.splice(this.index, 0, this.widget); // Reinsert at the original index\n }\n description() {\n return `Removed widget ${this.widget.name}`;\n }\n icon() {\n return `fa-solid fa-square-minus`;\n }\n getExecutionSelection() {\n return this.previousSelection; // Typically the parent or a nearby sibling could be focused\n }\n getUndoSelection() {\n return this.widget; // Select the widget itself when the operation is undone\n }\n}\nexport class UpdateWidgetCommand {\n constructor(widget, values, previousSelection) {\n this.widget = widget;\n this.newState = merge(cloneDeep(widget), values);\n this.previousSelection = previousSelection;\n this.previousState = cloneDeep(widget);\n }\n execute() {\n merge(this.widget, this.newState);\n }\n undo() {\n this.deepPruneAndRestore(this.widget, this.previousState);\n }\n description() {\n return `Updated widget ${this.widget.name}`;\n }\n icon() {\n return `fa-solid fa-pen`;\n }\n getExecutionSelection() {\n return this.widget; // Focus the widget after it's updated\n }\n getUndoSelection() {\n return this.previousSelection; // Restore the focus to where it was before the update\n }\n deepPruneAndRestore(current, original) {\n Object.keys(current).forEach(key => {\n if (original.hasOwnProperty(key)) {\n if (typeof current[key] === 'object' && current[key] !== null && !(current[key] instanceof Array)) {\n this.deepPruneAndRestore(current[key], original[key]);\n }\n }\n else {\n delete current[key]; // Remove properties not present in original\n }\n });\n // Restore the original properties\n merge(current, original);\n }\n}\nexport class CommandManager {\n constructor() {\n this.undoStack = signal([], ...(ngDevMode ? [{ debugName: \"undoStack\" }] : []));\n this.currentIndex = signal(-1, ...(ngDevMode ? [{ debugName: \"currentIndex\" }] : []));\n this.selectedNode = signal(null, ...(ngDevMode ? [{ debugName: \"selectedNode\" }] : []));\n this.canUndo = computed(() => this.currentIndex() >= 0, ...(ngDevMode ? [{ debugName: \"canUndo\" }] : []));\n this.canRedo = computed(() => this.currentIndex() < this.undoStack().length - 1, ...(ngDevMode ? [{ debugName: \"canRedo\" }] : []));\n this.history = computed(() => this.undoStack().map((cmd, index) => ({\n description: cmd.description(),\n icon: cmd.icon(),\n isPast: this.currentIndex() > index,\n isFuture: this.currentIndex() < index,\n isCurrent: this.currentIndex() == index\n })), ...(ngDevMode ? [{ debugName: \"history\" }] : []));\n }\n executeCommand(command) {\n // Check if the currentIndex is not at the end of the undoStack\n if (this.currentIndex() !== this.undoStack().length - 1) {\n // Remove all commands beyond the current index to discard the \"future\" commands\n const newUndoStack = this.undoStack().slice(0, this.currentIndex() + 1);\n this.undoStack.set(newUndoStack);\n }\n command.execute();\n this.undoStack.set([...this.undoStack(), command]); // Add the new command to the stack\n this.currentIndex.set(this.undoStack().length - 1); // Update currentIndex to the end of the stack\n this.selectedNode.set(command.getExecutionSelection()); // Update the selected node\n }\n undo() {\n if (this.currentIndex() >= 0) {\n const command = this.undoStack()[this.currentIndex()];\n command.undo();\n this.currentIndex.set(this.currentIndex() - 1);\n if (this.currentIndex() >= 0) {\n this.selectedNode.set(this.undoStack()[this.currentIndex()].getUndoSelection());\n }\n else {\n this.selectedNode.set(null); // No selection if all commands are undone\n }\n }\n }\n redo() {\n if (this.currentIndex() < this.undoStack().length - 1) {\n this.currentIndex.set(this.currentIndex() + 1);\n const command = this.undoStack()[this.currentIndex()];\n command.execute();\n this.selectedNode.set(command.getExecutionSelection());\n }\n }\n goToCommand(index) {\n if (index < 0 || index >= this.undoStack().length || index === this.currentIndex()) {\n return; // Out of bounds or already at the desired index\n }\n if (index > this.currentIndex()) {\n // Need to redo until reaching the desired index\n while (this.currentIndex() < index) {\n this.redo();\n }\n }\n else {\n // Need to undo until reaching the desired index\n while (this.currentIndex() > index) {\n this.undo();\n }\n }\n // Optionally update any UI components or state here\n this.selectedNode.set(this.undoStack()[this.currentIndex()].getExecutionSelection());\n }\n clear() {\n this.undoStack.set([]);\n this.currentIndex.set(-1);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: CommandManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: CommandManager, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: CommandManager, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQVk3QyxtQkFBbUI7QUFDbkIsTUFBTSxPQUFPLGdCQUFnQjtJQUt6QixZQUFZLE1BQXFCLEVBQUUsTUFBcUIsRUFBRSxpQkFBZ0M7UUFDdEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENB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QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQWFNLEtBQUs7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBL0VRLGNBQWM7bUhBQWQsY0FBYyxjQUZYLE1BQU07OzRGQUVULGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZVwiO1xuaW1wb3J0IHsgY29tcHV0ZWQsIEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBjbG9uZURlZXAsIG1lcmdlIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG4vLyBDb21tYW5kIGludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kIHtcbiAgICBleGVjdXRlKCk6IHZvaWQ7XG4gICAgdW5kbygpOiB2b2lkO1xuICAgIGRlc2NyaXB0aW9uKCk6IHN0cmluZztcbiAgICBpY29uKCk6IHN0cmluZztcbiAgICBnZXRFeGVjdXRpb25TZWxlY3Rpb24oKTogQVhQV2lkZ2V0Tm9kZTsgIC8vIE5vZGUgdG8gc2VsZWN0IGFmdGVyIGV4ZWN1dGlvblxuICAgIGdldFVuZG9TZWxlY3Rpb24oKTogQVhQV2lkZ2V0Tm9kZTsgICAgICAgLy8gTm9kZSB0byBzZWxlY3QgYWZ0ZXIgdW5kb1xufVxuXG4vLyBBZGRXaWRnZXRDb21tYW5kXG5leHBvcnQgY2xhc3MgQWRkV2lkZ2V0Q29tbWFuZCBpbXBsZW1lbnRzIENvbW1hbmQge1xuICAgIHByaXZhdGUgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xuICAgIHByaXZhdGUgcGFyZW50OiBBWFBXaWRnZXROb2RlO1xuICAgIHByaXZhdGUgcHJldmlvdXNTZWxlY3Rpb246IEFYUFdpZGdldE5vZGU7XG5cbiAgICBjb25zdHJ1Y3Rvcih3aWRnZXQ6IEFYUFdpZGdldE5vZGUsIHBhcmVudDogQVhQV2lkZ2V0Tm9kZSwgcHJldmlvdXNTZWxlY3Rpb246IEFYUFdpZGdldE5vZGUpIHtcbiAgICAgICAgdGhpcy53aWRnZXQgPSB3aWRnZXQ7XG4gICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VsZWN0aW9uID0gcHJldmlvdXNTZWxlY3Rpb247XG4gICAgfVxuXG4gICAgZXhlY3V0ZSgpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4gPSB0aGlzLnBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4ucHVzaCh0aGlzLndpZGdldCk7XG4gICAgfVxuXG4gICAgdW5kbygpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4gPSB0aGlzLnBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMud2lkZ2V0KTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50LmNoaWxkcmVuLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGBBZGRlZCB3aWRnZXQgJHt0aGlzLndpZGdldC5uYW1lfWA7XG4gICAgfVxuXG4gICAgaWNvbigpIHtcbiAgICAgICAgcmV0dXJuIGBmYS1zb2xpZCBmYS1zcXVhcmUtcGx1c2A7XG4gICAgfVxuXG4gICAgZ2V0RXhlY3V0aW9uU2VsZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXQ7ICAvLyBBZnRlciBleGVjdXRpbmcsIHNlbGVjdCB0aGUgbmV3bHkgYWRkZWQgd2lkZ2V0XG4gICAgfVxuXG4gICAgZ2V0VW5kb1NlbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNTZWxlY3Rpb247ICAvLyBBZnRlciB1bmRvLCBzZWxlY3QgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgd2lkZ2V0XG4gICAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBSZW1vdmVXaWRnZXRDb21tYW5kIGltcGxlbWVudHMgQ29tbWFuZCB7XG4gICAgcHJpdmF0ZSB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG4gICAgcHJpdmF0ZSBwYXJlbnQ6IEFYUFdpZGdldE5vZGU7XG4gICAgcHJpdmF0ZSBwcmV2aW91c1NlbGVjdGlvbjogQVhQV2lkZ2V0Tm9kZTtcbiAgICBwcml2YXRlIGluZGV4OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcih3aWRnZXQ6IEFYUFdpZGdldE5vZGUsIHBhcmVudDogQVhQV2lkZ2V0Tm9kZSwgcHJldmlvdXNTZWxlY3Rpb246IEFYUFdpZGdldE5vZGUpIHtcbiAgICAgICAgdGhpcy53aWRnZXQgPSB3aWRnZXQ7XG4gICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VsZWN0aW9uID0gcHJldmlvdXNTZWxlY3Rpb247XG4gICAgICAgIHBhcmVudC5jaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgdGhpcy5pbmRleCA9IHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHdpZGdldCk7ICAvLyBDYXB0dXJlIHRoZSBpbmRleCBmb3IgdW5kbyBwdXJwb3Nlc1xuICAgIH1cblxuICAgIGV4ZWN1dGUoKSB7XG4gICAgICAgIHRoaXMucGFyZW50LmNoaWxkcmVuID0gdGhpcy5wYXJlbnQuY2hpbGRyZW4gfHwgW107XG4gICAgICAgIHRoaXMuaW5kZXggPSB0aGlzLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKHRoaXMud2lkZ2V0KTsgIC8vIFJlLWFzc2VydCB0aGUgaW5kZXggaW4gY2FzZSBpdCBoYXMgY2hhbmdlZFxuICAgICAgICB0aGlzLnBhcmVudC5jaGlsZHJlbi5zcGxpY2UodGhpcy5pbmRleCwgMSk7XG4gICAgfVxuXG4gICAgdW5kbygpIHtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4gPSB0aGlzLnBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4uc3BsaWNlKHRoaXMuaW5kZXgsIDAsIHRoaXMud2lkZ2V0KTsgIC8vIFJlaW5zZXJ0IGF0IHRoZSBvcmlnaW5hbCBpbmRleFxuICAgIH1cblxuICAgIGRlc2NyaXB0aW9uKCkge1xuICAgICAgICByZXR1cm4gYFJlbW92ZWQgd2lkZ2V0ICR7dGhpcy53aWRnZXQubmFtZX1gO1xuICAgIH1cblxuICAgIGljb24oKSB7XG4gICAgICAgIHJldHVybiBgZmEtc29saWQgZmEtc3F1YXJlLW1pbnVzYDtcbiAgICB9XG5cbiAgICBnZXRFeGVjdXRpb25TZWxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzU2VsZWN0aW9uOyAgLy8gVHlwaWNhbGx5IHRoZSBwYXJlbnQgb3IgYSBuZWFyYnkgc2libGluZyBjb3VsZCBiZSBmb2N1c2VkXG4gICAgfVxuXG4gICAgZ2V0VW5kb1NlbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0OyAgLy8gU2VsZWN0IHRoZSB3aWRnZXQgaXRzZWxmIHdoZW4gdGhlIG9wZXJhdGlvbiBpcyB1bmRvbmVcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVXaWRnZXRDb21tYW5kIGltcGxlbWVudHMgQ29tbWFuZCB7XG4gICAgcHJpdmF0ZSB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG4gICAgcHJpdmF0ZSBwcmV2aW91c1N0YXRlOiBBWFBXaWRnZXROb2RlO1xuICAgIHByaXZhdGUgbmV3U3RhdGU6IEFYUFdpZGdldE5vZGU7XG4gICAgcHJpdmF0ZSBwcmV2aW91c1NlbGVjdGlvbjogQVhQV2lkZ2V0Tm9kZTtcblxuICAgIGNvbnN0cnVjdG9yKHdpZGdldDogQVhQV2lkZ2V0Tm9kZSwgdmFsdWVzOiBQYXJ0aWFsPEFYUFdpZGdldE5vZGU+LCBwcmV2aW91c1NlbGVjdGlvbjogQVhQV2lkZ2V0Tm9kZSkge1xuICAgICAgICB0aGlzLndpZGdldCA9IHdpZGdldDtcbiAgICAgICAgdGhpcy5uZXdTdGF0ZSA9IG1lcmdlKGNsb25lRGVlcCh3aWRnZXQpLCB2YWx1ZXMpO1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VsZWN0aW9uID0gcHJldmlvdXNTZWxlY3Rpb247XG4gICAgICAgIHRoaXMucHJldmlvdXNTdGF0ZSA9IGNsb25lRGVlcCh3aWRnZXQpO1xuICAgIH1cblxuICAgIGV4ZWN1dGUoKSB7XG4gICAgICAgIG1lcmdlKHRoaXMud2lkZ2V0LCB0aGlzLm5ld1N0YXRlKVxuICAgIH1cblxuICAgIHVuZG8oKSB7XG4gICAgICAgIHRoaXMuZGVlcFBydW5lQW5kUmVzdG9yZSh0aGlzLndpZGdldCwgdGhpcy5wcmV2aW91c1N0YXRlKTtcbiAgICB9XG5cbiAgICBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGBVcGRhdGVkIHdpZGdldCAke3RoaXMud2lkZ2V0Lm5hbWV9YDtcbiAgICB9XG5cbiAgICBpY29uKCkge1xuICAgICAgICByZXR1cm4gYGZhLXNvbGlkIGZhLXBlbmA7XG4gICAgfVxuXG4gICAgZ2V0RXhlY3V0aW9uU2VsZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXQ7ICAvLyBGb2N1cyB0aGUgd2lkZ2V0IGFmdGVyIGl0J3MgdXBkYXRlZFxuICAgIH1cblxuICAgIGdldFVuZG9TZWxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzU2VsZWN0aW9uOyAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgdG8gd2hlcmUgaXQgd2FzIGJlZm9yZSB0aGUgdXBkYXRlXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZWVwUHJ1bmVBbmRSZXN0b3JlKGN1cnJlbnQ6IGFueSwgb3JpZ2luYWw6IGFueSkge1xuICAgICAgICBPYmplY3Qua2V5cyhjdXJyZW50KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAob3JpZ2luYWwuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudFtrZXldID09PSAnb2JqZWN0JyAmJiBjdXJyZW50W2tleV0gIT09IG51bGwgJiYgIShjdXJyZW50W2tleV0gaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWVwUHJ1bmVBbmRSZXN0b3JlKGN1cnJlbnRba2V5XSwgb3JpZ2luYWxba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgY3VycmVudFtrZXldOyAgLy8gUmVtb3ZlIHByb3BlcnRpZXMgbm90IHByZXNlbnQgaW4gb3JpZ2luYWxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgcHJvcGVydGllc1xuICAgICAgICBtZXJnZShjdXJyZW50LCBvcmlnaW5hbCk7XG4gICAgfVxufVxuXG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kTWFuYWdlciB7XG4gICAgcHJpdmF0ZSB1bmRvU3RhY2sgPSBzaWduYWw8Q29tbWFuZFtdPihbXSk7XG4gICAgcHJpdmF0ZSBjdXJyZW50SW5kZXggPSBzaWduYWw8bnVtYmVyPigtMSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkTm9kZSA9IHNpZ25hbDxBWFBXaWRnZXROb2RlIHwgbnVsbD4obnVsbCk7XG5cbiAgICBwdWJsaWMgY2FuVW5kbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3VycmVudEluZGV4KCkgPj0gMClcbiAgICBwdWJsaWMgY2FuUmVkbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3VycmVudEluZGV4KCkgPCB0aGlzLnVuZG9TdGFjaygpLmxlbmd0aCAtIDEpXG5cbiAgICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiBDb21tYW5kKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50SW5kZXggaXMgbm90IGF0IHRoZSBlbmQgb2YgdGhlIHVuZG9TdGFja1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXgoKSAhPT0gdGhpcy51bmRvU3RhY2soKS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAvLyBSZW1vdmUgYWxsIGNvbW1hbmRzIGJleW9uZCB0aGUgY3VycmVudCBpbmRleCB0byBkaXNjYXJkIHRoZSBcImZ1dHVyZVwiIGNvbW1hbmRzXG4gICAgICAgICAgICBjb25zdCBuZXdVbmRvU3RhY2sgPSB0aGlzLnVuZG9TdGFjaygpLnNsaWNlKDAsIHRoaXMuY3VycmVudEluZGV4KCkgKyAxKTtcbiAgICAgICAgICAgIHRoaXMudW5kb1N0YWNrLnNldChuZXdVbmRvU3RhY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgY29tbWFuZC5leGVjdXRlKCk7XG4gICAgICAgIHRoaXMudW5kb1N0YWNrLnNldChbLi4udGhpcy51bmRvU3RhY2soKSwgY29tbWFuZF0pOyAvLyBBZGQgdGhlIG5ldyBjb21tYW5kIHRvIHRoZSBzdGFja1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmRleC5zZXQodGhpcy51bmRvU3RhY2soKS5sZW5ndGggLSAxKTsgLy8gVXBkYXRlIGN1cnJlbnRJbmRleCB0byB0aGUgZW5kIG9mIHRoZSBzdGFja1xuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5zZXQoY29tbWFuZC5nZXRFeGVjdXRpb25TZWxlY3Rpb24oKSk7IC8vIFVwZGF0ZSB0aGUgc2VsZWN0ZWQgbm9kZVxuICAgIH1cblxuICAgIHVuZG8oKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRJbmRleCgpID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSB0aGlzLnVuZG9TdGFjaygpW3RoaXMuY3VycmVudEluZGV4KCldO1xuICAgICAgICAgICAgY29tbWFuZC51bmRvKCk7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmRleC5zZXQodGhpcy5jdXJyZW50SW5kZXgoKSAtIDEpO1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudEluZGV4KCkgPj0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlLnNldCh0aGlzLnVuZG9TdGFjaygpW3RoaXMuY3VycmVudEluZGV4KCldLmdldFVuZG9TZWxlY3Rpb24oKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlLnNldChudWxsKTsgLy8gTm8gc2VsZWN0aW9uIGlmIGFsbCBjb21tYW5kcyBhcmUgdW5kb25lXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWRvKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50SW5kZXgoKSA8IHRoaXMudW5kb1N0YWNrKCkubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5kZXguc2V0KHRoaXMuY3VycmVudEluZGV4KCkgKyAxKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSB0aGlzLnVuZG9TdGFjaygpW3RoaXMuY3VycmVudEluZGV4KCldO1xuICAgICAgICAgICAgY29tbWFuZC5leGVjdXRlKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5zZXQoY29tbWFuZC5nZXRFeGVjdXRpb25TZWxlY3Rpb24oKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnb1RvQ29tbWFuZChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy51bmRvU3RhY2soKS5sZW5ndGggfHwgaW5kZXggPT09IHRoaXMuY3VycmVudEluZGV4KCkpIHtcbiAgICAgICAgICAgIHJldHVybjsgIC8vIE91dCBvZiBib3VuZHMgb3IgYWxyZWFkeSBhdCB0aGUgZGVzaXJlZCBpbmRleFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4ID4gdGhpcy5jdXJyZW50SW5kZXgoKSkge1xuICAgICAgICAgICAgLy8gTmVlZCB0byByZWRvIHVudGlsIHJlYWNoaW5nIHRoZSBkZXNpcmVkIGluZGV4XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5jdXJyZW50SW5kZXgoKSA8IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWRvKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBOZWVkIHRvIHVuZG8gdW50aWwgcmVhY2hpbmcgdGhlIGRlc2lyZWQgaW5kZXhcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLmN1cnJlbnRJbmRleCgpID4gaW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuZG8oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9wdGlvbmFsbHkgdXBkYXRlIGFueSBVSSBjb21wb25lbnRzIG9yIHN0YXRlIGhlcmVcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUuc2V0KHRoaXMudW5kb1N0YWNrKClbdGhpcy5jdXJyZW50SW5kZXgoKV0uZ2V0RXhlY3V0aW9uU2VsZWN0aW9uKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoaXN0b3J5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51bmRvU3RhY2soKS5tYXAoKGNtZCwgaW5kZXgpID0+IChcbiAgICAgICAge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IGNtZC5kZXNjcmlwdGlvbigpLFxuICAgICAgICAgICAgaWNvbjogY21kLmljb24oKSxcbiAgICAgICAgICAgIGlzUGFzdDogdGhpcy5jdXJyZW50SW5kZXgoKSA+IGluZGV4LFxuICAgICAgICAgICAgaXNGdXR1cmU6IHRoaXMuY3VycmVudEluZGV4KCkgPCBpbmRleCxcbiAgICAgICAgICAgIGlzQ3VycmVudDogdGhpcy5jdXJyZW50SW5kZXgoKSA9PSBpbmRleFxuICAgICAgICB9XG4gICAgKSkpXG5cblxuICAgIHB1YmxpYyBjbGVhcigpIHtcbiAgICAgICAgdGhpcy51bmRvU3RhY2suc2V0KFtdKTtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXguc2V0KC0xKTtcbiAgICB9XG59Il19","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerConnector {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerConnector, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerConnector }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerConnector, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItY29ubmVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL3NoYXJlZC9kZXNpZ25lci1jb25uZWN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQWdCLG9CQUFvQjsrR0FBcEIsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRHpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyQ29udGVudCB7XG4gICAganNvbjogc3RyaW5nLFxuICAgIGh0bWw/OiBzdHJpbmdcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUERlc2lnbmVyQ29ubmVjdG9yPFQgPSBzdHJpbmc+IHtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBzYXZlKGlkOiBzdHJpbmcsIGNvbnRlbnQ6IEFYUERlc2lnbmVyQ29udGVudCk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2F2ZUFzKGNvbnRlbnQ6IEFYUERlc2lnbmVyQ29udGVudCk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgbG9hZChpZDogVCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG59Il19","import { assign, cloneDeep } from 'lodash-es';\nexport const AXP_DESIGNER_COPY_MENU = {\n text: 'Copy',\n name: 'copy',\n icon: 'fa-solid fa-copy',\n suffix: {\n text: 'Ctrl+C',\n },\n};\nexport const AXP_DESIGNER_CLONE_MENU = {\n text: 'Clone',\n name: 'clone',\n icon: 'fa-solid fa-clone',\n suffix: {\n text: 'Ctrl+D',\n },\n};\nexport const AXP_DESIGNER_CUT_MENU = {\n text: 'Cut',\n name: 'cut',\n icon: 'fa-solid fa-cut',\n suffix: {\n text: 'Ctrl+X',\n },\n};\nexport const AXP_DESIGNER_PASTE_MENU = {\n text: 'Paste',\n name: 'paste',\n icon: 'fa-solid fa-paste',\n suffix: {\n text: 'Ctrl+V',\n },\n};\nexport const AXP_DESIGNER_ADD_WIDGET_MENU = {\n text: 'Add Widget',\n name: 'add-widget',\n icon: 'fa-solid fa-plus',\n};\nexport const AXP_DESIGNER_SELECT_WIDGET_MENU = {\n text: 'Select',\n name: 'select',\n break: true,\n icon: 'fa-solid fa-arrow-pointer',\n};\nexport const AXP_DESIGNER_DELETE_WIDGET_MENU = {\n text: 'Delete',\n name: 'remove-widget',\n icon: 'fa-solid fa-trash',\n};\nexport const AXP_DESIGNER_SAVE_AS_WIDGET_MENU = {\n text: 'Save As...',\n name: 'save-as',\n icon: 'fa-solid fa-save',\n};\nexport function cloneWidgetMenu(item, options) {\n return assign(cloneDeep(item), options);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jb21tYW5kcy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL2dlbmVyaWMtY29tbWFuZHMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQWU7SUFDaEQsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7S0FDZjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZTtJQUNqRCxJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixNQUFNLEVBQUU7UUFDTixJQUFJLEVBQUUsUUFBUTtLQUNmO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFlO0lBQy9DLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLEtBQUs7SUFDWCxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLE1BQU0sRUFBRTtRQUNOLElBQUksRUFBRSxRQUFRO0tBQ2Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWU7SUFDakQsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxtQkFBbUI7SUFDekIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7S0FDZjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBZTtJQUN0RCxJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsWUFBWTtJQUNsQixJQUFJLEVBQUUsa0JBQWtCO0NBQ3pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBZTtJQUN6RCxJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxJQUFJLEVBQUUsMkJBQTJCO0NBQ2xDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBZTtJQUN6RCxJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxlQUFlO0lBQ3JCLElBQUksRUFBRSxtQkFBbUI7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFlO0lBQzFELElBQUksRUFBRSxZQUFZO0lBQ2xCLElBQUksRUFBRSxTQUFTO0lBQ2YsSUFBSSxFQUFFLGtCQUFrQjtDQUN6QixDQUFDO0FBR0YsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFnQixFQUFFLE9BQTZCO0lBQzdFLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNZW51SXRlbSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IGFzc2lnbiwgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9DT1BZX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdDb3B5JyxcbiAgbmFtZTogJ2NvcHknLFxuICBpY29uOiAnZmEtc29saWQgZmEtY29weScsXG4gIHN1ZmZpeDoge1xuICAgIHRleHQ6ICdDdHJsK0MnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9DTE9ORV9NRU5VOiBBWE1lbnVJdGVtID0ge1xuICB0ZXh0OiAnQ2xvbmUnLFxuICBuYW1lOiAnY2xvbmUnLFxuICBpY29uOiAnZmEtc29saWQgZmEtY2xvbmUnLFxuICBzdWZmaXg6IHtcbiAgICB0ZXh0OiAnQ3RybCtEJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBBWFBfREVTSUdORVJfQ1VUX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdDdXQnLFxuICBuYW1lOiAnY3V0JyxcbiAgaWNvbjogJ2ZhLXNvbGlkIGZhLWN1dCcsXG4gIHN1ZmZpeDoge1xuICAgIHRleHQ6ICdDdHJsK1gnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9QQVNURV9NRU5VOiBBWE1lbnVJdGVtID0ge1xuICB0ZXh0OiAnUGFzdGUnLFxuICBuYW1lOiAncGFzdGUnLFxuICBpY29uOiAnZmEtc29saWQgZmEtcGFzdGUnLFxuICBzdWZmaXg6IHtcbiAgICB0ZXh0OiAnQ3RybCtWJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBBWFBfREVTSUdORVJfQUREX1dJREdFVF9NRU5VOiBBWE1lbnVJdGVtID0ge1xuICB0ZXh0OiAnQWRkIFdpZGdldCcsXG4gIG5hbWU6ICdhZGQtd2lkZ2V0JyxcbiAgaWNvbjogJ2ZhLXNvbGlkIGZhLXBsdXMnLFxufTtcblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9TRUxFQ1RfV0lER0VUX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdTZWxlY3QnLFxuICBuYW1lOiAnc2VsZWN0JyxcbiAgYnJlYWs6IHRydWUsXG4gIGljb246ICdmYS1zb2xpZCBmYS1hcnJvdy1wb2ludGVyJyxcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9ERVNJR05FUl9ERUxFVEVfV0lER0VUX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdEZWxldGUnLFxuICBuYW1lOiAncmVtb3ZlLXdpZGdldCcsXG4gIGljb246ICdmYS1zb2xpZCBmYS10cmFzaCcsXG59O1xuXG5leHBvcnQgY29uc3QgQVhQX0RFU0lHTkVSX1NBVkVfQVNfV0lER0VUX01FTlU6IEFYTWVudUl0ZW0gPSB7XG4gIHRleHQ6ICdTYXZlIEFzLi4uJyxcbiAgbmFtZTogJ3NhdmUtYXMnLFxuICBpY29uOiAnZmEtc29saWQgZmEtc2F2ZScsXG59O1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZVdpZGdldE1lbnUoaXRlbTogQVhNZW51SXRlbSwgb3B0aW9ucz86IFBhcnRpYWw8QVhNZW51SXRlbT4pOiBBWE1lbnVJdGVtIHtcbiAgcmV0dXJuIGFzc2lnbihjbG9uZURlZXAoaXRlbSksIG9wdGlvbnMpO1xufVxuIl19","export class AXPDesignerModes {\n static { this.View = { id: 'view', title: 'View' }; }\n static { this.Design = { id: 'designer', title: 'Designer' }; }\n static { this.Edit = { id: 'edit', title: 'Edit' }; }\n}\nexport var AXPTemplateLoadingStrategy;\n(function (AXPTemplateLoadingStrategy) {\n AXPTemplateLoadingStrategy[\"Connector\"] = \"Connector\";\n AXPTemplateLoadingStrategy[\"Broadcast\"] = \"Broadcast\";\n})(AXPTemplateLoadingStrategy || (AXPTemplateLoadingStrategy = {}));\nexport const AXPDesignerMessageKeys = {\n Preview: \"designer-preview\",\n Loaded: \"designer-preview-loaded\",\n ContextChanged: \"designer-preview-context-changed\",\n PreviewWindow: \"designer-open-preview-window\",\n RequestFormContent: \"designer-request-form-content\",\n ResponseFormContent: \"designer-response-form-content\",\n SaveForm: 'designer-save-form-content',\n FormSaved: 'designer-form-saved-content',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL3NoYXJlZC9kZXNpZ25lci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQU8sZ0JBQWdCO2FBQ1gsU0FBSSxHQUFvQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO2FBQ3RELFdBQU0sR0FBb0IsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQzthQUNoRSxTQUFJLEdBQW9CLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7O0FBSXhFLE1BQU0sQ0FBTixJQUFZLDBCQUdYO0FBSEQsV0FBWSwwQkFBMEI7SUFDcEMscURBQXVCLENBQUE7SUFDdkIscURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUhXLDBCQUEwQixLQUExQiwwQkFBMEIsUUFHckM7QUFvQkQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ25DO0lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtJQUMzQixNQUFNLEVBQUUseUJBQXlCO0lBQ2pDLGNBQWMsRUFBRSxrQ0FBa0M7SUFDbEQsYUFBYSxFQUFFLDhCQUE4QjtJQUM3QyxrQkFBa0IsRUFBRSwrQkFBK0I7SUFDbkQsbUJBQW1CLEVBQUUsZ0NBQWdDO0lBQ3JELFFBQVEsRUFBRSw0QkFBNEI7SUFDdEMsU0FBUyxFQUFFLDZCQUE2QjtDQUN6QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNZW51SXRlbSB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvbWVudVwiO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZVwiO1xuXG5leHBvcnQgdHlwZSBBWFBEZXNpZ25lck1vZGUgPVxuICB8IHsgaWQ6ICdkZXNpZ25lcic7IHRpdGxlOiAnRGVzaWduZXInIH1cbiAgfCB7IGlkOiAndmlldyc7IHRpdGxlOiAnVmlldycgfVxuICB8IHsgaWQ6ICdlZGl0JzsgdGl0bGU6ICdFZGl0JyB9O1xuXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJNb2RlcyB7XG4gIHN0YXRpYyByZWFkb25seSBWaWV3OiBBWFBEZXNpZ25lck1vZGUgPSB7IGlkOiAndmlldycsIHRpdGxlOiAnVmlldycgfTtcbiAgc3RhdGljIHJlYWRvbmx5IERlc2lnbjogQVhQRGVzaWduZXJNb2RlID0geyBpZDogJ2Rlc2lnbmVyJywgdGl0bGU6ICdEZXNpZ25lcicgfTtcbiAgc3RhdGljIHJlYWRvbmx5IEVkaXQ6IEFYUERlc2lnbmVyTW9kZSA9IHsgaWQ6ICdlZGl0JywgdGl0bGU6ICdFZGl0JyB9O1xufVxuXG5cbmV4cG9ydCBlbnVtIEFYUFRlbXBsYXRlTG9hZGluZ1N0cmF0ZWd5IHtcbiAgQ29ubmVjdG9yID0gXCJDb25uZWN0b3JcIixcbiAgQnJvYWRjYXN0ID0gXCJCcm9hZGNhc3RcIixcbn1cblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQge1xuICBvbkNvbnRleHRNZW51KGNvbnRleHQ6IHsgaXRlbXM6IEFYTWVudUl0ZW1bXSB9KTogdm9pZFxuICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiB7IG5hbWU6IHN0cmluZywgZGF0YT86IGFueSwgaGFuZGxlZDogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyUHJldmlld01lc3NhZ2Uge1xuICBpZDogc3RyaW5nLFxuICBkb2N1bWVudDogQVhQV2lkZ2V0Tm9kZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyU2F2ZUZvcm1NZXNzYWdlIHtcbiAgaWQ6IHN0cmluZyxcbiAgc3VjY2VzczogYm9vbGVhbixcbiAgY29udGVudD86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgQVhQRGVzaWduZXJNZXNzYWdlS2V5cyA9XG57XG4gIFByZXZpZXc6IFwiZGVzaWduZXItcHJldmlld1wiLFxuICBMb2FkZWQ6IFwiZGVzaWduZXItcHJldmlldy1sb2FkZWRcIixcbiAgQ29udGV4dENoYW5nZWQ6IFwiZGVzaWduZXItcHJldmlldy1jb250ZXh0LWNoYW5nZWRcIixcbiAgUHJldmlld1dpbmRvdzogXCJkZXNpZ25lci1vcGVuLXByZXZpZXctd2luZG93XCIsXG4gIFJlcXVlc3RGb3JtQ29udGVudDogXCJkZXNpZ25lci1yZXF1ZXN0LWZvcm0tY29udGVudFwiLFxuICBSZXNwb25zZUZvcm1Db250ZW50OiBcImRlc2lnbmVyLXJlc3BvbnNlLWZvcm0tY29udGVudFwiLFxuICBTYXZlRm9ybTogJ2Rlc2lnbmVyLXNhdmUtZm9ybS1jb250ZW50JyxcbiAgRm9ybVNhdmVkOiAnZGVzaWduZXItZm9ybS1zYXZlZC1jb250ZW50Jyxcbn0iXX0=","import { AXPopupService } from '@acorex/components/popup';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWidgetRegistryService, } from '@acorex/platform/layout/widget-core';\nimport { inject, Injectable } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetPickerService {\n constructor() {\n this.popupService = inject(AXPopupService);\n this.widgetRegistryService = inject(AXPWidgetRegistryService);\n this.translationService = inject(AXTranslationService);\n }\n async showPicker(options) {\n const com = await import('./widget-picker.component').then((c) => c.AXPDesignerWidgetPickerComponent);\n const widgets = this.widgetRegistryService.all();\n const filteredWidgets = widgets.filter((c) => options.groups.some((d) => c.groups?.includes(d)));\n //\n const result = await this.popupService.open(com, {\n title: await this.translationService.translateAsync('@form-template-management:designer.components.widget-picker.title'),\n size: 'md',\n closeButton: true,\n data: {\n widgets: sortBy(filteredWidgets, (c) => c.title),\n },\n });\n //\n const selectedWidgets = (result.data?.widgets ?? []);\n return selectedWidgets.map((c) => ({\n type: c.name,\n meta: c.meta,\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWidgetPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWidgetPickerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWidgetPickerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBpY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL3dpZGdldC1waWNrZXIvd2lkZ2V0LXBpY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBSUwsd0JBQXdCLEdBQ3pCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFLbkMsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUlVLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3pELHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBdUIzRDtJQXJCQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQXlDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN0RyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDakQsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRyxFQUFFO1FBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0MsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxtRUFBbUUsQ0FBQztZQUN4SCxJQUFJLEVBQUUsSUFBSTtZQUNWLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUNqRDtTQUNGLENBQUMsQ0FBQztRQUNILEVBQUU7UUFDRixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBc0IsQ0FBQztRQUUxRSxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFXO1lBQ25CLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtTQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzsrR0F6QlUsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIEFYUFdpZGdldENvbmZpZyxcbiAgQVhQV2lkZ2V0R3JvdXBFbnVtLFxuICBBWFBXaWRnZXROb2RlLFxuICBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFBpY2tlclNlcnZpY2Uge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgd2lkZ2V0UmVnaXN0cnlTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBhc3luYyBzaG93UGlja2VyKG9wdGlvbnM6IHsgZ3JvdXBzOiBBWFBXaWRnZXRHcm91cEVudW1bXSB9KTogUHJvbWlzZTxBWFBXaWRnZXROb2RlW10+IHtcbiAgICBjb25zdCBjb20gPSBhd2FpdCBpbXBvcnQoJy4vd2lkZ2V0LXBpY2tlci5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUERlc2lnbmVyV2lkZ2V0UGlja2VyQ29tcG9uZW50KTtcbiAgICBjb25zdCB3aWRnZXRzID0gdGhpcy53aWRnZXRSZWdpc3RyeVNlcnZpY2UuYWxsKCk7XG4gICAgY29uc3QgZmlsdGVyZWRXaWRnZXRzID0gd2lkZ2V0cy5maWx0ZXIoKGMpID0+IG9wdGlvbnMuZ3JvdXBzLnNvbWUoKGQpID0+IGMuZ3JvdXBzPy5pbmNsdWRlcyhkKSkpO1xuICAgIC8vXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGZvcm0tdGVtcGxhdGUtbWFuYWdlbWVudDpkZXNpZ25lci5jb21wb25lbnRzLndpZGdldC1waWNrZXIudGl0bGUnKSxcbiAgICAgIHNpemU6ICdtZCcsXG4gICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgd2lkZ2V0czogc29ydEJ5KGZpbHRlcmVkV2lkZ2V0cywgKGMpID0+IGMudGl0bGUpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICAvL1xuICAgIGNvbnN0IHNlbGVjdGVkV2lkZ2V0cyA9IChyZXN1bHQuZGF0YT8ud2lkZ2V0cyA/PyBbXSkgYXMgQVhQV2lkZ2V0Q29uZmlnW107XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRXaWRnZXRzLm1hcCgoYykgPT4gKHtcbiAgICAgIHR5cGU6IGMubmFtZSBhcyBhbnksXG4gICAgICBtZXRhOiBjLm1ldGEsXG4gICAgfSkpO1xuICB9XG59XG4iXX0=","import { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetsCatalog, } from '@acorex/platform/layout/widget-core';\nimport { computed, effect, inject, Injectable, signal } from '@angular/core';\nimport { cloneDeep, get, isEmpty, isNil, set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AddWidgetCommand, CommandManager, RemoveWidgetCommand, UpdateWidgetCommand } from './command';\nimport { AXPDesignerConnector } from './designer-connector.service';\nimport { AXP_DESIGNER_ADD_WIDGET_MENU, AXP_DESIGNER_CLONE_MENU, AXP_DESIGNER_COPY_MENU, AXP_DESIGNER_CUT_MENU, AXP_DESIGNER_DELETE_WIDGET_MENU as AXP_DESIGNER_DELETE_WIDGET_MENU, AXP_DESIGNER_PASTE_MENU, AXP_DESIGNER_SAVE_AS_WIDGET_MENU, AXP_DESIGNER_SELECT_WIDGET_MENU, cloneWidgetMenu, } from './generic-commands.types';\nimport { AXPDesignerMessageKeys, AXPTemplateLoadingStrategy } from './designer.types';\nimport { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXPWidgetPickerService } from '../components/widget-picker/widget-picker.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerService {\n #ef;\n constructor() {\n this.popupService = inject(AXPopupService);\n this.toastService = inject(AXToastService);\n this.fileService = inject(AXFileService);\n this.loadingService = inject(AXLoadingDialogService);\n this.widgetRegisteryService = inject(AXPWidgetRegistryService);\n this.connector = inject(AXPDesignerConnector);\n this.eventService = inject(AXPBroadcastEventService);\n this.widgetPickerService = inject(AXPWidgetPickerService);\n this.document = signal(this.createDoc(), ...(ngDevMode ? [{ debugName: \"document\" }] : []));\n this.currentPageIndex = signal(0, ...(ngDevMode ? [{ debugName: \"currentPageIndex\" }] : []));\n this.currentPage = signal(this.document().children?.[0], ...(ngDevMode ? [{ debugName: \"currentPage\" }] : []));\n this.commandManager = inject(CommandManager);\n this.clipboard = signal(null, ...(ngDevMode ? [{ debugName: \"clipboard\" }] : []));\n //\n this.canCutCopy = computed(() => this.can(this.selectedNode()).copyOrCut, ...(ngDevMode ? [{ debugName: \"canCutCopy\" }] : []));\n this.canDelete = computed(() => this.can(this.selectedNode()).delete, ...(ngDevMode ? [{ debugName: \"canDelete\" }] : []));\n this.canInsert = computed(() => this.can(this.selectedNode()).insert, ...(ngDevMode ? [{ debugName: \"canInsert\" }] : []));\n this.canPaste = computed(() => this.can(this.selectedNode()).paste, ...(ngDevMode ? [{ debugName: \"canPaste\" }] : []));\n //\n this.history = computed(() => this.commandManager.history(), ...(ngDevMode ? [{ debugName: \"history\" }] : []));\n this.canUndo = computed(() => this.commandManager.canUndo(), ...(ngDevMode ? [{ debugName: \"canUndo\" }] : []));\n this.canRedo = computed(() => this.commandManager.canRedo(), ...(ngDevMode ? [{ debugName: \"canRedo\" }] : []));\n //\n this.canSave = computed(() => this.templateId() != null, ...(ngDevMode ? [{ debugName: \"canSave\" }] : []));\n this.unsavedChanges = signal(false, ...(ngDevMode ? [{ debugName: \"unsavedChanges\" }] : []));\n this.breadcrumbs = computed(() => {\n return this.selectedNode() ? this.findBreadcrumbs(this.currentPage(), this.selectedNode()) ?? [] : [];\n }, ...(ngDevMode ? [{ debugName: \"breadcrumbs\" }] : []));\n this.selectedNode = signal(null, ...(ngDevMode ? [{ debugName: \"selectedNode\" }] : []));\n this.selectedNodeConfig = computed(() => get(this.selectedNode(), '__meta__.config'), ...(ngDevMode ? [{ debugName: \"selectedNodeConfig\" }] : []));\n this._focusedNode = null;\n this.focusedNode = () => this._focusedNode;\n this.size = signal('xl', ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n this.onSelected = new Subject();\n this.onRefresh = new Subject();\n this.onUpdate = new Subject();\n this.onFocused = new Subject();\n this.templateId = signal(null, ...(ngDevMode ? [{ debugName: \"templateId\" }] : []));\n this.loadingStrategy = signal(AXPTemplateLoadingStrategy.Connector, ...(ngDevMode ? [{ debugName: \"loadingStrategy\" }] : []));\n this.#ef = effect(() => {\n this.refresh({ widget: this.currentPage() });\n }, ...(ngDevMode ? [{ debugName: \"#ef\" }] : []));\n this.can = (widget) => {\n if (!widget) {\n return {\n delete: false,\n copyOrCut: false,\n insert: false,\n paste: false,\n };\n }\n const config = get(widget, '__meta__.config');\n return {\n delete: widget.type != 'page-layout',\n copyOrCut: widget.type != 'page-layout',\n paste: this.clipboard() != null && config.type == 'container' && config.designer?.canInsert != false,\n insert: config.type == 'container' && config.designer?.canInsert != false,\n };\n };\n this.eventService.listen(AXPDesignerMessageKeys.Loaded).subscribe(() => {\n this.updatePreview();\n });\n //\n this.eventService.listen(AXPDesignerMessageKeys.PreviewWindow).subscribe(() => {\n this.openPreviewWindow();\n });\n //\n // window.addEventListener(\"beforeunload\", (event) => {\n // console.log(\"Window is before closing...\");\n // // event.preventDefault();\n // // event.returnValue = 'abc'; // Some browsers require this to show the prompt.\n // });\n window.addEventListener(\"unload\", async () => {\n console.log(\"Window is closing...\");\n if (this.unsavedChanges()) {\n this.eventService.publish(AXPDesignerMessageKeys.SaveForm, { id: this.templateId(), success: false });\n }\n this.unsubscribeEvents();\n });\n }\n register(command) {\n this.select({ widget: command.widget });\n }\n select(command) {\n this.selectedNode.set(command.widget);\n this.onSelected.next(command);\n }\n update(command) {\n const node = command.widget ?? this.selectedNode();\n if (command.mode == 'update' && node) {\n this.commandManager.executeCommand(new UpdateWidgetCommand(node, command.values, node));\n }\n //this.selectedNode.update((c) => merge(node, command.values));\n this.onUpdate.next({ widget: node, values: command.values });\n this.unsavedChanges.set(true);\n this.updatePreview();\n }\n focus(command) {\n if (this._focusedNode != command.widget) {\n this._focusedNode = command.widget;\n this.onFocused.next({ widget: this._focusedNode });\n }\n }\n refresh(command) {\n this.onRefresh.next({ widget: command.widget });\n this.updatePreview();\n }\n findBreadcrumbs(node, targetNode, breadcrumb = []) {\n // Add the current node to the breadcrumb path\n const currentBreadcrumb = [...breadcrumb, node];\n // Check if the current node is the target node\n if (node === targetNode) {\n return currentBreadcrumb;\n }\n // If the node has children, recursively search them\n if (node.children) {\n for (const child of node.children) {\n const result = this.findBreadcrumbs(child, targetNode, currentBreadcrumb);\n if (result) {\n return result;\n }\n }\n }\n // Return undefined if no match is found\n return undefined;\n }\n async showPicker(currentNode = this.selectedNode()) {\n const widgets = await this.widgetPickerService.showPicker({ groups: [AXPWidgetGroupEnum.FormElement] });\n const result = [];\n if (widgets.length) {\n widgets.forEach((c) => {\n result.push(this.addWidget(currentNode, { type: c.type }));\n });\n }\n return result;\n }\n new() {\n this.commandManager.clear();\n this.document.set(this.createDoc());\n this.currentPage.set(this.document().children?.[0]);\n this.reRenderPage();\n }\n createDoc() {\n const doc = {\n type: AXPWidgetsCatalog.document,\n children: [this.createPage()],\n name: 'document',\n };\n set(doc, '__meta__.id', this.generateUniqueId());\n return doc;\n }\n createPage() {\n const config = this.widgetRegisteryService.resolve('page-layout');\n const page = {\n type: 'page-layout',\n children: [],\n name: 'page-layout1',\n };\n set(page, '__meta__.id', this.generateUniqueId());\n set(page, '__meta__.config', config);\n return page;\n }\n addNewPage() {\n this.addWidget(this.document(), this.createPage());\n this.goToPage(this.currentPageIndex() + 1);\n }\n removePage(index) {\n const page = this.document().children?.[index];\n this.removeWidget(page);\n this.goToPage(index - 1);\n }\n clonePage(index) {\n const page = this.document().children?.[index];\n this.clone(page);\n this.goToPage((this.document().children?.length ?? 1) - 1);\n }\n goToPage(index) {\n this.currentPageIndex.set(index);\n this.currentPage.set(this.document().children?.[this.currentPageIndex()]);\n this.select({ widget: this.currentPage() });\n }\n reRenderPage() {\n this.currentPage.set({ ...this.currentPage() });\n setTimeout(() => {\n this.refresh({ widget: this.currentPage() });\n });\n }\n findWidgetById(root, id) {\n if (get(root, '__meta__.id') === id) {\n return root; // Return the root if it matches the ID\n }\n if (!root.children)\n return null;\n for (const child of root.children) {\n const found = this.findWidgetById(child, id);\n if (found) {\n return found; // Return the found child\n }\n }\n return null; // Node not found\n }\n findParent(id, parent = this.currentPage()) {\n if (!parent.children)\n return null;\n if (parent.children.some((child) => get(child, '__meta__.id') === id)) {\n return parent; // Return this node as it's the parent of the node with the given ID\n }\n for (const child of parent.children) {\n const foundParent = this.findParent(id, child);\n if (foundParent)\n return foundParent;\n }\n return null; // No parent found\n }\n findNearestContainer(node, searchUpward = true) {\n if (searchUpward) {\n let current = node;\n while (current) {\n const config = this.widgetRegisteryService.resolve(current.type);\n if (config && config.type == 'container') {\n return current;\n }\n current = this.findParent(get(current, '__meta__.id')); // Use findParent to navigate upwards\n }\n }\n else {\n // Recursive search to find the first container among children\n if (node.children) {\n for (const child of node.children) {\n const config = this.widgetRegisteryService.resolve(child.type);\n if (config && config.type == 'container') {\n return child;\n }\n const foundContainer = this.findNearestContainer(child, false); // Continue searching downwards\n if (foundContainer)\n return foundContainer;\n }\n }\n }\n return null; // Return null if no container found\n }\n addWidget(currentNode, node) {\n //\n const cloned = cloneDeep(node);\n const config = this.widgetRegisteryService.resolve(node.type);\n //\n this.commandManager.executeCommand(new AddWidgetCommand(cloned, currentNode, currentNode));\n //\n cloned.name = this.generateUniqueName(node.type);\n set(cloned, '__meta__.id', this.generateUniqueId());\n set(cloned, '__meta__.config', config);\n set(cloned, '__meta__.added', true);\n //\n this.reRenderPage();\n //\n this.refresh({ widget: currentNode });\n this.select({ widget: cloned });\n return cloned;\n }\n removeWidget(node = this.selectedNode()) {\n if (node.type === 'document-layout' ||\n (node.type === 'page-layout' && (this.document().children?.length ?? 1) == 1)) {\n console.error('Cannot remove the page node.');\n return; // Prevent removing the root page node or document\n }\n const nodeIdToRemove = get(node, '__meta__.id');\n if (!nodeIdToRemove) {\n throw new Error('Node does not have a valid __meta__.id to identify it for removal.');\n }\n // Find the parent of the node to remove it\n const parent = this.findParent(nodeIdToRemove, this.document());\n if (!parent) {\n throw new Error('Parent node not found. The node might be the root node or does not exist.');\n }\n const previousSelection = this.selectedNode(); // Capture the currently selected node before removal\n const command = new RemoveWidgetCommand(node, parent, previousSelection);\n this.commandManager.executeCommand(command);\n this.refresh({ widget: parent }); // Refresh the UI to reflect changes\n this.select({ widget: parent }); // Select the parent node after removal\n }\n navigateTo(index) {\n this.commandManager.goToCommand(index);\n this.reRenderPage();\n const currentSelection = this.commandManager.selectedNode();\n this.refresh({ widget: this.currentPage() });\n this.select({ widget: currentSelection });\n }\n redo() {\n this.commandManager.redo();\n this.reRenderPage();\n const currentSelection = this.commandManager.selectedNode();\n this.refresh({ widget: this.currentPage() });\n this.select({ widget: currentSelection });\n }\n undo() {\n this.commandManager.undo();\n this.reRenderPage();\n const currentSelection = this.commandManager.selectedNode();\n this.refresh({ widget: this.currentPage() });\n this.select({ widget: currentSelection });\n }\n clearHistory() {\n this.commandManager.clear();\n }\n removeMetaProp(obj) {\n const nodeName = '__meta__';\n // Check if the object is an array\n if (Array.isArray(obj)) {\n return obj.map((item) => this.removeMetaProp(item));\n }\n else if (typeof obj === 'object' && obj !== null) {\n // Create a new object to store the result\n let newObj = {};\n for (let key in obj) {\n // Only add the key if it's not the nodeName we want to remove\n if (key !== nodeName) {\n newObj[key] = this.removeMetaProp(obj[key]);\n }\n }\n return newObj;\n }\n // If the value is not an object or array, return it as is\n return obj;\n }\n async addMetaToNodes(node, processedNodes, progressCallback) {\n // Apply your meta logic here\n const config = this.widgetRegisteryService.resolve(node.type);\n //\n set(node, '__meta__.id', this.generateUniqueId());\n set(node, '__meta__.config', config);\n //\n // Increment the processed node count and update the progress dialog\n processedNodes.count++;\n progressCallback(processedNodes.count);\n // Recursively process child nodes using Promise.all\n if (node.children && node.children.length > 0) {\n node.children = await Promise.all(node.children.map(async (child) => await this.addMetaToNodes(child, processedNodes, progressCallback)));\n }\n return node;\n }\n copy(widget = this.selectedNode()) {\n if (this.can(widget).copyOrCut) {\n this.clipboard.set(cloneDeep(widget)); // Use lodash's cloneDeep to ensure a deep copy\n }\n }\n cut(widget = this.selectedNode()) {\n if (this.can(widget).copyOrCut) {\n this.copy(widget); // Copy the widget to the clipboard\n this.removeWidget(widget); // Reuse the removeWidget method which should handle undo internally\n }\n }\n clone(widget = this.selectedNode()) {\n if (!widget)\n return;\n this.copy(widget); // Copy the widget to the clipboard\n if (widget.type == 'page-layout') {\n this.paste(this.document());\n }\n else {\n this.paste(widget);\n }\n }\n paste(parentNode = this.selectedNode() ?? this.currentPage()) {\n if (!this.clipboard() || !this.selectedNode() || !parentNode) {\n console.error('Clipboard is empty or no node is selected.');\n return;\n }\n const newNode = cloneDeep(this.clipboard());\n const nearestContainer = this.findNearestContainer(parentNode, true);\n if (!nearestContainer) {\n console.error('No suitable container found.');\n return;\n }\n //\n if (!nearestContainer.children) {\n nearestContainer.children = [];\n }\n //\n const setNameId = (node) => {\n set(node, 'name', this.generateUniqueName(node.type));\n set(node, '__meta__.id', this.generateUniqueId());\n node.children?.forEach((n) => {\n setNameId(n);\n });\n };\n setNameId(newNode);\n //\n this.commandManager.executeCommand(new AddWidgetCommand(newNode, nearestContainer, nearestContainer));\n //\n setTimeout(() => {\n this.refresh({ widget: nearestContainer }); // Refresh the UI\n this.select({ widget: newNode }); // Select the newly pasted node\n });\n }\n async save() {\n if (this.templateId()) {\n const content = this.export();\n if (this.loadingStrategy() == AXPTemplateLoadingStrategy.Connector) {\n await this.connector.save(this.templateId(), { json: content });\n this.toastService.success('Your changes saved successfully');\n }\n else {\n const result = await this.eventService.sendAndWaitForResponse(AXPDesignerMessageKeys.SaveForm, { id: this.templateId(), success: true, content });\n if (result.success) {\n this.unsavedChanges.set(false);\n window.close();\n }\n }\n }\n else {\n this.downloadJson();\n }\n }\n async saveAs(node = this.document()) {\n const content = this.export(node);\n const result = await this.connector.saveAs({ json: content });\n if (result) {\n this.toastService.success('Your changes saved successfully');\n }\n }\n export(node = this.document()) {\n const json = this.removeMetaProp(node);\n return JSON.stringify(json);\n }\n downloadJson() {\n // Convert the object to a JSON string\n const jsonStr = this.export();\n // Create a blob object from the JSON string\n const blob = new Blob([jsonStr], { type: 'application/json' });\n // Create a URL for the blob object\n const url = URL.createObjectURL(blob);\n // Create a temporary <a> element to trigger the download\n const a = document.createElement('a');\n a.href = url;\n a.download = 'export.json';\n // Append the <a> element to the document body (necessary for some browsers)\n document.body.appendChild(a);\n // Trigger the download by clicking the <a> element\n a.click();\n // Clean up by revoking the object URL and removing the <a> element\n URL.revokeObjectURL(url);\n document.body.removeChild(a);\n }\n async loadById(id, options = { strategy: AXPTemplateLoadingStrategy.Connector }) {\n let content = null;\n try {\n if (options.strategy == AXPTemplateLoadingStrategy.Connector) {\n content = await this.connector.load(id);\n }\n else {\n content = await this.eventService.sendAndWaitForResponse(AXPDesignerMessageKeys.RequestFormContent, { formId: id }, { timeout: 10000, retries: 3, retryDelay: 1000 });\n }\n if (!isNil(content) && !isEmpty(content)) {\n await this.loadByContent(content);\n }\n this.templateId.set(id);\n this.loadingStrategy.set(options.strategy);\n }\n catch (error) {\n this.toastService.danger(error.message);\n }\n }\n async importJSon() {\n const files = await this.fileService.choose({ multiple: false, accept: 'application/json' });\n if (files && files.length) {\n const file = files[0];\n const content = await file.text();\n await this.loadByContent(content);\n }\n }\n async loadByContent(content) {\n const rootNode = JSON.parse(content);\n const totalNode = this.countTotalNodes(rootNode);\n const processedNodes = { count: 0 };\n const button = {\n text: 'Cancel',\n autofocus: true,\n color: 'primary',\n onClick: (e) => {\n dialog.close();\n },\n };\n const dialog = this.loadingService.show({\n mode: 'determinate',\n title: 'Loading Content',\n progressColor: 'primary',\n text: 'Processing content',\n status: `0 of ${totalNode}`,\n buttons: [button],\n });\n try {\n const root = await this.addMetaToNodes(rootNode, processedNodes, (count) => {\n dialog.setProgressValue(Math.ceil((count / totalNode) * 100));\n dialog.setProgressStatus(`${count} of ${totalNode}`);\n });\n const page = root.children?.[0];\n this.document.set(root);\n this.currentPage.set(page);\n dialog.setProgressColor('success');\n dialog.setProgressText('Content loaded successfully');\n button.text = 'Okay';\n button.color = 'success';\n dialog.setProgressValue(100);\n setTimeout(() => {\n this.reRenderPage();\n dialog.close();\n }, 250);\n }\n catch (error) {\n dialog.setProgressColor('danger');\n dialog.setProgressText(error instanceof Error ? error.message : 'Cannot load content');\n button.text = 'Close';\n button.color = 'danger';\n }\n }\n countTotalNodes(node) {\n let count = 1; // Count the current node\n if (node.children && node.children.length > 0) {\n count += node.children.reduce((sum, child) => sum + this.countTotalNodes(child), 0);\n }\n return count;\n }\n generateUniqueName(type) {\n // Normalize the type to follow camelCase convention\n const baseName = type.charAt(0).toLowerCase() + type.slice(1);\n let index = 1;\n let uniqueName = `${baseName}${index}`;\n // Gather all existing names to check against\n const existingNames = new Set();\n this.collectAllNames(this.document(), existingNames);\n // Increment the index until a unique name is found\n while (existingNames.has(uniqueName)) {\n index++;\n uniqueName = `${baseName}${index}`;\n }\n return uniqueName;\n }\n generateUniqueId() {\n return Math.random() * Math.pow(10, 18);\n }\n collectAllNames(node, names) {\n if (node.name) {\n names.add(node.name);\n }\n if (node.children) {\n for (const child of node.children) {\n this.collectAllNames(child, names);\n }\n }\n }\n updatePreview() {\n this.eventService.publish(AXPDesignerMessageKeys.Preview, {\n id: this.templateId(),\n document: this.removeMetaProp(this.document())\n });\n }\n async openPreviewDialog() {\n const com = await import('../../preview/preview.component').then((c) => c.AXPLayoutDesignerPreviewComponent);\n await this.popupService.open(com, {\n header: false,\n size: 'full',\n data: {\n initialSize: this.size(),\n isDialogWindow: true,\n },\n });\n }\n openPreviewWindow() {\n window.open('/forms/preview', '_blank');\n }\n getContextMenuItems(instance, isRoot = false) {\n const widget = instance;\n const node = widget.node;\n const items = [];\n // \n if (this.can(node).insert) {\n items.push(cloneWidgetMenu(AXP_DESIGNER_ADD_WIDGET_MENU, {\n break: true,\n }));\n }\n //\n items.push(cloneWidgetMenu(AXP_DESIGNER_CLONE_MENU, { disabled: !this.can(node).copyOrCut }));\n items.push(cloneWidgetMenu(AXP_DESIGNER_CUT_MENU, { disabled: !this.can(node).copyOrCut }));\n items.push(cloneWidgetMenu(AXP_DESIGNER_COPY_MENU, { disabled: !this.can(node).copyOrCut }));\n items.push(cloneWidgetMenu(AXP_DESIGNER_PASTE_MENU, { disabled: !this.can(node).paste, break: true }));\n //\n items.push(cloneWidgetMenu(AXP_DESIGNER_DELETE_WIDGET_MENU, { disabled: !this.can(node).delete, break: true }));\n //\n items.push(cloneWidgetMenu(AXP_DESIGNER_SAVE_AS_WIDGET_MENU));\n if (instance.onContextMenu) {\n instance.onContextMenu({ items });\n }\n if (!isRoot) {\n items.forEach(item => {\n item.suffix = undefined;\n });\n }\n return items;\n }\n async executeCommand(context) {\n const widget = context.instance;\n if (context.instance.executeCommand) {\n const command = {\n name: context.name,\n data: context.data,\n handled: false\n };\n await context.instance.executeCommand(command);\n if (command.handled)\n return;\n }\n switch (context.name) {\n case AXP_DESIGNER_SELECT_WIDGET_MENU.name: {\n this.select({ widget: widget.node });\n break;\n }\n case AXP_DESIGNER_ADD_WIDGET_MENU.name: {\n this.showPicker(widget.node);\n break;\n }\n //\n case AXP_DESIGNER_DELETE_WIDGET_MENU.name: {\n this.removeWidget(widget.node);\n break;\n }\n //\n case AXP_DESIGNER_CLONE_MENU.name: {\n this.clone(widget.node);\n break;\n }\n case AXP_DESIGNER_CUT_MENU.name: {\n this.cut(widget.node);\n break;\n }\n case AXP_DESIGNER_COPY_MENU.name: {\n this.copy(widget.node);\n break;\n }\n case AXP_DESIGNER_PASTE_MENU.name: {\n this.paste(widget.node);\n break;\n }\n //\n }\n }\n unsubscribeEvents() {\n this.eventService.unsubscribe(AXPDesignerMessageKeys.Loaded);\n this.eventService.unsubscribe(AXPDesignerMessageKeys.PreviewWindow);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QixzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFJTCxrQkFBa0IsRUFFbEIsd0JBQXdCLEVBQ3hCLGlCQUFpQixHQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQXlCLEdBQUcsRUFBVSxNQUFNLFdBQVcsQ0FBQztBQUMvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUNMLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQiwrQkFBK0IsSUFBSSwrQkFBK0IsRUFDbEUsdUJBQXVCLEVBQ3ZCLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0Is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QXVCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLE1BQUs7WUFDUCxDQUFDO1lBQ0QsRUFBRTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0F4dkJVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhMb2FkaW5nRGlhbG9nQnV0dG9uSXRlbSwgQVhMb2FkaW5nRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nLWRpYWxvZyc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuaW1wb3J0IHsgQVhGaWxlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7XG4gIEFYUEJhc2VXaWRnZXRDb21wb25lbnQsXG4gIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50LFxuICBBWFBXaWRnZXRDb25maWcsXG4gIEFYUFdpZGdldEdyb3VwRW51bSxcbiAgQVhQV2lkZ2V0Tm9kZSxcbiAgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlLFxuICBBWFBXaWRnZXRzQ2F0YWxvZyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc0VtcHR5LCBpc05pbCwgaXNOdWxsLCBtZXJnZSwgcmVzdWx0LCBzZXQsIHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZGRXaWRnZXRDb21tYW5kLCBDb21tYW5kTWFuYWdlciwgUmVtb3ZlV2lkZ2V0Q29tbWFuZCwgVXBkYXRlV2lkZ2V0Q29tbWFuZCB9IGZyb20gJy4vY29tbWFuZCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckNvbm5lY3RvciB9IGZyb20gJy4vZGVzaWduZXItY29ubmVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQVhQX0RFU0lHTkVSX0FERF9XSURHRVRfTUVOVSxcbiAgQVhQX0RFU0lHTkVSX0NMT05FX01FTlUsXG4gIEFYUF9ERVNJR05FUl9DT1BZX01FTlUsXG4gIEFYUF9ERVNJR05FUl9DVVRfTUVOVSxcbiAgQVhQX0RFU0lHTkVSX0RFTEVURV9XSURHRVRfTUVOVSBhcyBBWFBfREVTSUdORVJfREVMRVRFX1dJREdFVF9NRU5VLFxuICBBWFBfREVTSUdORVJfUEFTVEVfTUVOVSxcbiAgQVhQX0RFU0lHTkVSX1NBVkVfQVNfV0lER0VUX01FTlUsXG4gIEFYUF9ERVNJR05FUl9TRUxFQ1RfV0lER0VUX01FTlUsXG4gIGNsb25lV2lkZ2V0TWVudSxcbn0gZnJvbSAnLi9nZW5lcmljLWNvbW1hbmRzLnR5cGVzJztcbmltcG9ydCB7IEFYUERlc2lnbmVyTWVzc2FnZUtleXMsIEFYUERlc2lnbmVyUHJldmlld01lc3NhZ2UsIEFYUERlc2lnbmVyU2F2ZUZvcm1NZXNzYWdlLCBBWFBEZXNpZ25lcldpZGdldENvbXBvbmVudCwgQVhQVGVtcGxhdGVMb2FkaW5nU3RyYXRlZ3kgfSBmcm9tICcuL2Rlc2lnbmVyLnR5cGVzJztcbmltcG9ydCB7IEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy93aWRnZXQtcGlja2VyL3dpZGdldC1waWNrZXIuc2VydmljZSc7XG5leHBvcnQgdHlwZSBBWFBEZXNpZ25lclByZXZpZXdTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICd4eGwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyRm9jdXNDb21tYW5kIHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclVwZGF0ZUNvbW1hbmQge1xuICB2YWx1ZXM6IGFueTtcbiAgd2lkZ2V0PzogQVhQV2lkZ2V0Tm9kZSB8IG51bGw7XG4gIG1vZGU6ICdpbml0JyB8ICd1cGRhdGUnO1xufVxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclVwZGF0ZUV2ZW50IHtcbiAgdmFsdWVzOiBhbnk7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclNlbGVjdENvbW1hbmQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGVzaWduZXJSZWdpc3RlckNvbW1hbmQge1xuICBpZDogbnVtYmVyO1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG4gIGNvbmZpZzogQVhQV2lkZ2V0Q29uZmlnO1xuICBpbnN0YW5jZTogQVhQQmFzZVdpZGdldENvbXBvbmVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEZXNpZ25lclNlbGVjdEV2ZW50IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyUmVmcmVzaENvbW1hbmQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyUmVmcmVzaEV2ZW50IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyQWRkTm9kZUNvbW1hbmQge1xuICB3aWRnZXQ6IEFYUFdpZGdldE5vZGU7XG59XG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyQWRkTm9kZUV2ZW50IHtcbiAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERlc2lnbmVyRm9jdXNFdmVudCB7XG4gIHdpZGdldDogQVhQV2lkZ2V0Tm9kZSB8IG51bGw7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lclNlcnZpY2Uge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmaWxlU2VydmljZSA9IGluamVjdChBWEZpbGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsb2FkaW5nU2VydmljZSA9IGluamVjdChBWExvYWRpbmdEaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3aWRnZXRSZWdpc3RlcnlTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgY29ubmVjdG9yID0gaW5qZWN0KEFYUERlc2lnbmVyQ29ubmVjdG9yKTtcbiAgcHJpdmF0ZSBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3aWRnZXRQaWNrZXJTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFBpY2tlclNlcnZpY2UpO1xuXG5cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50ID0gc2lnbmFsKHRoaXMuY3JlYXRlRG9jKCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudFBhZ2VJbmRleCA9IHNpZ25hbCgwKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY3VycmVudFBhZ2UgPSBzaWduYWwodGhpcy5kb2N1bWVudCgpLmNoaWxkcmVuPy5bMF0gYXMgQVhQV2lkZ2V0Tm9kZSk7XG5cbiAgcHJpdmF0ZSBjb21tYW5kTWFuYWdlciA9IGluamVjdChDb21tYW5kTWFuYWdlcik7XG5cbiAgcHJpdmF0ZSBjbGlwYm9hcmQgPSBzaWduYWw8QVhQV2lkZ2V0Tm9kZSB8IG51bGw+KG51bGwpO1xuXG4gIC8vXG4gIHB1YmxpYyBjYW5DdXRDb3B5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jYW4odGhpcy5zZWxlY3RlZE5vZGUoKSkuY29weU9yQ3V0KTtcbiAgcHVibGljIGNhbkRlbGV0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY2FuKHRoaXMuc2VsZWN0ZWROb2RlKCkpLmRlbGV0ZSk7XG4gIHB1YmxpYyBjYW5JbnNlcnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNhbih0aGlzLnNlbGVjdGVkTm9kZSgpKS5pbnNlcnQpO1xuICBwdWJsaWMgY2FuUGFzdGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNhbih0aGlzLnNlbGVjdGVkTm9kZSgpKS5wYXN0ZSk7XG4gIC8vXG4gIHB1YmxpYyByZWFkb25seSBoaXN0b3J5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb21tYW5kTWFuYWdlci5oaXN0b3J5KCkpO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FuVW5kbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29tbWFuZE1hbmFnZXIuY2FuVW5kbygpKTtcbiAgcHVibGljIHJlYWRvbmx5IGNhblJlZG8gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbW1hbmRNYW5hZ2VyLmNhblJlZG8oKSk7XG4gIC8vXG4gIHB1YmxpYyByZWFkb25seSBjYW5TYXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50ZW1wbGF0ZUlkKCkgIT0gbnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHVuc2F2ZWRDaGFuZ2VzID0gc2lnbmFsKGZhbHNlKTtcblxuICBwdWJsaWMgYnJlYWRjcnVtYnMgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE5vZGUoKSA/IHRoaXMuZmluZEJyZWFkY3J1bWJzKHRoaXMuY3VycmVudFBhZ2UoKSwgdGhpcy5zZWxlY3RlZE5vZGUoKSkgPz8gW10gOiBbXTtcbiAgfSk7XG5cbiAgcHVibGljIHNlbGVjdGVkTm9kZSA9IHNpZ25hbDxBWFBXaWRnZXROb2RlIHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHNlbGVjdGVkTm9kZUNvbmZpZyA9IGNvbXB1dGVkKCgpID0+IGdldCh0aGlzLnNlbGVjdGVkTm9kZSgpLCAnX19tZXRhX18uY29uZmlnJykgYXMgYW55IGFzIEFYUFdpZGdldENvbmZpZyk7XG5cbiAgcHJpdmF0ZSBfZm9jdXNlZE5vZGU6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGZvY3VzZWROb2RlID0gKCkgPT4gdGhpcy5fZm9jdXNlZE5vZGU7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNpemUgPSBzaWduYWw8QVhQRGVzaWduZXJQcmV2aWV3U2l6ZT4oJ3hsJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9uU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDxBWFBEZXNpZ25lclNlbGVjdEV2ZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb25SZWZyZXNoID0gbmV3IFN1YmplY3Q8QVhQRGVzaWduZXJSZWZyZXNoRXZlbnQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvblVwZGF0ZSA9IG5ldyBTdWJqZWN0PEFYUERlc2lnbmVyVXBkYXRlRXZlbnQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvbkZvY3VzZWQgPSBuZXcgU3ViamVjdDxBWFBEZXNpZ25lckZvY3VzRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSB0ZW1wbGF0ZUlkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgbG9hZGluZ1N0cmF0ZWd5ID0gc2lnbmFsPEFYUFRlbXBsYXRlTG9hZGluZ1N0cmF0ZWd5PihBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneS5Db25uZWN0b3IpO1xuXG4gICNlZiA9IGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IHRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICB9XG4gICk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UubGlzdGVuKEFYUERlc2lnbmVyTWVzc2FnZUtleXMuTG9hZGVkKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVQcmV2aWV3KCk7XG4gICAgfSlcbiAgICAvL1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmxpc3RlbihBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlByZXZpZXdXaW5kb3cpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm9wZW5QcmV2aWV3V2luZG93KCk7XG4gICAgfSk7XG4gICAgLy9cbiAgICAvLyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImJlZm9yZXVubG9hZFwiLCAoZXZlbnQpID0+IHtcbiAgICAvLyAgIGNvbnNvbGUubG9nKFwiV2luZG93IGlzIGJlZm9yZSBjbG9zaW5nLi4uXCIpO1xuICAgIC8vICAgLy8gZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyAgIC8vIGV2ZW50LnJldHVyblZhbHVlID0gJ2FiYyc7IC8vIFNvbWUgYnJvd3NlcnMgcmVxdWlyZSB0aGlzIHRvIHNob3cgdGhlIHByb21wdC5cbiAgICAvLyB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInVubG9hZFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhcIldpbmRvdyBpcyBjbG9zaW5nLi4uXCIpO1xuICAgICAgaWYgKHRoaXMudW5zYXZlZENoYW5nZXMoKSkge1xuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5wdWJsaXNoPEFYUERlc2lnbmVyU2F2ZUZvcm1NZXNzYWdlPihBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlNhdmVGb3JtLCB7IGlkOiB0aGlzLnRlbXBsYXRlSWQoKSEsIHN1Y2Nlc3M6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy51bnN1YnNjcmliZUV2ZW50cygpO1xuICAgIH0pO1xuICB9XG5cblxuICBwcml2YXRlIGNhbiA9ICh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsKToge1xuICAgIGRlbGV0ZTogYm9vbGVhbixcbiAgICBjb3B5T3JDdXQ6IGJvb2xlYW4sXG4gICAgaW5zZXJ0OiBib29sZWFuLFxuICAgIHBhc3RlOiBib29sZWFuLFxuICB9ID0+IHtcbiAgICBpZiAoIXdpZGdldCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGVsZXRlOiBmYWxzZSxcbiAgICAgICAgY29weU9yQ3V0OiBmYWxzZSxcbiAgICAgICAgaW5zZXJ0OiBmYWxzZSxcbiAgICAgICAgcGFzdGU6IGZhbHNlLFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjb25maWcgPSBnZXQod2lkZ2V0LCAnX19tZXRhX18uY29uZmlnJykgYXMgYW55IGFzIEFYUFdpZGdldENvbmZpZztcbiAgICByZXR1cm4ge1xuICAgICAgZGVsZXRlOiB3aWRnZXQudHlwZSAhPSAncGFnZS1sYXlvdXQnLFxuICAgICAgY29weU9yQ3V0OiB3aWRnZXQudHlwZSAhPSAncGFnZS1sYXlvdXQnLFxuICAgICAgcGFzdGU6IHRoaXMuY2xpcGJvYXJkKCkgIT0gbnVsbCAmJiBjb25maWcudHlwZSA9PSAnY29udGFpbmVyJyAmJiBjb25maWcuZGVzaWduZXI/LmNhbkluc2VydCAhPSBmYWxzZSxcbiAgICAgIGluc2VydDogY29uZmlnLnR5cGUgPT0gJ2NvbnRhaW5lcicgJiYgY29uZmlnLmRlc2lnbmVyPy5jYW5JbnNlcnQgIT0gZmFsc2UsXG4gICAgfVxuICB9XG5cblxuXG4gIHB1YmxpYyByZWdpc3Rlcihjb21tYW5kOiBBWFBEZXNpZ25lclJlZ2lzdGVyQ29tbWFuZCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBjb21tYW5kLndpZGdldCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3QoY29tbWFuZDogQVhQRGVzaWduZXJTZWxlY3RDb21tYW5kKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGUuc2V0KGNvbW1hbmQud2lkZ2V0KTtcbiAgICB0aGlzLm9uU2VsZWN0ZWQubmV4dChjb21tYW5kKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUoY29tbWFuZDogQVhQRGVzaWduZXJVcGRhdGVDb21tYW5kKTogdm9pZCB7XG4gICAgY29uc3Qgbm9kZSA9IGNvbW1hbmQud2lkZ2V0ID8/IHRoaXMuc2VsZWN0ZWROb2RlKCk7XG5cbiAgICBpZiAoY29tbWFuZC5tb2RlID09ICd1cGRhdGUnICYmIG5vZGUpIHtcbiAgICAgIHRoaXMuY29tbWFuZE1hbmFnZXIuZXhlY3V0ZUNvbW1hbmQobmV3IFVwZGF0ZVdpZGdldENvbW1hbmQobm9kZSEsIGNvbW1hbmQudmFsdWVzLCBub2RlISkpO1xuICAgIH1cbiAgICAvL3RoaXMuc2VsZWN0ZWROb2RlLnVwZGF0ZSgoYykgPT4gbWVyZ2Uobm9kZSwgY29tbWFuZC52YWx1ZXMpKTtcbiAgICB0aGlzLm9uVXBkYXRlLm5leHQoeyB3aWRnZXQ6IG5vZGUhLCB2YWx1ZXM6IGNvbW1hbmQudmFsdWVzIH0pO1xuICAgIHRoaXMudW5zYXZlZENoYW5nZXMuc2V0KHRydWUpO1xuICAgIHRoaXMudXBkYXRlUHJldmlldygpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKGNvbW1hbmQ6IEFYUERlc2lnbmVyRm9jdXNDb21tYW5kKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2ZvY3VzZWROb2RlICE9IGNvbW1hbmQud2lkZ2V0KSB7XG4gICAgICB0aGlzLl9mb2N1c2VkTm9kZSA9IGNvbW1hbmQud2lkZ2V0O1xuICAgICAgdGhpcy5vbkZvY3VzZWQubmV4dCh7IHdpZGdldDogdGhpcy5fZm9jdXNlZE5vZGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goY29tbWFuZDogQVhQRGVzaWduZXJSZWZyZXNoQ29tbWFuZCkge1xuICAgIHRoaXMub25SZWZyZXNoLm5leHQoeyB3aWRnZXQ6IGNvbW1hbmQud2lkZ2V0IH0pO1xuICAgIHRoaXMudXBkYXRlUHJldmlldygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQnJlYWRjcnVtYnMoXG4gICAgbm9kZTogQVhQV2lkZ2V0Tm9kZSxcbiAgICB0YXJnZXROb2RlPzogQVhQV2lkZ2V0Tm9kZSB8IG51bGwsXG4gICAgYnJlYWRjcnVtYjogQVhQV2lkZ2V0Tm9kZVtdID0gW11cbiAgKTogQVhQV2lkZ2V0Tm9kZVtdIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBBZGQgdGhlIGN1cnJlbnQgbm9kZSB0byB0aGUgYnJlYWRjcnVtYiBwYXRoXG4gICAgY29uc3QgY3VycmVudEJyZWFkY3J1bWIgPSBbLi4uYnJlYWRjcnVtYiwgbm9kZV07XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBub2RlIGlzIHRoZSB0YXJnZXQgbm9kZVxuICAgIGlmIChub2RlID09PSB0YXJnZXROb2RlKSB7XG4gICAgICByZXR1cm4gY3VycmVudEJyZWFkY3J1bWI7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIG5vZGUgaGFzIGNoaWxkcmVuLCByZWN1cnNpdmVseSBzZWFyY2ggdGhlbVxuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kQnJlYWRjcnVtYnMoY2hpbGQsIHRhcmdldE5vZGUsIGN1cnJlbnRCcmVhZGNydW1iKTtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vIG1hdGNoIGlzIGZvdW5kXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGFzeW5jIHNob3dQaWNrZXIoY3VycmVudE5vZGU6IEFYUFdpZGdldE5vZGUgPSB0aGlzLnNlbGVjdGVkTm9kZSgpISk6IFByb21pc2U8QVhQV2lkZ2V0Tm9kZVtdPiB7XG4gICAgY29uc3Qgd2lkZ2V0cyA9IGF3YWl0IHRoaXMud2lkZ2V0UGlja2VyU2VydmljZS5zaG93UGlja2VyKHsgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLkZvcm1FbGVtZW50XSB9KTtcbiAgICBjb25zdCByZXN1bHQ6IEFYUFdpZGdldE5vZGVbXSA9IFtdO1xuICAgIGlmICh3aWRnZXRzLmxlbmd0aCkge1xuICAgICAgd2lkZ2V0cy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuYWRkV2lkZ2V0KGN1cnJlbnROb2RlLCB7IHR5cGU6IGMudHlwZSB9KSEpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgbmV3KCkge1xuICAgIHRoaXMuY29tbWFuZE1hbmFnZXIuY2xlYXIoKTtcbiAgICB0aGlzLmRvY3VtZW50LnNldCh0aGlzLmNyZWF0ZURvYygpKTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/LlswXSEpO1xuICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURvYygpOiBBWFBXaWRnZXROb2RlIHtcbiAgICBjb25zdCBkb2M6IEFYUFdpZGdldE5vZGUgPSB7XG4gICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kb2N1bWVudCxcbiAgICAgIGNoaWxkcmVuOiBbdGhpcy5jcmVhdGVQYWdlKCldLFxuICAgICAgbmFtZTogJ2RvY3VtZW50JyxcbiAgICB9O1xuICAgIHNldChkb2MsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICByZXR1cm4gZG9jO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQYWdlKCk6IEFYUFdpZGdldE5vZGUge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKCdwYWdlLWxheW91dCcpO1xuXG4gICAgY29uc3QgcGFnZTogQVhQV2lkZ2V0Tm9kZSA9IHtcbiAgICAgIHR5cGU6ICdwYWdlLWxheW91dCcsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgICBuYW1lOiAncGFnZS1sYXlvdXQxJyxcbiAgICB9O1xuXG4gICAgc2V0KHBhZ2UsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICBzZXQocGFnZSwgJ19fbWV0YV9fLmNvbmZpZycsIGNvbmZpZyk7XG4gICAgcmV0dXJuIHBhZ2U7XG4gIH1cblxuICBwdWJsaWMgYWRkTmV3UGFnZSgpIHtcbiAgICB0aGlzLmFkZFdpZGdldCh0aGlzLmRvY3VtZW50KCksIHRoaXMuY3JlYXRlUGFnZSgpKTtcbiAgICB0aGlzLmdvVG9QYWdlKHRoaXMuY3VycmVudFBhZ2VJbmRleCgpICsgMSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlUGFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuZG9jdW1lbnQoKS5jaGlsZHJlbj8uW2luZGV4XSE7XG4gICAgdGhpcy5yZW1vdmVXaWRnZXQocGFnZSk7XG4gICAgdGhpcy5nb1RvUGFnZShpbmRleCAtIDEpO1xuICB9XG5cbiAgcHVibGljIGNsb25lUGFnZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuZG9jdW1lbnQoKS5jaGlsZHJlbj8uW2luZGV4XSE7XG4gICAgdGhpcy5jbG9uZShwYWdlKTtcbiAgICB0aGlzLmdvVG9QYWdlKCh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Lmxlbmd0aCA/PyAxKSAtIDEpO1xuICB9XG5cbiAgcHVibGljIGdvVG9QYWdlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlSW5kZXguc2V0KGluZGV4KTtcbiAgICB0aGlzLmN1cnJlbnRQYWdlLnNldCh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Llt0aGlzLmN1cnJlbnRQYWdlSW5kZXgoKV0hKTtcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogdGhpcy5jdXJyZW50UGFnZSgpIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZVJlbmRlclBhZ2UoKSB7XG4gICAgdGhpcy5jdXJyZW50UGFnZS5zZXQoeyAuLi50aGlzLmN1cnJlbnRQYWdlKCkgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IHRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kV2lkZ2V0QnlJZChyb290OiBBWFBXaWRnZXROb2RlLCBpZDogc3RyaW5nKTogQVhQV2lkZ2V0Tm9kZSB8IG51bGwge1xuICAgIGlmIChnZXQocm9vdCwgJ19fbWV0YV9fLmlkJykgPT09IGlkKSB7XG4gICAgICByZXR1cm4gcm9vdDsgLy8gUmV0dXJuIHRoZSByb290IGlmIGl0IG1hdGNoZXMgdGhlIElEXG4gICAgfVxuICAgIGlmICghcm9vdC5jaGlsZHJlbikgcmV0dXJuIG51bGw7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHJvb3QuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5maW5kV2lkZ2V0QnlJZChjaGlsZCwgaWQpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIHJldHVybiBmb3VuZDsgLy8gUmV0dXJuIHRoZSBmb3VuZCBjaGlsZFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsOyAvLyBOb2RlIG5vdCBmb3VuZFxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kUGFyZW50KGlkOiBzdHJpbmcsIHBhcmVudDogQVhQV2lkZ2V0Tm9kZSA9IHRoaXMuY3VycmVudFBhZ2UoKSk6IEFYUFdpZGdldE5vZGUgfCBudWxsIHtcbiAgICBpZiAoIXBhcmVudC5jaGlsZHJlbikgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAocGFyZW50LmNoaWxkcmVuLnNvbWUoKGNoaWxkKSA9PiBnZXQoY2hpbGQsICdfX21ldGFfXy5pZCcpID09PSBpZCkpIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7IC8vIFJldHVybiB0aGlzIG5vZGUgYXMgaXQncyB0aGUgcGFyZW50IG9mIHRoZSBub2RlIHdpdGggdGhlIGdpdmVuIElEXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBwYXJlbnQuY2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGZvdW5kUGFyZW50ID0gdGhpcy5maW5kUGFyZW50KGlkLCBjaGlsZCk7XG4gICAgICBpZiAoZm91bmRQYXJlbnQpIHJldHVybiBmb3VuZFBhcmVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDsgLy8gTm8gcGFyZW50IGZvdW5kXG4gIH1cblxuICBwcml2YXRlIGZpbmROZWFyZXN0Q29udGFpbmVyKG5vZGU6IEFYUFdpZGdldE5vZGUsIHNlYXJjaFVwd2FyZCA9IHRydWUpOiBBWFBXaWRnZXROb2RlIHwgbnVsbCB7XG4gICAgaWYgKHNlYXJjaFVwd2FyZCkge1xuICAgICAgbGV0IGN1cnJlbnQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gbm9kZTtcbiAgICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKGN1cnJlbnQudHlwZSk7XG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLnR5cGUgPT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50ID0gdGhpcy5maW5kUGFyZW50KGdldChjdXJyZW50LCAnX19tZXRhX18uaWQnKSEpOyAvLyBVc2UgZmluZFBhcmVudCB0byBuYXZpZ2F0ZSB1cHdhcmRzXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBzZWFyY2ggdG8gZmluZCB0aGUgZmlyc3QgY29udGFpbmVyIGFtb25nIGNoaWxkcmVuXG4gICAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UucmVzb2x2ZShjaGlsZC50eXBlKTtcbiAgICAgICAgICBpZiAoY29uZmlnICYmIGNvbmZpZy50eXBlID09ICdjb250YWluZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGZvdW5kQ29udGFpbmVyID0gdGhpcy5maW5kTmVhcmVzdENvbnRhaW5lcihjaGlsZCwgZmFsc2UpOyAvLyBDb250aW51ZSBzZWFyY2hpbmcgZG93bndhcmRzXG4gICAgICAgICAgaWYgKGZvdW5kQ29udGFpbmVyKSByZXR1cm4gZm91bmRDb250YWluZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIG5vIGNvbnRhaW5lciBmb3VuZFxuICB9XG5cbiAgYWRkV2lkZ2V0KGN1cnJlbnROb2RlOiBBWFBXaWRnZXROb2RlLCBub2RlOiBBWFBXaWRnZXROb2RlKTogQVhQV2lkZ2V0Tm9kZSB7XG4gICAgLy9cbiAgICBjb25zdCBjbG9uZWQgPSBjbG9uZURlZXAobm9kZSk7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy53aWRnZXRSZWdpc3RlcnlTZXJ2aWNlLnJlc29sdmUobm9kZS50eXBlKTtcblxuICAgIC8vXG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5leGVjdXRlQ29tbWFuZChuZXcgQWRkV2lkZ2V0Q29tbWFuZChjbG9uZWQsIGN1cnJlbnROb2RlLCBjdXJyZW50Tm9kZSkpO1xuICAgIC8vXG4gICAgY2xvbmVkLm5hbWUgPSB0aGlzLmdlbmVyYXRlVW5pcXVlTmFtZShub2RlLnR5cGUpO1xuICAgIHNldChjbG9uZWQsICdfX21ldGFfXy5pZCcsIHRoaXMuZ2VuZXJhdGVVbmlxdWVJZCgpKTtcbiAgICBzZXQoY2xvbmVkLCAnX19tZXRhX18uY29uZmlnJywgY29uZmlnKTtcbiAgICBzZXQoY2xvbmVkLCAnX19tZXRhX18uYWRkZWQnLCB0cnVlKTtcbiAgICAvL1xuICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gICAgLy9cbiAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IGN1cnJlbnROb2RlIH0pO1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBjbG9uZWQgfSk7XG5cbiAgICByZXR1cm4gY2xvbmVkO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVdpZGdldChub2RlOiBBWFBXaWRnZXROb2RlID0gdGhpcy5zZWxlY3RlZE5vZGUoKSEpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBub2RlLnR5cGUgPT09ICdkb2N1bWVudC1sYXlvdXQnIHx8XG4gICAgICAobm9kZS50eXBlID09PSAncGFnZS1sYXlvdXQnICYmICh0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Lmxlbmd0aCA/PyAxKSA9PSAxKVxuICAgICkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2Fubm90IHJlbW92ZSB0aGUgcGFnZSBub2RlLicpO1xuICAgICAgcmV0dXJuOyAvLyBQcmV2ZW50IHJlbW92aW5nIHRoZSByb290IHBhZ2Ugbm9kZSBvciBkb2N1bWVudFxuICAgIH1cblxuICAgIGNvbnN0IG5vZGVJZFRvUmVtb3ZlID0gZ2V0KG5vZGUsICdfX21ldGFfXy5pZCcpO1xuICAgIGlmICghbm9kZUlkVG9SZW1vdmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm9kZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgX19tZXRhX18uaWQgdG8gaWRlbnRpZnkgaXQgZm9yIHJlbW92YWwuJyk7XG4gICAgfVxuXG4gICAgLy8gRmluZCB0aGUgcGFyZW50IG9mIHRoZSBub2RlIHRvIHJlbW92ZSBpdFxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudChub2RlSWRUb1JlbW92ZSwgdGhpcy5kb2N1bWVudCgpKTtcbiAgICBpZiAoIXBhcmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQYXJlbnQgbm9kZSBub3QgZm91bmQuIFRoZSBub2RlIG1pZ2h0IGJlIHRoZSByb290IG5vZGUgb3IgZG9lcyBub3QgZXhpc3QuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXNTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGVkTm9kZSgpOyAvLyBDYXB0dXJlIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbm9kZSBiZWZvcmUgcmVtb3ZhbFxuICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgUmVtb3ZlV2lkZ2V0Q29tbWFuZChub2RlLCBwYXJlbnQsIHByZXZpb3VzU2VsZWN0aW9uISk7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5leGVjdXRlQ29tbWFuZChjb21tYW5kKTtcblxuICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogcGFyZW50IH0pOyAvLyBSZWZyZXNoIHRoZSBVSSB0byByZWZsZWN0IGNoYW5nZXNcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogcGFyZW50IH0pOyAvLyBTZWxlY3QgdGhlIHBhcmVudCBub2RlIGFmdGVyIHJlbW92YWxcbiAgfVxuXG4gIG5hdmlnYXRlVG8oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuY29tbWFuZE1hbmFnZXIuZ29Ub0NvbW1hbmQoaW5kZXgpO1xuICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gICAgY29uc3QgY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuY29tbWFuZE1hbmFnZXIuc2VsZWN0ZWROb2RlKCk7XG4gICAgdGhpcy5yZWZyZXNoKHsgd2lkZ2V0OiB0aGlzLmN1cnJlbnRQYWdlKCkgfSk7XG4gICAgdGhpcy5zZWxlY3QoeyB3aWRnZXQ6IGN1cnJlbnRTZWxlY3Rpb24hIH0pO1xuICB9XG5cbiAgcHVibGljIHJlZG8oKSB7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5yZWRvKCk7XG4gICAgdGhpcy5yZVJlbmRlclBhZ2UoKTtcbiAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gdGhpcy5jb21tYW5kTWFuYWdlci5zZWxlY3RlZE5vZGUoKTtcbiAgICB0aGlzLnJlZnJlc2goeyB3aWRnZXQ6IHRoaXMuY3VycmVudFBhZ2UoKSB9KTtcbiAgICB0aGlzLnNlbGVjdCh7IHdpZGdldDogY3VycmVudFNlbGVjdGlvbiEgfSk7XG4gIH1cblxuICBwdWJsaWMgdW5kbygpIHtcbiAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyLnVuZG8oKTtcbiAgICB0aGlzLnJlUmVuZGVyUGFnZSgpO1xuICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmNvbW1hbmRNYW5hZ2VyLnNlbGVjdGVkTm9kZSgpO1xuICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogdGhpcy5jdXJyZW50UGFnZSgpIH0pO1xuICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBjdXJyZW50U2VsZWN0aW9uISB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckhpc3RvcnkoKSB7XG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVNZXRhUHJvcChvYmo6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgbm9kZU5hbWUgPSAnX19tZXRhX18nO1xuICAgIC8vIENoZWNrIGlmIHRoZSBvYmplY3QgaXMgYW4gYXJyYXlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLm1hcCgoaXRlbSkgPT4gdGhpcy5yZW1vdmVNZXRhUHJvcChpdGVtKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcbiAgICAgIC8vIENyZWF0ZSBhIG5ldyBvYmplY3QgdG8gc3RvcmUgdGhlIHJlc3VsdFxuICAgICAgbGV0IG5ld09iajogYW55ID0ge307XG4gICAgICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7XG4gICAgICAgIC8vIE9ubHkgYWRkIHRoZSBrZXkgaWYgaXQncyBub3QgdGhlIG5vZGVOYW1lIHdlIHdhbnQgdG8gcmVtb3ZlXG4gICAgICAgIGlmIChrZXkgIT09IG5vZGVOYW1lKSB7XG4gICAgICAgICAgbmV3T2JqW2tleV0gPSB0aGlzLnJlbW92ZU1ldGFQcm9wKG9ialtrZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG5ld09iajtcbiAgICB9XG4gICAgLy8gSWYgdGhlIHZhbHVlIGlzIG5vdCBhbiBvYmplY3Qgb3IgYXJyYXksIHJldHVybiBpdCBhcyBpc1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFkZE1ldGFUb05vZGVzKFxuICAgIG5vZGU6IEFYUFdpZGdldE5vZGUsXG4gICAgcHJvY2Vzc2VkTm9kZXM6IHsgY291bnQ6IG51bWJlciB9LFxuICAgIHByb2dyZXNzQ2FsbGJhY2s6IChwcm9jZXNzZWQ6IG51bWJlcikgPT4gdm9pZFxuICApOiBQcm9taXNlPEFYUFdpZGdldE5vZGU+IHtcbiAgICAvLyBBcHBseSB5b3VyIG1ldGEgbG9naWMgaGVyZVxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKG5vZGUudHlwZSk7XG4gICAgLy9cbiAgICBzZXQobm9kZSwgJ19fbWV0YV9fLmlkJywgdGhpcy5nZW5lcmF0ZVVuaXF1ZUlkKCkpO1xuICAgIHNldChub2RlLCAnX19tZXRhX18uY29uZmlnJywgY29uZmlnKTtcbiAgICAvL1xuICAgIC8vIEluY3JlbWVudCB0aGUgcHJvY2Vzc2VkIG5vZGUgY291bnQgYW5kIHVwZGF0ZSB0aGUgcHJvZ3Jlc3MgZGlhbG9nXG4gICAgcHJvY2Vzc2VkTm9kZXMuY291bnQrKztcbiAgICBwcm9ncmVzc0NhbGxiYWNrKHByb2Nlc3NlZE5vZGVzLmNvdW50KTtcbiAgICAvLyBSZWN1cnNpdmVseSBwcm9jZXNzIGNoaWxkIG5vZGVzIHVzaW5nIFByb21pc2UuYWxsXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBub2RlLmNoaWxkcmVuID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIG5vZGUuY2hpbGRyZW4ubWFwKGFzeW5jIChjaGlsZCkgPT4gYXdhaXQgdGhpcy5hZGRNZXRhVG9Ob2RlcyhjaGlsZCwgcHJvY2Vzc2VkTm9kZXMsIHByb2dyZXNzQ2FsbGJhY2spKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBwdWJsaWMgY29weSh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gdGhpcy5zZWxlY3RlZE5vZGUoKSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbih3aWRnZXQpLmNvcHlPckN1dCkge1xuICAgICAgdGhpcy5jbGlwYm9hcmQuc2V0KGNsb25lRGVlcCh3aWRnZXQpKTsgLy8gVXNlIGxvZGFzaCdzIGNsb25lRGVlcCB0byBlbnN1cmUgYSBkZWVwIGNvcHlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY3V0KHdpZGdldDogQVhQV2lkZ2V0Tm9kZSB8IG51bGwgPSB0aGlzLnNlbGVjdGVkTm9kZSgpKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuKHdpZGdldCkuY29weU9yQ3V0KSB7XG4gICAgICB0aGlzLmNvcHkod2lkZ2V0KTsgLy8gQ29weSB0aGUgd2lkZ2V0IHRvIHRoZSBjbGlwYm9hcmRcbiAgICAgIHRoaXMucmVtb3ZlV2lkZ2V0KHdpZGdldCEpOyAvLyBSZXVzZSB0aGUgcmVtb3ZlV2lkZ2V0IG1ldGhvZCB3aGljaCBzaG91bGQgaGFuZGxlIHVuZG8gaW50ZXJuYWxseVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9uZSh3aWRnZXQ6IEFYUFdpZGdldE5vZGUgfCBudWxsID0gdGhpcy5zZWxlY3RlZE5vZGUoKSk6IHZvaWQge1xuICAgIGlmICghd2lkZ2V0KSByZXR1cm47XG4gICAgdGhpcy5jb3B5KHdpZGdldCk7IC8vIENvcHkgdGhlIHdpZGdldCB0byB0aGUgY2xpcGJvYXJkXG4gICAgaWYgKHdpZGdldC50eXBlID09ICdwYWdlLWxheW91dCcpIHtcbiAgICAgIHRoaXMucGFzdGUodGhpcy5kb2N1bWVudCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXN0ZSh3aWRnZXQhKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcGFzdGUocGFyZW50Tm9kZTogQVhQV2lkZ2V0Tm9kZSB8IHVuZGVmaW5lZCA9IHRoaXMuc2VsZWN0ZWROb2RlKCkgPz8gdGhpcy5jdXJyZW50UGFnZSgpKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNsaXBib2FyZCgpIHx8ICF0aGlzLnNlbGVjdGVkTm9kZSgpIHx8ICFwYXJlbnROb2RlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDbGlwYm9hcmQgaXMgZW1wdHkgb3Igbm8gbm9kZSBpcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV3Tm9kZSA9IGNsb25lRGVlcCh0aGlzLmNsaXBib2FyZCgpIGFzIEFYUFdpZGdldE5vZGUpO1xuICAgIGNvbnN0IG5lYXJlc3RDb250YWluZXIgPSB0aGlzLmZpbmROZWFyZXN0Q29udGFpbmVyKHBhcmVudE5vZGUsIHRydWUpO1xuICAgIGlmICghbmVhcmVzdENvbnRhaW5lcikge1xuICAgICAgY29uc29sZS5lcnJvcignTm8gc3VpdGFibGUgY29udGFpbmVyIGZvdW5kLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvL1xuICAgIGlmICghbmVhcmVzdENvbnRhaW5lci5jaGlsZHJlbikge1xuICAgICAgbmVhcmVzdENvbnRhaW5lci5jaGlsZHJlbiA9IFtdO1xuICAgIH1cbiAgICAvL1xuICAgIGNvbnN0IHNldE5hbWVJZCA9IChub2RlOiBBWFBXaWRnZXROb2RlKSA9PiB7XG4gICAgICBzZXQobm9kZSwgJ25hbWUnLCB0aGlzLmdlbmVyYXRlVW5pcXVlTmFtZShub2RlLnR5cGUpKTtcbiAgICAgIHNldChub2RlLCAnX19tZXRhX18uaWQnLCB0aGlzLmdlbmVyYXRlVW5pcXVlSWQoKSk7XG4gICAgICBub2RlLmNoaWxkcmVuPy5mb3JFYWNoKChuKSA9PiB7XG4gICAgICAgIHNldE5hbWVJZChuKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgc2V0TmFtZUlkKG5ld05vZGUpO1xuICAgIC8vXG4gICAgdGhpcy5jb21tYW5kTWFuYWdlci5leGVjdXRlQ29tbWFuZChuZXcgQWRkV2lkZ2V0Q29tbWFuZChuZXdOb2RlLCBuZWFyZXN0Q29udGFpbmVyLCBuZWFyZXN0Q29udGFpbmVyKSk7XG4gICAgLy9cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaCh7IHdpZGdldDogbmVhcmVzdENvbnRhaW5lciB9KTsgLy8gUmVmcmVzaCB0aGUgVUlcbiAgICAgIHRoaXMuc2VsZWN0KHsgd2lkZ2V0OiBuZXdOb2RlIH0pOyAvLyBTZWxlY3QgdGhlIG5ld2x5IHBhc3RlZCBub2RlXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzYXZlKCkge1xuICAgIGlmICh0aGlzLnRlbXBsYXRlSWQoKSkge1xuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuZXhwb3J0KCk7XG4gICAgICBpZiAodGhpcy5sb2FkaW5nU3RyYXRlZ3koKSA9PSBBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneS5Db25uZWN0b3IpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb25uZWN0b3Iuc2F2ZSh0aGlzLnRlbXBsYXRlSWQoKSEsIHsganNvbjogY29udGVudCB9KTtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcygnWW91ciBjaGFuZ2VzIHNhdmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZlbnRTZXJ2aWNlLnNlbmRBbmRXYWl0Rm9yUmVzcG9uc2U8QVhQRGVzaWduZXJTYXZlRm9ybU1lc3NhZ2UsIHsgc3VjY2VzczogYm9vbGVhbiB9PihBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlNhdmVGb3JtLCB7IGlkOiB0aGlzLnRlbXBsYXRlSWQoKSEsIHN1Y2Nlc3M6IHRydWUsIGNvbnRlbnQgfSk7XG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMudW5zYXZlZENoYW5nZXMuc2V0KGZhbHNlKTtcbiAgICAgICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvd25sb2FkSnNvbigpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNhdmVBcyhub2RlOiBBWFBXaWRnZXROb2RlID0gdGhpcy5kb2N1bWVudCgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZXhwb3J0KG5vZGUpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnNhdmVBcyh7IGpzb246IGNvbnRlbnQgfSk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc3VjY2VzcygnWW91ciBjaGFuZ2VzIHNhdmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydChub2RlOiBBWFBXaWRnZXROb2RlID0gdGhpcy5kb2N1bWVudCgpKTogc3RyaW5nIHtcbiAgICBjb25zdCBqc29uID0gdGhpcy5yZW1vdmVNZXRhUHJvcChub2RlKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gIH1cblxuICBkb3dubG9hZEpzb24oKSB7XG4gICAgLy8gQ29udmVydCB0aGUgb2JqZWN0IHRvIGEgSlNPTiBzdHJpbmdcbiAgICBjb25zdCBqc29uU3RyID0gdGhpcy5leHBvcnQoKTtcblxuICAgIC8vIENyZWF0ZSBhIGJsb2Igb2JqZWN0IGZyb20gdGhlIEpTT04gc3RyaW5nXG4gICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtqc29uU3RyXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG5cbiAgICAvLyBDcmVhdGUgYSBVUkwgZm9yIHRoZSBibG9iIG9iamVjdFxuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG5cbiAgICAvLyBDcmVhdGUgYSB0ZW1wb3JhcnkgPGE+IGVsZW1lbnQgdG8gdHJpZ2dlciB0aGUgZG93bmxvYWRcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGEuaHJlZiA9IHVybDtcbiAgICBhLmRvd25sb2FkID0gJ2V4cG9ydC5qc29uJztcblxuICAgIC8vIEFwcGVuZCB0aGUgPGE+IGVsZW1lbnQgdG8gdGhlIGRvY3VtZW50IGJvZHkgKG5lY2Vzc2FyeSBmb3Igc29tZSBicm93c2VycylcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuXG4gICAgLy8gVHJpZ2dlciB0aGUgZG93bmxvYWQgYnkgY2xpY2tpbmcgdGhlIDxhPiBlbGVtZW50XG4gICAgYS5jbGljaygpO1xuICAgIC8vIENsZWFuIHVwIGJ5IHJldm9raW5nIHRoZSBvYmplY3QgVVJMIGFuZCByZW1vdmluZyB0aGUgPGE+IGVsZW1lbnRcbiAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRCeUlkKGlkOiBzdHJpbmcsIG9wdGlvbnM6IHsgc3RyYXRlZ3k6IEFYUFRlbXBsYXRlTG9hZGluZ1N0cmF0ZWd5IH0gPSB7IHN0cmF0ZWd5OiBBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneS5Db25uZWN0b3IgfSkge1xuICAgIGxldCBjb250ZW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgaWYgKG9wdGlvbnMuc3RyYXRlZ3kgPT0gQVhQVGVtcGxhdGVMb2FkaW5nU3RyYXRlZ3kuQ29ubmVjdG9yKSB7XG4gICAgICAgIGNvbnRlbnQgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5sb2FkKGlkKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBjb250ZW50ID0gYXdhaXQgdGhpcy5ldmVudFNlcnZpY2Uuc2VuZEFuZFdhaXRGb3JSZXNwb25zZTx7IGZvcm1JZDogc3RyaW5nIH0sIHN0cmluZz4oQVhQRGVzaWduZXJNZXNzYWdlS2V5cy5SZXF1ZXN0Rm9ybUNvbnRlbnQsIHsgZm9ybUlkOiBpZCB9LCB7IHRpbWVvdXQ6IDEwMDAwLCByZXRyaWVzOiAzLCByZXRyeURlbGF5OiAxMDAwIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFpc05pbChjb250ZW50KSAmJiAhaXNFbXB0eShjb250ZW50KSkge1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRCeUNvbnRlbnQoY29udGVudCEpO1xuICAgICAgfVxuICAgICAgdGhpcy50ZW1wbGF0ZUlkLnNldChpZCk7XG4gICAgICB0aGlzLmxvYWRpbmdTdHJhdGVneS5zZXQob3B0aW9ucy5zdHJhdGVneSk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZGFuZ2VyKGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGltcG9ydEpTb24oKSB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCB0aGlzLmZpbGVTZXJ2aWNlLmNob29zZSh7IG11bHRpcGxlOiBmYWxzZSwgYWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicgfSk7XG4gICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgZmlsZSA9IGZpbGVzWzBdO1xuICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZpbGUudGV4dCgpO1xuICAgICAgYXdhaXQgdGhpcy5sb2FkQnlDb250ZW50KGNvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGxvYWRCeUNvbnRlbnQoY29udGVudDogc3RyaW5nKSB7XG4gICAgY29uc3Qgcm9vdE5vZGUgPSBKU09OLnBhcnNlKGNvbnRlbnQpIGFzIEFYUFdpZGdldE5vZGU7XG4gICAgY29uc3QgdG90YWxOb2RlID0gdGhpcy5jb3VudFRvdGFsTm9kZXMocm9vdE5vZGUpO1xuICAgIGNvbnN0IHByb2Nlc3NlZE5vZGVzID0geyBjb3VudDogMCB9O1xuXG4gICAgY29uc3QgYnV0dG9uOiBBWExvYWRpbmdEaWFsb2dCdXR0b25JdGVtID0ge1xuICAgICAgdGV4dDogJ0NhbmNlbCcsXG4gICAgICBhdXRvZm9jdXM6IHRydWUsXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgZGlhbG9nLmNsb3NlKCk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNob3coe1xuICAgICAgbW9kZTogJ2RldGVybWluYXRlJyxcbiAgICAgIHRpdGxlOiAnTG9hZGluZyBDb250ZW50JyxcbiAgICAgIHByb2dyZXNzQ29sb3I6ICdwcmltYXJ5JyxcbiAgICAgIHRleHQ6ICdQcm9jZXNzaW5nIGNvbnRlbnQnLFxuICAgICAgc3RhdHVzOiBgMCBvZiAke3RvdGFsTm9kZX1gLFxuICAgICAgYnV0dG9uczogW2J1dHRvbl0sXG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgcm9vdCA9IGF3YWl0IHRoaXMuYWRkTWV0YVRvTm9kZXMocm9vdE5vZGUsIHByb2Nlc3NlZE5vZGVzLCAoY291bnQpID0+IHtcbiAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzVmFsdWUoTWF0aC5jZWlsKChjb3VudCAvIHRvdGFsTm9kZSkgKiAxMDApKTtcbiAgICAgICAgZGlhbG9nLnNldFByb2dyZXNzU3RhdHVzKGAke2NvdW50fSBvZiAke3RvdGFsTm9kZX1gKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwYWdlID0gcm9vdC5jaGlsZHJlbj8uWzBdITtcbiAgICAgIHRoaXMuZG9jdW1lbnQuc2V0KHJvb3QpO1xuICAgICAgdGhpcy5jdXJyZW50UGFnZS5zZXQocGFnZSk7XG5cbiAgICAgIGRpYWxvZy5zZXRQcm9ncmVzc0NvbG9yKCdzdWNjZXNzJyk7XG4gICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NUZXh0KCdDb250ZW50IGxvYWRlZCBzdWNjZXNzZnVsbHknKTtcbiAgICAgIGJ1dHRvbi50ZXh0ID0gJ09rYXknO1xuICAgICAgYnV0dG9uLmNvbG9yID0gJ3N1Y2Nlc3MnO1xuICAgICAgZGlhbG9nLnNldFByb2dyZXNzVmFsdWUoMTAwKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVSZW5kZXJQYWdlKCk7XG4gICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgfSwgMjUwKTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NDb2xvcignZGFuZ2VyJyk7XG4gICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NUZXh0KGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0Nhbm5vdCBsb2FkIGNvbnRlbnQnKTtcbiAgICAgIGJ1dHRvbi50ZXh0ID0gJ0Nsb3NlJztcbiAgICAgIGJ1dHRvbi5jb2xvciA9ICdkYW5nZXInO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY291bnRUb3RhbE5vZGVzKG5vZGU6IEFYUFdpZGdldE5vZGUpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDE7IC8vIENvdW50IHRoZSBjdXJyZW50IG5vZGVcbiAgICBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvdW50ICs9IG5vZGUuY2hpbGRyZW4ucmVkdWNlKChzdW0sIGNoaWxkKSA9PiBzdW0gKyB0aGlzLmNvdW50VG90YWxOb2RlcyhjaGlsZCksIDApO1xuICAgIH1cbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlVW5pcXVlTmFtZSh0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIE5vcm1hbGl6ZSB0aGUgdHlwZSB0byBmb2xsb3cgY2FtZWxDYXNlIGNvbnZlbnRpb25cbiAgICBjb25zdCBiYXNlTmFtZSA9IHR5cGUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyB0eXBlLnNsaWNlKDEpO1xuICAgIGxldCBpbmRleCA9IDE7XG4gICAgbGV0IHVuaXF1ZU5hbWUgPSBgJHtiYXNlTmFtZX0ke2luZGV4fWA7XG5cbiAgICAvLyBHYXRoZXIgYWxsIGV4aXN0aW5nIG5hbWVzIHRvIGNoZWNrIGFnYWluc3RcbiAgICBjb25zdCBleGlzdGluZ05hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgdGhpcy5jb2xsZWN0QWxsTmFtZXModGhpcy5kb2N1bWVudCgpLCBleGlzdGluZ05hbWVzKTtcblxuICAgIC8vIEluY3JlbWVudCB0aGUgaW5kZXggdW50aWwgYSB1bmlxdWUgbmFtZSBpcyBmb3VuZFxuICAgIHdoaWxlIChleGlzdGluZ05hbWVzLmhhcyh1bmlxdWVOYW1lKSkge1xuICAgICAgaW5kZXgrKztcbiAgICAgIHVuaXF1ZU5hbWUgPSBgJHtiYXNlTmFtZX0ke2luZGV4fWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaXF1ZU5hbWU7XG4gIH1cblxuICBnZW5lcmF0ZVVuaXF1ZUlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiBNYXRoLnBvdygxMCwgMTgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsZWN0QWxsTmFtZXMobm9kZTogQVhQV2lkZ2V0Tm9kZSwgbmFtZXM6IFNldDxzdHJpbmc+KTogdm9pZCB7XG4gICAgaWYgKG5vZGUubmFtZSkge1xuICAgICAgbmFtZXMuYWRkKG5vZGUubmFtZSk7XG4gICAgfVxuICAgIGlmIChub2RlLmNoaWxkcmVuKSB7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5jb2xsZWN0QWxsTmFtZXMoY2hpbGQsIG5hbWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUHJldmlldygpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5wdWJsaXNoPEFYUERlc2lnbmVyUHJldmlld01lc3NhZ2U+KEFYUERlc2lnbmVyTWVzc2FnZUtleXMuUHJldmlldywge1xuICAgICAgaWQ6IHRoaXMudGVtcGxhdGVJZCgpISxcbiAgICAgIGRvY3VtZW50OiB0aGlzLnJlbW92ZU1ldGFQcm9wKHRoaXMuZG9jdW1lbnQoKSlcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvcGVuUHJldmlld0RpYWxvZygpIHtcbiAgICBjb25zdCBjb20gPSBhd2FpdCBpbXBvcnQoJy4uLy4uL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUExheW91dERlc2lnbmVyUHJldmlld0NvbXBvbmVudCk7XG4gICAgYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIGhlYWRlcjogZmFsc2UsXG4gICAgICBzaXplOiAnZnVsbCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGluaXRpYWxTaXplOiB0aGlzLnNpemUoKSxcbiAgICAgICAgaXNEaWFsb2dXaW5kb3c6IHRydWUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9wZW5QcmV2aWV3V2luZG93KCkge1xuICAgIHdpbmRvdy5vcGVuKCcvZm9ybXMvcHJldmlldycsICdfYmxhbmsnKTtcbiAgfVxuXG5cblxuICBnZXRDb250ZXh0TWVudUl0ZW1zKGluc3RhbmNlOiBBWFBEZXNpZ25lcldpZGdldENvbXBvbmVudCwgaXNSb290ID0gZmFsc2UpOiBBWE1lbnVJdGVtW10ge1xuICAgIGNvbnN0IHdpZGdldCA9IGluc3RhbmNlIGFzIGFueSBhcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDtcbiAgICBjb25zdCBub2RlID0gd2lkZ2V0Lm5vZGU7XG5cbiAgICBjb25zdCBpdGVtczogQVhNZW51SXRlbVtdID0gW107XG4gICAgLy8gICAgICAgXG4gICAgaWYgKHRoaXMuY2FuKG5vZGUpLmluc2VydCkge1xuICAgICAgaXRlbXMucHVzaChjbG9uZVdpZGdldE1lbnUoQVhQX0RFU0lHTkVSX0FERF9XSURHRVRfTUVOVSwge1xuICAgICAgICBicmVhazogdHJ1ZSxcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgLy9cbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfQ0xPTkVfTUVOVSwgeyBkaXNhYmxlZDogIXRoaXMuY2FuKG5vZGUpLmNvcHlPckN1dCB9KSk7XG4gICAgaXRlbXMucHVzaChjbG9uZVdpZGdldE1lbnUoQVhQX0RFU0lHTkVSX0NVVF9NRU5VLCB7IGRpc2FibGVkOiAhdGhpcy5jYW4obm9kZSkuY29weU9yQ3V0IH0pKTtcbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfQ09QWV9NRU5VLCB7IGRpc2FibGVkOiAhdGhpcy5jYW4obm9kZSkuY29weU9yQ3V0IH0pKTtcbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfUEFTVEVfTUVOVSwgeyBkaXNhYmxlZDogIXRoaXMuY2FuKG5vZGUpLnBhc3RlLCBicmVhazogdHJ1ZSB9KSk7XG4gICAgLy9cbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfREVMRVRFX1dJREdFVF9NRU5VLCB7IGRpc2FibGVkOiAhdGhpcy5jYW4obm9kZSkuZGVsZXRlLCBicmVhazogdHJ1ZSB9KSk7XG4gICAgLy9cbiAgICBpdGVtcy5wdXNoKGNsb25lV2lkZ2V0TWVudShBWFBfREVTSUdORVJfU0FWRV9BU19XSURHRVRfTUVOVSkpO1xuICAgIGlmIChpbnN0YW5jZS5vbkNvbnRleHRNZW51KSB7XG4gICAgICBpbnN0YW5jZS5vbkNvbnRleHRNZW51KHsgaXRlbXMgfSlcbiAgICB9XG4gICAgaWYgKCFpc1Jvb3QpIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0uc3VmZml4ID0gdW5kZWZpbmVkO1xuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29udGV4dDogeyBpbnN0YW5jZTogQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQsIG5hbWU6IHN0cmluZywgZGF0YT86IGFueSB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgd2lkZ2V0ID0gY29udGV4dC5pbnN0YW5jZSBhcyBhbnkgYXMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ7XG4gICAgaWYgKGNvbnRleHQuaW5zdGFuY2UuZXhlY3V0ZUNvbW1hbmQpIHtcbiAgICAgIGNvbnN0IGNvbW1hbmQ6IGFueSA9IHtcbiAgICAgICAgbmFtZTogY29udGV4dC5uYW1lLFxuICAgICAgICBkYXRhOiBjb250ZXh0LmRhdGEsXG4gICAgICAgIGhhbmRsZWQ6IGZhbHNlXG4gICAgICB9XG4gICAgICBhd2FpdCBjb250ZXh0Lmluc3RhbmNlLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQpO1xuICAgICAgaWYgKGNvbW1hbmQuaGFuZGxlZClcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKGNvbnRleHQubmFtZSkge1xuICAgICAgY2FzZSBBWFBfREVTSUdORVJfU0VMRUNUX1dJREdFVF9NRU5VLm5hbWU6IHtcbiAgICAgICAgdGhpcy5zZWxlY3QoeyB3aWRnZXQ6IHdpZGdldC5ub2RlIH0pXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIEFYUF9ERVNJR05FUl9BRERfV0lER0VUX01FTlUubmFtZToge1xuICAgICAgICB0aGlzLnNob3dQaWNrZXIod2lkZ2V0Lm5vZGUpO1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgLy9cbiAgICAgIGNhc2UgQVhQX0RFU0lHTkVSX0RFTEVURV9XSURHRVRfTUVOVS5uYW1lOiB7XG4gICAgICAgIHRoaXMucmVtb3ZlV2lkZ2V0KHdpZGdldC5ub2RlKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIC8vXG4gICAgICBjYXNlIEFYUF9ERVNJR05FUl9DTE9ORV9NRU5VLm5hbWU6IHtcbiAgICAgICAgdGhpcy5jbG9uZSh3aWRnZXQubm9kZSk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIEFYUF9ERVNJR05FUl9DVVRfTUVOVS5uYW1lOiB7XG4gICAgICAgIHRoaXMuY3V0KHdpZGdldC5ub2RlKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgQVhQX0RFU0lHTkVSX0NPUFlfTUVOVS5uYW1lOiB7XG4gICAgICAgIHRoaXMuY29weSh3aWRnZXQubm9kZSk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlIEFYUF9ERVNJR05FUl9QQVNURV9NRU5VLm5hbWU6IHtcbiAgICAgICAgdGhpcy5wYXN0ZSh3aWRnZXQubm9kZSk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICAvL1xuICAgIH1cbiAgfVxuXG4gIHVuc3Vic2NyaWJlRXZlbnRzKCkge1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnVuc3Vic2NyaWJlKEFYUERlc2lnbmVyTWVzc2FnZUtleXMuTG9hZGVkKTtcbiAgICB0aGlzLmV2ZW50U2VydmljZS51bnN1YnNjcmliZShBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlByZXZpZXdXaW5kb3cpO1xuICB9XG59XG4iXX0=","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPLayoutBaseWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/decorators\";\nexport class AXPDesignerAddWidgetButtonComponent {\n constructor() {\n this.designerService = inject(AXPDesignerService);\n this.parent = inject(AXPLayoutBaseWidgetComponent);\n }\n async handleClick(e) {\n e.nativeEvent.stopPropagation();\n await this.designerService.showPicker(this.parent.node);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPDesignerAddWidgetButtonComponent, isStandalone: true, selector: \"axp-designer-add-widget-button\", ngImport: i0, template: `\n <div class=\"ax-container\">\n <ax-button [text]=\"'Add New Element'\" (onClick)=\"handleClick($event)\" [look]=\"'solid'\" [color]=\"'primary'\">\n <ax-icon icon=\"fa-solid fa-plus\"></ax-icon>\n </ax-button>\n </div>\n `, isInline: true, styles: [\"axp-designer-add-widget-button .ax-container{margin-left:auto;margin-right:auto;display:flex;justify-content:center;padding:.5rem}\\n\"], dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerAddWidgetButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-add-widget-button', template: `\n <div class=\"ax-container\">\n <ax-button [text]=\"'Add New Element'\" (onClick)=\"handleClick($event)\" [look]=\"'solid'\" [color]=\"'primary'\">\n <ax-icon icon=\"fa-solid fa-plus\"></ax-icon>\n </ax-button>\n </div>\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule], encapsulation: ViewEncapsulation.None, styles: [\"axp-designer-add-widget-button .ax-container{margin-left:auto;margin-right:auto;display:flex;justify-content:center;padding:.5rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXdpZGdldC1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2FkZC13aWRnZXQtYnV0dG9uL2FkZC13aWRnZXQtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFnQm5FLE1BQU0sT0FBTyxtQ0FBbUM7SUFkaEQ7UUFlVSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLFdBQU0sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQU12RDtJQUpDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBZTtRQUMvQixDQUFDLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQVBVLG1DQUFtQzttR0FBbkMsbUNBQW1DLDBGQVhwQzs7Ozs7O0dBTVQsNk1BRVMsY0FBYyw2WEFBRSxpQkFBaUI7OzRGQUdoQyxtQ0FBbUM7a0JBZC9DLFNBQVM7K0JBQ0UsZ0NBQWdDLFlBRWhDOzs7Ozs7R0FNVCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxpQkFDN0IsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItYWRkLXdpZGdldC1idXR0b24nLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtd2lkZ2V0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJheC1jb250YWluZXJcIj5cbiAgICAgIDxheC1idXR0b24gW3RleHRdPVwiJ0FkZCBOZXcgRWxlbWVudCdcIiAob25DbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCIgW2xvb2tdPVwiJ3NvbGlkJ1wiIFtjb2xvcl09XCIncHJpbWFyeSdcIj5cbiAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLXBsdXNcIj48L2F4LWljb24+XG4gICAgICA8L2F4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWEJ1dHRvbk1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGVdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckFkZFdpZGdldEJ1dHRvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgZGVzaWduZXJTZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG4gIHByaXZhdGUgcGFyZW50ID0gaW5qZWN0KEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQpO1xuXG4gIGFzeW5jIGhhbmRsZUNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgIGUubmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgYXdhaXQgdGhpcy5kZXNpZ25lclNlcnZpY2Uuc2hvd1BpY2tlcih0aGlzLnBhcmVudC5ub2RlKTtcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, input, output, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/decorators\";\nexport class AXPDesignerAddWidgetLineButtonComponent {\n constructor() {\n this.text = input(...(ngDevMode ? [undefined, { debugName: \"text\" }] : []));\n this.onClick = output();\n }\n handleClick() {\n this.onClick.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerAddWidgetLineButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXPDesignerAddWidgetLineButtonComponent, isStandalone: true, selector: \"axp-designer-add-widget-line-button\", inputs: { text: { classPropertyName: \"text\", publicName: \"text\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: \"onClick\" }, ngImport: i0, template: `\n <div class=\"ax-flex ax-items-center ax-py-4 ax-text-xs\">\n <div class=\"ax-flex-grow ax-border-t-2 ax-border-dashed ax-border-surface\"></div>\n <div class=\"ax-mx-2 ax-sm \">\n <ax-button [text]=\"text()\" [look]=\"'twotone'\" class=\"ax-capitalize\" (onClick)=\"handleClick()\">\n <ax-icon icon=\"fa-solid fa-plus\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"ax-flex-grow ax-border-t-2 ax-border-dashed ax-border-surface\"></div>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerAddWidgetLineButtonComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-designer-add-widget-line-button',\n template: `\n <div class=\"ax-flex ax-items-center ax-py-4 ax-text-xs\">\n <div class=\"ax-flex-grow ax-border-t-2 ax-border-dashed ax-border-surface\"></div>\n <div class=\"ax-mx-2 ax-sm \">\n <ax-button [text]=\"text()\" [look]=\"'twotone'\" class=\"ax-capitalize\" (onClick)=\"handleClick()\">\n <ax-icon icon=\"fa-solid fa-plus\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"ax-flex-grow ax-border-t-2 ax-border-dashed ax-border-surface\"></div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXButtonModule, AXDecoratorModule],\n encapsulation: ViewEncapsulation.None\n }]\n }], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: \"text\", required: false }] }], onClick: [{ type: i0.Output, args: [\"onClick\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXdpZGdldC1saW5lLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvYWRkLXdpZGdldC1idXR0b24vYWRkLXdpZGdldC1saW5lLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQW1CckcsTUFBTSxPQUFPLHVDQUF1QztJQWpCcEQ7UUFtQkUsU0FBSSxHQUFHLEtBQUssMERBQUUsQ0FBQztRQUNmLFlBQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQztLQU9wQjtJQUpXLFdBQVc7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQVJVLHVDQUF1QzttR0FBdkMsdUNBQXVDLGlRQWZ4Qzs7Ozs7Ozs7OztHQVVULDJEQUVTLGNBQWMsNlhBQUUsaUJBQWlCOzs0RkFHaEMsdUNBQXVDO2tCQWpCbkQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUNBQXFDO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDO29CQUM1QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItYWRkLXdpZGdldC1saW5lLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtcHktNCBheC10ZXh0LXhzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleC1ncm93IGF4LWJvcmRlci10LTIgYXgtYm9yZGVyLWRhc2hlZCBheC1ib3JkZXItc3VyZmFjZVwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW14LTIgYXgtc20gXCI+XG4gICAgICAgIDxheC1idXR0b24gW3RleHRdPVwidGV4dCgpXCIgW2xvb2tdPVwiJ3R3b3RvbmUnXCIgIGNsYXNzPVwiYXgtY2FwaXRhbGl6ZVwiIChvbkNsaWNrKT1cImhhbmRsZUNsaWNrKClcIj5cbiAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtcGx1c1wiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4LWdyb3cgYXgtYm9yZGVyLXQtMiBheC1ib3JkZXItZGFzaGVkIGF4LWJvcmRlci1zdXJmYWNlXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Nb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckFkZFdpZGdldExpbmVCdXR0b25Db21wb25lbnQge1xuXG4gIHRleHQgPSBpbnB1dCgpO1xuICBvbkNsaWNrID0gb3V0cHV0KCk7XG5cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soKSB7XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoKTtcbiAgfVxuXG59XG4iXX0=","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPLayoutBaseWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, inject, Output, ViewEncapsulation, } from '@angular/core';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerAddWidgetMiniButtonComponent {\n constructor() {\n this.designerService = inject(AXPDesignerService);\n this.parent = inject(AXPLayoutBaseWidgetComponent);\n this.onClick = new EventEmitter();\n }\n async handleClick(e) {\n e.stopPropagation();\n const a = this.onClick;\n if (this.onClick.observed) {\n this.onClick.emit();\n }\n else {\n await this.designerService.showPicker(this.parent.node);\n }\n }\n get __class() {\n const cls = {};\n //\n cls[`ax-flex`] = true;\n cls[`ax-w-full`] = true;\n cls[`ax-h-full`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerAddWidgetMiniButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPDesignerAddWidgetMiniButtonComponent, isStandalone: true, selector: \"axp-designer-add-widget-mini-button\", outputs: { onClick: \"onClick\" }, host: { properties: { \"class\": \"this.__class\" } }, ngImport: i0, template: `\n <div class=\"axp-empty-space\">\n <div class=\"ax-m-auto ax-py-4 ax-px-8\">\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-size-4 hover:ax-scale-125 ax-cursor-pointer\"\n (click)=\"handleClick($event)\"\n >\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n </div>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerAddWidgetMiniButtonComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-designer-add-widget-mini-button',\n template: `\n <div class=\"axp-empty-space\">\n <div class=\"ax-m-auto ax-py-4 ax-px-8\">\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-size-4 hover:ax-scale-125 ax-cursor-pointer\"\n (click)=\"handleClick($event)\"\n >\n <i class=\"fa-solid fa-plus\"></i>\n </div>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXButtonModule, AXDecoratorModule],\n encapsulation: ViewEncapsulation.None,\n }]\n }], propDecorators: { onClick: [{\n type: Output\n }], __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXdpZGdldC1taW5pLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvYWRkLXdpZGdldC1idXR0b24vYWRkLXdpZGdldC1taW5pLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25GLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBb0JuRSxNQUFNLE9BQU8sdUNBQXVDO0lBbEJwRDtRQW1CVSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLFdBQU0sR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUcvQyxZQUFPLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7S0FxQi9EO0lBbkJXLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBYTtRQUN2QyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQ1ksT0FBTztRQUNqQixNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7UUFDcEIsRUFBRTtRQUNGLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QixHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzsrR0F6QlUsdUNBQXVDO21HQUF2Qyx1Q0FBdUMsbUxBaEJ4Qzs7Ozs7Ozs7Ozs7R0FXVCwyREFFUyxjQUFjLDhCQUFFLGlCQUFpQjs7NEZBR2hDLHVDQUF1QztrQkFsQm5ELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7OztHQVdUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUM7b0JBQzVDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7c0JBS0UsTUFBTTs7c0JBYU4sV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGVzaWduZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1hZGQtd2lkZ2V0LW1pbmktYnV0dG9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXhwLWVtcHR5LXNwYWNlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbS1hdXRvIGF4LXB5LTQgYXgtcHgtOFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1zaXplLTQgaG92ZXI6YXgtc2NhbGUtMTI1IGF4LWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXBsdXNcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhCdXR0b25Nb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJBZGRXaWRnZXRNaW5pQnV0dG9uQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBkZXNpZ25lclNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwYXJlbnQgPSBpbmplY3QoQVhQTGF5b3V0QmFzZVdpZGdldENvbXBvbmVudCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGEgPSB0aGlzLm9uQ2xpY2s7XG4gICAgaWYgKHRoaXMub25DbGljay5vYnNlcnZlZCkge1xuICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5kZXNpZ25lclNlcnZpY2Uuc2hvd1BpY2tlcih0aGlzLnBhcmVudC5ub2RlKTtcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsczogYW55ID0ge307XG4gICAgLy9cbiAgICBjbHNbYGF4LWZsZXhgXSA9IHRydWU7XG4gICAgY2xzW2BheC13LWZ1bGxgXSA9IHRydWU7XG4gICAgY2xzW2BheC1oLWZ1bGxgXSA9IHRydWU7XG4gICAgcmV0dXJuIGNscztcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, Component, HostListener, computed, model, output, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerFlexDrawerComponent {\n constructor() {\n this.itemsCount = model(12, ...(ngDevMode ? [{ debugName: \"itemsCount\", alias: 'items' }] : [{ alias: 'items' }]));\n this.onSelect = output();\n this.items = computed(() => Array.from({ length: this.itemsCount() }).map((v, index) => index + 1), ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n this.range = signal(0, ...(ngDevMode ? [{ debugName: \"range\" }] : []));\n }\n handleMouseHover(c) {\n this.range.set(c);\n }\n handleClick(c) {\n this.onSelect.emit(c);\n }\n handleMouseLeave(event) {\n this.range.set(0);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerFlexDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDesignerFlexDrawerComponent, isStandalone: true, selector: \"axp-designer-flex-drawer\", inputs: { itemsCount: { classPropertyName: \"itemsCount\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsCount: \"itemsChange\", onSelect: \"onSelect\" }, host: { listeners: { \"mouseleave\": \"handleMouseLeave($event)\" } }, ngImport: i0, template: `\n <table class=\"table-picker\">\n <tbody>\n <tr>\n @for (c of items(); track $index) {\n <td (mouseenter)=\"handleMouseHover(c)\" [class.picked]=\"c <= range()\" (click)=\"handleClick(c)\"></td>\n }\n </tr>\n <tr>\n <td [attr.colspan]=\"items().length\" class=\"ax-text-center\">\n <small>{{ range() }}</small>\n </td>\n </tr>\n </tbody>\n </table>\n `, isInline: true, styles: [\":host{width:100%}:host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))}:host table td:after{content:\\\"\\\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1))}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerFlexDrawerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-flex-drawer', template: `\n <table class=\"table-picker\">\n <tbody>\n <tr>\n @for (c of items(); track $index) {\n <td (mouseenter)=\"handleMouseHover(c)\" [class.picked]=\"c <= range()\" (click)=\"handleClick(c)\"></td>\n }\n </tr>\n <tr>\n <td [attr.colspan]=\"items().length\" class=\"ax-text-center\">\n <small>{{ range() }}</small>\n </td>\n </tr>\n </tbody>\n </table>\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [], styles: [\":host{width:100%}:host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))}:host table td:after{content:\\\"\\\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1))}\\n\"] }]\n }], propDecorators: { itemsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: \"items\", required: false }] }, { type: i0.Output, args: [\"itemsChange\"] }], onSelect: [{ type: i0.Output, args: [\"onSelect\"] }], handleMouseLeave: [{\n type: HostListener,\n args: ['mouseleave', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2ZsZXgtZHJhd2VyL2ZsZXgtZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBd0JsSCxNQUFNLE9BQU8sOEJBQThCO0lBdEIzQztRQXVCRSxlQUFVLEdBQUcsS0FBSyxDQUFTLEVBQUUsOENBQUksS0FBSyxFQUFFLE9BQU8sT0FBaEIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUMsQ0FBQztRQUVuRCxhQUFRLEdBQUcsTUFBTSxFQUFVLENBQUM7UUFFbEIsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxpREFBQyxDQUFDO1FBRS9GLFVBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxpREFBQyxDQUFDO0tBYzdCO0lBWlcsZ0JBQWdCLENBQUMsQ0FBUztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRVMsV0FBVyxDQUFDLENBQVM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUdTLGdCQUFnQixDQUFDLEtBQWlCO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7K0dBcEJVLDhCQUE4QjttR0FBOUIsOEJBQThCLG1XQW5CL0I7Ozs7Ozs7Ozs7Ozs7OztHQWVUOzs0RkFJVSw4QkFBOEI7a0JBdEIxQyxTQUFTOytCQUNFLDBCQUEwQixZQUUxQjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsRUFBRTs7c0JBbUJWLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBjb21wdXRlZCwgbW9kZWwsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1mbGV4LWRyYXdlcicsXG4gIHN0eWxlVXJsczogWycuL2ZsZXgtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHRhYmxlIGNsYXNzPVwidGFibGUtcGlja2VyXCI+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICBAZm9yIChjIG9mIGl0ZW1zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPHRkIChtb3VzZWVudGVyKT1cImhhbmRsZU1vdXNlSG92ZXIoYylcIiBbY2xhc3MucGlja2VkXT1cImMgPD0gcmFuZ2UoKVwiIChjbGljayk9XCJoYW5kbGVDbGljayhjKVwiPjwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiaXRlbXMoKS5sZW5ndGhcIiBjbGFzcz1cImF4LXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8c21hbGw+e3sgcmFuZ2UoKSB9fTwvc21hbGw+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckZsZXhEcmF3ZXJDb21wb25lbnQge1xuICBpdGVtc0NvdW50ID0gbW9kZWw8bnVtYmVyPigxMiwgeyBhbGlhczogJ2l0ZW1zJyB9KTtcblxuICBvblNlbGVjdCA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgcHJvdGVjdGVkIGl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5pdGVtc0NvdW50KCkgfSkubWFwKCh2LCBpbmRleCkgPT4gaW5kZXggKyAxKSk7XG5cbiAgcHJvdGVjdGVkIHJhbmdlID0gc2lnbmFsKDApO1xuXG4gIHByb3RlY3RlZCBoYW5kbGVNb3VzZUhvdmVyKGM6IG51bWJlcikge1xuICAgIHRoaXMucmFuZ2Uuc2V0KGMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrKGM6IG51bWJlcikge1xuICAgIHRoaXMub25TZWxlY3QuZW1pdChjKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlTW91c2VMZWF2ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMucmFuZ2Uuc2V0KDApO1xuICB9XG59XG4iXX0=","import { ChangeDetectionStrategy, Component, computed, HostBinding, HostListener, model, output, signal, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPDesignerGridDrawerComponent {\n constructor() {\n this.rowsCount = model(5, ...(ngDevMode ? [{ debugName: \"rowsCount\", alias: 'rows' }] : [{ alias: 'rows' }]));\n this.colsCount = model(12, ...(ngDevMode ? [{ debugName: \"colsCount\", alias: 'columns' }] : [{ alias: 'columns' }]));\n this.onSelect = output();\n this.rows = computed(() => Array.from({ length: this.rowsCount() }).map((v, index) => index + 1), ...(ngDevMode ? [{ debugName: \"rows\" }] : []));\n this.columns = computed(() => Array.from({ length: this.colsCount() }).map((v, index) => index + 1), ...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n this.rangeR = signal(0, ...(ngDevMode ? [{ debugName: \"rangeR\" }] : []));\n this.rangeC = signal(0, ...(ngDevMode ? [{ debugName: \"rangeC\" }] : []));\n }\n handleMouseHover(r, c) {\n this.rangeR.set(r);\n this.rangeC.set(c);\n }\n handleClick(r, c) {\n this.onSelect.emit({ rows: r, cols: c });\n }\n handleMouseLeave(event) {\n this.rangeR.set(0);\n this.rangeC.set(0);\n }\n get __style() {\n return {\n '--cols-width': `${this.colsCount() == 0 ? 0 : 100 / this.colsCount()}%`,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerGridDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDesignerGridDrawerComponent, isStandalone: true, selector: \"axp-designer-grid-drawer\", inputs: { rowsCount: { classPropertyName: \"rowsCount\", publicName: \"rows\", isSignal: true, isRequired: false, transformFunction: null }, colsCount: { classPropertyName: \"colsCount\", publicName: \"columns\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { rowsCount: \"rowsChange\", colsCount: \"columnsChange\", onSelect: \"onSelect\" }, host: { listeners: { \"mouseleave\": \"handleMouseLeave($event)\" }, properties: { \"style\": \"this.__style\" } }, ngImport: i0, template: `\n <table class=\"table-picker\">\n <tbody>\n @for (r of rows(); track $index) {\n <tr>\n @for (c of columns(); track $index) {\n <td\n (mouseenter)=\"handleMouseHover(r, c)\"\n [class.picked]=\"c <= rangeC() && r <= rangeR()\"\n (click)=\"handleClick(r, c)\"\n ></td>\n }\n </tr>\n }\n <tr>\n <td [attr.colspan]=\"columns().length\" class=\"ax-text-center\">\n <small>{{ rangeC() }}×{{ rangeR() }}</small>\n </td>\n </tr>\n </tbody>\n </table>\n `, isInline: true, styles: [\":host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));width:var(--cols-width)}:host table td:after{content:\\\"\\\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1))}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerGridDrawerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-grid-drawer', template: `\n <table class=\"table-picker\">\n <tbody>\n @for (r of rows(); track $index) {\n <tr>\n @for (c of columns(); track $index) {\n <td\n (mouseenter)=\"handleMouseHover(r, c)\"\n [class.picked]=\"c <= rangeC() && r <= rangeR()\"\n (click)=\"handleClick(r, c)\"\n ></td>\n }\n </tr>\n }\n <tr>\n <td [attr.colspan]=\"columns().length\" class=\"ax-text-center\">\n <small>{{ rangeC() }}×{{ rangeR() }}</small>\n </td>\n </tr>\n </tbody>\n </table>\n `, changeDetection: ChangeDetectionStrategy.OnPush, imports: [], styles: [\":host table{width:100%;border-collapse:collapse;--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}:host table td{height:2.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));width:var(--cols-width)}:host table td:after{content:\\\"\\\";display:block}:host table td.picked{border-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-100),var(--tw-bg-opacity, 1))}\\n\"] }]\n }], propDecorators: { rowsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: \"rows\", required: false }] }, { type: i0.Output, args: [\"rowsChange\"] }], colsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: \"columns\", required: false }] }, { type: i0.Output, args: [\"columnsChange\"] }], onSelect: [{ type: i0.Output, args: [\"onSelect\"] }], handleMouseLeave: [{\n type: HostListener,\n args: ['mouseleave', ['$event']]\n }], __style: [{\n type: HostBinding,\n args: ['style']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2dyaWQtZHJhd2VyL2dyaWQtZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUE4QnZCLE1BQU0sT0FBTyw4QkFBOEI7SUE1QjNDO1FBNkJFLGNBQVMsR0FBRyxLQUFLLENBQVMsQ0FBQyw2Q0FBSSxLQUFLLEVBQUUsTUFBTSxPQUFmLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFDLENBQUM7UUFDaEQsY0FBUyxHQUFHLEtBQUssQ0FBUyxFQUFFLDZDQUFJLEtBQUssRUFBRSxTQUFTLE9BQWxCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFDLENBQUM7UUFFcEQsYUFBUSxHQUFHLE1BQU0sRUFBa0MsQ0FBQztRQUUxQyxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLGdEQUFDLENBQUM7UUFDN0YsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxtREFBQyxDQUFDO1FBRWhHLFdBQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxrREFBQyxDQUFDO1FBQ25CLFdBQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxrREFBQyxDQUFDO0tBdUI5QjtJQXJCVyxnQkFBZ0IsQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRVMsV0FBVyxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBR1MsZ0JBQWdCLENBQUMsS0FBaUI7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQ1ksT0FBTztRQUNqQixPQUFPO1lBQ0wsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHO1NBQ3pFLENBQUM7SUFDSixDQUFDOytHQWhDVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixxaUJBekIvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJUOzs0RkFJVSw4QkFBOEI7a0JBNUIxQyxTQUFTOytCQUNFLDBCQUEwQixZQUUxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJULG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLEVBQUU7O3NCQXVCVixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBTXJDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItZ3JpZC1kcmF3ZXInLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLWRyYXdlci5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlLXBpY2tlclwiPlxuICAgICAgPHRib2R5PlxuICAgICAgICBAZm9yIChyIG9mIHJvd3MoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgQGZvciAoYyBvZiBjb2x1bW5zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJoYW5kbGVNb3VzZUhvdmVyKHIsIGMpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucGlja2VkXT1cImMgPD0gcmFuZ2VDKCkgJiYgciA8PSByYW5nZVIoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKHIsIGMpXCJcbiAgICAgICAgICAgICAgPjwvdGQ+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgfVxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucygpLmxlbmd0aFwiIGNsYXNzPVwiYXgtdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzbWFsbD57eyByYW5nZUMoKSB9fcOXe3sgcmFuZ2VSKCkgfX08L3NtYWxsPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJHcmlkRHJhd2VyQ29tcG9uZW50IHtcbiAgcm93c0NvdW50ID0gbW9kZWw8bnVtYmVyPig1LCB7IGFsaWFzOiAncm93cycgfSk7XG4gIGNvbHNDb3VudCA9IG1vZGVsPG51bWJlcj4oMTIsIHsgYWxpYXM6ICdjb2x1bW5zJyB9KTtcblxuICBvblNlbGVjdCA9IG91dHB1dDx7IHJvd3M6IG51bWJlcjsgY29sczogbnVtYmVyIH0+KCk7XG5cbiAgcHJvdGVjdGVkIHJvd3MgPSBjb21wdXRlZCgoKSA9PiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLnJvd3NDb3VudCgpIH0pLm1hcCgodiwgaW5kZXgpID0+IGluZGV4ICsgMSkpO1xuICBwcm90ZWN0ZWQgY29sdW1ucyA9IGNvbXB1dGVkKCgpID0+IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuY29sc0NvdW50KCkgfSkubWFwKCh2LCBpbmRleCkgPT4gaW5kZXggKyAxKSk7XG5cbiAgcHJvdGVjdGVkIHJhbmdlUiA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHJhbmdlQyA9IHNpZ25hbCgwKTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlTW91c2VIb3ZlcihyOiBudW1iZXIsIGM6IG51bWJlcikge1xuICAgIHRoaXMucmFuZ2VSLnNldChyKTtcbiAgICB0aGlzLnJhbmdlQy5zZXQoYyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2socjogbnVtYmVyLCBjOiBudW1iZXIpIHtcbiAgICB0aGlzLm9uU2VsZWN0LmVtaXQoeyByb3dzOiByLCBjb2xzOiBjIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBoYW5kbGVNb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5yYW5nZVIuc2V0KDApO1xuICAgIHRoaXMucmFuZ2VDLnNldCgwKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKVxuICBwcml2YXRlIGdldCBfX3N0eWxlKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICctLWNvbHMtd2lkdGgnOiBgJHt0aGlzLmNvbHNDb3VudCgpID09IDAgPyAwIDogMTAwIC8gdGhpcy5jb2xzQ291bnQoKX0lYCxcbiAgICB9O1xuICB9XG59XG4iXX0=","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXPSettingService, AXPStickyDirective } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPWidgetItemComponent } from '@acorex/platform/layout/components';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, inject, model, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { castArray, orderBy, uniqBy } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/cdk/common\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"@acorex/components/button\";\nimport * as i5 from \"@acorex/components/decorators\";\nimport * as i6 from \"@acorex/components/tabs\";\nimport * as i7 from \"@acorex/components/search-box\";\n/**\n * Maps AXPDisplayWidgetConfig to generic AXPWidgetItemData\n */\nfunction mapToWidgetItemData(widget) {\n return {\n title: widget.title,\n description: widget.description,\n icon: widget.icon ?? 'fa-solid fa-cube',\n isPinned: widget.pinned,\n data: widget\n };\n}\nexport class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.settingService = inject(AXPSettingService);\n this.pinnedSettingKey = 'forms:widgets:picker:pinned';\n this.searchTerm = model('', ...(ngDevMode ? [{ debugName: \"searchTerm\" }] : []));\n // Signals\n this.widgets = [];\n this.allWidgets = signal([], ...(ngDevMode ? [{ debugName: \"allWidgets\" }] : []));\n this.pinnedWidgets = signal([], ...(ngDevMode ? [{ debugName: \"pinnedWidgets\" }] : []));\n this.displayWidgets = computed(() => {\n return this.allWidgets().map((c) => ({ ...c, pinned: this.pinnedWidgets().includes(c.name) }));\n }, ...(ngDevMode ? [{ debugName: \"displayWidgets\" }] : []));\n // Signal to track selected widgets\n this.selectedWidgets = signal([], ...(ngDevMode ? [{ debugName: \"selectedWidgets\" }] : []));\n // Computed for filtered and ordered widget list\n this.orderedList = computed(() => {\n const search = this.searchTerm().toLowerCase();\n const selectedTabName = this.selectedTab().name;\n return orderBy(this.displayWidgets().filter((w) => {\n const matchesTab = selectedTabName === 'all' || castArray(w.categories ?? []).some((c) => c.name === selectedTabName);\n const matchesSearch = !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);\n return matchesTab && matchesSearch;\n }), ['pinned', 'title'], ['desc', 'asc']);\n }, ...(ngDevMode ? [{ debugName: \"orderedList\" }] : []));\n // Pinned and regular lists\n this.pinnedList = computed(() => this.orderedList().filter((c) => c.pinned), ...(ngDevMode ? [{ debugName: \"pinnedList\" }] : []));\n this.regularList = computed(() => this.orderedList().filter((c) => !c.pinned), ...(ngDevMode ? [{ debugName: \"regularList\" }] : []));\n // Mapped data for generic widget items\n this.pinnedWidgetItems = computed(() => this.pinnedList().map(mapToWidgetItemData), ...(ngDevMode ? [{ debugName: \"pinnedWidgetItems\" }] : []));\n this.regularWidgetItems = computed(() => this.regularList().map(mapToWidgetItemData), ...(ngDevMode ? [{ debugName: \"regularWidgetItems\" }] : []));\n // Tabs for the widget groups\n this.categories = computed(() => uniqBy(this.allWidgets()\n .map((w) => castArray(w.categories ?? []))\n .filter((c) => c.length > 0)\n .flat(), 'name'), ...(ngDevMode ? [{ debugName: \"categories\" }] : []));\n this.tabs = computed(() => orderBy([{ name: 'all', title: 'All', order: 0 }, ...this.categories()], (c) => c.order), ...(ngDevMode ? [{ debugName: \"tabs\" }] : []));\n // computed max visible widgets in a tab\n this.maxVisibleWidgets = computed(() => Math.max(...this.categories().map((c) => this.allWidgets().filter((w) => castArray(w.categories ?? []).some((c) => c.name === c.name)).length)), ...(ngDevMode ? [{ debugName: \"maxVisibleWidgets\" }] : []));\n this.currentTabIndex = signal(0, ...(ngDevMode ? [{ debugName: \"currentTabIndex\" }] : []));\n this.selectedTab = computed(() => this.tabs()[this.currentTabIndex()], ...(ngDevMode ? [{ debugName: \"selectedTab\" }] : []));\n }\n async ngOnInit() {\n super.ngOnInit();\n this.allWidgets.set(this.widgets);\n this.pinnedWidgets.set((await this.settingService.get(this.pinnedSettingKey)) || []);\n }\n handleTabChange(event) {\n const indx = event.index;\n if (this.currentTabIndex() != indx) {\n this.currentTabIndex.set(indx);\n }\n }\n handleWidgetClick(clickEvent) {\n const { event, widget } = clickEvent;\n const originalWidget = widget.data;\n if (event.ctrlKey) {\n const currentSelection = this.selectedWidgets();\n const isAlreadySelected = currentSelection.some((w) => w === originalWidget);\n if (isAlreadySelected) {\n // Deselect widget if already selected\n this.selectedWidgets.set(currentSelection.filter((w) => w !== originalWidget));\n }\n else {\n // Add widget to selection\n this.selectedWidgets.set([...currentSelection, originalWidget]);\n }\n }\n else {\n // If CTRL is not pressed, select only the clicked widget\n this.close({ widgets: [originalWidget] });\n }\n }\n async handleWidgetPinClick(clickEvent) {\n const { widget } = clickEvent;\n const originalWidget = widget.data;\n originalWidget.pinned = !originalWidget.pinned;\n // Get the current list of pinned widgets from settings\n let pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];\n // Update the list of pinned widgets based on the pinned status\n if (originalWidget.pinned) {\n if (!pinnedWidgets.includes(originalWidget.name)) {\n pinnedWidgets.push(originalWidget.name);\n }\n }\n else {\n pinnedWidgets = pinnedWidgets.filter((name) => name !== originalWidget.name);\n }\n // Save the updated list of pinned widgets\n await this.settingService.scope(AXPPlatformScope.User).set(this.pinnedSettingKey, pinnedWidgets);\n // Trigger a re-render of the widgets\n this.pinnedWidgets.set(pinnedWidgets);\n }\n // Check if a widget is selected\n isWidgetSelected(widget) {\n return this.selectedWidgets().includes(widget);\n }\n // Check if a generic widget item is selected\n isWidgetItemSelected(widgetItem) {\n const originalWidget = widgetItem.data;\n return this.isWidgetSelected(originalWidget);\n }\n handleConfirmSelection() {\n this.close({ widgets: this.selectedWidgets() });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerWidgetPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDesignerWidgetPickerComponent, isStandalone: true, selector: \"ng-component\", inputs: { searchTerm: { classPropertyName: \"searchTerm\", publicName: \"searchTerm\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchTerm: \"searchTermChange\" }, usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-flex ax-flex-col ax-h-[95vh]\\\"\\n [ngClass]=\\\"{ 'lg:ax-h-[75vh]': maxVisibleWidgets() > 10, 'lg:ax-h-[50vh]': maxVisibleWidgets() <= 10 }\\\">\\n <div>\\n <ax-tabs [look]=\\\"'with-line'\\\" (onActiveTabChanged)=\\\"handleTabChange($event)\\\">\\n @for(w of tabs();track $index) {\\n <ax-tab-item [text]=\\\"w.title\\\" [key]=\\\"$index.toString()\\\" [active]=\\\"currentTabIndex() === $index\\\"></ax-tab-item>\\n }\\n </ax-tabs>\\n </div>\\n <div class=\\\"ax-overflow-auto\\\" #content>\\n <div class=\\\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\\\" #sticky=\\\"axpSticky\\\"\\n [axpSticky]=\\\"'ax-bg-lightest ax-shadow-xl'\\\" [stickyParent]=\\\"content\\\" [stickyOffset]=\\\"10\\\">\\n <ax-search-box look=\\\"fill\\\" placeholder=\\\"e.g. Button, Text, ...\\\" [(ngModel)]=\\\"searchTerm\\\" [delayTime]=\\\"300\\\"\\n [axAutoFocus]=\\\"true\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-p-4 ax-pt-0\\\">\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for(widgetItem of pinnedWidgetItems();track widgetItem.title) {\\n <axp-widget-item [widget]=\\\"widgetItem\\\" [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\" (onPinClick)=\\\"handleWidgetPinClick($event)\\\">\\n </axp-widget-item>\\n }\\n </div>\\n @if(pinnedWidgetItems().length) {\\n <hr class=\\\"ax-my-4 ax-border-dashed\\\" />\\n }\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for(widgetItem of regularWidgetItems();track widgetItem.title) {\\n <axp-widget-item [widget]=\\\"widgetItem\\\" [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\" (onPinClick)=\\\"handleWidgetPinClick($event)\\\">\\n </axp-widget-item>\\n }\\n </div>\\n </div>\\n </div>\\n</div>\\n@if(selectedWidgets().length) {\\n<ax-footer>\\n <ax-suffix>\\n <ax-button look=\\\"solid\\\" color=\\\"primary\\\" text=\\\"{{ selectedWidgets().length }} Selected\\\"\\n (onClick)=\\\"handleConfirmSelection()\\\"></ax-button>\\n </ax-suffix>\\n</ax-footer>\\n}\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"directive\", type: i2.AXAutoFocusDirective, selector: \"[axAutoFocus]\", inputs: [\"axAutoFocus\", \"axAutoFocusTime\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i4.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i5.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i5.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"component\", type: i6.AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: i6.AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i7.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\", \"autoSearch\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"directive\", type: AXPStickyDirective, selector: \"[axpSticky]\", inputs: [\"axpSticky\", \"stickyOffset\", \"stickyParent\", \"stickyTarget\"], outputs: [\"isStickyChange\"], exportAs: [\"axpSticky\"] }, { kind: \"component\", type: AXPWidgetItemComponent, selector: \"axp-widget-item\", inputs: [\"widget\", \"isSelected\", \"showPinButton\", \"customClasses\"], outputs: [\"onWidgetClick\", \"onPinClick\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerWidgetPickerComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n AXCommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTabsModule,\n AXSearchBoxModule,\n AXPStickyDirective,\n AXPWidgetItemComponent,\n ], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"ax-flex ax-flex-col ax-h-[95vh]\\\"\\n [ngClass]=\\\"{ 'lg:ax-h-[75vh]': maxVisibleWidgets() > 10, 'lg:ax-h-[50vh]': maxVisibleWidgets() <= 10 }\\\">\\n <div>\\n <ax-tabs [look]=\\\"'with-line'\\\" (onActiveTabChanged)=\\\"handleTabChange($event)\\\">\\n @for(w of tabs();track $index) {\\n <ax-tab-item [text]=\\\"w.title\\\" [key]=\\\"$index.toString()\\\" [active]=\\\"currentTabIndex() === $index\\\"></ax-tab-item>\\n }\\n </ax-tabs>\\n </div>\\n <div class=\\\"ax-overflow-auto\\\" #content>\\n <div class=\\\"ax-p-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\\\" #sticky=\\\"axpSticky\\\"\\n [axpSticky]=\\\"'ax-bg-lightest ax-shadow-xl'\\\" [stickyParent]=\\\"content\\\" [stickyOffset]=\\\"10\\\">\\n <ax-search-box look=\\\"fill\\\" placeholder=\\\"e.g. Button, Text, ...\\\" [(ngModel)]=\\\"searchTerm\\\" [delayTime]=\\\"300\\\"\\n [axAutoFocus]=\\\"true\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n <div class=\\\"ax-flex ax-flex-col ax-p-4 ax-pt-0\\\">\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for(widgetItem of pinnedWidgetItems();track widgetItem.title) {\\n <axp-widget-item [widget]=\\\"widgetItem\\\" [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\" (onPinClick)=\\\"handleWidgetPinClick($event)\\\">\\n </axp-widget-item>\\n }\\n </div>\\n @if(pinnedWidgetItems().length) {\\n <hr class=\\\"ax-my-4 ax-border-dashed\\\" />\\n }\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for(widgetItem of regularWidgetItems();track widgetItem.title) {\\n <axp-widget-item [widget]=\\\"widgetItem\\\" [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\" (onPinClick)=\\\"handleWidgetPinClick($event)\\\">\\n </axp-widget-item>\\n }\\n </div>\\n </div>\\n </div>\\n</div>\\n@if(selectedWidgets().length) {\\n<ax-footer>\\n <ax-suffix>\\n <ax-button look=\\\"solid\\\" color=\\\"primary\\\" text=\\\"{{ selectedWidgets().length }} Selected\\\"\\n (onClick)=\\\"handleConfirmSelection()\\\"></ax-button>\\n </ax-suffix>\\n</ax-footer>\\n}\" }]\n }], propDecorators: { searchTerm: [{ type: i0.Input, args: [{ isSignal: true, alias: \"searchTerm\", required: false }] }, { type: i0.Output, args: [\"searchTermChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvd2lkZ2V0LXBpY2tlci93aWRnZXQtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy93aWRnZXQtcGlja2VyL3dpZGdldC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUEwQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxzQkFBc0IsRUFBOEMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFB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QUFDOytHQS9JVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQywrUkMvQzdDLDRsRUE2Q0MsMkNEWEcsWUFBWSw0SEFDWixjQUFjLDJKQUNkLFdBQVcsOFZBQ1gsY0FBYyw2WEFDZCxpQkFBaUIscVdBQ2pCLFlBQVksa2FBQ1osaUJBQWlCLDJaQUNqQixrQkFBa0IscUxBQ2xCLHNCQUFzQjs7NEZBS2IsZ0NBQWdDO2tCQWY1QyxTQUFTOzhCQUNDO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixzQkFBc0I7cUJBQ3ZCLGlCQUVjLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb21tb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUsIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nU2VydmljZSwgQVhQU3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQUGxhdGZvcm1TY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldENhdGVnb3J5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0SXRlbUNvbXBvbmVudCwgQVhQV2lkZ2V0SXRlbURhdGEsIEFYUFdpZGdldEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBtb2RlbCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjYXN0QXJyYXksIG9yZGVyQnksIHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGlzcGxheVdpZGdldENvbmZpZyBleHRlbmRzIEFYUFdpZGdldENvbmZpZyB7XG4gIHBpbm5lZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYXBzIEFYUERpc3BsYXlXaWRnZXRDb25maWcgdG8gZ2VuZXJpYyBBWFBXaWRnZXRJdGVtRGF0YVxuICovXG5mdW5jdGlvbiBtYXBUb1dpZGdldEl0ZW1EYXRhKHdpZGdldDogQVhQRGlzcGxheVdpZGdldENvbmZpZyk6IEFYUFdpZGdldEl0ZW1EYXRhIHtcbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogd2lkZ2V0LnRpdGxlLFxuICAgIGRlc2NyaXB0aW9uOiB3aWRnZXQuZGVzY3JpcHRpb24sXG4gICAgaWNvbjogd2lkZ2V0Lmljb24gPz8gJ2ZhLXNvbGlkIGZhLWN1YmUnLFxuICAgIGlzUGlubmVkOiB3aWRnZXQucGlubmVkLFxuICAgIGRhdGE6IHdpZGdldFxuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhQU3RpY2t5RGlyZWN0aXZlLFxuICAgIEFYUFdpZGdldEl0ZW1Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJXaWRnZXRQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQYWdlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzZXR0aW5nU2VydmljZSA9IGluamVjdChBWFBTZXR0aW5nU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGlubmVkU2V0dGluZ0tleSA9ICdmb3Jtczp3aWRnZXRzOnBpY2tlcjpwaW5uZWQnO1xuXG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtID0gbW9kZWwoJycpO1xuXG4gIC8vIFNpZ25hbHNcbiAgcHJpdmF0ZSB3aWRnZXRzOiBBWFBXaWRnZXRDb25maWdbXSA9IFtdO1xuICBwcml2YXRlIGFsbFdpZGdldHMgPSBzaWduYWw8QVhQV2lkZ2V0Q29uZmlnW10+KFtdKTtcbiAgcHJpdmF0ZSBwaW5uZWRXaWRnZXRzID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG5cbiAgcHJpdmF0ZSBkaXNwbGF5V2lkZ2V0cyA9IGNvbXB1dGVkPEFYUERpc3BsYXlXaWRnZXRDb25maWdbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbFdpZGdldHMoKS5tYXAoKGMpID0+ICh7IC4uLmMsIHBpbm5lZDogdGhpcy5waW5uZWRXaWRnZXRzKCkuaW5jbHVkZXMoYy5uYW1lKSB9KSk7XG4gIH0pO1xuXG4gIC8vIFNpZ25hbCB0byB0cmFjayBzZWxlY3RlZCB3aWRnZXRzXG4gIHByb3RlY3RlZCBzZWxlY3RlZFdpZGdldHMgPSBzaWduYWw8QVhQRGlzcGxheVdpZGdldENvbmZpZ1tdPihbXSk7XG5cbiAgLy8gQ29tcHV0ZWQgZm9yIGZpbHRlcmVkIGFuZCBvcmRlcmVkIHdpZGdldCBsaXN0XG4gIHByaXZhdGUgb3JkZXJlZExpc3QgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2hUZXJtKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBzZWxlY3RlZFRhYk5hbWUgPSB0aGlzLnNlbGVjdGVkVGFiKCkubmFtZTtcblxuICAgIHJldHVybiBvcmRlckJ5KFxuICAgICAgdGhpcy5kaXNwbGF5V2lkZ2V0cygpLmZpbHRlcigodykgPT4ge1xuICAgICAgICBjb25zdCBtYXRjaGVzVGFiID1cbiAgICAgICAgICBzZWxlY3RlZFRhYk5hbWUgPT09ICdhbGwnIHx8IGNhc3RBcnJheSh3LmNhdGVnb3JpZXMgPz8gW10pLnNvbWUoKGMpID0+IGMubmFtZSA9PT0gc2VsZWN0ZWRUYWJOYW1lKTtcbiAgICAgICAgY29uc3QgbWF0Y2hlc1NlYXJjaCA9XG4gICAgICAgICAgIXNlYXJjaCB8fCB3LnRpdGxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoKSB8fCB3LmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCk7XG4gICAgICAgIHJldHVybiBtYXRjaGVzVGFiICYmIG1hdGNoZXNTZWFyY2g7XG4gICAgICB9KSxcbiAgICAgIFsncGlubmVkJywgJ3RpdGxlJ10sXG4gICAgICBbJ2Rlc2MnLCAnYXNjJ10sXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gUGlubmVkIGFuZCByZWd1bGFyIGxpc3RzXG4gIHByb3RlY3RlZCBwaW5uZWRMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gYy5waW5uZWQpKTtcbiAgcHJvdGVjdGVkIHJlZ3VsYXJMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gIWMucGlubmVkKSk7XG5cbiAgLy8gTWFwcGVkIGRhdGEgZm9yIGdlbmVyaWMgd2lkZ2V0IGl0ZW1zXG4gIHByb3RlY3RlZCBwaW5uZWRXaWRnZXRJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGlubmVkTGlzdCgpLm1hcChtYXBUb1dpZGdldEl0ZW1EYXRhKSk7XG4gIHByb3RlY3RlZCByZWd1bGFyV2lkZ2V0SXRlbXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlZ3VsYXJMaXN0KCkubWFwKG1hcFRvV2lkZ2V0SXRlbURhdGEpKTtcblxuICAvLyBUYWJzIGZvciB0aGUgd2lkZ2V0IGdyb3Vwc1xuICBwcm90ZWN0ZWQgY2F0ZWdvcmllcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdW5pcUJ5KFxuICAgICAgdGhpcy5hbGxXaWRnZXRzKClcbiAgICAgICAgLm1hcCgodykgPT4gY2FzdEFycmF5KHcuY2F0ZWdvcmllcyA/PyBbXSkpXG4gICAgICAgIC5maWx0ZXIoKGMpID0+IGMubGVuZ3RoID4gMClcbiAgICAgICAgLmZsYXQoKSxcbiAgICAgICduYW1lJyxcbiAgICApLFxuICApO1xuXG4gIHByb3RlY3RlZCB0YWJzID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Q2F0ZWdvcnlbXT4oKCkgPT5cbiAgICBvcmRlckJ5KFt7IG5hbWU6ICdhbGwnLCB0aXRsZTogJ0FsbCcsIG9yZGVyOiAwIH0sIC4uLnRoaXMuY2F0ZWdvcmllcygpXSwgKGMpID0+IGMub3JkZXIpLFxuICApO1xuXG4gIC8vIGNvbXB1dGVkIG1heCB2aXNpYmxlIHdpZGdldHMgaW4gYSB0YWJcbiAgcHJvdGVjdGVkIG1heFZpc2libGVXaWRnZXRzID0gY29tcHV0ZWQoKCkgPT5cbiAgICBNYXRoLm1heChcbiAgICAgIC4uLnRoaXMuY2F0ZWdvcmllcygpLm1hcChcbiAgICAgICAgKGMpID0+IHRoaXMuYWxsV2lkZ2V0cygpLmZpbHRlcigodykgPT4gY2FzdEFycmF5KHcuY2F0ZWdvcmllcyA/PyBbXSkuc29tZSgoYykgPT4gYy5uYW1lID09PSBjLm5hbWUpKS5sZW5ndGgsXG4gICAgICApLFxuICAgICksXG4gICk7XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRUYWJJbmRleCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkVGFiID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50YWJzKClbdGhpcy5jdXJyZW50VGFiSW5kZXgoKV0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuYWxsV2lkZ2V0cy5zZXQodGhpcy53aWRnZXRzKTtcbiAgICB0aGlzLnBpbm5lZFdpZGdldHMuc2V0KChhd2FpdCB0aGlzLnNldHRpbmdTZXJ2aWNlLmdldDxzdHJpbmdbXT4odGhpcy5waW5uZWRTZXR0aW5nS2V5KSkgfHwgW10pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVRhYkNoYW5nZShldmVudDogQVhUYWJTdHJpcENoYW5nZWRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGluZHggPSBldmVudC5pbmRleDtcbiAgICBpZiAodGhpcy5jdXJyZW50VGFiSW5kZXgoKSAhPSBpbmR4KSB7XG4gICAgICB0aGlzLmN1cnJlbnRUYWJJbmRleC5zZXQoaW5keCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVdpZGdldENsaWNrKGNsaWNrRXZlbnQ6IEFYUFdpZGdldEl0ZW1DbGlja0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgeyBldmVudCwgd2lkZ2V0IH0gPSBjbGlja0V2ZW50O1xuICAgIGNvbnN0IG9yaWdpbmFsV2lkZ2V0ID0gd2lkZ2V0LmRhdGEgYXMgQVhQRGlzcGxheVdpZGdldENvbmZpZztcblxuICAgIGlmIChldmVudC5jdHJsS2V5KSB7XG4gICAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZFdpZGdldHMoKTtcbiAgICAgIGNvbnN0IGlzQWxyZWFkeVNlbGVjdGVkID0gY3VycmVudFNlbGVjdGlvbi5zb21lKCh3KSA9PiB3ID09PSBvcmlnaW5hbFdpZGdldCk7XG5cbiAgICAgIGlmIChpc0FscmVhZHlTZWxlY3RlZCkge1xuICAgICAgICAvLyBEZXNlbGVjdCB3aWRnZXQgaWYgYWxyZWFkeSBzZWxlY3RlZFxuICAgICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5zZXQoY3VycmVudFNlbGVjdGlvbi5maWx0ZXIoKHcpID0+IHcgIT09IG9yaWdpbmFsV2lkZ2V0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBZGQgd2lkZ2V0IHRvIHNlbGVjdGlvblxuICAgICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5zZXQoWy4uLmN1cnJlbnRTZWxlY3Rpb24sIG9yaWdpbmFsV2lkZ2V0XSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIENUUkwgaXMgbm90IHByZXNzZWQsIHNlbGVjdCBvbmx5IHRoZSBjbGlja2VkIHdpZGdldFxuICAgICAgdGhpcy5jbG9zZSh7IHdpZGdldHM6IFtvcmlnaW5hbFdpZGdldF0gfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVdpZGdldFBpbkNsaWNrKGNsaWNrRXZlbnQ6IEFYUFdpZGdldEl0ZW1DbGlja0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyB3aWRnZXQgfSA9IGNsaWNrRXZlbnQ7XG4gICAgY29uc3Qgb3JpZ2luYWxXaWRnZXQgPSB3aWRnZXQuZGF0YSBhcyBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnO1xuXG4gICAgb3JpZ2luYWxXaWRnZXQucGlubmVkID0gIW9yaWdpbmFsV2lkZ2V0LnBpbm5lZDtcblxuICAgIC8vIEdldCB0aGUgY3VycmVudCBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzIGZyb20gc2V0dGluZ3NcbiAgICBsZXQgcGlubmVkV2lkZ2V0cyA9IChhd2FpdCB0aGlzLnNldHRpbmdTZXJ2aWNlLmdldDxzdHJpbmdbXT4odGhpcy5waW5uZWRTZXR0aW5nS2V5KSkgfHwgW107XG5cbiAgICAvLyBVcGRhdGUgdGhlIGxpc3Qgb2YgcGlubmVkIHdpZGdldHMgYmFzZWQgb24gdGhlIHBpbm5lZCBzdGF0dXNcbiAgICBpZiAob3JpZ2luYWxXaWRnZXQucGlubmVkKSB7XG4gICAgICBpZiAoIXBpbm5lZFdpZGdldHMuaW5jbHVkZXMob3JpZ2luYWxXaWRnZXQubmFtZSkpIHtcbiAgICAgICAgcGlubmVkV2lkZ2V0cy5wdXNoKG9yaWdpbmFsV2lkZ2V0Lm5hbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwaW5uZWRXaWRnZXRzID0gcGlubmVkV2lkZ2V0cy5maWx0ZXIoKG5hbWUpID0+IG5hbWUgIT09IG9yaWdpbmFsV2lkZ2V0Lm5hbWUpO1xuICAgIH1cblxuICAgIC8vIFNhdmUgdGhlIHVwZGF0ZWQgbGlzdCBvZiBwaW5uZWQgd2lkZ2V0c1xuICAgIGF3YWl0IHRoaXMuc2V0dGluZ1NlcnZpY2Uuc2NvcGUoQVhQUGxhdGZvcm1TY29wZS5Vc2VyKS5zZXQodGhpcy5waW5uZWRTZXR0aW5nS2V5LCBwaW5uZWRXaWRnZXRzKTtcblxuICAgIC8vIFRyaWdnZXIgYSByZS1yZW5kZXIgb2YgdGhlIHdpZGdldHNcbiAgICB0aGlzLnBpbm5lZFdpZGdldHMuc2V0KHBpbm5lZFdpZGdldHMpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgYSB3aWRnZXQgaXMgc2VsZWN0ZWRcbiAgcHJvdGVjdGVkIGlzV2lkZ2V0U2VsZWN0ZWQod2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCkuaW5jbHVkZXMod2lkZ2V0KTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIGEgZ2VuZXJpYyB3aWRnZXQgaXRlbSBpcyBzZWxlY3RlZFxuICBwcm90ZWN0ZWQgaXNXaWRnZXRJdGVtU2VsZWN0ZWQod2lkZ2V0SXRlbTogQVhQV2lkZ2V0SXRlbURhdGEpOiBib29sZWFuIHtcbiAgICBjb25zdCBvcmlnaW5hbFdpZGdldCA9IHdpZGdldEl0ZW0uZGF0YSBhcyBBWFBEaXNwbGF5V2lkZ2V0Q29uZmlnO1xuICAgIHJldHVybiB0aGlzLmlzV2lkZ2V0U2VsZWN0ZWQob3JpZ2luYWxXaWRnZXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbmZpcm1TZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSh7IHdpZGdldHM6IHRoaXMuc2VsZWN0ZWRXaWRnZXRzKCkgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWgtWzk1dmhdXCJcbiAgW25nQ2xhc3NdPVwieyAnbGc6YXgtaC1bNzV2aF0nOiBtYXhWaXNpYmxlV2lkZ2V0cygpID4gMTAsICdsZzpheC1oLVs1MHZoXSc6IG1heFZpc2libGVXaWRnZXRzKCkgPD0gMTAgfVwiPlxuICA8ZGl2PlxuICAgIDxheC10YWJzIFtsb29rXT1cIid3aXRoLWxpbmUnXCIgKG9uQWN0aXZlVGFiQ2hhbmdlZCk9XCJoYW5kbGVUYWJDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgQGZvcih3IG9mIHRhYnMoKTt0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC10YWItaXRlbSBbdGV4dF09XCJ3LnRpdGxlXCIgW2tleV09XCIkaW5kZXgudG9TdHJpbmcoKVwiIFthY3RpdmVdPVwiY3VycmVudFRhYkluZGV4KCkgPT09ICRpbmRleFwiPjwvYXgtdGFiLWl0ZW0+XG4gICAgICB9XG4gICAgPC9heC10YWJzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImF4LW92ZXJmbG93LWF1dG9cIiAjY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsXCIgI3N0aWNreT1cImF4cFN0aWNreVwiXG4gICAgICBbYXhwU3RpY2t5XT1cIidheC1iZy1saWdodGVzdCBheC1zaGFkb3cteGwnXCIgW3N0aWNreVBhcmVudF09XCJjb250ZW50XCIgW3N0aWNreU9mZnNldF09XCIxMFwiPlxuICAgICAgPGF4LXNlYXJjaC1ib3ggbG9vaz1cImZpbGxcIiBwbGFjZWhvbGRlcj1cImUuZy4gQnV0dG9uLCBUZXh0LCAuLi5cIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIiBbZGVsYXlUaW1lXT1cIjMwMFwiXG4gICAgICAgIFtheEF1dG9Gb2N1c109XCJ0cnVlXCI+XG4gICAgICAgIDxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b24+XG4gICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtcC00IGF4LXB0LTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy0yIGF4LWdhcC0yXCI+XG4gICAgICAgIEBmb3Iod2lkZ2V0SXRlbSBvZiBwaW5uZWRXaWRnZXRJdGVtcygpO3RyYWNrIHdpZGdldEl0ZW0udGl0bGUpIHtcbiAgICAgICAgPGF4cC13aWRnZXQtaXRlbSBbd2lkZ2V0XT1cIndpZGdldEl0ZW1cIiBbaXNTZWxlY3RlZF09XCJpc1dpZGdldEl0ZW1TZWxlY3RlZCh3aWRnZXRJdGVtKVwiXG4gICAgICAgICAgKG9uV2lkZ2V0Q2xpY2spPVwiaGFuZGxlV2lkZ2V0Q2xpY2soJGV2ZW50KVwiIChvblBpbkNsaWNrKT1cImhhbmRsZVdpZGdldFBpbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPC9heHAtd2lkZ2V0LWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmKHBpbm5lZFdpZGdldEl0ZW1zKCkubGVuZ3RoKSB7XG4gICAgICA8aHIgY2xhc3M9XCJheC1teS00IGF4LWJvcmRlci1kYXNoZWRcIiAvPlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTJcIj5cbiAgICAgICAgQGZvcih3aWRnZXRJdGVtIG9mIHJlZ3VsYXJXaWRnZXRJdGVtcygpO3RyYWNrIHdpZGdldEl0ZW0udGl0bGUpIHtcbiAgICAgICAgPGF4cC13aWRnZXQtaXRlbSBbd2lkZ2V0XT1cIndpZGdldEl0ZW1cIiBbaXNTZWxlY3RlZF09XCJpc1dpZGdldEl0ZW1TZWxlY3RlZCh3aWRnZXRJdGVtKVwiXG4gICAgICAgICAgKG9uV2lkZ2V0Q2xpY2spPVwiaGFuZGxlV2lkZ2V0Q2xpY2soJGV2ZW50KVwiIChvblBpbkNsaWNrKT1cImhhbmRsZVdpZGdldFBpbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgPC9heHAtd2lkZ2V0LWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuQGlmKHNlbGVjdGVkV2lkZ2V0cygpLmxlbmd0aCkge1xuPGF4LWZvb3Rlcj5cbiAgPGF4LXN1ZmZpeD5cbiAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJ7eyBzZWxlY3RlZFdpZGdldHMoKS5sZW5ndGggfX0gU2VsZWN0ZWRcIlxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ29uZmlybVNlbGVjdGlvbigpXCI+PC9heC1idXR0b24+XG4gIDwvYXgtc3VmZml4PlxuPC9heC1mb290ZXI+XG59Il19","import { AXP_WIDGET_TOKEN, AXPValueWidgetComponent, AXPWidgetRegistryService, AXPWidgetStatus, } from '@acorex/platform/layout/widget-core';\nimport { Directive, inject, Injector, input, NgZone, signal, ViewContainerRef, } from '@angular/core';\nimport { cloneDeep, get, isEqual, isNil, merge, set } from 'lodash-es';\nimport { debounceTime, distinctUntilChanged, filter, first } from 'rxjs';\nimport { AXPDesignerService } from './designer.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetDesignerRendererDirective {\n /**\n * @ignore\n */\n constructor() {\n this.mergedOptions = signal({}, ...(ngDevMode ? [{ debugName: \"mergedOptions\" }] : []));\n this.injector = inject(Injector);\n this.widgetRegistry = inject(AXPWidgetRegistryService);\n this.zone = inject(NgZone);\n this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.isLoadingComponent = false;\n this.currentNodeId = null;\n this.service = inject(AXPDesignerService);\n this.viewContainerRef = inject(ViewContainerRef);\n this.parentNode = input(...(ngDevMode ? [undefined, { debugName: \"parentNode\" }] : []));\n this.parentElement = input(...(ngDevMode ? [undefined, { debugName: \"parentElement\" }] : []));\n this.parentComponent = input(...(ngDevMode ? [undefined, { debugName: \"parentComponent\" }] : []));\n this.index = input(...(ngDevMode ? [undefined, { debugName: \"index\" }] : []));\n this.locked = input(false, ...(ngDevMode ? [{ debugName: \"locked\" }] : []));\n this.mode = input.required(...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.node = input.required(...(ngDevMode ? [{ debugName: \"node\" }] : []));\n this.hostElement = () => this.instance?.host;\n this.getId = (w) => get(w, '__meta__.id');\n this.isCurrentWidget = (w) => this.getId(w) == this.getId(this.node());\n this.subs = [];\n this.subs[0] = this.service.onUpdate\n .pipe(\n //debounceTime(time),\n distinctUntilChanged((p, c) => this.getId(p.widget) == this.getId(c.widget) && isEqual(p.values?.options, c.values?.options)), filter((c) => this.isCurrentWidget(c.widget) && !this.locked()))\n .subscribe((c) => {\n this.applyOptions(c.values?.options);\n });\n //\n this.subs[1] = this.service.onSelected\n .pipe(distinctUntilChanged((p, c) => this.getId(p.widget) == this.getId(c.widget)))\n .subscribe((c) => {\n this.zone.runOutsideAngular(() => {\n if (this.isCurrentWidget(c.widget) && !this.locked()) {\n this.applySelectedStyle();\n }\n else {\n this.removeSelectedStyle();\n }\n });\n });\n //\n this.subs[2] = this.service.onFocused\n .pipe(distinctUntilChanged((p, c) => !isNil(p.widget) && !isNil(c.widget) && this.getId(p.widget) == this.getId(c.widget)))\n .subscribe((c) => {\n if (c.widget && this.isCurrentWidget(c.widget)) {\n this.addOverlay();\n }\n else {\n this.removeOverlay();\n }\n });\n //\n this.subs[3] = this.service.onRefresh\n .pipe(debounceTime(200), filter((c) => this.isCurrentWidget(c.widget)))\n .subscribe((c) => {\n this.instance?.setChildren(this.node().children ?? []);\n });\n //\n }\n // Detect input changes\n ngOnChanges(changes) {\n if (changes['mode'] || changes['node']) {\n const nodeId = this.getId(this.node()) || null;\n const modeChanged = changes['mode']?.currentValue !== changes['mode']?.previousValue;\n const nodeChanged = changes['node'] && nodeId !== this.currentNodeId;\n // Only load if there's an actual change and we're not already loading\n //if ((modeChanged || nodeChanged) && !this.isLoadingComponent) {\n this.loadComponent();\n //}\n }\n }\n ngOnDestroy() {\n this.subs.forEach((s) => {\n s.unsubscribe();\n });\n // Clear loading state and reset tracking variables\n this.isLoadingComponent = false;\n this.currentNodeId = null;\n this.isLoading.set(false);\n // Clear view container\n this.viewContainerRef.clear();\n }\n async loadComponent() {\n // Prevent duplicate loading\n if (this.isLoadingComponent) {\n return;\n }\n try {\n this.isLoadingComponent = true;\n const nodeId = this.getId(this.node()) || null;\n // Skip if already loaded for the same node and mode\n // if (this.currentNodeId === nodeId && this.instance) {\n // this.isLoadingComponent = false;\n // return;\n // }\n this.viewContainerRef.clear();\n this.isLoading.set(true);\n this.currentNodeId = nodeId;\n this.config = this.widgetRegistry.resolve(this.node().type);\n //\n const props = [...(this.config?.properties ?? []), ...(this.config?.components[this.mode()]?.properties ?? [])]\n ?.filter((c) => c.schema.defaultValue != null)\n .map((c) => ({ [c.name]: cloneDeep(c.schema.defaultValue) }))\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n }, {});\n //\n this.mergedOptions.set(merge(props, this.node().options) || {});\n this.preprocessAndInitialOptions(cloneDeep(this.node().options));\n const tokenValue = {\n node: this.node(),\n options: this.mergedOptions(),\n config: this.config,\n defaultValue: cloneDeep(this.node().defaultValue),\n };\n const token = Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: AXP_WIDGET_TOKEN,\n useValue: tokenValue,\n },\n ],\n });\n var com = await this.config?.components[this.mode()]?.component();\n this.instance = this.viewContainerRef.createComponent(com, { injector: token }).instance;\n this.instance.locked = this.locked();\n this.instance.parent = this.parentNode();\n this.instance.parentElement = this.parentElement();\n this.instance.parentComponent = this.parentComponent();\n this.instance.index = this.index();\n this.instance.mode = this.mode();\n //\n this.instance.onStatusChanged\n .pipe(filter((c) => c == AXPWidgetStatus.Rendered), first())\n .subscribe(() => {\n const host = this.hostElement();\n set(host, '__meta__.renderer', this);\n set(host, '__meta__.instance', this.instance);\n host.classList.add('axp-widget-host');\n if (this.mode() == 'designer') {\n if (!this.locked()) {\n host.addEventListener('mouseover', (e) => {\n e.stopPropagation();\n this.addOverlay();\n this.focus();\n });\n host.addEventListener('mouseleave', (e) => {\n e.stopPropagation();\n this.removeOverlay();\n this.blur();\n });\n host.addEventListener('click', (e) => {\n e.stopPropagation();\n this.applySelectedStyle();\n this.service.select({ widget: this.node() });\n });\n this.service.register({\n config: this.config,\n id: get(this.node(), '__meta__.id'),\n instance: this.instance,\n widget: this.node(),\n });\n }\n }\n this.isLoading.set(false);\n });\n }\n catch (error) {\n console.error('Error loading component:', error);\n this.isLoading.set(false);\n }\n finally {\n this.isLoadingComponent = false;\n }\n }\n select() {\n if (this.locked())\n return;\n //\n this.service.select({ widget: this.node() });\n this.applySelectedStyle();\n }\n focus() {\n if (this.locked())\n return;\n //\n this.service.focus({ widget: this.node() });\n }\n blur() {\n if (this.locked())\n return;\n //\n this.service.focus({ widget: null });\n }\n applySelectedStyle() {\n if (this.locked())\n return;\n //\n this.hostElement()?.classList.add('axp-state-selected');\n this.hostElement()?.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n removeSelectedStyle() {\n this.hostElement()?.classList.remove('axp-state-selected');\n }\n addOverlay() {\n if (this.locked())\n return;\n //\n this.zone.runOutsideAngular(() => {\n if (this.hostElement()) {\n this.hostElement()?.classList.add('axp-state-hover');\n //\n if (this.hostElement().querySelector('.axp-widget-overlay') || this.config?.type == 'container') {\n return;\n }\n this.overlay = document.createElement('div');\n this.overlay.classList.add('axp-widget-overlay');\n this.overlay.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n this.select();\n });\n this.overlay.addEventListener('mouseleave', (e) => {\n e.preventDefault();\n e.stopPropagation();\n this.blur();\n });\n this.hostElement().appendChild(this.overlay);\n }\n });\n }\n removeOverlay() {\n this.zone.runOutsideAngular(() => {\n if (this.hostElement()) {\n this.hostElement()?.classList.remove('axp-state-hover');\n //\n this.overlay?.remove();\n }\n });\n }\n preprocessAndInitialOptions(obj, pathPrefix = '') {\n if (!obj)\n return;\n //\n Object.entries(obj).forEach(([key, value]) => {\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n this.mergedOptions.update((currentOptions) => {\n return set(currentOptions, currentPath, value);\n });\n });\n }\n applyOptions(values) {\n if (this.instance instanceof AXPValueWidgetComponent && this.node().defaultValue != null) {\n this.instance.setValue(cloneDeep(this.node().defaultValue));\n }\n this.mergedOptions.update((currentOptions) => {\n return merge(currentOptions, values);\n });\n this.instance?.setOptions(this.mergedOptions());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWidgetDesignerRendererDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXPWidgetDesignerRendererDirective, isStandalone: true, selector: \"[axp-widget-designer-renderer]\", inputs: { parentNode: { classPropertyName: \"parentNode\", publicName: \"parentNode\", isSignal: true, isRequired: false, transformFunction: null }, parentElement: { classPropertyName: \"parentElement\", publicName: \"parentElement\", isSignal: true, isRequired: false, transformFunction: null }, parentComponent: { classPropertyName: \"parentComponent\", publicName: \"parentComponent\", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: \"index\", publicName: \"index\", isSignal: true, isRequired: false, transformFunction: null }, locked: { classPropertyName: \"locked\", publicName: \"locked\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: true, transformFunction: null }, node: { classPropertyName: \"node\", publicName: \"node\", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWidgetDesignerRendererDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-widget-designer-renderer]',\n standalone: true,\n }]\n }], ctorParameters: () => [], propDecorators: { parentNode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"parentNode\", required: false }] }], parentElement: [{ type: i0.Input, args: [{ isSignal: true, alias: \"parentElement\", required: false }] }], parentComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: \"parentComponent\", required: false }] }], index: [{ type: i0.Input, args: [{ isSignal: true, alias: \"index\", required: false }] }], locked: [{ type: i0.Input, args: [{ isSignal: true, alias: \"locked\", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: \"mode\", required: true }] }], node: [{ type: i0.Input, args: [{ isSignal: true, alias: \"node\", required: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWRlc2lnbmVyLXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvc2hhcmVkL3dpZGdldC1kZXNpZ25lci1yZW5kZXJlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUdoQix1QkFBdUIsRUFJdkIsd0JBQXdCLEVBRXhCLGVBQWUsR0FDaEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBRUwsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBRU4sZ0JBQWdCLEdBRWpCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU14RCxNQUFNLE9BQU8sa0NBQWtDO0lBaUM3Qzs7T0FFRztJQUNIO1FBbkNVLGtCQUFhLEdBQXdCLE1BQU0sQ0FBTSxFQUFFLHlEQUFDLENBQUM7UUFFdkQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2xELFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLHFEQUFDLENBQUM7UUFJM0IsdUJBQWtCLEdBQUcs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QUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUMzQyxPQUFPLEtBQUssQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDOytHQW5UVSxrQ0FBa0M7bUdBQWxDLGtDQUFrQzs7NEZBQWxDLGtDQUFrQztrQkFKOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWFBfV0lER0VUX1RPS0VOLFxuICBBWFBCYXNlV2lkZ2V0Q29tcG9uZW50LFxuICBBWFBMYXlvdXRCYXNlV2lkZ2V0Q29tcG9uZW50LFxuICBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCxcbiAgQVhQV2lkZ2V0Q29uZmlnLFxuICBBWFBXaWRnZXROb2RlLFxuICBBWFBXaWRnZXROb2RlVG9rZW4sXG4gIEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSxcbiAgQVhQV2lkZ2V0UmVuZGVyTW9kZSxcbiAgQVhQV2lkZ2V0U3RhdHVzLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIERpcmVjdGl2ZSxcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIHNpZ25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBnZXQsIGlzRXF1YWwsIGlzTmlsLCBtZXJnZSwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmlyc3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi9kZXNpZ25lci5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4cC13aWRnZXQtZGVzaWduZXItcmVuZGVyZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIG1lcmdlZE9wdGlvbnM6IFdyaXRhYmxlU2lnbmFsPGFueT4gPSBzaWduYWw8YW55Pih7fSk7XG5cbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByb3RlY3RlZCB3aWRnZXRSZWdpc3RyeSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIHByb3RlY3RlZCBpc0xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJpdmF0ZSBpbnN0YW5jZSE6IEFYUEJhc2VXaWRnZXRDb21wb25lbnQ7XG4gIHByaXZhdGUgY29uZmlnPzogQVhQV2lkZ2V0Q29uZmlnIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGlzTG9hZGluZ0NvbXBvbmVudCA9IGZhbHNlO1xuICBwcml2YXRlIGN1cnJlbnROb2RlSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xuICBwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgcGFyZW50Tm9kZSA9IGlucHV0PEFYUExheW91dEJhc2VXaWRnZXRDb21wb25lbnQgfCBudWxsPigpO1xuICBwYXJlbnRFbGVtZW50ID0gaW5wdXQ8SFRNTEVsZW1lbnQgfCBudWxsPigpO1xuICBwYXJlbnRDb21wb25lbnQgPSBpbnB1dDxDb21wb25lbnRSZWY8YW55PiB8IG51bGw+KCk7XG5cbiAgaW5kZXggPSBpbnB1dDxudW1iZXIgfCBudWxsPigpO1xuICBsb2NrZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgbW9kZSA9IGlucHV0LnJlcXVpcmVkPEFYUFdpZGdldFJlbmRlck1vZGU+KCk7XG4gIG5vZGUgPSBpbnB1dC5yZXF1aXJlZDxBWFBXaWRnZXROb2RlPigpO1xuXG4gIHByaXZhdGUgaG9zdEVsZW1lbnQgPSAoKSA9PiB0aGlzLmluc3RhbmNlPy5ob3N0IGFzIEhUTUxEaXZFbGVtZW50O1xuICBwcml2YXRlIGdldElkID0gKHc6IEFYUFdpZGdldE5vZGUpID0+IGdldCh3LCAnX19tZXRhX18uaWQnKTtcbiAgcHJpdmF0ZSBpc0N1cnJlbnRXaWRnZXQgPSAodzogQVhQV2lkZ2V0Tm9kZSkgPT4gdGhpcy5nZXRJZCh3KSA9PSB0aGlzLmdldElkKHRoaXMubm9kZSgpKTtcblxuICBwcml2YXRlIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3Vic1swXSA9IHRoaXMuc2VydmljZS5vblVwZGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vZGVib3VuY2VUaW1lKHRpbWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChcbiAgICAgICAgICAocCwgYykgPT4gdGhpcy5nZXRJZChwLndpZGdldCkgPT0gdGhpcy5nZXRJZChjLndpZGdldCkgJiYgaXNFcXVhbChwLnZhbHVlcz8ub3B0aW9ucywgYy52YWx1ZXM/Lm9wdGlvbnMpLFxuICAgICAgICApLFxuICAgICAgICBmaWx0ZXIoKGMpID0+IHRoaXMuaXNDdXJyZW50V2lkZ2V0KGMud2lkZ2V0KSAmJiAhdGhpcy5sb2NrZWQoKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIHRoaXMuYXBwbHlPcHRpb25zKGMudmFsdWVzPy5vcHRpb25zKTtcbiAgICAgIH0pO1xuICAgIC8vXG4gICAgdGhpcy5zdWJzWzFdID0gdGhpcy5zZXJ2aWNlLm9uU2VsZWN0ZWRcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwLCBjKSA9PiB0aGlzLmdldElkKHAud2lkZ2V0KSA9PSB0aGlzLmdldElkKGMud2lkZ2V0KSkpXG4gICAgICAuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50V2lkZ2V0KGMud2lkZ2V0KSAmJiAhdGhpcy5sb2NrZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5hcHBseVNlbGVjdGVkU3R5bGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFN0eWxlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIC8vXG4gICAgdGhpcy5zdWJzWzJdID0gdGhpcy5zZXJ2aWNlLm9uRm9jdXNlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAgIChwLCBjKSA9PiAhaXNOaWwocC53aWRnZXQpICYmICFpc05pbChjLndpZGdldCkgJiYgdGhpcy5nZXRJZChwLndpZGdldCkgPT0gdGhpcy5nZXRJZChjLndpZGdldCksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjKSA9PiB7XG4gICAgICAgIGlmIChjLndpZGdldCAmJiB0aGlzLmlzQ3VycmVudFdpZGdldChjLndpZGdldCkpIHtcbiAgICAgICAgICB0aGlzLmFkZE92ZXJsYXkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLnN1YnNbM10gPSB0aGlzLnNlcnZpY2Uub25SZWZyZXNoXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgIGZpbHRlcigoYykgPT4gdGhpcy5pc0N1cnJlbnRXaWRnZXQoYy53aWRnZXQpKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgdGhpcy5pbnN0YW5jZT8uc2V0Q2hpbGRyZW4odGhpcy5ub2RlKCkuY2hpbGRyZW4gPz8gW10pO1xuICAgICAgfSk7XG4gICAgLy9cbiAgfVxuXG4gIC8vIERldGVjdCBpbnB1dCBjaGFuZ2VzXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snbW9kZSddIHx8IGNoYW5nZXNbJ25vZGUnXSkge1xuICAgICAgY29uc3Qgbm9kZUlkID0gdGhpcy5nZXRJZCh0aGlzLm5vZGUoKSkgfHwgbnVsbDtcbiAgICAgIGNvbnN0IG1vZGVDaGFuZ2VkID0gY2hhbmdlc1snbW9kZSddPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ21vZGUnXT8ucHJldmlvdXNWYWx1ZTtcbiAgICAgIGNvbnN0IG5vZGVDaGFuZ2VkID0gY2hhbmdlc1snbm9kZSddICYmIG5vZGVJZCAhPT0gdGhpcy5jdXJyZW50Tm9kZUlkO1xuXG4gICAgICAvLyBPbmx5IGxvYWQgaWYgdGhlcmUncyBhbiBhY3R1YWwgY2hhbmdlIGFuZCB3ZSdyZSBub3QgYWxyZWFkeSBsb2FkaW5nXG4gICAgICAvL2lmICgobW9kZUNoYW5nZWQgfHwgbm9kZUNoYW5nZWQpICYmICF0aGlzLmlzTG9hZGluZ0NvbXBvbmVudCkge1xuICAgICAgdGhpcy5sb2FkQ29tcG9uZW50KCk7XG4gICAgICAvL31cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgcy51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuXG4gICAgLy8gQ2xlYXIgbG9hZGluZyBzdGF0ZSBhbmQgcmVzZXQgdHJhY2tpbmcgdmFyaWFibGVzXG4gICAgdGhpcy5pc0xvYWRpbmdDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmN1cnJlbnROb2RlSWQgPSBudWxsO1xuICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG5cbiAgICAvLyBDbGVhciB2aWV3IGNvbnRhaW5lclxuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkQ29tcG9uZW50KCkge1xuICAgIC8vIFByZXZlbnQgZHVwbGljYXRlIGxvYWRpbmdcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdDb21wb25lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0xvYWRpbmdDb21wb25lbnQgPSB0cnVlO1xuICAgICAgY29uc3Qgbm9kZUlkID0gdGhpcy5nZXRJZCh0aGlzLm5vZGUoKSkgfHwgbnVsbDtcblxuICAgICAgLy8gU2tpcCBpZiBhbHJlYWR5IGxvYWRlZCBmb3IgdGhlIHNhbWUgbm9kZSBhbmQgbW9kZVxuICAgICAgLy8gaWYgKHRoaXMuY3VycmVudE5vZGVJZCA9PT0gbm9kZUlkICYmIHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIC8vICAgdGhpcy5pc0xvYWRpbmdDb21wb25lbnQgPSBmYWxzZTtcbiAgICAgIC8vICAgcmV0dXJuO1xuICAgICAgLy8gfVxuXG4gICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgIHRoaXMuY3VycmVudE5vZGVJZCA9IG5vZGVJZDtcblxuICAgICAgdGhpcy5jb25maWcgPSB0aGlzLndpZGdldFJlZ2lzdHJ5LnJlc29sdmUodGhpcy5ub2RlKCkudHlwZSk7XG4gICAgICAvL1xuICAgICAgY29uc3QgcHJvcHMgPSBbLi4uKHRoaXMuY29uZmlnPy5wcm9wZXJ0aWVzID8/IFtdKSwgLi4uKHRoaXMuY29uZmlnPy5jb21wb25lbnRzW3RoaXMubW9kZSgpXT8ucHJvcGVydGllcyA/PyBbXSldXG4gICAgICAgID8uZmlsdGVyKChjKSA9PiBjLnNjaGVtYS5kZWZhdWx0VmFsdWUgIT0gbnVsbClcbiAgICAgICAgLm1hcCgoYykgPT4gKHsgW2MubmFtZV06IGNsb25lRGVlcChjLnNjaGVtYS5kZWZhdWx0VmFsdWUpIH0pKVxuICAgICAgICAucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICByZXR1cm4geyAuLi5hY2MsIC4uLmN1cnIgfTtcbiAgICAgICAgfSwge30pO1xuICAgICAgLy9cbiAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy5zZXQobWVyZ2UocHJvcHMsIHRoaXMubm9kZSgpLm9wdGlvbnMpIHx8IHt9KTtcblxuICAgICAgdGhpcy5wcmVwcm9jZXNzQW5kSW5pdGlhbE9wdGlvbnMoY2xvbmVEZWVwKHRoaXMubm9kZSgpLm9wdGlvbnMpKTtcblxuICAgICAgY29uc3QgdG9rZW5WYWx1ZSA9IHtcbiAgICAgICAgbm9kZTogdGhpcy5ub2RlKCksXG4gICAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VkT3B0aW9ucygpLFxuICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGNsb25lRGVlcCh0aGlzLm5vZGUoKS5kZWZhdWx0VmFsdWUpLFxuICAgICAgfSBhcyBBWFBXaWRnZXROb2RlVG9rZW47XG5cbiAgICAgIGNvbnN0IHRva2VuID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBBWFBfV0lER0VUX1RPS0VOLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHRva2VuVmFsdWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICB2YXIgY29tID0gYXdhaXQgdGhpcy5jb25maWc/LmNvbXBvbmVudHNbdGhpcy5tb2RlKCldPy5jb21wb25lbnQoKTtcbiAgICAgIHRoaXMuaW5zdGFuY2UgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PEFYUEJhc2VXaWRnZXRDb21wb25lbnQ+KGNvbSwgeyBpbmplY3RvcjogdG9rZW4gfSkuaW5zdGFuY2U7XG4gICAgICB0aGlzLmluc3RhbmNlLmxvY2tlZCA9IHRoaXMubG9ja2VkKCk7XG4gICAgICB0aGlzLmluc3RhbmNlLnBhcmVudCA9IHRoaXMucGFyZW50Tm9kZSgpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5wYXJlbnRFbGVtZW50ID0gdGhpcy5wYXJlbnRFbGVtZW50KCk7XG4gICAgICB0aGlzLmluc3RhbmNlLnBhcmVudENvbXBvbmVudCA9IHRoaXMucGFyZW50Q29tcG9uZW50KCk7XG4gICAgICB0aGlzLmluc3RhbmNlLmluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgdGhpcy5pbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgICAvL1xuICAgICAgdGhpcy5pbnN0YW5jZS5vblN0YXR1c0NoYW5nZWRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKChjKSA9PiBjID09IEFYUFdpZGdldFN0YXR1cy5SZW5kZXJlZCksXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5ob3N0RWxlbWVudCgpO1xuICAgICAgICAgIHNldChob3N0LCAnX19tZXRhX18ucmVuZGVyZXInLCB0aGlzKTtcbiAgICAgICAgICBzZXQoaG9zdCwgJ19fbWV0YV9fLmluc3RhbmNlJywgdGhpcy5pbnN0YW5jZSk7XG4gICAgICAgICAgaG9zdC5jbGFzc0xpc3QuYWRkKCdheHAtd2lkZ2V0LWhvc3QnKTtcbiAgICAgICAgICBpZiAodGhpcy5tb2RlKCkgPT0gJ2Rlc2lnbmVyJykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmxvY2tlZCgpKSB7XG4gICAgICAgICAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgKGUpID0+IHtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkT3ZlcmxheSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGhvc3QuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZU92ZXJsYXkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJsdXIoKTtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgaG9zdC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGx5U2VsZWN0ZWRTdHlsZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZWxlY3QoeyB3aWRnZXQ6IHRoaXMubm9kZSgpIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnISxcbiAgICAgICAgICAgICAgICBpZDogZ2V0KHRoaXMubm9kZSgpLCAnX19tZXRhX18uaWQnKSBhcyBhbnkgYXMgbnVtYmVyLFxuICAgICAgICAgICAgICAgIGluc3RhbmNlOiB0aGlzLmluc3RhbmNlLFxuICAgICAgICAgICAgICAgIHdpZGdldDogdGhpcy5ub2RlKCksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBjb21wb25lbnQ6JywgZXJyb3IpO1xuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmdDb21wb25lbnQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG92ZXJsYXk6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICBwdWJsaWMgc2VsZWN0KCkge1xuICAgIGlmICh0aGlzLmxvY2tlZCgpKSByZXR1cm47XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0KHsgd2lkZ2V0OiB0aGlzLm5vZGUoKSB9KTtcbiAgICB0aGlzLmFwcGx5U2VsZWN0ZWRTdHlsZSgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCkge1xuICAgIGlmICh0aGlzLmxvY2tlZCgpKSByZXR1cm47XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2UuZm9jdXMoeyB3aWRnZXQ6IHRoaXMubm9kZSgpIH0pO1xuICB9XG5cbiAgcHVibGljIGJsdXIoKSB7XG4gICAgaWYgKHRoaXMubG9ja2VkKCkpIHJldHVybjtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5mb2N1cyh7IHdpZGdldDogbnVsbCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWxlY3RlZFN0eWxlKCkge1xuICAgIGlmICh0aGlzLmxvY2tlZCgpKSByZXR1cm47XG4gICAgLy9cbiAgICB0aGlzLmhvc3RFbGVtZW50KCk/LmNsYXNzTGlzdC5hZGQoJ2F4cC1zdGF0ZS1zZWxlY3RlZCcpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQoKT8uc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnbmVhcmVzdCcgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNlbGVjdGVkU3R5bGUoKSB7XG4gICAgdGhpcy5ob3N0RWxlbWVudCgpPy5jbGFzc0xpc3QucmVtb3ZlKCdheHAtc3RhdGUtc2VsZWN0ZWQnKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkT3ZlcmxheSgpIHtcbiAgICBpZiAodGhpcy5sb2NrZWQoKSkgcmV0dXJuO1xuICAgIC8vXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhvc3RFbGVtZW50KCkpIHtcbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudCgpPy5jbGFzc0xpc3QuYWRkKCdheHAtc3RhdGUtaG92ZXInKTtcbiAgICAgICAgLy9cbiAgICAgICAgaWYgKHRoaXMuaG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXhwLXdpZGdldC1vdmVybGF5JykgfHwgdGhpcy5jb25maWc/LnR5cGUgPT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMub3ZlcmxheS5jbGFzc0xpc3QuYWRkKCdheHAtd2lkZ2V0LW92ZXJsYXknKTtcbiAgICAgICAgdGhpcy5vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vdmVybGF5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoZSkgPT4ge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRoaXMuYmx1cigpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudCgpLmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU92ZXJsYXkoKSB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmhvc3RFbGVtZW50KCkpIHtcbiAgICAgICAgdGhpcy5ob3N0RWxlbWVudCgpPy5jbGFzc0xpc3QucmVtb3ZlKCdheHAtc3RhdGUtaG92ZXInKTtcbiAgICAgICAgLy9cbiAgICAgICAgdGhpcy5vdmVybGF5Py5yZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcHJvY2Vzc0FuZEluaXRpYWxPcHRpb25zKG9iajogYW55LCBwYXRoUHJlZml4OiBzdHJpbmcgPSAnJyk6IHZvaWQge1xuICAgIGlmICghb2JqKSByZXR1cm47XG4gICAgLy9cbiAgICBPYmplY3QuZW50cmllcyhvYmopLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXRoUHJlZml4ID8gYCR7cGF0aFByZWZpeH0uJHtrZXl9YCA6IGtleTtcbiAgICAgIHRoaXMubWVyZ2VkT3B0aW9ucy51cGRhdGUoKGN1cnJlbnRPcHRpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBzZXQoY3VycmVudE9wdGlvbnMsIGN1cnJlbnRQYXRoLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlPcHRpb25zKHZhbHVlczogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5zdGFuY2UgaW5zdGFuY2VvZiBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCAmJiB0aGlzLm5vZGUoKS5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5pbnN0YW5jZS5zZXRWYWx1ZShjbG9uZURlZXAodGhpcy5ub2RlKCkuZGVmYXVsdFZhbHVlKSk7XG4gICAgfVxuICAgIHRoaXMubWVyZ2VkT3B0aW9ucy51cGRhdGUoKGN1cnJlbnRPcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gbWVyZ2UoY3VycmVudE9wdGlvbnMsIHZhbHVlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5pbnN0YW5jZT8uc2V0T3B0aW9ucyh0aGlzLm1lcmdlZE9wdGlvbnMoKSk7XG4gIH1cbn1cbiJdfQ==","import { AXContextMenuComponent, AXMenuModule, } from '@acorex/components/menu';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, HostBinding, inject, ViewChild, ViewEncapsulation, } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport { AXPWidgetDesignerRendererDirective } from '../../shared/widget-designer-renderer.directive';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/widget-core\";\nimport * as i2 from \"@acorex/components/menu\";\nexport class AXPDesignerBoardComponent {\n // Unified method to extract media queries and create a custom class\n applyResponsiveStyles(breakpoint) {\n const minWidth = get(this.breakpointMap, breakpoint);\n const mediaRules = [];\n // Loop through all the stylesheets\n for (const sheet of Array.from(document.styleSheets)) {\n try {\n // Loop through CSS rules\n for (const rule of Array.from(sheet.cssRules)) {\n // Check if the rule is a CSSMediaRule\n if (rule instanceof CSSMediaRule && rule.media.mediaText.includes(`min-width: ${minWidth}px`)) {\n // Loop through the media rule's CSS rules\n for (const subRule of Array.from(rule.cssRules)) {\n mediaRules.push(subRule.cssText);\n }\n }\n }\n }\n catch (e) {\n console.error('Error accessing stylesheet:', e);\n }\n }\n // Create a dynamic class for the media queries\n this.createCustomClass(`axp-preview-${breakpoint}`, mediaRules, breakpoint);\n }\n createCustomClass(className, styles, breakpoint) {\n const styleSheet = document.createElement('style');\n styleSheet.setAttribute('data-screen', breakpoint);\n // Construct a pure CSS string, dynamically replacing the breakpoint prefix\n let styleString = '';\n styles.forEach((style) => {\n // Replace any prefixed classes like 'lg:' or 'md:' dynamically\n const dynamicPrefix = new RegExp(`\\\\.${breakpoint}\\\\\\\\:`, 'g');\n styleString += `.${className} ${style.replace(dynamicPrefix, '.')}`; // Replace the breakpoint prefix\n });\n styleSheet.innerText = styleString;\n this.removeCustomClass();\n this.elementRef.nativeElement.appendChild(styleSheet);\n }\n removeCustomClass() {\n this.elementRef.nativeElement.querySelectorAll('style').forEach((s) => s.remove());\n }\n /**\n * @ignore\n */\n constructor() {\n this.context = {};\n this.elementRef = inject((ElementRef));\n this.breakpointMap = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n xxl: 1536,\n };\n this.service = inject(AXPDesignerService);\n this.width = computed(() => {\n switch (this.service.size()) {\n case 'sm':\n return '340px';\n case 'md':\n case 'lg':\n return '768px';\n default:\n return '100%';\n }\n }, ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n this.ef = effect(() => {\n this.removeCustomClass();\n if (this.service.size() != 'xl') {\n this.applyResponsiveStyles(this.service.size());\n }\n }, ...(ngDevMode ? [{ debugName: \"ef\" }] : []));\n this.service.onRefresh.subscribe(() => {\n this.contextMenu?.refresh();\n });\n }\n handleContextMenuOpening(e) {\n const renderer = get(e.targetElement, '__meta__.renderer');\n const instance = get(e.targetElement, '__meta__.instance');\n if (!renderer || !instance) {\n e.canceled = true;\n return;\n }\n renderer.select();\n // Fetch context menu items for the current instance\n try {\n const items = this.service.getContextMenuItems(instance, true);\n if (items.length) {\n e.items.push(...items);\n }\n else {\n e.canceled = true;\n }\n }\n catch (error) {\n console.error('Failed to get context menu items:', error);\n e.canceled = true;\n }\n // Recursively bind instance data to all items\n this.bindInstanceToItems(e.items, instance);\n // Traverse through parents and add their menu items directly to the root level\n this.addParentsToRootMenu(instance, e.items);\n }\n addParentsToRootMenu(instance, items) {\n let parent = instance?.parent;\n const parentItems = [];\n // Traverse up the parent chain, adding each parent to the \"Parents\" menu\n while (parent) {\n try {\n const widget = parent;\n const parentContextItems = this.service.getContextMenuItems(widget);\n // Create a new menu item for this parent\n const parentMenuItem = {\n text: parent.config.title,\n icon: parent.config.icon,\n items: [\n {\n text: 'Select',\n name: 'select',\n break: true,\n icon: 'fa-solid fa-arrow-pointer',\n },\n ...parentContextItems,\n ],\n };\n // Recursively bind instance data to all items\n this.bindInstanceToItems(parentMenuItem.items ?? [], widget);\n // Add the parent menu item to the parentItems array\n parentItems.push(parentMenuItem);\n }\n catch (error) {\n console.error('Failed to get parent context menu items:', error);\n }\n // Move to the next parent in the chain\n parent = parent?.parent;\n }\n // If there are any parent items, add them under a \"Parents\" group\n if (parentItems.length > 0) {\n items[items.length - 1].break = true;\n items.push({\n text: 'Parents',\n icon: 'fa-solid fa-turn-up', // Icon for the \"Parents\" group\n items: parentItems, // Add all parent items here\n });\n }\n }\n async handleContextMenuItemClick(e) {\n if (e.item.name) {\n const instance = get(e.item.data, \"instance\");\n await this.service.executeCommand({ instance, name: e.item.name });\n }\n }\n bindInstanceToItems(items, instance) {\n items.forEach(item => {\n // Ensure each item gets the correct instance\n item.data = { ...(item.data ?? {}), instance };\n // If the item has sub-items, bind instance to them recursively\n if (item.items) {\n this.bindInstanceToItems(item.items, instance);\n }\n });\n }\n get __style() {\n const cls = {};\n cls[`width`] = this.width();\n cls[`max-width`] = '1280px';\n return cls;\n }\n get __class() {\n const cls = {};\n cls[`axp-designer-board`] = true;\n cls[`axp-state-design`] = true;\n cls['ax-h-full'] = true;\n cls['ax-overflow-auto'] = true;\n cls[`axp-preview-${this.service.size()}`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerBoardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPDesignerBoardComponent, isStandalone: true, selector: \"axp-designer-board\", host: { properties: { \"style\": \"this.__style\", \"class\": \"this.__class\" } }, viewQueries: [{ propertyName: \"contextMenu\", first: true, predicate: [\"contextMenu\"], descendants: true }], ngImport: i0, template: \"<axp-widgets-container [context]=\\\"context\\\">\\n <ng-container axp-widget-designer-renderer [node]=\\\"service.currentPage()\\\" [mode]=\\\"'designer'\\\"></ng-container>\\n</axp-widgets-container>\\n\\n<ax-context-menu class=\\\"ax-dark\\\" #contextMenu [target]=\\\"'.axp-widget-host'\\\" [orientation]=\\\"'vertical'\\\"\\n [closeOn]=\\\"'leave'\\\" (onOpening)=\\\"handleContextMenuOpening($event)\\\" (onItemClick)=\\\"handleContextMenuItemClick($event)\\\">\\n</ax-context-menu>\", dependencies: [{ kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: i1.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: AXPWidgetDesignerRendererDirective, selector: \"[axp-widget-designer-renderer]\", inputs: [\"parentNode\", \"parentElement\", \"parentComponent\", \"index\", \"locked\", \"mode\", \"node\"] }, { kind: \"ngmodule\", type: AXMenuModule }, { kind: \"component\", type: i2.AXContextMenuComponent, selector: \"ax-context-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"items\", \"target\"], outputs: [\"onItemClick\", \"onOpening\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerBoardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-board', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPWidgetCoreModule, AXPWidgetDesignerRendererDirective, AXMenuModule], template: \"<axp-widgets-container [context]=\\\"context\\\">\\n <ng-container axp-widget-designer-renderer [node]=\\\"service.currentPage()\\\" [mode]=\\\"'designer'\\\"></ng-container>\\n</axp-widgets-container>\\n\\n<ax-context-menu class=\\\"ax-dark\\\" #contextMenu [target]=\\\"'.axp-widget-host'\\\" [orientation]=\\\"'vertical'\\\"\\n [closeOn]=\\\"'leave'\\\" (onOpening)=\\\"handleContextMenuOpening($event)\\\" (onItemClick)=\\\"handleContextMenuItemClick($event)\\\">\\n</ax-context-menu>\" }]\n }], ctorParameters: () => [], propDecorators: { contextMenu: [{\n type: ViewChild,\n args: ['contextMenu']\n }], __style: [{\n type: HostBinding,\n args: ['style']\n }], __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2JvYXJkL2JvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9ib2FyZC9ib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEVBSXRCLFlBQVksR0FDYixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBMkIsTUFBTSxxQ0FBcUMsQ0FBQztBQUVuRyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBTyxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7OztBQVdyRyxNQUFNLE9BQU8seUJBQXlCO0lBZXBDLG9FQUFvRTtJQUNwRSxxQkFBcUIsQ0FBQyxVQUFrQjtRQUN0QyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQVcsQ0FBQztRQUMvRCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFdEIsbUNBQW1DO1FBQ25DLEtBQUssTUFBTSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksQ0FB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S0FBRSxZQUFZOzs0RkFFcEUseUJBQXlCO2tCQVByQyxTQUFTOytCQUNFLG9CQUFvQixpQkFFZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsbUJBQW1CLEVBQUUsa0NBQWtDLEVBQUUsWUFBWSxDQUFDOztzQkFHL0UsU0FBUzt1QkFBQyxhQUFhOztzQkFpTXZCLFdBQVc7dUJBQUMsT0FBTzs7c0JBUW5CLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29udGV4dE1lbnVDb21wb25lbnQsXG4gIEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQsXG4gIEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQsXG4gIEFYTWVudUl0ZW0sXG4gIEFYTWVudU1vZHVsZSxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29yZU1vZHVsZSwgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0LCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC93aWRnZXQtZGVzaWduZXItcmVuZGVyZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFYUERlc2lnbmVyV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnR5cGVzJztcbmltcG9ydCB7IEFYUF9ERVNJR05FUl9TRUxFQ1RfV0lER0VUX01FTlUgfSBmcm9tICcuLi8uLi9zaGFyZWQvZ2VuZXJpYy1jb21tYW5kcy50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1ib2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhQV2lkZ2V0Q29yZU1vZHVsZSwgQVhQV2lkZ2V0RGVzaWduZXJSZW5kZXJlckRpcmVjdGl2ZSwgQVhNZW51TW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lckJvYXJkQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnY29udGV4dE1lbnUnKVxuICBwcm90ZWN0ZWQgY29udGV4dE1lbnU6IEFYQ29udGV4dE1lbnVDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIGNvbnRleHQ6IGFueSA9IHt9O1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pIGFzIEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgYnJlYWtwb2ludE1hcCA9IHtcbiAgICBzbTogNjQwLFxuICAgIG1kOiA3NjgsXG4gICAgbGc6IDEwMjQsXG4gICAgeGw6IDEyODAsXG4gICAgeHhsOiAxNTM2LFxuICB9O1xuXG4gIC8vIFVuaWZpZWQgbWV0aG9kIHRvIGV4dHJhY3QgbWVkaWEgcXVlcmllcyBhbmQgY3JlYXRlIGEgY3VzdG9tIGNsYXNzXG4gIGFwcGx5UmVzcG9uc2l2ZVN0eWxlcyhicmVha3BvaW50OiBzdHJpbmcpIHtcbiAgICBjb25zdCBtaW5XaWR0aCA9IGdldCh0aGlzLmJyZWFrcG9pbnRNYXAsIGJyZWFrcG9pbnQpIGFzIG51bWJlcjtcbiAgICBjb25zdCBtZWRpYVJ1bGVzID0gW107XG5cbiAgICAvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBzdHlsZXNoZWV0c1xuICAgIGZvciAoY29uc3Qgc2hlZXQgb2YgQXJyYXkuZnJvbShkb2N1bWVudC5zdHlsZVNoZWV0cykpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCBDU1MgcnVsZXNcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIEFycmF5LmZyb20oc2hlZXQuY3NzUnVsZXMpKSB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHJ1bGUgaXMgYSBDU1NNZWRpYVJ1bGVcbiAgICAgICAgICBpZiAocnVsZSBpbnN0YW5jZW9mIENTU01lZGlhUnVsZSAmJiBydWxlLm1lZGlhLm1lZGlhVGV4dC5pbmNsdWRlcyhgbWluLXdpZHRoOiAke21pbldpZHRofXB4YCkpIHtcbiAgICAgICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgbWVkaWEgcnVsZSdzIENTUyBydWxlc1xuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJSdWxlIG9mIEFycmF5LmZyb20ocnVsZS5jc3NSdWxlcykpIHtcbiAgICAgICAgICAgICAgbWVkaWFSdWxlcy5wdXNoKHN1YlJ1bGUuY3NzVGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFjY2Vzc2luZyBzdHlsZXNoZWV0OicsIGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENyZWF0ZSBhIGR5bmFtaWMgY2xhc3MgZm9yIHRoZSBtZWRpYSBxdWVyaWVzXG4gICAgdGhpcy5jcmVhdGVDdXN0b21DbGFzcyhgYXhwLXByZXZpZXctJHticmVha3BvaW50fWAsIG1lZGlhUnVsZXMsIGJyZWFrcG9pbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDdXN0b21DbGFzcyhjbGFzc05hbWU6IHN0cmluZywgc3R5bGVzOiBzdHJpbmdbXSwgYnJlYWtwb2ludDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc3R5bGVTaGVldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGVTaGVldC5zZXRBdHRyaWJ1dGUoJ2RhdGEtc2NyZWVuJywgYnJlYWtwb2ludCk7XG5cbiAgICAvLyBDb25zdHJ1Y3QgYSBwdXJlIENTUyBzdHJpbmcsIGR5bmFtaWNhbGx5IHJlcGxhY2luZyB0aGUgYnJlYWtwb2ludCBwcmVmaXhcbiAgICBsZXQgc3R5bGVTdHJpbmcgPSAnJztcbiAgICBzdHlsZXMuZm9yRWFjaCgoc3R5bGUpID0+IHtcbiAgICAgIC8vIFJlcGxhY2UgYW55IHByZWZpeGVkIGNsYXNzZXMgbGlrZSAnbGc6JyBvciAnbWQ6JyBkeW5hbWljYWxseVxuICAgICAgY29uc3QgZHluYW1pY1ByZWZpeCA9IG5ldyBSZWdFeHAoYFxcXFwuJHticmVha3BvaW50fVxcXFxcXFxcOmAsICdnJyk7XG4gICAgICBzdHlsZVN0cmluZyArPSBgLiR7Y2xhc3NOYW1lfSAke3N0eWxlLnJlcGxhY2UoZHluYW1pY1ByZWZpeCwgJy4nKX1gOyAvLyBSZXBsYWNlIHRoZSBicmVha3BvaW50IHByZWZpeFxuICAgIH0pO1xuXG4gICAgc3R5bGVTaGVldC5pbm5lclRleHQgPSBzdHlsZVN0cmluZztcbiAgICB0aGlzLnJlbW92ZUN1c3RvbUNsYXNzKCk7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoc3R5bGVTaGVldCk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUN1c3RvbUNsYXNzKCkge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJykuZm9yRWFjaCgocykgPT4gcy5yZW1vdmUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCB3aWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMuc2VydmljZS5zaXplKCkpIHtcbiAgICAgIGNhc2UgJ3NtJzpcbiAgICAgICAgcmV0dXJuICczNDBweCc7XG4gICAgICBjYXNlICdtZCc6XG4gICAgICBjYXNlICdsZyc6XG4gICAgICAgIHJldHVybiAnNzY4cHgnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcxMDAlJztcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgZWYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMucmVtb3ZlQ3VzdG9tQ2xhc3MoKTtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLnNpemUoKSAhPSAneGwnKSB7XG4gICAgICB0aGlzLmFwcGx5UmVzcG9uc2l2ZVN0eWxlcyh0aGlzLnNlcnZpY2Uuc2l6ZSgpKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNlcnZpY2Uub25SZWZyZXNoLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNvbnRleHRNZW51Py5yZWZyZXNoKCk7XG4gICAgfSk7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb250ZXh0TWVudU9wZW5pbmcoZTogQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudCkge1xuICAgIGNvbnN0IHJlbmRlcmVyID0gZ2V0KGUudGFyZ2V0RWxlbWVudCwgJ19fbWV0YV9fLnJlbmRlcmVyJykgYXMgdW5rbm93biBhcyBBWFBXaWRnZXREZXNpZ25lclJlbmRlcmVyRGlyZWN0aXZlO1xuICAgIGNvbnN0IGluc3RhbmNlID0gZ2V0KGUudGFyZ2V0RWxlbWVudCwgJ19fbWV0YV9fLmluc3RhbmNlJykgYXMgdW5rbm93biBhcyBBWFBEZXNpZ25lcldpZGdldENvbXBvbmVudDtcblxuICAgIGlmICghcmVuZGVyZXIgfHwgIWluc3RhbmNlKSB7XG4gICAgICBlLmNhbmNlbGVkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZW5kZXJlci5zZWxlY3QoKTtcblxuICAgIC8vIEZldGNoIGNvbnRleHQgbWVudSBpdGVtcyBmb3IgdGhlIGN1cnJlbnQgaW5zdGFuY2VcbiAgICB0cnkge1xuICAgICAgY29uc3QgaXRlbXM6IEFYTWVudUl0ZW1bXSA9IHRoaXMuc2VydmljZS5nZXRDb250ZXh0TWVudUl0ZW1zKGluc3RhbmNlLCB0cnVlKTtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgZS5pdGVtcy5wdXNoKC4uLml0ZW1zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGUuY2FuY2VsZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZ2V0IGNvbnRleHQgbWVudSBpdGVtczonLCBlcnJvcik7XG4gICAgICBlLmNhbmNlbGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBSZWN1cnNpdmVseSBiaW5kIGluc3RhbmNlIGRhdGEgdG8gYWxsIGl0ZW1zXG4gICAgdGhpcy5iaW5kSW5zdGFuY2VUb0l0ZW1zKGUuaXRlbXMsIGluc3RhbmNlKTtcblxuICAgIC8vIFRyYXZlcnNlIHRocm91Z2ggcGFyZW50cyBhbmQgYWRkIHRoZWlyIG1lbnUgaXRlbXMgZGlyZWN0bHkgdG8gdGhlIHJvb3QgbGV2ZWxcbiAgICB0aGlzLmFkZFBhcmVudHNUb1Jvb3RNZW51KGluc3RhbmNlLCBlLml0ZW1zKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBhZGRQYXJlbnRzVG9Sb290TWVudShpbnN0YW5jZTogQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQsIGl0ZW1zOiBBWE1lbnVJdGVtW10pIHtcbiAgICBsZXQgcGFyZW50ID0gKGluc3RhbmNlIGFzIHVua25vd24gYXMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQpPy5wYXJlbnQ7XG4gICAgY29uc3QgcGFyZW50SXRlbXM6IEFYTWVudUl0ZW1bXSA9IFtdO1xuXG4gICAgLy8gVHJhdmVyc2UgdXAgdGhlIHBhcmVudCBjaGFpbiwgYWRkaW5nIGVhY2ggcGFyZW50IHRvIHRoZSBcIlBhcmVudHNcIiBtZW51XG4gICAgd2hpbGUgKHBhcmVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgd2lkZ2V0ID0gcGFyZW50IGFzIHVua25vd24gYXMgQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQ7XG4gICAgICAgIGNvbnN0IHBhcmVudENvbnRleHRJdGVtczogQVhNZW51SXRlbVtdID0gdGhpcy5zZXJ2aWNlLmdldENvbnRleHRNZW51SXRlbXMod2lkZ2V0KTtcblxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgbWVudSBpdGVtIGZvciB0aGlzIHBhcmVudFxuICAgICAgICBjb25zdCBwYXJlbnRNZW51SXRlbTogQVhNZW51SXRlbSA9IHtcbiAgICAgICAgICB0ZXh0OiBwYXJlbnQuY29uZmlnLnRpdGxlLFxuICAgICAgICAgIGljb246IHBhcmVudC5jb25maWcuaWNvbixcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXh0OiAnU2VsZWN0JyxcbiAgICAgICAgICAgICAgbmFtZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgIGJyZWFrOiB0cnVlLFxuICAgICAgICAgICAgICBpY29uOiAnZmEtc29saWQgZmEtYXJyb3ctcG9pbnRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4ucGFyZW50Q29udGV4dEl0ZW1zLFxuICAgICAgICAgIF0sXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgYmluZCBpbnN0YW5jZSBkYXRhIHRvIGFsbCBpdGVtc1xuICAgICAgICB0aGlzLmJpbmRJbnN0YW5jZVRvSXRlbXMocGFyZW50TWVudUl0ZW0uaXRlbXMgPz8gW10sIHdpZGdldCk7XG5cbiAgICAgICAgLy8gQWRkIHRoZSBwYXJlbnQgbWVudSBpdGVtIHRvIHRoZSBwYXJlbnRJdGVtcyBhcnJheVxuICAgICAgICBwYXJlbnRJdGVtcy5wdXNoKHBhcmVudE1lbnVJdGVtKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBnZXQgcGFyZW50IGNvbnRleHQgbWVudSBpdGVtczonLCBlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIC8vIE1vdmUgdG8gdGhlIG5leHQgcGFyZW50IGluIHRoZSBjaGFpblxuICAgICAgcGFyZW50ID0gKHBhcmVudCBhcyB1bmtub3duIGFzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50KT8ucGFyZW50O1xuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgcGFyZW50IGl0ZW1zLCBhZGQgdGhlbSB1bmRlciBhIFwiUGFyZW50c1wiIGdyb3VwXG4gICAgaWYgKHBhcmVudEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLmJyZWFrID0gdHJ1ZTtcbiAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICB0ZXh0OiAnUGFyZW50cycsXG4gICAgICAgIGljb246ICdmYS1zb2xpZCBmYS10dXJuLXVwJywgLy8gSWNvbiBmb3IgdGhlIFwiUGFyZW50c1wiIGdyb3VwXG4gICAgICAgIGl0ZW1zOiBwYXJlbnRJdGVtcywgLy8gQWRkIGFsbCBwYXJlbnQgaXRlbXMgaGVyZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNvbnRleHRNZW51SXRlbUNsaWNrKGU6IEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQpIHtcbiAgICBpZiAoZS5pdGVtLm5hbWUpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBBWFBEZXNpZ25lcldpZGdldENvbXBvbmVudCA9IGdldChlLml0ZW0uZGF0YSwgXCJpbnN0YW5jZVwiKSBhcyB1bmtub3duIGFzIEFYUERlc2lnbmVyV2lkZ2V0Q29tcG9uZW50O1xuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmV4ZWN1dGVDb21tYW5kKHsgaW5zdGFuY2UsIG5hbWU6IGUuaXRlbS5uYW1lIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmluZEluc3RhbmNlVG9JdGVtcyhpdGVtczogQVhNZW51SXRlbVtdLCBpbnN0YW5jZTogQVhQRGVzaWduZXJXaWRnZXRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgLy8gRW5zdXJlIGVhY2ggaXRlbSBnZXRzIHRoZSBjb3JyZWN0IGluc3RhbmNlXG4gICAgICBpdGVtLmRhdGEgPSB7IC4uLihpdGVtLmRhdGEgPz8ge30pLCBpbnN0YW5jZSB9O1xuXG4gICAgICAvLyBJZiB0aGUgaXRlbSBoYXMgc3ViLWl0ZW1zLCBiaW5kIGluc3RhbmNlIHRvIHRoZW0gcmVjdXJzaXZlbHlcbiAgICAgIGlmIChpdGVtLml0ZW1zKSB7XG4gICAgICAgIHRoaXMuYmluZEluc3RhbmNlVG9JdGVtcyhpdGVtLml0ZW1zLCBpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcbiAgcHJpdmF0ZSBnZXQgX19zdHlsZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsczogYW55ID0ge307XG4gICAgY2xzW2B3aWR0aGBdID0gdGhpcy53aWR0aCgpO1xuICAgIGNsc1tgbWF4LXdpZHRoYF0gPSAnMTI4MHB4JztcbiAgICByZXR1cm4gY2xzO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9fY2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIGNsc1tgYXhwLWRlc2lnbmVyLWJvYXJkYF0gPSB0cnVlO1xuICAgIGNsc1tgYXhwLXN0YXRlLWRlc2lnbmBdID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LWgtZnVsbCddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LW92ZXJmbG93LWF1dG8nXSA9IHRydWU7XG4gICAgY2xzW2BheHAtcHJldmlldy0ke3RoaXMuc2VydmljZS5zaXplKCl9YF0gPSB0cnVlO1xuICAgIHJldHVybiBjbHM7XG4gIH1cbn1cbiIsIjxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwiY29udGV4dFwiPlxuICA8bmctY29udGFpbmVyIGF4cC13aWRnZXQtZGVzaWduZXItcmVuZGVyZXIgW25vZGVdPVwic2VydmljZS5jdXJyZW50UGFnZSgpXCIgW21vZGVdPVwiJ2Rlc2lnbmVyJ1wiPjwvbmctY29udGFpbmVyPlxuPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG5cbjxheC1jb250ZXh0LW1lbnUgY2xhc3M9XCJheC1kYXJrXCIgI2NvbnRleHRNZW51IFt0YXJnZXRdPVwiJy5heHAtd2lkZ2V0LWhvc3QnXCIgW29yaWVudGF0aW9uXT1cIid2ZXJ0aWNhbCdcIlxuICBbY2xvc2VPbl09XCInbGVhdmUnXCIgKG9uT3BlbmluZyk9XCJoYW5kbGVDb250ZXh0TWVudU9wZW5pbmcoJGV2ZW50KVwiIChvbkl0ZW1DbGljayk9XCJoYW5kbGVDb250ZXh0TWVudUl0ZW1DbGljaygkZXZlbnQpXCI+XG48L2F4LWNvbnRleHQtbWVudT4iXX0=","import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/breadcrumbs\";\nexport class AXPDesignerBreadcrumbsComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n }\n getTitle(node) {\n return get(node, '__meta__.config.title');\n }\n handleClick(node) {\n this.service.select({ widget: node });\n }\n handleMouseOver(node) {\n this.service.focus({ widget: node });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerBreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDesignerBreadcrumbsComponent, isStandalone: true, selector: \"axp-designer-breadcrumbs\", ngImport: i0, template: `\n <ax-breadcrumbs>\n @for( b of service.breadcrumbs();track $index){\n <ax-breadcrumbs-item>\n <a (click)=\"handleClick(b)\" (mouseover)=\"handleMouseOver(b)\"> {{ getTitle(b) }}</a>\n </ax-breadcrumbs-item>\n }\n <ng-template #divider>\n <i class=\"ax-icon ax-icon-chevron-right\"></i>\n </ng-template>\n </ax-breadcrumbs>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"ngmodule\", type: AXBreadcrumbsModule }, { kind: \"component\", type: i1.AXBreadCrumbsComponent, selector: \"ax-breadcrumbs\" }, { kind: \"component\", type: i1.AXBreadCrumbsItemComponent, selector: \"ax-breadcrumbs-item\", inputs: [\"disabled\", \"active\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerBreadcrumbsComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-designer-breadcrumbs',\n template: `\n <ax-breadcrumbs>\n @for( b of service.breadcrumbs();track $index){\n <ax-breadcrumbs-item>\n <a (click)=\"handleClick(b)\" (mouseover)=\"handleMouseOver(b)\"> {{ getTitle(b) }}</a>\n </ax-breadcrumbs-item>\n }\n <ng-template #divider>\n <i class=\"ax-icon ax-icon-chevron-right\"></i>\n </ng-template>\n </ax-breadcrumbs>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXPWidgetCoreModule, AXBreadcrumbsModule, AXDecoratorModule]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQWlCLE1BQU0scUNBQXFDLENBQUM7QUFFekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBb0JuRSxNQUFNLE9BQU8sK0JBQStCO0lBbEI1QztRQW1CWSxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FhaEQ7SUFYVyxRQUFRLENBQUMsSUFBbUI7UUFDcEMsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLHVCQUF1QixDQUFrQixDQUFDO0lBQzdELENBQUM7SUFFUyxXQUFXLENBQUMsSUFBbUI7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVMsZUFBZSxDQUFDLElBQW1CO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0FiVSwrQkFBK0I7bUdBQS9CLCtCQUErQixvRkFoQjlCOzs7Ozs7Ozs7OztHQVdYLDJEQUdXLG1CQUFtQiw4QkFBRSxtQkFBbUIsK09BQUUsaUJBQWlCOzs0RkFFNUQsK0JBQStCO2tCQWxCM0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0dBV1g7b0JBQ0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQztpQkFDekUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JyZWFkY3J1bWJzJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29yZU1vZHVsZSwgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUERlc2lnbmVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9kZXNpZ25lci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItYnJlYWRjcnVtYnMnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGF4LWJyZWFkY3J1bWJzPlxuICAgICAgQGZvciggYiBvZiBzZXJ2aWNlLmJyZWFkY3J1bWJzKCk7dHJhY2sgJGluZGV4KXtcbiAgICAgIDxheC1icmVhZGNydW1icy1pdGVtPlxuICAgICAgICA8YSAoY2xpY2spPVwiaGFuZGxlQ2xpY2soYilcIiAobW91c2VvdmVyKT1cImhhbmRsZU1vdXNlT3ZlcihiKVwiPiB7eyBnZXRUaXRsZShiKSB9fTwvYT5cbiAgICAgIDwvYXgtYnJlYWRjcnVtYnMtaXRlbT5cbiAgICAgIH1cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGl2aWRlcj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1yaWdodFwiPjwvaT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9heC1icmVhZGNydW1icz5cbiAgYCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtBWFBXaWRnZXRDb3JlTW9kdWxlLCBBWEJyZWFkY3J1bWJzTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJCcmVhZGNydW1ic0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGdldFRpdGxlKG5vZGU6IEFYUFdpZGdldE5vZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXQobm9kZSwgJ19fbWV0YV9fLmNvbmZpZy50aXRsZScpIGFzIGFueSBhcyBzdHJpbmc7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2sobm9kZTogQVhQV2lkZ2V0Tm9kZSkge1xuICAgIHRoaXMuc2VydmljZS5zZWxlY3QoeyB3aWRnZXQ6IG5vZGUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlTW91c2VPdmVyKG5vZGU6IEFYUFdpZGdldE5vZGUpIHtcbiAgICB0aGlzLnNlcnZpY2UuZm9jdXMoeyB3aWRnZXQ6IG5vZGUgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nexport class AXPLayoutDesignerDrawerContentComponent {\n constructor() { }\n ngOnInit() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerDrawerContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPLayoutDesignerDrawerContentComponent, isStandalone: true, selector: \"axp-designer-drawer-content\", ngImport: i0, template: \"<div class=\\\"ax-flex ax-flex-col ax-border-e ax-w-72 ax-h-full\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-p-2 ax-border-b\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-gap-2 ax-items-center ax-font-semibold\\\">\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n </div>\\n <div class=\\\"ax-flex ax-gap-1 ax-items-center\\\">\\n <ng-content select=\\\"ax-content[header]\\\">\\n </ng-content>\\n <ax-close-button></ax-close-button>\\n </div>\\n </div>\\n <div class=\\\"ax-flex-1 ax-h-full ax-overflow-auto\\\">\\n <ng-content select=\\\"ax-content[body]\\\">\\n\\n </ng-content>\\n </div>\\n</div>\", dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorCloseButtonComponent, selector: \"ax-close-button\", inputs: [\"closeAll\", \"icon\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerDrawerContentComponent, decorators: [{\n type: Component,\n args: [{ imports: [AXDecoratorModule], selector: 'axp-designer-drawer-content', template: \"<div class=\\\"ax-flex ax-flex-col ax-border-e ax-w-72 ax-h-full\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-p-2 ax-border-b\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-gap-2 ax-items-center ax-font-semibold\\\">\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n </div>\\n <div class=\\\"ax-flex ax-gap-1 ax-items-center\\\">\\n <ng-content select=\\\"ax-content[header]\\\">\\n </ng-content>\\n <ax-close-button></ax-close-button>\\n </div>\\n </div>\\n <div class=\\\"ax-flex-1 ax-h-full ax-overflow-auto\\\">\\n <ng-content select=\\\"ax-content[body]\\\">\\n\\n </ng-content>\\n </div>\\n</div>\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9zaGFyZWQvZHJhd2VyLWNvbnRlbnQvZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9zaGFyZWQvZHJhd2VyLWNvbnRlbnQvZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBUWxELE1BQU0sT0FBTyx1Q0FBdUM7SUFDaEQsZ0JBQWdCLENBQUM7SUFFakIsUUFBUSxLQUFLLENBQUM7K0dBSEwsdUNBQXVDO21HQUF2Qyx1Q0FBdUMsdUZDVnBELGtyQkFnQk0sMkNEWFEsaUJBQWlCOzs0RkFLbEIsdUNBQXVDO2tCQU5uRCxTQUFTOzhCQUNHLENBQUMsaUJBQWlCLENBQUMsWUFDbEIsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtBWERlY29yYXRvck1vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgbmdPbkluaXQoKSB7IH1cbn0iLCI8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1ib3JkZXItZSBheC13LTcyIGF4LWgtZnVsbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LXctZnVsbCBheC1qdXN0aWZ5LWJldHdlZW4gIGF4LXAtMiBheC1ib3JkZXItYlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LXJvdyBheC1nYXAtMiBheC1pdGVtcy1jZW50ZXIgYXgtZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMSBheC1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWNvbnRlbnRbaGVhZGVyXVwiPlxuICAgICAgICAgICAgPC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPGF4LWNsb3NlLWJ1dHRvbj48L2F4LWNsb3NlLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXgtMSBheC1oLWZ1bGwgYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1jb250ZW50W2JvZHldXCI+XG5cbiAgICAgICAgPC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19","import { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPDesignerService } from '../../../shared/designer.service';\nimport { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXPDataSourceDefinitionProviderService } from '@acorex/platform/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/button\";\nexport class AXPDesignerDataSourcesComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n this.workflow = inject(AXPWorkflowService);\n this.dataSourceProvider = inject(AXPDataSourceDefinitionProviderService);\n this.list = signal([], ...(ngDevMode ? [{ debugName: \"list\" }] : []));\n }\n async ngOnInit() {\n const items = (await this.dataSourceProvider.items()).map(c => ({ name: c.name, title: c.title }));\n this.list.set(items);\n }\n async handleAddClick() {\n this.workflow.execute('create-entity', {\n entity: `PlatformManagement.DataSource`,\n options: {\n process: {\n canCreateNewOne: false,\n redirect: false,\n },\n layout: {\n size: 'lg'\n }\n },\n metadata: {\n formBuilder: true\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerDataSourcesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDesignerDataSourcesComponent, isStandalone: true, selector: \"axp-designer-data-sources\", ngImport: i0, template: \"<axp-designer-drawer-content>\\n <ax-title>Data Sources</ax-title>\\n\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" title=\\\"Add New Data Source\\\" (onClick)=\\\"handleAddClick()\\\">\\n <ax-icon class=\\\"fa-light fa-plus\\\"></ax-icon>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @if (list().length) {\\n <ul class=\\\"axp-designer-drawer-list\\\">\\n @for (item of list(); track $index) {\\n <li>\\n <i class=\\\"ax-me-1 fa-solid fa-table\\\"></i>\\n {{ item.title }}\\n </li>\\n }\\n </ul>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-database\\\"\\n [title]=\\\"'@layout-designer:components.data-sources.empty-states.no-data-sources.title'\\\"\\n [description]=\\\"'@layout-designer:components.data-sources.empty-states.no-data-sources.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\", dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXPLayoutDesignerDrawerContentComponent, selector: \"axp-designer-drawer-content\" }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerDataSourcesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-data-sources', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n AXDecoratorModule,\n AXButtonModule,\n AXPLayoutDesignerDrawerContentComponent,\n AXPStateMessageComponent\n ], template: \"<axp-designer-drawer-content>\\n <ax-title>Data Sources</ax-title>\\n\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" title=\\\"Add New Data Source\\\" (onClick)=\\\"handleAddClick()\\\">\\n <ax-icon class=\\\"fa-light fa-plus\\\"></ax-icon>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @if (list().length) {\\n <ul class=\\\"axp-designer-drawer-list\\\">\\n @for (item of list(); track $index) {\\n <li>\\n <i class=\\\"ax-me-1 fa-solid fa-table\\\"></i>\\n {{ item.title }}\\n </li>\\n }\\n </ul>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-database\\\"\\n [title]=\\\"'@layout-designer:components.data-sources.empty-states.no-data-sources.title'\\\"\\n [description]=\\\"'@layout-designer:components.data-sources.empty-states.no-data-sources.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9kcmF3ZXJzL2RhdGEtc291cmNlcy9kYXRhLXNvdXJjZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvZGF0YS1zb3VyY2VzL2RhdGEtc291cmNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBZS9FLE1BQU0sT0FBTywrQkFBK0I7SUFiNUM7UUFlYyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBRXBFLFNBQUksR0FBRyxNQUFNLENBQW9DLEVBQUUsZ0RBQUMsQ0FBQztLQStCbEU7SUE1QkcsS0FBSyxDQUFDLFFBQVE7UUFDVixNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFHUyxLQUFLLENBQUMsY0FBYztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQ2pDO1lBQ0ksTUFBTSxFQUFFLCtCQUErQjtZQUN2QyxPQUFPLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFO29CQUNMLGVBQWUsRUFBRSxLQUFLO29CQUN0QixRQUFRLEVBQUUsS0FBSztpQkFDbEI7Z0JBQ0QsTUFBTSxFQUFFO29CQUNKLElBQUksRUFBRSxJQUFJO2lCQUNiO2FBQ0o7WUFDRCxRQUFRLEVBQUU7Z0JBQ04sV0FBVyxFQUFFLElBQUk7YUFDcEI7U0FDSixDQUVKLENBQUE7SUFDTCxDQUFDOytHQWxDUSwrQkFBK0I7bUdBQS9CLCtCQUErQixxRkN2QjVDLG84QkE2QkEsMkNEYlEsaUJBQWlCLHNWQUNqQixjQUFjLDhYQUNkLHVDQUF1Qyx3RUFDdkMsd0JBQXdCOzs0RkFJbkIsK0JBQStCO2tCQWIzQyxTQUFTOytCQUNJLDJCQUEyQixpQkFFdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDTCxpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsdUNBQXVDO3dCQUN2Qyx3QkFBd0I7cUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYUFN0YXRlTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RyYXdlci1jb250ZW50L2RyYXdlci1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUERhdGFTb3VyY2VEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtZGVzaWduZXItZGF0YS1zb3VyY2VzJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RhdGEtc291cmNlcy5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnRcbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJEYXRhU291cmNlc0NvbXBvbmVudCB7XG5cbiAgICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xuICAgIHByb3RlY3RlZCB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBkYXRhU291cmNlUHJvdmlkZXIgPSBpbmplY3QoQVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlclNlcnZpY2UpO1xuXG4gICAgcHJvdGVjdGVkIGxpc3QgPSBzaWduYWw8eyBuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcgfVtdPihbXSk7XG5cblxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IChhd2FpdCB0aGlzLmRhdGFTb3VyY2VQcm92aWRlci5pdGVtcygpKS5tYXAoYyA9PiAoeyBuYW1lOiBjLm5hbWUsIHRpdGxlOiBjLnRpdGxlIH0pKTtcbiAgICAgICAgdGhpcy5saXN0LnNldChpdGVtcyk7XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQWRkQ2xpY2soKSB7XG4gICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW50aXR5OiBgUGxhdGZvcm1NYW5hZ2VtZW50LkRhdGFTb3VyY2VgLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FuQ3JlYXRlTmV3T25lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAnbGcnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1CdWlsZGVyOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIClcbiAgICB9XG5cblxufSIsIjxheHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQ+XG4gIDxheC10aXRsZT5EYXRhIFNvdXJjZXM8L2F4LXRpdGxlPlxuXG4gIDxheC1jb250ZW50IGhlYWRlcj5cbiAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIGNsYXNzPVwiYXgtc21cIiB0aXRsZT1cIkFkZCBOZXcgRGF0YSBTb3VyY2VcIiAob25DbGljayk9XCJoYW5kbGVBZGRDbGljaygpXCI+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0IGZhLXBsdXNcIj48L2F4LWljb24+XG4gICAgPC9heC1idXR0b24+XG4gIDwvYXgtY29udGVudD5cblxuICA8YXgtY29udGVudCBib2R5PlxuICAgIEBpZiAobGlzdCgpLmxlbmd0aCkge1xuICAgICAgPHVsIGNsYXNzPVwiYXhwLWRlc2lnbmVyLWRyYXdlci1saXN0XCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgbGlzdCgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8bGk+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LW1lLTEgZmEtc29saWQgZmEtdGFibGVcIj48L2k+XG4gICAgICAgICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgfVxuICAgICAgPC91bD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxheHAtc3RhdGUtbWVzc2FnZVxuICAgICAgICBpY29uPVwiZmEtbGlnaHQgZmEtZGF0YWJhc2VcIlxuICAgICAgICBbdGl0bGVdPVwiJ0BsYXlvdXQtZGVzaWduZXI6Y29tcG9uZW50cy5kYXRhLXNvdXJjZXMuZW1wdHktc3RhdGVzLm5vLWRhdGEtc291cmNlcy50aXRsZSdcIlxuICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ0BsYXlvdXQtZGVzaWduZXI6Y29tcG9uZW50cy5kYXRhLXNvdXJjZXMuZW1wdHktc3RhdGVzLm5vLWRhdGEtc291cmNlcy5kZXNjcmlwdGlvbidcIlxuICAgICAgPlxuICAgICAgPC9heHAtc3RhdGUtbWVzc2FnZT5cbiAgICB9XG4gIDwvYXgtY29udGVudD5cbjwvYXhwLWRlc2lnbmVyLWRyYXdlci1jb250ZW50PlxuIl19","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';\nimport { AXPDesignerService } from '../../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/dropdown\";\nexport class AXPDesignerHistoryComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDesignerHistoryComponent, isStandalone: true, selector: \"axp-designer-history\", ngImport: i0, template: \"<axp-designer-drawer-content>\\n <ax-title>History</ax-title>\\n\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\">\\n <ax-icon class=\\\"fa-light fa-ellipsis\\\"></ax-icon>\\n <ax-dropdown-panel class=\\\"ax-sm\\\">\\n <ax-button-item-list>\\n <ax-button-item text=\\\"Clear\\\" name=\\\"add\\\" (onClick)=\\\"service.clearHistory()\\\"> </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @if (service.history().length) {\\n <ul class=\\\"axp-designer-drawer-list\\\">\\n @for (step of service.history(); track $index) {\\n <li\\n (click)=\\\"service.navigateTo($index)\\\"\\n [class.ax-italic]=\\\"step.isFuture\\\"\\n [class.ax-text-neutral-400]=\\\"step.isFuture\\\"\\n [class.ax-state-selected]=\\\"step.isCurrent\\\"\\n >\\n <i class=\\\"ax-me-1\\\" [ngClass]=\\\"step.icon\\\"></i>\\n {{ step.description }}\\n </li>\\n }\\n </ul>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-history\\\"\\n [title]=\\\"'@layout-designer:components.history.empty-states.no-changes.title'\\\"\\n [description]=\\\"'@layout-designer:components.history.empty-states.no-changes.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i3.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i3.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i3.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i4.AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"component\", type: AXPLayoutDesignerDrawerContentComponent, selector: \"axp-designer-drawer-content\" }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerHistoryComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-history', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXDropdownModule,\n AXPLayoutDesignerDrawerContentComponent,\n AXPStateMessageComponent\n ], template: \"<axp-designer-drawer-content>\\n <ax-title>History</ax-title>\\n\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\">\\n <ax-icon class=\\\"fa-light fa-ellipsis\\\"></ax-icon>\\n <ax-dropdown-panel class=\\\"ax-sm\\\">\\n <ax-button-item-list>\\n <ax-button-item text=\\\"Clear\\\" name=\\\"add\\\" (onClick)=\\\"service.clearHistory()\\\"> </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @if (service.history().length) {\\n <ul class=\\\"axp-designer-drawer-list\\\">\\n @for (step of service.history(); track $index) {\\n <li\\n (click)=\\\"service.navigateTo($index)\\\"\\n [class.ax-italic]=\\\"step.isFuture\\\"\\n [class.ax-text-neutral-400]=\\\"step.isFuture\\\"\\n [class.ax-state-selected]=\\\"step.isCurrent\\\"\\n >\\n <i class=\\\"ax-me-1\\\" [ngClass]=\\\"step.icon\\\"></i>\\n {{ step.description }}\\n </li>\\n }\\n </ul>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-history\\\"\\n [title]=\\\"'@layout-designer:components.history.empty-states.no-changes.title'\\\"\\n [description]=\\\"'@layout-designer:components.history.empty-states.no-changes.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvZHJhd2Vycy9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvaGlzdG9yeS9oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQWlCdEUsTUFBTSxPQUFPLDJCQUEyQjtJQWZ4QztRQWdCYyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDbEQ7K0dBRlksMkJBQTJCO21HQUEzQiwyQkFBMkIsZ0ZDeEJ4Qyw4MkNBdUNBLDJDRHhCUSxZQUFZLDRIQUNaLGlCQUFpQixzVkFDakIsY0FBYyxvdUJBQ2QsZ0JBQWdCLHNRQUNoQix1Q0FBdUMsd0VBQ3ZDLHdCQUF3Qjs7NEZBSW5CLDJCQUEyQjtrQkFmdkMsU0FBUzsrQkFDSSxzQkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ0wsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQix1Q0FBdUM7d0JBQ3ZDLHdCQUF3QjtxQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzJztcbmltcG9ydCB7IEFYUExheW91dERlc2lnbmVyRHJhd2VyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kcmF3ZXItY29udGVudC9kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1oaXN0b3J5JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2hpc3RvcnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICAgICAgQVhQTGF5b3V0RGVzaWduZXJEcmF3ZXJDb250ZW50Q29tcG9uZW50LFxuICAgICAgICBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnRcbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJIaXN0b3J5Q29tcG9uZW50IHtcbiAgICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWFBEZXNpZ25lclNlcnZpY2UpO1xufSIsIjxheHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQ+XG4gIDxheC10aXRsZT5IaXN0b3J5PC9heC10aXRsZT5cblxuICA8YXgtY29udGVudCBoZWFkZXI+XG4gICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCI+XG4gICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0IGZhLWVsbGlwc2lzXCI+PC9heC1pY29uPlxuICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsIGNsYXNzPVwiYXgtc21cIj5cbiAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJDbGVhclwiIG5hbWU9XCJhZGRcIiAob25DbGljayk9XCJzZXJ2aWNlLmNsZWFySGlzdG9yeSgpXCI+IDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgPC9heC1idXR0b24+XG4gIDwvYXgtY29udGVudD5cblxuICA8YXgtY29udGVudCBib2R5PlxuICAgIEBpZiAoc2VydmljZS5oaXN0b3J5KCkubGVuZ3RoKSB7XG4gICAgICA8dWwgY2xhc3M9XCJheHAtZGVzaWduZXItZHJhd2VyLWxpc3RcIj5cbiAgICAgICAgQGZvciAoc3RlcCBvZiBzZXJ2aWNlLmhpc3RvcnkoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAoY2xpY2spPVwic2VydmljZS5uYXZpZ2F0ZVRvKCRpbmRleClcIlxuICAgICAgICAgICAgW2NsYXNzLmF4LWl0YWxpY109XCJzdGVwLmlzRnV0dXJlXCJcbiAgICAgICAgICAgIFtjbGFzcy5heC10ZXh0LW5ldXRyYWwtNDAwXT1cInN0ZXAuaXNGdXR1cmVcIlxuICAgICAgICAgICAgW2NsYXNzLmF4LXN0YXRlLXNlbGVjdGVkXT1cInN0ZXAuaXNDdXJyZW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LW1lLTFcIiBbbmdDbGFzc109XCJzdGVwLmljb25cIj48L2k+XG4gICAgICAgICAgICB7eyBzdGVwLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgfVxuICAgICAgPC91bD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxheHAtc3RhdGUtbWVzc2FnZVxuICAgICAgICBpY29uPVwiZmEtbGlnaHQgZmEtaGlzdG9yeVwiXG4gICAgICAgIFt0aXRsZV09XCInQGxheW91dC1kZXNpZ25lcjpjb21wb25lbnRzLmhpc3RvcnkuZW1wdHktc3RhdGVzLm5vLWNoYW5nZXMudGl0bGUnXCJcbiAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIidAbGF5b3V0LWRlc2lnbmVyOmNvbXBvbmVudHMuaGlzdG9yeS5lbXB0eS1zdGF0ZXMubm8tY2hhbmdlcy5kZXNjcmlwdGlvbidcIlxuICAgICAgPlxuICAgICAgPC9heHAtc3RhdGUtbWVzc2FnZT5cbiAgICB9XG4gIDwvYXgtY29udGVudD5cbjwvYXhwLWRlc2lnbmVyLWRyYXdlci1jb250ZW50PlxuIl19","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { merge } from 'rxjs';\nimport { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';\nimport { AXPDesignerService } from '../../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/decorators\";\nexport class AXPDesignerOutlineComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n this.collapsedStates = new Map();\n this.root = signal(this.getTree(), ...(ngDevMode ? [{ debugName: \"root\" }] : []));\n merge(this.service.onRefresh, this.service.onUpdate).subscribe(() => {\n this.root.update((c) => ({ ...this.getTree() }));\n });\n }\n getTree() {\n return {\n type: AXPWidgetsCatalog.document,\n children: [this.service.currentPage()],\n };\n }\n toggleCollapse(node) {\n // Toggle the current state or set to true if undefined\n this.collapsedStates.set(node, !this.collapsedStates.get(node));\n }\n isCollapsed(node) {\n // Return the collapsed state, default is false (expanded)\n return !!this.collapsedStates.get(node);\n }\n getConfig(node) {\n return get(node, '__meta__.config');\n }\n handleClick(e, node) {\n e.stopPropagation();\n this.service.select({ widget: node });\n }\n handleToggleClick(event, item) {\n event.stopPropagation(); // Prevents the event from bubbling up to parent elements\n this.toggleCollapse(item);\n }\n handleMouseOver(e, node) {\n e.stopPropagation();\n this.service.focus({ widget: node });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerOutlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDesignerOutlineComponent, isStandalone: true, selector: \"axp-designer-outline\", ngImport: i0, template: \"<axp-designer-drawer-content>\\n <ax-title>Outline</ax-title>\\n\\n <ax-content body>\\n @if (root().children?.length) {\\n <ul class=\\\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\\\">\\n @for (node of root().children; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"sideMenu\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n }\\n </ul>\\n <ng-template #sideMenu let-item>\\n <li (click)=\\\"handleClick($event, item)\\\" (mouseover)=\\\"handleMouseOver($event, item)\\\">\\n <div\\n [class.ax-bg-neutral-700]=\\\"item === service.selectedNode()\\\"\\n class=\\\"ax-flex ax-flex-row ax-items-center ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group\\\"\\n >\\n <span class=\\\"ax-w-5\\\">\\n @if (item.children?.length) {\\n <i\\n class=\\\"fa-solid\\\"\\n [class.fa-chevron-right]=\\\"isCollapsed(item)\\\"\\n (click)=\\\"handleToggleClick($event, item)\\\"\\n [class.fa-chevron-down]=\\\"!isCollapsed(item)\\\"\\n ></i>\\n }\\n </span>\\n @let config = getConfig(item);\\n <span class=\\\"ax-w-5\\\">\\n @if (config.icon) {\\n <i [ngClass]=\\\"config.icon\\\"></i>\\n }\\n </span>\\n <span class=\\\"ax-truncate ax-flex-1 ax-pe-2\\\">{{ config.title }} : {{ item.name }}</span>\\n <div class=\\\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2 ax-justify-end\\\">\\n @if (config.type == 'container') {\\n <i class=\\\"fa-light fa-plus hover:ax-text-primary-500\\\" (click)=\\\"service.showPicker(item)\\\"></i>\\n }\\n @if (config.name != 'page-layout') {\\n <i class=\\\"fa-light fa-xmark hover:ax-text-danger-500\\\" (click)=\\\"service.removeWidget(item)\\\"></i>\\n }\\n </div>\\n </div>\\n @if (item.children?.length && !isCollapsed(item)) {\\n <ul class=\\\"ax-space-y-1 ax-ps-3 ax-text-white ax-text-sm\\\">\\n @for (child of item.children; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"sideMenu\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\">\\n </ng-container>\\n }\\n </ul>\\n }\\n </li>\\n </ng-template>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-shapes\\\"\\n [title]=\\\"'@layout-designer:components.outline.empty-states.no-widgets.title'\\\"\\n [description]=\\\"'@layout-designer:components.outline.empty-states.no-widgets.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXPLayoutDesignerDrawerContentComponent, selector: \"axp-designer-drawer-content\" }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerOutlineComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-outline', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n AXDecoratorModule,\n AXPLayoutDesignerDrawerContentComponent,\n AXPStateMessageComponent\n ], template: \"<axp-designer-drawer-content>\\n <ax-title>Outline</ax-title>\\n\\n <ax-content body>\\n @if (root().children?.length) {\\n <ul class=\\\"ax-space-y-1 ax-p-1 ax-text-white ax-text-sm\\\">\\n @for (node of root().children; track $index) {\\n <ng-container [ngTemplateOutlet]=\\\"sideMenu\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n }\\n </ul>\\n <ng-template #sideMenu let-item>\\n <li (click)=\\\"handleClick($event, item)\\\" (mouseover)=\\\"handleMouseOver($event, item)\\\">\\n <div\\n [class.ax-bg-neutral-700]=\\\"item === service.selectedNode()\\\"\\n class=\\\"ax-flex ax-flex-row ax-items-center ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out ax-hover:bg-gray-700 ax-py-1 ax-px-2 ax-rounded-sm ax-group\\\"\\n >\\n <span class=\\\"ax-w-5\\\">\\n @if (item.children?.length) {\\n <i\\n class=\\\"fa-solid\\\"\\n [class.fa-chevron-right]=\\\"isCollapsed(item)\\\"\\n (click)=\\\"handleToggleClick($event, item)\\\"\\n [class.fa-chevron-down]=\\\"!isCollapsed(item)\\\"\\n ></i>\\n }\\n </span>\\n @let config = getConfig(item);\\n <span class=\\\"ax-w-5\\\">\\n @if (config.icon) {\\n <i [ngClass]=\\\"config.icon\\\"></i>\\n }\\n </span>\\n <span class=\\\"ax-truncate ax-flex-1 ax-pe-2\\\">{{ config.title }} : {{ item.name }}</span>\\n <div class=\\\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2 ax-justify-end\\\">\\n @if (config.type == 'container') {\\n <i class=\\\"fa-light fa-plus hover:ax-text-primary-500\\\" (click)=\\\"service.showPicker(item)\\\"></i>\\n }\\n @if (config.name != 'page-layout') {\\n <i class=\\\"fa-light fa-xmark hover:ax-text-danger-500\\\" (click)=\\\"service.removeWidget(item)\\\"></i>\\n }\\n </div>\\n </div>\\n @if (item.children?.length && !isCollapsed(item)) {\\n <ul class=\\\"ax-space-y-1 ax-ps-3 ax-text-white ax-text-sm\\\">\\n @for (child of item.children; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"sideMenu\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\">\\n </ng-container>\\n }\\n </ul>\\n }\\n </li>\\n </ng-template>\\n } @else {\\n <axp-state-message\\n icon=\\\"fa-light fa-shapes\\\"\\n [title]=\\\"'@layout-designer:components.outline.empty-states.no-widgets.title'\\\"\\n [description]=\\\"'@layout-designer:components.outline.empty-states.no-widgets.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0bGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2NvbXBvbmVudHMvZHJhd2Vycy9vdXRsaW5lL291dGxpbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvb3V0bGluZS9vdXRsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBa0MsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWN0RSxNQUFNLE9BQU8sMkJBQTJCO0lBT3RDO1FBTlUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXJDLG9CQUFlLEdBQXNCLElBQUksR0FBRyxFQUFFLENBQUM7UUFFL0MsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGdEQUFDLENBQUM7UUFHdEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLE9BQU87UUFDYixPQUFPO1lBQ0wsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7WUFDaEMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QixDQUFDO0lBQ3JCLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBUztRQUM5Qix1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRVMsV0FBVyxDQUFDLElBQVM7UUFDN0IsMERBQTBEO1FBQzFELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxTQUFTLENBQUMsSUFBbUI7UUFDckMsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUEyQixDQUFDO0lBQ2hFLENBQUM7SUFFUyxXQUFXLENBQUMsQ0FBYSxFQUFFLElBQW1CO1FBQ3RELENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFpQixFQUFFLElBQVM7UUFDdEQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMseURBQXlEO1FBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVTLGVBQWUsQ0FBQyxDQUFhLEVBQUUsSUFBbUI7UUFDMUQsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0EvQ1UsMkJBQTJCO21HQUEzQiwyQkFBMkIsZ0ZDdEJ4Qyxtd0ZBOERBLDJDRDlDSSxZQUFZLG1TQUNaLGlCQUFpQixzUEFDakIsdUNBQXVDLHdFQUN2Qyx3QkFBd0I7OzRGQUdmLDJCQUEyQjtrQkFadkMsU0FBUzsrQkFDRSxzQkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHVDQUF1Qzt3QkFDdkMsd0JBQXdCO3FCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb25maWcsIEFYUFdpZGdldE5vZGUsIEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBMYXlvdXREZXNpZ25lckRyYXdlckNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHJhd2VyLWNvbnRlbnQvZHJhd2VyLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZXNpZ25lci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLW91dGxpbmUnLFxuICB0ZW1wbGF0ZVVybDogJ291dGxpbmUuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFBMYXlvdXREZXNpZ25lckRyYXdlckNvbnRlbnRDb21wb25lbnQsXG4gICAgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQVhQRGVzaWduZXJPdXRsaW5lQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgY29sbGFwc2VkU3RhdGVzOiBNYXA8YW55LCBib29sZWFuPiA9IG5ldyBNYXAoKTtcblxuICBwcm90ZWN0ZWQgcm9vdCA9IHNpZ25hbCh0aGlzLmdldFRyZWUoKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgbWVyZ2UodGhpcy5zZXJ2aWNlLm9uUmVmcmVzaCwgdGhpcy5zZXJ2aWNlLm9uVXBkYXRlKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yb290LnVwZGF0ZSgoYykgPT4gKHsgLi4udGhpcy5nZXRUcmVlKCkgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmVlKCk6IEFYUFdpZGdldE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kb2N1bWVudCxcbiAgICAgIGNoaWxkcmVuOiBbdGhpcy5zZXJ2aWNlLmN1cnJlbnRQYWdlKCldLFxuICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlQ29sbGFwc2Uobm9kZTogYW55KSB7XG4gICAgLy8gVG9nZ2xlIHRoZSBjdXJyZW50IHN0YXRlIG9yIHNldCB0byB0cnVlIGlmIHVuZGVmaW5lZFxuICAgIHRoaXMuY29sbGFwc2VkU3RhdGVzLnNldChub2RlLCAhdGhpcy5jb2xsYXBzZWRTdGF0ZXMuZ2V0KG5vZGUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NvbGxhcHNlZChub2RlOiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyBSZXR1cm4gdGhlIGNvbGxhcHNlZCBzdGF0ZSwgZGVmYXVsdCBpcyBmYWxzZSAoZXhwYW5kZWQpXG4gICAgcmV0dXJuICEhdGhpcy5jb2xsYXBzZWRTdGF0ZXMuZ2V0KG5vZGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvbmZpZyhub2RlOiBBWFBXaWRnZXROb2RlKTogQVhQV2lkZ2V0Q29uZmlnIHtcbiAgICByZXR1cm4gZ2V0KG5vZGUsICdfX21ldGFfXy5jb25maWcnKSBhcyBhbnkgYXMgQVhQV2lkZ2V0Q29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQsIG5vZGU6IEFYUFdpZGdldE5vZGUpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc2VydmljZS5zZWxlY3QoeyB3aWRnZXQ6IG5vZGUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVG9nZ2xlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBQcmV2ZW50cyB0aGUgZXZlbnQgZnJvbSBidWJibGluZyB1cCB0byBwYXJlbnQgZWxlbWVudHNcbiAgICB0aGlzLnRvZ2dsZUNvbGxhcHNlKGl0ZW0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU1vdXNlT3ZlcihlOiBNb3VzZUV2ZW50LCBub2RlOiBBWFBXaWRnZXROb2RlKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnNlcnZpY2UuZm9jdXMoeyB3aWRnZXQ6IG5vZGUgfSk7XG4gIH1cbn1cbiIsIjxheHAtZGVzaWduZXItZHJhd2VyLWNvbnRlbnQ+XG4gIDxheC10aXRsZT5PdXRsaW5lPC9heC10aXRsZT5cblxuICA8YXgtY29udGVudCBib2R5PlxuICAgIEBpZiAocm9vdCgpLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIDx1bCBjbGFzcz1cImF4LXNwYWNlLXktMSBheC1wLTEgYXgtdGV4dC13aGl0ZSBheC10ZXh0LXNtXCI+XG4gICAgICAgIEBmb3IgKG5vZGUgb2Ygcm9vdCgpLmNoaWxkcmVuOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNpZGVNZW51XCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgICA8bmctdGVtcGxhdGUgI3NpZGVNZW51IGxldC1pdGVtPlxuICAgICAgICA8bGkgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudCwgaXRlbSlcIiAobW91c2VvdmVyKT1cImhhbmRsZU1vdXNlT3ZlcigkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW2NsYXNzLmF4LWJnLW5ldXRyYWwtNzAwXT1cIml0ZW0gPT09IHNlcnZpY2Uuc2VsZWN0ZWROb2RlKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LWl0ZW1zLWNlbnRlciBheC1jdXJzb3ItcG9pbnRlciBheC10cmFuc2l0aW9uIGF4LWR1cmF0aW9uLTE1MCBheC1lYXNlLWluLW91dCBheC1ob3ZlcjpiZy1ncmF5LTcwMCBheC1weS0xIGF4LXB4LTIgYXgtcm91bmRlZC1zbSBheC1ncm91cFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC13LTVcIj5cbiAgICAgICAgICAgICAgQGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYS1zb2xpZFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuZmEtY2hldnJvbi1yaWdodF09XCJpc0NvbGxhcHNlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVG9nZ2xlQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuZmEtY2hldnJvbi1kb3duXT1cIiFpc0NvbGxhcHNlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgQGxldCBjb25maWcgPSBnZXRDb25maWcoaXRlbSk7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXctNVwiPlxuICAgICAgICAgICAgICBAaWYgKGNvbmZpZy5pY29uKSB7XG4gICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiY29uZmlnLmljb25cIj48L2k+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdHJ1bmNhdGUgYXgtZmxleC0xIGF4LXBlLTJcIj57eyBjb25maWcudGl0bGUgfX0gOiB7eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtaW52aXNpYmxlIGdyb3VwLWhvdmVyOmF4LXZpc2libGUgYXgtZmxleCBheC1nYXAtMiBheC1qdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgICAgICBAaWYgKGNvbmZpZy50eXBlID09ICdjb250YWluZXInKSB7XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1wbHVzIGhvdmVyOmF4LXRleHQtcHJpbWFyeS01MDBcIiAoY2xpY2spPVwic2VydmljZS5zaG93UGlja2VyKGl0ZW0pXCI+PC9pPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoY29uZmlnLm5hbWUgIT0gJ3BhZ2UtbGF5b3V0Jykge1xuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEteG1hcmsgaG92ZXI6YXgtdGV4dC1kYW5nZXItNTAwXCIgKGNsaWNrKT1cInNlcnZpY2UucmVtb3ZlV2lkZ2V0KGl0ZW0pXCI+PC9pPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQoaXRlbSkpIHtcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImF4LXNwYWNlLXktMSBheC1wcy0zIGF4LXRleHQtd2hpdGUgYXgtdGV4dC1zbVwiPlxuICAgICAgICAgICAgICBAZm9yIChjaGlsZCBvZiBpdGVtLmNoaWxkcmVuOyB0cmFjayBjaGlsZCkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbGk+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGF4cC1zdGF0ZS1tZXNzYWdlXG4gICAgICAgIGljb249XCJmYS1saWdodCBmYS1zaGFwZXNcIlxuICAgICAgICBbdGl0bGVdPVwiJ0BsYXlvdXQtZGVzaWduZXI6Y29tcG9uZW50cy5vdXRsaW5lLmVtcHR5LXN0YXRlcy5uby13aWRnZXRzLnRpdGxlJ1wiXG4gICAgICAgIFtkZXNjcmlwdGlvbl09XCInQGxheW91dC1kZXNpZ25lcjpjb21wb25lbnRzLm91dGxpbmUuZW1wdHktc3RhdGVzLm5vLXdpZGdldHMuZGVzY3JpcHRpb24nXCJcbiAgICAgID5cbiAgICAgIDwvYXhwLXN0YXRlLW1lc3NhZ2U+XG4gICAgfVxuICA8L2F4LWNvbnRlbnQ+XG48L2F4cC1kZXNpZ25lci1kcmF3ZXItY29udGVudD5cbiJdfQ==","import { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXPLayoutDesignerDrawerContentComponent } from '../../../shared/drawer-content/drawer-content.component';\nimport { AXPDesignerService } from '../../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/button\";\nexport class AXPDesignerPagesComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerPagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDesignerPagesComponent, isStandalone: true, selector: \"axp-designer-pages\", ngImport: i0, template: \"<axp-designer-drawer-content class=\\\"ax-text-on-lightest\\\">\\n <ax-title>Pages</ax-title>\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"service.addNewPage()\\\" title=\\\"Add New Page\\\">\\n <ax-icon class=\\\"fa-light fa-file-circle-plus\\\"></ax-icon>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @let count = service.document().children?.length ?? 0; @if(count) {\\n <ul class=\\\"ax-text-sm ax-p-2 ax-rounded ax-md ax-space-y-1\\\">\\n @for( page of service.document().children;track $index) {\\n <li (click)=\\\"service.goToPage($index)\\\"\\n class=\\\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out hover:ax-bg-dark ax-py-1 ax-px-2 ax-rounded-sm ax-group ax-flex ax-justify-between ax-items-center\\\"\\n [class.ax-bg-darkest]=\\\"$index == service.currentPageIndex()\\\">\\n <div>\\n <i class=\\\"fa-light fa-file ax-me-1\\\"></i>\\n Page {{ $index + 1 }}\\n </div>\\n <div class=\\\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2\\\">\\n @if(count>1) {\\n <i class=\\\"fa-light fa-xmark hover:ax-text-danger-500\\\" (click)=\\\"service.removePage($index)\\\"></i>\\n }\\n <i class=\\\"fa-light fa-clone hover:ax-text-primary-500\\\" (click)=\\\"service.clonePage($index)\\\"></i>\\n </div>\\n </li>\\n }\\n </ul>\\n } @else {\\n <div class=\\\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\\\">No pages found in the document</div>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\", dependencies: [{ kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXPLayoutDesignerDrawerContentComponent, selector: \"axp-designer-drawer-content\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerPagesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-designer-pages', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n AXPWidgetCoreModule,\n AXDecoratorModule,\n AXButtonModule,\n AXPLayoutDesignerDrawerContentComponent\n ], template: \"<axp-designer-drawer-content class=\\\"ax-text-on-lightest\\\">\\n <ax-title>Pages</ax-title>\\n <ax-content header>\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"service.addNewPage()\\\" title=\\\"Add New Page\\\">\\n <ax-icon class=\\\"fa-light fa-file-circle-plus\\\"></ax-icon>\\n </ax-button>\\n </ax-content>\\n\\n <ax-content body>\\n @let count = service.document().children?.length ?? 0; @if(count) {\\n <ul class=\\\"ax-text-sm ax-p-2 ax-rounded ax-md ax-space-y-1\\\">\\n @for( page of service.document().children;track $index) {\\n <li (click)=\\\"service.goToPage($index)\\\"\\n class=\\\"ax-cursor-pointer ax-transition ax-duration-150 ax-ease-in-out hover:ax-bg-dark ax-py-1 ax-px-2 ax-rounded-sm ax-group ax-flex ax-justify-between ax-items-center\\\"\\n [class.ax-bg-darkest]=\\\"$index == service.currentPageIndex()\\\">\\n <div>\\n <i class=\\\"fa-light fa-file ax-me-1\\\"></i>\\n Page {{ $index + 1 }}\\n </div>\\n <div class=\\\"ax-invisible group-hover:ax-visible ax-flex ax-gap-2\\\">\\n @if(count>1) {\\n <i class=\\\"fa-light fa-xmark hover:ax-text-danger-500\\\" (click)=\\\"service.removePage($index)\\\"></i>\\n }\\n <i class=\\\"fa-light fa-clone hover:ax-text-primary-500\\\" (click)=\\\"service.clonePage($index)\\\"></i>\\n </div>\\n </li>\\n }\\n </ul>\\n } @else {\\n <div class=\\\"ax-flex ax-justify-center ax-items-center ax-text-gray-300 ax-p-4\\\">No pages found in the document</div>\\n }\\n </ax-content>\\n</axp-designer-drawer-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvcGFnZXMvcGFnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2RyYXdlcnMvcGFnZXMvcGFnZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBZXRFLE1BQU0sT0FBTyx5QkFBeUI7SUFidEM7UUFlYyxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FFbEQ7K0dBSlkseUJBQXlCO21HQUF6Qix5QkFBeUIsOEVDckJ0QyxraERBaUNBLDJDRG5CSSxtQkFBbUIsOEJBQ25CLGlCQUFpQixzVkFDakIsY0FBYyw4WEFDZCx1Q0FBdUM7OzRGQUk5Qix5QkFBeUI7a0JBYnJDLFNBQVM7K0JBQ0ksb0JBQW9CLGlCQUVmLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1QsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsdUNBQXVDO3FCQUMxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYUExheW91dERlc2lnbmVyRHJhd2VyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kcmF3ZXItY29udGVudC9kcmF3ZXItY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Rlc2lnbmVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci1wYWdlcycsXG4gICAgdGVtcGxhdGVVcmw6ICdwYWdlcy5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgQVhQV2lkZ2V0Q29yZU1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFBMYXlvdXREZXNpZ25lckRyYXdlckNvbnRlbnRDb21wb25lbnRcbl1cbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBEZXNpZ25lclBhZ2VzQ29tcG9uZW50IHtcblxuICAgIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbn0iLCI8YXhwLWRlc2lnbmVyLWRyYXdlci1jb250ZW50IGNsYXNzPVwiYXgtdGV4dC1vbi1saWdodGVzdFwiPlxuICA8YXgtdGl0bGU+UGFnZXM8L2F4LXRpdGxlPlxuICA8YXgtY29udGVudCBoZWFkZXI+XG4gICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwic2VydmljZS5hZGROZXdQYWdlKClcIiB0aXRsZT1cIkFkZCBOZXcgUGFnZVwiPlxuICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1saWdodCBmYS1maWxlLWNpcmNsZS1wbHVzXCI+PC9heC1pY29uPlxuICAgIDwvYXgtYnV0dG9uPlxuICA8L2F4LWNvbnRlbnQ+XG5cbiAgPGF4LWNvbnRlbnQgYm9keT5cbiAgICBAbGV0IGNvdW50ID0gc2VydmljZS5kb2N1bWVudCgpLmNoaWxkcmVuPy5sZW5ndGggPz8gMDsgQGlmKGNvdW50KSB7XG4gICAgPHVsIGNsYXNzPVwiYXgtdGV4dC1zbSBheC1wLTIgYXgtcm91bmRlZCBheC1tZCBheC1zcGFjZS15LTFcIj5cbiAgICAgIEBmb3IoIHBhZ2Ugb2Ygc2VydmljZS5kb2N1bWVudCgpLmNoaWxkcmVuO3RyYWNrICRpbmRleCkge1xuICAgICAgPGxpIChjbGljayk9XCJzZXJ2aWNlLmdvVG9QYWdlKCRpbmRleClcIlxuICAgICAgICBjbGFzcz1cImF4LWN1cnNvci1wb2ludGVyIGF4LXRyYW5zaXRpb24gYXgtZHVyYXRpb24tMTUwIGF4LWVhc2UtaW4tb3V0IGhvdmVyOmF4LWJnLWRhcmsgYXgtcHktMSBheC1weC0yIGF4LXJvdW5kZWQtc20gYXgtZ3JvdXAgYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaXRlbXMtY2VudGVyXCJcbiAgICAgICAgW2NsYXNzLmF4LWJnLWRhcmtlc3RdPVwiJGluZGV4ID09IHNlcnZpY2UuY3VycmVudFBhZ2VJbmRleCgpXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1maWxlIGF4LW1lLTFcIj48L2k+XG4gICAgICAgICAgUGFnZSB7eyAkaW5kZXggKyAxIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtaW52aXNpYmxlIGdyb3VwLWhvdmVyOmF4LXZpc2libGUgYXgtZmxleCBheC1nYXAtMlwiPlxuICAgICAgICAgIEBpZihjb3VudD4xKSB7XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS14bWFyayBob3ZlcjpheC10ZXh0LWRhbmdlci01MDBcIiAoY2xpY2spPVwic2VydmljZS5yZW1vdmVQYWdlKCRpbmRleClcIj48L2k+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtY2xvbmUgaG92ZXI6YXgtdGV4dC1wcmltYXJ5LTUwMFwiIChjbGljayk9XCJzZXJ2aWNlLmNsb25lUGFnZSgkaW5kZXgpXCI+PC9pPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC91bD5cbiAgICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWNlbnRlciBheC1pdGVtcy1jZW50ZXIgYXgtdGV4dC1ncmF5LTMwMCBheC1wLTRcIj5ObyBwYWdlcyBmb3VuZCBpbiB0aGUgZG9jdW1lbnQ8L2Rpdj5cbiAgICB9XG4gIDwvYXgtY29udGVudD5cbjwvYXhwLWRlc2lnbmVyLWRyYXdlci1jb250ZW50PlxuIl19","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { Component, HostListener, inject } from '@angular/core';\nimport { AXPDesignerService } from '../../shared/designer.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/menu\";\nexport class AXPDesignerHeaderMenuComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n }\n handleKeyboardEvent(event) {\n if (event.code == 'Delete' && this.service.canDelete()) {\n event.preventDefault();\n this.service.removeWidget();\n }\n if (event.code == 'Insert' && this.service.canInsert()) {\n event.preventDefault();\n this.service.showPicker();\n }\n if (event.shiftKey && event.target == document.body) {\n switch (event.code) {\n case 'KeyN':\n event.preventDefault();\n this.service.new();\n break;\n }\n }\n if (event.ctrlKey) {\n switch (event.code) {\n case 'KeyS':\n event.preventDefault();\n if (event.shiftKey) {\n this.service.saveAs();\n }\n else {\n this.service.save();\n }\n break;\n case 'KeyR':\n event.preventDefault();\n if (event.shiftKey) {\n this.service.openPreviewWindow();\n }\n else {\n this.service.openPreviewDialog();\n }\n break;\n }\n }\n //\n if (event.ctrlKey && event.target == document.body) {\n switch (event.code) {\n case 'KeyZ':\n if (this.service.canUndo()) {\n event.preventDefault();\n this.service.undo();\n }\n break;\n case 'KeyY':\n if (this.service.canRedo()) {\n event.preventDefault();\n this.service.redo();\n }\n break;\n case 'KeyC':\n if (this.service.canCutCopy()) {\n event.preventDefault();\n this.service.copy();\n }\n break;\n case 'KeyD':\n if (this.service.canCutCopy()) {\n event.preventDefault();\n this.service.clone();\n }\n break;\n case 'KeyX':\n if (this.service.canCutCopy()) {\n // ;\n event.preventDefault();\n this.service.cut();\n }\n break;\n case 'KeyV':\n if (this.service.canPaste()) {\n event.preventDefault();\n this.service.paste();\n }\n break;\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerHeaderMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPDesignerHeaderMenuComponent, isStandalone: true, selector: \"axp-designer-header-menu\", host: { listeners: { \"document:keydown\": \"handleKeyboardEvent($event)\" } }, ngImport: i0, template: \"<ax-menu [openOn]=\\\"'hover'\\\" [hasArrow]=\\\"false\\\">\\n <ax-menu-item>\\n <ax-text>File</ax-text>\\n <ax-menu-item (onClick)=\\\"service.new()\\\">\\n <ax-text>New</ax-text>\\n <ax-suffix>\\n <ax-text> Shift+N </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n @if(service.canSave())\\n {\\n <ng-container>\\n <ax-menu-item (onClick)=\\\"service.save()\\\">\\n <ax-text>Save</ax-text>\\n <ax-suffix>\\n <ax-text> Ctrl+S </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item (onClick)=\\\"service.saveAs()\\\">\\n <ax-text>Save As...</ax-text>\\n <ax-suffix>\\n <ax-text> Ctrl+Shift+S </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n </ng-container>\\n }\\n <ax-menu-item>\\n <ax-text>Export</ax-text>\\n <ax-menu-item (onClick)=\\\"service.downloadJson()\\\">\\n <ax-text>Download JSON</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Import</ax-text>\\n <ax-menu-item (onClick)=\\\"service.importJSon()\\\">\\n <ax-text>Import JSON</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Edit</ax-text>\\n <ax-menu-item [disabled]=\\\"!service.canUndo()\\\" (onClick)=\\\"service.undo()\\\">\\n <ax-text>Undo</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-rotate-left\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+Z </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canRedo()\\\" (onClick)=\\\"service.redo()\\\">\\n <ax-text>Redo</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-rotate-right\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+Y </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.clone()\\\">\\n <ax-text>Clone</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-clone\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+D </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.cut()\\\">\\n <ax-text>Cut</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-cut\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+X </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.copy()\\\">\\n <ax-text>Copy</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-copy\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+C </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canPaste()\\\" (onClick)=\\\"service.paste()\\\">\\n <ax-text>Paste</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-paste\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+V</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n <ax-menu-item [disabled]=\\\"!service.canDelete()\\\" (onClick)=\\\"service.removeWidget()\\\">\\n <ax-text>Delete</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-trash\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Del</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Run</ax-text>\\n <ax-menu-item (onClick)=\\\"service.openPreviewDialog()\\\">\\n <ax-text>Preview</ax-text>\\n <ax-prefix>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+R</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item (onClick)=\\\"service.openPreviewWindow()\\\">\\n <ax-text>Preview in seperate window</ax-text>\\n <ax-prefix> </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+Shift+R</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Help</ax-text>\\n <ax-menu-item>\\n <ax-text>About</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n</ax-menu>\", dependencies: [{ kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i1.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXMenuModule }, { kind: \"component\", type: i2.AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: i2.AXMenuComponent, selector: \"ax-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"items\", \"hasArrow\"], outputs: [\"onItemClick\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerHeaderMenuComponent, decorators: [{\n type: Component,\n args: [{ imports: [AXDecoratorModule, AXMenuModule], selector: 'axp-designer-header-menu', template: \"<ax-menu [openOn]=\\\"'hover'\\\" [hasArrow]=\\\"false\\\">\\n <ax-menu-item>\\n <ax-text>File</ax-text>\\n <ax-menu-item (onClick)=\\\"service.new()\\\">\\n <ax-text>New</ax-text>\\n <ax-suffix>\\n <ax-text> Shift+N </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n @if(service.canSave())\\n {\\n <ng-container>\\n <ax-menu-item (onClick)=\\\"service.save()\\\">\\n <ax-text>Save</ax-text>\\n <ax-suffix>\\n <ax-text> Ctrl+S </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item (onClick)=\\\"service.saveAs()\\\">\\n <ax-text>Save As...</ax-text>\\n <ax-suffix>\\n <ax-text> Ctrl+Shift+S </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n </ng-container>\\n }\\n <ax-menu-item>\\n <ax-text>Export</ax-text>\\n <ax-menu-item (onClick)=\\\"service.downloadJson()\\\">\\n <ax-text>Download JSON</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Import</ax-text>\\n <ax-menu-item (onClick)=\\\"service.importJSon()\\\">\\n <ax-text>Import JSON</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Edit</ax-text>\\n <ax-menu-item [disabled]=\\\"!service.canUndo()\\\" (onClick)=\\\"service.undo()\\\">\\n <ax-text>Undo</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-rotate-left\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+Z </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canRedo()\\\" (onClick)=\\\"service.redo()\\\">\\n <ax-text>Redo</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-rotate-right\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+Y </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.clone()\\\">\\n <ax-text>Clone</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-clone\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+D </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.cut()\\\">\\n <ax-text>Cut</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-cut\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+X </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canCutCopy()\\\" (onClick)=\\\"service.copy()\\\">\\n <ax-text>Copy</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-copy\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text> Ctrl+C </ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item [disabled]=\\\"!service.canPaste()\\\" (onClick)=\\\"service.paste()\\\">\\n <ax-text>Paste</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-paste\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+V</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-divider></ax-divider>\\n <ax-menu-item [disabled]=\\\"!service.canDelete()\\\" (onClick)=\\\"service.removeWidget()\\\">\\n <ax-text>Delete</ax-text>\\n <ax-prefix>\\n <ax-icon>\\n <i class=\\\"fa-solid fa-trash\\\"></i>\\n </ax-icon>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Del</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Run</ax-text>\\n <ax-menu-item (onClick)=\\\"service.openPreviewDialog()\\\">\\n <ax-text>Preview</ax-text>\\n <ax-prefix>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+R</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n <ax-menu-item (onClick)=\\\"service.openPreviewWindow()\\\">\\n <ax-text>Preview in seperate window</ax-text>\\n <ax-prefix> </ax-prefix>\\n <ax-suffix>\\n <ax-text>Ctrl+Shift+R</ax-text>\\n </ax-suffix>\\n </ax-menu-item>\\n </ax-menu-item>\\n <ax-menu-item>\\n <ax-text>Help</ax-text>\\n <ax-menu-item>\\n <ax-text>About</ax-text>\\n </ax-menu-item>\\n </ax-menu-item>\\n</ax-menu>\" }]\n }], propDecorators: { handleKeyboardEvent: [{\n type: HostListener,\n args: ['document:keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9saWIvZGVzaWduZXIvY29tcG9uZW50cy9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7O0FBT25FLE1BQU0sT0FBTyw4QkFBOEI7SUFMM0M7UUFNWSxZQUFPLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FtRmhEO0lBaEZXLG1CQUFtQixDQUFDLEtBQW9CO1FBQ2hELElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN2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QU07b0JBQ1QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7d0JBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQzt3QkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDdkIsQ0FBQztvQkFDRCxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQW5GVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixnS0NYM0MsMjBJQW1KVSwyQ0Q1SUUsaUJBQWlCLHNWQUFFLFlBQVk7OzRGQUk5Qiw4QkFBOEI7a0JBTDFDLFNBQVM7OEJBQ0MsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsWUFDaEMsMEJBQTBCOztzQkFNbkMsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhNZW51TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZGVzaWduZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbQVhEZWNvcmF0b3JNb2R1bGUsIEFYTWVudU1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnYXhwLWRlc2lnbmVyLWhlYWRlci1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICdoZWFkZXItbWVudS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUERlc2lnbmVySGVhZGVyTWVudUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYUERlc2lnbmVyU2VydmljZSk7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmNvZGUgPT0gJ0RlbGV0ZScgJiYgdGhpcy5zZXJ2aWNlLmNhbkRlbGV0ZSgpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zZXJ2aWNlLnJlbW92ZVdpZGdldCgpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuY29kZSA9PSAnSW5zZXJ0JyAmJiB0aGlzLnNlcnZpY2UuY2FuSW5zZXJ0KCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2hvd1BpY2tlcigpO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQudGFyZ2V0ID09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICBjYXNlICdLZXlOJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMuc2VydmljZS5uZXcoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICBjYXNlICdLZXlTJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNhdmVBcygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2F2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnS2V5Uic6XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5vcGVuUHJldmlld1dpbmRvdygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQudGFyZ2V0ID09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICBjYXNlICdLZXlaJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhblVuZG8oKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS51bmRvKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdLZXlZJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhblJlZG8oKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5yZWRvKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdLZXlDJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhbkN1dENvcHkoKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5jb3B5KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdLZXlEJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhbkN1dENvcHkoKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5jbG9uZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnS2V5WCc6XG4gICAgICAgICAgaWYgKHRoaXMuc2VydmljZS5jYW5DdXRDb3B5KCkpIHtcbiAgICAgICAgICAgIC8vIDtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuY3V0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdLZXlWJzpcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLmNhblBhc3RlKCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UucGFzdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8YXgtbWVudSBbb3Blbk9uXT1cIidob3ZlcidcIiBbaGFzQXJyb3ddPVwiZmFsc2VcIj5cbiAgPGF4LW1lbnUtaXRlbT5cbiAgICA8YXgtdGV4dD5GaWxlPC9heC10ZXh0PlxuICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5uZXcoKVwiPlxuICAgICAgPGF4LXRleHQ+TmV3PC9heC10ZXh0PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+IFNoaWZ0K04gPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgIEBpZihzZXJ2aWNlLmNhblNhdmUoKSlcbiAgICB7XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5zYXZlKClcIj5cbiAgICAgICAgPGF4LXRleHQ+U2F2ZTwvYXgtdGV4dD5cbiAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICA8YXgtdGV4dD4gQ3RybCtTIDwvYXgtdGV4dD5cbiAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5zYXZlQXMoKVwiPlxuICAgICAgICA8YXgtdGV4dD5TYXZlIEFzLi4uPC9heC10ZXh0PlxuICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgIDxheC10ZXh0PiBDdHJsK1NoaWZ0K1MgPC9heC10ZXh0PlxuICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICA8YXgtbWVudS1pdGVtPlxuICAgICAgPGF4LXRleHQ+RXhwb3J0PC9heC10ZXh0PlxuICAgICAgPGF4LW1lbnUtaXRlbSAob25DbGljayk9XCJzZXJ2aWNlLmRvd25sb2FkSnNvbigpXCI+XG4gICAgICAgIDxheC10ZXh0PkRvd25sb2FkIEpTT048L2F4LXRleHQ+XG4gICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8YXgtbWVudS1pdGVtPlxuICAgICAgPGF4LXRleHQ+SW1wb3J0PC9heC10ZXh0PlxuICAgICAgPGF4LW1lbnUtaXRlbSAob25DbGljayk9XCJzZXJ2aWNlLmltcG9ydEpTb24oKVwiPlxuICAgICAgICA8YXgtdGV4dD5JbXBvcnQgSlNPTjwvYXgtdGV4dD5cbiAgICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICA8L2F4LW1lbnUtaXRlbT5cbiAgPGF4LW1lbnUtaXRlbT5cbiAgICA8YXgtdGV4dD5FZGl0PC9heC10ZXh0PlxuICAgIDxheC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhblVuZG8oKVwiIChvbkNsaWNrKT1cInNlcnZpY2UudW5kbygpXCI+XG4gICAgICA8YXgtdGV4dD5VbmRvPC9heC10ZXh0PlxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGUtbGVmdFwiPjwvaT5cbiAgICAgICAgPC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtdGV4dD4gQ3RybCtaIDwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhblJlZG8oKVwiIChvbkNsaWNrKT1cInNlcnZpY2UucmVkbygpXCI+XG4gICAgICA8YXgtdGV4dD5SZWRvPC9heC10ZXh0PlxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yb3RhdGUtcmlnaHRcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+IEN0cmwrWSA8L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gICAgPGF4LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuQ3V0Q29weSgpXCIgKG9uQ2xpY2spPVwic2VydmljZS5jbG9uZSgpXCI+XG4gICAgICA8YXgtdGV4dD5DbG9uZTwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2xvbmVcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+IEN0cmwrRCA8L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICA8YXgtbWVudS1pdGVtIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5DdXRDb3B5KClcIiAob25DbGljayk9XCJzZXJ2aWNlLmN1dCgpXCI+XG4gICAgICA8YXgtdGV4dD5DdXQ8L2F4LXRleHQ+XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICA8YXgtaWNvbj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWN1dFwiPjwvaT5cbiAgICAgICAgPC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtdGV4dD4gQ3RybCtYIDwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFzZXJ2aWNlLmNhbkN1dENvcHkoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UuY29weSgpXCI+XG4gICAgICA8YXgtdGV4dD5Db3B5PC9heC10ZXh0PlxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1jb3B5XCI+PC9pPlxuICAgICAgICA8L2F4LWljb24+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0PiBDdHJsK0MgPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gICAgPGF4LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwiIXNlcnZpY2UuY2FuUGFzdGUoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UucGFzdGUoKVwiPlxuICAgICAgPGF4LXRleHQ+UGFzdGU8L2F4LXRleHQ+XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICA8YXgtaWNvbj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLXBhc3RlXCI+PC9pPlxuICAgICAgICA8L2F4LWljb24+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0PkN0cmwrVjwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cbiAgICA8YXgtbWVudS1pdGVtIFtkaXNhYmxlZF09XCIhc2VydmljZS5jYW5EZWxldGUoKVwiIChvbkNsaWNrKT1cInNlcnZpY2UucmVtb3ZlV2lkZ2V0KClcIj5cbiAgICAgIDxheC10ZXh0PkRlbGV0ZTwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtdHJhc2hcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+RGVsPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gIDwvYXgtbWVudS1pdGVtPlxuICA8YXgtbWVudS1pdGVtPlxuICAgIDxheC10ZXh0PlJ1bjwvYXgtdGV4dD5cbiAgICA8YXgtbWVudS1pdGVtIChvbkNsaWNrKT1cInNlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coKVwiPlxuICAgICAgPGF4LXRleHQ+UHJldmlldzwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0PkN0cmwrUjwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICAgIDxheC1tZW51LWl0ZW0gKG9uQ2xpY2spPVwic2VydmljZS5vcGVuUHJldmlld1dpbmRvdygpXCI+XG4gICAgICA8YXgtdGV4dD5QcmV2aWV3IGluIHNlcGVyYXRlIHdpbmRvdzwvYXgtdGV4dD5cbiAgICAgIDxheC1wcmVmaXg+IDwvYXgtcHJlZml4PlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+Q3RybCtTaGlmdCtSPC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1tZW51LWl0ZW0+XG4gIDwvYXgtbWVudS1pdGVtPlxuICA8YXgtbWVudS1pdGVtPlxuICAgIDxheC10ZXh0PkhlbHA8L2F4LXRleHQ+XG4gICAgPGF4LW1lbnUtaXRlbT5cbiAgICAgIDxheC10ZXh0PkFib3V0PC9heC10ZXh0PlxuICAgIDwvYXgtbWVudS1pdGVtPlxuICA8L2F4LW1lbnUtaXRlbT5cbjwvYXgtbWVudT4iXX0=","import { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { Component, model } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button-group\";\nimport * as i2 from \"@acorex/components/decorators\";\nexport class AXPDesignerViewSizeToolbarComponent {\n constructor() {\n this.size = model('xl', ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerViewSizeToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXPDesignerViewSizeToolbarComponent, isStandalone: true, selector: \"axp-designer-view-sizes\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { size: \"sizeChange\" }, ngImport: i0, template: `\n <ax-button-group [color]=\"'primary'\" [selection]=\"'multiple'\">\n <ax-button-group-item [selected]=\"size() == 'xl'\" [data]=\"'xl'\" (onClick)=\"size.set('xl')\">\n <ax-icon class=\"fa-light fa-desktop fa-fw \"></ax-icon>\n </ax-button-group-item>\n <ax-button-group-item [selected]=\"size() == 'lg'\" [data]=\"'lg'\" (onClick)=\"size.set('lg')\">\n <ax-icon class=\"fa-light fa-tablet fa-fw \"></ax-icon>\n </ax-button-group-item>\n <ax-button-group-item [selected]=\"size() == 'sm'\" [data]=\"'sm'\" (onClick)=\"size.set('sm')\">\n <ax-icon class=\"fa-light fa-mobile fa-fw \"></ax-icon>\n </ax-button-group-item>\n </ax-button-group>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"component\", type: i1.AXButtonGroupComponent, selector: \"ax-button-group\", inputs: [\"disabled\", \"color\", \"look\", \"fitParent\", \"selection\"], outputs: [\"onBlur\", \"onFocus\", \"lookChange\", \"colorChange\", \"disabledChange\", \"onClick\", \"selectionChange\", \"selectedButtonChange\"] }, { kind: \"component\", type: i1.AXButtonGroupItemComponent, selector: \"ax-button-group-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXMenuModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDesignerViewSizeToolbarComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-designer-view-sizes',\n imports: [AXButtonGroupModule, AXDecoratorModule, AXMenuModule],\n template: `\n <ax-button-group [color]=\"'primary'\" [selection]=\"'multiple'\">\n <ax-button-group-item [selected]=\"size() == 'xl'\" [data]=\"'xl'\" (onClick)=\"size.set('xl')\">\n <ax-icon class=\"fa-light fa-desktop fa-fw \"></ax-icon>\n </ax-button-group-item>\n <ax-button-group-item [selected]=\"size() == 'lg'\" [data]=\"'lg'\" (onClick)=\"size.set('lg')\">\n <ax-icon class=\"fa-light fa-tablet fa-fw \"></ax-icon>\n </ax-button-group-item>\n <ax-button-group-item [selected]=\"size() == 'sm'\" [data]=\"'sm'\" (onClick)=\"size.set('sm')\">\n <ax-icon class=\"fa-light fa-mobile fa-fw \"></ax-icon>\n </ax-button-group-item>\n </ax-button-group>\n `,\n }]\n }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: \"size\", required: false }] }, { type: i0.Output, args: [\"sizeChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1zaXplLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9jb21wb25lbnRzL3NpemUtbW9kZS92aWV3LXNpemUtdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBbUJqRCxNQUFNLE9BQU8sbUNBQW1DO0lBakJoRDtRQWtCUyxTQUFJLEdBQUcsS0FBSyxDQUFTLElBQUksZ0RBQUMsQ0FBQztLQUNuQzsrR0FGWSxtQ0FBbUM7bUdBQW5DLG1DQUFtQyxxUEFkcEM7Ozs7Ozs7Ozs7OztHQVlULDJEQWJTLG1CQUFtQixraUJBQUUsaUJBQWlCLCtIQUFFLFlBQVk7OzRGQWVuRCxtQ0FBbUM7a0JBakIvQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQztvQkFDL0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7R0FZVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uR3JvdXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhNZW51TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIG1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1kZXNpZ25lci12aWV3LXNpemVzJyxcbiAgaW1wb3J0czogW0FYQnV0dG9uR3JvdXBNb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlLCBBWE1lbnVNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxheC1idXR0b24tZ3JvdXAgW2NvbG9yXT1cIidwcmltYXJ5J1wiIFtzZWxlY3Rpb25dPVwiJ211bHRpcGxlJ1wiPlxuICAgICAgPGF4LWJ1dHRvbi1ncm91cC1pdGVtICBbc2VsZWN0ZWRdPVwic2l6ZSgpID09ICd4bCdcIiBbZGF0YV09XCIneGwnXCIgKG9uQ2xpY2spPVwic2l6ZS5zZXQoJ3hsJylcIj5cbiAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1saWdodCBmYS1kZXNrdG9wIGZhLWZ3IFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtYnV0dG9uLWdyb3VwLWl0ZW0+XG4gICAgICA8YXgtYnV0dG9uLWdyb3VwLWl0ZW0gW3NlbGVjdGVkXT1cInNpemUoKSA9PSAnbGcnXCIgW2RhdGFdPVwiJ2xnJ1wiIChvbkNsaWNrKT1cInNpemUuc2V0KCdsZycpXCI+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGFibGV0IGZhLWZ3IFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtYnV0dG9uLWdyb3VwLWl0ZW0+XG4gICAgICA8YXgtYnV0dG9uLWdyb3VwLWl0ZW0gW3NlbGVjdGVkXT1cInNpemUoKSA9PSAnc20nXCIgW2RhdGFdPVwiJ3NtJ1wiIChvbkNsaWNrKT1cInNpemUuc2V0KCdzbScpXCI+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtbGlnaHQgZmEtbW9iaWxlIGZhLWZ3IFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtYnV0dG9uLWdyb3VwLWl0ZW0+XG4gICAgPC9heC1idXR0b24tZ3JvdXA+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEFYUERlc2lnbmVyVmlld1NpemVUb29sYmFyQ29tcG9uZW50IHtcbiAgcHVibGljIHNpemUgPSBtb2RlbDxzdHJpbmc+KCd4bCcpO1xufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, HostBinding, inject, input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPDesignerBoardComponent } from './components/board/board.component';\nimport { AXPDesignerBreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component';\nimport { AXPDesignerDataSourcesComponent } from './components/drawers/data-sources/data-sources.component';\nimport { AXPDesignerHistoryComponent } from './components/drawers/history/history.component';\nimport { AXPDesignerOutlineComponent } from './components/drawers/outline/outline.component';\nimport { AXPDesignerPagesComponent } from './components/drawers/pages/pages.component';\nimport { AXPDesignerHeaderMenuComponent } from './components/header-menu/header-menu.component';\nimport { AXPDesignerViewSizeToolbarComponent } from './components/size-mode/view-size-toolbar.component';\nimport { AXPDesignerService } from './shared/designer.service';\nimport { AXPTemplateLoadingStrategy } from './shared/designer.types';\nimport { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/components';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/drawer\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/dropdown-button\";\nexport class AXPLayoutDesignerComponent {\n constructor() {\n this.service = inject(AXPDesignerService);\n this.id = input(...(ngDevMode ? [undefined, { debugName: \"id\" }] : []));\n this.strategy = input(...(ngDevMode ? [undefined, { debugName: \"strategy\" }] : []));\n this.nodeConfig = computed(() => this.service.selectedNode() ? get(this.service.selectedNode(), '__meta__.config') : null, ...(ngDevMode ? [{ debugName: \"nodeConfig\" }] : []));\n this.service.onUpdate.subscribe((e) => {\n this.propertyViewer.update(e.values);\n });\n }\n ngOnInit() {\n if (this.id()) {\n this.service.loadById(this.id(), { strategy: (this.strategy() ?? AXPTemplateLoadingStrategy.Connector) });\n }\n }\n get __styles() {\n const styles = {};\n styles[`direction`] = 'ltr';\n return styles;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXPLayoutDesignerComponent, isStandalone: true, selector: \"axp-layout-designer\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, strategy: { classPropertyName: \"strategy\", publicName: \"strategy\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"style\": \"this.__styles\" } }, providers: [AXPDesignerService], viewQueries: [{ propertyName: \"propertyViewer\", first: true, predicate: AXPWidgetPropertyViewerComponent, descendants: true, static: true }], ngImport: i0, template: \"<ax-drawer-container class=\\\"ax-h-full ax-w-full ax-flex ax-relative ax-overflow-hidden\\\">\\n <ax-content class=\\\"ax-contents\\\">\\n <!-- Toolbar Side -->\\n <div class=\\\"ax-min-w-10 ax-bg-lightest ax-border-e ax-sm ax-flex ax-flex-col ax-items-center ax-dark\\\">\\n <div class=\\\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\\\">\\n <img src=\\\"assets/images/logos/icon-light.svg\\\" class=\\\"ax-w-6\\\" />\\n </div>\\n <div class=\\\"ax-py-1\\\"></div>\\n <div class=\\\"ax-flex ax-flex-col ax-gap-2\\\">\\n <!-- <ax-button look=\\\"blank\\\">\\n <ax-icon class=\\\"fa-solid fa-puzzle ax-text-sm\\\"> </ax-icon>\\n </ax-button> -->\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"pages.toggle()\\\" title=\\\"Pages\\\">\\n <ax-icon class=\\\"fa-solid fa-page ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"datasources.toggle()\\\" title=\\\"Data Sources\\\">\\n <ax-icon class=\\\"fa-solid fa-database ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"outline.toggle()\\\" title=\\\"Outline\\\">\\n <ax-icon class=\\\"fa-solid fa-list-tree ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"history.toggle()\\\" title=\\\"History\\\">\\n <ax-icon class=\\\"fa-solid fa-clock-rotate-left ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <!-- <ax-button look=\\\"blank\\\" title=\\\"Timeline\\\">\\n <ax-icon class=\\\"fa-solid fa-diagram-sankey ax-text-sm\\\"> </ax-icon>\\n </ax-button> -->\\n </div>\\n </div>\\n <!-- Main Side -->\\n <div class=\\\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\\\">\\n <!-- Header Toolbar -->\\n <div class=\\\"ax-h-10 ax-bg-lightest ax-border-b ax-flex ax-justify-between ax-px-2 ax-dark\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-items-center ax-text-white ax-justify-start\\\">\\n <axp-designer-header-menu></axp-designer-header-menu>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\">\\n <axp-designer-view-sizes [(size)]=\\\"service.size\\\"></axp-designer-view-sizes>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-end\\\">\\n <ax-dropdown-button mode=\\\"split\\\" look=\\\"solid\\\" text=\\\"Preview\\\" class=\\\"ax-sm\\\"\\n (onClick)=\\\"service.openPreviewDialog()\\\">\\n <ax-button-item-list>\\n <ax-button-item text=\\\"Open in new window\\\" (onClick)=\\\"service.openPreviewWindow()\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-regular fa-window-restore\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n </div>\\n </div>\\n <!-- Board -->\\n <ax-drawer-container class=\\\"ax-w-full ax-flex-1\\\">\\n <!-- Pages -->\\n <ax-drawer #pages location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-pages></axp-designer-pages>\\n </ax-content>\\n </ax-drawer>\\n <!-- Datasources -->\\n <ax-drawer #datasources location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-data-sources></axp-designer-data-sources>\\n </ax-content>\\n </ax-drawer>\\n <!-- Outline Pnael -->\\n <ax-drawer #outline location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-outline></axp-designer-outline>\\n </ax-content>\\n </ax-drawer>\\n <!-- History Pnael -->\\n <ax-drawer #history location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-history></axp-designer-history>\\n </ax-content>\\n </ax-drawer>\\n <!-- Content of board -->\\n <ax-content class=\\\"ax-light ax-bg-lighter ax-flex ax-justify-center ax-p-10\\\">\\n <axp-designer-board class=\\\"ax-rounded-lg ax-bg-lightest ax-shadow-md\\\"> </axp-designer-board>\\n </ax-content>\\n </ax-drawer-container>\\n <!-- Footer -->\\n <div class=\\\"ax-h-10 ax-bg-lightest ax-border-t ax-flex ax-items-center ax-dark\\\">\\n <axp-designer-breadcrumbs class=\\\"ax-border-default ax-p-2 ax-font-normal\\\">\\n </axp-designer-breadcrumbs>\\n </div>\\n </div>\\n </ax-content>\\n <!-- Property Side -->\\n <ax-drawer class=\\\"ax-dark axp-designer-prop-side\\\" location=\\\"end\\\" mode=\\\"push\\\" [collapsed]=\\\"false\\\" #pd>\\n <ax-content class=\\\"ax-flex ax-flex-col ax-h-full ax-overflow-hidden \\\">\\n <div class=\\\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-px-4 ax-border-b ax-h-10\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-gap-2 ax-items-center\\\">\\n <i [ngClass]=\\\"nodeConfig()?.icon\\\"></i>\\n <span class=\\\"ax-font-semibold\\\">{{ nodeConfig()?.title }}</span>\\n </div>\\n </div>\\n <axp-widget-property-viewer [mode]=\\\"'advanced'\\\" [widget]=\\\"service.selectedNode()!\\\"\\n (onChanged)=\\\"service.update({ values: $event.values, mode: $event.mode })\\\" class=\\\"ax-flex-1 ax-overflow-auto\\\">\\n </axp-widget-property-viewer>\\n </ax-content>\\n </ax-drawer>\\n</ax-drawer-container>\", styles: [\"axp-layout-designer .axp-designer-board{background-color:#fff;background-image:linear-gradient(45deg,#f0f0f0 25%,transparent 25%,transparent 75%,#f0f0f0 75%,#f0f0f0),linear-gradient(45deg,#f0f0f0 25%,#fff 25%,#fff 75%,#f0f0f0 75%,#f0f0f0);background-size:20px 20px;background-position:0 0,10px 10px;display:block;height:100%;width:100%;overflow:auto;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-surface),var(--tw-bg-opacity, 1));padding:.75rem}axp-layout-designer .axp-designer-board ax-drawer{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}axp-layout-designer .axp-designer-board.axp-state-design .ax-widget-outline{outline-style:dashed;outline-width:1px;outline-offset:2px;outline-color:#d1d5db}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host{cursor:pointer;position:relative}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:2px;outline-offset:1px;outline-color:rgba(var(--ax-sys-color-lightest-surface),1);outline-color:#60a5fa}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected.ax-widget-container{outline-offset:2px}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:2px;outline-offset:2px;outline-color:#d946ef}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.axp-state-selected{outline-color:#60a5fa}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.ax-widget-container{outline-offset:4px}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:2000;height:100%;width:100%}axp-layout-designer .axp-designer-board .axp-empty-space{display:flex;flex:1 1 0%;cursor:default;align-items:center;justify-content:center;background-color:rgba(var(--ax-sys-color-primary-300),10%);background-image:linear-gradient(135deg,rgba(var(--ax-sys-color-primary-300),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-sys-color-primary-300),50%) 0,rgba(var(--ax-sys-color-primary-300),50%) 60%,transparent 0,transparent);background-size:7.5px 7.5px;height:100%}axp-layout-designer .axp-designer-board .axp-page-widget-header,axp-layout-designer .axp-designer-board .axp-page-widget-footer{filter:grayscale(100%);opacity:.5}axp-layout-designer .axp-designer-board .axp-page-widget-header:hover,axp-layout-designer .axp-designer-board .axp-page-widget-footer:hover{filter:grayscale(0);opacity:1}axp-layout-designer .axp-designer-board .axp-page-widget-header{margin-bottom:.5rem}axp-layout-designer .axp-designer-board .axp-page-widget-footer{margin-top:.5rem}axp-layout-designer .axp-designer-prop-side{width:20rem;border-inline-start-width:1px;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}axp-designer-drawer-content ul.axp-designer-drawer-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}axp-designer-drawer-content ul.axp-designer-drawer-list{padding:.25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}axp-designer-drawer-content ul.axp-designer-drawer-list li{cursor:pointer;border-radius:.125rem;padding:.25rem .5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.15s;animation-timing-function:cubic-bezier(.4,0,.2,1)}axp-designer-drawer-content ul.axp-designer-drawer-list li:hover:not(.axp-designer-drawer-list){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}axp-designer-drawer-content ul.axp-designer-drawer-list li.ax-state-selected{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}axp-designer-drawer-content .axp-designer-drawer-empty{display:flex;align-items:center;justify-content:center;padding:1rem;--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: AXPDesignerBoardComponent, selector: \"axp-designer-board\" }, { kind: \"component\", type: AXPWidgetPropertyViewerComponent, selector: \"axp-widget-property-viewer\", inputs: [\"widget\", \"mode\"], outputs: [\"onChanged\"] }, { kind: \"component\", type: AXPDesignerBreadcrumbsComponent, selector: \"axp-designer-breadcrumbs\" }, { kind: \"component\", type: AXPDesignerOutlineComponent, selector: \"axp-designer-outline\" }, { kind: \"component\", type: AXPDesignerHeaderMenuComponent, selector: \"axp-designer-header-menu\" }, { kind: \"component\", type: AXPDesignerHistoryComponent, selector: \"axp-designer-history\" }, { kind: \"component\", type: AXPDesignerDataSourcesComponent, selector: \"axp-designer-data-sources\" }, { kind: \"component\", type: AXPDesignerPagesComponent, selector: \"axp-designer-pages\" }, { kind: \"component\", type: AXPDesignerViewSizeToolbarComponent, selector: \"axp-designer-view-sizes\", inputs: [\"size\"], outputs: [\"sizeChange\"] }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i2.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i2.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"component\", type: i3.AXDrawerComponent, selector: \"ax-drawer\", inputs: [\"location\", \"showBackdrop\", \"mode\", \"transition\", \"closeOnBackdropClick\", \"backdropClass\", \"collapsed\", \"singleOpenMode\"], outputs: [\"onBackdropClick\", \"collapsedStateChanged\"] }, { kind: \"component\", type: i3.AXDrawerContainerComponent, selector: \"ax-drawer-container\" }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXMenuModule }, { kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"component\", type: i5.AXDropdownButtonComponent, selector: \"ax-dropdown-button\", inputs: [\"disabled\", \"size\", \"color\", \"look\", \"text\", \"type\", \"mode\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"lookChange\", \"colorChange\", \"disabledChange\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-layout-designer', encapsulation: ViewEncapsulation.None, imports: [\n CommonModule,\n AXPWidgetCoreModule,\n AXPDesignerBoardComponent,\n AXPWidgetPropertyViewerComponent,\n AXPDesignerBreadcrumbsComponent,\n AXPDesignerOutlineComponent,\n AXPDesignerHeaderMenuComponent,\n AXPDesignerHistoryComponent,\n AXPDesignerDataSourcesComponent,\n AXPDesignerPagesComponent,\n AXPDesignerViewSizeToolbarComponent,\n AXTabsModule,\n AXButtonModule,\n AXDrawerModule,\n AXDecoratorModule,\n AXMenuModule,\n AXButtonGroupModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n ], providers: [AXPDesignerService], template: \"<ax-drawer-container class=\\\"ax-h-full ax-w-full ax-flex ax-relative ax-overflow-hidden\\\">\\n <ax-content class=\\\"ax-contents\\\">\\n <!-- Toolbar Side -->\\n <div class=\\\"ax-min-w-10 ax-bg-lightest ax-border-e ax-sm ax-flex ax-flex-col ax-items-center ax-dark\\\">\\n <div class=\\\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-border-b\\\">\\n <img src=\\\"assets/images/logos/icon-light.svg\\\" class=\\\"ax-w-6\\\" />\\n </div>\\n <div class=\\\"ax-py-1\\\"></div>\\n <div class=\\\"ax-flex ax-flex-col ax-gap-2\\\">\\n <!-- <ax-button look=\\\"blank\\\">\\n <ax-icon class=\\\"fa-solid fa-puzzle ax-text-sm\\\"> </ax-icon>\\n </ax-button> -->\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"pages.toggle()\\\" title=\\\"Pages\\\">\\n <ax-icon class=\\\"fa-solid fa-page ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"datasources.toggle()\\\" title=\\\"Data Sources\\\">\\n <ax-icon class=\\\"fa-solid fa-database ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"outline.toggle()\\\" title=\\\"Outline\\\">\\n <ax-icon class=\\\"fa-solid fa-list-tree ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"history.toggle()\\\" title=\\\"History\\\">\\n <ax-icon class=\\\"fa-solid fa-clock-rotate-left ax-text-sm\\\"> </ax-icon>\\n </ax-button>\\n <!-- <ax-button look=\\\"blank\\\" title=\\\"Timeline\\\">\\n <ax-icon class=\\\"fa-solid fa-diagram-sankey ax-text-sm\\\"> </ax-icon>\\n </ax-button> -->\\n </div>\\n </div>\\n <!-- Main Side -->\\n <div class=\\\"ax-col-span-10 ax-flex ax-flex-col ax-flex-1\\\">\\n <!-- Header Toolbar -->\\n <div class=\\\"ax-h-10 ax-bg-lightest ax-border-b ax-flex ax-justify-between ax-px-2 ax-dark\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-items-center ax-text-white ax-justify-start\\\">\\n <axp-designer-header-menu></axp-designer-header-menu>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\">\\n <axp-designer-view-sizes [(size)]=\\\"service.size\\\"></axp-designer-view-sizes>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-end\\\">\\n <ax-dropdown-button mode=\\\"split\\\" look=\\\"solid\\\" text=\\\"Preview\\\" class=\\\"ax-sm\\\"\\n (onClick)=\\\"service.openPreviewDialog()\\\">\\n <ax-button-item-list>\\n <ax-button-item text=\\\"Open in new window\\\" (onClick)=\\\"service.openPreviewWindow()\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-regular fa-window-restore\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n </div>\\n </div>\\n <!-- Board -->\\n <ax-drawer-container class=\\\"ax-w-full ax-flex-1\\\">\\n <!-- Pages -->\\n <ax-drawer #pages location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-pages></axp-designer-pages>\\n </ax-content>\\n </ax-drawer>\\n <!-- Datasources -->\\n <ax-drawer #datasources location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-data-sources></axp-designer-data-sources>\\n </ax-content>\\n </ax-drawer>\\n <!-- Outline Pnael -->\\n <ax-drawer #outline location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-outline></axp-designer-outline>\\n </ax-content>\\n </ax-drawer>\\n <!-- History Pnael -->\\n <ax-drawer #history location=\\\"start\\\" mode=\\\"push\\\" class=\\\"ax-dark ax-bg-lightest\\\">\\n <ax-content>\\n <axp-designer-history></axp-designer-history>\\n </ax-content>\\n </ax-drawer>\\n <!-- Content of board -->\\n <ax-content class=\\\"ax-light ax-bg-lighter ax-flex ax-justify-center ax-p-10\\\">\\n <axp-designer-board class=\\\"ax-rounded-lg ax-bg-lightest ax-shadow-md\\\"> </axp-designer-board>\\n </ax-content>\\n </ax-drawer-container>\\n <!-- Footer -->\\n <div class=\\\"ax-h-10 ax-bg-lightest ax-border-t ax-flex ax-items-center ax-dark\\\">\\n <axp-designer-breadcrumbs class=\\\"ax-border-default ax-p-2 ax-font-normal\\\">\\n </axp-designer-breadcrumbs>\\n </div>\\n </div>\\n </ax-content>\\n <!-- Property Side -->\\n <ax-drawer class=\\\"ax-dark axp-designer-prop-side\\\" location=\\\"end\\\" mode=\\\"push\\\" [collapsed]=\\\"false\\\" #pd>\\n <ax-content class=\\\"ax-flex ax-flex-col ax-h-full ax-overflow-hidden \\\">\\n <div class=\\\"ax-flex ax-flex-row ax-w-full ax-justify-between ax-text-white ax-px-4 ax-border-b ax-h-10\\\">\\n <div class=\\\"ax-flex ax-flex-row ax-gap-2 ax-items-center\\\">\\n <i [ngClass]=\\\"nodeConfig()?.icon\\\"></i>\\n <span class=\\\"ax-font-semibold\\\">{{ nodeConfig()?.title }}</span>\\n </div>\\n </div>\\n <axp-widget-property-viewer [mode]=\\\"'advanced'\\\" [widget]=\\\"service.selectedNode()!\\\"\\n (onChanged)=\\\"service.update({ values: $event.values, mode: $event.mode })\\\" class=\\\"ax-flex-1 ax-overflow-auto\\\">\\n </axp-widget-property-viewer>\\n </ax-content>\\n </ax-drawer>\\n</ax-drawer-container>\", styles: [\"axp-layout-designer .axp-designer-board{background-color:#fff;background-image:linear-gradient(45deg,#f0f0f0 25%,transparent 25%,transparent 75%,#f0f0f0 75%,#f0f0f0),linear-gradient(45deg,#f0f0f0 25%,#fff 25%,#fff 75%,#f0f0f0 75%,#f0f0f0);background-size:20px 20px;background-position:0 0,10px 10px;display:block;height:100%;width:100%;overflow:auto;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-surface),var(--tw-bg-opacity, 1));padding:.75rem}axp-layout-designer .axp-designer-board ax-drawer{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}axp-layout-designer .axp-designer-board.axp-state-design .ax-widget-outline{outline-style:dashed;outline-width:1px;outline-offset:2px;outline-color:#d1d5db}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host{cursor:pointer;position:relative}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected{outline-style:solid;outline-width:2px;outline-offset:1px;outline-color:rgba(var(--ax-sys-color-lightest-surface),1);outline-color:#60a5fa}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-selected.ax-widget-container{outline-offset:2px}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover{outline-style:dashed;outline-width:2px;outline-offset:2px;outline-color:#d946ef}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.axp-state-selected{outline-color:#60a5fa}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host.axp-state-hover.ax-widget-container{outline-offset:4px}axp-layout-designer .axp-designer-board.axp-state-design .axp-widget-host .axp-widget-overlay{position:absolute;left:0;top:0;right:0;bottom:0;z-index:2000;height:100%;width:100%}axp-layout-designer .axp-designer-board .axp-empty-space{display:flex;flex:1 1 0%;cursor:default;align-items:center;justify-content:center;background-color:rgba(var(--ax-sys-color-primary-300),10%);background-image:linear-gradient(135deg,rgba(var(--ax-sys-color-primary-300),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-sys-color-primary-300),50%) 0,rgba(var(--ax-sys-color-primary-300),50%) 60%,transparent 0,transparent);background-size:7.5px 7.5px;height:100%}axp-layout-designer .axp-designer-board .axp-page-widget-header,axp-layout-designer .axp-designer-board .axp-page-widget-footer{filter:grayscale(100%);opacity:.5}axp-layout-designer .axp-designer-board .axp-page-widget-header:hover,axp-layout-designer .axp-designer-board .axp-page-widget-footer:hover{filter:grayscale(0);opacity:1}axp-layout-designer .axp-designer-board .axp-page-widget-header{margin-bottom:.5rem}axp-layout-designer .axp-designer-board .axp-page-widget-footer{margin-top:.5rem}axp-layout-designer .axp-designer-prop-side{width:20rem;border-inline-start-width:1px;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}axp-designer-drawer-content ul.axp-designer-drawer-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}axp-designer-drawer-content ul.axp-designer-drawer-list{padding:.25rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}axp-designer-drawer-content ul.axp-designer-drawer-list li{cursor:pointer;border-radius:.125rem;padding:.25rem .5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.15s;animation-timing-function:cubic-bezier(.4,0,.2,1)}axp-designer-drawer-content ul.axp-designer-drawer-list li:hover:not(.axp-designer-drawer-list){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}axp-designer-drawer-content ul.axp-designer-drawer-list li.ax-state-selected{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}axp-designer-drawer-content .axp-designer-drawer-empty{display:flex;align-items:center;justify-content:center;padding:1rem;--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: \"id\", required: false }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: \"strategy\", required: false }] }], propertyViewer: [{\n type: ViewChild,\n args: [AXPWidgetPropertyViewerComponent, { static: true }]\n }], __styles: [{\n type: HostBinding,\n args: ['style']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci9kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL2Rlc2lnbmVyL2Rlc2lnbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQW1CLE1BQU0scUNBQXFDLENBQUM7QUFDM0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxN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K0JBQStCO3dCQUMvQix5QkFBeUI7d0JBQ3pCLG1DQUFtQzt3QkFDbkMsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7cUJBQ3ZCLGFBQ1UsQ0FBQyxrQkFBa0IsQ0FBQzs7c0JBUTlCLFNBQVM7dUJBQUMsZ0NBQWdDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztzQkFtQjVELFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkdyb3VwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYRHJvcGRvd25CdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24tYnV0dG9uJztcbmltcG9ydCB7IEFYTWVudU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUsIEFYUFdpZGdldENvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBIb3N0QmluZGluZywgaW5qZWN0LCBpbnB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUERlc2lnbmVyQm9hcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYm9hcmQvYm9hcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyQnJlYWRjcnVtYnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyRGF0YVNvdXJjZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJhd2Vycy9kYXRhLXNvdXJjZXMvZGF0YS1zb3VyY2VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckhpc3RvcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJhd2Vycy9oaXN0b3J5L2hpc3RvcnkuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyT3V0bGluZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kcmF3ZXJzL291dGxpbmUvb3V0bGluZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJQYWdlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kcmF3ZXJzL3BhZ2VzL3BhZ2VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lckhlYWRlck1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyLW1lbnUvaGVhZGVyLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUERlc2lnbmVyVmlld1NpemVUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NpemUtbW9kZS92aWV3LXNpemUtdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZGVzaWduZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4vc2hhcmVkL2Rlc2lnbmVyLnR5cGVzJztcbmltcG9ydCB7IEFYUFdpZGdldFByb3BlcnR5Vmlld2VyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtZGVzaWduZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVzaWduZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGVzaWduZXIuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYUFdpZGdldENvcmVNb2R1bGUsXG4gICAgQVhQRGVzaWduZXJCb2FyZENvbXBvbmVudCxcbiAgICBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudCxcbiAgICBBWFBEZXNpZ25lckJyZWFkY3J1bWJzQ29tcG9uZW50LFxuICAgIEFYUERlc2lnbmVyT3V0bGluZUNvbXBvbmVudCxcbiAgICBBWFBEZXNpZ25lckhlYWRlck1lbnVDb21wb25lbnQsXG4gICAgQVhQRGVzaWduZXJIaXN0b3J5Q29tcG9uZW50LFxuICAgIEFYUERlc2lnbmVyRGF0YVNvdXJjZXNDb21wb25lbnQsXG4gICAgQVhQRGVzaWduZXJQYWdlc0NvbXBvbmVudCxcbiAgICBBWFBEZXNpZ25lclZpZXdTaXplVG9vbGJhckNvbXBvbmVudCxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhNZW51TW9kdWxlLFxuICAgIEFYQnV0dG9uR3JvdXBNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtBWFBEZXNpZ25lclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEFYUExheW91dERlc2lnbmVyQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhQRGVzaWduZXJTZXJ2aWNlKTtcblxuICBpZCA9IGlucHV0PHN0cmluZyB8IG51bGw+KCk7XG4gIHN0cmF0ZWd5ID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4oKTtcblxuICBAVmlld0NoaWxkKEFYUFdpZGdldFByb3BlcnR5Vmlld2VyQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIHByb3BlcnR5Vmlld2VyOiBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudDtcblxuICBwcm90ZWN0ZWQgbm9kZUNvbmZpZyA9IGNvbXB1dGVkPEFYUFdpZGdldENvbmZpZyB8IG51bGw+KCgpID0+XG4gICAgdGhpcy5zZXJ2aWNlLnNlbGVjdGVkTm9kZSgpID8gKGdldCh0aGlzLnNlcnZpY2Uuc2VsZWN0ZWROb2RlKCksICdfX21ldGFfXy5jb25maWcnKSBhcyBhbnkgYXMgQVhQV2lkZ2V0Q29uZmlnKSA6IG51bGxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNlcnZpY2Uub25VcGRhdGUuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICB0aGlzLnByb3BlcnR5Vmlld2VyLnVwZGF0ZShlLnZhbHVlcyk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5pZCgpKSB7XG4gICAgICB0aGlzLnNlcnZpY2UubG9hZEJ5SWQodGhpcy5pZCgpISwgeyBzdHJhdGVneTogKHRoaXMuc3RyYXRlZ3koKSA/PyBBWFBUZW1wbGF0ZUxvYWRpbmdTdHJhdGVneS5Db25uZWN0b3IpIGFzIEFYUFRlbXBsYXRlTG9hZGluZ1N0cmF0ZWd5IH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKVxuICBwcml2YXRlIGdldCBfX3N0eWxlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0eWxlczogYW55ID0ge307XG4gICAgc3R5bGVzW2BkaXJlY3Rpb25gXSA9ICdsdHInO1xuICAgIHJldHVybiBzdHlsZXM7XG4gIH1cbn1cbiIsIjxheC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiYXgtaC1mdWxsIGF4LXctZnVsbCBheC1mbGV4IGF4LXJlbGF0aXZlIGF4LW92ZXJmbG93LWhpZGRlblwiPlxuICA8YXgtY29udGVudCBjbGFzcz1cImF4LWNvbnRlbnRzXCI+XG4gICAgPCEtLSBUb29sYmFyIFNpZGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LW1pbi13LTEwIGF4LWJnLWxpZ2h0ZXN0IGF4LWJvcmRlci1lIGF4LXNtIGF4LWZsZXggYXgtZmxleC1jb2wgYXgtaXRlbXMtY2VudGVyIGF4LWRhcmtcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1taW4tdy0xMCBheC1oLTEwIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LWJvcmRlci1iXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ltYWdlcy9sb2dvcy9pY29uLWxpZ2h0LnN2Z1wiIGNsYXNzPVwiYXgtdy02XCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LXB5LTFcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0yXCI+XG4gICAgICAgIDwhLS0gPGF4LWJ1dHRvbiAgbG9vaz1cImJsYW5rXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1wdXp6bGUgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPiAtLT5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJwYWdlcy50b2dnbGUoKVwiIHRpdGxlPVwiUGFnZXNcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXBhZ2UgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImRhdGFzb3VyY2VzLnRvZ2dsZSgpXCIgdGl0bGU9XCJEYXRhIFNvdXJjZXNcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWRhdGFiYXNlIGF4LXRleHQtc21cIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJvdXRsaW5lLnRvZ2dsZSgpXCIgdGl0bGU9XCJPdXRsaW5lXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1saXN0LXRyZWUgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImhpc3RvcnkudG9nZ2xlKClcIiB0aXRsZT1cIkhpc3RvcnlcIj5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWNsb2NrLXJvdGF0ZS1sZWZ0IGF4LXRleHQtc21cIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPCEtLSA8YXgtYnV0dG9uICBsb29rPVwiYmxhbmtcIiB0aXRsZT1cIlRpbWVsaW5lXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1kaWFncmFtLXNhbmtleSBheC10ZXh0LXNtXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+IC0tPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPCEtLSBNYWluIFNpZGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbC1zcGFuLTEwIGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZmxleC0xXCI+XG4gICAgICA8IS0tIEhlYWRlciBUb29sYmFyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWgtMTAgYXgtYmctbGlnaHRlc3QgYXgtYm9yZGVyLWIgYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtcHgtMiBheC1kYXJrXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtMSBheC1pdGVtcy1jZW50ZXIgYXgtdGV4dC13aGl0ZSBheC1qdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgICAgPGF4cC1kZXNpZ25lci1oZWFkZXItbWVudT48L2F4cC1kZXNpZ25lci1oZWFkZXItbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtMSBheC1mbGV4LXJvdyBheC1nYXAtMiBheC1zbSBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8YXhwLWRlc2lnbmVyLXZpZXctc2l6ZXMgWyhzaXplKV09XCJzZXJ2aWNlLnNpemVcIj48L2F4cC1kZXNpZ25lci12aWV3LXNpemVzPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC0xIGF4LWZsZXgtcm93IGF4LWdhcC0yIGF4LXNtIGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgIDxheC1kcm9wZG93bi1idXR0b24gbW9kZT1cInNwbGl0XCIgbG9vaz1cInNvbGlkXCIgdGV4dD1cIlByZXZpZXdcIiBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cInNlcnZpY2Uub3BlblByZXZpZXdEaWFsb2coKVwiPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSB0ZXh0PVwiT3BlbiBpbiBuZXcgd2luZG93XCIgKG9uQ2xpY2spPVwic2VydmljZS5vcGVuUHJldmlld1dpbmRvdygpXCI+XG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1yZWd1bGFyIGZhLXdpbmRvdy1yZXN0b3JlXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgIDwvYXgtZHJvcGRvd24tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBCb2FyZCAtLT5cbiAgICAgIDxheC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiYXgtdy1mdWxsIGF4LWZsZXgtMVwiPlxuICAgICAgICA8IS0tIFBhZ2VzIC0tPlxuICAgICAgICA8YXgtZHJhd2VyICNwYWdlcyBsb2NhdGlvbj1cInN0YXJ0XCIgbW9kZT1cInB1c2hcIiBjbGFzcz1cImF4LWRhcmsgYXgtYmctbGlnaHRlc3RcIj5cbiAgICAgICAgICA8YXgtY29udGVudD5cbiAgICAgICAgICAgIDxheHAtZGVzaWduZXItcGFnZXM+PC9heHAtZGVzaWduZXItcGFnZXM+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgPCEtLSBEYXRhc291cmNlcyAtLT5cbiAgICAgICAgPGF4LWRyYXdlciAjZGF0YXNvdXJjZXMgbG9jYXRpb249XCJzdGFydFwiIG1vZGU9XCJwdXNoXCIgY2xhc3M9XCJheC1kYXJrIGF4LWJnLWxpZ2h0ZXN0XCI+XG4gICAgICAgICAgPGF4LWNvbnRlbnQ+XG4gICAgICAgICAgICA8YXhwLWRlc2lnbmVyLWRhdGEtc291cmNlcz48L2F4cC1kZXNpZ25lci1kYXRhLXNvdXJjZXM+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgPCEtLSBPdXRsaW5lIFBuYWVsIC0tPlxuICAgICAgICA8YXgtZHJhd2VyICNvdXRsaW5lIGxvY2F0aW9uPVwic3RhcnRcIiBtb2RlPVwicHVzaFwiIGNsYXNzPVwiYXgtZGFyayBheC1iZy1saWdodGVzdFwiPlxuICAgICAgICAgIDxheC1jb250ZW50PlxuICAgICAgICAgICAgPGF4cC1kZXNpZ25lci1vdXRsaW5lPjwvYXhwLWRlc2lnbmVyLW91dGxpbmU+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgPCEtLSBIaXN0b3J5IFBuYWVsIC0tPlxuICAgICAgICA8YXgtZHJhd2VyICNoaXN0b3J5IGxvY2F0aW9uPVwic3RhcnRcIiBtb2RlPVwicHVzaFwiIGNsYXNzPVwiYXgtZGFyayBheC1iZy1saWdodGVzdFwiPlxuICAgICAgICAgIDxheC1jb250ZW50PlxuICAgICAgICAgICAgPGF4cC1kZXNpZ25lci1oaXN0b3J5PjwvYXhwLWRlc2lnbmVyLWhpc3Rvcnk+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICA8L2F4LWRyYXdlcj5cbiAgICAgICAgPCEtLSBDb250ZW50IG9mIGJvYXJkIC0tPlxuICAgICAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LWxpZ2h0IGF4LWJnLWxpZ2h0ZXIgYXgtZmxleCBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTEwXCI+XG4gICAgICAgICAgPGF4cC1kZXNpZ25lci1ib2FyZCBjbGFzcz1cImF4LXJvdW5kZWQtbGcgYXgtYmctbGlnaHRlc3QgYXgtc2hhZG93LW1kXCI+IDwvYXhwLWRlc2lnbmVyLWJvYXJkPlxuICAgICAgICA8L2F4LWNvbnRlbnQ+XG4gICAgICA8L2F4LWRyYXdlci1jb250YWluZXI+XG4gICAgICA8IS0tIEZvb3RlciAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1oLTEwIGF4LWJnLWxpZ2h0ZXN0IGF4LWJvcmRlci10IGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWRhcmtcIj5cbiAgICAgICAgPGF4cC1kZXNpZ25lci1icmVhZGNydW1icyBjbGFzcz1cImF4LWJvcmRlci1kZWZhdWx0ICBheC1wLTIgYXgtZm9udC1ub3JtYWxcIj5cbiAgICAgICAgPC9heHAtZGVzaWduZXItYnJlYWRjcnVtYnM+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9heC1jb250ZW50PlxuICA8IS0tIFByb3BlcnR5IFNpZGUgLS0+XG4gIDxheC1kcmF3ZXIgY2xhc3M9XCJheC1kYXJrIGF4cC1kZXNpZ25lci1wcm9wLXNpZGVcIiBsb2NhdGlvbj1cImVuZFwiIG1vZGU9XCJwdXNoXCIgW2NvbGxhcHNlZF09XCJmYWxzZVwiICNwZD5cbiAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtaC1mdWxsIGF4LW92ZXJmbG93LWhpZGRlbiBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtcm93IGF4LXctZnVsbCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtdGV4dC13aGl0ZSBheC1weC00IGF4LWJvcmRlci1iIGF4LWgtMTBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1yb3cgYXgtZ2FwLTIgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGkgW25nQ2xhc3NdPVwibm9kZUNvbmZpZygpPy5pY29uXCI+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7IG5vZGVDb25maWcoKT8udGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXhwLXdpZGdldC1wcm9wZXJ0eS12aWV3ZXIgW21vZGVdPVwiJ2FkdmFuY2VkJ1wiIFt3aWRnZXRdPVwic2VydmljZS5zZWxlY3RlZE5vZGUoKSFcIlxuICAgICAgICAob25DaGFuZ2VkKT1cInNlcnZpY2UudXBkYXRlKHsgdmFsdWVzOiAkZXZlbnQudmFsdWVzLCBtb2RlOiAkZXZlbnQubW9kZSB9KVwiIGNsYXNzPVwiYXgtZmxleC0xIGF4LW92ZXJmbG93LWF1dG9cIj5cbiAgICAgIDwvYXhwLXdpZGdldC1wcm9wZXJ0eS12aWV3ZXI+XG4gICAgPC9heC1jb250ZW50PlxuICA8L2F4LWRyYXdlcj5cbjwvYXgtZHJhd2VyLWNvbnRhaW5lcj4iXX0=","import { AXPWidgetCoreModule, AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Component, computed, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXPDesignerConnector, AXPDesignerMessageKeys } from '../designer';\nimport { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/widget-core\";\nexport class AXPLayoutDesignerPreviewViewerComponent {\n constructor() {\n this.context = {};\n this.document = signal({ type: AXPWidgetsCatalog.document }, ...(ngDevMode ? [{ debugName: \"document\" }] : []));\n this.currentPageIndex = signal(0, ...(ngDevMode ? [{ debugName: \"currentPageIndex\" }] : []));\n this.connector = inject(AXPDesignerConnector);\n this.eventService = inject(AXPBroadcastEventService);\n this.unsubscriber = inject(AXUnsubscriber);\n this.currentPage = computed(() => {\n return (this.document().children?.[this.currentPageIndex()] ?? { type: AXPWidgetsCatalog.pageLayout });\n }, ...(ngDevMode ? [{ debugName: \"currentPage\" }] : []));\n this.eventService\n .listen(AXPDesignerMessageKeys.Preview)\n .pipe(this.unsubscriber.takeUntilDestroy)\n .subscribe((event) => {\n this.document.set(event.data.document);\n });\n //\n if (document.body.parentElement) {\n document.body.parentElement.classList.remove('ax-dark');\n document.body.parentElement.style.backgroundColor = 'unset';\n document.body.style.backgroundColor = 'unset';\n }\n }\n ngAfterViewInit() {\n this.eventService.publish(AXPDesignerMessageKeys.Loaded);\n }\n handleContextChanged(e) {\n this.context = e.data;\n this.eventService.publish(AXPDesignerMessageKeys.ContextChanged, this.context);\n }\n ngOnDestroy() {\n this.eventService.unsubscribe(AXPDesignerMessageKeys.Preview);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerPreviewViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPLayoutDesignerPreviewViewerComponent, isStandalone: true, selector: \"axp-layout-builder-viewer\", providers: [AXUnsubscriber], ngImport: i0, template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChanged($event)\">\n <ng-container axp-widget-renderer [node]=\"currentPage()\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: i1.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i1.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerPreviewViewerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-layout-builder-viewer',\n template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChanged($event)\">\n <ng-container axp-widget-renderer [node]=\"currentPage()\" [mode]=\"'edit'\"></ng-container>\n </axp-widgets-container>\n `,\n encapsulation: ViewEncapsulation.None,\n imports: [AXPWidgetCoreModule],\n providers: [AXUnsubscriber],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXIvc3JjL2xpYi9wcmV2aWV3L3ByZXZpZXctdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQWtELGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFN0ksT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQTZCLE1BQU0sYUFBYSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBYXBELE1BQU0sT0FBTyx1Q0FBdUM7SUFnQmxEO1FBZlUsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUVULGFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxFQUFtQixvREFBQyxDQUFDO1FBQ3pFLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxDQUFDLDREQUFDLENBQUM7UUFDdEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDaEQsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0IsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzdDLE9BQU8sQ0FDTCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSyxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQW9CLENBQ2pILENBQUM7UUFDSixDQUFDLHVEQUFDLENBQUM7UUFJRCxJQUFJLENBQUMsWUFBWTthQUNkLE1BQU0sQ0FBNEIsc0JBQXNCLENBQUMsT0FBTyxDQUFDO2FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO2FBQ3hDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUE7UUFDSixFQUFFO1FBQ0YsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEQsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUM7WUFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxRCxDQUFDO0lBRVMsb0JBQW9CLENBQUMsQ0FBa0M7UUFDL0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDaEYsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVoRSxDQUFDOytHQTNDVSx1Q0FBdUM7bUdBQXZDLHVDQUF1Qyx3RUFGdkMsQ0FBQyxjQUFjLENBQUMsMEJBUGpCOzs7O0dBSVQsMkRBRVMsbUJBQW1COzs0RkFHbEIsdUNBQXVDO2tCQVhuRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7OztHQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDOUIsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUsIEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQsIEFYUFdpZGdldE5vZGUsIEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUERlc2lnbmVyQ29ubmVjdG9yLCBBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLCBBWFBEZXNpZ25lclByZXZpZXdNZXNzYWdlIH0gZnJvbSAnLi4vZGVzaWduZXInO1xuaW1wb3J0IHsgQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1idWlsZGVyLXZpZXdlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJjb250ZXh0XCIgKG9uQ29udGV4dENoYW5nZWQpPVwiaGFuZGxlQ29udGV4dENoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBheHAtd2lkZ2V0LXJlbmRlcmVyIFtub2RlXT1cImN1cnJlbnRQYWdlKClcIiBbbW9kZV09XCInZWRpdCdcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2F4cC13aWRnZXRzLWNvbnRhaW5lcj5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYUFdpZGdldENvcmVNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtBWFVuc3Vic2NyaWJlcl0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExheW91dERlc2lnbmVyUHJldmlld1ZpZXdlckNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBjb250ZXh0OiBhbnkgPSB7fTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQgPSBzaWduYWwoeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kb2N1bWVudCB9IGFzIEFYUFdpZGdldE5vZGUpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBhZ2VJbmRleCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIGNvbm5lY3RvciA9IGluamVjdChBWFBEZXNpZ25lckNvbm5lY3Rvcik7XG4gIHByb3RlY3RlZCBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHVuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRQYWdlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmRvY3VtZW50KCkuY2hpbGRyZW4/Llt0aGlzLmN1cnJlbnRQYWdlSW5kZXgoKV0gPz8gKHsgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cucGFnZUxheW91dCB9IGFzIEFYUFdpZGdldE5vZGUpXG4gICAgKTtcbiAgfSk7XG5cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLmxpc3RlbjxBWFBEZXNpZ25lclByZXZpZXdNZXNzYWdlPihBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlByZXZpZXcpXG4gICAgICAucGlwZSh0aGlzLnVuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5zZXQoZXZlbnQuZGF0YS5kb2N1bWVudCk7XG4gICAgICB9KVxuICAgIC8vXG4gICAgaWYgKGRvY3VtZW50LmJvZHkucGFyZW50RWxlbWVudCkge1xuICAgICAgZG9jdW1lbnQuYm9keS5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LWRhcmsnKTtcbiAgICAgIGRvY3VtZW50LmJvZHkucGFyZW50RWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndW5zZXQnO1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndW5zZXQnO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5wdWJsaXNoKEFYUERlc2lnbmVyTWVzc2FnZUtleXMuTG9hZGVkKVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbnRleHRDaGFuZ2VkKGU6IEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBlLmRhdGE7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UucHVibGlzaChBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLkNvbnRleHRDaGFuZ2VkLCB0aGlzLmNvbnRleHQpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS51bnN1YnNjcmliZShBWFBEZXNpZ25lck1lc3NhZ2VLZXlzLlByZXZpZXcpO1xuXG4gIH1cbn1cbiJdfQ==","import { AXSafePipe } from '@acorex/core/pipes';\nimport { Component, computed, HostBinding, input, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPLayoutDesignerPreviewFrameComponent {\n constructor() {\n this.size = input('xl', ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n this.width = computed(() => {\n ;\n switch (this.size()) {\n case 'sm':\n return '340px';\n case 'md':\n case 'lg':\n return '768px';\n default:\n return '100%';\n }\n }, ...(ngDevMode ? [{ debugName: \"width\" }] : []));\n }\n get __class() {\n const cls = {};\n cls['ax-flex'] = true;\n cls['ax-flex-col'] = true;\n cls['ax-h-full'] = true;\n cls['ax-W-full'] = true;\n cls['lg:ax-p-20'] = true;\n cls['ax-bg-[#f3f3fe]'] = true;\n cls['ax-w-full'] = true;\n cls['ax-items-center'] = true;\n cls['ax-overflow-auto'] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerPreviewFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXPLayoutDesignerPreviewFrameComponent, isStandalone: true, selector: \"axp-layout-preview-frame\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class\": \"this.__class\" } }, ngImport: i0, template: `\n <div\n class=\"ax-flex-1 lg:ax-rounded-lg ax-bg-white lg:ax-shadow-md ax-p-2\"\n [style.width]=\"width()\"\n style=\"max-width: 1280px;\"\n >\n <iframe\n class=\"ax-w-full ax-h-full ax-bg-transparent\"\n [frameBorder]=\"0\"\n [src]=\"'/forms/viewer' | safe : 'resourceUrl'\"\n >\n </iframe>\n </div>\n `, isInline: true, dependencies: [{ kind: \"pipe\", type: AXSafePipe, name: \"safe\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerPreviewFrameComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-layout-preview-frame',\n template: `\n <div\n class=\"ax-flex-1 lg:ax-rounded-lg ax-bg-white lg:ax-shadow-md ax-p-2\"\n [style.width]=\"width()\"\n style=\"max-width: 1280px;\"\n >\n <iframe\n class=\"ax-w-full ax-h-full ax-bg-transparent\"\n [frameBorder]=\"0\"\n [src]=\"'/forms/viewer' | safe : 'resourceUrl'\"\n >\n </iframe>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n imports: [AXSafePipe]\n }]\n }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: \"size\", required: false }] }], __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy1mcmFtZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy1mcmFtZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBcUIzRixNQUFNLE9BQU8sc0NBQXNDO0lBbkJuRDtRQW9CUyxTQUFJLEdBQUcsS0FBSyxDQUFTLElBQUksZ0RBQUMsQ0FBQztRQUV4QixVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM5QixDQUFDO1lBQ0QsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxJQUFJO29CQUNQLE9BQU8sT0FBTyxDQUFDO2dCQUNqQixLQUFLLElBQUksQ0FBQztnQkFDVixLQUFLLElBQUk7b0JBQ1AsT0FBTyxPQUFPLENBQUM7Z0JBQ2pCO29CQUNFLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDLGlEQUFDLENBQUM7S0FnQko7SUFkQyxJQUNZLE9BQU87UUFDakIsTUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMxQixHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDeEIsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN6QixHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QixHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUIsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzsrR0E3QlUsc0NBQXNDO21HQUF0QyxzQ0FBc0Msd1FBakJyQzs7Ozs7Ozs7Ozs7OztHQWFYLHVEQUVXLFVBQVU7OzRGQUVYLHNDQUFzQztrQkFuQmxELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVg7b0JBQ0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDeEI7O3NCQWlCRSxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFNhZmVQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BpcGVzJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEhvc3RCaW5kaW5nLCBpbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LXByZXZpZXctZnJhbWUnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJheC1mbGV4LTEgbGc6YXgtcm91bmRlZC1sZyBheC1iZy13aGl0ZSBsZzpheC1zaGFkb3ctbWQgICBheC1wLTJcIlxuICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoKClcIlxuICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDEyODBweDtcIlxuICAgID5cbiAgICAgIDxpZnJhbWVcbiAgICAgICAgY2xhc3M9XCJheC13LWZ1bGwgYXgtaC1mdWxsIGF4LWJnLXRyYW5zcGFyZW50XCJcbiAgICAgICAgW2ZyYW1lQm9yZGVyXT1cIjBcIlxuICAgICAgICBbc3JjXT1cIicvZm9ybXMvdmlld2VyJyB8IHNhZmUgOiAncmVzb3VyY2VVcmwnXCJcbiAgICAgID5cbiAgICAgIDwvaWZyYW1lPlxuICAgIDwvZGl2PlxuICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW1wb3J0czogW0FYU2FmZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEFYUExheW91dERlc2lnbmVyUHJldmlld0ZyYW1lQ29tcG9uZW50IHtcbiAgcHVibGljIHNpemUgPSBpbnB1dDxzdHJpbmc+KCd4bCcpO1xuXG4gIHByb3RlY3RlZCB3aWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICA7XG4gICAgc3dpdGNoICh0aGlzLnNpemUoKSkge1xuICAgICAgY2FzZSAnc20nOlxuICAgICAgICByZXR1cm4gJzM0MHB4JztcbiAgICAgIGNhc2UgJ21kJzpcbiAgICAgIGNhc2UgJ2xnJzpcbiAgICAgICAgcmV0dXJuICc3NjhweCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJzEwMCUnO1xuICAgIH1cbiAgfSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9fY2xhc3MoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbHM6IGFueSA9IHt9O1xuICAgIGNsc1snYXgtZmxleCddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LWZsZXgtY29sJ10gPSB0cnVlO1xuICAgIGNsc1snYXgtaC1mdWxsJ10gPSB0cnVlO1xuICAgIGNsc1snYXgtVy1mdWxsJ10gPSB0cnVlO1xuICAgIGNsc1snbGc6YXgtcC0yMCddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LWJnLVsjZjNmM2ZlXSddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LXctZnVsbCddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LWl0ZW1zLWNlbnRlciddID0gdHJ1ZTtcbiAgICBjbHNbJ2F4LW92ZXJmbG93LWF1dG8nXSA9IHRydWU7XG4gICAgcmV0dXJuIGNscztcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXJsonViewerModule } from '@acorex/components/json-viewer';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXPClipBoardService, AXPSettingService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { Component, inject, signal, ViewEncapsulation } from '@angular/core';\nimport { AXPDesignerViewSizeToolbarComponent } from '../designer/components/size-mode/view-size-toolbar.component';\nimport { AXPLayoutDesignerPreviewFrameComponent } from './preview-frame.component';\nimport { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXPDesignerMessageKeys } from '../designer';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/drawer\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/json-viewer\";\nexport class AXPLayoutDesignerPreviewComponent extends AXBasePageComponent {\n constructor() {\n super();\n this.clipboard = inject(AXPClipBoardService);\n this.settings = inject(AXPSettingService);\n this.eventService = inject(AXPBroadcastEventService);\n this.initialSize = 'xl';\n this.isDialogWindow = false;\n this.jsonSettingsKey = 'forms:preview:json';\n this.jsonViewCollapsed = signal(true, ...(ngDevMode ? [{ debugName: \"jsonViewCollapsed\" }] : []));\n this.size = signal(this.initialSize, ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n this.context = signal({}, ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n //\n this.eventService.listen(AXPDesignerMessageKeys.ContextChanged).subscribe((event) => {\n this.context.set(event.data);\n });\n }\n async ngOnInit() {\n this.size.set(this.initialSize);\n const settingValue = await this.settings.get(this.jsonSettingsKey);\n this.jsonViewCollapsed.set(!settingValue);\n }\n handleCloseButton() {\n if (this.isDialogWindow) {\n this.close();\n }\n else {\n window.opener.focus();\n window.close();\n }\n }\n handlePreviewWindow() {\n this.eventService.publish(AXPDesignerMessageKeys.PreviewWindow);\n this.close();\n }\n handleCopyJson() {\n this.clipboard.copy('Json Data', JSON.stringify(this.context()));\n }\n async handleCollapsedChange(value) {\n await this.settings.scope(AXPPlatformScope.User).set(this.jsonSettingsKey, !value);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPLayoutDesignerPreviewComponent, isStandalone: true, selector: \"axp-layout-preview\", usesInheritance: true, ngImport: i0, template: \"<ax-drawer-container class=\\\"ax-dark ax-h-full ax-w-full ax-flex ax-relative ax-overflow-hidden\\\">\\n <ax-content>\\n <div class=\\\"ax-dark ax-flex ax-flex-col ax-h-full ax-relative ax-bg-default\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-lightest ax-shadow ax-sm ax-px-2\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-start\\\">\\n <ax-button look=\\\"blank\\\" text=\\\"Back to Designer\\\" (onClick)=\\\"handleCloseButton()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-chevron-left\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\">\\n <axp-designer-view-sizes [(size)]=\\\"size\\\"></axp-designer-view-sizes>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-end\\\">\\n @if(isDialogWindow) {\\n <ax-button look=\\\"blank\\\" [title]=\\\"'Preview in to seperate window'\\\" (onClick)=\\\"handlePreviewWindow()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-window-restore\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }@else { }\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"jsonView.toggle()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-list-tree\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n\\n <div class=\\\"ax-bg-[#f3f3fe] ax-flex ax-flex-1 ax-justify-center ax-overflow-auto\\\">\\n <axp-layout-preview-frame [size]=\\\"size()\\\"></axp-layout-preview-frame>\\n </div>\\n </div>\\n </ax-content>\\n <!-- [collapsed]=\\\"jsonViewCollapsed()\\\"\\n (collapsedChange)=\\\"handleCollapsedChange($event)\\\" -->\\n <ax-drawer class=\\\"ax-w-1/3 ax-border-s\\\" location=\\\"end\\\" mode=\\\"push\\\" #jsonView>\\n <ax-content>\\n <div class=\\\"ax-dark ax-flex ax-flex-col ax-h-full ax-relative ax-bg-default\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-lightest ax-shadow ax-sm ax-px-2\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-start\\\">\\n <span class=\\\"ax-text-surface-fore ax-font-semibold\\\">Form Data</span>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\"></div>\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-end\\\">\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"handleCopyJson()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-copy\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n <div class=\\\"ax-px-6 ax-text-white\\\">\\n <ax-json-viewer [json]=\\\"context()\\\"></ax-json-viewer>\\n </div>\\n </div>\\n </ax-content>\\n </ax-drawer>\\n</ax-drawer-container>\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"component\", type: i2.AXDrawerComponent, selector: \"ax-drawer\", inputs: [\"location\", \"showBackdrop\", \"mode\", \"transition\", \"closeOnBackdropClick\", \"backdropClass\", \"collapsed\", \"singleOpenMode\"], outputs: [\"onBackdropClick\", \"collapsedStateChanged\"] }, { kind: \"component\", type: i2.AXDrawerContainerComponent, selector: \"ax-drawer-container\" }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXJsonViewerModule }, { kind: \"component\", type: i4.JsonViewerComponent, selector: \"ax-json-viewer\", inputs: [\"json\"] }, { kind: \"component\", type: AXPLayoutDesignerPreviewFrameComponent, selector: \"axp-layout-preview-frame\", inputs: [\"size\"] }, { kind: \"component\", type: AXPDesignerViewSizeToolbarComponent, selector: \"axp-designer-view-sizes\", inputs: [\"size\"], outputs: [\"sizeChange\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLayoutDesignerPreviewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-layout-preview', encapsulation: ViewEncapsulation.None, imports: [\n AXButtonModule,\n AXButtonGroupModule,\n AXDrawerModule,\n AXDecoratorModule,\n AXJsonViewerModule,\n AXPLayoutDesignerPreviewFrameComponent,\n AXPDesignerViewSizeToolbarComponent\n ], template: \"<ax-drawer-container class=\\\"ax-dark ax-h-full ax-w-full ax-flex ax-relative ax-overflow-hidden\\\">\\n <ax-content>\\n <div class=\\\"ax-dark ax-flex ax-flex-col ax-h-full ax-relative ax-bg-default\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-lightest ax-shadow ax-sm ax-px-2\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-start\\\">\\n <ax-button look=\\\"blank\\\" text=\\\"Back to Designer\\\" (onClick)=\\\"handleCloseButton()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-chevron-left\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\">\\n <axp-designer-view-sizes [(size)]=\\\"size\\\"></axp-designer-view-sizes>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-end\\\">\\n @if(isDialogWindow) {\\n <ax-button look=\\\"blank\\\" [title]=\\\"'Preview in to seperate window'\\\" (onClick)=\\\"handlePreviewWindow()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-window-restore\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }@else { }\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"jsonView.toggle()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-list-tree\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n\\n <div class=\\\"ax-bg-[#f3f3fe] ax-flex ax-flex-1 ax-justify-center ax-overflow-auto\\\">\\n <axp-layout-preview-frame [size]=\\\"size()\\\"></axp-layout-preview-frame>\\n </div>\\n </div>\\n </ax-content>\\n <!-- [collapsed]=\\\"jsonViewCollapsed()\\\"\\n (collapsedChange)=\\\"handleCollapsedChange($event)\\\" -->\\n <ax-drawer class=\\\"ax-w-1/3 ax-border-s\\\" location=\\\"end\\\" mode=\\\"push\\\" #jsonView>\\n <ax-content>\\n <div class=\\\"ax-dark ax-flex ax-flex-col ax-h-full ax-relative ax-bg-default\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-h-12 ax-bg-lightest ax-shadow ax-sm ax-px-2\\\">\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-start\\\">\\n <span class=\\\"ax-text-surface-fore ax-font-semibold\\\">Form Data</span>\\n </div>\\n <div class=\\\"ax-flex ax-flex-1 ax-flex-row ax-gap-2 ax-sm ax-items-center ax-justify-center\\\"></div>\\n <div class=\\\"ax-flex ax-flex-1 ax-w-16 ax-justify-end\\\">\\n <ax-button look=\\\"blank\\\" (onClick)=\\\"handleCopyJson()\\\">\\n <ax-prefix>\\n <ax-icon class=\\\"fa-regular fa-copy\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n <div class=\\\"ax-px-6 ax-text-white\\\">\\n <ax-json-viewer [json]=\\\"context()\\\"></ax-json-viewer>\\n </div>\\n </div>\\n </ax-content>\\n </ax-drawer>\\n</ax-drawer-container>\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9kZXNpZ25lci9zcmMvbGliL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7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b21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWEJ1dHRvbkdyb3VwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XG5pbXBvcnQgeyBBWEpzb25WaWV3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvanNvbi12aWV3ZXInO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYUENsaXBCb2FyZFNlcnZpY2UsIEFYUFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQUGxhdGZvcm1TY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBEZXNpZ25lclZpZXdTaXplVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL2Rlc2lnbmVyL2NvbXBvbmVudHMvc2l6ZS1tb2RlL3ZpZXctc2l6ZS10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBMYXlvdXREZXNpZ25lclByZXZpZXdGcmFtZUNvbXBvbmVudCB9IGZyb20gJy4vcHJldmlldy1mcmFtZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUERlc2lnbmVyTWVzc2FnZUtleXMgfSBmcm9tICcuLi9kZXNpZ25lcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhCdXR0b25Hcm91cE1vZHVsZSxcbiAgICBBWERyYXdlck1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEpzb25WaWV3ZXJNb2R1bGUsXG4gICAgQVhQTGF5b3V0RGVzaWduZXJQcmV2aWV3RnJhbWVDb21wb25lbnQsXG4gICAgQVhQRGVzaWduZXJWaWV3U2l6ZVRvb2xiYXJDb21wb25lbnRcbl1cbn0pXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0RGVzaWduZXJQcmV2aWV3Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBjbGlwYm9hcmQgPSBpbmplY3QoQVhQQ2xpcEJvYXJkU2VydmljZSk7XG4gIHByb3RlY3RlZCBzZXR0aW5ncyA9IGluamVjdChBWFBTZXR0aW5nU2VydmljZSk7XG4gIHByb3RlY3RlZCBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgaW5pdGlhbFNpemU6IHN0cmluZyA9ICd4bCc7XG4gIHByb3RlY3RlZCBpc0RpYWxvZ1dpbmRvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUganNvblNldHRpbmdzS2V5ID0gJ2Zvcm1zOnByZXZpZXc6anNvbic7XG4gIHByb3RlY3RlZCBqc29uVmlld0NvbGxhcHNlZCA9IHNpZ25hbCh0cnVlKTtcblxuICBwcm90ZWN0ZWQgc2l6ZSA9IHNpZ25hbDxzdHJpbmc+KHRoaXMuaW5pdGlhbFNpemUpO1xuXG4gIHByb3RlY3RlZCBjb250ZXh0ID0gc2lnbmFsPGFueT4oe30pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy9cbiAgICB0aGlzLmV2ZW50U2VydmljZS5saXN0ZW4oQVhQRGVzaWduZXJNZXNzYWdlS2V5cy5Db250ZXh0Q2hhbmdlZCkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LnNldChldmVudC5kYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNpemUuc2V0KHRoaXMuaW5pdGlhbFNpemUpO1xuICAgIGNvbnN0IHNldHRpbmdWYWx1ZSA9IGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0PGJvb2xlYW4+KHRoaXMuanNvblNldHRpbmdzS2V5KTtcbiAgICB0aGlzLmpzb25WaWV3Q29sbGFwc2VkLnNldCghc2V0dGluZ1ZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbG9zZUJ1dHRvbigpIHtcbiAgICBpZiAodGhpcy5pc0RpYWxvZ1dpbmRvdykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3cub3BlbmVyLmZvY3VzKCk7XG4gICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUHJldmlld1dpbmRvdygpIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5wdWJsaXNoKEFYUERlc2lnbmVyTWVzc2FnZUtleXMuUHJldmlld1dpbmRvdylcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29weUpzb24oKSB7XG4gICAgdGhpcy5jbGlwYm9hcmQuY29weSgnSnNvbiBEYXRhJywgSlNPTi5zdHJpbmdpZnkodGhpcy5jb250ZXh0KCkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVDb2xsYXBzZWRDaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBhd2FpdCB0aGlzLnNldHRpbmdzLnNjb3BlKEFYUFBsYXRmb3JtU2NvcGUuVXNlcikuc2V0PGJvb2xlYW4+KHRoaXMuanNvblNldHRpbmdzS2V5LCAhdmFsdWUpO1xuICB9XG59XG4iLCI8YXgtZHJhd2VyLWNvbnRhaW5lciBjbGFzcz1cImF4LWRhcmsgYXgtaC1mdWxsIGF4LXctZnVsbCBheC1mbGV4IGF4LXJlbGF0aXZlIGF4LW92ZXJmbG93LWhpZGRlblwiPlxuICA8YXgtY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZGFyayBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWgtZnVsbCBheC1yZWxhdGl2ZSBheC1iZy1kZWZhdWx0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWgtMTIgYXgtYmctbGlnaHRlc3QgYXgtc2hhZG93IGF4LXNtIGF4LXB4LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC0xIGF4LXctMTYgYXgtanVzdGlmeS1zdGFydFwiPlxuICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgdGV4dD1cIkJhY2sgdG8gRGVzaWduZXJcIiAob25DbGljayk9XCJoYW5kbGVDbG9zZUJ1dHRvbigpXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtY2hldnJvbi1sZWZ0XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LTEgYXgtZmxleC1yb3cgYXgtZ2FwLTIgYXgtc20gYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgPGF4cC1kZXNpZ25lci12aWV3LXNpemVzIFsoc2l6ZSldPVwic2l6ZVwiPjwvYXhwLWRlc2lnbmVyLXZpZXctc2l6ZXM+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LTEgYXgtdy0xNiBheC1qdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgIEBpZihpc0RpYWxvZ1dpbmRvdykge1xuICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgW3RpdGxlXT1cIidQcmV2aWV3IGluIHRvIHNlcGVyYXRlIHdpbmRvdydcIiAob25DbGljayk9XCJoYW5kbGVQcmV2aWV3V2luZG93KClcIj5cbiAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtcmVndWxhciBmYS13aW5kb3ctcmVzdG9yZVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgIH1AZWxzZSB7IH1cbiAgICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIChvbkNsaWNrKT1cImpzb25WaWV3LnRvZ2dsZSgpXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtbGlzdC10cmVlXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1iZy1bI2YzZjNmZV0gYXgtZmxleCBheC1mbGV4LTEgYXgtanVzdGlmeS1jZW50ZXIgYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICA8YXhwLWxheW91dC1wcmV2aWV3LWZyYW1lIFtzaXplXT1cInNpemUoKVwiPjwvYXhwLWxheW91dC1wcmV2aWV3LWZyYW1lPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvYXgtY29udGVudD5cbiAgPCEtLSBbY29sbGFwc2VkXT1cImpzb25WaWV3Q29sbGFwc2VkKClcIlxuICAoY29sbGFwc2VkQ2hhbmdlKT1cImhhbmRsZUNvbGxhcHNlZENoYW5nZSgkZXZlbnQpXCIgLS0+XG4gIDxheC1kcmF3ZXIgY2xhc3M9XCJheC13LTEvMyBheC1ib3JkZXItc1wiIGxvY2F0aW9uPVwiZW5kXCIgbW9kZT1cInB1c2hcIiAjanNvblZpZXc+XG4gICAgPGF4LWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZGFyayBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWgtZnVsbCBheC1yZWxhdGl2ZSBheC1iZy1kZWZhdWx0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWJldHdlZW4gYXgtaC0xMiBheC1iZy1saWdodGVzdCBheC1zaGFkb3cgYXgtc20gYXgtcHgtMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtMSBheC13LTE2IGF4LWp1c3RpZnktc3RhcnRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1zdXJmYWNlLWZvcmUgYXgtZm9udC1zZW1pYm9sZFwiPkZvcm0gRGF0YTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LTEgYXgtZmxleC1yb3cgYXgtZ2FwLTIgYXgtc20gYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC0xIGF4LXctMTYgYXgtanVzdGlmeS1lbmRcIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ29weUpzb24oKVwiPlxuICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtcmVndWxhciBmYS1jb3B5XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXB4LTYgYXgtdGV4dC13aGl0ZVwiPlxuICAgICAgICAgIDxheC1qc29uLXZpZXdlciBbanNvbl09XCJjb250ZXh0KClcIj48L2F4LWpzb24tdmlld2VyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXgtY29udGVudD5cbiAgPC9heC1kcmF3ZXI+XG48L2F4LWRyYXdlci1jb250YWluZXI+Il19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1kZXNpZ25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyL3NyYy9hY29yZXgtcGxhdGZvcm0tbGF5b3V0LWRlc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1","i2","i4","i5","i3","merge"],"mappings":"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"}