@acorex/platform 18.0.6 → 18.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/lib/auth.strategy.d.ts +1 -1
- package/auth/lib/session.service.d.ts +0 -1
- package/common/lib/data/data-provider.types.d.ts +1 -1
- package/common/lib/schema/entity/entity.class.d.ts +1 -0
- package/common/lib/schema/widgets/lookup/lookup-widget-column.component.d.ts +1 -1
- package/common/lib/schema/widgets/lookup/lookup-widget-edit.component.d.ts +3 -1
- package/common/lib/schema/widgets/phone/phone-widget-edit.component.d.ts +3 -1
- package/esm2022/auth/lib/auth.guard.mjs +4 -4
- package/esm2022/auth/lib/auth.strategy.mjs +1 -1
- package/esm2022/auth/lib/session.service.mjs +14 -15
- package/esm2022/common/lib/data/data-provider.types.mjs +1 -1
- package/esm2022/common/lib/schema/entity/entity.class.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-edit.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/avatar/avatar-widget-view.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/common-widget-filter/boolean-widget-filter.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-edit.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/dateTime/dateTime-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/email/email-widget-edit.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/file/file-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/gallery/gallery-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-column.component.mjs +3 -3
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +23 -19
- package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +2 -2
- package/esm2022/common/lib/schema/widgets/messenger/messenger-widget-edit.component.mjs +1 -1
- package/esm2022/common/lib/schema/widgets/phone/phone-widget-edit.component.mjs +8 -4
- package/esm2022/common/lib/schema/widgets/selection-list/selection-list-widget-filter.component.mjs +2 -2
- package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +56 -61
- package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +4 -2
- package/esm2022/layout/entity/lib/entity.module.mjs +16 -19
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +62 -55
- package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +83 -61
- package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +10 -8
- package/esm2022/layouts/lib/admin/admin.module.mjs +9 -2
- package/esm2022/layouts/lib/admin/entity-layout/entity-create-view/entity-create-view.component.mjs +6 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.mjs +7 -5
- package/esm2022/layouts/lib/admin/entity-layout/entity-import-view/entity-import-view.component.mjs +91 -0
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/entity-custom-view/entity-custom-view.component.mjs +4 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-columns/list-view-option-columns.component.mjs +4 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-conditions.component.mjs +4 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-conditions/list-view-option-filter-operator.component.mjs +1 -1
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/components/list-view-option-sorting/list-view-option-sorting.component.mjs +4 -3
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +18 -6
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.mjs +9 -5
- package/esm2022/layouts/lib/admin/entity-layout/entity-modify-view/entity-modify-view.component.mjs +6 -3
- package/esm2022/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.mjs +5 -3
- package/esm2022/layouts/lib/admin/entity-layout/workflows/import-entity.workflow.mjs +77 -0
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.mjs +8 -5
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +29 -13
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +17 -13
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.mjs +13 -9
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.mjs +8 -5
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +8 -5
- package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-edit.component.mjs +2 -2
- package/esm2022/widgets/lib/editors/email-box-widget/email-box-widget-edit.component.mjs +2 -2
- package/esm2022/widgets/lib/editors/link-widget/index.mjs +8 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-column.component.mjs +19 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-designer.component.mjs +19 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-edit.component.mjs +391 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-filter.component.mjs +20 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-print.component.mjs +19 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget-view.component.mjs +120 -0
- package/esm2022/widgets/lib/editors/link-widget/link-widget.config.mjs +24 -0
- package/esm2022/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.mjs +10 -7
- package/esm2022/widgets/lib/editors/phone-box-widget/phone-box-widget-edit.component.mjs +5 -3
- package/esm2022/widgets/lib/editors/select-box-widget/select-box-widget-edit.component.mjs +2 -2
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +13 -3
- package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +3 -3
- package/esm2022/widgets/lib/widgets.module.mjs +4 -1
- package/fesm2022/acorex-platform-auth.mjs +14 -15
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-B8txzrTw.mjs → acorex-platform-common-avatar-widget-edit.component-BtnVjoMi.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-avatar-widget-edit.component-B8txzrTw.mjs.map → acorex-platform-common-avatar-widget-edit.component-BtnVjoMi.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-avatar-widget-view.component-B3Ubyw3X.mjs → acorex-platform-common-avatar-widget-view.component-0-hGLYLK.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-avatar-widget-view.component-B3Ubyw3X.mjs.map → acorex-platform-common-avatar-widget-view.component-0-hGLYLK.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-CcJ5Vj4q.mjs → acorex-platform-common-boolean-widget-filter.component-CMkjO_x1.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-boolean-widget-filter.component-CcJ5Vj4q.mjs.map → acorex-platform-common-boolean-widget-filter.component-CMkjO_x1.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-DRsoJMVG.mjs → acorex-platform-common-dateTime-widget-edit.component-DdqtbOY1.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-dateTime-widget-edit.component-DRsoJMVG.mjs.map → acorex-platform-common-dateTime-widget-edit.component-DdqtbOY1.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-uB7iwji0.mjs → acorex-platform-common-dateTime-widget-filter.component-BjtIJkeC.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-dateTime-widget-filter.component-uB7iwji0.mjs.map → acorex-platform-common-dateTime-widget-filter.component-BjtIJkeC.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-email-widget-edit.component-CY-Nu0xD.mjs → acorex-platform-common-email-widget-edit.component-CLl0gmdM.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-email-widget-edit.component-CY-Nu0xD.mjs.map → acorex-platform-common-email-widget-edit.component-CLl0gmdM.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-file-widget-filter.component-qL-PznYm.mjs → acorex-platform-common-file-widget-filter.component-DqYmxdx_.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-file-widget-filter.component-qL-PznYm.mjs.map → acorex-platform-common-file-widget-filter.component-DqYmxdx_.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-Bvy3nmy6.mjs → acorex-platform-common-gallery-widget-filter.component-Btrq4HP9.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-gallery-widget-filter.component-Bvy3nmy6.mjs.map → acorex-platform-common-gallery-widget-filter.component-Btrq4HP9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs → acorex-platform-common-lookup-widget-column.component-CtvP7V_w.mjs} +3 -3
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-CtvP7V_w.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-CpzTuRyJ.mjs → acorex-platform-common-lookup-widget-edit.component-JjtWsg2g.mjs} +23 -19
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-JjtWsg2g.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-i8oRoMWh.mjs → acorex-platform-common-lookup-widget-filter.component-B4C5JB_p.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-i8oRoMWh.mjs.map → acorex-platform-common-lookup-widget-filter.component-B4C5JB_p.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-WHM8ANuQ.mjs → acorex-platform-common-messenger-widget-edit.component-BjqtP0ls.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-messenger-widget-edit.component-WHM8ANuQ.mjs.map → acorex-platform-common-messenger-widget-edit.component-BjqtP0ls.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-common-phone-widget-edit.component-BdxXFoxc.mjs → acorex-platform-common-phone-widget-edit.component-Dj_tdhZw.mjs} +8 -4
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-Dj_tdhZw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-NDAFZhfE.mjs → acorex-platform-common-selection-list-widget-filter.component-hbxBcirf.mjs} +2 -2
- package/fesm2022/{acorex-platform-common-selection-list-widget-filter.component-NDAFZhfE.mjs.map → acorex-platform-common-selection-list-widget-filter.component-hbxBcirf.mjs.map} +1 -1
- package/fesm2022/acorex-platform-common.mjs +15 -15
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +309 -289
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-DgPPnU8S.mjs +110 -0
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-DgPPnU8S.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts-entity-import-view.component-V50y5Jjs.mjs +93 -0
- package/fesm2022/acorex-platform-layouts-entity-import-view.component-V50y5Jjs.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layouts-entity-modify-view.component-C-dS2HFl.mjs → acorex-platform-layouts-entity-modify-view.component-Bwz4yVpK.mjs} +6 -3
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-Bwz4yVpK.mjs.map +1 -0
- package/fesm2022/acorex-platform-layouts.mjs +130 -35
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-qOxuoK6c.mjs +99 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-qOxuoK6c.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DHmUvWx8.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BJcpG94Q.mjs} +9 -6
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BJcpG94Q.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +50 -31
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +628 -14
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +7 -6
- package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -0
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +5 -4
- package/layout/entity/lib/workflows/create-entity.workflow.d.ts +1 -0
- package/layouts/lib/admin/entity-layout/entity-import-view/entity-import-view.component.d.ts +27 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.d.ts +2 -0
- package/layouts/lib/admin/entity-layout/entity-list-view/list-view.module.d.ts +2 -1
- package/layouts/lib/admin/entity-layout/workflows/create-entity.workflow.d.ts +1 -0
- package/layouts/lib/admin/entity-layout/workflows/import-entity.workflow.d.ts +27 -0
- package/package.json +4 -1
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +3 -0
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +1 -1
- package/widgets/lib/editors/link-widget/index.d.ts +7 -0
- package/widgets/lib/editors/link-widget/link-widget-column.component.d.ts +6 -0
- package/widgets/lib/editors/link-widget/link-widget-designer.component.d.ts +6 -0
- package/widgets/lib/editors/link-widget/link-widget-edit.component.d.ts +45 -0
- package/widgets/lib/editors/link-widget/link-widget-filter.component.d.ts +6 -0
- package/widgets/lib/editors/link-widget/link-widget-print.component.d.ts +6 -0
- package/widgets/lib/editors/link-widget/link-widget-view.component.d.ts +13 -0
- package/widgets/lib/editors/link-widget/link-widget.config.d.ts +2 -0
- package/widgets/lib/editors/number-box-widget/number-box-widget-edit.component.d.ts +4 -1
- package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +2 -0
- package/fesm2022/acorex-platform-common-lookup-widget-column.component-Cl-vO5XW.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-lookup-widget-edit.component-CpzTuRyJ.mjs.map +0 -1
- package/fesm2022/acorex-platform-common-phone-widget-edit.component-BdxXFoxc.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-Bxkv579D.mjs +0 -107
- package/fesm2022/acorex-platform-layouts-entity-create-view.component-Bxkv579D.mjs.map +0 -1
- package/fesm2022/acorex-platform-layouts-entity-modify-view.component-C-dS2HFl.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CTlj-QBs.mjs +0 -96
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CTlj-QBs.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DHmUvWx8.mjs.map +0 -1
|
@@ -23,6 +23,7 @@ import * as i13 from "@acorex/components/selection-list";
|
|
|
23
23
|
import * as i14 from "@acorex/components/dropdown-button";
|
|
24
24
|
import * as i15 from "@angular/cdk/drag-drop";
|
|
25
25
|
import * as i16 from "@acorex/platform/common";
|
|
26
|
+
import * as i17 from "@acorex/core/translation";
|
|
26
27
|
export class AXPEntityCreateCustomViewComponent extends AXBasePageComponent {
|
|
27
28
|
constructor() {
|
|
28
29
|
super(...arguments);
|
|
@@ -181,7 +182,7 @@ export class AXPEntityCreateCustomViewComponent extends AXBasePageComponent {
|
|
|
181
182
|
{
|
|
182
183
|
provide: AXUnsubscriber,
|
|
183
184
|
},
|
|
184
|
-
], usesInheritance: true, ngImport: i0, template: "<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\n <div class=\"ax-flex ax-items-center\">\n @if (showNameInput() && mode==='create') {\n <div class=\"ax-w-60\">\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\n @if(showNameInput()){\n <ax-suffix>\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n }\n </ax-text-box>\n </div>\n }@else {\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\n } @if (mode===\"create\") {\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\n @if(!showNameInput() ){\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\n }\n </ax-button>\n }\n </div>\n <ax-close-button></ax-close-button>\n</ax-header>\n<div class=\"ax-p-4\">\n <ax-tabs [content]=\"contents\" look=\"with-line\">\n <ax-tab-item text=\"Columns\">\n <ax-suffix>\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\"\n cdkDropList\n (cdkDropListDropped)=\"drop('columns', $event)\"\n >\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\n <ng-container *ngFor=\"let item of columns()\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [(ngModel)]=\"item.visible\"\n (onValueChanged)=\"updateColumnItem($event, item.name)\"\n ></ax-switch>\n </div>\n </ng-container>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Conditions\">\n <ax-suffix>\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\n [class.ax-justify-center]=\"!conditions().length\"\n >\n @if(!conditions().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to filter</span\n >\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions(); track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(conditions().length){\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n <ax-popover\n #conditionsPopover\n [target]=\"addField\"\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\n [offsetY]=\"8\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n >\n <div\n class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\n >\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-48 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedConditionNames\"\n [direction]=\"'vertical'\"\n [items]=\"props()\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button\n (onClick)=\"addCondition(); conditionsPopover.close()\"\n class=\"ax-sm\"\n text=\"Confirm\"\n color=\"primary\"\n >\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Sorting\">\n <ax-suffix>\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\n [class.ax-justify-center]=\"!sorts().length\"\n >\n @if(!sorts().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to sort</span\n >\n </div>\n }@else {\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop('sorts', $event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts()\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\">\n </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n }\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(sorts().length){\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"blank\"\n class=\"ax-sm\"\n ></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n </ax-tabs>\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\n</div>\n<ax-footer class=\"!ax-justify-end\">\n @if (mode===\"edit\") {\n <ax-dropdown-button text=\"Discard\" (onClick)=\"handleDiscardClick()\">\n <ax-button-item-list>\n <ax-button-item text=\"Reset\" (onClick)=\"handleResetClick()\">\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 class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button text=\"Cancel\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\n }\n <ax-button\n [text]=\"mode === 'create' ? 'Save' : 'Save Changes'\"\n color=\"primary\"\n (onClick)=\"handleApplyClick()\"\n ></ax-button>\n</ax-footer>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "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: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i5.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i6.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i8.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "component", type: i9.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i9.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i9.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "component", type: i10.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "component", type: i11.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i12.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "component", type: i13.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "hintField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "component", type: i14.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i16.AXPWidgetFilterRendererComponent, selector: "axp-widget-filter-renderer", inputs: ["value", "operator", "prop", "schema"], outputs: ["valueChange", "operatorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
185
|
+
], usesInheritance: true, ngImport: i0, template: "<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\n <div class=\"ax-flex ax-items-center\">\n @if (showNameInput() && mode==='create') {\n <div class=\"ax-w-60\">\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\n @if(showNameInput()){\n <ax-suffix>\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n }\n </ax-text-box>\n </div>\n }@else {\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\n } @if (mode===\"create\") {\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\n @if(!showNameInput() ){\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\n }\n </ax-button>\n }\n </div>\n <ax-close-button></ax-close-button>\n</ax-header>\n<div class=\"ax-p-4\">\n <ax-tabs [content]=\"contents\" look=\"with-line\">\n <ax-tab-item [text]=\"('entity.columns' | translate | async) ?? 'Columns'\">\n <ax-suffix>\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\" cdkDropList (cdkDropListDropped)=\"drop('columns', $event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\n <ng-container *ngFor=\"let item of columns()\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch class=\"ax-sm\" [(ngModel)]=\"item.visible\" (onValueChanged)=\"updateColumnItem($event, item.name)\"></ax-switch>\n </div>\n </ng-container>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Conditions\">\n <ax-suffix>\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\n [class.ax-justify-center]=\"!conditions().length\"\n >\n @if(!conditions().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to filter</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions(); track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge class=\"ax-text-xs\" color=\"primary\" [look]=\"'twotone'\" [text]=\"getOperatorTitle(item.name, item.operator)\"></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(conditions().length){\n <ax-button color=\"primary\" [text]=\"'entity.add-field' | translate | async\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" [text]=\"'entity.add-field' | translate | async\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n <ax-popover\n #conditionsPopover\n [target]=\"addField\"\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\n [offsetY]=\"8\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n >\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-48 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedConditionNames\"\n [direction]=\"'vertical'\"\n [items]=\"props()\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"addCondition(); conditionsPopover.close()\" class=\"ax-sm\" text=\"Confirm\" color=\"primary\"> </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Sorting\">\n <ax-suffix>\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\n [class.ax-justify-center]=\"!sorts().length\"\n >\n @if(!sorts().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">{{ 'entity.no-sort' | translate | async }}</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">{{ 'entity.ask-sort' | translate | async }}</span>\n </div>\n }@else {\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop('sorts', $event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts()\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\"> </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\n <ax-icon [class.ax-text-primary]=\"item.dir == 'asc'\" class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"></ax-icon>\n <ax-icon [class.ax-text-primary]=\"item.dir == 'desc'\" class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n }\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(sorts().length){\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n [text]=\"'entity.add-field' | translate | async\"\n look=\"blank\"\n class=\"ax-sm\"\n ></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n [text]=\"'entity.add-field' | translate | async\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n </ax-tabs>\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\n</div>\n<ax-footer class=\"!ax-justify-end\">\n @if (mode===\"edit\") {\n <ax-dropdown-button [text]=\"'discard' | translate | async\" (onClick)=\"handleDiscardClick()\">\n <ax-button-item-list>\n <ax-button-item [text]=\"('reset' | translate | async) ?? ' '\" (onClick)=\"handleResetClick()\">\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 class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button [text]=\"'cancel' | translate | async\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\n }\n <ax-button [text]=\"mode === 'create' ? ('save' | translate | async) : ('save-changes' | translate | async)\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n</ax-footer>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "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: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i5.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: i6.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i7.AXImageComponent, selector: "ax-image", inputs: ["overlayMode", "src", "alt", "priority", "lazy"], outputs: ["onLoad", "onError"] }, { kind: "component", type: i8.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "component", type: i9.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i9.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i9.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "component", type: i10.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "component", type: i11.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: i12.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "component", type: i13.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "hintField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "component", type: i14.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "directive", type: i15.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i15.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i15.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i16.AXPWidgetFilterRendererComponent, selector: "axp-widget-filter-renderer", inputs: ["value", "operator", "prop", "schema"], outputs: ["valueChange", "operatorChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i17.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
185
186
|
}
|
|
186
187
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPEntityCreateCustomViewComponent, decorators: [{
|
|
187
188
|
type: Component,
|
|
@@ -189,7 +190,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
189
190
|
{
|
|
190
191
|
provide: AXUnsubscriber,
|
|
191
192
|
},
|
|
192
|
-
], template: "<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\n <div class=\"ax-flex ax-items-center\">\n @if (showNameInput() && mode==='create') {\n <div class=\"ax-w-60\">\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\n @if(showNameInput()){\n <ax-suffix>\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n }\n </ax-text-box>\n </div>\n }@else {\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\n } @if (mode===\"create\") {\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\n @if(!showNameInput() ){\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\n }\n </ax-button>\n }\n </div>\n <ax-close-button></ax-close-button>\n</ax-header>\n<div class=\"ax-p-4\">\n <ax-tabs [content]=\"contents\" look=\"with-line\">\n <ax-tab-item text=\"Columns\">\n <ax-suffix>\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\"\n cdkDropList\n (cdkDropListDropped)=\"drop('columns', $event)\"\n >\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\n <ng-container *ngFor=\"let item of columns()\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [(ngModel)]=\"item.visible\"\n (onValueChanged)=\"updateColumnItem($event, item.name)\"\n ></ax-switch>\n </div>\n </ng-container>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Conditions\">\n <ax-suffix>\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\n [class.ax-justify-center]=\"!conditions().length\"\n >\n @if(!conditions().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to filter</span\n >\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions(); track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge\n class=\"ax-text-xs\"\n color=\"primary\"\n [look]=\"'twotone'\"\n [text]=\"getOperatorTitle(item.name, item.operator)\"\n ></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(conditions().length){\n <ax-button color=\"primary\" text=\"Add field\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" text=\"Add field\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n <ax-popover\n #conditionsPopover\n [target]=\"addField\"\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\n [offsetY]=\"8\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n >\n <div\n class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\"\n >\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-48 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedConditionNames\"\n [direction]=\"'vertical'\"\n [items]=\"props()\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button\n (onClick)=\"addCondition(); conditionsPopover.close()\"\n class=\"ax-sm\"\n text=\"Confirm\"\n color=\"primary\"\n >\n </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Sorting\">\n <ax-suffix>\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\n [class.ax-justify-center]=\"!sorts().length\"\n >\n @if(!sorts().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Sorts Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\"\n >Please select field(s) that you want to sort</span\n >\n </div>\n }@else {\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop('sorts', $event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts()\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\">\n </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir == 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n }\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(sorts().length){\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"blank\"\n class=\"ax-sm\"\n ></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n text=\"Add field\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n </ax-tabs>\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\n</div>\n<ax-footer class=\"!ax-justify-end\">\n @if (mode===\"edit\") {\n <ax-dropdown-button text=\"Discard\" (onClick)=\"handleDiscardClick()\">\n <ax-button-item-list>\n <ax-button-item text=\"Reset\" (onClick)=\"handleResetClick()\">\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 class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button text=\"Cancel\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\n }\n <ax-button\n [text]=\"mode === 'create' ? 'Save' : 'Save Changes'\"\n color=\"primary\"\n (onClick)=\"handleApplyClick()\"\n ></ax-button>\n</ax-footer>\n" }]
|
|
193
|
+
], template: "<ax-header class=\"ax-p-4 ax-flex ax-justify-between ax-border-b\">\n <div class=\"ax-flex ax-items-center\">\n @if (showNameInput() && mode==='create') {\n <div class=\"ax-w-60\">\n <ax-text-box class=\"ax-sm\" [(ngModel)]=\"selectedView.title\">\n @if(showNameInput()){\n <ax-suffix>\n <ax-button (onClick)=\"changeViewNameToggle()\" look=\"default\">\n <ax-icon class=\"fa-sodild fas fa-check ax-text-sm\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n }\n </ax-text-box>\n </div>\n }@else {\n <span class=\"ax-text-lg ax-font-semibold\">{{ selectedView.title }}</span>\n } @if (mode===\"create\") {\n <ax-button class=\"ax-xs\" (onClick)=\"changeViewNameToggle()\" color=\"default\">\n @if(!showNameInput() ){\n <ax-icon class=\"fa-regular fa-pen ax-text-sm ax-text-neutral-600\"> </ax-icon>\n }\n </ax-button>\n }\n </div>\n <ax-close-button></ax-close-button>\n</ax-header>\n<div class=\"ax-p-4\">\n <ax-tabs [content]=\"contents\" look=\"with-line\">\n <ax-tab-item [text]=\"('entity.columns' | translate | async) ?? 'Columns'\">\n <ax-suffix>\n <ax-badge [text]=\"visibleColumns().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none ax-h-[400px]\" cdkDropList (cdkDropListDropped)=\"drop('columns', $event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-overflow-auto ax-pe-2\">\n <ng-container *ngFor=\"let item of columns()\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch class=\"ax-sm\" [(ngModel)]=\"item.visible\" (onValueChanged)=\"updateColumnItem($event, item.name)\"></ax-switch>\n </div>\n </ng-container>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Conditions\">\n <ax-suffix>\n <ax-badge [text]=\"conditions().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-flex-col ax-justify-start ax-gap-4 ax-py-4 ax-select-none ax-h-[400px]\"\n [class.ax-justify-center]=\"!conditions().length\"\n >\n @if(!conditions().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">No Filters Selected</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">Please select field(s) that you want to filter</span>\n </div>\n } @else {\n <div class=\"ax-sorted-list ax-px-4 ax-py-1 ax-overflow-auto\">\n <div cdkDropList (cdkDropListDropped)=\"drop('conditions', $event)\" class=\"ax-flex ax-flex-col ax-gap-2\">\n @for(item of conditions(); track item.name ){\n <div cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-ms-4 ax-flex ax-items-start ax-gap-2\">\n <ax-label>{{ loader.getProp(item.name)?.title }}</ax-label>\n @if(getOperatorTitle(item.name,item.operator)){\n <ax-badge class=\"ax-text-xs\" color=\"primary\" [look]=\"'twotone'\" [text]=\"getOperatorTitle(item.name, item.operator)\"></ax-badge>\n }\n </div>\n <div class=\"ax-flex ax-group ax-items-center ax-gap-2\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <div class=\"ax-w-full\">\n <axp-widget-filter-renderer\n [schema]=\"getSchema(item.name)\"\n [prop]=\"loader.getProp(item.name)\"\n [(value)]=\"item.value\"\n [(operator)]=\"item.operator\"\n >\n </axp-widget-filter-renderer>\n </div>\n <ax-button look=\"blank\" color=\"danger\" class=\"ax-sm\" (onClick)=\"removeCondition(item)\">\n <ax-icon class=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(conditions().length){\n <ax-button color=\"primary\" [text]=\"'entity.add-field' | translate | async\" look=\"blank\" class=\"ax-sm\"></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button color=\"primary\" [text]=\"'entity.add-field' | translate | async\" look=\"outline\" class=\"ax-md ax-w-56\"></ax-button>\n </div>\n }\n <ax-popover\n #conditionsPopover\n [target]=\"addField\"\n [placement]=\"conditions().length ? 'bottom-start' : 'bottom'\"\n [offsetY]=\"8\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n [adaptivityEnabled]=\"true\"\n (onOpened)=\"resetSelectedFieldNames()\"\n >\n <div class=\"ax-bg-surface ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full ax-min-w-[250px]\">\n <div class=\"ax-border-b-[1px] ax-pb-2 ax-mb-2 ax-p-3\">\n <ax-title class=\"ax-font-bold\">Fields</ax-title>\n </div>\n <div class=\"ax-max-h-48 ax-overflow-auto\">\n <ax-selection-list\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [(ngModel)]=\"selectedConditionNames\"\n [direction]=\"'vertical'\"\n [items]=\"props()\"\n [multiple]=\"true\"\n ></ax-selection-list>\n </div>\n <div class=\"ax-flex ax-justify-end ax-border-t-[1px] ax-p-3\">\n <ax-button (onClick)=\"addCondition(); conditionsPopover.close()\" class=\"ax-sm\" text=\"Confirm\" color=\"primary\"> </ax-button>\n </div>\n </div>\n </ax-popover>\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n <ax-tab-item text=\"Sorting\">\n <ax-suffix>\n <ax-badge [text]=\"sorts().length.toString()\" color=\"primary\"> </ax-badge>\n </ax-suffix>\n <ax-content>\n <div\n class=\"ax-flex ax-p-4 ax-flex-col ax-justify-start ax-gap-4 ax-select-none ax-overflow-auto ax-h-[400px]\"\n [class.ax-justify-center]=\"!sorts().length\"\n >\n @if(!sorts().length){\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center\">\n <ax-image src=\"assets/documents.svg\"></ax-image>\n <p class=\"ax-mt-6 ax-mb-1 ax-font-bold\">{{ 'entity.no-sort' | translate | async }}</p>\n <span class=\"ax-text-neutral-400 ax-text-sm md:ax-text-md\">{{ 'entity.ask-sort' | translate | async }}</span>\n </div>\n }@else {\n <div\n cdkDropList\n (cdkDropListDropped)=\"drop('sorts', $event)\"\n class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-py-1 ax-overflow-auto\"\n >\n <ng-container *ngFor=\"let item of sorts()\">\n <div class=\"ax-flex ax-gap-2 ax-items-center\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\" cdkDragHandle></ax-icon>\n <ax-select-box [dataSource]=\"props()\" valueField=\"name\" textField=\"title\" [(ngModel)]=\"item.name\"> </ax-select-box>\n <ax-button [color]=\"'default'\" class=\"ax-sm\" (click)=\"updateSortItem(item)\">\n <ax-icon [class.ax-text-primary]=\"item.dir == 'asc'\" class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"></ax-icon>\n <ax-icon [class.ax-text-primary]=\"item.dir == 'desc'\" class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"></ax-icon>\n </ax-button>\n\n <ax-button look=\"blank\" (onClick)=\"removeSortItem(item)\">\n <ax-icon class=\"fa-solid fa-trash-can ax-text-danger-500\"></ax-icon>\n </ax-button>\n </div>\n </ng-container>\n </div>\n }\n\n <div class=\"ax-flex ax-gap-2\">\n <div class=\"ax-w-full\" #addField>\n @if(sorts().length){\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n [text]=\"'entity.add-field' | translate | async\"\n look=\"blank\"\n class=\"ax-sm\"\n ></ax-button>\n }@else {\n <div class=\"ax-flex ax-justify-center ax-w-full\">\n <ax-button\n (onClick)=\"addSortItem()\"\n color=\"primary\"\n [text]=\"'entity.add-field' | translate | async\"\n look=\"outline\"\n class=\"ax-md ax-w-56\"\n ></ax-button>\n </div>\n }\n </div>\n </div>\n </div>\n </ax-content>\n </ax-tab-item>\n </ax-tabs>\n <ng-template [axTabContent] #contents=\"axTabContent\"> </ng-template>\n</div>\n<ax-footer class=\"!ax-justify-end\">\n @if (mode===\"edit\") {\n <ax-dropdown-button [text]=\"'discard' | translate | async\" (onClick)=\"handleDiscardClick()\">\n <ax-button-item-list>\n <ax-button-item [text]=\"('reset' | translate | async) ?? ' '\" (onClick)=\"handleResetClick()\">\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 class=\"ax-text-danger\" text=\"Delete\" (onClick)=\"handleDeleteClick()\">\n <ax-prefix> <ax-icon icon=\"fas fa-trash fa-flip-horizontal\"></ax-icon> </ax-prefix\n ></ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n } @else {\n <ax-button [text]=\"'cancel' | translate | async\" look=\"outline\" (onClick)=\"handleCancelClick()\"></ax-button>\n }\n <ax-button [text]=\"mode === 'create' ? ('save' | translate | async) : ('save-changes' | translate | async)\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n</ax-footer>\n" }]
|
|
193
194
|
}], propDecorators: { loader: [{
|
|
194
195
|
type: Input
|
|
195
196
|
}], mode: [{
|
|
@@ -197,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
197
198
|
}], selectedView: [{
|
|
198
199
|
type: Input
|
|
199
200
|
}] } });
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWN1c3RvbS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0cy9zcmMvbGliL2FkbWluL2VudGl0eS1sYXlvdXQvZW50aXR5LWxpc3Qtdmlldy9jb21wb25lbnRzL2VudGl0eS1jdXN0b20tdmlldy9lbnRpdHktY3VzdG9tLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXRzL3NyYy9saWIvYWRtaW4vZW50aXR5LWxheW91dC9lbnRpdHktbGlzdC12aWV3L2NvbXBvbmVudHMvZW50aXR5LWN1c3RvbS12aWV3L2VudGl0eS1jdXN0b20tdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQXVJLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pOLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYXRDLE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSxtQkFBbUI7SUFUM0U7O1FBVVUsbUJBQWMsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNsRCxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBR25DLFNBQUksR0FBc0IsUUFBUSxDQUFDO1FBQ25DLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBRXRCLGtCQUFhLEdBQTRCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxVQUFLLEdBQThDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5RCxZQUFPLEdBQXVELE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RSxtQkFBYyxHQUErQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ25GLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FDeEMsQ0FBQztRQUNRLGVBQVUsR0FBbUQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLFVBQUssR0FBOEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlELDJCQUFzQixHQUFhLEVBQUUsQ0FBQztRQUN0QyxjQUFTLEdBQWEsRUFBRSxDQUFDO0tBeUpwQztJQXZKb0IsUUFBUTtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzVFLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlEQUFpRDtJQUNqRCxnQkFBZ0IsQ0FBQyxLQUEwQixFQUFFLE9BQWU7UUFDMUQsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQy9CLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDdkYsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsK0NBQStDO0lBQy9DLGNBQWMsQ0FBQyxJQUE2QjtRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQzlCLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDakgsQ0FBQztJQUNKLENBQUM7SUFDRCxXQUFXO1FBQ1QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNqRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUE2QixDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQTZCO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxvREFBb0Q7SUFDMUMsU0FBUyxDQUFDLElBQVk7UUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDaEUsQ0FBQztJQUVTLFlBQVksQ0FBQyxJQUFZO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO0lBQ2pGLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxJQUFZO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxPQUFPLElBQUksT0FBTyxDQUFDO0lBQ3BGLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLE9BQWU7UUFDNUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ25GLENBQUM7SUFDUyx1QkFBdUI7UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ1MsWUFBWTtRQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLENBQUM7Z0JBQ1AsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJO2FBQ25CLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQWlCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQWtDO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxnREFBZ0Q7SUFDdEMsSUFBSSxDQUFDLElBQXdDLEVBQUUsS0FBNkI7UUFDcEYsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUMvQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUM7b0JBQ3pCLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ2xFLE9BQU8sT0FBTyxDQUFDO2dCQUNqQixDQUFDLENBQUMsQ0FBQztnQkFDSCxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQzlCLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQztvQkFDeEIsZUFBZSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDaEUsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNSLEtBQUssWUFBWTtnQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO29CQUN4QyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUM7b0JBQ2xDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3JFLE9BQU8sVUFBVSxDQUFDO2dCQUNwQixDQUFDLENBQUMsQ0FBQztnQkFDSCxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEdBQUcsSUFBSSxDQUFDLFlBQVk7WUFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUNwRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUNwQixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUN2RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDckIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLE9BQU8sRUFBRSxpR0FBaUc7Z0JBQzFHLEtBQUssRUFBRSxRQUE0QjtnQkFDbkMsUUFBUSxFQUFFLGVBQTZCO2dCQUN2QyxXQUFXLEVBQUUsSUFBSTtnQkFDakIsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsYUFBYTthQUNmLE9BQU8sQ0FBQyxTQUFTLEVBQUUsd0NBQXdDLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQzthQUNwRixJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBN0tVLGtDQUFrQztrR0FBbEMsa0NBQWtDLGlIQU5sQztZQUNUO2dCQUNFLE9BQU8sRUFBRSxjQUFjO2FBQ3hCO1NBQ0YsaURDNUJILDRxV0FtUUE7OzJGRHJPYSxrQ0FBa0M7a0JBVDlDLFNBQVM7c0NBRVMsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsY0FBYzt5QkFDeEI7cUJBQ0Y7OEJBUVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhMb2NhdGlvbiwgQVhTdHlsZUNvbG9yVHlwZSwgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdENvbmRpdGlvbkNvbmZpZywgQVhQRW50aXR5TGlzdERpc3BsYXlDb2x1bW5Db25maWcsIEFYUEVudGl0eUxpc3RTb3J0Q29uZmlnLCBBWFBFbnRpdHlQcm9wZXJ0eUNvbmZpZywgQVhQRmlsdGVyT3BlcmF0b3IsIEFYUFNjaGVtYVJlZ2lzdHJ5U2VydmljZSwgRVFfT1BFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBTaWduYWwsXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQVhQTGlzdFZpZXdMb2FkZXIgfSBmcm9tICcuLi8uLi9saXN0LXZpZXcuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktY3VzdG9tLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhVbnN1YnNjcmliZXIsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlQ3VzdG9tVmlld0NvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xuICBwcml2YXRlIHNjaGVtYVJlZ2lzdHJ5ID0gaW5qZWN0KEFYUFNjaGVtYVJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFYRGlhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG5cbiAgQElucHV0KCkgbG9hZGVyITogQVhQTGlzdFZpZXdMb2FkZXI7XG4gIEBJbnB1dCgpIG1vZGU6ICdlZGl0JyB8ICdjcmVhdGUnID0gJ2NyZWF0ZSc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkVmlldzogYW55ID0ge307XG5cbiAgcHJvdGVjdGVkIHNob3dOYW1lSW5wdXQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHByb3BzOiBXcml0YWJsZVNpZ25hbDxBWFBFbnRpdHlQcm9wZXJ0eUNvbmZpZ1tdPiA9IHNpZ25hbChbXSk7XG5cbiAgcHJvdGVjdGVkIGNvbHVtbnM6IFdyaXRhYmxlU2lnbmFsPEFYUEVudGl0eUxpc3REaXNwbGF5Q29sdW1uQ29uZmlnW10+ID0gc2lnbmFsKFtdKTtcbiAgcHJvdGVjdGVkIHZpc2libGVDb2x1bW5zOiBTaWduYWw8QVhQRW50aXR5TGlzdERpc3BsYXlDb2x1bW5Db25maWdbXT4gPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuY29sdW1ucygpLmZpbHRlcigoYykgPT4gYy52aXNpYmxlKVxuICApO1xuICBwcm90ZWN0ZWQgY29uZGl0aW9uczogV3JpdGFibGVTaWduYWw8QVhQRW50aXR5TGlzdENvbmRpdGlvbkNvbmZpZ1tdPiA9IHNpZ25hbChbXSk7XG4gIHByb3RlY3RlZCBzb3J0czogV3JpdGFibGVTaWduYWw8QVhQRW50aXR5TGlzdFNvcnRDb25maWdbXT4gPSBzaWduYWwoW10pO1xuXG4gIHByb3RlY3RlZCBzZWxlY3RlZENvbmRpdGlvbk5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcm90ZWN0ZWQgdmlld05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BzLnNldChjbG9uZURlZXAodGhpcy5sb2FkZXIuZW50aXR5LnByb3BlcnRpZXMpKTtcbiAgICB0aGlzLmNvbHVtbnMuc2V0KGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkVmlldy5jb2x1bW5zKSk7XG4gICAgdGhpcy5jb25kaXRpb25zLnNldChjbG9uZURlZXAodGhpcy5zZWxlY3RlZFZpZXcuY29uZGl0aW9ucykpO1xuICAgIHRoaXMuc29ydHMuc2V0KGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkVmlldy5zb3J0cykpO1xuICAgIHRoaXMubG9hZGVyLnZpZXdzJC5waXBlKHRoaXMuc3Vic2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKHZpZXdzKSA9PiB7XG4gICAgICB0aGlzLnZpZXdOYW1lcyA9IHZpZXdzLm1hcCgodikgPT4gdi5uYW1lKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIENvbHVtbnMgKioqKioqKioqKioqKioqKioqLy9cbiAgdXBkYXRlQ29sdW1uSXRlbShldmVudDogQVhWYWx1ZUNoYW5nZWRFdmVudCwgY29sTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKGV2ZW50LmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLmNvbHVtbnMudXBkYXRlKChwcmV2Q29scykgPT5cbiAgICAgICAgcHJldkNvbHMubWFwKChjb2wpID0+IChjb2wubmFtZSA9PT0gY29sTmFtZSA/IHsgLi4uY29sLCB2aXNpYmxlOiBldmVudC52YWx1ZSB9IDogY29sKSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogU29ydHMgKioqKioqKioqKioqKioqKioqLy9cbiAgdXBkYXRlU29ydEl0ZW0oaXRlbTogQVhQRW50aXR5TGlzdFNvcnRDb25maWcpIHtcbiAgICB0aGlzLnNvcnRzLnVwZGF0ZSgocHJldlNvcnRzKSA9PlxuICAgICAgcHJldlNvcnRzLm1hcCgoc29ydCkgPT4gKHNvcnQubmFtZSA9PT0gaXRlbS5uYW1lID8geyAuLi5zb3J0LCBkaXI6IHNvcnQuZGlyID09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYycgfSA6IHNvcnQpKVxuICAgICk7XG4gIH1cbiAgYWRkU29ydEl0ZW0oKSB7XG4gICAgY29uc3Qgc29ydE5hbWVzID0gdGhpcy5zb3J0cygpLm1hcCgocCkgPT4gcC5uYW1lKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnByb3BzKCksIHNvcnROYW1lcyk7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMucHJvcHMoKS5maW5kKChjKSA9PiAhc29ydE5hbWVzLmluY2x1ZGVzKGMubmFtZSkpPy5uYW1lIHx8IHRoaXMucHJvcHMoKVswXS5uYW1lO1xuICAgIHRoaXMuc29ydHMudXBkYXRlKChwcmV2U29ydHMpID0+IFsuLi5wcmV2U29ydHMsIHsgbmFtZSwgZGlyOiAnYXNjJyB9IGFzIEFYUEVudGl0eUxpc3RTb3J0Q29uZmlnXSk7XG4gIH1cblxuICByZW1vdmVTb3J0SXRlbShpdGVtOiBBWFBFbnRpdHlMaXN0U29ydENvbmZpZykge1xuICAgIHRoaXMuc29ydHMudXBkYXRlKChwcmV2U29ydHMpID0+IHByZXZTb3J0cy5maWx0ZXIoKHNvcnQpID0+IGl0ZW0ubmFtZSAhPSBzb3J0Lm5hbWUpKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIENvbmRpdGlvbnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHJvdGVjdGVkIGdldFNjaGVtYShuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcygpLmZpbmQoKGMpID0+IGMubmFtZSA9PSBuYW1lKT8uc2NoZW1hID8/ICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldE9wZXJhdG9ycyhuYW1lOiBzdHJpbmcpOiBBWFBGaWx0ZXJPcGVyYXRvcltdIHtcbiAgICBjb25zdCBzY2hlbWFOYW1lID0gdGhpcy5wcm9wcygpLmZpbmQoKGMpID0+IGMubmFtZSA9PSBuYW1lKT8uc2NoZW1hID8/ICcnO1xuICAgIHJldHVybiB0aGlzLnNjaGVtYVJlZ2lzdHJ5LnJlc29sdmUoc2NoZW1hTmFtZSk/LmZpbHRlck9wdGlvbnM/Lm9wZXJhdG9ycyA/PyBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0T3BlcmF0b3IobmFtZTogc3RyaW5nKTogQVhQRmlsdGVyT3BlcmF0b3Ige1xuICAgIGNvbnN0IHNjaGVtYU5hbWUgPSB0aGlzLnByb3BzKCkuZmluZCgoYykgPT4gYy5uYW1lID09IG5hbWUpPy5zY2hlbWEgPz8gJyc7XG4gICAgcmV0dXJuIHRoaXMuc2NoZW1hUmVnaXN0cnkucmVzb2x2ZShzY2hlbWFOYW1lKT8uZmlsdGVyT3B0aW9ucz8uZGVmYXVsdCA/PyBFUV9PUEVSO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldE9wZXJhdG9yVGl0bGUoc2NoZW1hTmFtZTogc3RyaW5nLCBvcHJOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldE9wZXJhdG9ycyhzY2hlbWFOYW1lKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gb3ByTmFtZSk/LnRpdGxlIHx8ICcnO1xuICB9XG4gIHByb3RlY3RlZCByZXNldFNlbGVjdGVkRmllbGROYW1lcygpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ29uZGl0aW9uTmFtZXMgPSB0aGlzLmNvbmRpdGlvbnMoKS5tYXAoKGMpID0+IGMubmFtZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGFkZENvbmRpdGlvbigpIHtcbiAgICBjb25zdCBjb25kaXRpb25zID0gdGhpcy5zZWxlY3RlZENvbmRpdGlvbk5hbWVzLm1hcCgoYykgPT4ge1xuICAgICAgY29uc3Qgb3ByID0gdGhpcy5nZXREZWZhdWx0T3BlcmF0b3IoYyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBjLFxuICAgICAgICBvcGVyYXRvcjogb3ByLm5hbWUsXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMuY29uZGl0aW9ucy5zZXQoY29uZGl0aW9ucyBhcyBhbnkpO1xuICB9XG5cbiAgcmVtb3ZlQ29uZGl0aW9uKGl0ZW06IEFYUEVudGl0eUxpc3RDb25kaXRpb25Db25maWcpIHtcbiAgICB0aGlzLmNvbmRpdGlvbnMudXBkYXRlKChwcmV2Q29uZGl0aW9ucykgPT4gcHJldkNvbmRpdGlvbnMuZmlsdGVyKChjb24pID0+IGNvbi5uYW1lICE9IGl0ZW0ubmFtZSkpO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQ29tbW9uICoqKioqKioqKioqKioqKioqKi8vXG4gIHByb3RlY3RlZCBkcm9wKHR5cGU6ICdjb2x1bW5zJyB8ICdjb25kaXRpb25zJyB8ICdzb3J0cycsIGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duW10+KSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdjb2x1bW5zJzpcbiAgICAgICAgdGhpcy5jb2x1bW5zLnVwZGF0ZSgocHJldkNvbHMpID0+IHtcbiAgICAgICAgICBjb25zdCBjb2x1bW5zID0gcHJldkNvbHM7XG4gICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KGNvbHVtbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgcmV0dXJuIGNvbHVtbnM7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NvcnRzJzpcbiAgICAgICAgdGhpcy5zb3J0cy51cGRhdGUoKHByZXZTb3J0cykgPT4ge1xuICAgICAgICAgIGNvbnN0IHNvcnRzID0gcHJldlNvcnRzO1xuICAgICAgICAgIG1vdmVJdGVtSW5BcnJheShzb3J0cywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgICByZXR1cm4gc29ydHM7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NvbmRpdGlvbnMnOlxuICAgICAgICB0aGlzLmNvbmRpdGlvbnMudXBkYXRlKChwcmV2Q29uZGl0aW9ucykgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBwcmV2Q29uZGl0aW9ucztcbiAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkoY29uZGl0aW9ucywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgICAgICByZXR1cm4gY29uZGl0aW9ucztcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlVmlld05hbWVUb2dnbGUoKSB7XG4gICAgdGhpcy5zaG93TmFtZUlucHV0LnVwZGF0ZSgocHJldikgPT4gIXByZXYpO1xuICB9XG5cbiAgZ2VuZXJhdGVWaWV3TmFtZSh0aXRsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRpdGxlLnJlcGxhY2UoL1xccysvZywgJy0nKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgaGFuZGxlQXBwbHlDbGljaygpIHtcbiAgICBjb25zdCB1cGRhdGVkVmlldyA9IHtcbiAgICAgIC4uLnRoaXMuc2VsZWN0ZWRWaWV3LFxuICAgICAgbmFtZTogdGhpcy5nZW5lcmF0ZVZpZXdOYW1lKHRoaXMuc2VsZWN0ZWRWaWV3LnRpdGxlKSxcbiAgICAgIGNvbmRpdGlvbnM6IHRoaXMuY29uZGl0aW9ucygpLFxuICAgICAgY29sdW1uczogdGhpcy5jb2x1bW5zKCksXG4gICAgICBzb3J0czogdGhpcy5zb3J0cygpLFxuICAgIH07XG4gICAgaWYgKHRoaXMudmlld05hbWVzLmluY2x1ZGVzKHVwZGF0ZWRWaWV3Lm5hbWUpICYmIHRoaXMubW9kZSA9PSAnY3JlYXRlJykge1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgIHRpdGxlOiAnSW52YWxpZCBUaXRsZScsXG4gICAgICAgIGNvbnRlbnQ6ICdUaGUgdGl0bGUgeW91IGhhdmUgY2hvc2VuIGFscmVhZHkgZXhpc3RzLiBQbGVhc2UgY2hvb3NlIGEgZGlmZmVyZW50IHRpdGxlIGZvciB5b3VyIGN1c3RvbSB2aWV3LicsXG4gICAgICAgIGNvbG9yOiAnZGFuZ2VyJyBhcyBBWFN0eWxlQ29sb3JUeXBlLFxuICAgICAgICBsb2NhdGlvbjogJ2JvdHRvbS1jZW50ZXInIGFzIEFYTG9jYXRpb24sXG4gICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICB0aW1lT3V0OiAzMDAwLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2UoeyBzYXZlOiB0cnVlLCB1cGRhdGVkVmlldyB9KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVSZXNldENsaWNrKCkge1xuICAgIHRoaXMuY29uZGl0aW9ucy5zZXQoY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRWaWV3LmNvbmRpdGlvbnMpKTtcbiAgICB0aGlzLmNvbHVtbnMuc2V0KGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkVmlldy5jb2x1bW5zKSk7XG4gICAgdGhpcy5zb3J0cy5zZXQoY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRWaWV3LnNvcnRzKSk7XG4gIH1cbiAgaGFuZGxlRGlzY2FyZENsaWNrKCkge1xuICAgIHRoaXMuY2xvc2UoeyBzYXZlOiBmYWxzZSB9KTtcbiAgfVxuICBoYW5kbGVDYW5jZWxDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKHsgc2F2ZTogZmFsc2UgfSk7XG4gIH1cbiAgaGFuZGxlRGVsZXRlQ2xpY2soKSB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAuY29uZmlybSgnV2FybmluZycsICdBcmUgeW91IHN1cmUgd2FudCB0byBkZWxldGUgdGhpcyB2aWV3PycsICdkYW5nZXInLCAnaG9yaXpvbnRhbCcpXG4gICAgICAudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5yZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKHsgZGVsZXRlOiB0cnVlLCB2aWV3TmFtZTogdGhpcy5zZWxlY3RlZFZpZXcubmFtZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxheC1oZWFkZXIgY2xhc3M9XCJheC1wLTQgYXgtZmxleCBheC1qdXN0aWZ5LWJldHdlZW4gYXgtYm9yZGVyLWJcIj5cbiAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgQGlmIChzaG93TmFtZUlucHV0KCkgJiYgbW9kZT09PSdjcmVhdGUnKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LXctNjBcIj5cbiAgICAgIDxheC10ZXh0LWJveCBjbGFzcz1cImF4LXNtXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZpZXcudGl0bGVcIj5cbiAgICAgICAgQGlmKHNob3dOYW1lSW5wdXQoKSl7XG4gICAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgICAgPGF4LWJ1dHRvbiAob25DbGljayk9XCJjaGFuZ2VWaWV3TmFtZVRvZ2dsZSgpXCIgbG9vaz1cImRlZmF1bHRcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29kaWxkIGZhcyBmYS1jaGVjayBheC10ZXh0LXNtXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgPC9kaXY+XG4gICAgfUBlbHNlIHtcbiAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQtbGcgYXgtZm9udC1zZW1pYm9sZFwiPnt7IHNlbGVjdGVkVmlldy50aXRsZSB9fTwvc3Bhbj5cbiAgICB9IEBpZiAobW9kZT09PVwiY3JlYXRlXCIpIHtcbiAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgteHNcIiAob25DbGljayk9XCJjaGFuZ2VWaWV3TmFtZVRvZ2dsZSgpXCIgY29sb3I9XCJkZWZhdWx0XCI+XG4gICAgICBAaWYoIXNob3dOYW1lSW5wdXQoKSApe1xuICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1yZWd1bGFyIGZhLXBlbiBheC10ZXh0LXNtIGF4LXRleHQtbmV1dHJhbC02MDBcIj4gPC9heC1pY29uPlxuICAgICAgfVxuICAgIDwvYXgtYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxheC1jbG9zZS1idXR0b24+PC9heC1jbG9zZS1idXR0b24+XG48L2F4LWhlYWRlcj5cbjxkaXYgY2xhc3M9XCJheC1wLTRcIj5cbiAgPGF4LXRhYnMgW2NvbnRlbnRdPVwiY29udGVudHNcIiBsb29rPVwid2l0aC1saW5lXCI+XG4gICAgPGF4LXRhYi1pdGVtIHRleHQ9XCJDb2x1bW5zXCI+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYmFkZ2UgW3RleHRdPVwidmlzaWJsZUNvbHVtbnMoKS5sZW5ndGgudG9TdHJpbmcoKVwiIGNvbG9yPVwicHJpbWFyeVwiPiA8L2F4LWJhZGdlPlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgICA8YXgtY29udGVudD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1wLTQgYXgtc2VsZWN0LW5vbmUgYXgtaC1bNDAwcHhdXCJcbiAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgnY29sdW1ucycsICRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTMgYXgtdy1mdWxsIGF4LXNvcnRlZC1saXN0IGF4LW92ZXJmbG93LWF1dG8gYXgtcGUtMlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW5zKClcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtcHktMSBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuXCIgY2RrRHJhZyBjZGtEcmFnQm91bmRhcnk9XCIuYXgtc29ydGVkLWxpc3RcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTNcIiBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1ncmlwLWRvdHMtdmVydGljYWwgYXgtY3Vyc29yLW1vdmVcIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImF4LWZvbnQtbWVkaXVtIGF4LXRleHQtc21cIj57eyBpdGVtLnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxheC1zd2l0Y2hcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cInVwZGF0ZUNvbHVtbkl0ZW0oJGV2ZW50LCBpdGVtLm5hbWUpXCJcbiAgICAgICAgICAgICAgICA+PC9heC1zd2l0Y2g+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9heC1jb250ZW50PlxuICAgIDwvYXgtdGFiLWl0ZW0+XG4gICAgPGF4LXRhYi1pdGVtIHRleHQ9XCJDb25kaXRpb25zXCI+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYmFkZ2UgW3RleHRdPVwiY29uZGl0aW9ucygpLmxlbmd0aC50b1N0cmluZygpXCIgY29sb3I9XCJwcmltYXJ5XCI+IDwvYXgtYmFkZ2U+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgIDxheC1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWp1c3RpZnktc3RhcnQgYXgtZ2FwLTQgYXgtcHktNCBheC1zZWxlY3Qtbm9uZSBheC1oLVs0MDBweF1cIlxuICAgICAgICAgIFtjbGFzcy5heC1qdXN0aWZ5LWNlbnRlcl09XCIhY29uZGl0aW9ucygpLmxlbmd0aFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYoIWNvbmRpdGlvbnMoKS5sZW5ndGgpe1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPGF4LWltYWdlIHNyYz1cImFzc2V0cy9kb2N1bWVudHMuc3ZnXCI+PC9heC1pbWFnZT5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtbXQtNiBheC1tYi0xIGF4LWZvbnQtYm9sZFwiPk5vIEZpbHRlcnMgU2VsZWN0ZWQ8L3A+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQtbmV1dHJhbC00MDAgYXgtdGV4dC1zbSBtZDpheC10ZXh0LW1kXCJcbiAgICAgICAgICAgICAgPlBsZWFzZSBzZWxlY3QgZmllbGQocykgdGhhdCB5b3Ugd2FudCB0byBmaWx0ZXI8L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtc29ydGVkLWxpc3QgYXgtcHgtNCBheC1weS0xIGF4LW92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCdjb25kaXRpb25zJywgJGV2ZW50KVwiIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgICBAZm9yKGl0ZW0gb2YgY29uZGl0aW9ucygpOyB0cmFjayBpdGVtLm5hbWUgKXtcbiAgICAgICAgICAgICAgPGRpdiBjZGtEcmFnIGNka0RyYWdCb3VuZGFyeT1cIi5heC1zb3J0ZWQtbGlzdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tcy00IGF4LWZsZXggYXgtaXRlbXMtc3RhcnQgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57eyBsb2FkZXIuZ2V0UHJvcChpdGVtLm5hbWUpPy50aXRsZSB9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICBAaWYoZ2V0T3BlcmF0b3JUaXRsZShpdGVtLm5hbWUsaXRlbS5vcGVyYXRvcikpe1xuICAgICAgICAgICAgICAgICAgPGF4LWJhZGdlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtdGV4dC14c1wiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIFtsb29rXT1cIid0d290b25lJ1wiXG4gICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImdldE9wZXJhdG9yVGl0bGUoaXRlbS5uYW1lLCBpdGVtLm9wZXJhdG9yKVwiXG4gICAgICAgICAgICAgICAgICA+PC9heC1iYWRnZT5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1ncm91cCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZ3JpcC1kb3RzLXZlcnRpY2FsIGF4LWN1cnNvci1tb3ZlXCIgY2RrRHJhZ0hhbmRsZT48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheHAtd2lkZ2V0LWZpbHRlci1yZW5kZXJlclxuICAgICAgICAgICAgICAgICAgICAgIFtzY2hlbWFdPVwiZ2V0U2NoZW1hKGl0ZW0ubmFtZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtwcm9wXT1cImxvYWRlci5nZXRQcm9wKGl0ZW0ubmFtZSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFsob3BlcmF0b3IpXT1cIml0ZW0ub3BlcmF0b3JcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvYXhwLXdpZGdldC1maWx0ZXItcmVuZGVyZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwicmVtb3ZlQ29uZGl0aW9uKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtdHJhc2gtY2FuXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGxcIiAjYWRkRmllbGQ+XG4gICAgICAgICAgICAgIEBpZihjb25kaXRpb25zKCkubGVuZ3RoKXtcbiAgICAgICAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0ZXh0PVwiQWRkIGZpZWxkXCIgbG9vaz1cImJsYW5rXCIgY2xhc3M9XCJheC1zbVwiPjwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWNlbnRlciBheC13LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJBZGQgZmllbGRcIiBsb29rPVwib3V0bGluZVwiIGNsYXNzPVwiYXgtbWQgYXgtdy01NlwiPjwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8YXgtcG9wb3ZlclxuICAgICAgICAgICAgICAgICNjb25kaXRpb25zUG9wb3ZlclxuICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiYWRkRmllbGRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiY29uZGl0aW9ucygpLmxlbmd0aCA/ICdib3R0b20tc3RhcnQnIDogJ2JvdHRvbSdcIlxuICAgICAgICAgICAgICAgIFtvZmZzZXRZXT1cIjhcIlxuICAgICAgICAgICAgICAgIFtvcGVuT25dPVwiJ3RvZ2dsZSdcIlxuICAgICAgICAgICAgICAgIFtjbG9zZU9uXT1cIidjbGlja091dCdcIlxuICAgICAgICAgICAgICAgIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAob25PcGVuZWQpPVwicmVzZXRTZWxlY3RlZEZpZWxkTmFtZXMoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWJnLXN1cmZhY2UgYXgtYm9yZGVyIGF4LWJvcmRlci1kZWZhdWx0IGF4LXJvdW5kZWQtbWQgYXgtc2hhZG93LW1kIGF4LXctZnVsbCBheC1taW4tdy1bMjUwcHhdXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtYm9yZGVyLWItWzFweF0gYXgtcGItMiBheC1tYi0yIGF4LXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtdGl0bGUgY2xhc3M9XCJheC1mb250LWJvbGRcIj5GaWVsZHM8L2F4LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWF4LWgtNDggYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtc2VsZWN0aW9uLWxpc3RcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCInbmFtZSdcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0RmllbGRdPVwiJ3RpdGxlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZENvbmRpdGlvbk5hbWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlyZWN0aW9uXT1cIid2ZXJ0aWNhbCdcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJwcm9wcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2F4LXNlbGVjdGlvbi1saXN0PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWVuZCBheC1ib3JkZXItdC1bMXB4XSBheC1wLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImFkZENvbmRpdGlvbigpOyBjb25kaXRpb25zUG9wb3Zlci5jbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICB0ZXh0PVwiQ29uZmlybVwiXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2F4LXBvcG92ZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2F4LWNvbnRlbnQ+XG4gICAgPC9heC10YWItaXRlbT5cbiAgICA8YXgtdGFiLWl0ZW0gdGV4dD1cIlNvcnRpbmdcIj5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1iYWRnZSBbdGV4dF09XCJzb3J0cygpLmxlbmd0aC50b1N0cmluZygpXCIgY29sb3I9XCJwcmltYXJ5XCI+IDwvYXgtYmFkZ2U+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgIDxheC1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LXAtNCBheC1mbGV4LWNvbCBheC1qdXN0aWZ5LXN0YXJ0IGF4LWdhcC00IGF4LXNlbGVjdC1ub25lIGF4LW92ZXJmbG93LWF1dG8gYXgtaC1bNDAwcHhdXCJcbiAgICAgICAgICBbY2xhc3MuYXgtanVzdGlmeS1jZW50ZXJdPVwiIXNvcnRzKCkubGVuZ3RoXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZighc29ydHMoKS5sZW5ndGgpe1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPGF4LWltYWdlIHNyYz1cImFzc2V0cy9kb2N1bWVudHMuc3ZnXCI+PC9heC1pbWFnZT5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtbXQtNiBheC1tYi0xIGF4LWZvbnQtYm9sZFwiPk5vIFNvcnRzIFNlbGVjdGVkPC9wPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LW5ldXRyYWwtNDAwIGF4LXRleHQtc20gbWQ6YXgtdGV4dC1tZFwiXG4gICAgICAgICAgICAgID5QbGVhc2Ugc2VsZWN0IGZpZWxkKHMpIHRoYXQgeW91IHdhbnQgdG8gc29ydDwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgnc29ydHMnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMyBheC13LWZ1bGwgYXgtc29ydGVkLWxpc3QgYXgtcHktMSBheC1vdmVyZmxvdy1hdXRvXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNvcnRzKClcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTIgYXgtaXRlbXMtY2VudGVyXCIgY2RrRHJhZyBjZGtEcmFnQm91bmRhcnk9XCIuYXgtc29ydGVkLWxpc3RcIj5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWdyaXAtZG90cy12ZXJ0aWNhbCBheC1jdXJzb3ItbW92ZVwiIGNka0RyYWdIYW5kbGU+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDxheC1zZWxlY3QtYm94IFtkYXRhU291cmNlXT1cInByb3BzKClcIiB2YWx1ZUZpZWxkPVwibmFtZVwiIHRleHRGaWVsZD1cInRpdGxlXCIgWyhuZ01vZGVsKV09XCJpdGVtLm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiBbY29sb3JdPVwiJ2RlZmF1bHQnXCIgY2xhc3M9XCJheC1zbVwiIChjbGljayk9XCJ1cGRhdGVTb3J0SXRlbShpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgPGF4LWljb25cbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXRleHQtcHJpbWFyeV09XCJpdGVtLmRpciA9PSAnYXNjJ1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEtc29saWQgZmEtYXJyb3ctdXAtbG9uZyBheC10ZXh0LW5ldXRyYWwtNDAwXCJcbiAgICAgICAgICAgICAgICAgID48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvblxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtdGV4dC1wcmltYXJ5XT1cIml0ZW0uZGlyID09ICdkZXNjJ1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEtc29saWQgZmEtYXJyb3ctZG93bi1sb25nIGF4LXRleHQtbmV1dHJhbC00MDBcIlxuICAgICAgICAgICAgICAgICAgPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cblxuICAgICAgICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwicmVtb3ZlU29ydEl0ZW0oaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtdHJhc2gtY2FuIGF4LXRleHQtZGFuZ2VyLTUwMFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXctZnVsbFwiICNhZGRGaWVsZD5cbiAgICAgICAgICAgICAgQGlmKHNvcnRzKCkubGVuZ3RoKXtcbiAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImFkZFNvcnRJdGVtKClcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgdGV4dD1cIkFkZCBmaWVsZFwiXG4gICAgICAgICAgICAgICAgbG9vaz1cImJsYW5rXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImF4LXNtXCJcbiAgICAgICAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWNlbnRlciBheC13LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJhZGRTb3J0SXRlbSgpXCJcbiAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICB0ZXh0PVwiQWRkIGZpZWxkXCJcbiAgICAgICAgICAgICAgICAgIGxvb2s9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtbWQgYXgtdy01NlwiXG4gICAgICAgICAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9heC1jb250ZW50PlxuICAgIDwvYXgtdGFiLWl0ZW0+XG4gIDwvYXgtdGFicz5cbiAgPG5nLXRlbXBsYXRlIFtheFRhYkNvbnRlbnRdICNjb250ZW50cz1cImF4VGFiQ29udGVudFwiPiA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG48YXgtZm9vdGVyIGNsYXNzPVwiIWF4LWp1c3RpZnktZW5kXCI+XG4gIEBpZiAobW9kZT09PVwiZWRpdFwiKSB7XG4gIDxheC1kcm9wZG93bi1idXR0b24gdGV4dD1cIkRpc2NhcmRcIiAob25DbGljayk9XCJoYW5kbGVEaXNjYXJkQ2xpY2soKVwiPlxuICAgIDxheC1idXR0b24taXRlbS1saXN0PlxuICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJSZXNldFwiIChvbkNsaWNrKT1cImhhbmRsZVJlc2V0Q2xpY2soKVwiPlxuICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1zb2xpZCBmYS1yb3RhdGUtbGVmdCBmYS1mbGlwLWhvcml6b250YWxcIj48L2F4LWljb24+XG4gICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgIDxheC1idXR0b24taXRlbSBjbGFzcz1cImF4LXRleHQtZGFuZ2VyXCIgdGV4dD1cIkRlbGV0ZVwiIChvbkNsaWNrKT1cImhhbmRsZURlbGV0ZUNsaWNrKClcIj5cbiAgICAgICAgPGF4LXByZWZpeD4gPGF4LWljb24gaWNvbj1cImZhcyBmYS10cmFzaCBmYS1mbGlwLWhvcml6b250YWxcIj48L2F4LWljb24+IDwvYXgtcHJlZml4XG4gICAgICA+PC9heC1idXR0b24taXRlbT5cbiAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gIDwvYXgtZHJvcGRvd24tYnV0dG9uPlxuICB9IEBlbHNlIHtcbiAgPGF4LWJ1dHRvbiB0ZXh0PVwiQ2FuY2VsXCIgbG9vaz1cIm91dGxpbmVcIiAob25DbGljayk9XCJoYW5kbGVDYW5jZWxDbGljaygpXCI+PC9heC1idXR0b24+XG4gIH1cbiAgPGF4LWJ1dHRvblxuICAgIFt0ZXh0XT1cIm1vZGUgPT09ICdjcmVhdGUnID8gJ1NhdmUnIDogJ1NhdmUgQ2hhbmdlcydcIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgKG9uQ2xpY2spPVwiaGFuZGxlQXBwbHlDbGljaygpXCJcbiAgPjwvYXgtYnV0dG9uPlxuPC9heC1mb290ZXI+XG4iXX0=
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWN1c3RvbS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0cy9zcmMvbGliL2FkbWluL2VudGl0eS1sYXlvdXQvZW50aXR5LWxpc3Qtdmlldy9jb21wb25lbnRzL2VudGl0eS1jdXN0b20tdmlldy9lbnRpdHktY3VzdG9tLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXRzL3NyYy9saWIvYWRtaW4vZW50aXR5LWxheW91dC9lbnRpdHktbGlzdC12aWV3L2NvbXBvbmVudHMvZW50aXR5LWN1c3RvbS12aWV3L2VudGl0eS1jdXN0b20tdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQXVJLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pOLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWF0QyxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsbUJBQW1CO0lBVDNF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YUFDcEYsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDYixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqRSxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTdLVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyxpSEFObEM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsY0FBYzthQUN4QjtTQUNGLGlEQzVCSCxxNFZBK05BOzsyRkRqTWEsa0NBQWtDO2tCQVQ5QyxTQUFTO3NDQUVTLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGNBQWM7eUJBQ3hCO3FCQUNGOzhCQVFRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYTG9jYXRpb24sIEFYU3R5bGVDb2xvclR5cGUsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcbmltcG9ydCB7IEFYVW5zdWJzY3JpYmVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEFYUEVudGl0eUxpc3RDb25kaXRpb25Db25maWcsIEFYUEVudGl0eUxpc3REaXNwbGF5Q29sdW1uQ29uZmlnLCBBWFBFbnRpdHlMaXN0U29ydENvbmZpZywgQVhQRW50aXR5UHJvcGVydHlDb25maWcsIEFYUEZpbHRlck9wZXJhdG9yLCBBWFBTY2hlbWFSZWdpc3RyeVNlcnZpY2UsIEVRX09QRVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgU2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IEFYUExpc3RWaWV3TG9hZGVyIH0gZnJvbSAnLi4vLi4vbGlzdC12aWV3LmNvbmZpZyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWN1c3RvbS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYVW5zdWJzY3JpYmVyLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZUN1c3RvbVZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VQYWdlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzY2hlbWFSZWdpc3RyeSA9IGluamVjdChBWFBTY2hlbWFSZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0U2VydmljZSA9IGluamVjdChBWFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgZGlhbG9nU2VydmljZSA9IGluamVjdChBWERpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIHN1YnNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuXG4gIEBJbnB1dCgpIGxvYWRlciE6IEFYUExpc3RWaWV3TG9hZGVyO1xuICBASW5wdXQoKSBtb2RlOiAnZWRpdCcgfCAnY3JlYXRlJyA9ICdjcmVhdGUnO1xuICBASW5wdXQoKSBzZWxlY3RlZFZpZXc6IGFueSA9IHt9O1xuXG4gIHByb3RlY3RlZCBzaG93TmFtZUlucHV0OiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBwcm9wczogV3JpdGFibGVTaWduYWw8QVhQRW50aXR5UHJvcGVydHlDb25maWdbXT4gPSBzaWduYWwoW10pO1xuXG4gIHByb3RlY3RlZCBjb2x1bW5zOiBXcml0YWJsZVNpZ25hbDxBWFBFbnRpdHlMaXN0RGlzcGxheUNvbHVtbkNvbmZpZ1tdPiA9IHNpZ25hbChbXSk7XG4gIHByb3RlY3RlZCB2aXNpYmxlQ29sdW1uczogU2lnbmFsPEFYUEVudGl0eUxpc3REaXNwbGF5Q29sdW1uQ29uZmlnW10+ID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmNvbHVtbnMoKS5maWx0ZXIoKGMpID0+IGMudmlzaWJsZSlcbiAgKTtcbiAgcHJvdGVjdGVkIGNvbmRpdGlvbnM6IFdyaXRhYmxlU2lnbmFsPEFYUEVudGl0eUxpc3RDb25kaXRpb25Db25maWdbXT4gPSBzaWduYWwoW10pO1xuICBwcm90ZWN0ZWQgc29ydHM6IFdyaXRhYmxlU2lnbmFsPEFYUEVudGl0eUxpc3RTb3J0Q29uZmlnW10+ID0gc2lnbmFsKFtdKTtcblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRDb25kaXRpb25OYW1lczogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIHZpZXdOYW1lczogc3RyaW5nW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9wcy5zZXQoY2xvbmVEZWVwKHRoaXMubG9hZGVyLmVudGl0eS5wcm9wZXJ0aWVzKSk7XG4gICAgdGhpcy5jb2x1bW5zLnNldChjbG9uZURlZXAodGhpcy5zZWxlY3RlZFZpZXcuY29sdW1ucykpO1xuICAgIHRoaXMuY29uZGl0aW9ucy5zZXQoY2xvbmVEZWVwKHRoaXMuc2VsZWN0ZWRWaWV3LmNvbmRpdGlvbnMpKTtcbiAgICB0aGlzLnNvcnRzLnNldChjbG9uZURlZXAodGhpcy5zZWxlY3RlZFZpZXcuc29ydHMpKTtcbiAgICB0aGlzLmxvYWRlci52aWV3cyQucGlwZSh0aGlzLnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKCh2aWV3cykgPT4ge1xuICAgICAgdGhpcy52aWV3TmFtZXMgPSB2aWV3cy5tYXAoKHYpID0+IHYubmFtZSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBDb2x1bW5zICoqKioqKioqKioqKioqKioqKi8vXG4gIHVwZGF0ZUNvbHVtbkl0ZW0oZXZlbnQ6IEFYVmFsdWVDaGFuZ2VkRXZlbnQsIGNvbE5hbWU6IHN0cmluZykge1xuICAgIGlmIChldmVudC5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5jb2x1bW5zLnVwZGF0ZSgocHJldkNvbHMpID0+XG4gICAgICAgIHByZXZDb2xzLm1hcCgoY29sKSA9PiAoY29sLm5hbWUgPT09IGNvbE5hbWUgPyB7IC4uLmNvbCwgdmlzaWJsZTogZXZlbnQudmFsdWUgfSA6IGNvbCkpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIFNvcnRzICoqKioqKioqKioqKioqKioqKi8vXG4gIHVwZGF0ZVNvcnRJdGVtKGl0ZW06IEFYUEVudGl0eUxpc3RTb3J0Q29uZmlnKSB7XG4gICAgdGhpcy5zb3J0cy51cGRhdGUoKHByZXZTb3J0cykgPT5cbiAgICAgIHByZXZTb3J0cy5tYXAoKHNvcnQpID0+IChzb3J0Lm5hbWUgPT09IGl0ZW0ubmFtZSA/IHsgLi4uc29ydCwgZGlyOiBzb3J0LmRpciA9PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnIH0gOiBzb3J0KSlcbiAgICApO1xuICB9XG4gIGFkZFNvcnRJdGVtKCkge1xuICAgIGNvbnN0IHNvcnROYW1lcyA9IHRoaXMuc29ydHMoKS5tYXAoKHApID0+IHAubmFtZSk7XG4gICAgY29uc29sZS5sb2codGhpcy5wcm9wcygpLCBzb3J0TmFtZXMpO1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLnByb3BzKCkuZmluZCgoYykgPT4gIXNvcnROYW1lcy5pbmNsdWRlcyhjLm5hbWUpKT8ubmFtZSB8fCB0aGlzLnByb3BzKClbMF0ubmFtZTtcbiAgICB0aGlzLnNvcnRzLnVwZGF0ZSgocHJldlNvcnRzKSA9PiBbLi4ucHJldlNvcnRzLCB7IG5hbWUsIGRpcjogJ2FzYycgfSBhcyBBWFBFbnRpdHlMaXN0U29ydENvbmZpZ10pO1xuICB9XG5cbiAgcmVtb3ZlU29ydEl0ZW0oaXRlbTogQVhQRW50aXR5TGlzdFNvcnRDb25maWcpIHtcbiAgICB0aGlzLnNvcnRzLnVwZGF0ZSgocHJldlNvcnRzKSA9PiBwcmV2U29ydHMuZmlsdGVyKChzb3J0KSA9PiBpdGVtLm5hbWUgIT0gc29ydC5uYW1lKSk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBDb25kaXRpb25zICoqKioqKioqKioqKioqKioqKi8vXG4gIHByb3RlY3RlZCBnZXRTY2hlbWEobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMoKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gbmFtZSk/LnNjaGVtYSA/PyAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRPcGVyYXRvcnMobmFtZTogc3RyaW5nKTogQVhQRmlsdGVyT3BlcmF0b3JbXSB7XG4gICAgY29uc3Qgc2NoZW1hTmFtZSA9IHRoaXMucHJvcHMoKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gbmFtZSk/LnNjaGVtYSA/PyAnJztcbiAgICByZXR1cm4gdGhpcy5zY2hlbWFSZWdpc3RyeS5yZXNvbHZlKHNjaGVtYU5hbWUpPy5maWx0ZXJPcHRpb25zPy5vcGVyYXRvcnMgPz8gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdE9wZXJhdG9yKG5hbWU6IHN0cmluZyk6IEFYUEZpbHRlck9wZXJhdG9yIHtcbiAgICBjb25zdCBzY2hlbWFOYW1lID0gdGhpcy5wcm9wcygpLmZpbmQoKGMpID0+IGMubmFtZSA9PSBuYW1lKT8uc2NoZW1hID8/ICcnO1xuICAgIHJldHVybiB0aGlzLnNjaGVtYVJlZ2lzdHJ5LnJlc29sdmUoc2NoZW1hTmFtZSk/LmZpbHRlck9wdGlvbnM/LmRlZmF1bHQgPz8gRVFfT1BFUjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRPcGVyYXRvclRpdGxlKHNjaGVtYU5hbWU6IHN0cmluZywgb3ByTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRPcGVyYXRvcnMoc2NoZW1hTmFtZSkuZmluZCgoYykgPT4gYy5uYW1lID09IG9wck5hbWUpPy50aXRsZSB8fCAnJztcbiAgfVxuICBwcm90ZWN0ZWQgcmVzZXRTZWxlY3RlZEZpZWxkTmFtZXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbk5hbWVzID0gdGhpcy5jb25kaXRpb25zKCkubWFwKChjKSA9PiBjLm5hbWUpO1xuICB9XG4gIHByb3RlY3RlZCBhZGRDb25kaXRpb24oKSB7XG4gICAgY29uc3QgY29uZGl0aW9ucyA9IHRoaXMuc2VsZWN0ZWRDb25kaXRpb25OYW1lcy5tYXAoKGMpID0+IHtcbiAgICAgIGNvbnN0IG9wciA9IHRoaXMuZ2V0RGVmYXVsdE9wZXJhdG9yKGMpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogYyxcbiAgICAgICAgb3BlcmF0b3I6IG9wci5uYW1lLFxuICAgICAgfTtcbiAgICB9KTtcbiAgICB0aGlzLmNvbmRpdGlvbnMuc2V0KGNvbmRpdGlvbnMgYXMgYW55KTtcbiAgfVxuXG4gIHJlbW92ZUNvbmRpdGlvbihpdGVtOiBBWFBFbnRpdHlMaXN0Q29uZGl0aW9uQ29uZmlnKSB7XG4gICAgdGhpcy5jb25kaXRpb25zLnVwZGF0ZSgocHJldkNvbmRpdGlvbnMpID0+IHByZXZDb25kaXRpb25zLmZpbHRlcigoY29uKSA9PiBjb24ubmFtZSAhPSBpdGVtLm5hbWUpKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIENvbW1vbiAqKioqKioqKioqKioqKioqKiovL1xuICBwcm90ZWN0ZWQgZHJvcCh0eXBlOiAnY29sdW1ucycgfCAnY29uZGl0aW9ucycgfCAnc29ydHMnLCBldmVudDogQ2RrRHJhZ0Ryb3A8dW5rbm93bltdPikge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnY29sdW1ucyc6XG4gICAgICAgIHRoaXMuY29sdW1ucy51cGRhdGUoKHByZXZDb2xzKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29sdW1ucyA9IHByZXZDb2xzO1xuICAgICAgICAgIG1vdmVJdGVtSW5BcnJheShjb2x1bW5zLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgIHJldHVybiBjb2x1bW5zO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzb3J0cyc6XG4gICAgICAgIHRoaXMuc29ydHMudXBkYXRlKChwcmV2U29ydHMpID0+IHtcbiAgICAgICAgICBjb25zdCBzb3J0cyA9IHByZXZTb3J0cztcbiAgICAgICAgICBtb3ZlSXRlbUluQXJyYXkoc29ydHMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgcmV0dXJuIHNvcnRzO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjb25kaXRpb25zJzpcbiAgICAgICAgdGhpcy5jb25kaXRpb25zLnVwZGF0ZSgocHJldkNvbmRpdGlvbnMpID0+IHtcbiAgICAgICAgICBjb25zdCBjb25kaXRpb25zID0gcHJldkNvbmRpdGlvbnM7XG4gICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KGNvbmRpdGlvbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgcmV0dXJuIGNvbmRpdGlvbnM7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVZpZXdOYW1lVG9nZ2xlKCkge1xuICAgIHRoaXMuc2hvd05hbWVJbnB1dC51cGRhdGUoKHByZXYpID0+ICFwcmV2KTtcbiAgfVxuXG4gIGdlbmVyYXRlVmlld05hbWUodGl0bGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aXRsZS5yZXBsYWNlKC9cXHMrL2csICctJykudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIGhhbmRsZUFwcGx5Q2xpY2soKSB7XG4gICAgY29uc3QgdXBkYXRlZFZpZXcgPSB7XG4gICAgICAuLi50aGlzLnNlbGVjdGVkVmlldyxcbiAgICAgIG5hbWU6IHRoaXMuZ2VuZXJhdGVWaWV3TmFtZSh0aGlzLnNlbGVjdGVkVmlldy50aXRsZSksXG4gICAgICBjb25kaXRpb25zOiB0aGlzLmNvbmRpdGlvbnMoKSxcbiAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucygpLFxuICAgICAgc29ydHM6IHRoaXMuc29ydHMoKSxcbiAgICB9O1xuICAgIGlmICh0aGlzLnZpZXdOYW1lcy5pbmNsdWRlcyh1cGRhdGVkVmlldy5uYW1lKSAmJiB0aGlzLm1vZGUgPT0gJ2NyZWF0ZScpIHtcbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICB0aXRsZTogJ0ludmFsaWQgVGl0bGUnLFxuICAgICAgICBjb250ZW50OiAnVGhlIHRpdGxlIHlvdSBoYXZlIGNob3NlbiBhbHJlYWR5IGV4aXN0cy4gUGxlYXNlIGNob29zZSBhIGRpZmZlcmVudCB0aXRsZSBmb3IgeW91ciBjdXN0b20gdmlldy4nLFxuICAgICAgICBjb2xvcjogJ2RhbmdlcicgYXMgQVhTdHlsZUNvbG9yVHlwZSxcbiAgICAgICAgbG9jYXRpb246ICdib3R0b20tY2VudGVyJyBhcyBBWExvY2F0aW9uLFxuICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgdGltZU91dDogMzAwMCxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsb3NlKHsgc2F2ZTogdHJ1ZSwgdXBkYXRlZFZpZXcgfSk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlUmVzZXRDbGljaygpIHtcbiAgICB0aGlzLmNvbmRpdGlvbnMuc2V0KGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkVmlldy5jb25kaXRpb25zKSk7XG4gICAgdGhpcy5jb2x1bW5zLnNldChjbG9uZURlZXAodGhpcy5zZWxlY3RlZFZpZXcuY29sdW1ucykpO1xuICAgIHRoaXMuc29ydHMuc2V0KGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkVmlldy5zb3J0cykpO1xuICB9XG4gIGhhbmRsZURpc2NhcmRDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKHsgc2F2ZTogZmFsc2UgfSk7XG4gIH1cbiAgaGFuZGxlQ2FuY2VsQ2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZSh7IHNhdmU6IGZhbHNlIH0pO1xuICB9XG4gIGhhbmRsZURlbGV0ZUNsaWNrKCkge1xuICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgLmNvbmZpcm0oJ1dhcm5pbmcnLCAnQXJlIHlvdSBzdXJlIHdhbnQgdG8gZGVsZXRlIHRoaXMgdmlldz8nLCAnZGFuZ2VyJywgJ2hvcml6b250YWwnKVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKGRhdGEucmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5jbG9zZSh7IGRlbGV0ZTogdHJ1ZSwgdmlld05hbWU6IHRoaXMuc2VsZWN0ZWRWaWV3Lm5hbWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iLCI8YXgtaGVhZGVyIGNsYXNzPVwiYXgtcC00IGF4LWZsZXggYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWJvcmRlci1iXCI+XG4gIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlclwiPlxuICAgIEBpZiAoc2hvd05hbWVJbnB1dCgpICYmIG1vZGU9PT0nY3JlYXRlJykge1xuICAgIDxkaXYgY2xhc3M9XCJheC13LTYwXCI+XG4gICAgICA8YXgtdGV4dC1ib3ggY2xhc3M9XCJheC1zbVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRWaWV3LnRpdGxlXCI+XG4gICAgICAgIEBpZihzaG93TmFtZUlucHV0KCkpe1xuICAgICAgICA8YXgtc3VmZml4PlxuICAgICAgICAgIDxheC1idXR0b24gKG9uQ2xpY2spPVwiY2hhbmdlVmlld05hbWVUb2dnbGUoKVwiIGxvb2s9XCJkZWZhdWx0XCI+XG4gICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvZGlsZCBmYXMgZmEtY2hlY2sgYXgtdGV4dC1zbVwiPiA8L2F4LWljb24+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgICB9XG4gICAgICA8L2F4LXRleHQtYm94PlxuICAgIDwvZGl2PlxuICAgIH1AZWxzZSB7XG4gICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LWxnIGF4LWZvbnQtc2VtaWJvbGRcIj57eyBzZWxlY3RlZFZpZXcudGl0bGUgfX08L3NwYW4+XG4gICAgfSBAaWYgKG1vZGU9PT1cImNyZWF0ZVwiKSB7XG4gICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXhzXCIgKG9uQ2xpY2spPVwiY2hhbmdlVmlld05hbWVUb2dnbGUoKVwiIGNvbG9yPVwiZGVmYXVsdFwiPlxuICAgICAgQGlmKCFzaG93TmFtZUlucHV0KCkgKXtcbiAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtcmVndWxhciBmYS1wZW4gYXgtdGV4dC1zbSBheC10ZXh0LW5ldXRyYWwtNjAwXCI+IDwvYXgtaWNvbj5cbiAgICAgIH1cbiAgICA8L2F4LWJ1dHRvbj5cbiAgICB9XG4gIDwvZGl2PlxuICA8YXgtY2xvc2UtYnV0dG9uPjwvYXgtY2xvc2UtYnV0dG9uPlxuPC9heC1oZWFkZXI+XG48ZGl2IGNsYXNzPVwiYXgtcC00XCI+XG4gIDxheC10YWJzIFtjb250ZW50XT1cImNvbnRlbnRzXCIgbG9vaz1cIndpdGgtbGluZVwiPlxuICAgIDxheC10YWItaXRlbSBbdGV4dF09XCIoJ2VudGl0eS5jb2x1bW5zJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSA/PyAnQ29sdW1ucydcIj5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1iYWRnZSBbdGV4dF09XCJ2aXNpYmxlQ29sdW1ucygpLmxlbmd0aC50b1N0cmluZygpXCIgY29sb3I9XCJwcmltYXJ5XCI+IDwvYXgtYmFkZ2U+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgIDxheC1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1wLTQgYXgtc2VsZWN0LW5vbmUgYXgtaC1bNDAwcHhdXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCdjb2x1bW5zJywgJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0zIGF4LXctZnVsbCBheC1zb3J0ZWQtbGlzdCBheC1vdmVyZmxvdy1hdXRvIGF4LXBlLTJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sdW1ucygpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LXB5LTEgYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktYmV0d2VlblwiIGNka0RyYWcgY2RrRHJhZ0JvdW5kYXJ5PVwiLmF4LXNvcnRlZC1saXN0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZ3JpcC1kb3RzLXZlcnRpY2FsIGF4LWN1cnNvci1tb3ZlXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJheC1mb250LW1lZGl1bSBheC10ZXh0LXNtXCI+e3sgaXRlbS50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YXgtc3dpdGNoIGNsYXNzPVwiYXgtc21cIiBbKG5nTW9kZWwpXT1cIml0ZW0udmlzaWJsZVwiIChvblZhbHVlQ2hhbmdlZCk9XCJ1cGRhdGVDb2x1bW5JdGVtKCRldmVudCwgaXRlbS5uYW1lKVwiPjwvYXgtc3dpdGNoPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXgtY29udGVudD5cbiAgICA8L2F4LXRhYi1pdGVtPlxuICAgIDxheC10YWItaXRlbSB0ZXh0PVwiQ29uZGl0aW9uc1wiPlxuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LWJhZGdlIFt0ZXh0XT1cImNvbmRpdGlvbnMoKS5sZW5ndGgudG9TdHJpbmcoKVwiIGNvbG9yPVwicHJpbWFyeVwiPiA8L2F4LWJhZGdlPlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgICA8YXgtY29udGVudD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1qdXN0aWZ5LXN0YXJ0IGF4LWdhcC00IGF4LXB5LTQgYXgtc2VsZWN0LW5vbmUgYXgtaC1bNDAwcHhdXCJcbiAgICAgICAgICBbY2xhc3MuYXgtanVzdGlmeS1jZW50ZXJdPVwiIWNvbmRpdGlvbnMoKS5sZW5ndGhcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmKCFjb25kaXRpb25zKCkubGVuZ3RoKXtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxheC1pbWFnZSBzcmM9XCJhc3NldHMvZG9jdW1lbnRzLnN2Z1wiPjwvYXgtaW1hZ2U+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImF4LW10LTYgYXgtbWItMSBheC1mb250LWJvbGRcIj5ObyBGaWx0ZXJzIFNlbGVjdGVkPC9wPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LW5ldXRyYWwtNDAwIGF4LXRleHQtc20gbWQ6YXgtdGV4dC1tZFwiPlBsZWFzZSBzZWxlY3QgZmllbGQocykgdGhhdCB5b3Ugd2FudCB0byBmaWx0ZXI8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXNvcnRlZC1saXN0IGF4LXB4LTQgYXgtcHktMSBheC1vdmVyZmxvdy1hdXRvXCI+XG4gICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgnY29uZGl0aW9ucycsICRldmVudClcIiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgQGZvcihpdGVtIG9mIGNvbmRpdGlvbnMoKTsgdHJhY2sgaXRlbS5uYW1lICl7XG4gICAgICAgICAgICAgIDxkaXYgY2RrRHJhZyBjZGtEcmFnQm91bmRhcnk9XCIuYXgtc29ydGVkLWxpc3RcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbXMtNCBheC1mbGV4IGF4LWl0ZW1zLXN0YXJ0IGF4LWdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3sgbG9hZGVyLmdldFByb3AoaXRlbS5uYW1lKT8udGl0bGUgfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgQGlmKGdldE9wZXJhdG9yVGl0bGUoaXRlbS5uYW1lLGl0ZW0ub3BlcmF0b3IpKXtcbiAgICAgICAgICAgICAgICAgIDxheC1iYWRnZSBjbGFzcz1cImF4LXRleHQteHNcIiBjb2xvcj1cInByaW1hcnlcIiBbbG9va109XCIndHdvdG9uZSdcIiBbdGV4dF09XCJnZXRPcGVyYXRvclRpdGxlKGl0ZW0ubmFtZSwgaXRlbS5vcGVyYXRvcilcIj48L2F4LWJhZGdlPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdyb3VwIGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1ncmlwLWRvdHMtdmVydGljYWwgYXgtY3Vyc29yLW1vdmVcIiBjZGtEcmFnSGFuZGxlPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4cC13aWRnZXQtZmlsdGVyLXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgICAgW3NjaGVtYV09XCJnZXRTY2hlbWEoaXRlbS5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BdPVwibG9hZGVyLmdldFByb3AoaXRlbS5uYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgWyhvcGVyYXRvcildPVwiaXRlbS5vcGVyYXRvclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9heHAtd2lkZ2V0LWZpbHRlci1yZW5kZXJlcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjb2xvcj1cImRhbmdlclwiIGNsYXNzPVwiYXgtc21cIiAob25DbGljayk9XCJyZW1vdmVDb25kaXRpb24oaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS10cmFzaC1jYW5cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXctZnVsbFwiICNhZGRGaWVsZD5cbiAgICAgICAgICAgICAgQGlmKGNvbmRpdGlvbnMoKS5sZW5ndGgpe1xuICAgICAgICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt0ZXh0XT1cIidlbnRpdHkuYWRkLWZpZWxkJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCIgbG9vaz1cImJsYW5rXCIgY2xhc3M9XCJheC1zbVwiPjwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICB9QGVsc2Uge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWNlbnRlciBheC13LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFt0ZXh0XT1cIidlbnRpdHkuYWRkLWZpZWxkJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCIgbG9vaz1cIm91dGxpbmVcIiBjbGFzcz1cImF4LW1kIGF4LXctNTZcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPGF4LXBvcG92ZXJcbiAgICAgICAgICAgICAgICAjY29uZGl0aW9uc1BvcG92ZXJcbiAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cImFkZEZpZWxkXCJcbiAgICAgICAgICAgICAgICBbcGxhY2VtZW50XT1cImNvbmRpdGlvbnMoKS5sZW5ndGggPyAnYm90dG9tLXN0YXJ0JyA6ICdib3R0b20nXCJcbiAgICAgICAgICAgICAgICBbb2Zmc2V0WV09XCI4XCJcbiAgICAgICAgICAgICAgICBbb3Blbk9uXT1cIid0b2dnbGUnXCJcbiAgICAgICAgICAgICAgICBbY2xvc2VPbl09XCInY2xpY2tPdXQnXCJcbiAgICAgICAgICAgICAgICBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKG9uT3BlbmVkKT1cInJlc2V0U2VsZWN0ZWRGaWVsZE5hbWVzKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWJnLXN1cmZhY2UgYXgtYm9yZGVyIGF4LWJvcmRlci1kZWZhdWx0IGF4LXJvdW5kZWQtbWQgYXgtc2hhZG93LW1kIGF4LXctZnVsbCBheC1taW4tdy1bMjUwcHhdXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtYm9yZGVyLWItWzFweF0gYXgtcGItMiBheC1tYi0yIGF4LXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtdGl0bGUgY2xhc3M9XCJheC1mb250LWJvbGRcIj5GaWVsZHM8L2F4LXRpdGxlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWF4LWgtNDggYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtc2VsZWN0aW9uLWxpc3RcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCInbmFtZSdcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0RmllbGRdPVwiJ3RpdGxlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZENvbmRpdGlvbk5hbWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlyZWN0aW9uXT1cIid2ZXJ0aWNhbCdcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJwcm9wcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2F4LXNlbGVjdGlvbi1saXN0PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1qdXN0aWZ5LWVuZCBheC1ib3JkZXItdC1bMXB4XSBheC1wLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiAob25DbGljayk9XCJhZGRDb25kaXRpb24oKTsgY29uZGl0aW9uc1BvcG92ZXIuY2xvc2UoKVwiIGNsYXNzPVwiYXgtc21cIiB0ZXh0PVwiQ29uZmlybVwiIGNvbG9yPVwicHJpbWFyeVwiPiA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2F4LXBvcG92ZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2F4LWNvbnRlbnQ+XG4gICAgPC9heC10YWItaXRlbT5cbiAgICA8YXgtdGFiLWl0ZW0gdGV4dD1cIlNvcnRpbmdcIj5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1iYWRnZSBbdGV4dF09XCJzb3J0cygpLmxlbmd0aC50b1N0cmluZygpXCIgY29sb3I9XCJwcmltYXJ5XCI+IDwvYXgtYmFkZ2U+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgIDxheC1jb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LXAtNCBheC1mbGV4LWNvbCBheC1qdXN0aWZ5LXN0YXJ0IGF4LWdhcC00IGF4LXNlbGVjdC1ub25lIGF4LW92ZXJmbG93LWF1dG8gYXgtaC1bNDAwcHhdXCJcbiAgICAgICAgICBbY2xhc3MuYXgtanVzdGlmeS1jZW50ZXJdPVwiIXNvcnRzKCkubGVuZ3RoXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZighc29ydHMoKS5sZW5ndGgpe1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPGF4LWltYWdlIHNyYz1cImFzc2V0cy9kb2N1bWVudHMuc3ZnXCI+PC9heC1pbWFnZT5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYXgtbXQtNiBheC1tYi0xIGF4LWZvbnQtYm9sZFwiPnt7ICdlbnRpdHkubm8tc29ydCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvcD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1uZXV0cmFsLTQwMCBheC10ZXh0LXNtIG1kOmF4LXRleHQtbWRcIj57eyAnZW50aXR5LmFzay1zb3J0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgnc29ydHMnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMyBheC13LWZ1bGwgYXgtc29ydGVkLWxpc3QgYXgtcHktMSBheC1vdmVyZmxvdy1hdXRvXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNvcnRzKClcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTIgYXgtaXRlbXMtY2VudGVyXCIgY2RrRHJhZyBjZGtEcmFnQm91bmRhcnk9XCIuYXgtc29ydGVkLWxpc3RcIj5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWdyaXAtZG90cy12ZXJ0aWNhbCBheC1jdXJzb3ItbW92ZVwiIGNka0RyYWdIYW5kbGU+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDxheC1zZWxlY3QtYm94IFtkYXRhU291cmNlXT1cInByb3BzKClcIiB2YWx1ZUZpZWxkPVwibmFtZVwiIHRleHRGaWVsZD1cInRpdGxlXCIgWyhuZ01vZGVsKV09XCJpdGVtLm5hbWVcIj4gPC9heC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgIDxheC1idXR0b24gW2NvbG9yXT1cIidkZWZhdWx0J1wiIGNsYXNzPVwiYXgtc21cIiAoY2xpY2spPVwidXBkYXRlU29ydEl0ZW0oaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIFtjbGFzcy5heC10ZXh0LXByaW1hcnldPVwiaXRlbS5kaXIgPT0gJ2FzYydcIiBjbGFzcz1cImZhLXNvbGlkIGZhLWFycm93LXVwLWxvbmcgYXgtdGV4dC1uZXV0cmFsLTQwMFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIFtjbGFzcy5heC10ZXh0LXByaW1hcnldPVwiaXRlbS5kaXIgPT0gJ2Rlc2MnXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1hcnJvdy1kb3duLWxvbmcgYXgtdGV4dC1uZXV0cmFsLTQwMFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cblxuICAgICAgICAgICAgICAgIDxheC1idXR0b24gbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwicmVtb3ZlU29ydEl0ZW0oaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtdHJhc2gtY2FuIGF4LXRleHQtZGFuZ2VyLTUwMFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXctZnVsbFwiICNhZGRGaWVsZD5cbiAgICAgICAgICAgICAgQGlmKHNvcnRzKCkubGVuZ3RoKXtcbiAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImFkZFNvcnRJdGVtKClcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgW3RleHRdPVwiJ2VudGl0eS5hZGQtZmllbGQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgICAgID48L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgfUBlbHNlIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtanVzdGlmeS1jZW50ZXIgYXgtdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWRkU29ydEl0ZW0oKVwiXG4gICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgW3RleHRdPVwiJ2VudGl0eS5hZGQtZmllbGQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgbG9vaz1cIm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1tZCBheC13LTU2XCJcbiAgICAgICAgICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2F4LWNvbnRlbnQ+XG4gICAgPC9heC10YWItaXRlbT5cbiAgPC9heC10YWJzPlxuICA8bmctdGVtcGxhdGUgW2F4VGFiQ29udGVudF0gI2NvbnRlbnRzPVwiYXhUYWJDb250ZW50XCI+IDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbjxheC1mb290ZXIgY2xhc3M9XCIhYXgtanVzdGlmeS1lbmRcIj5cbiAgQGlmIChtb2RlPT09XCJlZGl0XCIpIHtcbiAgPGF4LWRyb3Bkb3duLWJ1dHRvbiBbdGV4dF09XCInZGlzY2FyZCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiIChvbkNsaWNrKT1cImhhbmRsZURpc2NhcmRDbGljaygpXCI+XG4gICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICA8YXgtYnV0dG9uLWl0ZW0gW3RleHRdPVwiKCdyZXNldCcgfCB0cmFuc2xhdGUgfCBhc3luYykgPz8gJyAnXCIgKG9uQ2xpY2spPVwiaGFuZGxlUmVzZXRDbGljaygpXCI+XG4gICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLXJvdGF0ZS1sZWZ0IGZhLWZsaXAtaG9yaXpvbnRhbFwiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgPGF4LWJ1dHRvbi1pdGVtIGNsYXNzPVwiYXgtdGV4dC1kYW5nZXJcIiB0ZXh0PVwiRGVsZXRlXCIgKG9uQ2xpY2spPVwiaGFuZGxlRGVsZXRlQ2xpY2soKVwiPlxuICAgICAgICA8YXgtcHJlZml4PiA8YXgtaWNvbiBpY29uPVwiZmFzIGZhLXRyYXNoIGZhLWZsaXAtaG9yaXpvbnRhbFwiPjwvYXgtaWNvbj4gPC9heC1wcmVmaXhcbiAgICAgID48L2F4LWJ1dHRvbi1pdGVtPlxuICAgIDwvYXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgPC9heC1kcm9wZG93bi1idXR0b24+XG4gIH0gQGVsc2Uge1xuICA8YXgtYnV0dG9uIFt0ZXh0XT1cIidjYW5jZWwnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIiBsb29rPVwib3V0bGluZVwiIChvbkNsaWNrKT1cImhhbmRsZUNhbmNlbENsaWNrKClcIj48L2F4LWJ1dHRvbj5cbiAgfVxuICA8YXgtYnV0dG9uIFt0ZXh0XT1cIm1vZGUgPT09ICdjcmVhdGUnID8gKCdzYXZlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSA6ICgnc2F2ZS1jaGFuZ2VzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKVwiIGNvbG9yPVwicHJpbWFyeVwiIChvbkNsaWNrKT1cImhhbmRsZUFwcGx5Q2xpY2soKVwiPjwvYXgtYnV0dG9uPlxuPC9heC1mb290ZXI+XG4iXX0=
|
|
@@ -10,6 +10,7 @@ import * as i3 from "@acorex/components/button";
|
|
|
10
10
|
import * as i4 from "@acorex/components/decorators";
|
|
11
11
|
import * as i5 from "@acorex/components/switch";
|
|
12
12
|
import * as i6 from "@angular/cdk/drag-drop";
|
|
13
|
+
import * as i7 from "@acorex/core/translation";
|
|
13
14
|
export class AXPListViewOptionsColumnsComponent {
|
|
14
15
|
constructor() {
|
|
15
16
|
this.store = inject((Store));
|
|
@@ -43,14 +44,14 @@ export class AXPListViewOptionsColumnsComponent {
|
|
|
43
44
|
this.onClosed.emit();
|
|
44
45
|
}
|
|
45
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionsColumnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: { loader: "loader" }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXPListViewOptionsColumnsComponent, selector: "axp-list-view-option-columns", inputs: { loader: "loader" }, outputs: { onClosed: "onClosed" }, ngImport: i0, template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">{{ 'entity.columns' | translate | async }}</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n <ng-container *ngFor=\"let item of columns$ | async\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch class=\"ax-sm\" [ngModel]=\"item.visible\" (onValueChanged)=\"handleVisibilityChange($event, item.name)\"></ax-switch>\n </div>\n </ng-container>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button [text]=\"'apply' | translate | async\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button [text]=\"'reset' | translate | async\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i5.AXSwitchComponent, selector: "ax-switch", inputs: ["disabled", "readonly", "color", "tabIndex", "value", "name", "isLoading"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged", "readonlyChange", "disabledChange"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }] }); }
|
|
47
48
|
}
|
|
48
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPListViewOptionsColumnsComponent, decorators: [{
|
|
49
50
|
type: Component,
|
|
50
|
-
args: [{ selector: 'axp-list-view-option-columns', template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">
|
|
51
|
+
args: [{ selector: 'axp-list-view-option-columns', template: "<ax-header class=\"ax-flex ax-items-center\">\n <h2 class=\"ax-text-xl ax-font-bold\">{{ 'entity.columns' | translate | async }}</h2>\n <ax-button (onClick)=\"handleClose()\" [look]=\"'blank'\">\n <ax-icon class=\"fa-solid fa-close ax-text-neutral-400 ax-text-xl\"> </ax-icon>\n </ax-button>\n</ax-header>\n<div class=\"ax-flex ax-flex-col ax-gap-4 ax-p-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n <ng-container *ngFor=\"let item of columns$ | async\">\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title }}</p>\n </div>\n <ax-switch class=\"ax-sm\" [ngModel]=\"item.visible\" (onValueChanged)=\"handleVisibilityChange($event, item.name)\"></ax-switch>\n </div>\n </ng-container>\n </div>\n</div>\n<ax-footer class=\"!ax-justify-start ax-absolute ax-bottom-0 ax-w-full\">\n <ax-button [text]=\"'apply' | translate | async\" color=\"primary\" (onClick)=\"handleApplyClick()\"></ax-button>\n <ax-button [text]=\"'reset' | translate | async\" color=\"ghost\" (onClick)=\"handleResetClick()\"></ax-button>\n</ax-footer>\n" }]
|
|
51
52
|
}], propDecorators: { loader: [{
|
|
52
53
|
type: Input
|
|
53
54
|
}], onClosed: [{
|
|
54
55
|
type: Output
|
|
55
56
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LW9wdGlvbi1jb2x1bW5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0cy9zcmMvbGliL2FkbWluL2VudGl0eS1sYXlvdXQvZW50aXR5LWxpc3Qtdmlldy9jb21wb25lbnRzL2xpc3Qtdmlldy1vcHRpb24tY29sdW1ucy9saXN0LXZpZXctb3B0aW9uLWNvbHVtbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXRzL3NyYy9saWIvYWRtaW4vZW50aXR5LWxheW91dC9lbnRpdHktbGlzdC12aWV3L2NvbXBvbmVudHMvbGlzdC12aWV3LW9wdGlvbi1jb2x1bW5zL2xpc3Qtdmlldy1vcHRpb24tY29sdW1ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQWMsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3QyxPQUFPLEVBQXlELGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7QUFNL0csTUFBTSxPQUFPLGtDQUFrQztJQUovQztRQUtVLFVBQUssR0FBRyxNQUFNLENBQUMsQ0FBQSxLQUEwQixDQUFBLENBQUMsQ0FBQztRQUl6QyxTQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUMxQyxhQUFRLEdBQW1ELEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUdyRSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQStCNUM7SUE3QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7SUFDOUMsQ0FBQztJQUVELHNCQUFzQixDQUFDLENBQStCLEVBQUUsSUFBWTtRQUNsRSxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFNLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQUVTLElBQUksQ0FBQyxLQUE2QjtRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2hELGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OEdBdkNVLGtDQUFrQztrR0FBbEMsa0NBQWtDLHFJQ1ovQyxpOUNBdUJBOzsyRkRYYSxrQ0FBa0M7a0JBSjlDLFNBQVM7K0JBQ0UsOEJBQThCOzhCQU9qQyxNQUFNO3NCQURaLEtBQUs7Z0JBTUMsUUFBUTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpcnN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQTGlzdFZpZXdMb2FkZXIgfSBmcm9tICcuLi8uLi9saXN0LXZpZXcuY29uZmlnJztcbmltcG9ydCB7IEFYUEFkbWluTGF5b3V0U3RhdGUsIEFYUEVudGl0eUxpc3REaXNwbGF5Q29sdW1uQ29uZmlnLCBpc1NtYWxsU2NyZWVuIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtbGlzdC12aWV3LW9wdGlvbi1jb2x1bW5zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3Qtdmlldy1vcHRpb24tY29sdW1ucy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUExpc3RWaWV3T3B0aW9uc0NvbHVtbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHN0b3JlID0gaW5qZWN0KFN0b3JlPEFYUEFkbWluTGF5b3V0U3RhdGU+KTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbG9hZGVyITogQVhQTGlzdFZpZXdMb2FkZXI7XG4gIHByb3RlY3RlZCBpc1NNID0gdGhpcy5zdG9yZS5zZWxlY3QoaXNTbWFsbFNjcmVlbigpKTtcbiAgcHJvdGVjdGVkIGNvbHVtbnMkOiBPYnNlcnZhYmxlPEFYUEVudGl0eUxpc3REaXNwbGF5Q29sdW1uQ29uZmlnW10+ID0gb2YoW10pO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25DbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2x1bW5zJCA9IHRoaXMubG9hZGVyLmRpc3BsYXlDb2x1bW5zJDtcbiAgfVxuXG4gIGhhbmRsZVZpc2liaWxpdHlDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudDxib29sZWFuPiwgbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIHRoaXMubG9hZGVyLnNldENvbHVtblZpc2liaWxpdHkobmFtZSwgZS52YWx1ZSEpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duW10+KSB7XG4gICAgdGhpcy5jb2x1bW5zJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoY29sdW1ucykgPT4ge1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KGNvbHVtbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2UoKSB7XG4gICAgdGhpcy5vbkNsb3NlZC5lbWl0KCk7XG4gIH1cbiAgcHJvdGVjdGVkIGhhbmRsZVJlc2V0Q2xpY2soKSB7XG4gICAgdGhpcy5sb2FkZXIucmVzZXRDb2x1bW5zKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQXBwbHlDbGljaygpIHtcbiAgICB0aGlzLmNvbHVtbnMkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmxvYWRlci51cGRhdGVDb2x1bW5zKGRhdGEpO1xuICAgIH0pO1xuICAgIHRoaXMub25DbG9zZWQuZW1pdCgpO1xuICB9XG59XG4iLCI8YXgtaGVhZGVyIGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXJcIj5cbiAgPGgyIGNsYXNzPVwiYXgtdGV4dC14bCBheC1mb250LWJvbGRcIj57eyAnZW50aXR5LmNvbHVtbnMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2gyPlxuICA8YXgtYnV0dG9uIChvbkNsaWNrKT1cImhhbmRsZUNsb3NlKClcIiBbbG9va109XCInYmxhbmsnXCI+XG4gICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1jbG9zZSBheC10ZXh0LW5ldXRyYWwtNDAwIGF4LXRleHQteGxcIj4gPC9heC1pY29uPlxuICA8L2F4LWJ1dHRvbj5cbjwvYXgtaGVhZGVyPlxuPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTQgYXgtcC00IGF4LXNlbGVjdC1ub25lXCIgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTMgYXgtdy1mdWxsIGF4LXNvcnRlZC1saXN0IGF4LW1heC1oLVtjYWxjKDEwMHZoLTI4MHB4KV0gYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sdW1ucyQgfCBhc3luY1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtcHktMSBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuXCIgY2RrRHJhZyBjZGtEcmFnQm91bmRhcnk9XCIuYXgtc29ydGVkLWxpc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWdyaXAtZG90cy12ZXJ0aWNhbCBheC1jdXJzb3ItbW92ZVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICA8cCBjbGFzcz1cImF4LWZvbnQtbWVkaXVtIGF4LXRleHQtc21cIj57eyBpdGVtLnRpdGxlIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGF4LXN3aXRjaCBjbGFzcz1cImF4LXNtXCIgW25nTW9kZWxdPVwiaXRlbS52aXNpYmxlXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50LCBpdGVtLm5hbWUpXCI+PC9heC1zd2l0Y2g+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxheC1mb290ZXIgY2xhc3M9XCIhYXgtanVzdGlmeS1zdGFydCBheC1hYnNvbHV0ZSBheC1ib3R0b20tMCBheC13LWZ1bGxcIj5cbiAgPGF4LWJ1dHRvbiBbdGV4dF09XCInYXBwbHknIHwgdHJhbnNsYXRlIHwgYXN5bmNcIiBjb2xvcj1cInByaW1hcnlcIiAob25DbGljayk9XCJoYW5kbGVBcHBseUNsaWNrKClcIj48L2F4LWJ1dHRvbj5cbiAgPGF4LWJ1dHRvbiBbdGV4dF09XCIncmVzZXQnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIiBjb2xvcj1cImdob3N0XCIgKG9uQ2xpY2spPVwiaGFuZGxlUmVzZXRDbGljaygpXCI+PC9heC1idXR0b24+XG48L2F4LWZvb3Rlcj5cbiJdfQ==
|