@acorex/platform 20.3.0-next.0 → 20.3.0-next.10
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.
- package/common/index.d.ts +8 -9
- package/core/index.d.ts +597 -46
- package/fesm2022/acorex-platform-auth.mjs +19 -19
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +111 -163
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +759 -113
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +16 -16
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +518 -95
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +1997 -215
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +86 -79
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs +52 -0
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity.mjs +1650 -916
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +37 -29
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +40 -40
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs → acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs} +5 -5
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-D3VUh8K8.mjs → acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs} +30 -31
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs +101 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BMkhNfF4.mjs → acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs} +7 -7
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BMkhNfF4.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs.map → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs.map → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs.map → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +40 -40
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs} +24 -14
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs → acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs} +2 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs} +23 -8
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs} +23 -8
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +241 -74
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BJtkWusr.mjs → acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs} +5 -5
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs → acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs.map → acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs → acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs.map → acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs → acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs.map → acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs → acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs.map → acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs → acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs.map → acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs → acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs.map → acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-BafU5Lfl.mjs → acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs} +5 -5
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-Cw9WcZze.mjs → acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs} +6 -6
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs} +11 -11
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs → acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs} +6 -5
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-DaR4Nkv4.mjs → acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs} +5 -6
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +9725 -8964
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +25 -25
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/index.d.ts +69 -21
- package/layout/components/index.d.ts +816 -58
- package/layout/designer/index.d.ts +4 -2
- package/layout/entity/index.d.ts +437 -231
- package/package.json +8 -8
- package/widgets/index.d.ts +1806 -732
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D3VUh8K8.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs +0 -101
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-BJtkWusr.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-DeKpl0uK.mjs +0 -84
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-DeKpl0uK.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs +0 -55
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs +0 -76
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CohkI1w1.mjs +0 -55
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CohkI1w1.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-BafU5Lfl.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs +0 -211
- package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-Cw9WcZze.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs +0 -40
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DaR4Nkv4.mjs.map +0 -1
package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.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.1.8\", ngImport: i0, type: AXPEntityCategoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", 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.1.8\", 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 { 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.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 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.1.8\", ngImport: i0, type: AXPEntityMasterToolbarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPEntityMasterToolbarViewComponent, isStandalone: true, selector: \"axp-entity-master-toolbar-view\", inputs: { vm: [\"viewModel\", \"vm\"] }, host: { classAttribute: \"ax-w-full\" }, ngImport: i0, template: \"<!-- <axp-entity-view-toolbar [viewModel]=\\\"vm\\\"></axp-entity-view-toolbar> -->\\n<axp-query-views\\n [views]=\\\"viewQueries()\\\"\\n [selectedView]=\\\"selectedViewQuery()\\\"\\n (selectedViewChange)=\\\"onViewChanged($event)\\\"\\n></axp-query-views>\\n<div class=\\\"ax-flex ax-items-center ax-gap-2 ax-border-b ax-border-light w-full\\\">\\n <!-- <axp-entity-filter-toolbar [viewModel]=\\\"vm\\\"></axp-entity-filter-toolbar> -->\\n <axp-query-filters\\n [filtersDefinitions]=\\\"filtersDefinitions()\\\"\\n [initialFilters]=\\\"initialFilters()\\\"\\n (onFiltersChanged)=\\\"onFiltersChanged($event)\\\"\\n ></axp-query-filters>\\n\\n <div class=\\\"ax-flex ax-items-center ax-gap-1 md:ax-gap-2\\\">\\n <ax-button [iconOnly]=\\\"true\\\" #columnButton [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-table-columns\\\"></i>\\n </ax-button>\\n <ax-popover\\n [adaptivityEnabled]=\\\"true\\\"\\n [offsetY]=\\\"30\\\"\\n [target]=\\\"columnButton\\\"\\n [openOn]=\\\"'toggle'\\\"\\n [closeOn]=\\\"'clickOut'\\\"\\n #popover\\n >\\n <div class=\\\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\\\">\\n <ax-header class=\\\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\\\">\\n {{ '@general:terms.common.columns' | translate | async }}\\n </ax-header>\\n <div class=\\\"ax-py-2 ax-px-4\\\">\\n <axp-query-columns [columns]=\\\"vm.columns()\\\" (columnsChange)=\\\"onColumnsChange($event)\\\"></axp-query-columns>\\n <!-- <axp-list-view-option-columns [viewModel]=\\\"vm\\\"></axp-list-view-option-columns> -->\\n </div>\\n </div>\\n </ax-popover>\\n @if (vm.canSort()) {\\n <ax-button [iconOnly]=\\\"true\\\" [text]=\\\"'Sorts'\\\" #sortButton [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-sort-amount-up\\\"></i>\\n </ax-button>\\n <ax-popover\\n [adaptivityEnabled]=\\\"true\\\"\\n [offsetY]=\\\"10\\\"\\n [target]=\\\"sortButton\\\"\\n [openOn]=\\\"'toggle'\\\"\\n [closeOn]=\\\"'clickOut'\\\"\\n #popover\\n >\\n <div class=\\\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\\\">\\n <ax-header class=\\\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\\\">\\n {{ '@general:terms.common.sorts' | translate | async }}\\n </ax-header>\\n <div class=\\\"ax-py-2 ax-px-4\\\">\\n <!-- <axp-list-view-option-sorting [viewModel]=\\\"vm\\\"></axp-list-view-option-sorting> -->\\n <axp-query-sorts\\n [sortDefinitions]=\\\"sortDefinitions()\\\"\\n (sortQueriesChange)=\\\"onSortQueriesChange($event)\\\"\\n [initialSortQueries]=\\\"sortQueries()\\\"\\n ></axp-query-sorts>\\n </div>\\n </div>\\n </ax-popover>\\n }\\n @if (layoutService.isSmall()) {\\n <ax-button (onClick)=\\\"parent.toggleCategoryDrawer()\\\" [iconOnly]=\\\"true\\\" [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-bars\\\"></i>\\n </ax-button>\\n }\\n </div>\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: 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.1.8\", 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 [views]=\\\"viewQueries()\\\"\\n [selectedView]=\\\"selectedViewQuery()\\\"\\n (selectedViewChange)=\\\"onViewChanged($event)\\\"\\n></axp-query-views>\\n<div class=\\\"ax-flex ax-items-center ax-gap-2 ax-border-b ax-border-light w-full\\\">\\n <!-- <axp-entity-filter-toolbar [viewModel]=\\\"vm\\\"></axp-entity-filter-toolbar> -->\\n <axp-query-filters\\n [filtersDefinitions]=\\\"filtersDefinitions()\\\"\\n [initialFilters]=\\\"initialFilters()\\\"\\n (onFiltersChanged)=\\\"onFiltersChanged($event)\\\"\\n ></axp-query-filters>\\n\\n <div class=\\\"ax-flex ax-items-center ax-gap-1 md:ax-gap-2\\\">\\n <ax-button [iconOnly]=\\\"true\\\" #columnButton [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-table-columns\\\"></i>\\n </ax-button>\\n <ax-popover\\n [adaptivityEnabled]=\\\"true\\\"\\n [offsetY]=\\\"30\\\"\\n [target]=\\\"columnButton\\\"\\n [openOn]=\\\"'toggle'\\\"\\n [closeOn]=\\\"'clickOut'\\\"\\n #popover\\n >\\n <div class=\\\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\\\">\\n <ax-header class=\\\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\\\">\\n {{ '@general:terms.common.columns' | translate | async }}\\n </ax-header>\\n <div class=\\\"ax-py-2 ax-px-4\\\">\\n <axp-query-columns [columns]=\\\"vm.columns()\\\" (columnsChange)=\\\"onColumnsChange($event)\\\"></axp-query-columns>\\n <!-- <axp-list-view-option-columns [viewModel]=\\\"vm\\\"></axp-list-view-option-columns> -->\\n </div>\\n </div>\\n </ax-popover>\\n @if (vm.canSort()) {\\n <ax-button [iconOnly]=\\\"true\\\" [text]=\\\"'Sorts'\\\" #sortButton [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-sort-amount-up\\\"></i>\\n </ax-button>\\n <ax-popover\\n [adaptivityEnabled]=\\\"true\\\"\\n [offsetY]=\\\"10\\\"\\n [target]=\\\"sortButton\\\"\\n [openOn]=\\\"'toggle'\\\"\\n [closeOn]=\\\"'clickOut'\\\"\\n #popover\\n >\\n <div class=\\\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\\\">\\n <ax-header class=\\\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\\\">\\n {{ '@general:terms.common.sorts' | translate | async }}\\n </ax-header>\\n <div class=\\\"ax-py-2 ax-px-4\\\">\\n <!-- <axp-list-view-option-sorting [viewModel]=\\\"vm\\\"></axp-list-view-option-sorting> -->\\n <axp-query-sorts\\n [sortDefinitions]=\\\"sortDefinitions()\\\"\\n (sortQueriesChange)=\\\"onSortQueriesChange($event)\\\"\\n [initialSortQueries]=\\\"sortQueries()\\\"\\n ></axp-query-sorts>\\n </div>\\n </div>\\n </ax-popover>\\n }\\n @if (layoutService.isSmall()) {\\n <ax-button (onClick)=\\\"parent.toggleCategoryDrawer()\\\" [iconOnly]=\\\"true\\\" [color]=\\\"'default'\\\">\\n <i class=\\\"fa-light fa-bars\\\"></i>\\n </ax-button>\\n }\\n </div>\\n</div>\\n\" }]\n }], propDecorators: { vm: [{\n type: Input,\n args: ['viewModel']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcvZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcvZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVMvRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsc0JBQXNCLEdBQ3ZCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFB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S0N2RGhELDQ2RkFzRUEsMkNEN0JJLFlBQVksOEJBQ1osY0FBYyw2WEFDZCxpQkFBaUIscVBBQ2pCLG1CQUFtQiwrQkFDbkIsd0JBQXdCLDhJQUN4QixlQUFlLHdWQUNmLHNCQUFzQix3S0FDdEIsc0JBQXNCLCtJQUN0Qix3QkFBd0I7OzJGQU1mLG1DQUFtQztrQkFyQi9DLFNBQVM7K0JBQ0UsZ0NBQWdDLGlCQUUzQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3FCQUN6QixRQUNLO3dCQUNKLEtBQUssRUFBRSxXQUFXO3FCQUNuQjs4QkF5Qk0sRUFBRTtzQkFEUixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7XG4gIEFYUENvbHVtblF1ZXJ5LFxuICBBWFBGaWx0ZXJEZWZpbml0aW9uLFxuICBBWFBGaWx0ZXJRdWVyeSxcbiAgQVhQU29ydERlZmluaXRpb24sXG4gIEFYUFNvcnRRdWVyeSxcbiAgQVhQVmlld1F1ZXJ5LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQUXVlcnlDb2x1bW5zQ29tcG9uZW50LFxuICBBWFBRdWVyeUZpbHRlcnNDb21wb25lbnQsXG4gIEFYUFF1ZXJ5U29ydHNDb21wb25lbnQsXG4gIEFYUFF1ZXJ5Vmlld3NDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwsIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9lbnRpdHktbWFzdGVyLWxpc3Qtdmlldy9lbnRpdHktbWFzdGVyLWxpc3Qtdmlldy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYUFF1ZXJ5RmlsdGVyc0NvbXBvbmVudCxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhQUXVlcnlTb3J0c0NvbXBvbmVudCxcbiAgICBBWFBRdWVyeVZpZXdzQ29tcG9uZW50LFxuICAgIEFYUFF1ZXJ5Q29sdW1uc0NvbXBvbmVudCxcbiAgXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYXgtdy1mdWxsJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyVG9vbGJhclZpZXdDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgbGF5b3V0U2VydmljZSA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcGFyZW50ID0gaW5qZWN0KEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3Q29tcG9uZW50KTtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemluZyA9IGZhbHNlO1xuICBwcml2YXRlIHBlbmRpbmdJbml0aWFsRmlsdGVycyA9IHRydWU7XG4gIHByaXZhdGUgcGVuZGluZ0luaXRpYWxTb3J0cyA9IHRydWU7XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gUHJlZmVyIHNhdmVkIHNldHRpbmdzICh2aWV3L2NvbHVtbnMvc29ydHMvZmlsdGVycykgaWYgYXZhaWxhYmxlLCB0aGVuIGFwcGx5XG4gICAgYXdhaXQgdGhpcy52bS5zZXRWaWV3KCk7XG4gICAgdGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMuc2V0KHRoaXMudm0uZmlsdGVyc0RlZik7XG4gICAgdGhpcy5pc0luaXRpYWxpemluZyA9IHRydWU7XG4gICAgLy8gdGhpcy5wZW5kaW5nSW5pdGlhbEZpbHRlcnMgPSB0cnVlO1xuICAgIC8vIHRoaXMucGVuZGluZ0luaXRpYWxTb3J0cyA9IHRydWU7XG4gICAgdGhpcy5zZXRJbml0aWFsRmlsdGVyc0Zyb21TZXR0aW5nc09yVmlldygpO1xuICAgIC8vIEVuc3VyZSBpbml0aWFsIGxvYWQgZXZlbiB3aGVuIGZpbHRlcnMvc29ydHMgYXJlIGFic2VudFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0luaXRpYWxpemluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5zY2hlZHVsZUFwcGx5KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBASW5wdXQoJ3ZpZXdNb2RlbCcpXG4gIHB1YmxpYyB2bSE6IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw7XG5cbiAgcHJvdGVjdGVkIGluaXRpYWxGaWx0ZXJzID0gc2lnbmFsPEFYUEZpbHRlclF1ZXJ5W10+KFtdKTtcbiAgcHJvdGVjdGVkIGZpbHRlcnNEZWZpbml0aW9ucyA9IHNpZ25hbDxBWFBGaWx0ZXJEZWZpbml0aW9uW10+KFtdKTtcblxuICBwcm90ZWN0ZWQgdmlld1F1ZXJpZXMgPSBjb21wdXRlZDxBWFBWaWV3UXVlcnlbXT4oKCkgPT5cbiAgICB0aGlzLnZtLnZpZXdzKCkubWFwKCh2KSA9PiAoe1xuICAgICAgbmFtZTogdi5uYW1lLFxuICAgICAgZml4ZWQ6IGZhbHNlLFxuICAgICAgdGl0bGU6IHYudGl0bGUsXG4gICAgICBjb2x1bW5zOiB2LmNvbHVtbnMsXG4gICAgICBjb25kaXRpb25zOiB2LmNvbmRpdGlvbnMubWFwKChjKSA9PiAoe1xuICAgICAgICBmaWVsZDogYy5uYW1lLFxuICAgICAgICBvcGVyYXRvcjogYy5vcGVyYXRvcixcbiAgICAgICAgdmFsdWU6IGMudmFsdWUsXG4gICAgICB9KSksXG4gICAgICBzb3J0czogdi5zb3J0cyxcbiAgICB9KSksXG4gICk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFZpZXdRdWVyeSA9IGNvbXB1dGVkPEFYUFZpZXdRdWVyeT4oKCkgPT4gKHtcbiAgICBuYW1lOiB0aGlzLnZtLnZpZXcoKS5uYW1lLFxuICAgIGZpeGVkOiBmYWxzZSxcbiAgICB0aXRsZTogdGhpcy52bS52aWV3KCkudGl0bGUsXG4gICAgY29sdW1uczogdGhpcy52bS52aWV3KCkuY29sdW1ucyxcbiAgICBjb25kaXRpb25zOiB0aGlzLnZtLnZpZXcoKS5jb25kaXRpb25zLm1hcCgoYykgPT4gKHtcbiAgICAgIGZpZWxkOiBjLm5hbWUsXG4gICAgICBvcGVyYXRvcjogYy5vcGVyYXRvcixcbiAgICAgIHZhbHVlOiBjLnZhbHVlLFxuICAgIH0pKSxcbiAgICBzb3J0czogdGhpcy52bS52aWV3KCkuc29ydHMsXG4gIH0pKTtcblxuICAvLyBEZWJvdW5jZWQgYXBwbHkgdG8gY29hbGVzY2UgbXVsdGlwbGUgVUkgY2hhbmdlcyAoZmlsdGVycy9zb3J0cy9jb2x1bW5zKVxuICBwcml2YXRlIGFwcGx5VGltZXI6IGFueSA9IG51bGw7XG4gIHByaXZhdGUgc2NoZWR1bGVBcHBseSgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5hcHBseVRpbWVyKTtcbiAgICB0aGlzLmFwcGx5VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudm0uYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gICAgfSwgNTApO1xuICB9XG5cbiAgYXN5bmMgb25WaWV3Q2hhbmdlZCh2aWV3OiBBWFBWaWV3UXVlcnkpIHtcbiAgICBhd2FpdCB0aGlzLnZtLnNldFZpZXcodmlldy5uYW1lKTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6aW5nID0gdHJ1ZTtcbiAgICB0aGlzLnBlbmRpbmdJbml0aWFsRmlsdGVycyA9IHRydWU7XG4gICAgdGhpcy5wZW5kaW5nSW5pdGlhbFNvcnRzID0gdHJ1ZTtcbiAgICB0aGlzLnNldEluaXRpYWxGaWx0ZXJzRnJvbVNldHRpbmdzT3JWaWV3KCk7XG4gICAgLy8gRW5zdXJlIGluaXRpYWwgbG9hZCBhZnRlciB2aWV3IGNoYW5nZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0luaXRpYWxpemluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5zY2hlZHVsZUFwcGx5KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICAjZWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAvLyBLZWVwIGRlZmluaXRpb25zIHVwIHRvIGRhdGU7IGluaXRpYWwgZmlsdGVycyBhcmUgc2V0IGV4cGxpY2l0bHkgZnJvbSBzZXR0aW5ncyBvciB2aWV3XG4gICAgdGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMuc2V0KHRoaXMudm0uZmlsdGVyc0RlZik7XG4gIH0pO1xuXG4gIHByaXZhdGUgc2V0SW5pdGlhbEZpbHRlcnNGcm9tU2V0dGluZ3NPclZpZXcoKSB7XG4gICAgY29uc3Qgc2F2ZWQgPSB0aGlzLnZtLmZpbHRlclF1ZXJpZXMoKTtcbiAgICBjb25zdCB2aWV3Q29uZGl0aW9ucyA9IHRoaXMudm0udmlldygpLmNvbmRpdGlvbnMubWFwKChjKSA9PiBjLm5hbWUpO1xuICAgIGlmIChzYXZlZCAmJiBzYXZlZC5sZW5ndGgpIHtcbiAgICAgIHRoaXMuaW5pdGlhbEZpbHRlcnMuc2V0KHNhdmVkLm1hcCgocykgPT4gKHsgLi4ucywgaGlkZGVuOiB2aWV3Q29uZGl0aW9ucy5pbmNsdWRlcyhzLmZpZWxkKSB9KSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluaXRpYWxGaWx0ZXJzLnNldChcbiAgICAgIHRoaXMudm0udmlldygpLmNvbmRpdGlvbnMubWFwKFxuICAgICAgICAoYykgPT5cbiAgICAgICAgICAoe1xuICAgICAgICAgICAgZmllbGQ6IGMubmFtZSxcbiAgICAgICAgICAgIG9wZXJhdG9yOiBjLm9wZXJhdG9yLFxuICAgICAgICAgICAgdmFsdWU6IGMudmFsdWUsXG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgfSkgYXMgYW55LFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgb25GaWx0ZXJzQ2hhbmdlZChmaWx0ZXJzOiBBWFBGaWx0ZXJRdWVyeVtdKSB7XG4gICAgaWYgKHRoaXMuaXNJbml0aWFsaXppbmcgfHwgdGhpcy5wZW5kaW5nSW5pdGlhbEZpbHRlcnMpIHtcbiAgICAgIHRoaXMucGVuZGluZ0luaXRpYWxGaWx0ZXJzID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudm0uZmlsdGVyUXVlcmllcy5zZXQoZmlsdGVycyk7XG4gICAgLy8gUGVyc2lzdCBmaWx0ZXJzIHBlciBtb2R1bGUvZW50aXR5L3ZpZXdcbiAgICB0aGlzLnZtLnNhdmVTZXR0aW5ncygnZmlsdGVycycsIGZpbHRlcnMpO1xuICAgIHRoaXMuc2NoZWR1bGVBcHBseSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNvcnRRdWVyaWVzID0gY29tcHV0ZWQ8QVhQU29ydFF1ZXJ5W10+KCgpID0+XG4gICAgdGhpcy52bVxuICAgICAgLnNvcnRlZEZpZWxkcygpXG4gICAgICAuZmlsdGVyKChzKSA9PiAhIXMuZGlyKVxuICAgICAgLm1hcCgocykgPT4gKHsgbmFtZTogcy5uYW1lLCBkaXI6IHMuZGlyIGFzICdhc2MnIHwgJ2Rlc2MnIH0pKSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgc29ydERlZmluaXRpb25zID0gY29tcHV0ZWQ8QVhQU29ydERlZmluaXRpb25bXT4oKCkgPT5cbiAgICB0aGlzLnZtLnNvcnRhYmxlRmllbGRzKCkubWFwKChzKSA9PiAoe1xuICAgICAgbmFtZTogcy5uYW1lLFxuICAgICAgdGl0bGU6IHMudGl0bGUsXG4gICAgICBkaXI6IHMuZGlyIGFzICdhc2MnIHwgJ2Rlc2MnIHwgdW5kZWZpbmVkLFxuICAgIH0pKSxcbiAgKTtcblxuICBwcm90ZWN0ZWQgb25Tb3J0UXVlcmllc0NoYW5nZShlOiBBWFBTb3J0UXVlcnlbXSkge1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6aW5nIHx8IHRoaXMucGVuZGluZ0luaXRpYWxTb3J0cykge1xuICAgICAgdGhpcy5wZW5kaW5nSW5pdGlhbFNvcnRzID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudm0uc29ydGVkRmllbGRzLnNldChcbiAgICAgIGUubWFwKChzKSA9PiAoe1xuICAgICAgICBuYW1lOiBzLm5hbWUsXG4gICAgICAgIHRpdGxlOiBzLm5hbWUsXG4gICAgICAgIGRpcjogcy5kaXIsXG4gICAgICB9KSksXG4gICAgKTtcbiAgICAvLyBQZXJzaXN0IHNvcnRzIHBlciBtb2R1bGUvZW50aXR5L3ZpZXdcbiAgICB0aGlzLnZtLnNhdmVTZXR0aW5ncygnc29ydHMnLCBlKTtcbiAgICB0aGlzLnNjaGVkdWxlQXBwbHkoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkNvbHVtbnNDaGFuZ2UoY29sdW1uczogQVhQQ29sdW1uUXVlcnlbXSkge1xuICAgIGNvbnN0IGtleU9mID0gKGM6IHsgbmFtZTogc3RyaW5nOyBjb2x1bW4/OiBhbnkgfSkgPT4gYy5jb2x1bW4/Lm9wdGlvbnM/LmRhdGFQYXRoID8/IGMubmFtZTtcblxuICAgIHRoaXMudm0uY29sdW1ucy51cGRhdGUoKHByZXYpID0+IHtcbiAgICAgIGNvbnN0IGJ5S2V5ID0gbmV3IE1hcChwcmV2Lm1hcCgoYykgPT4gW2tleU9mKGMgYXMgYW55KSwgY10pKTtcblxuICAgICAgcmV0dXJuIGNvbHVtbnMubWFwKChuZXdDb2x1bW4pID0+IHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBieUtleS5nZXQoa2V5T2YobmV3Q29sdW1uKSkhO1xuICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKGV4aXN0aW5nLnByb3BlcnR5LCB7XG4gICAgICAgICAgLi4uZXhpc3RpbmcuY29sdW1uLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nLmNvbHVtbi5vcHRpb25zLFxuICAgICAgICAgICAgdmlzaWJsZTogbmV3Q29sdW1uLnZpc2libGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyBQZXJzaXN0IGNvbHVtbiBvcmRlci92aXNpYmlsaXR5XG4gICAgdGhpcy52bS5vbkNvbHVtbnNDaGFuZ2VkKHRoaXMudm0uY29sdW1ucygpKTtcbiAgICAvLyBVc2UgZGVib3VuY2VkIGFwcGx5IHRvIGF2b2lkIHRyaXBsZSByZWZyZXNoIHdoZW4gY29tYmluZWQgd2l0aCBzb3J0cy9maWx0ZXJzXG4gICAgLy8gdGhpcy5zY2hlZHVsZUFwcGx5KCk7XG4gIH1cbn1cbiIsIjwhLS0gPGF4cC1lbnRpdHktdmlldy10b29sYmFyIFt2aWV3TW9kZWxdPVwidm1cIj48L2F4cC1lbnRpdHktdmlldy10b29sYmFyPiAtLT5cbjxheHAtcXVlcnktdmlld3NcbiAgW3ZpZXdzXT1cInZpZXdRdWVyaWVzKClcIlxuICBbc2VsZWN0ZWRWaWV3XT1cInNlbGVjdGVkVmlld1F1ZXJ5KClcIlxuICAoc2VsZWN0ZWRWaWV3Q2hhbmdlKT1cIm9uVmlld0NoYW5nZWQoJGV2ZW50KVwiXG4+PC9heHAtcXVlcnktdmlld3M+XG48ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTIgYXgtYm9yZGVyLWIgYXgtYm9yZGVyLWxpZ2h0IHctZnVsbFwiPlxuICA8IS0tIDxheHAtZW50aXR5LWZpbHRlci10b29sYmFyIFt2aWV3TW9kZWxdPVwidm1cIj48L2F4cC1lbnRpdHktZmlsdGVyLXRvb2xiYXI+IC0tPlxuICA8YXhwLXF1ZXJ5LWZpbHRlcnNcbiAgICBbZmlsdGVyc0RlZmluaXRpb25zXT1cImZpbHRlcnNEZWZpbml0aW9ucygpXCJcbiAgICBbaW5pdGlhbEZpbHRlcnNdPVwiaW5pdGlhbEZpbHRlcnMoKVwiXG4gICAgKG9uRmlsdGVyc0NoYW5nZWQpPVwib25GaWx0ZXJzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgPjwvYXhwLXF1ZXJ5LWZpbHRlcnM+XG5cbiAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0xIG1kOmF4LWdhcC0yXCI+XG4gICAgPGF4LWJ1dHRvbiBbaWNvbk9ubHldPVwidHJ1ZVwiICNjb2x1bW5CdXR0b24gW2NvbG9yXT1cIidkZWZhdWx0J1wiPlxuICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS10YWJsZS1jb2x1bW5zXCI+PC9pPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIDxheC1wb3BvdmVyXG4gICAgICBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiXG4gICAgICBbb2Zmc2V0WV09XCIzMFwiXG4gICAgICBbdGFyZ2V0XT1cImNvbHVtbkJ1dHRvblwiXG4gICAgICBbb3Blbk9uXT1cIid0b2dnbGUnXCJcbiAgICAgIFtjbG9zZU9uXT1cIidjbGlja091dCdcIlxuICAgICAgI3BvcG92ZXJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbGlnaHRlc3Qtc3VyZmFjZSBheC1zaGFkb3ctbWQgYXgtYm9yZGVyIG1kOmF4LXctNzIgYXgtdy1mdWxsIGF4LXJvdW5kZWQtbWRcIj5cbiAgICAgICAgPGF4LWhlYWRlciBjbGFzcz1cImF4LWJvcmRlci1iIGF4LWxpZ2h0ZXItc3VyZmFjZSBheC1yb3VuZGVkLXQtbWQgYXgtcC00IGF4LWZvbnQtYm9sZFwiPlxuICAgICAgICAgIHt7ICdAZ2VuZXJhbDp0ZXJtcy5jb21tb24uY29sdW1ucycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICA8L2F4LWhlYWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXB5LTIgYXgtcHgtNFwiPlxuICAgICAgICAgIDxheHAtcXVlcnktY29sdW1ucyBbY29sdW1uc109XCJ2bS5jb2x1bW5zKClcIiAoY29sdW1uc0NoYW5nZSk9XCJvbkNvbHVtbnNDaGFuZ2UoJGV2ZW50KVwiPjwvYXhwLXF1ZXJ5LWNvbHVtbnM+XG4gICAgICAgICAgPCEtLSA8YXhwLWxpc3Qtdmlldy1vcHRpb24tY29sdW1ucyBbdmlld01vZGVsXT1cInZtXCI+PC9heHAtbGlzdC12aWV3LW9wdGlvbi1jb2x1bW5zPiAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2F4LXBvcG92ZXI+XG4gICAgQGlmICh2bS5jYW5Tb3J0KCkpIHtcbiAgICAgIDxheC1idXR0b24gW2ljb25Pbmx5XT1cInRydWVcIiBbdGV4dF09XCInU29ydHMnXCIgI3NvcnRCdXR0b24gW2NvbG9yXT1cIidkZWZhdWx0J1wiPlxuICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXNvcnQtYW1vdW50LXVwXCI+PC9pPlxuICAgICAgPC9heC1idXR0b24+XG4gICAgICA8YXgtcG9wb3ZlclxuICAgICAgICBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtvZmZzZXRZXT1cIjEwXCJcbiAgICAgICAgW3RhcmdldF09XCJzb3J0QnV0dG9uXCJcbiAgICAgICAgW29wZW5Pbl09XCIndG9nZ2xlJ1wiXG4gICAgICAgIFtjbG9zZU9uXT1cIidjbGlja091dCdcIlxuICAgICAgICAjcG9wb3ZlclxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGlnaHRlc3Qtc3VyZmFjZSBheC1zaGFkb3ctbWQgYXgtYm9yZGVyIG1kOmF4LXctNzIgYXgtdy1mdWxsIGF4LXJvdW5kZWQtbWRcIj5cbiAgICAgICAgICA8YXgtaGVhZGVyIGNsYXNzPVwiYXgtYm9yZGVyLWIgYXgtbGlnaHRlci1zdXJmYWNlIGF4LXJvdW5kZWQtdC1tZCBheC1wLTQgYXgtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICB7eyAnQGdlbmVyYWw6dGVybXMuY29tbW9uLnNvcnRzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgPC9heC1oZWFkZXI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXB5LTIgYXgtcHgtNFwiPlxuICAgICAgICAgICAgPCEtLSA8YXhwLWxpc3Qtdmlldy1vcHRpb24tc29ydGluZyBbdmlld01vZGVsXT1cInZtXCI+PC9heHAtbGlzdC12aWV3LW9wdGlvbi1zb3J0aW5nPiAtLT5cbiAgICAgICAgICAgIDxheHAtcXVlcnktc29ydHNcbiAgICAgICAgICAgICAgW3NvcnREZWZpbml0aW9uc109XCJzb3J0RGVmaW5pdGlvbnMoKVwiXG4gICAgICAgICAgICAgIChzb3J0UXVlcmllc0NoYW5nZSk9XCJvblNvcnRRdWVyaWVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICBbaW5pdGlhbFNvcnRRdWVyaWVzXT1cInNvcnRRdWVyaWVzKClcIlxuICAgICAgICAgICAgPjwvYXhwLXF1ZXJ5LXNvcnRzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXgtcG9wb3Zlcj5cbiAgICB9XG4gICAgQGlmIChsYXlvdXRTZXJ2aWNlLmlzU21hbGwoKSkge1xuICAgICAgPGF4LWJ1dHRvbiAob25DbGljayk9XCJwYXJlbnQudG9nZ2xlQ2F0ZWdvcnlEcmF3ZXIoKVwiIFtpY29uT25seV09XCJ0cnVlXCIgW2NvbG9yXT1cIidkZWZhdWx0J1wiPlxuICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWJhcnNcIj48L2k+XG4gICAgICA8L2F4LWJ1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","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, 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 { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutStartSideComponent } from '@acorex/platform/layout/components';\nimport { AXPWidgetsModule } from '@acorex/platform/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/builder\";\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.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.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 }\n ngAfterViewInit() {\n this.vm.setView();\n }\n // protected closeFiltersDrawer(e: AXDrawerComponent, collapsed: boolean) {\n // if (collapsed) {\n // e.close();\n // this.vm.discardFilters();\n // }\n // }\n // handleChangeSearchValue(e: AXValueChangedEvent) {\n // if (e.isUserInteraction) {\n // this.vm.applyInlineFilter(e.value);\n // }\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 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';\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 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.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.1.8\", ngImport: i0, type: AXPEntityMasterListViewComponent, deps: [{ token: i1.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", 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>\\n <axp-entity-category class=\\\"ax-w-80\\\" [vm]=\\\"vm\\\" [searchValue]=\\\"categorySearchValue()\\\"></axp-entity-category>\\n </axp-layout-start-side>\\n }\\n <axp-page-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 [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 fixed=\\\"start\\\" [width]=\\\"'80px'\\\" [padZero]=\\\"true\\\"></ax-index-column>\\n }\\n @if (vm.selectedScopeActionsCount()) {\\n <ax-select-column 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 [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 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 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 AXPLayoutBuilderModule }, { 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.1.8\", 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 AXPLayoutBuilderModule,\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>\\n <axp-entity-category class=\\\"ax-w-80\\\" [vm]=\\\"vm\\\" [searchValue]=\\\"categorySearchValue()\\\"></axp-entity-category>\\n </axp-layout-start-side>\\n }\\n <axp-page-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 [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 fixed=\\\"start\\\" [width]=\\\"'80px'\\\" [padZero]=\\\"true\\\"></ax-index-column>\\n }\\n @if (vm.selectedScopeActionsCount()) {\\n <ax-select-column 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 [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 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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS90aGVtZXMvZGVmYXVsdC9zcmMvbGliL2xheW91dHMvZW50aXR5LWxheW91dHMvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcvZW50aXR5LW1hc3Rlci1saXN0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUdMLGlCQUFpQixHQUtsQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNE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QUFFO3dCQUNGLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLEVBQUU7d0JBQ0YsbUNBQW1DO3dCQUNuQyxFQUFFO3dCQUNGLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1QixzQkFBc0I7d0JBQ3RCLGdDQUFnQzt3QkFDaEMsMEJBQTBCO3FCQUMzQixhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsa0NBQWtDO3lCQUM5QztxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQWN0aW9uU2hlZXRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYWN0aW9uLXNoZWV0JztcbmltcG9ydCB7XG4gIEFYQ29sdW1uc09yZGVyQ2hhbmdlZEV2ZW50LFxuICBBWERhdGFUYWJsZUNvbXBvbmVudCxcbiAgQVhEYXRhVGFibGVNb2R1bGUsXG4gIEFYRGF0YVRhYmxlUm93RGJDbGljayxcbiAgQVhSb3dDb21tYW5kSXRlbSxcbiAgQVhSb3dDb21tYW5kSXRlbUNsaWNrRXZlbnQsXG4gIG9uQ29sdW1uU2l6ZUNoYW5nZWRFdmVudCxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RhdGEtdGFibGUnO1xuaW1wb3J0IHsgQVhEcmF3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJhd2VyJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEYXRhUGFnZXJDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0YS1wYWdlcic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgdHJhbnNsYXRlU3luYyB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBBdXRoTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsIEFYUFRoZW1lTGF5b3V0U3RhcnRTaWRlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldHNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dpZGdldHMnO1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEJyZWFkY3J1bWJJdGVtLCBBWFBFeGVjdXRlQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBQYWdlTGF5b3V0QmFzZSwgQVhQUGFnZUxheW91dEJhc2VDb21wb25lbnQsIEFYUFBhZ2VMYXlvdXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC92aWV3cyc7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQRW50aXR5Q2F0ZWdvcnlDb21wb25lbnQgfSBmcm9tICcuLi9lbnRpdHktY2F0ZWdvcnkvZW50aXR5LWNhdGVnb3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJUb29sYmFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2VudGl0eS1tYXN0ZXItdG9vbGJhci12aWV3L2VudGl0eS1tYXN0ZXItdG9vbGJhci12aWV3LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJ2VudGl0eS1tYXN0ZXItbGlzdC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2VudGl0eS1tYXN0ZXItbGlzdC12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIHNlbGVjdG9yOiAnYXhwLWVudGl0eS1tYXN0ZXItbGlzdCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEJhZGdlTW9kdWxlLFxuICAgIEFYRHJvcGRvd25Nb2R1bGUsXG4gICAgQVhQb3BvdmVyTW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgICBBWEFjdGlvblNoZWV0TW9kdWxlLFxuICAgIEFYRHJhd2VyTW9kdWxlLFxuICAgIEFYRGlhbG9nTW9kdWxlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhUb29sdGlwTW9kdWxlLFxuICAgIEFYQnJlYWRjcnVtYnNNb2R1bGUsXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWERhdGFUYWJsZU1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICBBWFBXaWRnZXRzTW9kdWxlLFxuICAgIEFYUEF1dGhNb2R1bGUsXG4gICAgLy9cbiAgICBBWFBFbnRpdHlNYXN0ZXJUb29sYmFyVmlld0NvbXBvbmVudCxcbiAgICAvL1xuICAgIEFYUFBhZ2VMYXlvdXRDb21wb25lbnQsXG4gICAgQVhQVGhlbWVMYXlvdXRCbG9ja0NvbXBvbmVudCxcbiAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICAgIEFYUFRoZW1lTGF5b3V0U3RhcnRTaWRlQ29tcG9uZW50LFxuICAgIEFYUEVudGl0eUNhdGVnb3J5Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBQYWdlTGF5b3V0QmFzZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld0NvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFBhZ2VMYXlvdXRCYXNlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBhY3RpdmVSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHZtID0gdGhpcy5hY3RpdmVSb3V0ZS5zbmFwc2hvdC5kYXRhWyd2bSddIGFzIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw7XG5cbiAgLy9cbiAgcHJvdGVjdGVkIHN0b3JlID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gIC8vXG4gIHByb3RlY3RlZCBzZWFyY2hCYXJTaG93biA9IHNpZ25hbCh0cnVlKTtcbiAgcHJvdGVjdGVkIGFjdGl2ZUVuZFNpZGVWaWV3ID0gc2lnbmFsPCdjb2x1bW4nIHwgJ2ZpbHRlcicgfCAnc29ydCc+KCdjb2x1bW4nKTtcblxuICBwcm90ZWN0ZWQgY2F0ZWdvcnlTZWFyY2hWYWx1ZSA9IHNpZ25hbCgnJyk7XG5cbiAgLy8gQFZpZXdDaGlsZCgnZ3JpZCcsIHsgc3RhdGljOiB0cnVlfSkgZ3JpZDogQVhEYXRhVGFibGVDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBncmlkID0gdmlld0NoaWxkPEFYRGF0YVRhYmxlQ29tcG9uZW50PignZ3JpZCcpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBwbGF0Zm9ybTogQVhQbGF0Zm9ybSkge1xuICAgIHN1cGVyKCk7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmdyaWQoKSkge1xuICAgICAgICB0aGlzLmdyaWQoKSEuc2VsZWN0ZWRSb3dzID0gdGhpcy52bS5zZWxlY3RlZEl0ZW1zKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLnZtLmV2ZW50cyQuc3Vic2NyaWJlKGFzeW5jIChlKSA9PiB7XG4gICAgICBjb25zdCByZWZyZXNoVGFyZ2V0SWQgPSBlLm1ldGE/LnJlZnJlc2hUYXJnZXRJZDtcbiAgICAgIGlmIChlLmFjdGlvbiA9PSAncmVmcmVzaCcpIHtcbiAgICAgICAgaWYgKHJlZnJlc2hUYXJnZXRJZCkge1xuICAgICAgICAgIHRoaXMuZ3JpZCgpPy5yZWZyZXNoSXRlbUNoaWxkcmVuKHJlZnJlc2hUYXJnZXRJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5ncmlkKCk/LnJlZnJlc2goe1xuICAgICAgICAgICAgcmVzZXQ6IGZhbHNlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy52bS5zZXRWaWV3KCk7XG4gIH1cblxuICAvLyBwcm90ZWN0ZWQgY2xvc2VGaWx0ZXJzRHJhd2VyKGU6IEFYRHJhd2VyQ29tcG9uZW50LCBjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcbiAgLy8gICBpZiAoY29sbGFwc2VkKSB7XG4gIC8vICAgICBlLmNsb3NlKCk7XG4gIC8vICAgICB0aGlzLnZtLmRpc2NhcmRGaWx0ZXJzKCk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8gaGFuZGxlQ2hhbmdlU2VhcmNoVmFsdWUoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAvLyAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gIC8vICAgICB0aGlzLnZtLmFwcGx5SW5saW5lRmlsdGVyKGUudmFsdWUpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIHByb3RlY3RlZCBvbkNvbHVtblNpemVDaGFuZ2VkKGU6IG9uQ29sdW1uU2l6ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uICYmIGUudHlwZSA9PT0gJ2VuZCcpIHtcbiAgICAgIHRoaXMudm0uc2F2ZVNldHRpbmdzKCdjb2x1bW5TaXplcycsIGUuZGF0YSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uUGFnZUNoYW5nZWQoZTogQVhEYXRhUGFnZXJDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3QgcGFnZVNpemVDaGFuZ2VkID0gZS50YWtlICE9IHRoaXMudm0uZGF0YVNvdXJjZS5wYWdlU2l6ZTtcbiAgICAgIGlmIChwYWdlU2l6ZUNoYW5nZWQpIHtcbiAgICAgICAgdGhpcy52bS5zYXZlU2V0dGluZ3MoJ3BhZ2VTaXplJywgZS50YWtlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Db2x1bW5zT3JkZXJDaGFuZ2VkKGU6IEFYQ29sdW1uc09yZGVyQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMudm0ub25Db2x1bW5zT3JkZXJDaGFuZ2VkKGUuZGF0YS5ldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRyb3Bkb3duUm93SXRlbXMocm93RGF0YTogYW55KTogUHJvbWlzZTxBWFJvd0NvbW1hbmRJdGVtW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMudm0uc2Vjb25kYXJ5Um93QWN0aW9ucyhyb3dEYXRhKSkubWFwKChjKSA9PiAoe1xuICAgICAgaWNvbjogYy5pY29uLFxuICAgICAgbmFtZTogYy5uYW1lLFxuICAgICAgdGV4dDogYy50aXRsZSxcbiAgICAgIGNvbG9yOiBjLmNvbG9yLFxuICAgICAgZGlzYWJsZWQ6IGMuZGlzYWJsZWQsXG4gICAgICBkZWZhdWx0OiBjLmRlZmF1bHQsXG4gICAgfSkpIGFzIEFYUm93Q29tbWFuZEl0ZW1bXTtcbiAgfVxuXG4gIHByaXZhdGUgY29tbWFuZFJvd0l0ZW1zID0gY29tcHV0ZWQ8QVhSb3dDb21tYW5kSXRlbVtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudm0ucHJpbWFyeVJvd0FjdGlvbnMoKS5tYXAoKGMpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGljb246IGMuaWNvbixcbiAgICAgICAgbmFtZTogYy5uYW1lLFxuICAgICAgICB0ZXh0OiB0cmFuc2xhdGVTeW5jKGMudGl0bGUpLFxuICAgICAgICBjb2xvcjogYy5jb2xvcixcbiAgICAgICAgZGlzYWJsZWQ6IGMuZGlzYWJsZWQsXG4gICAgICAgIGRlZmF1bHQ6IGMuZGVmYXVsdCxcbiAgICAgIH0gYXMgQVhSb3dDb21tYW5kSXRlbTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XG4gICAgY29uc3QgYWxsSXRlbXMgPSBbLi4udGhpcy5jb21tYW5kUm93SXRlbXMoKSwgLi4uKGF3YWl0IHRoaXMuZHJvcGRvd25Sb3dJdGVtcyhlLmRhdGEpKV07XG4gICAgLy8gY29uc3QgZGVmYXVsdEFjdGlvbiA9IGFsbEl0ZW1zLmZpbmQoKGMpID0+IChjIGFzIGFueSkuZGVmYXVsdCkgfHwgYWxsSXRlbXNbMF07XG5cbiAgICBjb25zdCBkZWZhdWx0QWN0aW9uID0gYWxsSXRlbXMuZmluZCgoYykgPT4ge1xuICAgICAgY29uc3QgY29tbWFuZE5hbWUgPSBjLm5hbWUuc3BsaXQoJyYnKVswXTtcbiAgICAgIHJldHVybiAoYyBhcyBhbnkpLmRlZmF1bHQgfHwgY29tbWFuZE5hbWUgPT09ICdvcGVuLWVudGl0eSc7XG4gICAgfSk7XG5cbiAgICBpZiAoIWRlZmF1bHRBY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkOiBBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudCA9IHtcbiAgICAgIGNvbXBvbmVudDogZS5jb21wb25lbnQsXG4gICAgICBuYW1lOiBkZWZhdWx0QWN0aW9uLm5hbWUsXG4gICAgICBkYXRhOiBlLmRhdGEsXG4gICAgfTtcbiAgICB0aGlzLmhhbmRsZVJvd0NvbW1hbmRDbGljayhkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREcm9wZG93blJvd0l0ZW1zID0gKHJvd0RhdGE6IHVua25vd24pOiBQcm9taXNlPEFYUm93Q29tbWFuZEl0ZW1bXT4gPT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5kcm9wZG93blJvd0l0ZW1zKHJvd0RhdGEpKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0Q29tbWFuZFJvd0l0ZW1zID0gKCk6IEFYUm93Q29tbWFuZEl0ZW1bXSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29tbWFuZFJvd0l0ZW1zKCk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVJvd0NvbW1hbmRDbGljayhlOiBBWFJvd0NvbW1hbmRJdGVtQ2xpY2tFdmVudCkge1xuICAgIHRoaXMudm0uZXhlY3V0ZUNvbW1hbmQoZS5uYW1lLCBlLmRhdGEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNlbGVjdGVkUm93c0NoYW5nZShyb3dzOiB1bmtub3duW10pIHtcbiAgICB0aGlzLnZtLnNlbGVjdGVkSXRlbXMuc2V0KHJvd3MpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1ha2VSZXNwb25zaXZlPHQ+KHZhbHVlOiB0KTogdCB8IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVTaWRlQmFyKHNpZGVCYXI/OiAnY29sdW1uJyB8ICdmaWx0ZXInIHwgJ3NvcnQnKSB7XG4gICAgdGhpcy50b2dnbGVFbmRTaWRlKCk7XG4gICAgaWYgKHNpZGVCYXIpIHtcbiAgICAgIHRoaXMuYWN0aXZlRW5kU2lkZVZpZXcuc2V0KHNpZGVCYXIpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVTZWFyY2hCYXIoKSB7XG4gICAgdGhpcy5zZWFyY2hCYXJTaG93bi51cGRhdGUoKHYpID0+ICF2KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSZXNldENsaWNrKHNpZGVCYXI6ICdmaWx0ZXInIHwgJ3NvcnQnIHwgJ2NvbHVtbicpIHtcbiAgICBzd2l0Y2ggKHNpZGVCYXIpIHtcbiAgICAgIGNhc2UgJ2ZpbHRlcic6IHtcbiAgICAgICAgdGhpcy52bS5yZXNldEZpbHRlcnMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdzb3J0Jzoge1xuICAgICAgICB0aGlzLnZtLnJlc2V0U29ydHMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdjb2x1bW4nOiB7XG4gICAgICAgIHRoaXMudm0ucmVzZXRDb2x1bW5zKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHByb3RlY3RlZCBoYW5kbGVEaXNjYXJkQ2xpY2soc2lkZUJhcjogJ2ZpbHRlcicgfCAnc29ydCcgfCAnY29sdW1uJykge1xuICAvLyAgIHN3aXRjaCAoc2lkZUJhcikge1xuICAvLyAgICAgY2FzZSAnZmlsdGVyJzoge1xuICAvLyAgICAgICB0aGlzLnZtLmRpc2NhcmRGaWx0ZXJzKCk7XG4gIC8vICAgICAgIGJyZWFrO1xuICAvLyAgICAgfVxuICAvLyAgICAgY2FzZSAnc29ydCc6IHtcbiAgLy8gICAgICAgdGhpcy52bS5yZXNldFNvcnRzKCk7XG4gIC8vICAgICAgIGJyZWFrO1xuICAvLyAgICAgfVxuICAvLyAgICAgY2FzZSAnY29sdW1uJzoge1xuICAvLyAgICAgICB0aGlzLnZtLnJlc2V0Q29sdW1ucygpO1xuICAvLyAgICAgICBicmVhaztcbiAgLy8gICAgIH1cbiAgLy8gICB9XG4gIC8vIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQXBwbHlDbGljayhzaWRlQmFyOiAnZmlsdGVyJyB8ICdzb3J0JyB8ICdjb2x1bW4nKSB7XG4gICAgdGhpcy52bS5hcHBseUZpbHRlckFuZFNvcnQoKTtcbiAgICB0aGlzLnRvZ2dsZUVuZFNpZGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudm0uZGVzdHJveSgpO1xuICB9XG5cbiAgdG9nZ2xlQ2F0ZWdvcnlEcmF3ZXIoKSB7XG4gICAgdGhpcy50b2dnbGVTdGFydFNpZGUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFBhZ2VUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZtLnRpdGxlKCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRQYWdlRGVzY3JpcHRpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMudm0uZGVzY3JpcHRpb24oKTtcbiAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBvdmVycmlkZSBnZXRQYWdlQnJlYWRjcnVtYnMoKTogQVhQQnJlYWRjcnVtYkl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMudm0uYmVhcmRjcnVtYnMoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldFByaW1hcnlNZW51SXRlbXMoKTogUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnZtLmdldFByaW1hcnlBY3Rpb25zKCkpLm1hcChcbiAgICAgICh0cikgPT5cbiAgICAgICAgKHtcbiAgICAgICAgICBuYW1lOiB0ci5uYW1lLFxuICAgICAgICAgIHRpdGxlOiB0ci50aXRsZSxcbiAgICAgICAgICBpY29uOiB0ci5pY29uLFxuICAgICAgICAgIGNvbG9yOiB0ci5jb2xvcixcbiAgICAgICAgICBkaXNhYmxlZDogdHIuZGlzYWJsZWQsXG4gICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgbmFtZTogdHIubmFtZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHRyLm9wdGlvbnMsXG4gICAgICAgICAgICBtZXRhZGF0YTogdHIubWV0YWRhdGEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSkgYXMgQVhQQWN0aW9uTWVudUl0ZW0sXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldFNlY29uZGFyeU1lbnVJdGVtcygpOiBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMudm0uZ2V0U2Vjb25kYXJ5QWN0aW9ucygpKS5tYXAoKHRyKSA9PiAoe1xuICAgICAgbmFtZTogdHIubmFtZSxcbiAgICAgIHRpdGxlOiB0ci50aXRsZSxcbiAgICAgIGljb246IHRyLmljb24sXG4gICAgICBjb2xvcjogdHIuY29sb3IsXG4gICAgICBkaXNhYmxlZDogdHIuZGlzYWJsZWQsXG4gICAgICBzZXBhcmF0ZWQ6IHRyLnNlcGFyYXRlZCxcbiAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgbmFtZTogdHIubmFtZSxcbiAgICAgICAgb3B0aW9uczogdHIub3B0aW9ucyxcbiAgICAgICAgbWV0YWRhdGE6IHRyLm1ldGFkYXRhLFxuICAgICAgfSxcbiAgICB9KSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBleGVjdXRlKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNvbW1hbmQpIHtcbiAgICAgIHRoaXMudm0uZXhlY3V0ZShjb21tYW5kKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxheHAtcGFnZS1sYXlvdXQgKnRyYW5zbGF0ZT1cImxldCB0XCI+XG4gIEBpZiAodm0uZW50aXR5RGVmLmNhdGVnb3J5KSB7XG4gICAgPGF4cC1sYXlvdXQtc3RhcnQtc2lkZT5cbiAgICAgIDxheHAtZW50aXR5LWNhdGVnb3J5IGNsYXNzPVwiYXgtdy04MFwiIFt2bV09XCJ2bVwiIFtzZWFyY2hWYWx1ZV09XCJjYXRlZ29yeVNlYXJjaFZhbHVlKClcIj48L2F4cC1lbnRpdHktY2F0ZWdvcnk+XG4gICAgPC9heHAtbGF5b3V0LXN0YXJ0LXNpZGU+XG4gIH1cbiAgPGF4cC1wYWdlLXRvb2xiYXI+XG4gICAgPGF4cC1lbnRpdHktbWFzdGVyLXRvb2xiYXItdmlldyBbdmlld01vZGVsXT1cInZtXCI+PC9heHAtZW50aXR5LW1hc3Rlci10b29sYmFyLXZpZXc+XG4gIDwvYXhwLXBhZ2UtdG9vbGJhcj5cbiAgPGF4cC1wYWdlLWNvbnRlbnQgY2xhc3M9XCJheC1vdmVyZmxvdy1hdXRvXCI+XG4gICAgPGF4LWRhdGEtdGFibGVcbiAgICAgIFthbGxvd1Jlb3JkZXJpbmddPVwidHJ1ZVwiXG4gICAgICAob25Db2x1bW5zT3JkZXJDaGFuZ2VkKT1cIm9uQ29sdW1uc09yZGVyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICNncmlkXG4gICAgICBbc2hvd0Zvb3Rlcl09XCJmYWxzZVwiXG4gICAgICBjbGFzcz1cImF4LWZsZXgtMVwiXG4gICAgICBbcGFnaW5nXT1cInRydWVcIlxuICAgICAgW2ZldGNoRGF0YU1vZGVdPVwiJ21hbnVhbCdcIlxuICAgICAgW3BhcmVudEZpZWxkXT1cInZtLnBhcmVudEtleSgpXCJcbiAgICAgIFtsb2FkaW5nXT1cInsgZW5hYmxlZDogdHJ1ZSwgYW5pbWF0aW9uOiB0cnVlIH1cIlxuICAgICAgW2RhdGFTb3VyY2VdPVwidm0uZGF0YVNvdXJjZVwiXG4gICAgICAoc2VsZWN0ZWRSb3dzQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkUm93c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChvblJvd0RiQ2xpY2spPVwiaGFuZGxlUm93RGJDbGljaygkZXZlbnQpXCJcbiAgICAgIChvbkNvbHVtblNpemVDaGFuZ2VkKT1cIm9uQ29sdW1uU2l6ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAob25QYWdlQ2hhbmdlZCk9XCJvblBhZ2VDaGFuZ2VkKCRldmVudClcIlxuICAgID5cbiAgICAgIEBpZiAodm0udmlldygpLmluZGV4Q29sID09PSB0cnVlKSB7XG4gICAgICAgIDxheC1pbmRleC1jb2x1bW4gZml4ZWQ9XCJzdGFydFwiIFt3aWR0aF09XCInODBweCdcIiBbcGFkWmVyb109XCJ0cnVlXCI+PC9heC1pbmRleC1jb2x1bW4+XG4gICAgICB9XG4gICAgICBAaWYgKHZtLnNlbGVjdGVkU2NvcGVBY3Rpb25zQ291bnQoKSkge1xuICAgICAgICA8YXgtc2VsZWN0LWNvbHVtbiBmaXhlZD1cInN0YXJ0XCIgW3dpZHRoXT1cIic2MHB4J1wiPjwvYXgtc2VsZWN0LWNvbHVtbj5cbiAgICAgIH1cbiAgICAgIEBmb3IgKGNvbCBvZiB2bS5jb2x1bW5zKCk7IHRyYWNrIGNvbC5uYW1lKSB7XG4gICAgICAgIEBpZiAoY29sLnZpc2libGUpIHtcbiAgICAgICAgICA8YXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXJcbiAgICAgICAgICAgIFtleHBhbmRIYW5kbGVyXT1cIiRpbmRleCA9PT0gMCAmJiB2bS5wYXJlbnRLZXkoKSA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgICAgICBbY2FwdGlvbl09XCIoY29sLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMpIVwiXG4gICAgICAgICAgICBbbm9kZV09XCJjb2wubm9kZSgpXCJcbiAgICAgICAgICAgIFtjdXN0b21XaWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICAgID48L2F4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgKGdldENvbW1hbmRSb3dJdGVtcygpLmxlbmd0aCkge1xuICAgICAgICA8YXgtY29tbWFuZC1jb2x1bW5cbiAgICAgICAgICBmaXhlZD1cImVuZFwiXG4gICAgICAgICAgW3dpZHRoXT1cImdldENvbW1hbmRSb3dJdGVtcygpLmxlbmd0aCAqIDYwICsgJ3B4J1wiXG4gICAgICAgICAgW2l0ZW1zXT1cImdldENvbW1hbmRSb3dJdGVtcygpXCJcbiAgICAgICAgICAob25JdGVtQ2xpY2spPVwiaGFuZGxlUm93Q29tbWFuZENsaWNrKCRldmVudClcIlxuICAgICAgICA+PC9heC1jb21tYW5kLWNvbHVtbj5cbiAgICAgIH1cbiAgICAgIDxheC1kcm9wZG93bi1jb21tYW5kLWNvbHVtblxuICAgICAgICBmaXhlZD1cImVuZFwiXG4gICAgICAgIFt3aWR0aF09XCInNjBweCdcIlxuICAgICAgICBbaXRlbXNdPVwiZ2V0RHJvcGRvd25Sb3dJdGVtc1wiXG4gICAgICAgIChvbkl0ZW1DbGljayk9XCJoYW5kbGVSb3dDb21tYW5kQ2xpY2soJGV2ZW50KVwiXG4gICAgICA+PC9heC1kcm9wZG93bi1jb21tYW5kLWNvbHVtbj5cbiAgICA8L2F4LWRhdGEtdGFibGU+XG4gIDwvYXhwLXBhZ2UtY29udGVudD5cbjwvYXhwLXBhZ2UtbGF5b3V0PlxuIl19"],"names":["i1","i2","i4","i5","i6","i7","i8","i3"],"mappings":"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"}
|
package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as i3 from '@acorex/components/button';
|
|
2
|
+
import { AXButtonModule } from '@acorex/components/button';
|
|
3
|
+
import * as i2 from '@acorex/components/decorators';
|
|
4
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
5
|
+
import { AXDialogModule } from '@acorex/components/dialog';
|
|
6
|
+
import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
7
|
+
import * as i6 from '@acorex/components/dropdown-button';
|
|
8
|
+
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
9
|
+
import * as i1 from '@acorex/components/form';
|
|
10
|
+
import { AXFormModule } from '@acorex/components/form';
|
|
11
|
+
import * as i5 from '@acorex/components/label';
|
|
12
|
+
import { AXLabelModule } from '@acorex/components/label';
|
|
13
|
+
import * as i4 from '@acorex/components/loading';
|
|
14
|
+
import { AXLoadingModule } from '@acorex/components/loading';
|
|
15
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
|
16
|
+
import { AXTabsModule } from '@acorex/components/tabs';
|
|
17
|
+
import { AXTooltipModule } from '@acorex/components/tooltip';
|
|
18
|
+
import * as i10 from '@acorex/core/translation';
|
|
19
|
+
import { AXTranslationModule } from '@acorex/core/translation';
|
|
20
|
+
import { AXValidationModule } from '@acorex/core/validation';
|
|
21
|
+
import { AXPGridLayoutDirective } from '@acorex/platform/common';
|
|
22
|
+
import * as i7 from '@acorex/platform/layout/builder';
|
|
23
|
+
import { AXPWidgetContainerComponent, AXPPageStatus, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
|
24
|
+
import * as i1$1 from '@acorex/platform/layout/components';
|
|
25
|
+
import { AXPComponentSlotModule } from '@acorex/platform/layout/components';
|
|
26
|
+
import { AXPWidgetsModule } from '@acorex/platform/widgets';
|
|
27
|
+
import { AXPWorkflowService } from '@acorex/platform/workflow';
|
|
28
|
+
import * as i1$2 from '@angular/common';
|
|
29
|
+
import { CommonModule } from '@angular/common';
|
|
30
|
+
import * as i0 from '@angular/core';
|
|
31
|
+
import { inject, viewChild, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
32
|
+
import { FormsModule } from '@angular/forms';
|
|
33
|
+
|
|
34
|
+
class AXPEntityMasterModifyViewComponent extends AXBasePageComponent {
|
|
35
|
+
constructor() {
|
|
36
|
+
super(...arguments);
|
|
37
|
+
this.workflow = inject(AXPWorkflowService);
|
|
38
|
+
this.container = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: "container" }] : []));
|
|
39
|
+
}
|
|
40
|
+
ngAfterViewInit() {
|
|
41
|
+
this.vm.builder = this.container().builderService;
|
|
42
|
+
}
|
|
43
|
+
handleCloseClick() {
|
|
44
|
+
this.close();
|
|
45
|
+
}
|
|
46
|
+
async handleSaveClick(form) {
|
|
47
|
+
const formResult = await form.validate();
|
|
48
|
+
if (formResult.result) {
|
|
49
|
+
try {
|
|
50
|
+
await this.vm.save();
|
|
51
|
+
this.close({ result: true, context: this.vm.context() });
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
this.vm.builder.setStatus(AXPPageStatus.Error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async handleSectionDiscard(form) {
|
|
59
|
+
this.close({ result: false });
|
|
60
|
+
}
|
|
61
|
+
async handleSectionReset(form) {
|
|
62
|
+
this.vm.reset();
|
|
63
|
+
}
|
|
64
|
+
async handleContextChange(e) {
|
|
65
|
+
this.vm.context.set(e.data);
|
|
66
|
+
}
|
|
67
|
+
ngOnDestroy() {
|
|
68
|
+
}
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPEntityMasterModifyViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: AXPEntityMasterModifyViewComponent, 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-modify-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"ax-col-span-12\">\n <ax-form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field\n class=\"ax-flex ax-flex-col ax-gap-1\"\n [gridLayout]=\"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 \n }\n </ax-label>\n }\n <ng-container\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n <ax-footer>\n <ax-prefix>\n <axp-component-slot name=\"entity-modify-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button\n [text]=\"'@general:actions.discard.title' | translate | async\"\n (onClick)=\"handleSectionDiscard(form)\"\n >\n <ax-button-item-list>\n <ax-button-item\n [text]=\"('@general:actions.reset.title' | translate | async) ?? ' '\"\n (onClick)=\"handleSectionReset(form)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n <ax-button\n [disabled]=\"vm.isInProgress()\"\n color=\"primary\"\n [text]=\"'@general:actions.apply.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n >\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n <axp-component-slot name=\"entity-modify-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n </ax-footer>\n}\n<axp-component-slot name=\"entity-modify-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.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i3.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: 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:
|
|
71
|
+
//
|
|
72
|
+
AXPLayoutBuilderModule }, { 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: AXPWidgetsModule }, { kind: "directive", type: AXPGridLayoutDirective, selector: "[gridLayout]", inputs: ["gridLayout"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name", "host", "context"], exportAs: ["slot"] }, { kind: "pipe", type: i1$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPEntityMasterModifyViewComponent, decorators: [{
|
|
75
|
+
type: Component,
|
|
76
|
+
args: [{ imports: [
|
|
77
|
+
CommonModule,
|
|
78
|
+
FormsModule,
|
|
79
|
+
AXFormModule,
|
|
80
|
+
AXDecoratorModule,
|
|
81
|
+
CommonModule,
|
|
82
|
+
AXButtonModule,
|
|
83
|
+
AXDialogModule,
|
|
84
|
+
AXLoadingModule,
|
|
85
|
+
AXTabsModule,
|
|
86
|
+
AXTooltipModule,
|
|
87
|
+
AXValidationModule,
|
|
88
|
+
AXLabelModule,
|
|
89
|
+
AXDropdownModule,
|
|
90
|
+
AXDropdownButtonModule,
|
|
91
|
+
//
|
|
92
|
+
AXPLayoutBuilderModule,
|
|
93
|
+
AXPWidgetsModule,
|
|
94
|
+
AXPGridLayoutDirective,
|
|
95
|
+
AXTranslationModule,
|
|
96
|
+
AXPComponentSlotModule,
|
|
97
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<axp-component-slot name=\"entity-modify-header\" [context]=\"vm.context()\"></axp-component-slot>\n<axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for (section of vm.sections(); track section.name()) {\n <div class=\"ax-col-span-12\">\n <ax-form>\n @if (vm.sections().length > 1 && !section.description()) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if (section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for (attr of section.elements(); track $index) {\n <ax-form-field\n class=\"ax-flex ax-flex-col ax-gap-1\"\n [gridLayout]=\"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 \n }\n </ax-label>\n }\n <ng-container\n axp-widget-renderer\n [node]=\"attr.node()\"\n [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"\n ></ng-container>\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n </ax-form>\n</axp-widgets-container>\n@if (slot.isEmpty()) {\n <ax-footer>\n <ax-prefix>\n <axp-component-slot name=\"entity-modify-footer-prefix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-prefix>\n <ax-suffix>\n <ax-dropdown-button\n [text]=\"'@general:actions.discard.title' | translate | async\"\n (onClick)=\"handleSectionDiscard(form)\"\n >\n <ax-button-item-list>\n <ax-button-item\n [text]=\"('@general:actions.reset.title' | translate | async) ?? ' '\"\n (onClick)=\"handleSectionReset(form)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n <ax-button\n [disabled]=\"vm.isInProgress()\"\n color=\"primary\"\n [text]=\"'@general:actions.apply.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n >\n @if (vm.isInProgress()) {\n <ax-loading></ax-loading>\n }\n </ax-button>\n <axp-component-slot name=\"entity-modify-footer-suffix\" [context]=\"vm.context()\"></axp-component-slot>\n </ax-suffix>\n </ax-footer>\n}\n<axp-component-slot name=\"entity-modify-footer\" #slot=\"slot\" [context]=\"vm.context()\"></axp-component-slot>\n" }]
|
|
98
|
+
}] });
|
|
99
|
+
|
|
100
|
+
export { AXPEntityMasterModifyViewComponent };
|
|
101
|
+
//# sourceMappingURL=acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs.map
|