@acorex/platform 20.3.0-next.20 → 20.3.0-next.22

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 (91) hide show
  1. package/common/index.d.ts +69 -64
  2. package/core/index.d.ts +14 -1
  3. package/fesm2022/acorex-platform-auth.mjs +19 -19
  4. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-common-common-settings.provider-9OHien_H.mjs +47 -0
  6. package/fesm2022/acorex-platform-common-common-settings.provider-9OHien_H.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-common.mjs +222 -179
  8. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-core.mjs +55 -42
  10. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-domain.mjs +16 -16
  12. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-builder.mjs +182 -159
  14. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-components.mjs +542 -2387
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +72 -72
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/{acorex-platform-layout-entity-create-entity.command-BXExgI3W.mjs → acorex-platform-layout-entity-create-entity.command-DyXF9zAh.mjs} +4 -4
  20. package/fesm2022/{acorex-platform-layout-entity-create-entity.command-BXExgI3W.mjs.map → acorex-platform-layout-entity-create-entity.command-DyXF9zAh.mjs.map} +1 -1
  21. package/fesm2022/acorex-platform-layout-entity.mjs +163 -162
  22. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-views.mjs +53 -46
  24. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-layout-widget-core.mjs +74 -73
  26. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  27. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-BzsfTNs2.mjs → acorex-platform-layout-widgets-button-widget-designer.component-C_3IWNkj.mjs} +4 -4
  28. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-BzsfTNs2.mjs.map → acorex-platform-layout-widgets-button-widget-designer.component-C_3IWNkj.mjs.map} +1 -1
  29. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-Dvk76-2W.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CJltEgut.mjs} +4 -4
  30. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-Dvk76-2W.mjs.map → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CJltEgut.mjs.map} +1 -1
  31. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-BYLaipWi.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-pM-TIuk0.mjs} +4 -4
  32. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-BYLaipWi.mjs.map → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-pM-TIuk0.mjs.map} +1 -1
  33. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-DcSllNik.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-BqI96-fU.mjs} +4 -4
  34. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-DcSllNik.mjs.map → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-BqI96-fU.mjs.map} +1 -1
  35. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-view.component-BT-U4BiA.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-C-AhenaM.mjs} +4 -4
  36. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-view.component-BT-U4BiA.mjs.map → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-C-AhenaM.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-edit.component-Il7jnRBg.mjs → acorex-platform-layout-widgets-extra-properties-widget-edit.component-DCAya5ne.mjs} +4 -4
  38. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-edit.component-Il7jnRBg.mjs.map → acorex-platform-layout-widgets-extra-properties-widget-edit.component-DCAya5ne.mjs.map} +1 -1
  39. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-view.component-CBEPu7Fl.mjs → acorex-platform-layout-widgets-extra-properties-widget-view.component-D-PnBqLb.mjs} +4 -4
  40. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-view.component-CBEPu7Fl.mjs.map → acorex-platform-layout-widgets-extra-properties-widget-view.component-D-PnBqLb.mjs.map} +1 -1
  41. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-BPzn8lr3.mjs → acorex-platform-layout-widgets-file-list-popup.component-DuuFHWvB.mjs} +4 -4
  42. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-BPzn8lr3.mjs.map → acorex-platform-layout-widgets-file-list-popup.component-DuuFHWvB.mjs.map} +1 -1
  43. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-C_JrGoXy.mjs → acorex-platform-layout-widgets-page-widget-designer.component-Bss0xUcu.mjs} +4 -4
  44. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-C_JrGoXy.mjs.map → acorex-platform-layout-widgets-page-widget-designer.component-Bss0xUcu.mjs.map} +1 -1
  45. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-C6DaBt_N.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-Cy9mHnNP.mjs} +4 -4
  46. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-C6DaBt_N.mjs.map → acorex-platform-layout-widgets-tabular-data-edit-popup.component-Cy9mHnNP.mjs.map} +1 -1
  47. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-Bth3jI9T.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DznLtuer.mjs} +4 -4
  48. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-Bth3jI9T.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-DznLtuer.mjs.map} +1 -1
  49. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-CUHptbP4.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-ndOUSFi9.mjs} +4 -4
  50. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-CUHptbP4.mjs.map → acorex-platform-layout-widgets-text-block-widget-designer.component-ndOUSFi9.mjs.map} +1 -1
  51. package/fesm2022/acorex-platform-layout-widgets.mjs +858 -897
  52. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  53. package/fesm2022/acorex-platform-native.mjs +7 -7
  54. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  55. package/fesm2022/acorex-platform-runtime.mjs +40 -40
  56. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  57. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-eGzN6g2Y.mjs → acorex-platform-themes-default-entity-master-create-view.component-Fnj54AxV.mjs} +4 -4
  58. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-eGzN6g2Y.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-Fnj54AxV.mjs.map} +1 -1
  59. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-nDHfQQ3O.mjs → acorex-platform-themes-default-entity-master-list-view.component-C60W6UnN.mjs} +60 -13
  60. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C60W6UnN.mjs.map +1 -0
  61. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-HJyalvcu.mjs → acorex-platform-themes-default-entity-master-modify-view.component-B3NyKGIG.mjs} +4 -4
  62. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-HJyalvcu.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-B3NyKGIG.mjs.map} +1 -1
  63. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-e7m70Wls.mjs → acorex-platform-themes-default-entity-master-single-view.component-B8gx5cG7.mjs} +7 -7
  64. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-e7m70Wls.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-B8gx5cG7.mjs.map} +1 -1
  65. package/fesm2022/{acorex-platform-themes-default-error-401.component-CoBaQFTn.mjs → acorex-platform-themes-default-error-401.component-CcvGfdhu.mjs} +4 -4
  66. package/fesm2022/{acorex-platform-themes-default-error-401.component-CoBaQFTn.mjs.map → acorex-platform-themes-default-error-401.component-CcvGfdhu.mjs.map} +1 -1
  67. package/fesm2022/{acorex-platform-themes-default-error-404.component-BLlVOsS2.mjs → acorex-platform-themes-default-error-404.component-4-CaEsnV.mjs} +4 -4
  68. package/fesm2022/{acorex-platform-themes-default-error-404.component-BLlVOsS2.mjs.map → acorex-platform-themes-default-error-404.component-4-CaEsnV.mjs.map} +1 -1
  69. package/fesm2022/{acorex-platform-themes-default-error-offline.component-CybYQI9F.mjs → acorex-platform-themes-default-error-offline.component-BNecbFEj.mjs} +4 -4
  70. package/fesm2022/{acorex-platform-themes-default-error-offline.component-CybYQI9F.mjs.map → acorex-platform-themes-default-error-offline.component-BNecbFEj.mjs.map} +1 -1
  71. package/fesm2022/acorex-platform-themes-default.mjs +39 -39
  72. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  73. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-ReKSoVeN.mjs → acorex-platform-themes-shared-icon-chooser-view.component-Dc_Txe32.mjs} +4 -4
  74. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-ReKSoVeN.mjs.map → acorex-platform-themes-shared-icon-chooser-view.component-Dc_Txe32.mjs.map} +1 -1
  75. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-B2HDyY2z.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-hgWLhhle.mjs} +4 -4
  76. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-B2HDyY2z.mjs.map → acorex-platform-themes-shared-theme-color-chooser-column.component-hgWLhhle.mjs.map} +1 -1
  77. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CeZxa49U.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-CY3JZK_W.mjs} +4 -4
  78. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CeZxa49U.mjs.map → acorex-platform-themes-shared-theme-color-chooser-view.component-CY3JZK_W.mjs.map} +1 -1
  79. package/fesm2022/acorex-platform-themes-shared.mjs +41 -41
  80. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  81. package/fesm2022/acorex-platform-workflow.mjs +25 -25
  82. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  83. package/layout/builder/README.md +1577 -2
  84. package/layout/builder/index.d.ts +182 -125
  85. package/layout/components/index.d.ts +8 -805
  86. package/layout/entity/index.d.ts +4 -2
  87. package/layout/views/index.d.ts +0 -1
  88. package/layout/widget-core/index.d.ts +2 -1
  89. package/layout/widgets/index.d.ts +11 -36
  90. package/package.json +1 -1
  91. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-nDHfQQ3O.mjs.map +0 -1
