@acorex/platform 20.6.0-next.0 → 20.6.0-next.2

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 (116) hide show
  1. package/common/index.d.ts +5 -1
  2. package/core/index.d.ts +443 -3
  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 → acorex-platform-common-common-settings.provider-CLb2KMfv.mjs} +4 -4
  6. package/fesm2022/acorex-platform-common-common-settings.provider-CLb2KMfv.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-common.mjs +104 -104
  8. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-core.mjs +460 -55
  10. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-domain.mjs +37 -38
  12. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-builder.mjs +22 -18
  14. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-components.mjs +444 -262
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +84 -84
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/{acorex-platform-layout-entity-create-entity.command-DyXF9zAh.mjs → acorex-platform-layout-entity-create-entity.command-BsLbiAdA.mjs} +4 -4
  20. package/fesm2022/acorex-platform-layout-entity-create-entity.command-BsLbiAdA.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-layout-entity.mjs +150 -148
  22. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-views.mjs +20 -20
  24. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-layout-widget-core.mjs +144 -123
  26. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  27. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C_3IWNkj.mjs → acorex-platform-layout-widgets-button-widget-designer.component-lHfg4JFJ.mjs} +4 -4
  28. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-lHfg4JFJ.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CJltEgut.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CMSnecnD.mjs} +4 -4
  30. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CMSnecnD.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-pM-TIuk0.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-DN-sIFYe.mjs} +4 -4
  32. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-DN-sIFYe.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-BqI96-fU.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-Bn9w0SEz.mjs} +4 -4
  34. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-Bn9w0SEz.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-view.component-C-AhenaM.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-B8mgcvoX.mjs} +4 -4
  36. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-B8mgcvoX.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-edit.component-DCAya5ne.mjs → acorex-platform-layout-widgets-extra-properties-widget-edit.component-Bhof2SY8.mjs} +4 -4
  38. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-Bhof2SY8.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-view.component-D-PnBqLb.mjs → acorex-platform-layout-widgets-extra-properties-widget-view.component-CeQIvKVV.mjs} +4 -4
  40. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-CeQIvKVV.mjs.map +1 -0
  41. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CGEHOyKT.mjs → acorex-platform-layout-widgets-file-list-popup.component-BOP7jFp4.mjs} +5 -5
  42. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-BOP7jFp4.mjs.map +1 -0
  43. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-Bss0xUcu.mjs → acorex-platform-layout-widgets-page-widget-designer.component-C57lyBs3.mjs} +4 -4
  44. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-C57lyBs3.mjs.map +1 -0
  45. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Cy9mHnNP.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-fr77M8Z0.mjs} +5 -5
  46. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-fr77M8Z0.mjs.map +1 -0
  47. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-DznLtuer.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-CvZTRhct.mjs} +4 -4
  48. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-CvZTRhct.mjs.map +1 -0
  49. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-ndOUSFi9.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-DHES_0ot.mjs} +4 -4
  50. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-DHES_0ot.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-layout-widgets.mjs +1506 -617
  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 +49 -42
  56. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  57. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-B1PT6FtZ.mjs → acorex-platform-themes-default-entity-master-create-view.component-C_XmJV7Y.mjs} +5 -5
  58. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-C_XmJV7Y.mjs.map +1 -0
  59. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-ccqB5ShI.mjs → acorex-platform-themes-default-entity-master-list-view.component-BkY9HXcT.mjs} +51 -17
  60. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BkY9HXcT.mjs.map +1 -0
  61. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-4g19A3eI.mjs → acorex-platform-themes-default-entity-master-modify-view.component-DJPDil7w.mjs} +5 -5
  62. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DJPDil7w.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-B8gx5cG7.mjs → acorex-platform-themes-default-entity-master-single-view.component-BArdGNfr.mjs} +8 -8
  64. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BArdGNfr.mjs.map +1 -0
  65. package/fesm2022/{acorex-platform-themes-default-error-401.component-CcvGfdhu.mjs → acorex-platform-themes-default-error-401.component-D7rEInHg.mjs} +4 -4
  66. package/fesm2022/acorex-platform-themes-default-error-401.component-D7rEInHg.mjs.map +1 -0
  67. package/fesm2022/{acorex-platform-themes-default-error-404.component-4-CaEsnV.mjs → acorex-platform-themes-default-error-404.component-BTZlVrd8.mjs} +4 -4
  68. package/fesm2022/acorex-platform-themes-default-error-404.component-BTZlVrd8.mjs.map +1 -0
  69. package/fesm2022/acorex-platform-themes-default-error-offline.component-BhvEi6nX.mjs +19 -0
  70. package/fesm2022/acorex-platform-themes-default-error-offline.component-BhvEi6nX.mjs.map +1 -0
  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-Dc_Txe32.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BXV40gay.mjs} +4 -4
  74. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BXV40gay.mjs.map +1 -0
  75. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DY2xFnrv.mjs → acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs} +18 -18
  76. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -0
  77. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-hgWLhhle.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-BpIf4s53.mjs} +4 -4
  78. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BpIf4s53.mjs.map +1 -0
  79. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CY3JZK_W.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-C9gvfQfX.mjs} +4 -4
  80. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-C9gvfQfX.mjs.map +1 -0
  81. package/fesm2022/acorex-platform-themes-shared.mjs +55 -55
  82. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  83. package/fesm2022/acorex-platform-workflow.mjs +1476 -28
  84. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  85. package/layout/builder/index.d.ts +6 -2
  86. package/layout/components/index.d.ts +25 -1
  87. package/layout/widget-core/index.d.ts +7 -0
  88. package/layout/widgets/index.d.ts +169 -13
  89. package/package.json +9 -9
  90. package/workflow/index.d.ts +1536 -3
  91. package/fesm2022/acorex-platform-common-common-settings.provider-9OHien_H.mjs.map +0 -1
  92. package/fesm2022/acorex-platform-layout-entity-create-entity.command-DyXF9zAh.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C_3IWNkj.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CJltEgut.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-pM-TIuk0.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-BqI96-fU.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-C-AhenaM.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-DCAya5ne.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-D-PnBqLb.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CGEHOyKT.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-Bss0xUcu.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Cy9mHnNP.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DznLtuer.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-ndOUSFi9.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-B1PT6FtZ.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-ccqB5ShI.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-4g19A3eI.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B8gx5cG7.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-error-401.component-CcvGfdhu.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-error-404.component-4-CaEsnV.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-error-offline.component-BNecbFEj.mjs +0 -19
  112. package/fesm2022/acorex-platform-themes-default-error-offline.component-BNecbFEj.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-Dc_Txe32.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-shared-settings.provider-DY2xFnrv.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-hgWLhhle.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-CY3JZK_W.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-entity-master-create-view.component-B1PT6FtZ.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\\n id=\\\"axp-entity-form-create\\\"\\n class=\\\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\\\"\\n #form\\n [messageStyle]=\\\"'bottom'\\\"\\n [updateOn]=\\\"'blur'\\\"\\n >\\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 [attr.id]=\\\"'axp-field-' + attr.name()\\\"\\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 id=\\\"axp-entity-footer-create\\\">\\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 id=\\\"axp-btn-cancel\\\"\\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 id=\\\"axp-btn-save\\\"\\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 id=\\\"axp-btn-save-and-new\\\"\\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 id=\\\"axp-btn-save\\\"\\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\\n id=\\\"axp-entity-form-create\\\"\\n class=\\\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\\\"\\n #form\\n [messageStyle]=\\\"'bottom'\\\"\\n [updateOn]=\\\"'blur'\\\"\\n >\\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 [attr.id]=\\\"'axp-field-' + attr.name()\\\"\\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 id=\\\"axp-entity-footer-create\\\">\\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 id=\\\"axp-btn-cancel\\\"\\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 id=\\\"axp-btn-save\\\"\\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 id=\\\"axp-btn-save-and-new\\\"\\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 id=\\\"axp-btn-save\\\"\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3RoZW1lcy9kZWZhdWx0L3NyYy9saWIvbGF5b3V0cy9lbnRpdHktbGF5b3V0cy9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3L2VudGl0eS1tYXN0ZXItY3JlYXRlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1jcmVhdGUtdmlldy9lbnRpdHktbWFzdGVyLWNyZWF0ZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFtQixZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0QsT0FBTyxFQUNMLG1CQUFtQixFQUVuQiwyQkFBMkIsR0FDNUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBNEIvRCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsbUJBQW1CO0lBMUIzRTs7UUE2QlUsY0FBUyxHQUFHLFNBQVMsQ0FBQywyQkFBMkIscURBQUMsQ0FBQztRQUVqRCxhQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FrRGpEO0lBaERDLGVBQWU7UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFHLENBQUMsY0FBYyxDQUFDO0lBQ3JELENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVTLEtBQUssQ0FBQyxlQUFlO1FBQzdCLHVDQUF1QztJQUN6QyxDQUFDO0lBRVMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFxQjtRQUNuRCw0Q0FBNEM7UUFDNUMsMkJBQTJCO1FBQzNCLDBDQUEwQztRQUMxQyxJQUFJO0lBQ04sQ0FBQztJQUVTLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBcUI7UUFDbkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDL0YsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLLENBQUMscUJBQXFCLENBQUMsSUFBcUI7UUFDekQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDaEYsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRVMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQWtDO1FBQ3BFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0F0RFUsa0NBQWtDO2tHQUFsQyxrQ0FBa0MsbUhBR2YsMkJBQTJCLHVGQzFEM0Qsb3ZJQWlIQSwyQ0RqRkksWUFBWSw4QkFDWixXQUFXLDhCQUNYLFlBQVksa1RBQ1osaUJBQWlCLHFQQUVqQixjQUFjLG91QkFDZCxjQUFjLDhCQUNkLGVBQWUsOEtBQ2YsWUFBWSw4QkFDWixlQUFlLDhCQUNmLGtCQUFrQiw4QkFDbEIsYUFBYSxnS0FDYixnQkFBZ0IsOEJBQ2hCLHNCQUFzQiw0U0FDdEIsbUJBQW1CO2dCQUNuQixFQUFFO2dCQUNGLG1CQUFtQiw4WkFDbkIsc0JBQXNCLGtMQUN0QixnQkFBZ0IsK0JBQ2hCLHNCQUFzQjs7MkZBSWIsa0NBQWtDO2tCQTFCOUMsU0FBUzs4QkFFQzt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixFQUFFO3dCQUNGLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjtxQkFDdkIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERpYWxvZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50LCBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYQmFzZVBhZ2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcGFnZSc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XG5cbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUFdpZGdldENvcmVNb2R1bGUsXG4gIEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQsXG4gIEFYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld01vZGVsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldHNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXRzJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2VudGl0eS1tYXN0ZXItY3JlYXRlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEaWFsb2dNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVGFic01vZHVsZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gICAgQVhWYWxpZGF0aW9uTW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgLy9cbiAgICBBWFBXaWRnZXRDb3JlTW9kdWxlLFxuICAgIEFYUENvbXBvbmVudFNsb3RNb2R1bGUsXG4gICAgQVhQV2lkZ2V0c01vZHVsZSxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyQ3JlYXRlVmlld0NvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgdm0hOiBBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWw7XG5cbiAgcHJpdmF0ZSBjb250YWluZXIgPSB2aWV3Q2hpbGQoQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50KTtcblxuICBwcm90ZWN0ZWQgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52bS5idWlsZGVyID0gdGhpcy5jb250YWluZXIoKSEuYnVpbGRlclNlcnZpY2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQmFja0NsaWNrKCkge1xuICAgIC8vYXdhaXQgdGhpcy52bS5leGVjdXRlQ29tbWFuZCgnYmFjaycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZU5leHRDbGljayhmb3JtOiBBWEZvcm1Db21wb25lbnQpIHtcbiAgICAvLyBjb25zdCBmb3JtUmVzdWx0ID0gYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuICAgIC8vIGlmIChmb3JtUmVzdWx0LnJlc3VsdCkge1xuICAgIC8vICAgYXdhaXQgdGhpcy52bS5leGVjdXRlQ29tbWFuZCgnbmV4dCcpO1xuICAgIC8vIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlQ2xpY2soZm9ybTogQVhGb3JtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcbiAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMudm0uc2F2ZSgpO1xuXG4gICAgICAgIHRoaXMuY2xvc2UoeyBzYXZlOiB0cnVlLCByZWNvcmRJZDogcmVjb3JkPy5pZCwgaXRlbTogcmVjb3JkLCByZWRpcmVjdDogdGhpcy52bS5yZWRpcmVjdCgpIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlQW5kTmV3Q2xpY2soZm9ybTogQVhGb3JtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgZm9ybVJlc3VsdCA9IGF3YWl0IGZvcm0udmFsaWRhdGUoKTtcbiAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMudm0uc2F2ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlKHsgc2F2ZTogdHJ1ZSwgcmVjb3JkSWQ6IHJlY29yZD8uaWQsIGl0ZW06IHJlY29yZCwgcmVkaXJlY3Q6IGZhbHNlIH0pO1xuICAgICAgICBhd2FpdCB0aGlzLnZtLmNyZWF0ZU5ld09uZSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVDb250ZXh0Q2hhbmdlKGU6IEFYUFdpZGdldENvcmVDb250ZXh0Q2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLnZtLmNvbnRleHQuc2V0KGUuZGF0YSk7XG4gIH1cbn1cbiIsIjxheHAtY29tcG9uZW50LXNsb3QgbmFtZT1cImVudGl0eS1jcmVhdGUtaGVhZGVyXCIgW2NvbnRleHRdPVwidm0uY29udGV4dCgpXCI+PC9heHAtY29tcG9uZW50LXNsb3Q+XG48YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cInZtLmNvbnRleHQoKVwiIChvbkNvbnRleHRDaGFuZ2VkKT1cImhhbmRsZUNvbnRleHRDaGFuZ2UoJGV2ZW50KVwiPlxuICA8YXgtZm9ybVxuICAgIGlkPVwiYXhwLWVudGl0eS1mb3JtLWNyZWF0ZVwiXG4gICAgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC02IGF4LXAtNCBheC1wYi04XCJcbiAgICAjZm9ybVxuICAgIFttZXNzYWdlU3R5bGVdPVwiJ2JvdHRvbSdcIlxuICAgIFt1cGRhdGVPbl09XCInYmx1cidcIlxuICA+XG4gICAgPCEtLSBCZWdpbiBTZWN0aW9ucyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTRcIj5cbiAgICAgIEBmb3IgKHNlY3Rpb24gb2Ygdm0uc2VjdGlvbnMoKTsgdHJhY2sgc2VjdGlvbi5uYW1lKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbC1zcGFuLTEyXCI+XG4gICAgICAgICAgPGF4LWZvcm0gI2Zvcm0+XG4gICAgICAgICAgICBAaWYgKHZtLnNlY3Rpb25zKCkubGVuZ3RoID4gMSAmJiAhc2VjdGlvbi5kZXNjcmlwdGlvbigpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1wYi00XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1mb250LWJvbGQgYXgtdGV4dC14bFwiPnt7IHNlY3Rpb24udGl0bGUoKSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAoc2VjdGlvbi5kZXNjcmlwdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1ncmF5LTUwMFwiPnt7IHNlY3Rpb24uZGVzY3JpcHRpb24oKSB9fTwvcD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhcmQtYm9keSAhYXgtZ3JpZCAhYXgtZ3JpZC1jb2xzLTEyICFheC1nYXAtNFwiPlxuICAgICAgICAgICAgICBAZm9yIChhdHRyIG9mIHNlY3Rpb24uZWxlbWVudHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGF4LWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIidheHAtZmllbGQtJyArIGF0dHIubmFtZSgpXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMVwiXG4gICAgICAgICAgICAgICAgICBbYXhwLWdyaWQtbGF5b3V0XT1cImF0dHIubGF5b3V0KClcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWhpZGRlbl09XCJ3aWRnZXQub3B0aW9ucygpWyd2aXNpYmlsaXR5J10gPT0gZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoYXR0ci5sYXlvdXQoKS5sYWJlbD8udmlzaWJsZSAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWwgY2xhc3M9XCJheC1mb250LXNlbWlib2xkIGF4LXRleHQtc21cIiBbcmVxdWlyZWRdPVwiYXR0ci5pc1JlcXVpcmVkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGF0dHIudGl0bGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAge3sgYXR0ci50aXRsZSgpIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgYXhwLXdpZGdldC1yZW5kZXJlclxuICAgICAgICAgICAgICAgICAgICBbbm9kZV09XCJhdHRyLm5vZGUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIidlZGl0J1wiXG4gICAgICAgICAgICAgICAgICAgICN3aWRnZXQ9XCJ3aWRnZXRSZW5kZXJlclwiXG4gICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9heC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2F4LWZvcm0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDwhLS0gRmluaXNoIFNlY3Rpb25zICAtLT5cbiAgPC9heC1mb3JtPlxuPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG5AaWYgKHNsb3QuaXNFbXB0eSgpKSB7XG4gIDxheC1mb290ZXIgaWQ9XCJheHAtZW50aXR5LWZvb3Rlci1jcmVhdGVcIj5cbiAgICA8YXgtcHJlZml4PlxuICAgICAgPGF4cC1jb21wb25lbnQtc2xvdCBuYW1lPVwiZW50aXR5LWNyZWF0ZS1mb290ZXItcHJlZml4XCIgW2NvbnRleHRdPVwidm0uY29udGV4dCgpXCI+PC9heHAtY29tcG9uZW50LXNsb3Q+XG4gICAgPC9heC1wcmVmaXg+XG4gICAgPGF4LXN1ZmZpeD5cbiAgICAgIDxheC1idXR0b25cbiAgICAgICAgaWQ9XCJheHAtYnRuLWNhbmNlbFwiXG4gICAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgIFtjb2xvcl09XCInZGVmYXVsdCdcIlxuICAgICAgICBbdGV4dF09XCInQGdlbmVyYWw6YWN0aW9ucy5jYW5jZWwudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVDbG9zZUNsaWNrKClcIlxuICAgICAgPlxuICAgICAgPC9heC1idXR0b24+XG4gICAgICBAaWYgKHZtLmNhbkNyZWF0ZU5ld09uZSgpKSB7XG4gICAgICAgIDxheC1kcm9wZG93bi1idXR0b25cbiAgICAgICAgICBpZD1cImF4cC1idG4tc2F2ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInZtLmlzSW5Qcm9ncmVzcygpXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIidAZ2VuZXJhbDphY3Rpb25zLnNhdmUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2F2ZUNsaWNrKGZvcm0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAodm0uaXNJblByb2dyZXNzKCkpIHtcbiAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgaWQ9XCJheHAtYnRuLXNhdmUtYW5kLW5ld1wiXG4gICAgICAgICAgICAgIFt0ZXh0XT1cIlxuICAgICAgICAgICAgICAgICgnQGdlbmVyYWw6YWN0aW9ucy5zYXZlLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSArXG4gICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICAoJ0BnZW5lcmFsOmFjdGlvbnMuY3JlYXRlLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVTYXZlQW5kTmV3Q2xpY2soZm9ybSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgIDwvYXgtZHJvcGRvd24tYnV0dG9uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBpZD1cImF4cC1idG4tc2F2ZVwiXG4gICAgICAgICAgbG9vaz1cInNvbGlkXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIidAZ2VuZXJhbDphY3Rpb25zLnNhdmUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNhdmVDbGljayhmb3JtKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKHZtLmlzSW5Qcm9ncmVzcygpKSB7XG4gICAgICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICAgICAgfVxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIH1cbiAgICAgIDxheHAtY29tcG9uZW50LXNsb3QgbmFtZT1cImVudGl0eS1jcmVhdGUtZm9vdGVyLXN1ZmZpeFwiIFtjb250ZXh0XT1cInZtLmNvbnRleHQoKVwiPjwvYXhwLWNvbXBvbmVudC1zbG90PlxuICAgIDwvYXgtc3VmZml4PlxuICA8L2F4LWZvb3Rlcj5cbn1cblxuPGF4cC1jb21wb25lbnQtc2xvdCBuYW1lPVwiZW50aXR5LWNyZWF0ZS1mb290ZXJcIiAjc2xvdD1cInNsb3RcIiBbY29udGV4dF09XCJ2bS5jb250ZXh0KClcIj48L2F4cC1jb21wb25lbnQtc2xvdD5cbiJdfQ=="],"names":["i8","i9"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-entity-master-list-view.component-ccqB5ShI.mjs","sources":["../tmp-esm2022/themes/default/lib/layouts/entity-layouts/entity-category/entity-category.component.js","../tmp-esm2022/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.js","../tmp-esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.js"],"sourcesContent":["import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, input, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTreeViewModule } from '@acorex/components/tree-view';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXPStateMessageComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutToolbarComponent, } from '@acorex/platform/layout/components';\nimport { AXPEntityResolver } from '@acorex/platform/layout/entity';\nimport { AXDropdownModule } from \"@acorex/components/dropdown\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/tree-view\";\nimport * as i3 from \"@acorex/components/skeleton\";\nimport * as i4 from \"@acorex/components/search-box\";\nimport * as i5 from \"@acorex/components/button\";\nimport * as i6 from \"@acorex/components/dropdown\";\nimport * as i7 from \"@angular/common\";\nimport * as i8 from \"@acorex/core/translation\";\nexport class AXPEntityCategoryComponent {\n constructor() {\n this.entityResolver = inject(AXPEntityResolver);\n this.translate = inject(AXTranslationService);\n this.workflow = inject(AXPWorkflowService);\n this.vm = input.required(...(ngDevMode ? [{ debugName: \"vm\" }] : []));\n this.tree = viewChild('tree', ...(ngDevMode ? [{ debugName: \"tree\" }] : []));\n this.searchValue = input('', ...(ngDevMode ? [{ debugName: \"searchValue\" }] : []));\n this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.basicQueryEvent = {\n skip: 0,\n take: 1000,\n };\n this.treeItems = signal([\n {\n expand: true,\n children: [],\n },\n ], ...(ngDevMode ? [{ debugName: \"treeItems\" }] : []));\n }\n ngOnInit() {\n this.getCategories();\n }\n async handleCategorySearchChange(e) {\n if (this.categoryEntityDef) {\n this.isLoading.set(true);\n const categoryInlineFilters = this.categoryEntityDef.properties.filter((p) => p.options?.filter?.inline?.enabled);\n const event = {\n ...this.basicQueryEvent,\n filter: {\n filters: [\n {\n filters: categoryInlineFilters.map((cif) => ({\n field: cif.name,\n operator: {\n type: 'contains',\n },\n value: e.value,\n })),\n logic: 'or',\n },\n {\n value: true,\n field: this.categoryEntityDef.parentKey,\n operator: {\n type: 'isEmpty',\n },\n },\n ],\n logic: 'and',\n },\n };\n const res = await this.categoryEntityQueryFunc(event);\n this.treeItems.update((prev) => prev.map((item) => ({ ...item, children: res.items })));\n this.isLoading.set(false);\n }\n }\n async getCategories() {\n this.isLoading.set(true);\n this.categoryEntityDef = await this.getCategoryEntityDef();\n this.categoryEntityQueryFunc = this.categoryEntityDef?.queries.list?.execute;\n const res = await this.categoryEntityQueryFunc(this.basicQueryEvent);\n const textField = this.vm().entityDef.category?.textField || 'title';\n const valueField = this.vm().entityDef.category?.valueField || 'id';\n const updatedItems = {\n expand: true,\n [textField]: await this.translate.translateAsync('@general:terms.interface.selection.all-items'),\n [valueField]: 'all',\n children: res.items,\n };\n this.treeItems.update((prev) => prev.map((_) => updatedItems));\n this.isLoading.set(false);\n }\n async handleCollapseChanged(e) {\n await this.loadChildrenAtNode(e.data.id);\n }\n async getCategoryEntityDef() {\n const [module, entity] = this.vm().entityDef.category?.entity?.split('.') || [];\n return await this.entityResolver.get(module, entity);\n }\n handleNodeClick(event) {\n const filters = this.vm()\n .entityDef.category?.applyConditions?.map((f) => {\n return event.data[f.value] !== 'all'\n ? {\n field: f.name,\n value: event.data[f.value],\n operator: f.operator,\n }\n : null;\n })\n .filter((item) => item != null);\n const viewFilters = this.vm()\n .view()\n .conditions.map((i) => ({ ...i, field: i.name }));\n const newFilters = [...viewFilters, ...filters];\n // this.vm().filterQueries.update((prev) => [...prev, ...filters!]);\n this.vm().dataSource.filter({\n filters: newFilters,\n logic: 'and',\n });\n this.vm().dataSource.refresh();\n }\n //#region ---- Utility Methods ----\n /** Loads children for a given node id and updates the tree in place. */\n async loadChildrenAtNode(targetId) {\n this.tree()?.setNodeLoading(targetId, true);\n const event = {\n ...this.basicQueryEvent,\n filter: {\n field: this.categoryEntityDef?.parentKey,\n value: targetId,\n operator: { type: 'equal' },\n },\n };\n const children = await this.categoryEntityQueryFunc(event);\n const updateChildrenAtPath = (items, id) => {\n return items.map((item) => {\n if (item.id === id) {\n return { ...item, children: children.items };\n }\n if (item.children?.length) {\n return { ...item, children: updateChildrenAtPath(item.children, id) };\n }\n return item;\n });\n };\n this.treeItems.update((prev) => prev.map((i) => ({ ...i, children: updateChildrenAtPath(prev[0].children, targetId) })));\n this.tree()?.setNodeLoading(targetId, false);\n }\n /** Returns the module.entity key for the configured category entity. */\n getCategoryEntityKey() {\n return this.vm().entityDef.category?.entity;\n }\n /** Refresh tree after CRUD operations. */\n async refreshAfterChange(parentId) {\n if (parentId) {\n await this.loadChildrenAtNode(parentId);\n }\n else {\n await this.getCategories();\n }\n }\n //#endregion\n //#region ---- UI Handlers ----\n /** Create a new root category node. */\n async handleCreateRootClick(e) {\n e.nativeEvent.preventDefault();\n e.nativeEvent.stopPropagation();\n await this.workflow.execute('create-entity', {\n entity: this.getCategoryEntityKey(),\n options: { process: { redirect: false } },\n });\n await this.refreshAfterChange();\n }\n /** Create a new child under the given node. */\n async handleCreateChildClick(node, e) {\n e.nativeEvent.preventDefault();\n e.nativeEvent.stopPropagation();\n const parentKey = this.categoryEntityDef?.parentKey;\n const data = {};\n if (parentKey) {\n data[parentKey] = node.id;\n }\n await this.workflow.execute('create-entity', {\n entity: this.getCategoryEntityKey(),\n data,\n options: { process: { redirect: false, canCreateNewOne: true } },\n });\n await this.refreshAfterChange(node.id);\n }\n /** Update the given node. */\n async handleEditNodeClick(node, e) {\n e.nativeEvent.preventDefault();\n e.nativeEvent.stopPropagation();\n await this.workflow.execute('quick-modify-entity', {\n entity: this.getCategoryEntityKey(),\n data: node,\n options: { layout: { size: 'md' } },\n });\n await this.refreshAfterChange(node[this.categoryEntityDef?.parentKey]);\n }\n /** Delete the given node. */\n async handleDeleteNodeClick(node, e) {\n e.nativeEvent.preventDefault();\n e.nativeEvent.stopPropagation();\n await this.workflow.execute('delete-entity', {\n entity: this.getCategoryEntityKey(),\n data: node,\n options: { process: { showResult: true } },\n });\n await this.refreshAfterChange(node[this.categoryEntityDef?.parentKey]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXPEntityCategoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n 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: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTreeViewModule }, { kind: \"component\", type: i2.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: i4.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: i5.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: i5.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i5.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i6.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: i7.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXPEntityCategoryComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-entity-category', standalone: true, encapsulation: ViewEncapsulation.None, imports: [\n CommonModule,\n AXDecoratorModule,\n AXTreeViewModule,\n AXSkeletonModule,\n AXPThemeLayoutBlockComponent,\n AXSearchBoxModule,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutToolbarComponent,\n AXTranslationModule,\n AXButtonModule,\n AXDropdownModule,\n AXPStateMessageComponent\n ], 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\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNhdGVnb3J5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdGhlbWVzL2RlZmF1bHQvc3JjL2xpYi9sYXlvdXRzL2VudGl0eS1sYXlvdXRzL2VudGl0eS1jYXRlZ29yeS9lbnRpdHktY2F0ZWdvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LWNhdGVnb3J5L2VudGl0eS1jYXRlZ29yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBaUQsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsOEJBQThC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Y0FDbkIsSUFBSSxpQkFDRCxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsNEJBQTRCO3dCQUM1QixpQkFBaUI7d0JBQ2pCLDZCQUE2Qjt3QkFDN0IsOEJBQThCO3dCQUM5QixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQix3QkFBd0I7cUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBzaWduYWwsIHZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhDbGlja0V2ZW50LCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2tlbGV0b24nO1xuaW1wb3J0IHsgQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50LCBBWFRyZWVWaWV3Q29tcG9uZW50LCBBWFRyZWVWaWV3TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RyZWUtdmlldyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlLCBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7XG4gIEFYUFN0YXRlTWVzc2FnZUNvbXBvbmVudCxcbiAgQVhQVGhlbWVMYXlvdXRCbG9ja0NvbXBvbmVudCxcbiAgQVhQVGhlbWVMYXlvdXRIZWFkZXJDb21wb25lbnQsXG4gIEFYUFRoZW1lTGF5b3V0VG9vbGJhckNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsLCBBWFBFbnRpdHlSZXNvbHZlciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSBcIkBhY29yZXgvY29tcG9uZW50cy9kcm9wZG93blwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZW50aXR5LWNhdGVnb3J5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFRyZWVWaWV3TW9kdWxlLFxuICAgIEFYU2tlbGV0b25Nb2R1bGUsXG4gICAgQVhQVGhlbWVMYXlvdXRCbG9ja0NvbXBvbmVudCxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWFBUaGVtZUxheW91dEhlYWRlckNvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dFRvb2xiYXJDb21wb25lbnQsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgIEFYUFN0YXRlTWVzc2FnZUNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWNhdGVnb3J5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VudGl0eS1jYXRlZ29yeS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNhdGVnb3J5Q29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudGl0eVJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuXG4gIHZtID0gaW5wdXQucmVxdWlyZWQ8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbD4oKTtcbiAgdHJlZSA9IHZpZXdDaGlsZDxBWFRyZWVWaWV3Q29tcG9uZW50PigndHJlZScpO1xuICBzZWFyY2hWYWx1ZSA9IGlucHV0KCcnKTtcblxuICBpc0xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJvdGVjdGVkIGNhdGVnb3J5RW50aXR5RGVmITogQVhQRW50aXR5IHwgbnVsbDtcbiAgcHJvdGVjdGVkIGNhdGVnb3J5RW50aXR5UXVlcnlGdW5jITogRnVuY3Rpb247XG4gIHByb3RlY3RlZCBiYXNpY1F1ZXJ5RXZlbnQgPSB7XG4gICAgc2tpcDogMCxcbiAgICB0YWtlOiAxMDAwLFxuICB9O1xuXG4gIHByb3RlY3RlZCB0cmVlSXRlbXMgPSBzaWduYWw8YW55W10+KFtcbiAgICB7XG4gICAgICBleHBhbmQ6IHRydWUsXG4gICAgICBjaGlsZHJlbjogW10sXG4gICAgfSxcbiAgXSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRDYXRlZ29yaWVzKCk7XG4gIH1cblxuICBhc3luYyBoYW5kbGVDYXRlZ29yeVNlYXJjaENoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuY2F0ZWdvcnlFbnRpdHlEZWYpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcblxuICAgICAgY29uc3QgY2F0ZWdvcnlJbmxpbmVGaWx0ZXJzID0gdGhpcy5jYXRlZ29yeUVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gcC5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCk7XG4gICAgICBjb25zdCBldmVudCA9IHtcbiAgICAgICAgLi4udGhpcy5iYXNpY1F1ZXJ5RXZlbnQsXG4gICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZmlsdGVyczogY2F0ZWdvcnlJbmxpbmVGaWx0ZXJzLm1hcCgoY2lmKSA9PiAoe1xuICAgICAgICAgICAgICAgIGZpZWxkOiBjaWYubmFtZSxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlLnZhbHVlLFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgIGxvZ2ljOiAnb3InLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgICAgICAgIGZpZWxkOiB0aGlzLmNhdGVnb3J5RW50aXR5RGVmLnBhcmVudEtleSxcbiAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaXNFbXB0eScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlFbnRpdHlRdWVyeUZ1bmMoZXZlbnQpO1xuXG4gICAgICB0aGlzLnRyZWVJdGVtcy51cGRhdGUoKHByZXYpID0+IHByZXYubWFwKChpdGVtOiBhbnkpID0+ICh7IC4uLml0ZW0sIGNoaWxkcmVuOiByZXMuaXRlbXMgfSkpKTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldENhdGVnb3JpZXMoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuY2F0ZWdvcnlFbnRpdHlEZWYgPSBhd2FpdCB0aGlzLmdldENhdGVnb3J5RW50aXR5RGVmKCk7XG4gICAgdGhpcy5jYXRlZ29yeUVudGl0eVF1ZXJ5RnVuYyA9IHRoaXMuY2F0ZWdvcnlFbnRpdHlEZWY/LnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNhdGVnb3J5RW50aXR5UXVlcnlGdW5jKHRoaXMuYmFzaWNRdWVyeUV2ZW50KTtcbiAgICBjb25zdCB0ZXh0RmllbGQgPSB0aGlzLnZtKCkuZW50aXR5RGVmLmNhdGVnb3J5Py50ZXh0RmllbGQgfHwgJ3RpdGxlJztcbiAgICBjb25zdCB2YWx1ZUZpZWxkID0gdGhpcy52bSgpLmVudGl0eURlZi5jYXRlZ29yeT8udmFsdWVGaWVsZCB8fCAnaWQnO1xuICAgIGNvbnN0IHVwZGF0ZWRJdGVtcyA9IHtcbiAgICAgIGV4cGFuZDogdHJ1ZSxcbiAgICAgIFt0ZXh0RmllbGRdOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6dGVybXMuaW50ZXJmYWNlLnNlbGVjdGlvbi5hbGwtaXRlbXMnKSxcbiAgICAgIFt2YWx1ZUZpZWxkXTogJ2FsbCcsXG4gICAgICBjaGlsZHJlbjogcmVzLml0ZW1zLFxuICAgIH07XG4gICAgdGhpcy50cmVlSXRlbXMudXBkYXRlKChwcmV2KSA9PiBwcmV2Lm1hcCgoXykgPT4gdXBkYXRlZEl0ZW1zKSk7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVDb2xsYXBzZUNoYW5nZWQoZTogQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50KSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkQ2hpbGRyZW5BdE5vZGUoZS5kYXRhLmlkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZXRDYXRlZ29yeUVudGl0eURlZigpIHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gdGhpcy52bSgpLmVudGl0eURlZi5jYXRlZ29yeT8uZW50aXR5Py5zcGxpdCgnLicpIHx8IFtdO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGUsIGVudGl0eSk7XG4gIH1cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVDbGljayhldmVudDogQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50KSB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMudm0oKVxuICAgICAgLmVudGl0eURlZi5jYXRlZ29yeT8uYXBwbHlDb25kaXRpb25zPy5tYXAoKGYpID0+IHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmRhdGFbZi52YWx1ZV0gIT09ICdhbGwnXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICBmaWVsZDogZi5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IGV2ZW50LmRhdGFbZi52YWx1ZV0sXG4gICAgICAgICAgICBvcGVyYXRvcjogZi5vcGVyYXRvcixcbiAgICAgICAgICB9XG4gICAgICAgICAgOiBudWxsO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT0gbnVsbCk7XG4gICAgY29uc3Qgdmlld0ZpbHRlcnMgPSB0aGlzLnZtKClcbiAgICAgIC52aWV3KClcbiAgICAgIC5jb25kaXRpb25zLm1hcCgoaSkgPT4gKHsgLi4uaSwgZmllbGQ6IGkubmFtZSB9KSk7XG4gICAgY29uc3QgbmV3RmlsdGVycyA9IFsuLi52aWV3RmlsdGVycywgLi4uZmlsdGVycyFdO1xuICAgIC8vIHRoaXMudm0oKS5maWx0ZXJRdWVyaWVzLnVwZGF0ZSgocHJldikgPT4gWy4uLnByZXYsIC4uLmZpbHRlcnMhXSk7XG4gICAgdGhpcy52bSgpLmRhdGFTb3VyY2UuZmlsdGVyKHtcbiAgICAgIGZpbHRlcnM6IG5ld0ZpbHRlcnMsXG4gICAgICBsb2dpYzogJ2FuZCcsXG4gICAgfSk7XG4gICAgdGhpcy52bSgpLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgLy8jcmVnaW9uIC0tLS0gICBVdGlsaXR5IE1ldGhvZHMgICAtLS0tXG5cbiAgLyoqIExvYWRzIGNoaWxkcmVuIGZvciBhIGdpdmVuIG5vZGUgaWQgYW5kIHVwZGF0ZXMgdGhlIHRyZWUgaW4gcGxhY2UuICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZENoaWxkcmVuQXROb2RlKHRhcmdldElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRyZWUoKT8uc2V0Tm9kZUxvYWRpbmcodGFyZ2V0SWQsIHRydWUpO1xuICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgLi4udGhpcy5iYXNpY1F1ZXJ5RXZlbnQsXG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgZmllbGQ6IHRoaXMuY2F0ZWdvcnlFbnRpdHlEZWY/LnBhcmVudEtleSxcbiAgICAgICAgdmFsdWU6IHRhcmdldElkLFxuICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmNhdGVnb3J5RW50aXR5UXVlcnlGdW5jKGV2ZW50KTtcblxuICAgIGNvbnN0IHVwZGF0ZUNoaWxkcmVuQXRQYXRoID0gKGl0ZW1zOiBhbnlbXSwgaWQ6IHN0cmluZyk6IGFueVtdID0+IHtcbiAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uaWQgPT09IGlkKSB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgY2hpbGRyZW46IGNoaWxkcmVuLml0ZW1zIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoaWxkcmVuOiB1cGRhdGVDaGlsZHJlbkF0UGF0aChpdGVtLmNoaWxkcmVuLCBpZCkgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0aGlzLnRyZWVJdGVtcy51cGRhdGUoKHByZXYpID0+XG4gICAgICBwcmV2Lm1hcCgoaSkgPT4gKHsgLi4uaSwgY2hpbGRyZW46IHVwZGF0ZUNoaWxkcmVuQXRQYXRoKHByZXZbMF0uY2hpbGRyZW4sIHRhcmdldElkKSB9KSksXG4gICAgKTtcbiAgICB0aGlzLnRyZWUoKT8uc2V0Tm9kZUxvYWRpbmcodGFyZ2V0SWQsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBtb2R1bGUuZW50aXR5IGtleSBmb3IgdGhlIGNvbmZpZ3VyZWQgY2F0ZWdvcnkgZW50aXR5LiAqL1xuICBwcml2YXRlIGdldENhdGVnb3J5RW50aXR5S2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudm0oKS5lbnRpdHlEZWYuY2F0ZWdvcnk/LmVudGl0eSBhcyBzdHJpbmc7XG4gIH1cblxuICAvKiogUmVmcmVzaCB0cmVlIGFmdGVyIENSVUQgb3BlcmF0aW9ucy4gKi9cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoQWZ0ZXJDaGFuZ2UocGFyZW50SWQ/OiBzdHJpbmcpIHtcbiAgICBpZiAocGFyZW50SWQpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZENoaWxkcmVuQXROb2RlKHBhcmVudElkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5nZXRDYXRlZ29yaWVzKCk7XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBVSSBIYW5kbGVycyAgIC0tLS1cblxuICAvKiogQ3JlYXRlIGEgbmV3IHJvb3QgY2F0ZWdvcnkgbm9kZS4gKi9cbiAgYXN5bmMgaGFuZGxlQ3JlYXRlUm9vdENsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgIGUubmF0aXZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBlLm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsIHtcbiAgICAgIGVudGl0eTogdGhpcy5nZXRDYXRlZ29yeUVudGl0eUtleSgpLFxuICAgICAgb3B0aW9uczogeyBwcm9jZXNzOiB7IHJlZGlyZWN0OiBmYWxzZSB9IH0sXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoQWZ0ZXJDaGFuZ2UoKTtcbiAgfVxuXG4gIC8qKiBDcmVhdGUgYSBuZXcgY2hpbGQgdW5kZXIgdGhlIGdpdmVuIG5vZGUuICovXG4gIGFzeW5jIGhhbmRsZUNyZWF0ZUNoaWxkQ2xpY2sobm9kZTogYW55LCBlOiBBWENsaWNrRXZlbnQpIHtcbiAgICBlLm5hdGl2ZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5uYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBwYXJlbnRLZXkgPSB0aGlzLmNhdGVnb3J5RW50aXR5RGVmPy5wYXJlbnRLZXkgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGRhdGE6IGFueSA9IHt9O1xuICAgIGlmIChwYXJlbnRLZXkpIHtcbiAgICAgIGRhdGFbcGFyZW50S2V5XSA9IG5vZGUuaWQ7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsIHtcbiAgICAgIGVudGl0eTogdGhpcy5nZXRDYXRlZ29yeUVudGl0eUtleSgpLFxuICAgICAgZGF0YSxcbiAgICAgIG9wdGlvbnM6IHsgcHJvY2VzczogeyByZWRpcmVjdDogZmFsc2UsIGNhbkNyZWF0ZU5ld09uZTogdHJ1ZSB9IH0sXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoQWZ0ZXJDaGFuZ2Uobm9kZS5pZCk7XG4gIH1cblxuICAvKiogVXBkYXRlIHRoZSBnaXZlbiBub2RlLiAqL1xuICBhc3luYyBoYW5kbGVFZGl0Tm9kZUNsaWNrKG5vZGU6IGFueSwgZTogQVhDbGlja0V2ZW50KSB7XG4gICAgZS5uYXRpdmVFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUubmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdxdWljay1tb2RpZnktZW50aXR5Jywge1xuICAgICAgZW50aXR5OiB0aGlzLmdldENhdGVnb3J5RW50aXR5S2V5KCksXG4gICAgICBkYXRhOiBub2RlLFxuICAgICAgb3B0aW9uczogeyBsYXlvdXQ6IHsgc2l6ZTogJ21kJyB9IH0sXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoQWZ0ZXJDaGFuZ2Uobm9kZVt0aGlzLmNhdGVnb3J5RW50aXR5RGVmPy5wYXJlbnRLZXkgYXMgc3RyaW5nXSk7XG4gIH1cblxuICAvKiogRGVsZXRlIHRoZSBnaXZlbiBub2RlLiAqL1xuICBhc3luYyBoYW5kbGVEZWxldGVOb2RlQ2xpY2sobm9kZTogYW55LCBlOiBBWENsaWNrRXZlbnQpIHtcbiAgICBlLm5hdGl2ZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5uYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2RlbGV0ZS1lbnRpdHknLCB7XG4gICAgICBlbnRpdHk6IHRoaXMuZ2V0Q2F0ZWdvcnlFbnRpdHlLZXkoKSxcbiAgICAgIGRhdGE6IG5vZGUsXG4gICAgICBvcHRpb25zOiB7IHByb2Nlc3M6IHsgc2hvd1Jlc3VsdDogdHJ1ZSB9IH0sXG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoQWZ0ZXJDaGFuZ2Uobm9kZVt0aGlzLmNhdGVnb3J5RW50aXR5RGVmPy5wYXJlbnRLZXkgYXMgc3RyaW5nXSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsIjxheHAtbGF5b3V0LWhlYWRlcj5cbiAgPGF4cC1sYXlvdXQtdGl0bGU+e3tcbiAgICB2bSgpLmVudGl0eURlZi5jYXRlZ29yeT8udGl0bGUgfHwgJ0BnZW5lcmFsOnRlcm1zLmNsYXNzaWZpY2F0aW9uLmNhdGVnb3J5JyB8IHRyYW5zbGF0ZSB8IGFzeW5jXG4gIH19PC9heHAtbGF5b3V0LXRpdGxlPlxuICA8YXhwLWxheW91dC10b29sYmFyPlxuICAgIDxheC1zZWFyY2gtYm94XG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlQ2F0ZWdvcnlTZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbZGVsYXlUaW1lXT1cIjMwMFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiJ0BnZW5lcmFsOnRlcm1zLmludGVyZmFjZS5jYXRlZ29yeS5zZWFyY2gucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgID5cbiAgICA8L2F4LXNlYXJjaC1ib3g+XG4gIDwvYXhwLWxheW91dC10b29sYmFyPlxuPC9heHAtbGF5b3V0LWhlYWRlcj5cbjxheHAtbGF5b3V0LWNvbnRlbnQ+XG4gIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTNcIj5cbiAgICAgIDxheC1za2VsZXRvbiBjbGFzcz1cImF4LXctZnVsbCBheC1oLTYgYXgtcm91bmRlZC1tZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LWZ1bGwgYXgtaC02IGF4LXJvdW5kZWQtbWRcIj48L2F4LXNrZWxldG9uPlxuICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy1mdWxsIGF4LWgtNiBheC1yb3VuZGVkLW1kXCI+PC9heC1za2VsZXRvbj5cbiAgICAgIDxheC1za2VsZXRvbiBjbGFzcz1cImF4LXctZnVsbCBheC1oLTYgYXgtcm91bmRlZC1tZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LWZ1bGwgYXgtaC02IGF4LXJvdW5kZWQtbWRcIj48L2F4LXNrZWxldG9uPlxuICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy1mdWxsIGF4LWgtNiBheC1yb3VuZGVkLW1kXCI+PC9heC1za2VsZXRvbj5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSBpZiAodHJlZUl0ZW1zKClbMF0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LXB4LTQgYXgtbWF4LWgtW2NhbGMoMTAwdmgtMjUwcHgpXSBheC1vdmVyZmxvdy1hdXRvXCI+XG4gICAgICA8YXgtdHJlZS12aWV3XG4gICAgICAgIChvbk5vZGVDbGljayk9XCJoYW5kbGVOb2RlQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChvbkNvbGxhcHNlZENoYW5nZWQpPVwiaGFuZGxlQ29sbGFwc2VDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbc2hvd0NoZWNrYm94XT1cImZhbHNlXCJcbiAgICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxuICAgICAgICAjdHJlZVJlZlxuICAgICAgICBbdGV4dEZpZWxkXT1cInZtKCkuZW50aXR5RGVmLmNhdGVnb3J5Py50ZXh0RmllbGQgfHwgJ3RpdGxlJ1wiXG4gICAgICAgIFt2YWx1ZUZpZWxkXT1cInZtKCkuZW50aXR5RGVmLmNhdGVnb3J5Py52YWx1ZUZpZWxkIHx8ICdpZCdcIlxuICAgICAgICBbZXhwYW5kZWRGaWVsZF09XCInZXhwYW5kJ1wiXG4gICAgICAgIFtpdGVtc109XCJ0cmVlSXRlbXMoKVwiXG4gICAgICAgICN0cmVlXG4gICAgICA+XG4gICAgICA8L2F4LXRyZWUtdmlldz5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGF4cC1zdGF0ZS1tZXNzYWdlXG4gICAgICBpY29uPVwiZmEtbGlnaHQgZmEtZm9sZGVyLW9wZW5cIlxuICAgICAgW3RpdGxlXT1cIidAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UuY2F0ZWdvcnkuc2VhcmNoLm5vLXJlY29yZHMudGl0bGUnXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCInQGdlbmVyYWw6dGVybXMuaW50ZXJmYWNlLmNhdGVnb3J5LnNlYXJjaC5uby1yZWNvcmRzLmRlc2NyaXB0aW9uJ1wiXG4gICAgPlxuICAgIDwvYXhwLXN0YXRlLW1lc3NhZ2U+XG4gIH1cblxuICA8bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LXctZnVsbCBheC1nYXAtMiBheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMiBheC1taW4tdy0wXCI+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmFzIGF4LXRleHQtd2FybmluZyBmYS1mb2xkZXJcIj48L2F4LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdHJ1bmNhdGVcIj57eyBpdGVtLnRpdGxlIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKGl0ZW0uaWQgJiYgaXRlbS5pZCAhPT0gJ2FsbCcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0xXCI+XG4gICAgICAgICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXhzXCIgY29sb3I9XCJkZWZhdWx0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiJGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBmYS1lbGxpcHNpcy12XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNyZWF0ZUNoaWxkQ2xpY2soaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBsb29rPVwiYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgIHRleHQ9XCJBZGQgTmV3IENoaWxkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBmYS1wbHVzXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIChvbkNsaWNrKT1cImhhbmRsZUVkaXROb2RlQ2xpY2soaXRlbSwgJGV2ZW50KVwiIGxvb2s9XCJibGFua1wiIHRleHQ9XCJFZGl0XCI+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBmYS1wZW5cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZURlbGV0ZU5vZGVDbGljayhpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICAgICAgICAgICAgICB0ZXh0PVwiRGVsZXRlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBmYS10cmFzaFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2UgaWYgKGl0ZW0uaWQgPT09ICdhbGwnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMVwiPlxuICAgICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC14c1wiIChvbkNsaWNrKT1cImhhbmRsZUNyZWF0ZVJvb3RDbGljaygkZXZlbnQpXCIgbG9vaz1cImJsYW5rXCIgY29sb3I9XCJkZWZhdWx0XCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBmYS1wbHVzXCI+PC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvYXhwLWxheW91dC1jb250ZW50PlxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPQueryColumnsComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryViewsComponent, } from '@acorex/platform/layout/components';\nimport { AXPEntityListViewColumnViewModel, AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, Input, signal, ViewEncapsulation, } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AXPEntityMasterListViewComponent } from '../entity-master-list-view/entity-master-list-view.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/popover\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"@acorex/core/translation\";\nexport class AXPEntityMasterToolbarViewComponent {\n constructor() {\n this.layoutService = inject(AXPLayoutThemeService);\n this.parent = inject(AXPEntityMasterListViewComponent);\n this.router = inject(Router);\n this.activeRoute = inject(ActivatedRoute);\n this.isInitializing = false;\n this.pendingInitialFilters = true;\n this.pendingInitialSorts = true;\n this.initialFilters = signal([], ...(ngDevMode ? [{ debugName: \"initialFilters\" }] : []));\n this.filtersDefinitions = signal([], ...(ngDevMode ? [{ debugName: \"filtersDefinitions\" }] : []));\n this.viewQueries = computed(() => this.vm.views().map((v) => ({\n name: v.name,\n fixed: false,\n title: v.title,\n columns: v.columns,\n conditions: v.conditions.map((c) => ({\n field: c.name,\n operator: c.operator,\n value: c.value,\n })),\n sorts: v.sorts,\n })), ...(ngDevMode ? [{ debugName: \"viewQueries\" }] : []));\n this.selectedViewQuery = computed(() => ({\n name: this.vm.view().name,\n fixed: false,\n title: this.vm.view().title,\n columns: this.vm.view().columns,\n conditions: this.vm.view().conditions.map((c) => ({\n field: c.name,\n operator: c.operator,\n value: c.value,\n })),\n sorts: this.vm.view().sorts,\n }), ...(ngDevMode ? [{ debugName: \"selectedViewQuery\" }] : []));\n // Debounced apply to coalesce multiple UI changes (filters/sorts/columns)\n this.applyTimer = null;\n this.#effect = effect(() => {\n // Keep definitions up to date; initial filters are set explicitly from settings or view\n this.filtersDefinitions.set(this.vm.filtersDef);\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n this.sortQueries = computed(() => this.vm\n .sortedFields()\n .filter((s) => !!s.dir)\n .map((s) => ({ name: s.name, dir: s.dir })), ...(ngDevMode ? [{ debugName: \"sortQueries\" }] : []));\n this.sortDefinitions = computed(() => this.vm.sortableFields().map((s) => ({\n name: s.name,\n title: s.title,\n dir: s.dir,\n })), ...(ngDevMode ? [{ debugName: \"sortDefinitions\" }] : []));\n }\n async ngOnInit() {\n // Prefer saved settings (view/columns/sorts/filters) if available, then apply\n await this.vm.setView();\n this.filtersDefinitions.set(this.vm.filtersDef);\n this.isInitializing = true;\n // this.pendingInitialFilters = true;\n // this.pendingInitialSorts = true;\n this.setInitialFiltersFromSettingsOrView();\n // Ensure initial load even when filters/sorts are absent\n setTimeout(() => {\n this.isInitializing = false;\n this.scheduleApply();\n }, 0);\n }\n scheduleApply() {\n clearTimeout(this.applyTimer);\n this.applyTimer = setTimeout(() => {\n this.vm.applyFilterAndSort();\n }, 50);\n }\n async onViewChanged(view) {\n await this.vm.setView(view.name);\n // Sync query param immediately on tab change\n this.router.navigate([], {\n relativeTo: this.activeRoute,\n queryParams: { view: view.name },\n queryParamsHandling: 'merge',\n replaceUrl: true,\n });\n this.isInitializing = true;\n this.pendingInitialFilters = true;\n this.pendingInitialSorts = true;\n this.setInitialFiltersFromSettingsOrView();\n // Ensure initial load after view change\n setTimeout(() => {\n this.isInitializing = false;\n this.scheduleApply();\n }, 0);\n }\n #effect;\n setInitialFiltersFromSettingsOrView() {\n const saved = this.vm.filterQueries();\n const viewConditions = this.vm.view().conditions.map((c) => c.name);\n if (saved && saved.length) {\n this.initialFilters.set(saved.map((s) => ({ ...s, hidden: viewConditions.includes(s.field) })));\n return;\n }\n this.initialFilters.set(this.vm.view().conditions.map((c) => ({\n field: c.name,\n operator: c.operator,\n value: c.value,\n hidden: true,\n })));\n }\n onFiltersChanged(filters) {\n if (this.isInitializing || this.pendingInitialFilters) {\n this.pendingInitialFilters = false;\n return;\n }\n this.vm.filterQueries.set(filters);\n // Persist filters per module/entity/view\n this.vm.saveSettings('filters', filters);\n this.scheduleApply();\n }\n onSortQueriesChange(e) {\n if (this.isInitializing || this.pendingInitialSorts) {\n this.pendingInitialSorts = false;\n return;\n }\n this.vm.sortedFields.set(e.map((s) => ({\n name: s.name,\n title: s.name,\n dir: s.dir,\n })));\n // Persist sorts per module/entity/view\n this.vm.saveSettings('sorts', e);\n this.scheduleApply();\n }\n onColumnsChange(columns) {\n const keyOf = (c) => c.column?.options?.dataPath ?? c.name;\n this.vm.columns.update((prev) => {\n const byKey = new Map(prev.map((c) => [keyOf(c), c]));\n return columns.map((newColumn) => {\n const existing = byKey.get(keyOf(newColumn));\n return new AXPEntityListViewColumnViewModel(existing.property, {\n ...existing.column,\n options: {\n ...existing.column.options,\n visible: newColumn.visible,\n },\n });\n });\n });\n // Persist column order/visibility\n this.vm.onColumnsChanged(this.vm.columns());\n // Use debounced apply to avoid triple refresh when combined with sorts/filters\n // this.scheduleApply();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXPEntityMasterToolbarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n 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 id=\\\"axp-toolbar-view-selector\\\"\\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 id=\\\"axp-toolbar-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 id=\\\"axp-toolbar-btn-columns\\\" [iconOnly]=\\\"true\\\" #columnButton [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-table-columns\\\"></i>\\n </ax-button>\\n <ax-popover\\n id=\\\"axp-popover-columns\\\"\\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 id=\\\"axp-toolbar-btn-sort\\\" [iconOnly]=\\\"true\\\" [text]=\\\"'Sorts'\\\" #sortButton [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-sort-amount-up\\\"></i>\\n </ax-button>\\n <ax-popover\\n id=\\\"axp-popover-sort\\\"\\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\\n id=\\\"axp-toolbar-btn-category\\\"\\n (onClick)=\\\"parent.toggleCategoryDrawer()\\\"\\n [iconOnly]=\\\"true\\\"\\n [color]=\\\"'default'\\\"\\n >\\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: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.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.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: i4.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i5.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXPEntityMasterToolbarViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-entity-master-toolbar-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [\n CommonModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPQueryFiltersComponent,\n AXPopoverModule,\n AXPQuerySortsComponent,\n AXPQueryViewsComponent,\n AXPQueryColumnsComponent,\n ], host: {\n class: 'ax-w-full',\n }, template: \"<!-- <axp-entity-view-toolbar [viewModel]=\\\"vm\\\"></axp-entity-view-toolbar> -->\\n<axp-query-views\\n id=\\\"axp-toolbar-view-selector\\\"\\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 id=\\\"axp-toolbar-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 id=\\\"axp-toolbar-btn-columns\\\" [iconOnly]=\\\"true\\\" #columnButton [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-table-columns\\\"></i>\\n </ax-button>\\n <ax-popover\\n id=\\\"axp-popover-columns\\\"\\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 id=\\\"axp-toolbar-btn-sort\\\" [iconOnly]=\\\"true\\\" [text]=\\\"'Sorts'\\\" #sortButton [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-sort-amount-up\\\"></i>\\n </ax-button>\\n <ax-popover\\n id=\\\"axp-popover-sort\\\"\\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\\n id=\\\"axp-toolbar-btn-category\\\"\\n (onClick)=\\\"parent.toggleCategoryDrawer()\\\"\\n [iconOnly]=\\\"true\\\"\\n [color]=\\\"'default'\\\"\\n >\\n <i class=\\\"fa-light fa-bars\\\"></i>\\n </ax-button>\\n }\\n </div>\\n</div>\\n\" }]\n }], propDecorators: { vm: [{\n type: Input,\n args: ['viewModel']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcvZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcvZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVMvRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsc0JBQXNCLEdBQ3ZCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFB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RUFBRTtvQkFDN0QsR0FBRyxRQUFRLENBQUMsTUFBTTtvQkFDbEIsT0FBTyxFQUFFO3dCQUNQLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPO3dCQUMxQixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87cUJBQzNCO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDNUMsK0VBQStFO1FBQy9FLHdCQUF3QjtJQUMxQixDQUFDOzhHQS9LVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyxzS0N4RGhELDByR0ErRUEsMkNEckNJLFlBQVksOEJBQ1osY0FBYyw2WEFDZCxpQkFBaUIscVBBQ2pCLG1CQUFtQiwrQkFDbkIsd0JBQXdCLDhJQUN4QixlQUFlLHdWQUNmLHNCQUFzQix3S0FDdEIsc0JBQXNCLCtJQUN0Qix3QkFBd0I7OzJGQU1mLG1DQUFtQztrQkFyQi9DLFNBQVM7K0JBQ0UsZ0NBQWdDLGlCQUUzQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3FCQUN6QixRQUNLO3dCQUNKLEtBQUssRUFBRSxXQUFXO3FCQUNuQjs4QkEyQk0sRUFBRTtzQkFEUixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIEFYUENvbHVtblF1ZXJ5LFxuICBBWFBGaWx0ZXJEZWZpbml0aW9uLFxuICBBWFBGaWx0ZXJRdWVyeSxcbiAgQVhQU29ydERlZmluaXRpb24sXG4gIEFYUFNvcnRRdWVyeSxcbiAgQVhQVmlld1F1ZXJ5LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQUXVlcnlDb2x1bW5zQ29tcG9uZW50LFxuICBBWFBRdWVyeUZpbHRlcnNDb21wb25lbnQsXG4gIEFYUFF1ZXJ5U29ydHNDb21wb25lbnQsXG4gIEFYUFF1ZXJ5Vmlld3NDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwsIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2VudGl0eS1tYXN0ZXItbGlzdC12aWV3L2VudGl0eS1tYXN0ZXItbGlzdC12aWV3LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1lbnRpdHktbWFzdGVyLXRvb2xiYXItdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktbWFzdGVyLXRvb2xiYXItdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgQVhQUXVlcnlGaWx0ZXJzQ29tcG9uZW50LFxuICAgIEFYUG9wb3Zlck1vZHVsZSxcbiAgICBBWFBRdWVyeVNvcnRzQ29tcG9uZW50LFxuICAgIEFYUFF1ZXJ5Vmlld3NDb21wb25lbnQsXG4gICAgQVhQUXVlcnlDb2x1bW5zQ29tcG9uZW50LFxuICBdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdheC13LWZ1bGwnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJUb29sYmFyVmlld0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gIHByb3RlY3RlZCBwYXJlbnQgPSBpbmplY3QoQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdDb21wb25lbnQpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIGFjdGl2ZVJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemluZyA9IGZhbHNlO1xuICBwcml2YXRlIHBlbmRpbmdJbml0aWFsRmlsdGVycyA9IHRydWU7XG4gIHByaXZhdGUgcGVuZGluZ0luaXRpYWxTb3J0cyA9IHRydWU7XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gUHJlZmVyIHNhdmVkIHNldHRpbmdzICh2aWV3L2NvbHVtbnMvc29ydHMvZmlsdGVycykgaWYgYXZhaWxhYmxlLCB0aGVuIGFwcGx5XG4gICAgYXdhaXQgdGhpcy52bS5zZXRWaWV3KCk7XG4gICAgdGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMuc2V0KHRoaXMudm0uZmlsdGVyc0RlZik7XG4gICAgdGhpcy5pc0luaXRpYWxpemluZyA9IHRydWU7XG4gICAgLy8gdGhpcy5wZW5kaW5nSW5pdGlhbEZpbHRlcnMgPSB0cnVlO1xuICAgIC8vIHRoaXMucGVuZGluZ0luaXRpYWxTb3J0cyA9IHRydWU7XG4gICAgdGhpcy5zZXRJbml0aWFsRmlsdGVyc0Zyb21TZXR0aW5nc09yVmlldygpO1xuICAgIC8vIEVuc3VyZSBpbml0aWFsIGxvYWQgZXZlbiB3aGVuIGZpbHRlcnMvc29ydHMgYXJlIGFic2VudFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0luaXRpYWxpemluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5zY2hlZHVsZUFwcGx5KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBASW5wdXQoJ3ZpZXdNb2RlbCcpXG4gIHB1YmxpYyB2bSE6IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw7XG5cbiAgcHJvdGVjdGVkIGluaXRpYWxGaWx0ZXJzID0gc2lnbmFsPEFYUEZpbHRlclF1ZXJ5W10+KFtdKTtcbiAgcHJvdGVjdGVkIGZpbHRlcnNEZWZpbml0aW9ucyA9IHNpZ25hbDxBWFBGaWx0ZXJEZWZpbml0aW9uW10+KFtdKTtcblxuICBwcm90ZWN0ZWQgdmlld1F1ZXJpZXMgPSBjb21wdXRlZDxBWFBWaWV3UXVlcnlbXT4oKCkgPT5cbiAgICB0aGlzLnZtLnZpZXdzKCkubWFwKCh2KSA9PiAoe1xuICAgICAgbmFtZTogdi5uYW1lLFxuICAgICAgZml4ZWQ6IGZhbHNlLFxuICAgICAgdGl0bGU6IHYudGl0bGUsXG4gICAgICBjb2x1bW5zOiB2LmNvbHVtbnMsXG4gICAgICBjb25kaXRpb25zOiB2LmNvbmRpdGlvbnMubWFwKChjKSA9PiAoe1xuICAgICAgICBmaWVsZDogYy5uYW1lLFxuICAgICAgICBvcGVyYXRvcjogYy5vcGVyYXRvcixcbiAgICAgICAgdmFsdWU6IGMudmFsdWUsXG4gICAgICB9KSksXG4gICAgICBzb3J0czogdi5zb3J0cyxcbiAgICB9KSksXG4gICk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFZpZXdRdWVyeSA9IGNvbXB1dGVkPEFYUFZpZXdRdWVyeT4oKCkgPT4gKHtcbiAgICBuYW1lOiB0aGlzLnZtLnZpZXcoKS5uYW1lLFxuICAgIGZpeGVkOiBmYWxzZSxcbiAgICB0aXRsZTogdGhpcy52bS52aWV3KCkudGl0bGUsXG4gICAgY29sdW1uczogdGhpcy52bS52aWV3KCkuY29sdW1ucyxcbiAgICBjb25kaXRpb25zOiB0aGlzLnZtLnZpZXcoKS5jb25kaXRpb25zLm1hcCgoYykgPT4gKHtcbiAgICAgIGZpZWxkOiBjLm5hbWUsXG4gICAgICBvcGVyYXRvcjogYy5vcGVyYXRvcixcbiAgICAgIHZhbHVlOiBjLnZhbHVlLFxuICAgIH0pKSxcbiAgICBzb3J0czogdGhpcy52bS52aWV3KCkuc29ydHMsXG4gIH0pKTtcblxuICAvLyBEZWJvdW5jZWQgYXBwbHkgdG8gY29hbGVzY2UgbXVsdGlwbGUgVUkgY2hhbmdlcyAoZmlsdGVycy9zb3J0cy9jb2x1bW5zKVxuICBwcml2YXRlIGFwcGx5VGltZXI6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgc2NoZWR1bGVBcHBseSgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5hcHBseVRpbWVyKTtcbiAgICB0aGlzLmFwcGx5VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudm0uYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgYXN5bmMgb25WaWV3Q2hhbmdlZCh2aWV3OiBBWFBWaWV3UXVlcnkpIHtcbiAgICBhd2FpdCB0aGlzLnZtLnNldFZpZXcodmlldy5uYW1lKTtcbiAgICAvLyBTeW5jIHF1ZXJ5IHBhcmFtIGltbWVkaWF0ZWx5IG9uIHRhYiBjaGFuZ2VcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmVSb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHZpZXc6IHZpZXcubmFtZSB9LFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgIHJlcGxhY2VVcmw6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5pc0luaXRpYWxpemluZyA9IHRydWU7XG4gICAgdGhpcy5wZW5kaW5nSW5pdGlhbEZpbHRlcnMgPSB0cnVlO1xuICAgIHRoaXMucGVuZGluZ0luaXRpYWxTb3J0cyA9IHRydWU7XG4gICAgdGhpcy5zZXRJbml0aWFsRmlsdGVyc0Zyb21TZXR0aW5nc09yVmlldygpO1xuICAgIC8vIEVuc3VyZSBpbml0aWFsIGxvYWQgYWZ0ZXIgdmlldyBjaGFuZ2VcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNJbml0aWFsaXppbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2NoZWR1bGVBcHBseSgpO1xuICAgIH0sIDApO1xuICB9XG5cbiAgI2VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgLy8gS2VlcCBkZWZpbml0aW9ucyB1cCB0byBkYXRlOyBpbml0aWFsIGZpbHRlcnMgYXJlIHNldCBleHBsaWNpdGx5IGZyb20gc2V0dGluZ3Mgb3Igdmlld1xuICAgIHRoaXMuZmlsdGVyc0RlZmluaXRpb25zLnNldCh0aGlzLnZtLmZpbHRlcnNEZWYpO1xuICB9KTtcblxuICBwcml2YXRlIHNldEluaXRpYWxGaWx0ZXJzRnJvbVNldHRpbmdzT3JWaWV3KCkge1xuICAgIGNvbnN0IHNhdmVkID0gdGhpcy52bS5maWx0ZXJRdWVyaWVzKCk7XG4gICAgY29uc3Qgdmlld0NvbmRpdGlvbnMgPSB0aGlzLnZtLnZpZXcoKS5jb25kaXRpb25zLm1hcCgoYykgPT4gYy5uYW1lKTtcbiAgICBpZiAoc2F2ZWQgJiYgc2F2ZWQubGVuZ3RoKSB7XG4gICAgICB0aGlzLmluaXRpYWxGaWx0ZXJzLnNldChzYXZlZC5tYXAoKHMpID0+ICh7IC4uLnMsIGhpZGRlbjogdmlld0NvbmRpdGlvbnMuaW5jbHVkZXMocy5maWVsZCkgfSkpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsRmlsdGVycy5zZXQoXG4gICAgICB0aGlzLnZtLnZpZXcoKS5jb25kaXRpb25zLm1hcChcbiAgICAgICAgKGMpID0+XG4gICAgICAgICAgKHtcbiAgICAgICAgICAgIGZpZWxkOiBjLm5hbWUsXG4gICAgICAgICAgICBvcGVyYXRvcjogYy5vcGVyYXRvcixcbiAgICAgICAgICAgIHZhbHVlOiBjLnZhbHVlLFxuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0pIGFzIGFueSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIG9uRmlsdGVyc0NoYW5nZWQoZmlsdGVyczogQVhQRmlsdGVyUXVlcnlbXSkge1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6aW5nIHx8IHRoaXMucGVuZGluZ0luaXRpYWxGaWx0ZXJzKSB7XG4gICAgICB0aGlzLnBlbmRpbmdJbml0aWFsRmlsdGVycyA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZtLmZpbHRlclF1ZXJpZXMuc2V0KGZpbHRlcnMpO1xuICAgIC8vIFBlcnNpc3QgZmlsdGVycyBwZXIgbW9kdWxlL2VudGl0eS92aWV3XG4gICAgdGhpcy52bS5zYXZlU2V0dGluZ3MoJ2ZpbHRlcnMnLCBmaWx0ZXJzKTtcbiAgICB0aGlzLnNjaGVkdWxlQXBwbHkoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzb3J0UXVlcmllcyA9IGNvbXB1dGVkPEFYUFNvcnRRdWVyeVtdPigoKSA9PlxuICAgIHRoaXMudm1cbiAgICAgIC5zb3J0ZWRGaWVsZHMoKVxuICAgICAgLmZpbHRlcigocykgPT4gISFzLmRpcilcbiAgICAgIC5tYXAoKHMpID0+ICh7IG5hbWU6IHMubmFtZSwgZGlyOiBzLmRpciBhcyAnYXNjJyB8ICdkZXNjJyB9KSksXG4gICk7XG5cbiAgcHJvdGVjdGVkIHNvcnREZWZpbml0aW9ucyA9IGNvbXB1dGVkPEFYUFNvcnREZWZpbml0aW9uW10+KCgpID0+XG4gICAgdGhpcy52bS5zb3J0YWJsZUZpZWxkcygpLm1hcCgocykgPT4gKHtcbiAgICAgIG5hbWU6IHMubmFtZSxcbiAgICAgIHRpdGxlOiBzLnRpdGxlLFxuICAgICAgZGlyOiBzLmRpciBhcyAnYXNjJyB8ICdkZXNjJyB8IHVuZGVmaW5lZCxcbiAgICB9KSksXG4gICk7XG5cbiAgcHJvdGVjdGVkIG9uU29ydFF1ZXJpZXNDaGFuZ2UoZTogQVhQU29ydFF1ZXJ5W10pIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemluZyB8fCB0aGlzLnBlbmRpbmdJbml0aWFsU29ydHMpIHtcbiAgICAgIHRoaXMucGVuZGluZ0luaXRpYWxTb3J0cyA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZtLnNvcnRlZEZpZWxkcy5zZXQoXG4gICAgICBlLm1hcCgocykgPT4gKHtcbiAgICAgICAgbmFtZTogcy5uYW1lLFxuICAgICAgICB0aXRsZTogcy5uYW1lLFxuICAgICAgICBkaXI6IHMuZGlyLFxuICAgICAgfSkpLFxuICAgICk7XG4gICAgLy8gUGVyc2lzdCBzb3J0cyBwZXIgbW9kdWxlL2VudGl0eS92aWV3XG4gICAgdGhpcy52bS5zYXZlU2V0dGluZ3MoJ3NvcnRzJywgZSk7XG4gICAgdGhpcy5zY2hlZHVsZUFwcGx5KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Db2x1bW5zQ2hhbmdlKGNvbHVtbnM6IEFYUENvbHVtblF1ZXJ5W10pIHtcbiAgICBjb25zdCBrZXlPZiA9IChjOiB7IG5hbWU6IHN0cmluZzsgY29sdW1uPzogYW55IH0pID0+IGMuY29sdW1uPy5vcHRpb25zPy5kYXRhUGF0aCA/PyBjLm5hbWU7XG5cbiAgICB0aGlzLnZtLmNvbHVtbnMudXBkYXRlKChwcmV2KSA9PiB7XG4gICAgICBjb25zdCBieUtleSA9IG5ldyBNYXAocHJldi5tYXAoKGMpID0+IFtrZXlPZihjIGFzIGFueSksIGNdKSk7XG5cbiAgICAgIHJldHVybiBjb2x1bW5zLm1hcCgobmV3Q29sdW1uKSA9PiB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYnlLZXkuZ2V0KGtleU9mKG5ld0NvbHVtbikpITtcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbChleGlzdGluZy5wcm9wZXJ0eSwge1xuICAgICAgICAgIC4uLmV4aXN0aW5nLmNvbHVtbixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAuLi5leGlzdGluZy5jb2x1bW4ub3B0aW9ucyxcbiAgICAgICAgICAgIHZpc2libGU6IG5ld0NvbHVtbi52aXNpYmxlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgLy8gUGVyc2lzdCBjb2x1bW4gb3JkZXIvdmlzaWJpbGl0eVxuICAgIHRoaXMudm0ub25Db2x1bW5zQ2hhbmdlZCh0aGlzLnZtLmNvbHVtbnMoKSk7XG4gICAgLy8gVXNlIGRlYm91bmNlZCBhcHBseSB0byBhdm9pZCB0cmlwbGUgcmVmcmVzaCB3aGVuIGNvbWJpbmVkIHdpdGggc29ydHMvZmlsdGVyc1xuICAgIC8vIHRoaXMuc2NoZWR1bGVBcHBseSgpO1xuICB9XG59XG4iLCI8IS0tIDxheHAtZW50aXR5LXZpZXctdG9vbGJhciBbdmlld01vZGVsXT1cInZtXCI+PC9heHAtZW50aXR5LXZpZXctdG9vbGJhcj4gLS0+XG48YXhwLXF1ZXJ5LXZpZXdzXG4gIGlkPVwiYXhwLXRvb2xiYXItdmlldy1zZWxlY3RvclwiXG4gIFt2aWV3c109XCJ2aWV3UXVlcmllcygpXCJcbiAgW3NlbGVjdGVkVmlld109XCJzZWxlY3RlZFZpZXdRdWVyeSgpXCJcbiAgKHNlbGVjdGVkVmlld0NoYW5nZSk9XCJvblZpZXdDaGFuZ2VkKCRldmVudClcIlxuPjwvYXhwLXF1ZXJ5LXZpZXdzPlxuPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0yIGF4LWJvcmRlci1iIGF4LWJvcmRlci1saWdodCB3LWZ1bGxcIj5cbiAgPCEtLSA8YXhwLWVudGl0eS1maWx0ZXItdG9vbGJhciBbdmlld01vZGVsXT1cInZtXCI+PC9heHAtZW50aXR5LWZpbHRlci10b29sYmFyPiAtLT5cbiAgPGF4cC1xdWVyeS1maWx0ZXJzXG4gICAgaWQ9XCJheHAtdG9vbGJhci1maWx0ZXJzXCJcbiAgICBbZmlsdGVyc0RlZmluaXRpb25zXT1cImZpbHRlcnNEZWZpbml0aW9ucygpXCJcbiAgICBbaW5pdGlhbEZpbHRlcnNdPVwiaW5pdGlhbEZpbHRlcnMoKVwiXG4gICAgKG9uRmlsdGVyc0NoYW5nZWQpPVwib25GaWx0ZXJzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgPjwvYXhwLXF1ZXJ5LWZpbHRlcnM+XG5cbiAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0xIG1kOmF4LWdhcC0yXCI+XG4gICAgPGF4LWJ1dHRvbiBpZD1cImF4cC10b29sYmFyLWJ0bi1jb2x1bW5zXCIgW2ljb25Pbmx5XT1cInRydWVcIiAjY29sdW1uQnV0dG9uIFtjb2xvcl09XCInZGVmYXVsdCdcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGFibGUtY29sdW1uc1wiPjwvaT5cbiAgICA8L2F4LWJ1dHRvbj5cbiAgICA8YXgtcG9wb3ZlclxuICAgICAgaWQ9XCJheHAtcG9wb3Zlci1jb2x1bW5zXCJcbiAgICAgIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgIFtvZmZzZXRZXT1cIjMwXCJcbiAgICAgIFt0YXJnZXRdPVwiY29sdW1uQnV0dG9uXCJcbiAgICAgIFtvcGVuT25dPVwiJ3RvZ2dsZSdcIlxuICAgICAgW2Nsb3NlT25dPVwiJ2NsaWNrT3V0J1wiXG4gICAgICAjcG9wb3ZlclxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1saWdodGVzdC1zdXJmYWNlIGF4LXNoYWRvdy1tZCBheC1ib3JkZXIgbWQ6YXgtdy03MiBheC13LWZ1bGwgYXgtcm91bmRlZC1tZFwiPlxuICAgICAgICA8YXgtaGVhZGVyIGNsYXNzPVwiYXgtYm9yZGVyLWIgYXgtbGlnaHRlci1zdXJmYWNlIGF4LXJvdW5kZWQtdC1tZCBheC1wLTQgYXgtZm9udC1ib2xkXCI+XG4gICAgICAgICAge3sgJ0BnZW5lcmFsOnRlcm1zLmNvbW1vbi5jb2x1bW5zJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgIDwvYXgtaGVhZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcHktMiBheC1weC00XCI+XG4gICAgICAgICAgPGF4cC1xdWVyeS1jb2x1bW5zIFtjb2x1bW5zXT1cInZtLmNvbHVtbnMoKVwiIChjb2x1bW5zQ2hhbmdlKT1cIm9uQ29sdW1uc0NoYW5nZSgkZXZlbnQpXCI+PC9heHAtcXVlcnktY29sdW1ucz5cbiAgICAgICAgICA8IS0tIDxheHAtbGlzdC12aWV3LW9wdGlvbi1jb2x1bW5zIFt2aWV3TW9kZWxdPVwidm1cIj48L2F4cC1saXN0LXZpZXctb3B0aW9uLWNvbHVtbnM+IC0tPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXgtcG9wb3Zlcj5cbiAgICBAaWYgKHZtLmNhblNvcnQoKSkge1xuICAgICAgPGF4LWJ1dHRvbiBpZD1cImF4cC10b29sYmFyLWJ0bi1zb3J0XCIgW2ljb25Pbmx5XT1cInRydWVcIiBbdGV4dF09XCInU29ydHMnXCIgI3NvcnRCdXR0b24gW2NvbG9yXT1cIidkZWZhdWx0J1wiPlxuICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXNvcnQtYW1vdW50LXVwXCI+PC9pPlxuICAgICAgPC9heC1idXR0b24+XG4gICAgICA8YXgtcG9wb3ZlclxuICAgICAgICBpZD1cImF4cC1wb3BvdmVyLXNvcnRcIlxuICAgICAgICBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtvZmZzZXRZXT1cIjEwXCJcbiAgICAgICAgW3RhcmdldF09XCJzb3J0QnV0dG9uXCJcbiAgICAgICAgW29wZW5Pbl09XCIndG9nZ2xlJ1wiXG4gICAgICAgIFtjbG9zZU9uXT1cIidjbGlja091dCdcIlxuICAgICAgICAjcG9wb3ZlclxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGlnaHRlc3Qtc3VyZmFjZSBheC1zaGFkb3ctbWQgYXgtYm9yZGVyIG1kOmF4LXctNzIgYXgtdy1mdWxsIGF4LXJvdW5kZWQtbWRcIj5cbiAgICAgICAgICA8YXgtaGVhZGVyIGNsYXNzPVwiYXgtYm9yZGVyLWIgYXgtbGlnaHRlci1zdXJmYWNlIGF4LXJvdW5kZWQtdC1tZCBheC1wLTQgYXgtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICB7eyAnQGdlbmVyYWw6dGVybXMuY29tbW9uLnNvcnRzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgPC9heC1oZWFkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXB5LTIgYXgtcHgtNFwiPlxuICAgICAgICAgICAgPCEtLSA8YXhwLWxpc3Qtdmlldy1vcHRpb24tc29ydGluZyBbdmlld01vZGVsXT1cInZtXCI+PC9heHAtbGlzdC12aWV3LW9wdGlvbi1zb3J0aW5nPiAtLT5cbiAgICAgICAgICAgIDxheHAtcXVlcnktc29ydHNcbiAgICAgICAgICAgICAgW3NvcnREZWZpbml0aW9uc109XCJzb3J0RGVmaW5pdGlvbnMoKVwiXG4gICAgICAgICAgICAgIChzb3J0UXVlcmllc0NoYW5nZSk9XCJvblNvcnRRdWVyaWVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICBbaW5pdGlhbFNvcnRRdWVyaWVzXT1cInNvcnRRdWVyaWVzKClcIlxuICAgICAgICAgICAgPjwvYXhwLXF1ZXJ5LXNvcnRzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXgtcG9wb3Zlcj5cbiAgICB9XG4gICAgQGlmIChsYXlvdXRTZXJ2aWNlLmlzU21hbGwoKSkge1xuICAgICAgPGF4LWJ1dHRvblxuICAgICAgICBpZD1cImF4cC10b29sYmFyLWJ0bi1jYXRlZ29yeVwiXG4gICAgICAgIChvbkNsaWNrKT1cInBhcmVudC50b2dnbGVDYXRlZ29yeURyYXdlcigpXCJcbiAgICAgICAgW2ljb25Pbmx5XT1cInRydWVcIlxuICAgICAgICBbY29sb3JdPVwiJ2RlZmF1bHQnXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1iYXJzXCI+PC9pPlxuICAgICAgPC9heC1idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport { AXDataTableModule, } from '@acorex/components/data-table';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, effect, inject, signal, viewChild, } from '@angular/core';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslationModule, translateSync } from '@acorex/core/translation';\nimport { AXPAuthModule } from '@acorex/platform/auth';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutStartSideComponent } from '@acorex/platform/layout/components';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXPWidgetsModule } from '@acorex/platform/layout/widgets';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPEntityCategoryComponent } from '../entity-category/entity-category.component';\nimport { AXPEntityMasterToolbarViewComponent } from '../entity-master-toolbar-view/entity-master-toolbar-view.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/core/platform\";\nimport * as i2 from \"@acorex/components/data-table\";\nimport * as i3 from \"@acorex/core/translation\";\nimport * as i4 from \"@acorex/platform/layout/widget-core\";\nimport * as i5 from \"@angular/common\";\nexport class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {\n constructor(platform) {\n super();\n this.platform = platform;\n this.activeRoute = inject(ActivatedRoute);\n this.router = inject(Router);\n this.vm = this.activeRoute.snapshot.data['vm'];\n //\n this.store = inject(AXPLayoutThemeService);\n //\n this.searchBarShown = signal(true, ...(ngDevMode ? [{ debugName: \"searchBarShown\" }] : []));\n this.activeEndSideView = signal('column', ...(ngDevMode ? [{ debugName: \"activeEndSideView\" }] : []));\n this.categorySearchValue = signal('', ...(ngDevMode ? [{ debugName: \"categorySearchValue\" }] : []));\n // @ViewChild('grid', { static: true}) grid: AXDataTableComponent;\n this.grid = viewChild('grid', ...(ngDevMode ? [{ debugName: \"grid\" }] : []));\n this.initializedFromRoute = false;\n this.commandRowItems = computed(() => {\n return this.vm.primaryRowActions().map((c) => {\n return {\n icon: c.icon,\n name: c.name,\n text: translateSync(c.title),\n color: c.color,\n disabled: c.disabled,\n default: c.default,\n };\n });\n }, ...(ngDevMode ? [{ debugName: \"commandRowItems\" }] : []));\n this.getDropdownRowItems = (rowData) => {\n return Promise.resolve(this.dropdownRowItems(rowData));\n };\n this.getCommandRowItems = () => {\n return this.commandRowItems();\n };\n effect(() => {\n if (this.grid()) {\n this.grid().selectedRows = this.vm.selectedItems();\n }\n });\n //\n this.vm.events$.subscribe(async (e) => {\n const refreshTargetId = e.meta?.refreshTargetId;\n if (e.action == 'refresh') {\n if (refreshTargetId) {\n this.grid()?.refreshItemChildren(refreshTargetId);\n }\n else {\n this.grid()?.refresh({\n reset: false,\n });\n }\n }\n });\n // Keep URL query param `view` in sync with current vm view\n effect(() => {\n if (!this.initializedFromRoute) {\n return;\n }\n const currentViewName = this.vm.view().name;\n const urlView = this.activeRoute.snapshot.queryParamMap.get('view');\n if (currentViewName && currentViewName !== urlView) {\n this.router.navigate([], {\n relativeTo: this.activeRoute,\n queryParams: { view: currentViewName },\n queryParamsHandling: 'merge',\n replaceUrl: true,\n });\n }\n });\n }\n async ngOnInit() {\n // React to external URL changes (back/forward navigation or deep links)\n this.queryParamSub = this.activeRoute.queryParamMap.subscribe(async (qp) => {\n const viewFromUrl = qp.get('view');\n await this.vm.setView(viewFromUrl);\n });\n }\n async ngAfterViewInit() {\n const viewFromUrl = this.activeRoute.snapshot.queryParamMap.get('view');\n await this.vm.setView(viewFromUrl);\n const resolvedView = this.vm.view().name;\n const currentUrlView = this.activeRoute.snapshot.queryParamMap.get('view');\n if (currentUrlView !== resolvedView) {\n this.router.navigate([], {\n relativeTo: this.activeRoute,\n queryParams: { view: resolvedView },\n queryParamsHandling: 'merge',\n replaceUrl: true,\n });\n }\n this.initializedFromRoute = true;\n }\n onColumnSizeChanged(e) {\n if (e.isUserInteraction && e.type === 'end') {\n this.vm.saveSettings('columnSizes', e.data);\n }\n }\n onPageChanged(e) {\n if (e.isUserInteraction) {\n const pageSizeChanged = e.take != this.vm.dataSource.pageSize;\n if (pageSizeChanged) {\n this.vm.saveSettings('pageSize', e.take);\n }\n }\n }\n onColumnsOrderChanged(e) {\n if (e.isUserInteraction) {\n this.vm.onColumnsOrderChanged(e.data.event);\n }\n }\n async dropdownRowItems(rowData) {\n return (await this.vm.secondaryRowActions(rowData)).map((c) => ({\n icon: c.icon,\n name: c.name,\n text: c.title,\n color: c.color,\n disabled: c.disabled,\n default: c.default,\n }));\n }\n async handleRowDbClick(e) {\n if (this.grid()?.dataSource.isLoading) {\n return;\n }\n const allItems = [...this.commandRowItems(), ...(await this.dropdownRowItems(e.data))];\n // const defaultAction = allItems.find((c) => (c as any).default) || allItems[0];\n const defaultAction = allItems.find((c) => {\n const commandName = c.name.split('&')[0];\n return (c.default || commandName === 'open-entity') && !c.disabled;\n });\n if (!defaultAction) {\n return;\n }\n const d = {\n component: e.component,\n name: defaultAction.name,\n data: e.data,\n };\n this.handleRowCommandClick(d);\n }\n async handleRowCommandClick(e) {\n if (this.grid()?.dataSource.isLoading) {\n return;\n }\n this.vm.executeCommand(e.name, e.data);\n }\n async handleSelectedRowsChange(rows) {\n this.vm.selectedItems.set(rows);\n }\n makeResponsive(value) {\n if (this.platform.is('Mobile') || this.platform.is('SM')) {\n return '';\n }\n else {\n return value;\n }\n }\n toggleSideBar(sideBar) {\n this.toggleEndSide();\n if (sideBar) {\n this.activeEndSideView.set(sideBar);\n }\n }\n toggleSearchBar() {\n this.searchBarShown.update((v) => !v);\n }\n handleResetClick(sideBar) {\n switch (sideBar) {\n case 'filter': {\n this.vm.resetFilters();\n break;\n }\n case 'sort': {\n this.vm.resetSorts();\n break;\n }\n case 'column': {\n this.vm.resetColumns();\n break;\n }\n }\n }\n // protected handleDiscardClick(sideBar: 'filter' | 'sort' | 'column') {\n // switch (sideBar) {\n // case 'filter': {\n // this.vm.discardFilters();\n // break;\n // }\n // case 'sort': {\n // this.vm.resetSorts();\n // break;\n // }\n // case 'column': {\n // this.vm.resetColumns();\n // break;\n // }\n // }\n // }\n handleApplyClick(sideBar) {\n this.vm.applyFilterAndSort();\n this.toggleEndSide();\n }\n ngOnDestroy() {\n this.queryParamSub?.unsubscribe();\n this.vm.destroy();\n }\n toggleCategoryDrawer() {\n this.toggleStartSide();\n }\n getPageTitle() {\n return this.vm.title();\n }\n async getPageDescription() {\n const description = this.vm.description();\n if (description) {\n return this.translateService.translateAsync(description);\n }\n return '';\n }\n getPageBreadcrumbs() {\n return this.vm.beardcrumbs();\n }\n async getPrimaryMenuItems() {\n return (await this.vm.getPrimaryActions()).map((tr) => ({\n name: tr.name,\n title: tr.title,\n icon: tr.icon,\n color: tr.color,\n disabled: tr.disabled,\n command: {\n name: tr.name,\n options: tr.options,\n metadata: tr.metadata,\n },\n }));\n }\n async getSecondaryMenuItems() {\n return (await this.vm.getSecondaryActions()).map((tr) => ({\n name: tr.name,\n title: tr.title,\n icon: tr.icon,\n color: tr.color,\n disabled: tr.disabled,\n separated: tr.separated,\n command: {\n name: tr.name,\n options: tr.options,\n metadata: tr.metadata,\n },\n }));\n }\n async execute(command) {\n if (command) {\n this.vm.execute(command);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXPEntityMasterListViewComponent, deps: [{ token: i1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.4\", type: AXPEntityMasterListViewComponent, isStandalone: true, selector: \"axp-entity-master-list\", providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPEntityMasterListViewComponent,\n },\n ], viewQueries: [{ propertyName: \"grid\", first: true, predicate: [\"grid\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if (vm.entityDef.category) {\\n <axp-layout-start-side id=\\\"axp-entity-category-drawer\\\">\\n <axp-entity-category\\n id=\\\"axp-entity-category\\\"\\n class=\\\"ax-w-80\\\"\\n [vm]=\\\"vm\\\"\\n [searchValue]=\\\"categorySearchValue()\\\"\\n ></axp-entity-category>\\n </axp-layout-start-side>\\n }\\n <axp-page-toolbar id=\\\"axp-entity-toolbar\\\">\\n <axp-entity-master-toolbar-view [viewModel]=\\\"vm\\\"></axp-entity-master-toolbar-view>\\n </axp-page-toolbar>\\n <axp-page-content class=\\\"ax-overflow-auto\\\">\\n <ax-data-table\\n id=\\\"axp-entity-table\\\"\\n [allowReordering]=\\\"true\\\"\\n (onColumnsOrderChanged)=\\\"onColumnsOrderChanged($event)\\\"\\n #grid\\n [showFooter]=\\\"false\\\"\\n class=\\\"ax-flex-1\\\"\\n [paging]=\\\"true\\\"\\n [fetchDataMode]=\\\"'manual'\\\"\\n [parentField]=\\\"vm.parentKey()\\\"\\n [loading]=\\\"{ enabled: true, animation: true }\\\"\\n [dataSource]=\\\"vm.dataSource\\\"\\n (selectedRowsChange)=\\\"handleSelectedRowsChange($event)\\\"\\n (onRowDbClick)=\\\"handleRowDbClick($event)\\\"\\n (onColumnSizeChanged)=\\\"onColumnSizeChanged($event)\\\"\\n (onPageChanged)=\\\"onPageChanged($event)\\\"\\n >\\n @if (vm.view().indexCol === true) {\\n <ax-index-column id=\\\"axp-table-col-index\\\" fixed=\\\"start\\\" [width]=\\\"'80px'\\\" [padZero]=\\\"true\\\"></ax-index-column>\\n }\\n @if (vm.selectedScopeActionsCount()) {\\n <ax-select-column id=\\\"axp-table-col-select\\\" fixed=\\\"start\\\" [width]=\\\"'60px'\\\"></ax-select-column>\\n }\\n @for (col of vm.columns(); track col.name) {\\n @if (col.visible) {\\n <axp-widget-column-renderer\\n [attr.id]=\\\"'axp-table-col-' + col.name\\\"\\n [expandHandler]=\\\"$index === 0 && vm.parentKey() ? true : false\\\"\\n [caption]=\\\"(col.title | translate | async)!\\\"\\n [node]=\\\"col.node()\\\"\\n [customWidth]=\\\"col.width\\\"\\n ></axp-widget-column-renderer>\\n }\\n }\\n @if (getCommandRowItems().length) {\\n <ax-command-column\\n id=\\\"axp-table-col-commands\\\"\\n fixed=\\\"end\\\"\\n [width]=\\\"getCommandRowItems().length * 60 + 'px'\\\"\\n [items]=\\\"getCommandRowItems()\\\"\\n (onItemClick)=\\\"handleRowCommandClick($event)\\\"\\n ></ax-command-column>\\n }\\n <ax-dropdown-command-column\\n id=\\\"axp-table-col-dropdown-commands\\\"\\n fixed=\\\"end\\\"\\n [width]=\\\"'60px'\\\"\\n [items]=\\\"getDropdownRowItems\\\"\\n (onItemClick)=\\\"handleRowCommandClick($event)\\\"\\n ></ax-dropdown-command-column>\\n </ax-data-table>\\n </axp-page-content>\\n</axp-page-layout>\\n\", styles: [\"axp-entity-master-list axp-layout-start-side{min-width:20rem!important;border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}.view-drawer{width:85vw}@media (min-width: 768px){.view-drawer{width:45vw}}@media (min-width: 1024px){.view-drawer{width:35vw}}@media (min-width: 1536px){.view-drawer{width:20vw}}.view-drawer{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));border-inline-start-width:1px;border-inline-start-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));border-top-width:1px;--tw-border-opacity: 1;border-top-color:rgba(var(--ax-sys-color-primary-600),var(--tw-border-opacity, 1))}.view-drawer ax-header{display:flex;align-items:center;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1));padding:.5rem 1rem}.view-drawer ax-header h2{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lighter-surface),var(--tw-text-opacity, 1))}.view-drawer ax-footer{position:absolute!important;bottom:0!important;width:100%!important;justify-content:flex-start!important;border-top-width:1px!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))!important;padding:.5rem 1rem!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"ngmodule\", type: AXPopoverModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"ngmodule\", type: AXActionSheetModule }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"ngmodule\", type: AXDialogModule }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"ngmodule\", type: AXBreadcrumbsModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"ngmodule\", type: AXDataTableModule }, { kind: \"component\", type: i2.AXDataTableComponent, selector: \"ax-data-table\", inputs: [\"dataSource\", \"selectedRows\", \"parentField\", \"rowTemplate\", \"emptyTemplate\", \"noDataTemplate\", \"alternative\", \"showHeader\", \"fixedHeader\", \"showFooter\", \"fixedFooter\", \"itemHeight\", \"allowReordering\", \"paging\", \"fetchDataMode\", \"loading\", \"focusedRow\"], outputs: [\"selectedRowsChange\", \"focusedRowChange\", \"onRowClick\", \"onRowDbClick\", \"onColumnsOrderChanged\", \"onColumnSizeChanged\", \"onPageChanged\"] }, { kind: \"component\", type: i2.AXRowIndexColumnComponent, selector: \"ax-index-column\", inputs: [\"width\", \"caption\", \"fixed\", \"footerTemplate\", \"padZero\"] }, { kind: \"component\", type: i2.AXRowSelectColumnComponent, selector: \"ax-select-column\", inputs: [\"width\", \"caption\", \"fixed\"] }, { kind: \"component\", type: i2.AXRowCommandColumnComponent, selector: \"ax-command-column\", inputs: [\"width\", \"caption\", \"fixed\", \"footerTemplate\", \"items\"], outputs: [\"onItemClick\"] }, { kind: \"component\", type: i2.AXRowDropdownCommandColumnComponent, selector: \"ax-dropdown-command-column\", inputs: [\"width\", \"caption\", \"fixed\", \"footerTemplate\", \"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i3.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: DragDropModule }, { kind: \"ngmodule\", type: \n //\n AXPWidgetCoreModule }, { kind: \"component\", type: i4.AXPWidgetColumnRendererComponent, selector: \"axp-widget-column-renderer\", inputs: [\"caption\", \"customExpandIcon\", \"customCollapseIcon\", \"customWidth\", \"node\", \"footerTemplate\", \"expandHandler\", \"cellTemplate\", \"headerTemplate\"] }, { kind: \"ngmodule\", type: AXPWidgetsModule }, { kind: \"ngmodule\", type: AXPAuthModule }, { kind: \"component\", type: \n //\n AXPEntityMasterToolbarViewComponent, selector: \"axp-entity-master-toolbar-view\", inputs: [\"viewModel\"] }, { kind: \"component\", type: \n //\n 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: i5.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.4\", ngImport: i0, type: AXPEntityMasterListViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-entity-master-list', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n AXButtonModule,\n AXDecoratorModule,\n AXBadgeModule,\n AXDropdownModule,\n AXPopoverModule,\n AXFormModule,\n AXActionSheetModule,\n AXDrawerModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXBreadcrumbsModule,\n AXDropdownButtonModule,\n AXSearchBoxModule,\n AXDataTableModule,\n AXTranslationModule,\n DragDropModule,\n //\n AXPWidgetCoreModule,\n AXPWidgetsModule,\n AXPAuthModule,\n //\n AXPEntityMasterToolbarViewComponent,\n //\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXDropdownButtonModule,\n AXPThemeLayoutStartSideComponent,\n AXPEntityCategoryComponent,\n ], providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPEntityMasterListViewComponent,\n },\n ], template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if (vm.entityDef.category) {\\n <axp-layout-start-side id=\\\"axp-entity-category-drawer\\\">\\n <axp-entity-category\\n id=\\\"axp-entity-category\\\"\\n class=\\\"ax-w-80\\\"\\n [vm]=\\\"vm\\\"\\n [searchValue]=\\\"categorySearchValue()\\\"\\n ></axp-entity-category>\\n </axp-layout-start-side>\\n }\\n <axp-page-toolbar id=\\\"axp-entity-toolbar\\\">\\n <axp-entity-master-toolbar-view [viewModel]=\\\"vm\\\"></axp-entity-master-toolbar-view>\\n </axp-page-toolbar>\\n <axp-page-content class=\\\"ax-overflow-auto\\\">\\n <ax-data-table\\n id=\\\"axp-entity-table\\\"\\n [allowReordering]=\\\"true\\\"\\n (onColumnsOrderChanged)=\\\"onColumnsOrderChanged($event)\\\"\\n #grid\\n [showFooter]=\\\"false\\\"\\n class=\\\"ax-flex-1\\\"\\n [paging]=\\\"true\\\"\\n [fetchDataMode]=\\\"'manual'\\\"\\n [parentField]=\\\"vm.parentKey()\\\"\\n [loading]=\\\"{ enabled: true, animation: true }\\\"\\n [dataSource]=\\\"vm.dataSource\\\"\\n (selectedRowsChange)=\\\"handleSelectedRowsChange($event)\\\"\\n (onRowDbClick)=\\\"handleRowDbClick($event)\\\"\\n (onColumnSizeChanged)=\\\"onColumnSizeChanged($event)\\\"\\n (onPageChanged)=\\\"onPageChanged($event)\\\"\\n >\\n @if (vm.view().indexCol === true) {\\n <ax-index-column id=\\\"axp-table-col-index\\\" fixed=\\\"start\\\" [width]=\\\"'80px'\\\" [padZero]=\\\"true\\\"></ax-index-column>\\n }\\n @if (vm.selectedScopeActionsCount()) {\\n <ax-select-column id=\\\"axp-table-col-select\\\" fixed=\\\"start\\\" [width]=\\\"'60px'\\\"></ax-select-column>\\n }\\n @for (col of vm.columns(); track col.name) {\\n @if (col.visible) {\\n <axp-widget-column-renderer\\n [attr.id]=\\\"'axp-table-col-' + col.name\\\"\\n [expandHandler]=\\\"$index === 0 && vm.parentKey() ? true : false\\\"\\n [caption]=\\\"(col.title | translate | async)!\\\"\\n [node]=\\\"col.node()\\\"\\n [customWidth]=\\\"col.width\\\"\\n ></axp-widget-column-renderer>\\n }\\n }\\n @if (getCommandRowItems().length) {\\n <ax-command-column\\n id=\\\"axp-table-col-commands\\\"\\n fixed=\\\"end\\\"\\n [width]=\\\"getCommandRowItems().length * 60 + 'px'\\\"\\n [items]=\\\"getCommandRowItems()\\\"\\n (onItemClick)=\\\"handleRowCommandClick($event)\\\"\\n ></ax-command-column>\\n }\\n <ax-dropdown-command-column\\n id=\\\"axp-table-col-dropdown-commands\\\"\\n fixed=\\\"end\\\"\\n [width]=\\\"'60px'\\\"\\n [items]=\\\"getDropdownRowItems\\\"\\n (onItemClick)=\\\"handleRowCommandClick($event)\\\"\\n ></ax-dropdown-command-column>\\n </ax-data-table>\\n </axp-page-content>\\n</axp-page-layout>\\n\", styles: [\"axp-entity-master-list axp-layout-start-side{min-width:20rem!important;border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.cdk-drag-preview{border-radius:.375rem;border-width:1px;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background:rgba(var(--ax-color-on-surface));padding:.5rem;height:max-content!important}.collapsed-search-box{margin-top:0;height:0px;opacity:0}.view-drawer{width:85vw}@media (min-width: 768px){.view-drawer{width:45vw}}@media (min-width: 1024px){.view-drawer{width:35vw}}@media (min-width: 1536px){.view-drawer{width:20vw}}.view-drawer{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));border-inline-start-width:1px;border-inline-start-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));border-top-width:1px;--tw-border-opacity: 1;border-top-color:rgba(var(--ax-sys-color-primary-600),var(--tw-border-opacity, 1))}.view-drawer ax-header{display:flex;align-items:center;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1));padding:.5rem 1rem}.view-drawer ax-header h2{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lighter-surface),var(--tw-text-opacity, 1))}.view-drawer ax-footer{position:absolute!important;bottom:0!important;width:100%!important;justify-content:flex-start!important;border-top-width:1px!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1))!important;padding:.5rem 1rem!important}\\n\"] }]\n }], ctorParameters: () => [{ type: i1.AXPlatform }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUdMLGlCQUFpQixHQUtsQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIs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QVksOEJBQ1osZUFBZSw4QkFDZixtQkFBbUIsOEJBQ25CLHNCQUFzQiw4QkFDdEIsaUJBQWlCLDhCQUNqQixpQkFBaUIsd3FDQUNqQixtQkFBbUIsOEdBQ25CLGNBQWM7Z0JBQ2QsRUFBRTtnQkFDRixtQkFBbUIsbVNBQ25CLGdCQUFnQiw4QkFDaEIsYUFBYTtnQkFDYixFQUFFO2dCQUNGLG1DQUFtQztnQkFDbkMsRUFBRTtnQkFDRixzQkFBc0IsNERBQ3RCLDRCQUE0QixnaUJBRTVCLGdDQUFnQyw4RkFDaEMsMEJBQTBCOzsyRkFTakIsZ0NBQWdDO2tCQWhENUMsU0FBUzsrQkFHRSx3QkFBd0IsaUJBQ25CLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixzQkFBc0I7d0JBQ3RCLGlCQUFpQjt3QkFDakIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsRUFBRTt3QkFDRixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixFQUFFO3dCQUNGLG1DQUFtQzt3QkFDbkMsRUFBRTt3QkFDRixzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsc0JBQXNCO3dCQUN0QixnQ0FBZ0M7d0JBQ2hDLDBCQUEwQjtxQkFDM0IsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLGtDQUFrQzt5QkFDOUM7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEFjdGlvblNoZWV0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2FjdGlvbi1zaGVldCc7XG5pbXBvcnQge1xuICBBWENvbHVtbnNPcmRlckNoYW5nZWRFdmVudCxcbiAgQVhEYXRhVGFibGVDb21wb25lbnQsXG4gIEFYRGF0YVRhYmxlTW9kdWxlLFxuICBBWERhdGFUYWJsZVJvd0RiQ2xpY2ssXG4gIEFYUm93Q29tbWFuZEl0ZW0sXG4gIEFYUm93Q29tbWFuZEl0ZW1DbGlja0V2ZW50LFxuICBvbkNvbHVtblNpemVDaGFuZ2VkRXZlbnQsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcbmltcG9ydCB7IEFYRHJhd2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RyYXdlcic7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhUGFnZXJDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0YS1wYWdlcic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgdHJhbnNsYXRlU3luYyB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBBdXRoTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsIEFYUFRoZW1lTGF5b3V0U3RhcnRTaWRlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cyc7XG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG5pbXBvcnQgeyBBWFBBY3Rpb25NZW51SXRlbSwgQVhQQnJlYWRjcnVtYkl0ZW0sIEFYUEV4ZWN1dGVDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUFBhZ2VMYXlvdXRCYXNlLCBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCwgQVhQUGFnZUxheW91dENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzJztcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUEVudGl0eUNhdGVnb3J5Q29tcG9uZW50IH0gZnJvbSAnLi4vZW50aXR5LWNhdGVnb3J5L2VudGl0eS1jYXRlZ29yeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyVG9vbGJhclZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9lbnRpdHktbWFzdGVyLXRvb2xiYXItdmlldy9lbnRpdHktbWFzdGVyLXRvb2xiYXItdmlldy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICdlbnRpdHktbWFzdGVyLWxpc3Qtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydlbnRpdHktbWFzdGVyLWxpc3Qtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBzZWxlY3RvcjogJ2F4cC1lbnRpdHktbWFzdGVyLWxpc3QnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhCYWRnZU1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgIEFYUG9wb3Zlck1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhBY3Rpb25TaGVldE1vZHVsZSxcbiAgICBBWERyYXdlck1vZHVsZSxcbiAgICBBWERpYWxvZ01vZHVsZSxcbiAgICBBWExvYWRpbmdNb2R1bGUsXG4gICAgQVhUYWJzTW9kdWxlLFxuICAgIEFYVG9vbHRpcE1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIEFYRHJvcGRvd25CdXR0b25Nb2R1bGUsXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXG4gICAgQVhEYXRhVGFibGVNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICAvL1xuICAgIEFYUFdpZGdldENvcmVNb2R1bGUsXG4gICAgQVhQV2lkZ2V0c01vZHVsZSxcbiAgICBBWFBBdXRoTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQRW50aXR5TWFzdGVyVG9vbGJhclZpZXdDb21wb25lbnQsXG4gICAgLy9cbiAgICBBWFBQYWdlTGF5b3V0Q29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcbiAgICBBWFBUaGVtZUxheW91dFN0YXJ0U2lkZUNvbXBvbmVudCxcbiAgICBBWFBFbnRpdHlDYXRlZ29yeUNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQUGFnZUxheW91dEJhc2UsXG4gICAgICB1c2VFeGlzdGluZzogQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgYWN0aXZlUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB2bSA9IHRoaXMuYWN0aXZlUm91dGUuc25hcHNob3QuZGF0YVsndm0nXSBhcyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsO1xuXG4gIC8vXG4gIHByb3RlY3RlZCBzdG9yZSA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICAvL1xuICBwcm90ZWN0ZWQgc2VhcmNoQmFyU2hvd24gPSBzaWduYWwodHJ1ZSk7XG4gIHByb3RlY3RlZCBhY3RpdmVFbmRTaWRlVmlldyA9IHNpZ25hbDwnY29sdW1uJyB8ICdmaWx0ZXInIHwgJ3NvcnQnPignY29sdW1uJyk7XG5cbiAgcHJvdGVjdGVkIGNhdGVnb3J5U2VhcmNoVmFsdWUgPSBzaWduYWwoJycpO1xuXG4gIC8vIEBWaWV3Q2hpbGQoJ2dyaWQnLCB7IHN0YXRpYzogdHJ1ZX0pIGdyaWQ6IEFYRGF0YVRhYmxlQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgZ3JpZCA9IHZpZXdDaGlsZDxBWERhdGFUYWJsZUNvbXBvbmVudD4oJ2dyaWQnKTtcbiAgcHJpdmF0ZSBxdWVyeVBhcmFtU3ViPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGluaXRpYWxpemVkRnJvbVJvdXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHBsYXRmb3JtOiBBWFBsYXRmb3JtKSB7XG4gICAgc3VwZXIoKTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ3JpZCgpKSB7XG4gICAgICAgIHRoaXMuZ3JpZCgpIS5zZWxlY3RlZFJvd3MgPSB0aGlzLnZtLnNlbGVjdGVkSXRlbXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMudm0uZXZlbnRzJC5zdWJzY3JpYmUoYXN5bmMgKGUpID0+IHtcbiAgICAgIGNvbnN0IHJlZnJlc2hUYXJnZXRJZCA9IGUubWV0YT8ucmVmcmVzaFRhcmdldElkO1xuICAgICAgaWYgKGUuYWN0aW9uID09ICdyZWZyZXNoJykge1xuICAgICAgICBpZiAocmVmcmVzaFRhcmdldElkKSB7XG4gICAgICAgICAgdGhpcy5ncmlkKCk/LnJlZnJlc2hJdGVtQ2hpbGRyZW4ocmVmcmVzaFRhcmdldElkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmdyaWQoKT8ucmVmcmVzaCh7XG4gICAgICAgICAgICByZXNldDogZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIEtlZXAgVVJMIHF1ZXJ5IHBhcmFtIGB2aWV3YCBpbiBzeW5jIHdpdGggY3VycmVudCB2bSB2aWV3XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pbml0aWFsaXplZEZyb21Sb3V0ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjdXJyZW50Vmlld05hbWUgPSB0aGlzLnZtLnZpZXcoKS5uYW1lO1xuICAgICAgY29uc3QgdXJsVmlldyA9IHRoaXMuYWN0aXZlUm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3ZpZXcnKTtcbiAgICAgIGlmIChjdXJyZW50Vmlld05hbWUgJiYgY3VycmVudFZpZXdOYW1lICE9PSB1cmxWaWV3KSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmVSb3V0ZSxcbiAgICAgICAgICBxdWVyeVBhcmFtczogeyB2aWV3OiBjdXJyZW50Vmlld05hbWUgfSxcbiAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgICAgIHJlcGxhY2VVcmw6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gUmVhY3QgdG8gZXh0ZXJuYWwgVVJMIGNoYW5nZXMgKGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uIG9yIGRlZXAgbGlua3MpXG4gICAgdGhpcy5xdWVyeVBhcmFtU3ViID0gdGhpcy5hY3RpdmVSb3V0ZS5xdWVyeVBhcmFtTWFwLnN1YnNjcmliZShhc3luYyAocXApID0+IHtcbiAgICAgIGNvbnN0IHZpZXdGcm9tVXJsID0gcXAuZ2V0KCd2aWV3Jyk7XG4gICAgICBhd2FpdCB0aGlzLnZtLnNldFZpZXcodmlld0Zyb21VcmwpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IHZpZXdGcm9tVXJsID0gdGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgndmlldycpO1xuICAgIGF3YWl0IHRoaXMudm0uc2V0Vmlldyh2aWV3RnJvbVVybCk7XG5cbiAgICBjb25zdCByZXNvbHZlZFZpZXcgPSB0aGlzLnZtLnZpZXcoKS5uYW1lO1xuICAgIGNvbnN0IGN1cnJlbnRVcmxWaWV3ID0gdGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgndmlldycpO1xuICAgIGlmIChjdXJyZW50VXJsVmlldyAhPT0gcmVzb2x2ZWRWaWV3KSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2ZVJvdXRlLFxuICAgICAgICBxdWVyeVBhcmFtczogeyB2aWV3OiByZXNvbHZlZFZpZXcgfSxcbiAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxpemVkRnJvbVJvdXRlID0gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkNvbHVtblNpemVDaGFuZ2VkKGU6IG9uQ29sdW1uU2l6ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uICYmIGUudHlwZSA9PT0gJ2VuZCcpIHtcbiAgICAgIHRoaXMudm0uc2F2ZVNldHRpbmdzKCdjb2x1bW5TaXplcycsIGUuZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uUGFnZUNoYW5nZWQoZTogQVhEYXRhUGFnZXJDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3QgcGFnZVNpemVDaGFuZ2VkID0gZS50YWtlICE9IHRoaXMudm0uZGF0YVNvdXJjZS5wYWdlU2l6ZTtcbiAgICAgIGlmIChwYWdlU2l6ZUNoYW5nZWQpIHtcbiAgICAgICAgdGhpcy52bS5zYXZlU2V0dGluZ3MoJ3BhZ2VTaXplJywgZS50YWtlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Db2x1bW5zT3JkZXJDaGFuZ2VkKGU6IEFYQ29sdW1uc09yZGVyQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMudm0ub25Db2x1bW5zT3JkZXJDaGFuZ2VkKGUuZGF0YS5ldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRyb3Bkb3duUm93SXRlbXMocm93RGF0YTogYW55KTogUHJvbWlzZTxBWFJvd0NvbW1hbmRJdGVtW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMudm0uc2Vjb25kYXJ5Um93QWN0aW9ucyhyb3dEYXRhKSkubWFwKChjKSA9PiAoe1xuICAgICAgaWNvbjogYy5pY29uLFxuICAgICAgbmFtZTogYy5uYW1lLFxuICAgICAgdGV4dDogYy50aXRsZSxcbiAgICAgIGNvbG9yOiBjLmNvbG9yLFxuICAgICAgZGlzYWJsZWQ6IGMuZGlzYWJsZWQsXG4gICAgICBkZWZhdWx0OiBjLmRlZmF1bHQsXG4gICAgfSkpIGFzIEFYUm93Q29tbWFuZEl0ZW1bXTtcbiAgfVxuXG4gIHByaXZhdGUgY29tbWFuZFJvd0l0ZW1zID0gY29tcHV0ZWQ8QVhSb3dDb21tYW5kSXRlbVtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudm0ucHJpbWFyeVJvd0FjdGlvbnMoKS5tYXAoKGMpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb246IGMuaWNvbixcbiAgICAgICAgbmFtZTogYy5uYW1lLFxuICAgICAgICB0ZXh0OiB0cmFuc2xhdGVTeW5jKGMudGl0bGUpLFxuICAgICAgICBjb2xvcjogYy5jb2xvcixcbiAgICAgICAgZGlzYWJsZWQ6IGMuZGlzYWJsZWQsXG4gICAgICAgIGRlZmF1bHQ6IGMuZGVmYXVsdCxcbiAgICAgIH0gYXMgQVhSb3dDb21tYW5kSXRlbTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XG4gICAgaWYgKHRoaXMuZ3JpZCgpPy5kYXRhU291cmNlLmlzTG9hZGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBhbGxJdGVtcyA9IFsuLi50aGlzLmNvbW1hbmRSb3dJdGVtcygpLCAuLi4oYXdhaXQgdGhpcy5kcm9wZG93blJvd0l0ZW1zKGUuZGF0YSkpXTtcbiAgICAvLyBjb25zdCBkZWZhdWx0QWN0aW9uID0gYWxsSXRlbXMuZmluZCgoYykgPT4gKGMgYXMgYW55KS5kZWZhdWx0KSB8fCBhbGxJdGVtc1swXTtcblxuICAgIGNvbnN0IGRlZmF1bHRBY3Rpb24gPSBhbGxJdGVtcy5maW5kKChjKSA9PiB7XG4gICAgICBjb25zdCBjb21tYW5kTmFtZSA9IGMubmFtZS5zcGxpdCgnJicpWzBdO1xuICAgICAgcmV0dXJuICgoYyBhcyBhbnkpLmRlZmF1bHQgfHwgY29tbWFuZE5hbWUgPT09ICdvcGVuLWVudGl0eScpICYmICFjLmRpc2FibGVkO1xuICAgIH0pO1xuXG4gICAgaWYgKCFkZWZhdWx0QWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZDogQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQgPSB7XG4gICAgICBjb21wb25lbnQ6IGUuY29tcG9uZW50LFxuICAgICAgbmFtZTogZGVmYXVsdEFjdGlvbi5uYW1lLFxuICAgICAgZGF0YTogZS5kYXRhLFxuICAgIH07XG4gICAgdGhpcy5oYW5kbGVSb3dDb21tYW5kQ2xpY2soZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RHJvcGRvd25Sb3dJdGVtcyA9IChyb3dEYXRhOiB1bmtub3duKTogUHJvbWlzZTxBWFJvd0NvbW1hbmRJdGVtW10+ID0+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuZHJvcGRvd25Sb3dJdGVtcyhyb3dEYXRhKSk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldENvbW1hbmRSb3dJdGVtcyA9ICgpOiBBWFJvd0NvbW1hbmRJdGVtW10gPT4ge1xuICAgIHJldHVybiB0aGlzLmNvbW1hbmRSb3dJdGVtcygpO1xuICB9O1xuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVSb3dDb21tYW5kQ2xpY2soZTogQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQpIHtcbiAgICBpZiAodGhpcy5ncmlkKCk/LmRhdGFTb3VyY2UuaXNMb2FkaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudm0uZXhlY3V0ZUNvbW1hbmQoZS5uYW1lLCBlLmRhdGEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNlbGVjdGVkUm93c0NoYW5nZShyb3dzOiB1bmtub3duW10pIHtcbiAgICB0aGlzLnZtLnNlbGVjdGVkSXRlbXMuc2V0KHJvd3MpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1ha2VSZXNwb25zaXZlPHQ+KHZhbHVlOiB0KTogdCB8IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVTaWRlQmFyKHNpZGVCYXI/OiAnY29sdW1uJyB8ICdmaWx0ZXInIHwgJ3NvcnQnKSB7XG4gICAgdGhpcy50b2dnbGVFbmRTaWRlKCk7XG4gICAgaWYgKHNpZGVCYXIpIHtcbiAgICAgIHRoaXMuYWN0aXZlRW5kU2lkZVZpZXcuc2V0KHNpZGVCYXIpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVTZWFyY2hCYXIoKSB7XG4gICAgdGhpcy5zZWFyY2hCYXJTaG93bi51cGRhdGUoKHYpID0+ICF2KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSZXNldENsaWNrKHNpZGVCYXI6ICdmaWx0ZXInIHwgJ3NvcnQnIHwgJ2NvbHVtbicpIHtcbiAgICBzd2l0Y2ggKHNpZGVCYXIpIHtcbiAgICAgIGNhc2UgJ2ZpbHRlcic6IHtcbiAgICAgICAgdGhpcy52bS5yZXNldEZpbHRlcnMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdzb3J0Jzoge1xuICAgICAgICB0aGlzLnZtLnJlc2V0U29ydHMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdjb2x1bW4nOiB7XG4gICAgICAgIHRoaXMudm0ucmVzZXRDb2x1bW5zKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHByb3RlY3RlZCBoYW5kbGVEaXNjYXJkQ2xpY2soc2lkZUJhcjogJ2ZpbHRlcicgfCAnc29ydCcgfCAnY29sdW1uJykge1xuICAvLyAgIHN3aXRjaCAoc2lkZUJhcikge1xuICAvLyAgICAgY2FzZSAnZmlsdGVyJzoge1xuICAvLyAgICAgICB0aGlzLnZtLmRpc2NhcmRGaWx0ZXJzKCk7XG4gIC8vICAgICAgIGJyZWFrO1xuICAvLyAgICAgfVxuICAvLyAgICAgY2FzZSAnc29ydCc6IHtcbiAgLy8gICAgICAgdGhpcy52bS5yZXNldFNvcnRzKCk7XG4gIC8vICAgICAgIGJyZWFrO1xuICAvLyAgICAgfVxuICAvLyAgICAgY2FzZSAnY29sdW1uJzoge1xuICAvLyAgICAgICB0aGlzLnZtLnJlc2V0Q29sdW1ucygpO1xuICAvLyAgICAgICBicmVhaztcbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQXBwbHlDbGljayhzaWRlQmFyOiAnZmlsdGVyJyB8ICdzb3J0JyB8ICdjb2x1bW4nKSB7XG4gICAgdGhpcy52bS5hcHBseUZpbHRlckFuZFNvcnQoKTtcbiAgICB0aGlzLnRvZ2dsZUVuZFNpZGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucXVlcnlQYXJhbVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnZtLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHRvZ2dsZUNhdGVnb3J5RHJhd2VyKCkge1xuICAgIHRoaXMudG9nZ2xlU3RhcnRTaWRlKCk7XG4gIH1cblxuICBvdmVycmlkZSBnZXRQYWdlVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52bS50aXRsZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZ2V0UGFnZURlc2NyaXB0aW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLnZtLmRlc2NyaXB0aW9uKCk7XG4gICAgaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKGRlc2NyaXB0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0UGFnZUJyZWFkY3J1bWJzKCk6IEFYUEJyZWFkY3J1bWJJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLnZtLmJlYXJkY3J1bWJzKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRQcmltYXJ5TWVudUl0ZW1zKCk6IFByb21pc2U8QVhQQWN0aW9uTWVudUl0ZW1bXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy52bS5nZXRQcmltYXJ5QWN0aW9ucygpKS5tYXAoXG4gICAgICAodHIpID0+XG4gICAgICAgICh7XG4gICAgICAgICAgbmFtZTogdHIubmFtZSxcbiAgICAgICAgICB0aXRsZTogdHIudGl0bGUsXG4gICAgICAgICAgaWNvbjogdHIuaWNvbixcbiAgICAgICAgICBjb2xvcjogdHIuY29sb3IsXG4gICAgICAgICAgZGlzYWJsZWQ6IHRyLmRpc2FibGVkLFxuICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgIG5hbWU6IHRyLm5hbWUsXG4gICAgICAgICAgICBvcHRpb25zOiB0ci5vcHRpb25zLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHRyLm1ldGFkYXRhLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pIGFzIEFYUEFjdGlvbk1lbnVJdGVtLFxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRTZWNvbmRhcnlNZW51SXRlbXMoKTogUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnZtLmdldFNlY29uZGFyeUFjdGlvbnMoKSkubWFwKCh0cikgPT4gKHtcbiAgICAgIG5hbWU6IHRyLm5hbWUsXG4gICAgICB0aXRsZTogdHIudGl0bGUsXG4gICAgICBpY29uOiB0ci5pY29uLFxuICAgICAgY29sb3I6IHRyLmNvbG9yLFxuICAgICAgZGlzYWJsZWQ6IHRyLmRpc2FibGVkLFxuICAgICAgc2VwYXJhdGVkOiB0ci5zZXBhcmF0ZWQsXG4gICAgICBjb21tYW5kOiB7XG4gICAgICAgIG5hbWU6IHRyLm5hbWUsXG4gICAgICAgIG9wdGlvbnM6IHRyLm9wdGlvbnMsXG4gICAgICAgIG1ldGFkYXRhOiB0ci5tZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgfSkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChjb21tYW5kKSB7XG4gICAgICB0aGlzLnZtLmV4ZWN1dGUoY29tbWFuZCk7XG4gICAgfVxuICB9XG59XG4iLCI8YXhwLXBhZ2UtbGF5b3V0ICp0cmFuc2xhdGU9XCJsZXQgdFwiPlxuICBAaWYgKHZtLmVudGl0eURlZi5jYXRlZ29yeSkge1xuICAgIDxheHAtbGF5b3V0LXN0YXJ0LXNpZGUgaWQ9XCJheHAtZW50aXR5LWNhdGVnb3J5LWRyYXdlclwiPlxuICAgICAgPGF4cC1lbnRpdHktY2F0ZWdvcnlcbiAgICAgICAgaWQ9XCJheHAtZW50aXR5LWNhdGVnb3J5XCJcbiAgICAgICAgY2xhc3M9XCJheC13LTgwXCJcbiAgICAgICAgW3ZtXT1cInZtXCJcbiAgICAgICAgW3NlYXJjaFZhbHVlXT1cImNhdGVnb3J5U2VhcmNoVmFsdWUoKVwiXG4gICAgICA+PC9heHAtZW50aXR5LWNhdGVnb3J5PlxuICAgIDwvYXhwLWxheW91dC1zdGFydC1zaWRlPlxuICB9XG4gIDxheHAtcGFnZS10b29sYmFyIGlkPVwiYXhwLWVudGl0eS10b29sYmFyXCI+XG4gICAgPGF4cC1lbnRpdHktbWFzdGVyLXRvb2xiYXItdmlldyBbdmlld01vZGVsXT1cInZtXCI+PC9heHAtZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXc+XG4gIDwvYXhwLXBhZ2UtdG9vbGJhcj5cbiAgPGF4cC1wYWdlLWNvbnRlbnQgY2xhc3M9XCJheC1vdmVyZmxvdy1hdXRvXCI+XG4gICAgPGF4LWRhdGEtdGFibGVcbiAgICAgIGlkPVwiYXhwLWVudGl0eS10YWJsZVwiXG4gICAgICBbYWxsb3dSZW9yZGVyaW5nXT1cInRydWVcIlxuICAgICAgKG9uQ29sdW1uc09yZGVyQ2hhbmdlZCk9XCJvbkNvbHVtbnNPcmRlckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAjZ3JpZFxuICAgICAgW3Nob3dGb290ZXJdPVwiZmFsc2VcIlxuICAgICAgY2xhc3M9XCJheC1mbGV4LTFcIlxuICAgICAgW3BhZ2luZ109XCJ0cnVlXCJcbiAgICAgIFtmZXRjaERhdGFNb2RlXT1cIidtYW51YWwnXCJcbiAgICAgIFtwYXJlbnRGaWVsZF09XCJ2bS5wYXJlbnRLZXkoKVwiXG4gICAgICBbbG9hZGluZ109XCJ7IGVuYWJsZWQ6IHRydWUsIGFuaW1hdGlvbjogdHJ1ZSB9XCJcbiAgICAgIFtkYXRhU291cmNlXT1cInZtLmRhdGFTb3VyY2VcIlxuICAgICAgKHNlbGVjdGVkUm93c0NoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAob25Sb3dEYkNsaWNrKT1cImhhbmRsZVJvd0RiQ2xpY2soJGV2ZW50KVwiXG4gICAgICAob25Db2x1bW5TaXplQ2hhbmdlZCk9XCJvbkNvbHVtblNpemVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgKG9uUGFnZUNoYW5nZWQpPVwib25QYWdlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAaWYgKHZtLnZpZXcoKS5pbmRleENvbCA9PT0gdHJ1ZSkge1xuICAgICAgICA8YXgtaW5kZXgtY29sdW1uIGlkPVwiYXhwLXRhYmxlLWNvbC1pbmRleFwiIGZpeGVkPVwic3RhcnRcIiBbd2lkdGhdPVwiJzgwcHgnXCIgW3BhZFplcm9dPVwidHJ1ZVwiPjwvYXgtaW5kZXgtY29sdW1uPlxuICAgICAgfVxuICAgICAgQGlmICh2bS5zZWxlY3RlZFNjb3BlQWN0aW9uc0NvdW50KCkpIHtcbiAgICAgICAgPGF4LXNlbGVjdC1jb2x1bW4gaWQ9XCJheHAtdGFibGUtY29sLXNlbGVjdFwiIGZpeGVkPVwic3RhcnRcIiBbd2lkdGhdPVwiJzYwcHgnXCI+PC9heC1zZWxlY3QtY29sdW1uPlxuICAgICAgfVxuICAgICAgQGZvciAoY29sIG9mIHZtLmNvbHVtbnMoKTsgdHJhY2sgY29sLm5hbWUpIHtcbiAgICAgICAgQGlmIChjb2wudmlzaWJsZSkge1xuICAgICAgICAgIDxheHAtd2lkZ2V0LWNvbHVtbi1yZW5kZXJlclxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ2F4cC10YWJsZS1jb2wtJyArIGNvbC5uYW1lXCJcbiAgICAgICAgICAgIFtleHBhbmRIYW5kbGVyXT1cIiRpbmRleCA9PT0gMCAmJiB2bS5wYXJlbnRLZXkoKSA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgICAgICBbY2FwdGlvbl09XCIoY29sLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMpIVwiXG4gICAgICAgICAgICBbbm9kZV09XCJjb2wubm9kZSgpXCJcbiAgICAgICAgICAgIFtjdXN0b21XaWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgID48L2F4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgKGdldENvbW1hbmRSb3dJdGVtcygpLmxlbmd0aCkge1xuICAgICAgICA8YXgtY29tbWFuZC1jb2x1bW5cbiAgICAgICAgICBpZD1cImF4cC10YWJsZS1jb2wtY29tbWFuZHNcIlxuICAgICAgICAgIGZpeGVkPVwiZW5kXCJcbiAgICAgICAgICBbd2lkdGhdPVwiZ2V0Q29tbWFuZFJvd0l0ZW1zKCkubGVuZ3RoICogNjAgKyAncHgnXCJcbiAgICAgICAgICBbaXRlbXNdPVwiZ2V0Q29tbWFuZFJvd0l0ZW1zKClcIlxuICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJoYW5kbGVSb3dDb21tYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgID48L2F4LWNvbW1hbmQtY29sdW1uPlxuICAgICAgfVxuICAgICAgPGF4LWRyb3Bkb3duLWNvbW1hbmQtY29sdW1uXG4gICAgICAgIGlkPVwiYXhwLXRhYmxlLWNvbC1kcm9wZG93bi1jb21tYW5kc1wiXG4gICAgICAgIGZpeGVkPVwiZW5kXCJcbiAgICAgICAgW3dpZHRoXT1cIic2MHB4J1wiXG4gICAgICAgIFtpdGVtc109XCJnZXREcm9wZG93blJvd0l0ZW1zXCJcbiAgICAgICAgKG9uSXRlbUNsaWNrKT1cImhhbmRsZVJvd0NvbW1hbmRDbGljaygkZXZlbnQpXCJcbiAgICAgID48L2F4LWRyb3Bkb3duLWNvbW1hbmQtY29sdW1uPlxuICAgIDwvYXgtZGF0YS10YWJsZT5cbiAgPC9heHAtcGFnZS1jb250ZW50PlxuPC9heHAtcGFnZS1sYXlvdXQ+XG4iXX0="],"names":["i1","i2","i4","i5","i6","i7","i8","i3"],"mappings":"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"}