@@ -80,12 +80,12 @@ class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {
80
80
  async handleContextChange(e) {
81
81
  this.vm.context.set(e.data);
82
82
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXPEntityMasterCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
84
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXPEntityMasterCreateViewComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "container", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-component-slot name=\"entity-create-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"ax-col-span-12\">\n <ax-form #form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field\n class=\"ax-flex ax-flex-col ax-gap-1\"\n [axp-grid-layout]=\"attr.layout()\"\n [class.ax-hidden]=\"widget.options()['visibility'] == false\"\n >\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"ax-font-semibold ax-text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n &nbsp;\n }\n </ax-label>\n }\n <ng-container\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n <ax-footer>\n <ax-prefix>\n <axp-component-slot name=\"entity-create-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-button\n look=\"solid\"\n [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"handleCloseClick()\"\n >\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button\n [disabled]=\"vm.isInProgress()\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n look=\"solid\"\n (onClick)=\"handleSaveClick(form)\"\n >\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item\n [text]=\"\n ('@general:actions.save.title' | translate | async) +\n ' ' +\n ('@general:actions.create.title' | translate | async)\n \"\n (onClick)=\"handleSaveAndNewClick(form)\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n >\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n <axp-component-slot name=\"entity-create-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n </ax-footer>\n}\n\n<axp-component-slot name=\"entity-create-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i1.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { 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: "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: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i5.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i6.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type:
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: AXPEntityMasterCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
84
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: AXPEntityMasterCreateViewComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "container", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<axp-component-slot name=\"entity-create-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"ax-col-span-12\">\n <ax-form #form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field\n class=\"ax-flex ax-flex-col ax-gap-1\"\n [axp-grid-layout]=\"attr.layout()\"\n [class.ax-hidden]=\"widget.options()['visibility'] == false\"\n >\n @if (attr.layout().label?.visible != false) {\n <ax-label class=\"ax-font-semibold ax-text-sm\" [required]=\"attr.isRequired()\">\n @if (attr.title()) {\n {{ attr.title() | translate | async }}\n } @else {\n &nbsp;\n }\n </ax-label>\n }\n <ng-container\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n <ax-footer>\n <ax-prefix>\n <axp-component-slot name=\"entity-create-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-button\n look=\"solid\"\n [color]=\"'default'\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"handleCloseClick()\"\n >\n </ax-button>\n @if (vm.canCreateNewOne()) {\n <ax-dropdown-button\n [disabled]=\"vm.isInProgress()\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n look=\"solid\"\n (onClick)=\"handleSaveClick(form)\"\n >\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n <ax-button-item-list>\n <ax-button-item\n [text]=\"\n ('@general:actions.save.title' | translate | async) +\n ' ' +\n ('@general:actions.create.title' | translate | async)\n \"\n (onClick)=\"handleSaveAndNewClick(form)\"\n >\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'@general:actions.save.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n >\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n }\n <axp-component-slot name=\"entity-create-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n </ax-footer>\n}\n\n<axp-component-slot name=\"entity-create-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i1.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { 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: "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: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i5.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i6.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type:
85
85
  //
86
86
  AXPWidgetCoreModule }, { kind: "component", type: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name", "host", "context"], exportAs: ["slot"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[axp-grid-layout]", inputs: ["axp-grid-layout"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXPEntityMasterCreateViewComponent, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: AXPEntityMasterCreateViewComponent, decorators: [{
89
89
  type: Component,
90
90
  args: [{ imports: [
91
91
  CommonModule,
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
112
112
  }] });
113
113
 
114
114
  export { AXPEntityMasterCreateViewComponent };
115
- //# sourceMappingURL=acorex-platform-themes-default-entity-master-create-view.component-eGzN6g2Y.mjs.map
115
+ //# sourceMappingURL=acorex-platform-themes-default-entity-master-create-view.component-Fnj54AxV.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-themes-default-entity-master-create-view.component-eGzN6g2Y.mjs","sources":["../tmp-esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.js"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPGridLayoutDirective } from '@acorex/platform/core';\nimport { AXPWidgetCoreModule, AXPWidgetContainerComponent, } from '@acorex/platform/layout/widget-core';\nimport { AXPComponentSlotModule } from '@acorex/platform/layout/components';\nimport { AXPWidgetsModule } from '@acorex/platform/layout/widgets';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/form\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/loading\";\nimport * as i5 from \"@acorex/components/label\";\nimport * as i6 from \"@acorex/components/dropdown-button\";\nimport * as i7 from \"@acorex/platform/layout/widget-core\";\nimport * as i8 from \"@acorex/platform/layout/components\";\nimport * as i9 from \"@angular/common\";\nimport * as i10 from \"@acorex/core/translation\";\nexport class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.container = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: \"container\" }] : []));\n this.workflow = inject(AXPWorkflowService);\n }\n ngAfterViewInit() {\n this.vm.builder = this.container().builderService;\n }\n handleCloseClick() {\n this.close();\n }\n async handleBackClick() {\n //await this.vm.executeCommand('back');\n }\n async handleNextClick(form) {\n // const formResult = await form.validate();\n // if (formResult.result) {\n // await this.vm.executeCommand('next');\n // }\n }\n async handleSaveClick(form) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n this.close({ save: true, recordId: record?.id, item: record, redirect: this.vm.redirect() });\n }\n catch (error) {\n console.log(error);\n }\n }\n }\n async handleSaveAndNewClick(form) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n this.close({ save: true, recordId: record?.id, item: record, redirect: false });\n await this.vm.createNewOne();\n }\n catch (error) {\n console.log(error);\n }\n }\n }\n async handleContextChange(e) {\n this.vm.context.set(e.data);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXPEntityMasterCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXPEntityMasterCreateViewComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"container\", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<axp-component-slot name=\\\"entity-create-header\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n<axp-widgets-container [context]=\\\"vm.context()\\\" (onContextChanged)=\\\"handleContextChange($event)\\\">\\n <ax-form class=\\\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\\\" #form [messageStyle]=\\\"'bottom'\\\" [updateOn]=\\\"'blur'\\\">\\n <!-- Begin Sections -->\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-4\\\">\\n @for (section of vm.sections(); track section.name()) {\\n <div class=\\\"ax-col-span-12\\\">\\n <ax-form #form>\\n @if (vm.sections().length > 1 && !section.description()) {\\n <div class=\\\"ax-pb-4\\\">\\n <span class=\\\"ax-font-bold ax-text-xl\\\">{{ section.title() | translate | async }}</span>\\n @if (section.description()) {\\n <p class=\\\"ax-text-sm ax-text-gray-500\\\">{{ section.description() }}</p>\\n }\\n </div>\\n }\\n <div class=\\\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\\\">\\n @for (attr of section.elements(); track $index) {\\n <ax-form-field\\n class=\\\"ax-flex ax-flex-col ax-gap-1\\\"\\n [axp-grid-layout]=\\\"attr.layout()\\\"\\n [class.ax-hidden]=\\\"widget.options()['visibility'] == false\\\"\\n >\\n @if (attr.layout().label?.visible != false) {\\n <ax-label class=\\\"ax-font-semibold ax-text-sm\\\" [required]=\\\"attr.isRequired()\\\">\\n @if (attr.title()) {\\n {{ attr.title() | translate | async }}\\n } @else {\\n &nbsp;\\n }\\n </ax-label>\\n }\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"attr.node()\\\"\\n [mode]=\\\"'edit'\\\"\\n #widget=\\\"widgetRenderer\\\"\\n ></ng-container>\\n </ax-form-field>\\n }\\n </div>\\n </ax-form>\\n </div>\\n }\\n </div>\\n <!-- Finish Sections -->\\n </ax-form>\\n</axp-widgets-container>\\n@if (slot.isEmpty()) {\\n <ax-footer>\\n <ax-prefix>\\n <axp-component-slot name=\\\"entity-create-footer-prefix\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-button\\n look=\\\"solid\\\"\\n [color]=\\\"'default'\\\"\\n [text]=\\\"'@general:actions.cancel.title' | translate | async\\\"\\n (onClick)=\\\"handleCloseClick()\\\"\\n >\\n </ax-button>\\n @if (vm.canCreateNewOne()) {\\n <ax-dropdown-button\\n [disabled]=\\\"vm.isInProgress()\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.save.title' | translate | async\\\"\\n look=\\\"solid\\\"\\n (onClick)=\\\"handleSaveClick(form)\\\"\\n >\\n @if (vm.isInProgress()) {\\n <ax-loading></ax-loading>\\n }\\n <ax-button-item-list>\\n <ax-button-item\\n [text]=\\\"\\n ('@general:actions.save.title' | translate | async) +\\n ' ' +\\n ('@general:actions.create.title' | translate | async)\\n \\\"\\n (onClick)=\\\"handleSaveAndNewClick(form)\\\"\\n >\\n </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n } @else {\\n <ax-button\\n look=\\\"solid\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.save.title' | translate | async\\\"\\n (onClick)=\\\"handleSaveClick(form)\\\"\\n >\\n @if (vm.isInProgress()) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n }\\n <axp-component-slot name=\\\"entity-create-footer-suffix\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n </ax-suffix>\\n </ax-footer>\\n}\\n\\n<axp-component-slot name=\\\"entity-create-footer\\\" #slot=\\\"slot\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i1.AXFormFieldComponent, selector: \"ax-form-field\", inputs: [\"labelMode\"] }, { kind: \"component\", type: i1.AXFormComponent, selector: \"ax-form\", inputs: [\"labelMode\", \"look\", \"messageStyle\", \"updateOn\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { 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: \"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: AXDialogModule }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i4.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i5.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"component\", type: i6.AXDropdownButtonComponent, selector: \"ax-dropdown-button\", inputs: [\"disabled\", \"size\", \"color\", \"look\", \"text\", \"type\", \"mode\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"lookChange\", \"colorChange\", \"disabledChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: \n //\n AXPWidgetCoreModule }, { kind: \"component\", type: i7.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i7.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: AXPComponentSlotModule }, { kind: \"directive\", type: i8.AXPComponentSlotDirective, selector: \"axp-component-slot\", inputs: [\"name\", \"host\", \"context\"], exportAs: [\"slot\"] }, { kind: \"ngmodule\", type: AXPWidgetsModule }, { kind: \"directive\", type: AXPGridLayoutDirective, selector: \"[axp-grid-layout]\", inputs: [\"axp-grid-layout\"] }, { kind: \"pipe\", type: i9.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i10.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXPEntityMasterCreateViewComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n CommonModule,\n AXButtonModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXValidationModule,\n AXLabelModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n //\n AXPWidgetCoreModule,\n AXPComponentSlotModule,\n AXPWidgetsModule,\n AXPGridLayoutDirective,\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<axp-component-slot name=\\\"entity-create-header\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n<axp-widgets-container [context]=\\\"vm.context()\\\" (onContextChanged)=\\\"handleContextChange($event)\\\">\\n <ax-form class=\\\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\\\" #form [messageStyle]=\\\"'bottom'\\\" [updateOn]=\\\"'blur'\\\">\\n <!-- Begin Sections -->\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-4\\\">\\n @for (section of vm.sections(); track section.name()) {\\n <div class=\\\"ax-col-span-12\\\">\\n <ax-form #form>\\n @if (vm.sections().length > 1 && !section.description()) {\\n <div class=\\\"ax-pb-4\\\">\\n <span class=\\\"ax-font-bold ax-text-xl\\\">{{ section.title() | translate | async }}</span>\\n @if (section.description()) {\\n <p class=\\\"ax-text-sm ax-text-gray-500\\\">{{ section.description() }}</p>\\n }\\n </div>\\n }\\n <div class=\\\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\\\">\\n @for (attr of section.elements(); track $index) {\\n <ax-form-field\\n class=\\\"ax-flex ax-flex-col ax-gap-1\\\"\\n [axp-grid-layout]=\\\"attr.layout()\\\"\\n [class.ax-hidden]=\\\"widget.options()['visibility'] == false\\\"\\n >\\n @if (attr.layout().label?.visible != false) {\\n <ax-label class=\\\"ax-font-semibold ax-text-sm\\\" [required]=\\\"attr.isRequired()\\\">\\n @if (attr.title()) {\\n {{ attr.title() | translate | async }}\\n } @else {\\n &nbsp;\\n }\\n </ax-label>\\n }\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"attr.node()\\\"\\n [mode]=\\\"'edit'\\\"\\n #widget=\\\"widgetRenderer\\\"\\n ></ng-container>\\n </ax-form-field>\\n }\\n </div>\\n </ax-form>\\n </div>\\n }\\n </div>\\n <!-- Finish Sections -->\\n </ax-form>\\n</axp-widgets-container>\\n@if (slot.isEmpty()) {\\n <ax-footer>\\n <ax-prefix>\\n <axp-component-slot name=\\\"entity-create-footer-prefix\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-button\\n look=\\\"solid\\\"\\n [color]=\\\"'default'\\\"\\n [text]=\\\"'@general:actions.cancel.title' | translate | async\\\"\\n (onClick)=\\\"handleCloseClick()\\\"\\n >\\n </ax-button>\\n @if (vm.canCreateNewOne()) {\\n <ax-dropdown-button\\n [disabled]=\\\"vm.isInProgress()\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.save.title' | translate | async\\\"\\n look=\\\"solid\\\"\\n (onClick)=\\\"handleSaveClick(form)\\\"\\n >\\n @if (vm.isInProgress()) {\\n <ax-loading></ax-loading>\\n }\\n <ax-button-item-list>\\n <ax-button-item\\n [text]=\\\"\\n ('@general:actions.save.title' | translate | async) +\\n ' ' +\\n ('@general:actions.create.title' | translate | async)\\n \\\"\\n (onClick)=\\\"handleSaveAndNewClick(form)\\\"\\n >\\n </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n } @else {\\n <ax-button\\n look=\\\"solid\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.save.title' | translate | async\\\"\\n (onClick)=\\\"handleSaveClick(form)\\\"\\n >\\n @if (vm.isInProgress()) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n }\\n <axp-component-slot name=\\\"entity-create-footer-suffix\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n </ax-suffix>\\n </ax-footer>\\n}\\n\\n<axp-component-slot name=\\\"entity-create-footer\\\" #slot=\\\"slot\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3L2VudGl0eS1tYXN0ZXItY3JlYXRlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1jcmVhdGUtdmlldy9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFtQixZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFp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QUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQWtDO1FBQ3BFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0F0RFUsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsbUhBR2YsMkJBQTJCLHVGQzFEM0QscTlIQXNHQSwyQ0R0RUksWUFBWSw4QkFDWixXQUFXLDhCQUNYLFlBQVksa1RBQ1osaUJBQWlCLHFQQUVqQixjQUFjLG91QkFDZCxjQUFjLDhCQUNkLGVBQWUsOEtBQ2YsWUFBWSw4QkFDWixlQUFlLDhCQUNmLGtCQUFrQiw4QkFDbEIsYUFBYSxnS0FDYixnQkFBZ0IsOEJBQ2hCLHNCQUFzQiw0U0FDdEIsbUJBQW1CO2dCQUNuQixFQUFFO2dCQUNGLG1CQUFtQiw4WkFDbkIsc0JBQXNCLGtMQUN0QixnQkFBZ0IsK0JBQ2hCLHNCQUFzQjs7MkZBSWIsa0NBQWtDO2tCQTFCOUMsU0FBUzs4QkFFQzt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixFQUFFO3dCQUNGLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjtxQkFDdkIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50LCBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYQmFzZVBhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcGFnZSc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XG5cbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUFdpZGdldENvcmVNb2R1bGUsXG4gIEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQsXG4gIEFYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldHNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXRzJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1tYXN0ZXItY3JlYXRlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gICAgQVhWYWxpZGF0aW9uTW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgLy9cbiAgICBBWFBXaWRnZXRDb3JlTW9kdWxlLFxuICAgIEFYUENvbXBvbmVudFNsb3RNb2R1bGUsXG4gICAgQVhQV2lkZ2V0c01vZHVsZSxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld0NvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgdm0hOiBBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWw7XG5cbiAgcHJpdmF0ZSBjb250YWluZXIgPSB2aWV3Q2hpbGQoQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50KTtcblxuICBwcm90ZWN0ZWQgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52bS5idWlsZGVyID0gdGhpcy5jb250YWluZXIoKSEuYnVpbGRlclNlcnZpY2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQmFja0NsaWNrKCkge1xuICAgIC8vYXdhaXQgdGhpcy52bS5leGVjdXRlQ29tbWFuZCgnYmFjaycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZU5leHRDbGljayhmb3JtOiBBWEZvcm1Db21wb25lbnQpIHtcbiAgICAvLyBjb25zdCBmb3JtUmVzdWx0ID0gYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuICAgIC8vIGlmIChmb3JtUmVzdWx0LnJlc3VsdCkge1xuICAgIC8vICAgYXdhaXQgdGhpcy52bS5leGVjdXRlQ29tbWFuZCgnbmV4dCcpO1xuICAgIC8vIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlQ2xpY2soZm9ybTogQVhGb3JtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcbiAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMudm0uc2F2ZSgpO1xuXG4gICAgICAgIHRoaXMuY2xvc2UoeyBzYXZlOiB0cnVlLCByZWNvcmRJZDogcmVjb3JkPy5pZCwgaXRlbTogcmVjb3JkLCByZWRpcmVjdDogdGhpcy52bS5yZWRpcmVjdCgpIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlQW5kTmV3Q2xpY2soZm9ybTogQVhGb3JtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcbiAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMudm0uc2F2ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlKHsgc2F2ZTogdHJ1ZSwgcmVjb3JkSWQ6IHJlY29yZD8uaWQsIGl0ZW06IHJlY29yZCwgcmVkaXJlY3Q6IGZhbHNlIH0pO1xuICAgICAgICBhd2FpdCB0aGlzLnZtLmNyZWF0ZU5ld09uZSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVDb250ZXh0Q2hhbmdlKGU6IEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLnZtLmNvbnRleHQuc2V0KGUuZGF0YSk7XG4gIH1cbn1cbiIsIjxheHAtY29tcG9uZW50LXNsb3QgbmFtZT1cImVudGl0eS1jcmVhdGUtaGVhZGVyXCIgW2NvbnRleHRdPVwidm0uY29udGV4dCgpXCI+PC9heHAtY29tcG9uZW50LXNsb3Q+XG48YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cInZtLmNvbnRleHQoKVwiIChvbkNvbnRleHRDaGFuZ2VkKT1cImhhbmRsZUNvbnRleHRDaGFuZ2UoJGV2ZW50KVwiPlxuICA8YXgtZm9ybSBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTYgYXgtcC00IGF4LXBiLThcIiAjZm9ybSBbbWVzc2FnZVN0eWxlXT1cIidib3R0b20nXCIgW3VwZGF0ZU9uXT1cIidibHVyJ1wiPlxuICAgIDwhLS0gQmVnaW4gU2VjdGlvbnMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+XG4gICAgICBAZm9yIChzZWN0aW9uIG9mIHZtLnNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24ubmFtZSgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMlwiPlxuICAgICAgICAgIDxheC1mb3JtICNmb3JtPlxuICAgICAgICAgICAgQGlmICh2bS5zZWN0aW9ucygpLmxlbmd0aCA+IDEgJiYgIXNlY3Rpb24uZGVzY3JpcHRpb24oKSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcGItNFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1ib2xkIGF4LXRleHQteGxcIj57eyBzZWN0aW9uLnRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uZGVzY3JpcHRpb24oKSkge1xuICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LXNtIGF4LXRleHQtZ3JheS01MDBcIj57eyBzZWN0aW9uLmRlc2NyaXB0aW9uKCkgfX08L3A+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkLWJvZHkgIWF4LWdyaWQgIWF4LWdyaWQtY29scy0xMiAhYXgtZ2FwLTRcIj5cbiAgICAgICAgICAgICAgQGZvciAoYXR0ciBvZiBzZWN0aW9uLmVsZW1lbnRzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxheC1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTFcIlxuICAgICAgICAgICAgICAgICAgW2F4cC1ncmlkLWxheW91dF09XCJhdHRyLmxheW91dCgpXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1oaWRkZW5dPVwid2lkZ2V0Lm9wdGlvbnMoKVsndmlzaWJpbGl0eSddID09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBAaWYgKGF0dHIubGF5b3V0KCkubGFiZWw/LnZpc2libGUgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXNtXCIgW3JlcXVpcmVkXT1cImF0dHIuaXNSZXF1aXJlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChhdHRyLnRpdGxlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGF0dHIudGl0bGUoKSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGF4cC13aWRnZXQtcmVuZGVyZXJcbiAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwiYXR0ci5ub2RlKClcIlxuICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCInZWRpdCdcIlxuICAgICAgICAgICAgICAgICAgICAjd2lkZ2V0PVwid2lkZ2V0UmVuZGVyZXJcIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9heC1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZpbmlzaCBTZWN0aW9ucyAgLS0+XG4gIDwvYXgtZm9ybT5cbjwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuQGlmIChzbG90LmlzRW1wdHkoKSkge1xuICA8YXgtZm9vdGVyPlxuICAgIDxheC1wcmVmaXg+XG4gICAgICA8YXhwLWNvbXBvbmVudC1zbG90IG5hbWU9XCJlbnRpdHktY3JlYXRlLWZvb3Rlci1wcmVmaXhcIiBbY29udGV4dF09XCJ2bS5jb250ZXh0KClcIj48L2F4cC1jb21wb25lbnQtc2xvdD5cbiAgICA8L2F4LXByZWZpeD5cbiAgICA8YXgtc3VmZml4PlxuICAgICAgPGF4LWJ1dHRvblxuICAgICAgICBsb29rPVwic29saWRcIlxuICAgICAgICBbY29sb3JdPVwiJ2RlZmF1bHQnXCJcbiAgICAgICAgW3RleHRdPVwiJ0BnZW5lcmFsOmFjdGlvbnMuY2FuY2VsLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCJcbiAgICAgID5cbiAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgQGlmICh2bS5jYW5DcmVhdGVOZXdPbmUoKSkge1xuICAgICAgICA8YXgtZHJvcGRvd24tYnV0dG9uXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInZtLmlzSW5Qcm9ncmVzcygpXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIidAZ2VuZXJhbDphY3Rpb25zLnNhdmUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2F2ZUNsaWNrKGZvcm0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAodm0uaXNJblByb2dyZXNzKCkpIHtcbiAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgW3RleHRdPVwiXG4gICAgICAgICAgICAgICAgKCdAZ2VuZXJhbDphY3Rpb25zLnNhdmUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMpICtcbiAgICAgICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgICAgICgnQGdlbmVyYWw6YWN0aW9ucy5jcmVhdGUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMpXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNhdmVBbmROZXdDbGljayhmb3JtKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgPC9heC1kcm9wZG93bi1idXR0b24+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICBbdGV4dF09XCInQGdlbmVyYWw6YWN0aW9ucy5zYXZlLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVTYXZlQ2xpY2soZm9ybSlcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmICh2bS5pc0luUHJvZ3Jlc3MoKSkge1xuICAgICAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICB9XG4gICAgICA8YXhwLWNvbXBvbmVudC1zbG90IG5hbWU9XCJlbnRpdHktY3JlYXRlLWZvb3Rlci1zdWZmaXhcIiBbY29udGV4dF09XCJ2bS5jb250ZXh0KClcIj48L2F4cC1jb21wb25lbnQtc2xvdD5cbiAgICA8L2F4LXN1ZmZpeD5cbiAgPC9heC1mb290ZXI+XG59XG5cbjxheHAtY29tcG9uZW50LXNsb3QgbmFtZT1cImVudGl0eS1jcmVhdGUtZm9vdGVyXCIgI3Nsb3Q9XCJzbG90XCIgW2NvbnRleHRdPVwidm0uY29udGV4dCgpXCI+PC9heHAtY29tcG9uZW50LXNsb3Q+XG4iXX0="],"names":["i8","i9"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-themes-default-entity-master-create-view.component-Fnj54AxV.mjs","sources":["../tmp-esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.js"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPGridLayoutDirective } from '@acorex/platform/core';\nimport { AXPWidgetCoreModule, AXPWidgetContainerComponent, } from '@acorex/platform/layout/widget-core';\nimport { AXPComponentSlotModule } from '@acorex/platform/layout/components';\nimport { AXPWidgetsModule } from '@acorex/platform/layout/widgets';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/form\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/loading\";\nimport * as i5 from \"@acorex/components/label\";\nimport * as i6 from \"@acorex/components/dropdown-button\";\nimport * as i7 from \"@acorex/platform/layout/widget-core\";\nimport * as i8 from \"@acorex/platform/layout/components\";\nimport * as i9 from \"@angular/common\";\nimport * as i10 from \"@acorex/core/translation\";\nexport class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.container = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: \"container\" }] : []));\n this.workflow = inject(AXPWorkflowService);\n }\n ngAfterViewInit() {\n this.vm.builder = this.container().builderService;\n }\n handleCloseClick() {\n this.close();\n }\n async handleBackClick() {\n //await this.vm.executeCommand('back');\n }\n async handleNextClick(form) {\n // const formResult = await form.validate();\n // if (formResult.result) {\n // await this.vm.executeCommand('next');\n // }\n }\n async handleSaveClick(form) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n this.close({ save: true, recordId: record?.id, item: record, redirect: this.vm.redirect() });\n }\n catch (error) {\n console.log(error);\n }\n }\n }\n async handleSaveAndNewClick(form) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n this.close({ save: true, recordId: record?.id, item: record, redirect: false });\n await this.vm.createNewOne();\n }\n catch (error) {\n console.log(error);\n }\n }\n }\n async handleContextChange(e) {\n this.vm.context.set(e.data);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXPEntityMasterCreateViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: AXPEntityMasterCreateViewComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"container\", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<axp-component-slot name=\\\"entity-create-header\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n<axp-widgets-container [context]=\\\"vm.context()\\\" (onContextChanged)=\\\"handleContextChange($event)\\\">\\n <ax-form class=\\\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\\\" #form [messageStyle]=\\\"'bottom'\\\" [updateOn]=\\\"'blur'\\\">\\n <!-- Begin Sections -->\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-4\\\">\\n @for (section of vm.sections(); track section.name()) {\\n <div class=\\\"ax-col-span-12\\\">\\n <ax-form #form>\\n @if (vm.sections().length > 1 && !section.description()) {\\n <div class=\\\"ax-pb-4\\\">\\n <span class=\\\"ax-font-bold ax-text-xl\\\">{{ section.title() | translate | async }}</span>\\n @if (section.description()) {\\n <p class=\\\"ax-text-sm ax-text-gray-500\\\">{{ section.description() }}</p>\\n }\\n </div>\\n }\\n <div class=\\\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\\\">\\n @for (attr of section.elements(); track $index) {\\n <ax-form-field\\n class=\\\"ax-flex ax-flex-col ax-gap-1\\\"\\n [axp-grid-layout]=\\\"attr.layout()\\\"\\n [class.ax-hidden]=\\\"widget.options()['visibility'] == false\\\"\\n >\\n @if (attr.layout().label?.visible != false) {\\n <ax-label class=\\\"ax-font-semibold ax-text-sm\\\" [required]=\\\"attr.isRequired()\\\">\\n @if (attr.title()) {\\n {{ attr.title() | translate | async }}\\n } @else {\\n &nbsp;\\n }\\n </ax-label>\\n }\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"attr.node()\\\"\\n [mode]=\\\"'edit'\\\"\\n #widget=\\\"widgetRenderer\\\"\\n ></ng-container>\\n </ax-form-field>\\n }\\n </div>\\n </ax-form>\\n </div>\\n }\\n </div>\\n <!-- Finish Sections -->\\n </ax-form>\\n</axp-widgets-container>\\n@if (slot.isEmpty()) {\\n <ax-footer>\\n <ax-prefix>\\n <axp-component-slot name=\\\"entity-create-footer-prefix\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-button\\n look=\\\"solid\\\"\\n [color]=\\\"'default'\\\"\\n [text]=\\\"'@general:actions.cancel.title' | translate | async\\\"\\n (onClick)=\\\"handleCloseClick()\\\"\\n >\\n </ax-button>\\n @if (vm.canCreateNewOne()) {\\n <ax-dropdown-button\\n [disabled]=\\\"vm.isInProgress()\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.save.title' | translate | async\\\"\\n look=\\\"solid\\\"\\n (onClick)=\\\"handleSaveClick(form)\\\"\\n >\\n @if (vm.isInProgress()) {\\n <ax-loading></ax-loading>\\n }\\n <ax-button-item-list>\\n <ax-button-item\\n [text]=\\\"\\n ('@general:actions.save.title' | translate | async) +\\n ' ' +\\n ('@general:actions.create.title' | translate | async)\\n \\\"\\n (onClick)=\\\"handleSaveAndNewClick(form)\\\"\\n >\\n </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n } @else {\\n <ax-button\\n look=\\\"solid\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.save.title' | translate | async\\\"\\n (onClick)=\\\"handleSaveClick(form)\\\"\\n >\\n @if (vm.isInProgress()) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n }\\n <axp-component-slot name=\\\"entity-create-footer-suffix\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n </ax-suffix>\\n </ax-footer>\\n}\\n\\n<axp-component-slot name=\\\"entity-create-footer\\\" #slot=\\\"slot\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i1.AXFormFieldComponent, selector: \"ax-form-field\", inputs: [\"labelMode\"] }, { kind: \"component\", type: i1.AXFormComponent, selector: \"ax-form\", inputs: [\"labelMode\", \"look\", \"messageStyle\", \"updateOn\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { 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: \"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: AXDialogModule }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i4.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i5.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"component\", type: i6.AXDropdownButtonComponent, selector: \"ax-dropdown-button\", inputs: [\"disabled\", \"size\", \"color\", \"look\", \"text\", \"type\", \"mode\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"lookChange\", \"colorChange\", \"disabledChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: \n //\n AXPWidgetCoreModule }, { kind: \"component\", type: i7.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i7.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: AXPComponentSlotModule }, { kind: \"directive\", type: i8.AXPComponentSlotDirective, selector: \"axp-component-slot\", inputs: [\"name\", \"host\", \"context\"], exportAs: [\"slot\"] }, { kind: \"ngmodule\", type: AXPWidgetsModule }, { kind: \"directive\", type: AXPGridLayoutDirective, selector: \"[axp-grid-layout]\", inputs: [\"axp-grid-layout\"] }, { kind: \"pipe\", type: i9.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i10.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXPEntityMasterCreateViewComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n CommonModule,\n AXButtonModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXValidationModule,\n AXLabelModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n //\n AXPWidgetCoreModule,\n AXPComponentSlotModule,\n AXPWidgetsModule,\n AXPGridLayoutDirective,\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<axp-component-slot name=\\\"entity-create-header\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n<axp-widgets-container [context]=\\\"vm.context()\\\" (onContextChanged)=\\\"handleContextChange($event)\\\">\\n <ax-form class=\\\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\\\" #form [messageStyle]=\\\"'bottom'\\\" [updateOn]=\\\"'blur'\\\">\\n <!-- Begin Sections -->\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-4\\\">\\n @for (section of vm.sections(); track section.name()) {\\n <div class=\\\"ax-col-span-12\\\">\\n <ax-form #form>\\n @if (vm.sections().length > 1 && !section.description()) {\\n <div class=\\\"ax-pb-4\\\">\\n <span class=\\\"ax-font-bold ax-text-xl\\\">{{ section.title() | translate | async }}</span>\\n @if (section.description()) {\\n <p class=\\\"ax-text-sm ax-text-gray-500\\\">{{ section.description() }}</p>\\n }\\n </div>\\n }\\n <div class=\\\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\\\">\\n @for (attr of section.elements(); track $index) {\\n <ax-form-field\\n class=\\\"ax-flex ax-flex-col ax-gap-1\\\"\\n [axp-grid-layout]=\\\"attr.layout()\\\"\\n [class.ax-hidden]=\\\"widget.options()['visibility'] == false\\\"\\n >\\n @if (attr.layout().label?.visible != false) {\\n <ax-label class=\\\"ax-font-semibold ax-text-sm\\\" [required]=\\\"attr.isRequired()\\\">\\n @if (attr.title()) {\\n {{ attr.title() | translate | async }}\\n } @else {\\n &nbsp;\\n }\\n </ax-label>\\n }\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"attr.node()\\\"\\n [mode]=\\\"'edit'\\\"\\n #widget=\\\"widgetRenderer\\\"\\n ></ng-container>\\n </ax-form-field>\\n }\\n </div>\\n </ax-form>\\n </div>\\n }\\n </div>\\n <!-- Finish Sections -->\\n </ax-form>\\n</axp-widgets-container>\\n@if (slot.isEmpty()) {\\n <ax-footer>\\n <ax-prefix>\\n <axp-component-slot name=\\\"entity-create-footer-prefix\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n </ax-prefix>\\n <ax-suffix>\\n <ax-button\\n look=\\\"solid\\\"\\n [color]=\\\"'default'\\\"\\n [text]=\\\"'@general:actions.cancel.title' | translate | async\\\"\\n (onClick)=\\\"handleCloseClick()\\\"\\n >\\n </ax-button>\\n @if (vm.canCreateNewOne()) {\\n <ax-dropdown-button\\n [disabled]=\\\"vm.isInProgress()\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.save.title' | translate | async\\\"\\n look=\\\"solid\\\"\\n (onClick)=\\\"handleSaveClick(form)\\\"\\n >\\n @if (vm.isInProgress()) {\\n <ax-loading></ax-loading>\\n }\\n <ax-button-item-list>\\n <ax-button-item\\n [text]=\\\"\\n ('@general:actions.save.title' | translate | async) +\\n ' ' +\\n ('@general:actions.create.title' | translate | async)\\n \\\"\\n (onClick)=\\\"handleSaveAndNewClick(form)\\\"\\n >\\n </ax-button-item>\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n } @else {\\n <ax-button\\n look=\\\"solid\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.save.title' | translate | async\\\"\\n (onClick)=\\\"handleSaveClick(form)\\\"\\n >\\n @if (vm.isInProgress()) {\\n <ax-loading></ax-loading>\\n }\\n </ax-button>\\n }\\n <axp-component-slot name=\\\"entity-create-footer-suffix\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n </ax-suffix>\\n </ax-footer>\\n}\\n\\n<axp-component-slot name=\\\"entity-create-footer\\\" #slot=\\\"slot\\\" [context]=\\\"vm.context()\\\"></axp-component-slot>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3L2VudGl0eS1tYXN0ZXItY3JlYXRlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1jcmVhdGUtdmlldy9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFtQixZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFp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QUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQWtDO1FBQ3BFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0F0RFUsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsbUhBR2YsMkJBQTJCLHVGQzFEM0QscTlIQXNHQSwyQ0R0RUksWUFBWSw4QkFDWixXQUFXLDhCQUNYLFlBQVksa1RBQ1osaUJBQWlCLHFQQUVqQixjQUFjLG91QkFDZCxjQUFjLDhCQUNkLGVBQWUsOEtBQ2YsWUFBWSw4QkFDWixlQUFlLDhCQUNmLGtCQUFrQiw4QkFDbEIsYUFBYSxnS0FDYixnQkFBZ0IsOEJBQ2hCLHNCQUFzQiw0U0FDdEIsbUJBQW1CO2dCQUNuQixFQUFFO2dCQUNGLG1CQUFtQiw4WkFDbkIsc0JBQXNCLGtMQUN0QixnQkFBZ0IsK0JBQ2hCLHNCQUFzQjs7MkZBSWIsa0NBQWtDO2tCQTFCOUMsU0FBUzs4QkFFQzt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixFQUFFO3dCQUNGLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjtxQkFDdkIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50LCBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYQmFzZVBhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcGFnZSc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XG5cbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUFdpZGdldENvcmVNb2R1bGUsXG4gIEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQsXG4gIEFYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldHNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXRzJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1tYXN0ZXItY3JlYXRlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gICAgQVhWYWxpZGF0aW9uTW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgLy9cbiAgICBBWFBXaWRnZXRDb3JlTW9kdWxlLFxuICAgIEFYUENvbXBvbmVudFNsb3RNb2R1bGUsXG4gICAgQVhQV2lkZ2V0c01vZHVsZSxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld0NvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgdm0hOiBBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWw7XG5cbiAgcHJpdmF0ZSBjb250YWluZXIgPSB2aWV3Q2hpbGQoQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50KTtcblxuICBwcm90ZWN0ZWQgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52bS5idWlsZGVyID0gdGhpcy5jb250YWluZXIoKSEuYnVpbGRlclNlcnZpY2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQmFja0NsaWNrKCkge1xuICAgIC8vYXdhaXQgdGhpcy52bS5leGVjdXRlQ29tbWFuZCgnYmFjaycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZU5leHRDbGljayhmb3JtOiBBWEZvcm1Db21wb25lbnQpIHtcbiAgICAvLyBjb25zdCBmb3JtUmVzdWx0ID0gYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuICAgIC8vIGlmIChmb3JtUmVzdWx0LnJlc3VsdCkge1xuICAgIC8vICAgYXdhaXQgdGhpcy52bS5leGVjdXRlQ29tbWFuZCgnbmV4dCcpO1xuICAgIC8vIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlQ2xpY2soZm9ybTogQVhGb3JtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcbiAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMudm0uc2F2ZSgpO1xuXG4gICAgICAgIHRoaXMuY2xvc2UoeyBzYXZlOiB0cnVlLCByZWNvcmRJZDogcmVjb3JkPy5pZCwgaXRlbTogcmVjb3JkLCByZWRpcmVjdDogdGhpcy52bS5yZWRpcmVjdCgpIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlQW5kTmV3Q2xpY2soZm9ybTogQVhGb3JtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcbiAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMudm0uc2F2ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlKHsgc2F2ZTogdHJ1ZSwgcmVjb3JkSWQ6IHJlY29yZD8uaWQsIGl0ZW06IHJlY29yZCwgcmVkaXJlY3Q6IGZhbHNlIH0pO1xuICAgICAgICBhd2FpdCB0aGlzLnZtLmNyZWF0ZU5ld09uZSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVDb250ZXh0Q2hhbmdlKGU6IEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLnZtLmNvbnRleHQuc2V0KGUuZGF0YSk7XG4gIH1cbn1cbiIsIjxheHAtY29tcG9uZW50LXNsb3QgbmFtZT1cImVudGl0eS1jcmVhdGUtaGVhZGVyXCIgW2NvbnRleHRdPVwidm0uY29udGV4dCgpXCI+PC9heHAtY29tcG9uZW50LXNsb3Q+XG48YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cInZtLmNvbnRleHQoKVwiIChvbkNvbnRleHRDaGFuZ2VkKT1cImhhbmRsZUNvbnRleHRDaGFuZ2UoJGV2ZW50KVwiPlxuICA8YXgtZm9ybSBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTYgYXgtcC00IGF4LXBiLThcIiAjZm9ybSBbbWVzc2FnZVN0eWxlXT1cIidib3R0b20nXCIgW3VwZGF0ZU9uXT1cIidibHVyJ1wiPlxuICAgIDwhLS0gQmVnaW4gU2VjdGlvbnMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+XG4gICAgICBAZm9yIChzZWN0aW9uIG9mIHZtLnNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24ubmFtZSgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMlwiPlxuICAgICAgICAgIDxheC1mb3JtICNmb3JtPlxuICAgICAgICAgICAgQGlmICh2bS5zZWN0aW9ucygpLmxlbmd0aCA+IDEgJiYgIXNlY3Rpb24uZGVzY3JpcHRpb24oKSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcGItNFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1ib2xkIGF4LXRleHQteGxcIj57eyBzZWN0aW9uLnRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKHNlY3Rpb24uZGVzY3JpcHRpb24oKSkge1xuICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJheC10ZXh0LXNtIGF4LXRleHQtZ3JheS01MDBcIj57eyBzZWN0aW9uLmRlc2NyaXB0aW9uKCkgfX08L3A+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYXJkLWJvZHkgIWF4LWdyaWQgIWF4LWdyaWQtY29scy0xMiAhYXgtZ2FwLTRcIj5cbiAgICAgICAgICAgICAgQGZvciAoYXR0ciBvZiBzZWN0aW9uLmVsZW1lbnRzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxheC1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTFcIlxuICAgICAgICAgICAgICAgICAgW2F4cC1ncmlkLWxheW91dF09XCJhdHRyLmxheW91dCgpXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1oaWRkZW5dPVwid2lkZ2V0Lm9wdGlvbnMoKVsndmlzaWJpbGl0eSddID09IGZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBAaWYgKGF0dHIubGF5b3V0KCkubGFiZWw/LnZpc2libGUgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsIGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXNtXCIgW3JlcXVpcmVkXT1cImF0dHIuaXNSZXF1aXJlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChhdHRyLnRpdGxlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGF0dHIudGl0bGUoKSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGF4cC13aWRnZXQtcmVuZGVyZXJcbiAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwiYXR0ci5ub2RlKClcIlxuICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCInZWRpdCdcIlxuICAgICAgICAgICAgICAgICAgICAjd2lkZ2V0PVwid2lkZ2V0UmVuZGVyZXJcIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9heC1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEZpbmlzaCBTZWN0aW9ucyAgLS0+XG4gIDwvYXgtZm9ybT5cbjwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuQGlmIChzbG90LmlzRW1wdHkoKSkge1xuICA8YXgtZm9vdGVyPlxuICAgIDxheC1wcmVmaXg+XG4gICAgICA8YXhwLWNvbXBvbmVudC1zbG90IG5hbWU9XCJlbnRpdHktY3JlYXRlLWZvb3Rlci1wcmVmaXhcIiBbY29udGV4dF09XCJ2bS5jb250ZXh0KClcIj48L2F4cC1jb21wb25lbnQtc2xvdD5cbiAgICA8L2F4LXByZWZpeD5cbiAgICA8YXgtc3VmZml4PlxuICAgICAgPGF4LWJ1dHRvblxuICAgICAgICBsb29rPVwic29saWRcIlxuICAgICAgICBbY29sb3JdPVwiJ2RlZmF1bHQnXCJcbiAgICAgICAgW3RleHRdPVwiJ0BnZW5lcmFsOmFjdGlvbnMuY2FuY2VsLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCJcbiAgICAgID5cbiAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgQGlmICh2bS5jYW5DcmVhdGVOZXdPbmUoKSkge1xuICAgICAgICA8YXgtZHJvcGRvd24tYnV0dG9uXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInZtLmlzSW5Qcm9ncmVzcygpXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIidAZ2VuZXJhbDphY3Rpb25zLnNhdmUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2F2ZUNsaWNrKGZvcm0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAodm0uaXNJblByb2dyZXNzKCkpIHtcbiAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgW3RleHRdPVwiXG4gICAgICAgICAgICAgICAgKCdAZ2VuZXJhbDphY3Rpb25zLnNhdmUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMpICtcbiAgICAgICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgICAgICgnQGdlbmVyYWw6YWN0aW9ucy5jcmVhdGUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMpXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNhdmVBbmROZXdDbGljayhmb3JtKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgPC9heC1kcm9wZG93bi1idXR0b24+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICBbdGV4dF09XCInQGdlbmVyYWw6YWN0aW9ucy5zYXZlLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVTYXZlQ2xpY2soZm9ybSlcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmICh2bS5pc0luUHJvZ3Jlc3MoKSkge1xuICAgICAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICB9XG4gICAgICA8YXhwLWNvbXBvbmVudC1zbG90IG5hbWU9XCJlbnRpdHktY3JlYXRlLWZvb3Rlci1zdWZmaXhcIiBbY29udGV4dF09XCJ2bS5jb250ZXh0KClcIj48L2F4cC1jb21wb25lbnQtc2xvdD5cbiAgICA8L2F4LXN1ZmZpeD5cbiAgPC9heC1mb290ZXI+XG59XG5cbjxheHAtY29tcG9uZW50LXNsb3QgbmFtZT1cImVudGl0eS1jcmVhdGUtZm9vdGVyXCIgI3Nsb3Q9XCJzbG90XCIgW2NvbnRleHRdPVwidm0uY29udGV4dCgpXCI+PC9heHAtY29tcG9uZW50LXNsb3Q+XG4iXX0="],"names":["i8","i9"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { AXDrawerModule } from '@acorex/components/drawer';
5
5
  import * as i1$1 from '@acorex/core/platform';
6
6
  import * as i0 from '@angular/core';
7
7
  import { inject, input, viewChild, signal, ViewEncapsulation, Component, computed, effect, Input, ChangeDetectionStrategy } from '@angular/core';
8
- import { ActivatedRoute, RouterModule } from '@angular/router';
8
+ import { Router, ActivatedRoute, RouterModule } from '@angular/router';
9
9
  import { AXBadgeModule } from '@acorex/components/badge';
10
10
  import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
11
11
  import * as i3$1 from '@acorex/components/button';
@@ -237,10 +237,10 @@ class AXPEntityCategoryComponent {
237
237
  });
238
238
  await this.refreshAfterChange(node[this.categoryEntityDef?.parentKey]);
239
239
  }
240
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXPEntityCategoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
241
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXPEntityCategoryComponent, isStandalone: true, selector: "axp-entity-category", inputs: { vm: { classPropertyName: "vm", publicName: "vm", isSignal: true, isRequired: true, transformFunction: null }, searchValue: { classPropertyName: "searchValue", publicName: "searchValue", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, isSignal: true }], ngImport: i0, template: "<axp-layout-header>\n <axp-layout-title>{{\n vm().entityDef.category?.title || '@general:terms.classification.category' | translate | async\n }}</axp-layout-title>\n <axp-layout-toolbar>\n <ax-search-box\n (onValueChanged)=\"handleCategorySearchChange($event)\"\n [delayTime]=\"300\"\n [placeholder]=\"'@general:terms.interface.category.search.placeholder' | translate | async\"\n >\n </ax-search-box>\n </axp-layout-toolbar>\n</axp-layout-header>\n<axp-layout-content>\n @if (isLoading()) {\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-3\">\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n </div>\n } @else if (treeItems()[0].children.length) {\n <div class=\"ax-px-4 ax-max-h-[calc(100vh-250px)] ax-overflow-auto\">\n <ax-tree-view\n (onNodeClick)=\"handleNodeClick($event)\"\n (onCollapsedChanged)=\"handleCollapseChanged($event)\"\n [showCheckbox]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n #treeRef\n [textField]=\"vm().entityDef.category?.textField || 'title'\"\n [valueField]=\"vm().entityDef.category?.valueField || 'id'\"\n [expandedField]=\"'expand'\"\n [items]=\"treeItems()\"\n #tree\n >\n </ax-tree-view>\n </div>\n } @else {\n <axp-state-message\n icon=\"fa-light fa-folder-open\"\n [title]=\"'@general:terms.interface.category.search.no-records.title'\"\n [description]=\"'@general:terms.interface.category.search.no-records.description'\"\n >\n </axp-state-message>\n }\n\n <ng-template #itemTemplate let-item>\n <div class=\"ax-flex ax-items-center ax-justify-between ax-w-full ax-gap-2 ax-overflow-hidden\">\n <div class=\"ax-flex ax-items-center ax-gap-2 ax-min-w-0\">\n <ax-icon class=\"fas ax-text-warning fa-folder\"></ax-icon>\n <span class=\"ax-truncate\">{{ item.title }}</span>\n </div>\n @if (item.id && item.id !== 'all') {\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <ax-button class=\"ax-xs\" color=\"default\" look=\"blank\" (onClick)=\"$event.nativeEvent.stopPropagation()\">\n <ax-icon class=\"fas fa-ellipsis-v\"></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item\n (onClick)=\"handleCreateChildClick(item, $event)\"\n look=\"blank\"\n color=\"default\"\n text=\"Add New Child\"\n >\n <ax-icon class=\"fas fa-plus\"></ax-icon>\n </ax-button-item>\n <ax-button-item (onClick)=\"handleEditNodeClick(item, $event)\" look=\"blank\" text=\"Edit\">\n <ax-icon class=\"fas fa-pen\"></ax-icon>\n </ax-button-item>\n <ax-button-item\n (onClick)=\"handleDeleteNodeClick(item, $event)\"\n color=\"danger\"\n look=\"blank\"\n text=\"Delete\"\n >\n <ax-icon class=\"fas fa-trash\"></ax-icon>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n } @else if (item.id === 'all') {\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <ax-button class=\"ax-xs\" (onClick)=\"handleCreateRootClick($event)\" look=\"blank\" color=\"default\">\n <ax-icon class=\"fas fa-plus\"></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </ng-template>\n</axp-layout-content>\n", styles: ["ax-tree-view-item .ax-tree-view-items{width:100%;min-width:0px}ax-tree-view-item .ax-tree-view-items>div{width:100%}ax-tree-view-item .ax-state-tree-view-active{background-color:rgb(var(--ax-sys-color-light-surface))!important;color:rgb(var(--ax-sys-color-on-light-surface))!important;border-color:rgb(var(--ax-sys-color-border-light-surface))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "component", type: i2$1.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "showCheckbox", "hasCheckboxField", "selectionMode", "selectionBehavior", "selectionScope", "focusNodeEnabled", "valueField", "textField", "visibleField", "disableField", "hasChildField", "selectedField", "expandedField", "tooltipField", "childrenField", "activeField", "indeterminateField", "parentField", "iconField", "toggleIcons", "look", "showEmptyNodeMassage", "itemTemplate", "emptyTemplate", "expandOn"], outputs: ["onSelectionChanged", "onItemSelectedChanged", "onNodeClick", "onCollapsedChanged", "onNodedbClick"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i3.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutToolbarComponent, selector: "axp-layout-toolbar" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3$1.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$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i5.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "variant"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
240
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: AXPEntityCategoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
241
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: AXPEntityCategoryComponent, isStandalone: true, selector: "axp-entity-category", inputs: { vm: { classPropertyName: "vm", publicName: "vm", isSignal: true, isRequired: true, transformFunction: null }, searchValue: { classPropertyName: "searchValue", publicName: "searchValue", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, isSignal: true }], ngImport: i0, template: "<axp-layout-header>\n <axp-layout-title>{{\n vm().entityDef.category?.title || '@general:terms.classification.category' | translate | async\n }}</axp-layout-title>\n <axp-layout-toolbar>\n <ax-search-box\n (onValueChanged)=\"handleCategorySearchChange($event)\"\n [delayTime]=\"300\"\n [placeholder]=\"'@general:terms.interface.category.search.placeholder' | translate | async\"\n >\n </ax-search-box>\n </axp-layout-toolbar>\n</axp-layout-header>\n<axp-layout-content>\n @if (isLoading()) {\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-3\">\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n </div>\n } @else if (treeItems()[0].children.length) {\n <div class=\"ax-px-4 ax-max-h-[calc(100vh-250px)] ax-overflow-auto\">\n <ax-tree-view\n (onNodeClick)=\"handleNodeClick($event)\"\n (onCollapsedChanged)=\"handleCollapseChanged($event)\"\n [showCheckbox]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n #treeRef\n [textField]=\"vm().entityDef.category?.textField || 'title'\"\n [valueField]=\"vm().entityDef.category?.valueField || 'id'\"\n [expandedField]=\"'expand'\"\n [items]=\"treeItems()\"\n #tree\n >\n </ax-tree-view>\n </div>\n } @else {\n <axp-state-message\n icon=\"fa-light fa-folder-open\"\n [title]=\"'@general:terms.interface.category.search.no-records.title'\"\n [description]=\"'@general:terms.interface.category.search.no-records.description'\"\n >\n </axp-state-message>\n }\n\n <ng-template #itemTemplate let-item>\n <div class=\"ax-flex ax-items-center ax-justify-between ax-w-full ax-gap-2 ax-overflow-hidden\">\n <div class=\"ax-flex ax-items-center ax-gap-2 ax-min-w-0\">\n <ax-icon class=\"fas ax-text-warning fa-folder\"></ax-icon>\n <span class=\"ax-truncate\">{{ item.title }}</span>\n </div>\n @if (item.id && item.id !== 'all') {\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <ax-button class=\"ax-xs\" color=\"default\" look=\"blank\" (onClick)=\"$event.nativeEvent.stopPropagation()\">\n <ax-icon class=\"fas fa-ellipsis-v\"></ax-icon>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item\n (onClick)=\"handleCreateChildClick(item, $event)\"\n look=\"blank\"\n color=\"default\"\n text=\"Add New Child\"\n >\n <ax-icon class=\"fas fa-plus\"></ax-icon>\n </ax-button-item>\n <ax-button-item (onClick)=\"handleEditNodeClick(item, $event)\" look=\"blank\" text=\"Edit\">\n <ax-icon class=\"fas fa-pen\"></ax-icon>\n </ax-button-item>\n <ax-button-item\n (onClick)=\"handleDeleteNodeClick(item, $event)\"\n color=\"danger\"\n look=\"blank\"\n text=\"Delete\"\n >\n <ax-icon class=\"fas fa-trash\"></ax-icon>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n } @else if (item.id === 'all') {\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <ax-button class=\"ax-xs\" (onClick)=\"handleCreateRootClick($event)\" look=\"blank\" color=\"default\">\n <ax-icon class=\"fas fa-plus\"></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </ng-template>\n</axp-layout-content>\n", styles: ["ax-tree-view-item .ax-tree-view-items{width:100%;min-width:0px}ax-tree-view-item .ax-tree-view-items>div{width:100%}ax-tree-view-item .ax-state-tree-view-active{background-color:rgb(var(--ax-sys-color-light-surface))!important;color:rgb(var(--ax-sys-color-on-light-surface))!important;border-color:rgb(var(--ax-sys-color-border-light-surface))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "component", type: i2$1.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "showCheckbox", "hasCheckboxField", "selectionMode", "selectionBehavior", "selectionScope", "focusNodeEnabled", "valueField", "textField", "visibleField", "disableField", "hasChildField", "selectedField", "expandedField", "tooltipField", "childrenField", "activeField", "indeterminateField", "parentField", "iconField", "toggleIcons", "look", "showEmptyNodeMassage", "itemTemplate", "emptyTemplate", "expandOn"], outputs: ["onSelectionChanged", "onItemSelectedChanged", "onNodeClick", "onCollapsedChanged", "onNodedbClick"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i3.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutToolbarComponent, selector: "axp-layout-toolbar" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3$1.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$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i5.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "variant"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
242
242
  }
243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXPEntityCategoryComponent, decorators: [{
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: AXPEntityCategoryComponent, decorators: [{
244
244
  type: Component,
245
245
  args: [{ selector: 'axp-entity-category', standalone: true, encapsulation: ViewEncapsulation.None, imports: [
246
246
  CommonModule,
@@ -262,6 +262,8 @@ class AXPEntityMasterToolbarViewComponent {
262
262
  constructor() {
263
263
  this.layoutService = inject(AXPLayoutThemeService);
264
264
  this.parent = inject(AXPEntityMasterListViewComponent);
265
+ this.router = inject(Router);
266
+ this.activeRoute = inject(ActivatedRoute);
265
267
  this.isInitializing = false;
266
268
  this.pendingInitialFilters = true;
267
269
  this.pendingInitialSorts = true;
@@ -329,6 +331,13 @@ class AXPEntityMasterToolbarViewComponent {
329
331
  }
330
332
  async onViewChanged(view) {
331
333
  await this.vm.setView(view.name);
334
+ // Sync query param immediately on tab change
335
+ this.router.navigate([], {
336
+ relativeTo: this.activeRoute,
337
+ queryParams: { view: view.name },
338
+ queryParamsHandling: 'merge',
339
+ replaceUrl: true,
340
+ });
332
341
  this.isInitializing = true;
333
342
  this.pendingInitialFilters = true;
334
343
  this.pendingInitialSorts = true;
@@ -398,10 +407,10 @@ class AXPEntityMasterToolbarViewComponent {
398
407
  // Use debounced apply to avoid triple refresh when combined with sorts/filters
399
408
  // this.scheduleApply();
400
409
  }
401
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXPEntityMasterToolbarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
402
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXPEntityMasterToolbarViewComponent, isStandalone: true, selector: "axp-entity-master-toolbar-view", inputs: { vm: ["viewModel", "vm"] }, host: { classAttribute: "ax-w-full" }, ngImport: i0, template: "<!-- <axp-entity-view-toolbar [viewModel]=\"vm\"></axp-entity-view-toolbar> -->\n<axp-query-views\n [views]=\"viewQueries()\"\n [selectedView]=\"selectedViewQuery()\"\n (selectedViewChange)=\"onViewChanged($event)\"\n></axp-query-views>\n<div class=\"ax-flex ax-items-center ax-gap-2 ax-border-b ax-border-light w-full\">\n <!-- <axp-entity-filter-toolbar [viewModel]=\"vm\"></axp-entity-filter-toolbar> -->\n <axp-query-filters\n [filtersDefinitions]=\"filtersDefinitions()\"\n [initialFilters]=\"initialFilters()\"\n (onFiltersChanged)=\"onFiltersChanged($event)\"\n ></axp-query-filters>\n\n <div class=\"ax-flex ax-items-center ax-gap-1 md:ax-gap-2\">\n <ax-button [iconOnly]=\"true\" #columnButton [color]=\"'default'\">\n <i class=\"fa-light fa-table-columns\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"30\"\n [target]=\"columnButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\">\n <ax-header class=\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\">\n {{ '@general:terms.common.columns' | translate | async }}\n </ax-header>\n <div class=\"ax-py-2 ax-px-4\">\n <axp-query-columns [columns]=\"vm.columns()\" (columnsChange)=\"onColumnsChange($event)\"></axp-query-columns>\n <!-- <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns> -->\n </div>\n </div>\n </ax-popover>\n @if (vm.canSort()) {\n <ax-button [iconOnly]=\"true\" [text]=\"'Sorts'\" #sortButton [color]=\"'default'\">\n <i class=\"fa-light fa-sort-amount-up\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"10\"\n [target]=\"sortButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\">\n <ax-header class=\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\">\n {{ '@general:terms.common.sorts' | translate | async }}\n </ax-header>\n <div class=\"ax-py-2 ax-px-4\">\n <!-- <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting> -->\n <axp-query-sorts\n [sortDefinitions]=\"sortDefinitions()\"\n (sortQueriesChange)=\"onSortQueriesChange($event)\"\n [initialSortQueries]=\"sortQueries()\"\n ></axp-query-sorts>\n </div>\n </div>\n </ax-popover>\n }\n @if (layoutService.isSmall()) {\n <ax-button (onClick)=\"parent.toggleCategoryDrawer()\" [iconOnly]=\"true\" [color]=\"'default'\">\n <i class=\"fa-light fa-bars\"></i>\n </ax-button>\n }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3$1.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.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: AXTranslationModule }, { kind: "component", type: AXPQueryFiltersComponent, selector: "axp-query-filters", inputs: ["filtersDefinitions", "initialFilters"], outputs: ["onFiltersChanged"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXPQuerySortsComponent, selector: "axp-query-sorts", inputs: ["sortDefinitions", "initialSortQueries"], outputs: ["sortDefinitionsChange", "sortQueriesChange"] }, { kind: "component", type: AXPQueryViewsComponent, selector: "axp-query-views", inputs: ["views", "selectedView"], outputs: ["viewsChange", "selectedViewChange"] }, { kind: "component", type: AXPQueryColumnsComponent, selector: "axp-query-columns", inputs: ["columns"], outputs: ["columnsChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
410
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: AXPEntityMasterToolbarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
411
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: AXPEntityMasterToolbarViewComponent, isStandalone: true, selector: "axp-entity-master-toolbar-view", inputs: { vm: ["viewModel", "vm"] }, host: { classAttribute: "ax-w-full" }, ngImport: i0, template: "<!-- <axp-entity-view-toolbar [viewModel]=\"vm\"></axp-entity-view-toolbar> -->\n<axp-query-views\n [views]=\"viewQueries()\"\n [selectedView]=\"selectedViewQuery()\"\n (selectedViewChange)=\"onViewChanged($event)\"\n></axp-query-views>\n<div class=\"ax-flex ax-items-center ax-gap-2 ax-border-b ax-border-light w-full\">\n <!-- <axp-entity-filter-toolbar [viewModel]=\"vm\"></axp-entity-filter-toolbar> -->\n <axp-query-filters\n [filtersDefinitions]=\"filtersDefinitions()\"\n [initialFilters]=\"initialFilters()\"\n (onFiltersChanged)=\"onFiltersChanged($event)\"\n ></axp-query-filters>\n\n <div class=\"ax-flex ax-items-center ax-gap-1 md:ax-gap-2\">\n <ax-button [iconOnly]=\"true\" #columnButton [color]=\"'default'\">\n <i class=\"fa-light fa-table-columns\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"30\"\n [target]=\"columnButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\">\n <ax-header class=\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\">\n {{ '@general:terms.common.columns' | translate | async }}\n </ax-header>\n <div class=\"ax-py-2 ax-px-4\">\n <axp-query-columns [columns]=\"vm.columns()\" (columnsChange)=\"onColumnsChange($event)\"></axp-query-columns>\n <!-- <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns> -->\n </div>\n </div>\n </ax-popover>\n @if (vm.canSort()) {\n <ax-button [iconOnly]=\"true\" [text]=\"'Sorts'\" #sortButton [color]=\"'default'\">\n <i class=\"fa-light fa-sort-amount-up\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"10\"\n [target]=\"sortButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\">\n <ax-header class=\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\">\n {{ '@general:terms.common.sorts' | translate | async }}\n </ax-header>\n <div class=\"ax-py-2 ax-px-4\">\n <!-- <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting> -->\n <axp-query-sorts\n [sortDefinitions]=\"sortDefinitions()\"\n (sortQueriesChange)=\"onSortQueriesChange($event)\"\n [initialSortQueries]=\"sortQueries()\"\n ></axp-query-sorts>\n </div>\n </div>\n </ax-popover>\n }\n @if (layoutService.isSmall()) {\n <ax-button (onClick)=\"parent.toggleCategoryDrawer()\" [iconOnly]=\"true\" [color]=\"'default'\">\n <i class=\"fa-light fa-bars\"></i>\n </ax-button>\n }\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3$1.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.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: AXTranslationModule }, { kind: "component", type: AXPQueryFiltersComponent, selector: "axp-query-filters", inputs: ["filtersDefinitions", "initialFilters"], outputs: ["onFiltersChanged"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i3$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXPQuerySortsComponent, selector: "axp-query-sorts", inputs: ["sortDefinitions", "initialSortQueries"], outputs: ["sortDefinitionsChange", "sortQueriesChange"] }, { kind: "component", type: AXPQueryViewsComponent, selector: "axp-query-views", inputs: ["views", "selectedView"], outputs: ["viewsChange", "selectedViewChange"] }, { kind: "component", type: AXPQueryColumnsComponent, selector: "axp-query-columns", inputs: ["columns"], outputs: ["columnsChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
403
412
  }
404
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXPEntityMasterToolbarViewComponent, decorators: [{
413
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: AXPEntityMasterToolbarViewComponent, decorators: [{
405
414
  type: Component,
406
415
  args: [{ selector: 'axp-entity-master-toolbar-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
407
416
  CommonModule,
@@ -426,6 +435,7 @@ class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
426
435
  super();
427
436
  this.platform = platform;
428
437
  this.activeRoute = inject(ActivatedRoute);
438
+ this.router = inject(Router);
429
439
  this.vm = this.activeRoute.snapshot.data['vm'];
430
440
  //
431
441
  this.store = inject(AXPLayoutThemeService);
@@ -435,6 +445,7 @@ class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
435
445
  this.categorySearchValue = signal('', ...(ngDevMode ? [{ debugName: "categorySearchValue" }] : []));
436
446
  // @ViewChild('grid', { static: true}) grid: AXDataTableComponent;
437
447
  this.grid = viewChild('grid', ...(ngDevMode ? [{ debugName: "grid" }] : []));
448
+ this.initializedFromRoute = false;
438
449
  this.commandRowItems = computed(() => {
439
450
  return this.vm.primaryRowActions().map((c) => {
440
451
  return {
@@ -472,9 +483,44 @@ class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
472
483
  }
473
484
  }
474
485
  });
486
+ // Keep URL query param `view` in sync with current vm view
487
+ effect(() => {
488
+ if (!this.initializedFromRoute) {
489
+ return;
490
+ }
491
+ const currentViewName = this.vm.view().name;
492
+ const urlView = this.activeRoute.snapshot.queryParamMap.get('view');
493
+ if (currentViewName && currentViewName !== urlView) {
494
+ this.router.navigate([], {
495
+ relativeTo: this.activeRoute,
496
+ queryParams: { view: currentViewName },
497
+ queryParamsHandling: 'merge',
498
+ replaceUrl: true,
499
+ });
500
+ }
501
+ });
502
+ }
503
+ async ngOnInit() {
504
+ // React to external URL changes (back/forward navigation or deep links)
505
+ this.queryParamSub = this.activeRoute.queryParamMap.subscribe(async (qp) => {
506
+ const viewFromUrl = qp.get('view');
507
+ await this.vm.setView(viewFromUrl);
508
+ });
475
509
  }
476
- ngAfterViewInit() {
477
- this.vm.setView();
510
+ async ngAfterViewInit() {
511
+ const viewFromUrl = this.activeRoute.snapshot.queryParamMap.get('view');
512
+ await this.vm.setView(viewFromUrl);
513
+ const resolvedView = this.vm.view().name;
514
+ const currentUrlView = this.activeRoute.snapshot.queryParamMap.get('view');
515
+ if (currentUrlView !== resolvedView) {
516
+ this.router.navigate([], {
517
+ relativeTo: this.activeRoute,
518
+ queryParams: { view: resolvedView },
519
+ queryParamsHandling: 'merge',
520
+ replaceUrl: true,
521
+ });
522
+ }
523
+ this.initializedFromRoute = true;
478
524
  }
479
525
  // protected closeFiltersDrawer(e: AXDrawerComponent, collapsed: boolean) {
480
526
  // if (collapsed) {
@@ -592,6 +638,7 @@ class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
592
638
  this.toggleEndSide();
593
639
  }
594
640
  ngOnDestroy() {
641
+ this.queryParamSub?.unsubscribe();
595
642
  this.vm.destroy();
596
643
  }
597
644
  toggleCategoryDrawer() {
@@ -644,8 +691,8 @@ class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
644
691
  this.vm.execute(command);
645
692
  }
646
693
  }
647
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXPEntityMasterListViewComponent, deps: [{ token: i1$1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
648
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXPEntityMasterListViewComponent, isStandalone: true, selector: "axp-entity-master-list", providers: [
694
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: AXPEntityMasterListViewComponent, deps: [{ token: i1$1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
695
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: AXPEntityMasterListViewComponent, isStandalone: true, selector: "axp-entity-master-list", providers: [
649
696
  {
650
697
  provide: AXPPageLayoutBase,
651
698
  useExisting: AXPEntityMasterListViewComponent,
@@ -658,7 +705,7 @@ class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
658
705
  //
659
706
  AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutStartSideComponent, selector: "axp-layout-page-start-side, axp-layout-start-side" }, { kind: "component", type: AXPEntityCategoryComponent, selector: "axp-entity-category", inputs: ["vm", "searchValue"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
660
707
  }
661
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXPEntityMasterListViewComponent, decorators: [{
708
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: AXPEntityMasterListViewComponent, decorators: [{
662
709
  type: Component,
663
710
  args: [{ selector: 'axp-entity-master-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
664
711
  CommonModule,
@@ -703,4 +750,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
703
750
  }], ctorParameters: () => [{ type: i1$1.AXPlatform }] });
704
751
 
705
752
  export { AXPEntityMasterListViewComponent };
706
- //# sourceMappingURL=acorex-platform-themes-default-entity-master-list-view.component-nDHfQQ3O.mjs.map
753
+ //# sourceMappingURL=acorex-platform-themes-default-entity-master-list-view.component-C60W6UnN.mjs.map