@acorex/modules 18.1.1 → 18.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/application-management/lib/application-management-mock-data.d.ts +7 -0
  2. package/application-management/lib/layouts/index.d.ts +1 -0
  3. package/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.d.ts +5 -1
  4. package/application-management/lib/layouts/property-detail-view/modify-property-interface.component.d.ts +5 -0
  5. package/application-management/lib/module-designer/module-designer.component.d.ts +3 -1
  6. package/application-management/lib/workflows/create-module-entity.workflow.d.ts +8 -1
  7. package/application-management/lib/workflows/index.d.ts +1 -0
  8. package/application-management/lib/workflows/modify-property-interface.workflow.d.ts +26 -0
  9. package/backend/lib/data/api/comment.service.d.ts +7 -6
  10. package/esm2022/application-management/lib/application-management-mock-data.mjs +21 -1
  11. package/esm2022/application-management/lib/application-management.module.mjs +6 -3
  12. package/esm2022/application-management/lib/application-management.service.mjs +3 -3
  13. package/esm2022/application-management/lib/entities/applications.entity.mjs +3 -3
  14. package/esm2022/application-management/lib/entities/entity.entity.mjs +16 -2
  15. package/esm2022/application-management/lib/entities/modules.entity.mjs +4 -4
  16. package/esm2022/application-management/lib/entities/property.entity.mjs +7 -3
  17. package/esm2022/application-management/lib/layouts/index.mjs +2 -1
  18. package/esm2022/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.mjs +32 -8
  19. package/esm2022/application-management/lib/layouts/property-detail-view/modify-property-interface.component.mjs +55 -0
  20. package/esm2022/application-management/lib/module-designer/module-designer.component.mjs +13 -5
  21. package/esm2022/application-management/lib/services/context-menu.service.mjs +1 -2
  22. package/esm2022/application-management/lib/workflows/create-module-entity.workflow.mjs +25 -1
  23. package/esm2022/application-management/lib/workflows/index.mjs +2 -1
  24. package/esm2022/application-management/lib/workflows/modify-property-interface.workflow.mjs +79 -0
  25. package/esm2022/backend/lib/data/api/comment.service.mjs +14 -16
  26. package/fesm2022/{acorex-modules-application-management-module-designer.component-Bgq9-BVv.mjs → acorex-modules-application-management-module-designer.component-CRPUuYUe.mjs} +19 -9
  27. package/fesm2022/acorex-modules-application-management-module-designer.component-CRPUuYUe.mjs.map +1 -0
  28. package/fesm2022/acorex-modules-application-management.mjs +217 -43
  29. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  30. package/fesm2022/acorex-modules-backend.mjs +13 -15
  31. package/fesm2022/acorex-modules-backend.mjs.map +1 -1
  32. package/package.json +7 -7
  33. package/application-management/lib/actions/index.d.ts +0 -1
  34. package/application-management/lib/actions/show-detail.action.d.ts +0 -8
  35. package/esm2022/application-management/lib/actions/index.mjs +0 -2
  36. package/esm2022/application-management/lib/actions/show-detail.action.mjs +0 -25
  37. package/fesm2022/acorex-modules-application-management-module-designer.component-Bgq9-BVv.mjs.map +0 -1
@@ -3,7 +3,7 @@ import { AXButtonModule } from '@acorex/components/button';
3
3
  import { AXCollapseModule } from '@acorex/components/collapse';
4
4
  import { AXDecoratorModule } from '@acorex/components/decorators';
5
5
  import { AXDrawerModule } from '@acorex/components/drawer';
6
- import { AXMenuModule } from '@acorex/components/menu';
6
+ import { AXMenuModule, } from '@acorex/components/menu';
7
7
  import { AXPopoverModule } from '@acorex/components/popover';
8
8
  import { AXSelectionListModule } from '@acorex/components/selection-list';
9
9
  import { AXSideMenuModule } from '@acorex/components/side-menu';
@@ -11,7 +11,7 @@ import { AXTranslationModule } from '@acorex/core/translation';
11
11
  import { AXPEntityCreateEvent, AXPEntityDeletedEvent } from '@acorex/platform/layouts';
12
12
  import { AXPWorkflowService, ofType } from '@acorex/platform/workflow';
13
13
  import { CommonModule } from '@angular/common';
14
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, signal, ViewEncapsulation, } from '@angular/core';
14
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, signal, viewChild, ViewEncapsulation, } from '@angular/core';
15
15
  import { RouterModule } from '@angular/router';
16
16
  import { set } from 'lodash-es';
17
17
  import { Subject, takeUntil } from 'rxjs';
@@ -30,6 +30,7 @@ import * as i9 from "@angular/router";
30
30
  export class AXMModuleDesignerComponent {
31
31
  constructor() {
32
32
  this.cdr = inject(ChangeDetectorRef);
33
+ this.contextMenu = viewChild('contextMenu');
33
34
  this.dataProvider = inject(AXPModuleDesignerService);
34
35
  this.workflow = inject(AXPWorkflowService);
35
36
  this.contextMenuService = inject(AXMModuleDesignerContextMenuService);
@@ -60,6 +61,7 @@ export class AXMModuleDesignerComponent {
60
61
  try {
61
62
  const modules = await this.dataProvider.getModules();
62
63
  this.modules.set(modules.items);
64
+ this.refreshContextMenu();
63
65
  }
64
66
  catch (error) {
65
67
  console.error('Error loading modules:', error);
@@ -73,8 +75,14 @@ export class AXMModuleDesignerComponent {
73
75
  e.component.toggle();
74
76
  e.component.isLoading = false;
75
77
  e.component['cdr'].markForCheck();
78
+ this.refreshContextMenu();
76
79
  }
77
80
  }
81
+ refreshContextMenu() {
82
+ setTimeout(() => {
83
+ this.contextMenu()?.refresh();
84
+ }, 0);
85
+ }
78
86
  async loadModuleData(moduleId, dataType, hardReload = false) {
79
87
  const cacheKey = `${moduleId}-${dataType}`;
80
88
  let dataItems = this.moduleDataCache.get(cacheKey);
@@ -120,7 +128,7 @@ export class AXMModuleDesignerComponent {
120
128
  set(target, 'data', data);
121
129
  }
122
130
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMModuleDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
123
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMModuleDesignerComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<ax-drawer-container class=\"ax-overflow-hidden\">\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content class=\"ax-w-80 ax-relative ax-border-e ax-px-4 ax-py-2\">\n <div class=\"ax-overflow-auto ax-h-[calc(100vh-180px)]\">\n <span class=\"ax-font-bold ax-text-xl\">{{ 'designer.modules' | translate | async }}</span>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-mt-4\">\n @if(modules().length){\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n @for(m of modules();track $index){\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-folder ax-text-warning\"\n [isCollapsed]=\"true\"\n [caption]=\"m.title\"\n look=\"none\"\n data-elementType=\"module\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"module\"\n >\n <div class=\"ax-mx-3\">\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-box ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'entity')\"\n [caption]=\"('designer.entities' | translate | async) ?? 'Entities'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"entity\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'entity', items: getEntities(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-star ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'feature')\"\n [caption]=\"('designer.features' | translate | async) ?? 'Features'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"feature\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'feature', items: getFeatures(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-key ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'permission')\"\n [caption]=\"('designer.permissions' | translate | async) ?? 'Permissions'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"permission\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'permission', items: getPermissions(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n </ax-collapse-group>\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n } @else {\n <div class=\"ax-h-full ax-flex ax-items-center ax-justify-center\">\n <span class=\"ax-text-neutral-500 ax-text-sm\">{{ 'designer.emptyModulesText' | translate | async }}</span>\n </div>\n }\n </div>\n <ax-button\n class=\"ax-absolute ax-bottom-4 ax-w-72\"\n [text]=\"('designer.createModule' | translate | async) ?? 'Create New Module'\"\n (onClick)=\"createModule()\"\n look=\"solid\"\n color=\"primary\"\n >\n <ax-icon class=\"fas fa-plus\"> </ax-icon>\n </ax-button>\n </div>\n </ax-content>\n\n <ng-template #childTemplate let-child>\n <div class=\"ax-flex ax-flex-col ax-cursor-pointer ax-select-none ax-border-s ax-ms-[14px] ax-ps-2\">\n @for (item of child.items; track $index) {\n <div\n #d\n (click)=\"contextMenuService.showDetails(child.type, item.id)\"\n class=\"contextMenu ax-px-2 ax-py-1 ax-flex ax-items-center ax-justify-between hover:ax-bg-neutral-100 dark:hover:ax-bg-neutral-700 hover:ax-rounded-md\"\n data-elementType=\"subModuleItem\"\n >\n {{ assignData(d, { record: item, entityType: child.type, moduleId: child.moduleId }) }}\n <span>{{ item.title }}</span>\n <ax-badge\n [look]=\"'twotone'\"\n [color]=\"item.isArchived ? 'danger' : 'success'\"\n [text]=\"item.isArchived ? 'Off' : 'On'\"\n >\n </ax-badge>\n </div>\n }\n </div>\n </ng-template>\n </ax-drawer>\n <ax-content>\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n\n<ax-context-menu\n (onItemClick)=\"handleActionClick($event)\"\n [items]=\"[]\"\n [target]=\"'.ctx'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onOpening)=\"openingContextMenu($event)\"\n>\n</ax-context-menu>\n", styles: [".ax-collapse-header{padding:.25rem .5rem!important}.ax-collapse-header:hover{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-neutral-100),var(--tw-bg-opacity))}.ax-collapse-header:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-neutral-700),var(--tw-bg-opacity))}.ax-collapse-body-content{padding:.25rem!important;padding-inline-start:0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed", "closeOthers"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXSideMenuModule }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i6.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i6.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i7.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i8.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i9.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXMModuleDesignerComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "contextMenu", first: true, predicate: ["contextMenu"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container class=\"ax-overflow-hidden\">\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content class=\"ax-w-80 ax-relative ax-border-e ax-px-4 ax-py-2\">\n <div class=\"ax-overflow-auto ax-h-[calc(100vh-180px)]\">\n <span class=\"ax-font-bold ax-text-xl\">{{ 'designer.modules' | translate | async }}</span>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-mt-4\">\n @if(modules().length){\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n @for(m of modules();track $index){\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-folder ax-text-warning\"\n [isCollapsed]=\"true\"\n [caption]=\"m.title\"\n look=\"none\"\n data-elementType=\"module\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"module\"\n >\n <div class=\"ax-mx-3\">\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-box ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'entity')\"\n [caption]=\"('designer.entities' | translate | async) ?? 'Entities'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"entity\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'entity', items: getEntities(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-star ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'feature')\"\n [caption]=\"('designer.features' | translate | async) ?? 'Features'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"feature\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'feature', items: getFeatures(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-key ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'permission')\"\n [caption]=\"('designer.permissions' | translate | async) ?? 'Permissions'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"permission\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'permission', items: getPermissions(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n </ax-collapse-group>\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n } @else {\n <div class=\"ax-h-full ax-flex ax-items-center ax-justify-center\">\n <span class=\"ax-text-neutral-500 ax-text-sm\">{{ 'designer.emptyModulesText' | translate | async }}</span>\n </div>\n }\n </div>\n <ax-button\n class=\"ax-absolute ax-bottom-4 ax-w-72\"\n [text]=\"('designer.createModule' | translate | async) ?? 'Create New Module'\"\n (onClick)=\"createModule()\"\n look=\"solid\"\n color=\"primary\"\n >\n <ax-icon class=\"fas fa-plus\"> </ax-icon>\n </ax-button>\n </div>\n </ax-content>\n\n <ng-template #childTemplate let-child>\n <div class=\"ax-flex ax-flex-col ax-cursor-pointer ax-select-none ax-border-s ax-ms-[14px] ax-ps-2\">\n @for (item of child.items; track $index) {\n\n <div\n #d\n (click)=\"contextMenuService.showDetails(child.type, item.id)\"\n class=\"ctx ax-px-2 ax-py-1 ax-flex ax-items-center ax-justify-between hover:ax-bg-neutral-100 dark:hover:ax-bg-neutral-700 hover:ax-rounded-md\"\n data-elementType=\"subModuleItem\"\n >\n {{ assignData(d, { record: item, entityType: child.type, moduleId: child.moduleId }) }}\n <span>{{ item.title }}</span>\n <ax-badge\n [look]=\"'twotone'\"\n [color]=\"item.isArchived ? 'danger' : 'success'\"\n [text]=\"item.isArchived ? 'Off' : 'On'\"\n >\n </ax-badge>\n </div>\n }\n </div>\n </ng-template>\n </ax-drawer>\n <ax-content>\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n\n<ax-context-menu\n #contextMenu\n (onItemClick)=\"handleActionClick($event)\"\n [items]=\"[]\"\n [target]=\"'.ctx'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onOpening)=\"openingContextMenu($event)\"\n>\n</ax-context-menu>\n", styles: [".ax-collapse-header{padding:.25rem .5rem!important}.ax-collapse-header:hover{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-neutral-100),var(--tw-bg-opacity))}.ax-collapse-header:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-neutral-700),var(--tw-bg-opacity))}.ax-collapse-body-content{padding:.25rem!important;padding-inline-start:0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "collapsed", "closeOthers"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXSideMenuModule }, { kind: "ngmodule", type: AXCollapseModule }, { kind: "component", type: i6.AXCollapseComponent, selector: "ax-collapse", inputs: ["disabled", "look", "isCollapsed", "showHeader", "caption", "icon", "isLoading", "headerTemplate"], outputs: ["onClick", "isCollapsedChange"] }, { kind: "component", type: i6.AXCollapseGroupComponent, selector: "ax-collapse-group", inputs: ["look", "accordion", "activeIndex"], outputs: ["accordionChange", "activeIndexChange"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i7.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i8.AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i9.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
124
132
  }
125
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMModuleDesignerComponent, decorators: [{
126
134
  type: Component,
@@ -137,6 +145,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
137
145
  AXBadgeModule,
138
146
  AXMenuModule,
139
147
  RouterModule,
140
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container class=\"ax-overflow-hidden\">\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content class=\"ax-w-80 ax-relative ax-border-e ax-px-4 ax-py-2\">\n <div class=\"ax-overflow-auto ax-h-[calc(100vh-180px)]\">\n <span class=\"ax-font-bold ax-text-xl\">{{ 'designer.modules' | translate | async }}</span>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-mt-4\">\n @if(modules().length){\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n @for(m of modules();track $index){\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-folder ax-text-warning\"\n [isCollapsed]=\"true\"\n [caption]=\"m.title\"\n look=\"none\"\n data-elementType=\"module\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"module\"\n >\n <div class=\"ax-mx-3\">\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-box ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'entity')\"\n [caption]=\"('designer.entities' | translate | async) ?? 'Entities'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"entity\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'entity', items: getEntities(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-star ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'feature')\"\n [caption]=\"('designer.features' | translate | async) ?? 'Features'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"feature\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'feature', items: getFeatures(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-key ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'permission')\"\n [caption]=\"('designer.permissions' | translate | async) ?? 'Permissions'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"permission\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'permission', items: getPermissions(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n </ax-collapse-group>\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n } @else {\n <div class=\"ax-h-full ax-flex ax-items-center ax-justify-center\">\n <span class=\"ax-text-neutral-500 ax-text-sm\">{{ 'designer.emptyModulesText' | translate | async }}</span>\n </div>\n }\n </div>\n <ax-button\n class=\"ax-absolute ax-bottom-4 ax-w-72\"\n [text]=\"('designer.createModule' | translate | async) ?? 'Create New Module'\"\n (onClick)=\"createModule()\"\n look=\"solid\"\n color=\"primary\"\n >\n <ax-icon class=\"fas fa-plus\"> </ax-icon>\n </ax-button>\n </div>\n </ax-content>\n\n <ng-template #childTemplate let-child>\n <div class=\"ax-flex ax-flex-col ax-cursor-pointer ax-select-none ax-border-s ax-ms-[14px] ax-ps-2\">\n @for (item of child.items; track $index) {\n <div\n #d\n (click)=\"contextMenuService.showDetails(child.type, item.id)\"\n class=\"contextMenu ax-px-2 ax-py-1 ax-flex ax-items-center ax-justify-between hover:ax-bg-neutral-100 dark:hover:ax-bg-neutral-700 hover:ax-rounded-md\"\n data-elementType=\"subModuleItem\"\n >\n {{ assignData(d, { record: item, entityType: child.type, moduleId: child.moduleId }) }}\n <span>{{ item.title }}</span>\n <ax-badge\n [look]=\"'twotone'\"\n [color]=\"item.isArchived ? 'danger' : 'success'\"\n [text]=\"item.isArchived ? 'Off' : 'On'\"\n >\n </ax-badge>\n </div>\n }\n </div>\n </ng-template>\n </ax-drawer>\n <ax-content>\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n\n<ax-context-menu\n (onItemClick)=\"handleActionClick($event)\"\n [items]=\"[]\"\n [target]=\"'.ctx'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onOpening)=\"openingContextMenu($event)\"\n>\n</ax-context-menu>\n", styles: [".ax-collapse-header{padding:.25rem .5rem!important}.ax-collapse-header:hover{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-neutral-100),var(--tw-bg-opacity))}.ax-collapse-header:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-neutral-700),var(--tw-bg-opacity))}.ax-collapse-body-content{padding:.25rem!important;padding-inline-start:0!important}\n"] }]
148
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container class=\"ax-overflow-hidden\">\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content class=\"ax-w-80 ax-relative ax-border-e ax-px-4 ax-py-2\">\n <div class=\"ax-overflow-auto ax-h-[calc(100vh-180px)]\">\n <span class=\"ax-font-bold ax-text-xl\">{{ 'designer.modules' | translate | async }}</span>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-mt-4\">\n @if(modules().length){\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n @for(m of modules();track $index){\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-folder ax-text-warning\"\n [isCollapsed]=\"true\"\n [caption]=\"m.title\"\n look=\"none\"\n data-elementType=\"module\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"module\"\n >\n <div class=\"ax-mx-3\">\n <ax-collapse-group [accordion]=\"false\" look=\"blank\">\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-box ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'entity')\"\n [caption]=\"('designer.entities' | translate | async) ?? 'Entities'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"entity\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'entity', items: getEntities(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-star ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'feature')\"\n [caption]=\"('designer.features' | translate | async) ?? 'Features'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"feature\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'feature', items: getFeatures(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n\n <ax-collapse\n class=\"ctx\"\n icon=\"fas fa-key ax-text-neutral-400\"\n [isCollapsed]=\"true\"\n (onClick)=\"handleCollapseItemClick(m.id, $event, 'permission')\"\n [caption]=\"('designer.permissions' | translate | async) ?? 'Permissions'\"\n look=\"none\"\n data-elementType=\"subModule\"\n [attr.data-moduleId]=\"m.id\"\n data-entityType=\"permission\"\n >\n <ng-container\n [ngTemplateOutlet]=\"childTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: { type: 'permission', items: getPermissions(m.id), moduleId: m.id }\n }\"\n ></ng-container>\n </ax-collapse>\n </ax-collapse-group>\n </div>\n </ax-collapse>\n }\n </ax-collapse-group>\n } @else {\n <div class=\"ax-h-full ax-flex ax-items-center ax-justify-center\">\n <span class=\"ax-text-neutral-500 ax-text-sm\">{{ 'designer.emptyModulesText' | translate | async }}</span>\n </div>\n }\n </div>\n <ax-button\n class=\"ax-absolute ax-bottom-4 ax-w-72\"\n [text]=\"('designer.createModule' | translate | async) ?? 'Create New Module'\"\n (onClick)=\"createModule()\"\n look=\"solid\"\n color=\"primary\"\n >\n <ax-icon class=\"fas fa-plus\"> </ax-icon>\n </ax-button>\n </div>\n </ax-content>\n\n <ng-template #childTemplate let-child>\n <div class=\"ax-flex ax-flex-col ax-cursor-pointer ax-select-none ax-border-s ax-ms-[14px] ax-ps-2\">\n @for (item of child.items; track $index) {\n\n <div\n #d\n (click)=\"contextMenuService.showDetails(child.type, item.id)\"\n class=\"ctx ax-px-2 ax-py-1 ax-flex ax-items-center ax-justify-between hover:ax-bg-neutral-100 dark:hover:ax-bg-neutral-700 hover:ax-rounded-md\"\n data-elementType=\"subModuleItem\"\n >\n {{ assignData(d, { record: item, entityType: child.type, moduleId: child.moduleId }) }}\n <span>{{ item.title }}</span>\n <ax-badge\n [look]=\"'twotone'\"\n [color]=\"item.isArchived ? 'danger' : 'success'\"\n [text]=\"item.isArchived ? 'Off' : 'On'\"\n >\n </ax-badge>\n </div>\n }\n </div>\n </ng-template>\n </ax-drawer>\n <ax-content>\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n\n<ax-context-menu\n #contextMenu\n (onItemClick)=\"handleActionClick($event)\"\n [items]=\"[]\"\n [target]=\"'.ctx'\"\n [orientation]=\"'vertical'\"\n [closeOn]=\"'leave'\"\n (onOpening)=\"openingContextMenu($event)\"\n>\n</ax-context-menu>\n", styles: [".ax-collapse-header{padding:.25rem .5rem!important}.ax-collapse-header:hover{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-neutral-100),var(--tw-bg-opacity))}.ax-collapse-header:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-neutral-700),var(--tw-bg-opacity))}.ax-collapse-body-content{padding:.25rem!important;padding-inline-start:0!important}\n"] }]
141
149
  }], ctorParameters: () => [] });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWRlc2lnbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvbW9kdWxlLWRlc2lnbmVyL21vZHVsZS1kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL21vZHVsZS1kZXNpZ25lci9tb2R1bGUtZGVzaWduZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQXdCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBMkQsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFB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O2tCQXJCdEMsU0FBUztvQ0FHTyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osWUFBWTtxQkFDYixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ29sbGFwc2VDbGlja0V2ZW50LCBBWENvbGxhcHNlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbGxhcHNlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcmF3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJhd2VyJztcbmltcG9ydCB7IEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQsIEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQsIEFYTWVudU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYU2VsZWN0aW9uTGlzdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3Rpb24tbGlzdCc7XG5pbXBvcnQgeyBBWFNpZGVNZW51TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NpZGUtbWVudSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUEVudGl0eUNyZWF0ZUV2ZW50LCBBWFBFbnRpdHlEZWxldGVkRXZlbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dHMnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYTU1vZHVsZURlc2lnbmVyQ29udGV4dE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udGV4dC1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQTW9kdWxlRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtZGVzaWduZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWE1Nb2R1bGVJdGVtIH0gZnJvbSAnLi9tb2R1bGUtZGVzaWduZXIudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbW9kdWxlLWRlc2lnbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kdWxlLWRlc2lnbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFNpZGVNZW51TW9kdWxlLFxuICAgIEFYQ29sbGFwc2VNb2R1bGUsXG4gICAgQVhQb3BvdmVyTW9kdWxlLFxuICAgIEFYU2VsZWN0aW9uTGlzdE1vZHVsZSxcbiAgICBBWEJhZGdlTW9kdWxlLFxuICAgIEFYTWVudU1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1Nb2R1bGVEZXNpZ25lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBwcm90ZWN0ZWQgZGF0YVByb3ZpZGVyID0gaW5qZWN0KEFYUE1vZHVsZURlc2lnbmVyU2VydmljZSk7XG4gIHByaXZhdGUgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGNvbnRleHRNZW51U2VydmljZSA9IGluamVjdChBWE1Nb2R1bGVEZXNpZ25lckNvbnRleHRNZW51U2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIG1vZHVsZXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBwcm90ZWN0ZWQgbW9kdWxlRGF0YUNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueVtdPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnN1YnNjcmliZUFjdGlvbkV2ZW50cygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkTW9kdWxlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN1YnNjcmliZUFjdGlvbkV2ZW50cygpIHtcbiAgICB0aGlzLndvcmtmbG93LmV2ZW50cyRcbiAgICAgIC5waXBlKG9mVHlwZShBWFBFbnRpdHlEZWxldGVkRXZlbnQsIEFYUEVudGl0eUNyZWF0ZUV2ZW50KSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IG1ldGEgfSA9IGV2ZW50LnBheWxvYWQ7XG4gICAgICAgIGlmIChtZXRhLnR5cGUgPT09ICdtb2R1bGUnKSB7XG4gICAgICAgICAgdGhpcy5sb2FkTW9kdWxlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9hZE1vZHVsZURhdGEobWV0YS5tb2R1bGVJZCwgbWV0YS50eXBlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGxvYWRNb2R1bGVzKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtb2R1bGVzID0gYXdhaXQgdGhpcy5kYXRhUHJvdmlkZXIuZ2V0TW9kdWxlcygpO1xuICAgICAgdGhpcy5tb2R1bGVzLnNldChtb2R1bGVzLml0ZW1zKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBtb2R1bGVzOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQ29sbGFwc2VJdGVtQ2xpY2sobW9kdWxlSWQ6IHN0cmluZywgZTogQVhDb2xsYXBzZUNsaWNrRXZlbnQsIGRhdGFUeXBlOiBBWE1Nb2R1bGVJdGVtKSB7XG4gICAgaWYgKGUuY29tcG9uZW50LmlzQ29sbGFwc2VkKSB7XG4gICAgICBlLmhhbmRsZWQgPSB0cnVlO1xuICAgICAgZS5jb21wb25lbnQuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgYXdhaXQgdGhpcy5sb2FkTW9kdWxlRGF0YShtb2R1bGVJZCwgZGF0YVR5cGUpO1xuXG4gICAgICBlLmNvbXBvbmVudC50b2dnbGUoKTtcbiAgICAgIGUuY29tcG9uZW50LmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgZS5jb21wb25lbnRbJ2NkciddLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBsb2FkTW9kdWxlRGF0YShtb2R1bGVJZDogc3RyaW5nLCBkYXRhVHlwZTogQVhNTW9kdWxlSXRlbSwgaGFyZFJlbG9hZCA9IGZhbHNlKSB7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBgJHttb2R1bGVJZH0tJHtkYXRhVHlwZX1gO1xuXG4gICAgbGV0IGRhdGFJdGVtcyA9IHRoaXMubW9kdWxlRGF0YUNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgLy8gaWYgKCFkYXRhSXRlbXMgfHwgaGFyZFJlbG9hZCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtZXRob2RNYXAgPSB7XG4gICAgICAgIGVudGl0eTogdGhpcy5kYXRhUHJvdmlkZXIuZ2V0RW50aXRpZXMsXG4gICAgICAgIHBlcm1pc3Npb246IHRoaXMuZGF0YVByb3ZpZGVyLmdldFBlcm1pc3Npb25zLFxuICAgICAgICBmZWF0dXJlOiB0aGlzLmRhdGFQcm92aWRlci5nZXRGZWF0dXJlcyxcbiAgICAgIH07XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgbWV0aG9kTWFwW2RhdGFUeXBlXS5jYWxsKHRoaXMuZGF0YVByb3ZpZGVyLCBtb2R1bGVJZCk7XG5cbiAgICAgIGRhdGFJdGVtcyA9IGRhdGEuaXRlbXMgYXMgYW55W107XG4gICAgICB0aGlzLm1vZHVsZURhdGFDYWNoZS5zZXQoY2FjaGVLZXksIGRhdGFJdGVtcyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGxvYWRpbmcgJHtkYXRhVHlwZX06YCwgZXJyb3IpO1xuICAgIH1cbiAgICAvLyB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXRpZXMobW9kdWxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm1vZHVsZURhdGFDYWNoZS5nZXQoYCR7bW9kdWxlSWR9LWVudGl0eWApIHx8IFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBlcm1pc3Npb25zKG1vZHVsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tb2R1bGVEYXRhQ2FjaGUuZ2V0KGAke21vZHVsZUlkfS1wZXJtaXNzaW9uYCkgfHwgW107XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RmVhdHVyZXMobW9kdWxlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm1vZHVsZURhdGFDYWNoZS5nZXQoYCR7bW9kdWxlSWR9LWZlYXR1cmVgKSB8fCBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcGVuaW5nQ29udGV4dE1lbnUoZTogQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudCkge1xuICAgIHRoaXMuY29udGV4dE1lbnVTZXJ2aWNlLm9wZW4oZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQWN0aW9uQ2xpY2soZTogQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCkge1xuICAgIHRoaXMuY29udGV4dE1lbnVTZXJ2aWNlLml0ZW1DbGljayhlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVNb2R1bGUoKSB7XG4gICAgdGhpcy5jb250ZXh0TWVudVNlcnZpY2UuY3JlYXRlRW50aXR5KCdtb2R1bGUnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzc2lnbkRhdGEodGFyZ2V0OiBIVE1MRWxlbWVudCwgZGF0YTogYW55KTogdm9pZCB7XG4gICAgc2V0KHRhcmdldCwgJ2RhdGEnLCBkYXRhKTtcbiAgfVxufVxuIiwiPGF4LWRyYXdlci1jb250YWluZXIgY2xhc3M9XCJheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgPGF4LWRyYXdlciAjZHJhd2VyIGxvY2F0aW9uPVwic3RhcnRcIiBbY29sbGFwc2VkXT1cImZhbHNlXCIgW21vZGVdPVwiJ3B1c2gnXCI+XG4gICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC13LTgwIGF4LXJlbGF0aXZlIGF4LWJvcmRlci1lIGF4LXB4LTQgYXgtcHktMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW92ZXJmbG93LWF1dG8gYXgtaC1bY2FsYygxMDB2aC0xODBweCldXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtZm9udC1ib2xkIGF4LXRleHQteGxcIj57eyAnZGVzaWduZXIubW9kdWxlcycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTIgYXgtbXQtNFwiPlxuICAgICAgICAgIEBpZihtb2R1bGVzKCkubGVuZ3RoKXtcbiAgICAgICAgICA8YXgtY29sbGFwc2UtZ3JvdXAgW2FjY29yZGlvbl09XCJmYWxzZVwiIGxvb2s9XCJibGFua1wiPlxuICAgICAgICAgICAgQGZvcihtIG9mIG1vZHVsZXMoKTt0cmFjayAkaW5kZXgpe1xuICAgICAgICAgICAgPGF4LWNvbGxhcHNlXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3R4XCJcbiAgICAgICAgICAgICAgaWNvbj1cImZhcyBmYS1mb2xkZXIgYXgtdGV4dC13YXJuaW5nXCJcbiAgICAgICAgICAgICAgW2lzQ29sbGFwc2VkXT1cInRydWVcIlxuICAgICAgICAgICAgICBbY2FwdGlvbl09XCJtLnRpdGxlXCJcbiAgICAgICAgICAgICAgbG9vaz1cIm5vbmVcIlxuICAgICAgICAgICAgICBkYXRhLWVsZW1lbnRUeXBlPVwibW9kdWxlXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1tb2R1bGVJZF09XCJtLmlkXCJcbiAgICAgICAgICAgICAgZGF0YS1lbnRpdHlUeXBlPVwibW9kdWxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW14LTNcIj5cbiAgICAgICAgICAgICAgICA8YXgtY29sbGFwc2UtZ3JvdXAgW2FjY29yZGlvbl09XCJmYWxzZVwiIGxvb2s9XCJibGFua1wiPlxuICAgICAgICAgICAgICAgICAgPGF4LWNvbGxhcHNlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3R4XCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImZhcyBmYS1ib3ggYXgtdGV4dC1uZXV0cmFsLTQwMFwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0NvbGxhcHNlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ29sbGFwc2VJdGVtQ2xpY2sobS5pZCwgJGV2ZW50LCAnZW50aXR5JylcIlxuICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCIoJ2Rlc2lnbmVyLmVudGl0aWVzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSA/PyAnRW50aXRpZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgbG9vaz1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWVsZW1lbnRUeXBlPVwic3ViTW9kdWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1tb2R1bGVJZF09XCJtLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1lbnRpdHlUeXBlPVwiZW50aXR5XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoaWxkVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHsgdHlwZTogJ2VudGl0eScsIGl0ZW1zOiBnZXRFbnRpdGllcyhtLmlkKSwgbW9kdWxlSWQ6IG0uaWQgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2F4LWNvbGxhcHNlPlxuXG4gICAgICAgICAgICAgICAgICA8YXgtY29sbGFwc2VcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdHhcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZmFzIGZhLXN0YXIgYXgtdGV4dC1uZXV0cmFsLTQwMFwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0NvbGxhcHNlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ29sbGFwc2VJdGVtQ2xpY2sobS5pZCwgJGV2ZW50LCAnZmVhdHVyZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25dPVwiKCdkZXNpZ25lci5mZWF0dXJlcycgfCB0cmFuc2xhdGUgfCBhc3luYykgPz8gJ0ZlYXR1cmVzJ1wiXG4gICAgICAgICAgICAgICAgICAgIGxvb2s9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1lbGVtZW50VHlwZT1cInN1Yk1vZHVsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtbW9kdWxlSWRdPVwibS5pZFwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtZW50aXR5VHlwZT1cImZlYXR1cmVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hpbGRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogeyB0eXBlOiAnZmVhdHVyZScsIGl0ZW1zOiBnZXRGZWF0dXJlcyhtLmlkKSwgbW9kdWxlSWQ6IG0uaWQgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2F4LWNvbGxhcHNlPlxuXG4gICAgICAgICAgICAgICAgICA8YXgtY29sbGFwc2VcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdHhcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZmFzIGZhLWtleSBheC10ZXh0LW5ldXRyYWwtNDAwXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzQ29sbGFwc2VkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDb2xsYXBzZUl0ZW1DbGljayhtLmlkLCAkZXZlbnQsICdwZXJtaXNzaW9uJylcIlxuICAgICAgICAgICAgICAgICAgICBbY2FwdGlvbl09XCIoJ2Rlc2lnbmVyLnBlcm1pc3Npb25zJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSA/PyAnUGVybWlzc2lvbnMnXCJcbiAgICAgICAgICAgICAgICAgICAgbG9vaz1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWVsZW1lbnRUeXBlPVwic3ViTW9kdWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1tb2R1bGVJZF09XCJtLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1lbnRpdHlUeXBlPVwicGVybWlzc2lvblwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlsZFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7IHR5cGU6ICdwZXJtaXNzaW9uJywgaXRlbXM6IGdldFBlcm1pc3Npb25zKG0uaWQpLCBtb2R1bGVJZDogbS5pZCB9XG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvYXgtY29sbGFwc2U+XG4gICAgICAgICAgICAgICAgPC9heC1jb2xsYXBzZS1ncm91cD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2F4LWNvbGxhcHNlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYXgtY29sbGFwc2UtZ3JvdXA+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWgtZnVsbCBheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LW5ldXRyYWwtNTAwIGF4LXRleHQtc21cIj57eyAnZGVzaWduZXIuZW1wdHlNb2R1bGVzVGV4dCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJheC1hYnNvbHV0ZSBheC1ib3R0b20tNCBheC13LTcyXCJcbiAgICAgICAgICBbdGV4dF09XCIoJ2Rlc2lnbmVyLmNyZWF0ZU1vZHVsZScgfCB0cmFuc2xhdGUgfCBhc3luYykgPz8gJ0NyZWF0ZSBOZXcgTW9kdWxlJ1wiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiY3JlYXRlTW9kdWxlKClcIlxuICAgICAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYXgtY29udGVudD5cblxuICAgIDxuZy10ZW1wbGF0ZSAjY2hpbGRUZW1wbGF0ZSBsZXQtY2hpbGQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1jdXJzb3ItcG9pbnRlciBheC1zZWxlY3Qtbm9uZSBheC1ib3JkZXItcyBheC1tcy1bMTRweF0gYXgtcHMtMlwiPlxuICAgICAgICBAZm9yIChpdGVtIG9mIGNoaWxkLml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICNkXG4gICAgICAgICAgKGNsaWNrKT1cImNvbnRleHRNZW51U2VydmljZS5zaG93RGV0YWlscyhjaGlsZC50eXBlLCBpdGVtLmlkKVwiXG4gICAgICAgICAgY2xhc3M9XCJjb250ZXh0TWVudSBheC1weC0yIGF4LXB5LTEgYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGhvdmVyOmF4LWJnLW5ldXRyYWwtMTAwIGRhcms6aG92ZXI6YXgtYmctbmV1dHJhbC03MDAgaG92ZXI6YXgtcm91bmRlZC1tZFwiXG4gICAgICAgICAgZGF0YS1lbGVtZW50VHlwZT1cInN1Yk1vZHVsZUl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgYXNzaWduRGF0YShkLCB7IHJlY29yZDogaXRlbSwgZW50aXR5VHlwZTogY2hpbGQudHlwZSwgbW9kdWxlSWQ6IGNoaWxkLm1vZHVsZUlkIH0pIH19XG4gICAgICAgICAgPHNwYW4+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8YXgtYmFkZ2VcbiAgICAgICAgICAgIFtsb29rXT1cIid0d290b25lJ1wiXG4gICAgICAgICAgICBbY29sb3JdPVwiaXRlbS5pc0FyY2hpdmVkID8gJ2RhbmdlcicgOiAnc3VjY2VzcydcIlxuICAgICAgICAgICAgW3RleHRdPVwiaXRlbS5pc0FyY2hpdmVkID8gJ09mZicgOiAnT24nXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9heC1iYWRnZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvYXgtZHJhd2VyPlxuICA8YXgtY29udGVudD5cbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gIDwvYXgtY29udGVudD5cbjwvYXgtZHJhd2VyLWNvbnRhaW5lcj5cblxuPGF4LWNvbnRleHQtbWVudVxuICAob25JdGVtQ2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soJGV2ZW50KVwiXG4gIFtpdGVtc109XCJbXVwiXG4gIFt0YXJnZXRdPVwiJy5jdHgnXCJcbiAgW29yaWVudGF0aW9uXT1cIid2ZXJ0aWNhbCdcIlxuICBbY2xvc2VPbl09XCInbGVhdmUnXCJcbiAgKG9uT3BlbmluZyk9XCJvcGVuaW5nQ29udGV4dE1lbnUoJGV2ZW50KVwiXG4+XG48L2F4LWNvbnRleHQtbWVudT5cbiJdfQ==
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWRlc2lnbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvbW9kdWxlLWRlc2lnbmVyL21vZHVsZS1kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL21vZHVsZS1kZXNpZ25lci9tb2R1bGUtZGVzaWduZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQXdCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFJTCxZQUFZLEdBQ2IsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZ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LE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQXZIVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixvTUN4RHZDLG91TEEwSUEsaWREakdJLFlBQVksMFBBQ1osY0FBYyw2VUFDZCxjQUFjLHVaQUNkLGlCQUFpQix1VkFDakIsbUJBQW1CLDhGQUNuQixnQkFBZ0IsOEJBQ2hCLGdCQUFnQiw4YkFDaEIsZUFBZSw4QkFDZixxQkFBcUIsOEJBQ3JCLGFBQWEseUlBQ2IsWUFBWSwyTkFDWixZQUFZOzsyRkFJSCwwQkFBMEI7a0JBckJ0QyxTQUFTO29DQUdPLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixZQUFZO3FCQUNiLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb2xsYXBzZUNsaWNrRXZlbnQsIEFYQ29sbGFwc2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29sbGFwc2UnO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xuaW1wb3J0IHtcbiAgQVhDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCxcbiAgQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudCxcbiAgQVhNZW51TW9kdWxlLFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWVudSc7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFNlbGVjdGlvbkxpc3RNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0aW9uLWxpc3QnO1xuaW1wb3J0IHsgQVhTaWRlTWVudU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zaWRlLW1lbnUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBFbnRpdHlDcmVhdGVFdmVudCwgQVhQRW50aXR5RGVsZXRlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXRzJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSwgb2ZUeXBlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgT25Jbml0LFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYTU1vZHVsZURlc2lnbmVyQ29udGV4dE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udGV4dC1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQTW9kdWxlRGVzaWduZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGUtZGVzaWduZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBWE1Nb2R1bGVJdGVtIH0gZnJvbSAnLi9tb2R1bGUtZGVzaWduZXIudHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vbW9kdWxlLWRlc2lnbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kdWxlLWRlc2lnbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFNpZGVNZW51TW9kdWxlLFxuICAgIEFYQ29sbGFwc2VNb2R1bGUsXG4gICAgQVhQb3BvdmVyTW9kdWxlLFxuICAgIEFYU2VsZWN0aW9uTGlzdE1vZHVsZSxcbiAgICBBWEJhZGdlTW9kdWxlLFxuICAgIEFYTWVudU1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1Nb2R1bGVEZXNpZ25lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIGNvbnRleHRNZW51ID0gdmlld0NoaWxkPEFYQ29udGV4dE1lbnVDb21wb25lbnQ+KCdjb250ZXh0TWVudScpO1xuXG4gIHByb3RlY3RlZCBkYXRhUHJvdmlkZXIgPSBpbmplY3QoQVhQTW9kdWxlRGVzaWduZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgY29udGV4dE1lbnVTZXJ2aWNlID0gaW5qZWN0KEFYTU1vZHVsZURlc2lnbmVyQ29udGV4dE1lbnVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgbW9kdWxlcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHByb3RlY3RlZCBtb2R1bGVEYXRhQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgYW55W10+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3Vic2NyaWJlQWN0aW9uRXZlbnRzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWRNb2R1bGVzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3Vic2NyaWJlQWN0aW9uRXZlbnRzKCkge1xuICAgIHRoaXMud29ya2Zsb3cuZXZlbnRzJFxuICAgICAgLnBpcGUob2ZUeXBlKEFYUEVudGl0eURlbGV0ZWRFdmVudCwgQVhQRW50aXR5Q3JlYXRlRXZlbnQpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbWV0YSB9ID0gZXZlbnQucGF5bG9hZDtcbiAgICAgICAgaWYgKG1ldGEudHlwZSA9PT0gJ21vZHVsZScpIHtcbiAgICAgICAgICB0aGlzLmxvYWRNb2R1bGVzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2FkTW9kdWxlRGF0YShtZXRhLm1vZHVsZUlkLCBtZXRhLnR5cGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbG9hZE1vZHVsZXMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vZHVsZXMgPSBhd2FpdCB0aGlzLmRhdGFQcm92aWRlci5nZXRNb2R1bGVzKCk7XG4gICAgICB0aGlzLm1vZHVsZXMuc2V0KG1vZHVsZXMuaXRlbXMpO1xuICAgICAgdGhpcy5yZWZyZXNoQ29udGV4dE1lbnUoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBtb2R1bGVzOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQ29sbGFwc2VJdGVtQ2xpY2sobW9kdWxlSWQ6IHN0cmluZywgZTogQVhDb2xsYXBzZUNsaWNrRXZlbnQsIGRhdGFUeXBlOiBBWE1Nb2R1bGVJdGVtKSB7XG4gICAgaWYgKGUuY29tcG9uZW50LmlzQ29sbGFwc2VkKSB7XG4gICAgICBlLmhhbmRsZWQgPSB0cnVlO1xuICAgICAgZS5jb21wb25lbnQuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgYXdhaXQgdGhpcy5sb2FkTW9kdWxlRGF0YShtb2R1bGVJZCwgZGF0YVR5cGUpO1xuXG4gICAgICBlLmNvbXBvbmVudC50b2dnbGUoKTtcbiAgICAgIGUuY29tcG9uZW50LmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgZS5jb21wb25lbnRbJ2NkciddLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5yZWZyZXNoQ29udGV4dE1lbnUoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVmcmVzaENvbnRleHRNZW51KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0TWVudSgpPy5yZWZyZXNoKCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbG9hZE1vZHVsZURhdGEobW9kdWxlSWQ6IHN0cmluZywgZGF0YVR5cGU6IEFYTU1vZHVsZUl0ZW0sIGhhcmRSZWxvYWQgPSBmYWxzZSkge1xuICAgIGNvbnN0IGNhY2hlS2V5ID0gYCR7bW9kdWxlSWR9LSR7ZGF0YVR5cGV9YDtcblxuICAgIGxldCBkYXRhSXRlbXMgPSB0aGlzLm1vZHVsZURhdGFDYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIC8vIGlmICghZGF0YUl0ZW1zIHx8IGhhcmRSZWxvYWQpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWV0aG9kTWFwID0ge1xuICAgICAgICBlbnRpdHk6IHRoaXMuZGF0YVByb3ZpZGVyLmdldEVudGl0aWVzLFxuICAgICAgICBwZXJtaXNzaW9uOiB0aGlzLmRhdGFQcm92aWRlci5nZXRQZXJtaXNzaW9ucyxcbiAgICAgICAgZmVhdHVyZTogdGhpcy5kYXRhUHJvdmlkZXIuZ2V0RmVhdHVyZXMsXG4gICAgICB9O1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IG1ldGhvZE1hcFtkYXRhVHlwZV0uY2FsbCh0aGlzLmRhdGFQcm92aWRlciwgbW9kdWxlSWQpO1xuXG4gICAgICBkYXRhSXRlbXMgPSBkYXRhLml0ZW1zIGFzIGFueVtdO1xuICAgICAgdGhpcy5tb2R1bGVEYXRhQ2FjaGUuc2V0KGNhY2hlS2V5LCBkYXRhSXRlbXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBsb2FkaW5nICR7ZGF0YVR5cGV9OmAsIGVycm9yKTtcbiAgICB9XG4gICAgLy8gfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldEVudGl0aWVzKG1vZHVsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tb2R1bGVEYXRhQ2FjaGUuZ2V0KGAke21vZHVsZUlkfS1lbnRpdHlgKSB8fCBbXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRQZXJtaXNzaW9ucyhtb2R1bGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kdWxlRGF0YUNhY2hlLmdldChgJHttb2R1bGVJZH0tcGVybWlzc2lvbmApIHx8IFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZlYXR1cmVzKG1vZHVsZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tb2R1bGVEYXRhQ2FjaGUuZ2V0KGAke21vZHVsZUlkfS1mZWF0dXJlYCkgfHwgW107XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbmluZ0NvbnRleHRNZW51KGU6IEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQpIHtcbiAgICB0aGlzLmNvbnRleHRNZW51U2VydmljZS5vcGVuKGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUFjdGlvbkNsaWNrKGU6IEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQpIHtcbiAgICB0aGlzLmNvbnRleHRNZW51U2VydmljZS5pdGVtQ2xpY2soZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlTW9kdWxlKCkge1xuICAgIHRoaXMuY29udGV4dE1lbnVTZXJ2aWNlLmNyZWF0ZUVudGl0eSgnbW9kdWxlJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3NpZ25EYXRhKHRhcmdldDogSFRNTEVsZW1lbnQsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHNldCh0YXJnZXQsICdkYXRhJywgZGF0YSk7XG4gIH1cbn1cbiIsIjxheC1kcmF3ZXItY29udGFpbmVyIGNsYXNzPVwiYXgtb3ZlcmZsb3ctaGlkZGVuXCI+XG4gIDxheC1kcmF3ZXIgI2RyYXdlciBsb2NhdGlvbj1cInN0YXJ0XCIgW2NvbGxhcHNlZF09XCJmYWxzZVwiIFttb2RlXT1cIidwdXNoJ1wiPlxuICAgIDxheC1jb250ZW50IGNsYXNzPVwiYXgtdy04MCBheC1yZWxhdGl2ZSBheC1ib3JkZXItZSBheC1weC00IGF4LXB5LTJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1vdmVyZmxvdy1hdXRvIGF4LWgtW2NhbGMoMTAwdmgtMTgwcHgpXVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtYm9sZCBheC10ZXh0LXhsXCI+e3sgJ2Rlc2lnbmVyLm1vZHVsZXMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0yIGF4LW10LTRcIj5cbiAgICAgICAgICBAaWYobW9kdWxlcygpLmxlbmd0aCl7XG4gICAgICAgICAgPGF4LWNvbGxhcHNlLWdyb3VwIFthY2NvcmRpb25dPVwiZmFsc2VcIiBsb29rPVwiYmxhbmtcIj5cbiAgICAgICAgICAgIEBmb3IobSBvZiBtb2R1bGVzKCk7dHJhY2sgJGluZGV4KXtcbiAgICAgICAgICAgIDxheC1jb2xsYXBzZVxuICAgICAgICAgICAgICBjbGFzcz1cImN0eFwiXG4gICAgICAgICAgICAgIGljb249XCJmYXMgZmEtZm9sZGVyIGF4LXRleHQtd2FybmluZ1wiXG4gICAgICAgICAgICAgIFtpc0NvbGxhcHNlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NhcHRpb25dPVwibS50aXRsZVwiXG4gICAgICAgICAgICAgIGxvb2s9XCJub25lXCJcbiAgICAgICAgICAgICAgZGF0YS1lbGVtZW50VHlwZT1cIm1vZHVsZVwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtbW9kdWxlSWRdPVwibS5pZFwiXG4gICAgICAgICAgICAgIGRhdGEtZW50aXR5VHlwZT1cIm1vZHVsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1teC0zXCI+XG4gICAgICAgICAgICAgICAgPGF4LWNvbGxhcHNlLWdyb3VwIFthY2NvcmRpb25dPVwiZmFsc2VcIiBsb29rPVwiYmxhbmtcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1jb2xsYXBzZVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImN0eFwiXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJmYXMgZmEtYm94IGF4LXRleHQtbmV1dHJhbC00MDBcIlxuICAgICAgICAgICAgICAgICAgICBbaXNDb2xsYXBzZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNvbGxhcHNlSXRlbUNsaWNrKG0uaWQsICRldmVudCwgJ2VudGl0eScpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25dPVwiKCdkZXNpZ25lci5lbnRpdGllcycgfCB0cmFuc2xhdGUgfCBhc3luYykgPz8gJ0VudGl0aWVzJ1wiXG4gICAgICAgICAgICAgICAgICAgIGxvb2s9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1lbGVtZW50VHlwZT1cInN1Yk1vZHVsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtbW9kdWxlSWRdPVwibS5pZFwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtZW50aXR5VHlwZT1cImVudGl0eVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlsZFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7IHR5cGU6ICdlbnRpdHknLCBpdGVtczogZ2V0RW50aXRpZXMobS5pZCksIG1vZHVsZUlkOiBtLmlkIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9heC1jb2xsYXBzZT5cblxuICAgICAgICAgICAgICAgICAgPGF4LWNvbGxhcHNlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3R4XCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImZhcyBmYS1zdGFyIGF4LXRleHQtbmV1dHJhbC00MDBcIlxuICAgICAgICAgICAgICAgICAgICBbaXNDb2xsYXBzZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNvbGxhcHNlSXRlbUNsaWNrKG0uaWQsICRldmVudCwgJ2ZlYXR1cmUnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYXB0aW9uXT1cIignZGVzaWduZXIuZmVhdHVyZXMnIHwgdHJhbnNsYXRlIHwgYXN5bmMpID8/ICdGZWF0dXJlcydcIlxuICAgICAgICAgICAgICAgICAgICBsb29rPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtZWxlbWVudFR5cGU9XCJzdWJNb2R1bGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLW1vZHVsZUlkXT1cIm0uaWRcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLWVudGl0eVR5cGU9XCJmZWF0dXJlXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNoaWxkVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHsgdHlwZTogJ2ZlYXR1cmUnLCBpdGVtczogZ2V0RmVhdHVyZXMobS5pZCksIG1vZHVsZUlkOiBtLmlkIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9heC1jb2xsYXBzZT5cblxuICAgICAgICAgICAgICAgICAgPGF4LWNvbGxhcHNlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3R4XCJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImZhcyBmYS1rZXkgYXgtdGV4dC1uZXV0cmFsLTQwMFwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0NvbGxhcHNlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ29sbGFwc2VJdGVtQ2xpY2sobS5pZCwgJGV2ZW50LCAncGVybWlzc2lvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25dPVwiKCdkZXNpZ25lci5wZXJtaXNzaW9ucycgfCB0cmFuc2xhdGUgfCBhc3luYykgPz8gJ1Blcm1pc3Npb25zJ1wiXG4gICAgICAgICAgICAgICAgICAgIGxvb2s9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1lbGVtZW50VHlwZT1cInN1Yk1vZHVsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtbW9kdWxlSWRdPVwibS5pZFwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtZW50aXR5VHlwZT1cInBlcm1pc3Npb25cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2hpbGRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogeyB0eXBlOiAncGVybWlzc2lvbicsIGl0ZW1zOiBnZXRQZXJtaXNzaW9ucyhtLmlkKSwgbW9kdWxlSWQ6IG0uaWQgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2F4LWNvbGxhcHNlPlxuICAgICAgICAgICAgICAgIDwvYXgtY29sbGFwc2UtZ3JvdXA+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9heC1jb2xsYXBzZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2F4LWNvbGxhcHNlLWdyb3VwPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1oLWZ1bGwgYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1uZXV0cmFsLTUwMCBheC10ZXh0LXNtXCI+e3sgJ2Rlc2lnbmVyLmVtcHR5TW9kdWxlc1RleHQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYXgtYWJzb2x1dGUgYXgtYm90dG9tLTQgYXgtdy03MlwiXG4gICAgICAgICAgW3RleHRdPVwiKCdkZXNpZ25lci5jcmVhdGVNb2R1bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMpID8/ICdDcmVhdGUgTmV3IE1vZHVsZSdcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImNyZWF0ZU1vZHVsZSgpXCJcbiAgICAgICAgICBsb29rPVwic29saWRcIlxuICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBmYS1wbHVzXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2F4LWNvbnRlbnQ+XG5cbiAgICA8bmctdGVtcGxhdGUgI2NoaWxkVGVtcGxhdGUgbGV0LWNoaWxkPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtY3Vyc29yLXBvaW50ZXIgYXgtc2VsZWN0LW5vbmUgYXgtYm9yZGVyLXMgYXgtbXMtWzE0cHhdIGF4LXBzLTJcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBjaGlsZC5pdGVtczsgdHJhY2sgJGluZGV4KSB7XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICNkXG4gICAgICAgICAgKGNsaWNrKT1cImNvbnRleHRNZW51U2VydmljZS5zaG93RGV0YWlscyhjaGlsZC50eXBlLCBpdGVtLmlkKVwiXG4gICAgICAgICAgY2xhc3M9XCJjdHggYXgtcHgtMiBheC1weS0xIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktYmV0d2VlbiBob3ZlcjpheC1iZy1uZXV0cmFsLTEwMCBkYXJrOmhvdmVyOmF4LWJnLW5ldXRyYWwtNzAwIGhvdmVyOmF4LXJvdW5kZWQtbWRcIlxuICAgICAgICAgIGRhdGEtZWxlbWVudFR5cGU9XCJzdWJNb2R1bGVJdGVtXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGFzc2lnbkRhdGEoZCwgeyByZWNvcmQ6IGl0ZW0sIGVudGl0eVR5cGU6IGNoaWxkLnR5cGUsIG1vZHVsZUlkOiBjaGlsZC5tb2R1bGVJZCB9KSB9fVxuICAgICAgICAgIDxzcGFuPnt7IGl0ZW0udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgPGF4LWJhZGdlXG4gICAgICAgICAgICBbbG9va109XCIndHdvdG9uZSdcIlxuICAgICAgICAgICAgW2NvbG9yXT1cIml0ZW0uaXNBcmNoaXZlZCA/ICdkYW5nZXInIDogJ3N1Y2Nlc3MnXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cIml0ZW0uaXNBcmNoaXZlZCA/ICdPZmYnIDogJ09uJ1wiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvYXgtYmFkZ2U+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2F4LWRyYXdlcj5cbiAgPGF4LWNvbnRlbnQ+XG4gICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICA8L2F4LWNvbnRlbnQ+XG48L2F4LWRyYXdlci1jb250YWluZXI+XG5cbjxheC1jb250ZXh0LW1lbnVcbiAgI2NvbnRleHRNZW51XG4gIChvbkl0ZW1DbGljayk9XCJoYW5kbGVBY3Rpb25DbGljaygkZXZlbnQpXCJcbiAgW2l0ZW1zXT1cIltdXCJcbiAgW3RhcmdldF09XCInLmN0eCdcIlxuICBbb3JpZW50YXRpb25dPVwiJ3ZlcnRpY2FsJ1wiXG4gIFtjbG9zZU9uXT1cIidsZWF2ZSdcIlxuICAob25PcGVuaW5nKT1cIm9wZW5pbmdDb250ZXh0TWVudSgkZXZlbnQpXCJcbj5cbjwvYXgtY29udGV4dC1tZW51PlxuIl19
@@ -78,7 +78,6 @@ export class AXMModuleDesignerContextMenuService {
78
78
  }
79
79
  }
80
80
  itemClick(e) {
81
- console.log('clicked', e, this.elementData());
82
81
  if (this.elementData()) {
83
82
  switch (e.item.name) {
84
83
  case 'create':
@@ -164,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
164
163
  providedIn: 'root',
165
164
  }]
166
165
  }] });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL3NlcnZpY2VzL2NvbnRleHQtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLG1DQUFtQztJQUhoRDtRQUlVLGFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwQyxpQkFBWSxHQUFHLE1BQU0sQ0FBOEMsSUFBSSxDQUFDLENBQUM7UUFDekUsZ0JBQVcsR0FBRyxNQUFNLENBQXNFLElBQUksQ0FBQyxDQUFDO1FBRWxHLGNBQVMsR0FBaUI7WUFDaEM7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEtBQUssRUFBRSxTQUFTO2FBQ2pCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLEtBQUssRUFBRSxRQUFRO2FBQ2hCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxPQUFPO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsS0FBSyxFQUFFLE9BQU87YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxjQUFjO2dCQUNwQixLQUFLLEVBQUUsT0FBTztnQkFDZCxRQUFRLEVBQUUsS0FBSzthQUNoQjtTQUNGLENBQUM7S0FxSUg7SUFuSUMsSUFBSSxDQUFDLENBQTRCO1FBQy9CLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDL0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFhLENBQUM7UUFFL0IsSUFBSSxXQUFXLElBQUksUUFBUSxJQUFJLFdBQVcsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUMxRCxNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxZQUFZLENBQUMsaUJBQWlCLENBQWtCLENBQUM7WUFDNUUsSUFBSSxXQUFXLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO29CQUNuQixVQUFVO29CQUNWLFFBQVEsRUFBRSxRQUFrQjtvQkFDNUIsTUFBTSxFQUFFO3dCQUNOLEVBQUUsRUFBRSxRQUFRO3FCQUNiO2lCQUNGLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7b0JBQ25CLFVBQVU7b0JBQ1YsUUFBUSxFQUFFLFFBQWtCO29CQUM1QixNQUFNLEVBQUUsU0FBUztpQkFDbEIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDckQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3RDLENBQUMsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNuRyxDQUFDO2dCQUNGLENBQUMsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxXQUFXLElBQUksZUFBZSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxDQUFDO1lBQ04sQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDYixDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxDQUErQjtRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN2QixRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssUUFBUTtvQkFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxVQUEyQixFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDakcsTUFBTTtnQkFFUixLQUFLLFNBQVM7b0JBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsVUFBc0MsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUM1RyxNQUFNO2dCQUVSLEtBQUssUUFBUTtvQkFDWCxJQUFJLENBQUMsWUFBWSxDQUNmLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxVQUFzQyxFQUMxRCxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFDN0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FDN0IsQ0FBQztvQkFDRixNQUFNO2dCQUVSLEtBQUssTUFBTTtvQkFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxVQUEyQixFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDN0YsTUFBTTtnQkFFUixLQUFLLE9BQU87b0JBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBa0IsQ0FBQyxDQUFDO29CQUN6RCxNQUFNO2dCQUVSO29CQUNFLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQW9DLEVBQUUsUUFBaUI7UUFDeEUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZQUNsRCxNQUFNLEVBQUUsMEJBQTBCLFVBQVUsRUFBRTtZQUM5QyxJQUFJLEVBQUU7Z0JBQ0osUUFBUTthQUNUO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxVQUFVO2dCQUNoQixRQUFRO2FBQ1Q7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFvQyxFQUFFLEVBQVU7UUFDaEUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRTtZQUN4RCxNQUFNLEVBQUUsMEJBQTBCLFVBQVUsRUFBRTtZQUM5QyxJQUFJLEVBQUU7Z0JBQ0osRUFBRTthQUNIO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFVBQVUsQ0FBQyxVQUF5QixFQUFFLE1BQVc7UUFDdkQsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBZ0I7UUFDeEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFO2dCQUNsRCxNQUFNLEVBQUUsMEJBQTBCLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUU7Z0JBQzdELElBQUksRUFBRTtvQkFDSixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNO29CQUM5QixRQUFRO2lCQUNUO2dCQUNELElBQUksRUFBRTtvQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUk7b0JBQy9CLFFBQVE7aUJBQ1Q7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZLENBQUMsVUFBb0MsRUFBRSxFQUFxQixFQUFFLFFBQWlCO1FBQ3ZHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQzNDLE1BQU0sRUFBRSwwQkFBMEIsVUFBVSxFQUFFO1lBQzlDLElBQUksRUFBRTtnQkFDSixFQUFFO2FBQ0g7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osUUFBUTtnQkFDUixJQUFJLEVBQUUsVUFBVTthQUNqQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxZQUFZLENBQUMsWUFBc0I7UUFDekMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBYyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDOzhHQXpLVSxtQ0FBbUM7a0hBQW5DLG1DQUFtQyxjQUZsQyxNQUFNOzsyRkFFUCxtQ0FBbUM7a0JBSC9DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCwgQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudCwgQVhNZW51SXRlbSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTU1vZHVsZUl0ZW0gfSBmcm9tICcuLi9tb2R1bGUtZGVzaWduZXIvbW9kdWxlLWRlc2lnbmVyLnR5cGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhNTW9kdWxlRGVzaWduZXJDb250ZXh0TWVudVNlcnZpY2Uge1xuICBwcml2YXRlIHdvcmtmbG93ID0gaW5qZWN0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByb3RlY3RlZCBjb3BpZWRSZWNvcmQgPSBzaWduYWw8eyB0eXBlOiBBWE1Nb2R1bGVJdGVtOyByZWNvcmQ6IGFueSB9IHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBlbGVtZW50RGF0YSA9IHNpZ25hbDx7IGVudGl0eVR5cGU6IEFYTU1vZHVsZUl0ZW07IHJlY29yZDogYW55OyBtb2R1bGVJZDogc3RyaW5nIH0gfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIG1lbnVJdGVtczogQVhNZW51SXRlbVtdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdjcmVhdGUnLFxuICAgICAgdGV4dDogJ0NyZWF0ZScsXG4gICAgICBpY29uOiAnZmFzIGZhLXBsdXMnLFxuICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdkZWxldGUnLFxuICAgICAgdGV4dDogJ0RlbGV0ZScsXG4gICAgICBpY29uOiAnZmFzIGZhLXRyYXNoJyxcbiAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdkZXRhaWxzJyxcbiAgICAgIHRleHQ6ICdEZXRhaWxzJyxcbiAgICAgIGljb246ICdmYXMgZmEtZXllJyxcbiAgICAgIGNvbG9yOiAnZ2hvc3QnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2NvcHknLFxuICAgICAgdGV4dDogJ0NvcHknLFxuICAgICAgaWNvbjogJ2ZhcyBmYS1jb3B5JyxcbiAgICAgIGNvbG9yOiAnZ2hvc3QnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3Bhc3RlJyxcbiAgICAgIHRleHQ6ICdQYXN0ZScsXG4gICAgICBpY29uOiAnZmFzIGZhLXBhc3RlJyxcbiAgICAgIGNvbG9yOiAnZ2hvc3QnLFxuICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gIF07XG5cbiAgb3BlbihlOiBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50KSB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXRFbGVtZW50O1xuICAgIGNvbnN0IGVsZW1lbnRUeXBlID0gdGFyZ2V0Py5nZXRBdHRyaWJ1dGUoJ2RhdGEtZWxlbWVudFR5cGUnKTtcbiAgICBjb25zdCB7IGRhdGEgfSA9IHRhcmdldCBhcyBhbnk7XG5cbiAgICBpZiAoZWxlbWVudFR5cGUgPT0gJ21vZHVsZScgfHwgZWxlbWVudFR5cGUgPT0gJ3N1Yk1vZHVsZScpIHtcbiAgICAgIGNvbnN0IG1vZHVsZUlkID0gdGFyZ2V0Py5nZXRBdHRyaWJ1dGUoJ2RhdGEtbW9kdWxlSWQnKTtcbiAgICAgIGNvbnN0IGVudGl0eVR5cGUgPSB0YXJnZXQ/LmdldEF0dHJpYnV0ZSgnZGF0YS1lbnRpdHlUeXBlJykgYXMgQVhNTW9kdWxlSXRlbTtcbiAgICAgIGlmIChlbGVtZW50VHlwZSA9PSAnbW9kdWxlJykge1xuICAgICAgICB0aGlzLmVsZW1lbnREYXRhLnNldCh7XG4gICAgICAgICAgZW50aXR5VHlwZSxcbiAgICAgICAgICBtb2R1bGVJZDogbW9kdWxlSWQgYXMgc3RyaW5nLFxuICAgICAgICAgIHJlY29yZDoge1xuICAgICAgICAgICAgaWQ6IG1vZHVsZUlkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBlLml0ZW1zID0gdGhpcy5nZXRNZW51SXRlbXMoWydkZXRhaWxzJywgJ2RlbGV0ZSddKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZWxlbWVudERhdGEuc2V0KHtcbiAgICAgICAgICBlbnRpdHlUeXBlLFxuICAgICAgICAgIG1vZHVsZUlkOiBtb2R1bGVJZCBhcyBzdHJpbmcsXG4gICAgICAgICAgcmVjb3JkOiB1bmRlZmluZWQsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0TWVudUl0ZW1zKFsnY3JlYXRlJywgJ3Bhc3RlJ10pO1xuICAgICAgICBjb25zdCBjdXN0b21NZW51SXRlbXMgPSBpdGVtcy5tYXAoKGkpID0+XG4gICAgICAgICAgaS5uYW1lID09ICdwYXN0ZScgPyB7IC4uLmksIGRpc2FibGVkOiBlbnRpdHlUeXBlID09IHRoaXMuY29waWVkUmVjb3JkKCk/LnR5cGUgPyBmYWxzZSA6IHRydWUgfSA6IGlcbiAgICAgICAgKTtcbiAgICAgICAgZS5pdGVtcyA9IGN1c3RvbU1lbnVJdGVtcztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVsZW1lbnRUeXBlID09ICdzdWJNb2R1bGVJdGVtJykge1xuICAgICAgdGhpcy5lbGVtZW50RGF0YS5zZXQoZGF0YSk7XG4gICAgICBlLml0ZW1zID0gdGhpcy5nZXRNZW51SXRlbXMoWydkZWxldGUnLCAnY29weScsICdkZXRhaWxzJ10pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlLml0ZW1zID0gW107XG4gICAgICBlLmNhbmNlbGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpdGVtQ2xpY2soZTogQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCkge1xuICAgIGNvbnNvbGUubG9nKCdjbGlja2VkJywgZSwgdGhpcy5lbGVtZW50RGF0YSgpKTtcbiAgICBpZiAodGhpcy5lbGVtZW50RGF0YSgpKSB7XG4gICAgICBzd2l0Y2ggKGUuaXRlbS5uYW1lKSB7XG4gICAgICAgIGNhc2UgJ2NyZWF0ZSc6XG4gICAgICAgICAgdGhpcy5jcmVhdGVFbnRpdHkodGhpcy5lbGVtZW50RGF0YSgpPy5lbnRpdHlUeXBlIGFzIEFYTU1vZHVsZUl0ZW0sIHRoaXMuZWxlbWVudERhdGEoKT8ubW9kdWxlSWQpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2RldGFpbHMnOlxuICAgICAgICAgIHRoaXMuc2hvd0RldGFpbHModGhpcy5lbGVtZW50RGF0YSgpPy5lbnRpdHlUeXBlIGFzIEFYTU1vZHVsZUl0ZW0gfCAnbW9kdWxlJywgdGhpcy5lbGVtZW50RGF0YSgpPy5yZWNvcmQuaWQpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgdGhpcy5kZWxldGVFbnRpdHkoXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnREYXRhKCk/LmVudGl0eVR5cGUgYXMgQVhNTW9kdWxlSXRlbSB8ICdtb2R1bGUnLFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50RGF0YSgpPy5yZWNvcmQuaWQsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnREYXRhKCk/Lm1vZHVsZUlkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdjb3B5JzpcbiAgICAgICAgICB0aGlzLmNvcHlSZWNvcmQodGhpcy5lbGVtZW50RGF0YSgpPy5lbnRpdHlUeXBlIGFzIEFYTU1vZHVsZUl0ZW0sIHRoaXMuZWxlbWVudERhdGEoKT8ucmVjb3JkKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdwYXN0ZSc6XG4gICAgICAgICAgdGhpcy5wYXN0ZVJlY29yZCh0aGlzLmVsZW1lbnREYXRhKCk/Lm1vZHVsZUlkIGFzIHN0cmluZyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVFbnRpdHkoZW50aXR5VHlwZTogJ21vZHVsZScgfCBBWE1Nb2R1bGVJdGVtLCBtb2R1bGVJZD86IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLW1vZHVsZS1lbnRpdHknLCB7XG4gICAgICBlbnRpdHk6IGBhcHBsaWNhdGlvbi1tYW5hZ2VtZW50LiR7ZW50aXR5VHlwZX1gLFxuICAgICAgZGF0YToge1xuICAgICAgICBtb2R1bGVJZCxcbiAgICAgIH0sXG4gICAgICBtZXRhOiB7XG4gICAgICAgIHR5cGU6IGVudGl0eVR5cGUsXG4gICAgICAgIG1vZHVsZUlkLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNob3dEZXRhaWxzKGVudGl0eVR5cGU6ICdtb2R1bGUnIHwgQVhNTW9kdWxlSXRlbSwgaWQ6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1tb2R1bGUtZW50aXR5LWRldGFpbHMnLCB7XG4gICAgICBlbnRpdHk6IGBhcHBsaWNhdGlvbi1tYW5hZ2VtZW50LiR7ZW50aXR5VHlwZX1gLFxuICAgICAgZGF0YToge1xuICAgICAgICBpZCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvcHlSZWNvcmQoZW50aXR5VHlwZTogQVhNTW9kdWxlSXRlbSwgcmVjb3JkOiBhbnkpIHtcbiAgICBjb25zdCBuZXdSZWNvcmQgPSB7IC4uLnJlY29yZCwgbW9kdWxlSWQ6IHVuZGVmaW5lZCwgaWQ6IHVuZGVmaW5lZCB9O1xuICAgIHRoaXMuY29waWVkUmVjb3JkLnNldCh7IHR5cGU6IGVudGl0eVR5cGUsIHJlY29yZDogbmV3UmVjb3JkIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwYXN0ZVJlY29yZChtb2R1bGVJZDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuY29waWVkUmVjb3JkKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLW1vZHVsZS1lbnRpdHknLCB7XG4gICAgICAgIGVudGl0eTogYGFwcGxpY2F0aW9uLW1hbmFnZW1lbnQuJHt0aGlzLmNvcGllZFJlY29yZCgpPy50eXBlfWAsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi50aGlzLmNvcGllZFJlY29yZCgpPy5yZWNvcmQsXG4gICAgICAgICAgbW9kdWxlSWQsXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICB0eXBlOiB0aGlzLmNvcGllZFJlY29yZCgpPy50eXBlLFxuICAgICAgICAgIG1vZHVsZUlkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkZWxldGVFbnRpdHkoZW50aXR5VHlwZTogJ21vZHVsZScgfCBBWE1Nb2R1bGVJdGVtLCBpZDogc3RyaW5nW10gfCBzdHJpbmcsIG1vZHVsZUlkPzogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdkZWxldGUtZW50aXR5Jywge1xuICAgICAgZW50aXR5OiBgYXBwbGljYXRpb24tbWFuYWdlbWVudC4ke2VudGl0eVR5cGV9YCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgaWQsXG4gICAgICB9LFxuICAgICAgbWV0YToge1xuICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgdHlwZTogZW50aXR5VHlwZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1lbnVJdGVtcyhpbmNsdWRlSXRlbXM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1zLmZpbHRlcigoaSkgPT4gaW5jbHVkZUl0ZW1zLmluY2x1ZGVzKGkubmFtZSBhcyBzdHJpbmcpKTtcbiAgfVxufVxuIl19
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL3NlcnZpY2VzL2NvbnRleHQtbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLG1DQUFtQztJQUhoRDtRQUlVLGFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwQyxpQkFBWSxHQUFHLE1BQU0sQ0FBOEMsSUFBSSxDQUFDLENBQUM7UUFDekUsZ0JBQVcsR0FBRyxNQUFNLENBQXNFLElBQUksQ0FBQyxDQUFDO1FBRWxHLGNBQVMsR0FBaUI7WUFDaEM7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEtBQUssRUFBRSxTQUFTO2FBQ2pCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLEtBQUssRUFBRSxRQUFRO2FBQ2hCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxPQUFPO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsS0FBSyxFQUFFLE9BQU87YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFB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QUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFjLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7OEdBektVLG1DQUFtQztrSEFBbkMsbUNBQW1DLGNBRmxDLE1BQU07OzJGQUVQLG1DQUFtQztrQkFIL0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbnRleHRNZW51SXRlbXNDbGlja0V2ZW50LCBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50LCBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNTW9kdWxlSXRlbSB9IGZyb20gJy4uL21vZHVsZS1kZXNpZ25lci9tb2R1bGUtZGVzaWduZXIudHlwZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1Nb2R1bGVEZXNpZ25lckNvbnRleHRNZW51U2VydmljZSB7XG4gIHByaXZhdGUgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGNvcGllZFJlY29yZCA9IHNpZ25hbDx7IHR5cGU6IEFYTU1vZHVsZUl0ZW07IHJlY29yZDogYW55IH0gfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIGVsZW1lbnREYXRhID0gc2lnbmFsPHsgZW50aXR5VHlwZTogQVhNTW9kdWxlSXRlbTsgcmVjb3JkOiBhbnk7IG1vZHVsZUlkOiBzdHJpbmcgfSB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgbWVudUl0ZW1zOiBBWE1lbnVJdGVtW10gPSBbXG4gICAge1xuICAgICAgbmFtZTogJ2NyZWF0ZScsXG4gICAgICB0ZXh0OiAnQ3JlYXRlJyxcbiAgICAgIGljb246ICdmYXMgZmEtcGx1cycsXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2RlbGV0ZScsXG4gICAgICB0ZXh0OiAnRGVsZXRlJyxcbiAgICAgIGljb246ICdmYXMgZmEtdHJhc2gnLFxuICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2RldGFpbHMnLFxuICAgICAgdGV4dDogJ0RldGFpbHMnLFxuICAgICAgaWNvbjogJ2ZhcyBmYS1leWUnLFxuICAgICAgY29sb3I6ICdnaG9zdCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnY29weScsXG4gICAgICB0ZXh0OiAnQ29weScsXG4gICAgICBpY29uOiAnZmFzIGZhLWNvcHknLFxuICAgICAgY29sb3I6ICdnaG9zdCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAncGFzdGUnLFxuICAgICAgdGV4dDogJ1Bhc3RlJyxcbiAgICAgIGljb246ICdmYXMgZmEtcGFzdGUnLFxuICAgICAgY29sb3I6ICdnaG9zdCcsXG4gICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgfSxcbiAgXTtcblxuICBvcGVuKGU6IEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldEVsZW1lbnQ7XG4gICAgY29uc3QgZWxlbWVudFR5cGUgPSB0YXJnZXQ/LmdldEF0dHJpYnV0ZSgnZGF0YS1lbGVtZW50VHlwZScpO1xuXG4gICAgY29uc3QgeyBkYXRhIH0gPSB0YXJnZXQgYXMgYW55O1xuXG4gICAgaWYgKGVsZW1lbnRUeXBlID09ICdtb2R1bGUnIHx8IGVsZW1lbnRUeXBlID09ICdzdWJNb2R1bGUnKSB7XG4gICAgICBjb25zdCBtb2R1bGVJZCA9IHRhcmdldD8uZ2V0QXR0cmlidXRlKCdkYXRhLW1vZHVsZUlkJyk7XG4gICAgICBjb25zdCBlbnRpdHlUeXBlID0gdGFyZ2V0Py5nZXRBdHRyaWJ1dGUoJ2RhdGEtZW50aXR5VHlwZScpIGFzIEFYTU1vZHVsZUl0ZW07XG4gICAgICBpZiAoZWxlbWVudFR5cGUgPT0gJ21vZHVsZScpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50RGF0YS5zZXQoe1xuICAgICAgICAgIGVudGl0eVR5cGUsXG4gICAgICAgICAgbW9kdWxlSWQ6IG1vZHVsZUlkIGFzIHN0cmluZyxcbiAgICAgICAgICByZWNvcmQ6IHtcbiAgICAgICAgICAgIGlkOiBtb2R1bGVJZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgZS5pdGVtcyA9IHRoaXMuZ2V0TWVudUl0ZW1zKFsnZGV0YWlscycsICdkZWxldGUnXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVsZW1lbnREYXRhLnNldCh7XG4gICAgICAgICAgZW50aXR5VHlwZSxcbiAgICAgICAgICBtb2R1bGVJZDogbW9kdWxlSWQgYXMgc3RyaW5nLFxuICAgICAgICAgIHJlY29yZDogdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldE1lbnVJdGVtcyhbJ2NyZWF0ZScsICdwYXN0ZSddKTtcbiAgICAgICAgY29uc3QgY3VzdG9tTWVudUl0ZW1zID0gaXRlbXMubWFwKChpKSA9PlxuICAgICAgICAgIGkubmFtZSA9PSAncGFzdGUnID8geyAuLi5pLCBkaXNhYmxlZDogZW50aXR5VHlwZSA9PSB0aGlzLmNvcGllZFJlY29yZCgpPy50eXBlID8gZmFsc2UgOiB0cnVlIH0gOiBpXG4gICAgICAgICk7XG4gICAgICAgIGUuaXRlbXMgPSBjdXN0b21NZW51SXRlbXM7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlbGVtZW50VHlwZSA9PSAnc3ViTW9kdWxlSXRlbScpIHtcbiAgICAgIHRoaXMuZWxlbWVudERhdGEuc2V0KGRhdGEpO1xuICAgICAgZS5pdGVtcyA9IHRoaXMuZ2V0TWVudUl0ZW1zKFsnZGVsZXRlJywgJ2NvcHknLCAnZGV0YWlscyddKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZS5pdGVtcyA9IFtdO1xuICAgICAgZS5jYW5jZWxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaXRlbUNsaWNrKGU6IEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQpIHtcbiAgICBpZiAodGhpcy5lbGVtZW50RGF0YSgpKSB7XG4gICAgICBzd2l0Y2ggKGUuaXRlbS5uYW1lKSB7XG4gICAgICAgIGNhc2UgJ2NyZWF0ZSc6XG4gICAgICAgICAgdGhpcy5jcmVhdGVFbnRpdHkodGhpcy5lbGVtZW50RGF0YSgpPy5lbnRpdHlUeXBlIGFzIEFYTU1vZHVsZUl0ZW0sIHRoaXMuZWxlbWVudERhdGEoKT8ubW9kdWxlSWQpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2RldGFpbHMnOlxuICAgICAgICAgIHRoaXMuc2hvd0RldGFpbHModGhpcy5lbGVtZW50RGF0YSgpPy5lbnRpdHlUeXBlIGFzIEFYTU1vZHVsZUl0ZW0gfCAnbW9kdWxlJywgdGhpcy5lbGVtZW50RGF0YSgpPy5yZWNvcmQuaWQpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgdGhpcy5kZWxldGVFbnRpdHkoXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnREYXRhKCk/LmVudGl0eVR5cGUgYXMgQVhNTW9kdWxlSXRlbSB8ICdtb2R1bGUnLFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50RGF0YSgpPy5yZWNvcmQuaWQsXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnREYXRhKCk/Lm1vZHVsZUlkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdjb3B5JzpcbiAgICAgICAgICB0aGlzLmNvcHlSZWNvcmQodGhpcy5lbGVtZW50RGF0YSgpPy5lbnRpdHlUeXBlIGFzIEFYTU1vZHVsZUl0ZW0sIHRoaXMuZWxlbWVudERhdGEoKT8ucmVjb3JkKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdwYXN0ZSc6XG4gICAgICAgICAgdGhpcy5wYXN0ZVJlY29yZCh0aGlzLmVsZW1lbnREYXRhKCk/Lm1vZHVsZUlkIGFzIHN0cmluZyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVFbnRpdHkoZW50aXR5VHlwZTogJ21vZHVsZScgfCBBWE1Nb2R1bGVJdGVtLCBtb2R1bGVJZD86IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLW1vZHVsZS1lbnRpdHknLCB7XG4gICAgICBlbnRpdHk6IGBhcHBsaWNhdGlvbi1tYW5hZ2VtZW50LiR7ZW50aXR5VHlwZX1gLFxuICAgICAgZGF0YToge1xuICAgICAgICBtb2R1bGVJZCxcbiAgICAgIH0sXG4gICAgICBtZXRhOiB7XG4gICAgICAgIHR5cGU6IGVudGl0eVR5cGUsXG4gICAgICAgIG1vZHVsZUlkLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNob3dEZXRhaWxzKGVudGl0eVR5cGU6ICdtb2R1bGUnIHwgQVhNTW9kdWxlSXRlbSwgaWQ6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1tb2R1bGUtZW50aXR5LWRldGFpbHMnLCB7XG4gICAgICBlbnRpdHk6IGBhcHBsaWNhdGlvbi1tYW5hZ2VtZW50LiR7ZW50aXR5VHlwZX1gLFxuICAgICAgZGF0YToge1xuICAgICAgICBpZCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvcHlSZWNvcmQoZW50aXR5VHlwZTogQVhNTW9kdWxlSXRlbSwgcmVjb3JkOiBhbnkpIHtcbiAgICBjb25zdCBuZXdSZWNvcmQgPSB7IC4uLnJlY29yZCwgbW9kdWxlSWQ6IHVuZGVmaW5lZCwgaWQ6IHVuZGVmaW5lZCB9O1xuICAgIHRoaXMuY29waWVkUmVjb3JkLnNldCh7IHR5cGU6IGVudGl0eVR5cGUsIHJlY29yZDogbmV3UmVjb3JkIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwYXN0ZVJlY29yZChtb2R1bGVJZDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuY29waWVkUmVjb3JkKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLW1vZHVsZS1lbnRpdHknLCB7XG4gICAgICAgIGVudGl0eTogYGFwcGxpY2F0aW9uLW1hbmFnZW1lbnQuJHt0aGlzLmNvcGllZFJlY29yZCgpPy50eXBlfWAsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi50aGlzLmNvcGllZFJlY29yZCgpPy5yZWNvcmQsXG4gICAgICAgICAgbW9kdWxlSWQsXG4gICAgICAgIH0sXG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICB0eXBlOiB0aGlzLmNvcGllZFJlY29yZCgpPy50eXBlLFxuICAgICAgICAgIG1vZHVsZUlkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBkZWxldGVFbnRpdHkoZW50aXR5VHlwZTogJ21vZHVsZScgfCBBWE1Nb2R1bGVJdGVtLCBpZDogc3RyaW5nW10gfCBzdHJpbmcsIG1vZHVsZUlkPzogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdkZWxldGUtZW50aXR5Jywge1xuICAgICAgZW50aXR5OiBgYXBwbGljYXRpb24tbWFuYWdlbWVudC4ke2VudGl0eVR5cGV9YCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgaWQsXG4gICAgICB9LFxuICAgICAgbWV0YToge1xuICAgICAgICBtb2R1bGVJZCxcbiAgICAgICAgdHlwZTogZW50aXR5VHlwZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1lbnVJdGVtcyhpbmNsdWRlSXRlbXM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudUl0ZW1zLmZpbHRlcigoaSkgPT4gaW5jbHVkZUl0ZW1zLmluY2x1ZGVzKGkubmFtZSBhcyBzdHJpbmcpKTtcbiAgfVxufVxuIl19
@@ -1,3 +1,27 @@
1
+ import { AXPWorkflowNavigateAction } from '@acorex/platform/common';
2
+ import { AXPWorkflowAction } from '@acorex/platform/workflow';
3
+ import { inject, Injectable } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ export class AXPShowModuleEntityDetailViewAction extends AXPWorkflowAction {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.navigation = inject(AXPWorkflowNavigateAction);
9
+ }
10
+ async execute(context) {
11
+ const [module, entity] = context.getVariable('entity').split('.');
12
+ const { id } = context.getVariable('data');
13
+ const newPayload = {
14
+ commands: `/console/module-designer/m/${module}/e/${entity}/${id}/view`,
15
+ };
16
+ context.setVariable('payload', newPayload);
17
+ this.navigation.execute(context);
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPShowModuleEntityDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
20
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPShowModuleEntityDetailViewAction }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPShowModuleEntityDetailViewAction, decorators: [{
23
+ type: Injectable
24
+ }] });
1
25
  export const AXPCreateModuleEntityWorkflow = {
2
26
  startStepId: 'show-popup',
3
27
  steps: {
@@ -39,4 +63,4 @@ export const AXPCreateModuleEntityWorkflow = {
39
63
  },
40
64
  },
41
65
  };
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZHVsZS1lbnRpdHkud29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL3dvcmtmbG93cy9jcmVhdGUtbW9kdWxlLWVudGl0eS53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBZ0I7SUFDeEQsV0FBVyxFQUFFLFlBQVk7SUFDekIsS0FBSyxFQUFFO1FBQ0wsWUFBWSxFQUFFO1lBQ1osTUFBTSxFQUFFLDRCQUE0QjtZQUNwQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxxQ0FBcUMsRUFBRSxDQUFDO29CQUNuRixVQUFVLEVBQUUsWUFBWTtpQkFDekI7YUFDRjtTQUNGO1FBQ0QsWUFBWSxFQUFFO1lBQ1osTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLEtBQUssRUFBRSxnQkFBZ0I7Z0JBQ3ZCLE9BQU8sRUFBRSwyQ0FBMkM7YUFDckQ7WUFDRCxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsVUFBVSxFQUFFLEVBQUU7b0JBQ2QsVUFBVSxFQUFFLGdCQUFnQjtpQkFDN0I7YUFDRjtTQUNGO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsTUFBTSxFQUFFLGdDQUFnQztZQUN4QyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSwwQ0FBMEMsRUFBRSxDQUFDO29CQUN4RixVQUFVLEVBQUUsYUFBYTtpQkFDMUI7YUFDRjtTQUNGO1FBQ0QsYUFBYSxFQUFFO1lBQ2IsRUFBRSxFQUFFLGFBQWE7WUFDakIsTUFBTSxFQUFFLHFDQUFxQztTQUM5QztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFdvcmtmbG93IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5cbmV4cG9ydCBjb25zdCBBWFBDcmVhdGVNb2R1bGVFbnRpdHlXb3JrZmxvdzogQVhQV29ya2Zsb3cgPSB7XG4gIHN0YXJ0U3RlcElkOiAnc2hvdy1wb3B1cCcsXG4gIHN0ZXBzOiB7XG4gICAgJ3Nob3ctcG9wdXAnOiB7XG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJyZXN1bHRcIikgPT0gdHJ1ZScgfV0sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3Nob3ctdG9hc3QnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgICdzaG93LXRvYXN0Jzoge1xuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgdGl0bGU6ICdFbnRpdHkgQ3JlYXRlZCcsXG4gICAgICAgIGNvbnRlbnQ6ICdOZXcgUmVjb3JkIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLicsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnZGlzcGF0Y2gtZXZlbnQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgICdkaXNwYXRjaC1ldmVudCc6IHtcbiAgICAgIGFjdGlvbjogJ0FYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRWYXJpYWJsZShcInJlZGlyZWN0XCIpICE9IGZhbHNlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc2hvdy1lbnRpdHknLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgICdzaG93LWVudGl0eSc6IHtcbiAgICAgIGlkOiAnc2hvdy1lbnRpdHknLFxuICAgICAgYWN0aW9uOiAnQVhQU2hvd01vZHVsZUVudGl0eURldGFpbFZpZXdBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZHVsZS1lbnRpdHkud29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL3dvcmtmbG93cy9jcmVhdGUtbW9kdWxlLWVudGl0eS53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFDL0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR25ELE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSxpQkFBaUI7SUFEMUU7O1FBRVUsZUFBVSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBVXhEO0lBVEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUN2QyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSw4QkFBOEIsTUFBTSxNQUFNLE1BQU0sSUFBSSxFQUFFLE9BQU87U0FDeEUsQ0FBQztRQUNGLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7OEdBVlUsbUNBQW1DO2tIQUFuQyxtQ0FBbUM7OzJGQUFuQyxtQ0FBbUM7a0JBRC9DLFVBQVU7O0FBY1gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQWdCO0lBQ3hELFdBQVcsRUFBRSxZQUFZO0lBQ3pCLEtBQUssRUFBRTtRQUNMLFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRSw0QkFBNEI7WUFDcEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUscUNBQXFDLEVBQUUsQ0FBQztvQkFDbkYsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsZ0JBQWdCO2dCQUN2QixPQUFPLEVBQUUsMkNBQTJDO2FBQ3JEO1lBQ0QsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxFQUFFO29CQUNkLFVBQVUsRUFBRSxnQkFBZ0I7aUJBQzdCO2FBQ0Y7U0FDRjtRQUNELGdCQUFnQixFQUFFO1lBQ2hCLE1BQU0sRUFBRSxnQ0FBZ0M7WUFDeEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsMENBQTBDLEVBQUUsQ0FBQztvQkFDeEYsVUFBVSxFQUFFLGFBQWE7aUJBQzFCO2FBQ0Y7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLEVBQUUsRUFBRSxhQUFhO1lBQ2pCLE1BQU0sRUFBRSxxQ0FBcUM7U0FDOUM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXb3JrZmxvd05hdmlnYXRlQWN0aW9uIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQU2hvd01vZHVsZUVudGl0eURldGFpbFZpZXdBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgbmF2aWdhdGlvbiA9IGluamVjdChBWFBXb3JrZmxvd05hdmlnYXRlQWN0aW9uKTtcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZW50aXR5Jykuc3BsaXQoJy4nKTtcbiAgICBjb25zdCB7IGlkIH0gPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgY29uc3QgbmV3UGF5bG9hZCA9IHtcbiAgICAgIGNvbW1hbmRzOiBgL2NvbnNvbGUvbW9kdWxlLWRlc2lnbmVyL20vJHttb2R1bGV9L2UvJHtlbnRpdHl9LyR7aWR9L3ZpZXdgLFxuICAgIH07XG4gICAgY29udGV4dC5zZXRWYXJpYWJsZSgncGF5bG9hZCcsIG5ld1BheWxvYWQpO1xuICAgIHRoaXMubmF2aWdhdGlvbi5leGVjdXRlKGNvbnRleHQpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBDcmVhdGVNb2R1bGVFbnRpdHlXb3JrZmxvdzogQVhQV29ya2Zsb3cgPSB7XG4gIHN0YXJ0U3RlcElkOiAnc2hvdy1wb3B1cCcsXG4gIHN0ZXBzOiB7XG4gICAgJ3Nob3ctcG9wdXAnOiB7XG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJyZXN1bHRcIikgPT0gdHJ1ZScgfV0sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3Nob3ctdG9hc3QnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgICdzaG93LXRvYXN0Jzoge1xuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgdGl0bGU6ICdFbnRpdHkgQ3JlYXRlZCcsXG4gICAgICAgIGNvbnRlbnQ6ICdOZXcgUmVjb3JkIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBjcmVhdGVkLicsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnZGlzcGF0Y2gtZXZlbnQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgICdkaXNwYXRjaC1ldmVudCc6IHtcbiAgICAgIGFjdGlvbjogJ0FYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRWYXJpYWJsZShcInJlZGlyZWN0XCIpICE9IGZhbHNlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc2hvdy1lbnRpdHknLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgICdzaG93LWVudGl0eSc6IHtcbiAgICAgIGlkOiAnc2hvdy1lbnRpdHknLFxuICAgICAgYWN0aW9uOiAnQVhQU2hvd01vZHVsZUVudGl0eURldGFpbFZpZXdBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19
@@ -1,3 +1,4 @@
1
1
  export * from './create-module-entity.workflow';
2
+ export * from './modify-property-interface.workflow';
2
3
  export * from './show-module-entity-details.workflow';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL3dvcmtmbG93cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1tb2R1bGUtZW50aXR5LndvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vc2hvdy1tb2R1bGUtZW50aXR5LWRldGFpbHMud29ya2Zsb3cnO1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL3dvcmtmbG93cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLW1vZHVsZS1lbnRpdHkud29ya2Zsb3cnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RpZnktcHJvcGVydHktaW50ZXJmYWNlLndvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vc2hvdy1tb2R1bGUtZW50aXR5LWRldGFpbHMud29ya2Zsb3cnO1xuIl19
@@ -0,0 +1,79 @@
1
+ import { AXPopupService } from '@acorex/components/popup';
2
+ import { AXPlatform } from '@acorex/core/platform';
3
+ import { AXP_ENTITY_CONFIG_TOKEN, AXPEntityDefinitionRegistryService, AXPEntityMasterUpdateViewModelFactory, } from '@acorex/platform/layout/entity';
4
+ import { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';
5
+ import { inject, Injectable } from '@angular/core';
6
+ import { cloneDeep } from 'lodash-es';
7
+ import * as i0 from "@angular/core";
8
+ export const AXPEntityModifyEvent = createWorkFlowEvent('[Entity] Modified');
9
+ export class AXPEntityModifyPropertyInterfacePopupAction extends AXPWorkflowAction {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.popupService = inject(AXPopupService);
13
+ this.platform = inject(AXPlatform);
14
+ this.entityRegistery = inject(AXPEntityDefinitionRegistryService);
15
+ this.config = inject(AXP_ENTITY_CONFIG_TOKEN);
16
+ this.factory = inject(AXPEntityMasterUpdateViewModelFactory);
17
+ }
18
+ async execute(context) {
19
+ const [moduleName, entityName] = context.getVariable('entity').split('.');
20
+ const { properties, id, title } = context.getVariable('data');
21
+ const entityRef = await this.entityRegistery.resolve(moduleName, entityName);
22
+ const vm = await this.factory.create(moduleName, entityName, id, properties);
23
+ const com = await this.config.viewers.master.modify();
24
+ const popup = await this.popupService.open(com, {
25
+ title: title ?? `Modify ${entityRef.formats.individual}`,
26
+ size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
27
+ data: {
28
+ vm,
29
+ properties,
30
+ entity: entityRef,
31
+ },
32
+ });
33
+ context.setOutput('result', false);
34
+ if (popup.data?.result == true) {
35
+ context.setOutput('result', true);
36
+ context.setVariable('data', cloneDeep(popup.data.context));
37
+ }
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModifyPropertyInterfacePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModifyPropertyInterfacePopupAction }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityModifyPropertyInterfacePopupAction, decorators: [{
43
+ type: Injectable
44
+ }] });
45
+ export const AXPModifyPropertyInterfaceWorkflow = {
46
+ startStepId: 'modifyPopup',
47
+ steps: {
48
+ modifyPopup: {
49
+ id: 'modifyPopup',
50
+ action: 'AXPEntityModifyPropertyInterfacePopupAction',
51
+ nextSteps: [
52
+ {
53
+ conditions: [{ type: 'SINGLE', expression: 'context.getOutput("result") == true' }],
54
+ nextStepId: 'successToast',
55
+ },
56
+ ],
57
+ },
58
+ successToast: {
59
+ id: 'successToast',
60
+ action: 'AXPToastAction',
61
+ input: {
62
+ color: 'success',
63
+ title: 'Entity Modified',
64
+ content: 'Record has been successfully updated.',
65
+ },
66
+ nextSteps: [
67
+ {
68
+ conditions: [],
69
+ nextStepId: 'modifyConfirmed',
70
+ },
71
+ ],
72
+ },
73
+ modifyConfirmed: {
74
+ id: 'modifyConfirmed',
75
+ action: 'AXPEntityModifyConfirmedAction',
76
+ },
77
+ },
78
+ };
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXByb3BlcnR5LWludGVyZmFjZS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvd29ya2Zsb3dzL21vZGlmeS1wcm9wZXJ0eS1pbnRlcmZhY2Uud29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGtDQUFrQyxFQUNsQyxxQ0FBcUMsR0FDdEMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFdEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQWtDLG1CQUFtQixDQUFDLENBQUM7QUFHOUcsTUFBTSxPQUFPLDJDQUE0QyxTQUFRLGlCQUFpQjtJQURsRjs7UUFFVSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlCLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDN0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3pDLFlBQU8sR0FBRyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQztLQXdCakU7SUF0QkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUN2QyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0UsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUU3RSxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM5QyxLQUFLLEVBQUUsS0FBSyxJQUFJLFVBQVUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDeEQsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDMUUsSUFBSSxFQUFFO2dCQUNKLEVBQUU7Z0JBQ0YsVUFBVTtnQkFDVixNQUFNLEVBQUUsU0FBUzthQUNsQjtTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7WUFDL0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQzs4R0E1QlUsMkNBQTJDO2tIQUEzQywyQ0FBMkM7OzJGQUEzQywyQ0FBMkM7a0JBRHZELFVBQVU7O0FBZ0NYLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFnQjtJQUM3RCxXQUFXLEVBQUUsYUFBYTtJQUMxQixLQUFLLEVBQUU7UUFDTCxXQUFXLEVBQUU7WUFDWCxFQUFFLEVBQUUsYUFBYTtZQUNqQixNQUFNLEVBQUUsNkNBQTZDO1lBQ3JELFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLHFDQUFxQyxFQUFFLENBQUM7b0JBQ25GLFVBQVUsRUFBRSxjQUFjO2lCQUMzQjthQUNGO1NBQ0Y7UUFDRCxZQUFZLEVBQUU7WUFDWixFQUFFLEVBQUUsY0FBYztZQUNsQixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUUsU0FBUztnQkFDaEIsS0FBSyxFQUFFLGlCQUFpQjtnQkFDeEIsT0FBTyxFQUFFLHVDQUF1QzthQUNqRDtZQUNELFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUUsRUFBRTtvQkFDZCxVQUFVLEVBQUUsaUJBQWlCO2lCQUM5QjthQUNGO1NBQ0Y7UUFDRCxlQUFlLEVBQUU7WUFDZixFQUFFLEVBQUUsaUJBQWlCO1lBQ3JCLE1BQU0sRUFBRSxnQ0FBZ0M7U0FDekM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7XG4gIEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOLFxuICBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlLFxuICBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWxGYWN0b3J5LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQsIGNyZWF0ZVdvcmtGbG93RXZlbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGNvbnN0IEFYUEVudGl0eU1vZGlmeUV2ZW50ID0gY3JlYXRlV29ya0Zsb3dFdmVudDx7IGVudGl0eTogc3RyaW5nOyB2YWx1ZXM6IGFueSB9PignW0VudGl0eV0gTW9kaWZpZWQnKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1vZGlmeVByb3BlcnR5SW50ZXJmYWNlUG9wdXBBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RlcnkgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOKTtcbiAgcHJpdmF0ZSBmYWN0b3J5ID0gaW5qZWN0KEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbEZhY3RvcnkpO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IHsgcHJvcGVydGllcywgaWQsIHRpdGxlIH0gPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgY29uc3QgZW50aXR5UmVmID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RlcnkucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICBjb25zdCB2bSA9IGF3YWl0IHRoaXMuZmFjdG9yeS5jcmVhdGUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSwgaWQsIHByb3BlcnRpZXMpO1xuXG4gICAgY29uc3QgY29tID0gYXdhaXQgdGhpcy5jb25maWcudmlld2Vycy5tYXN0ZXIubW9kaWZ5KCk7XG4gICAgY29uc3QgcG9wdXAgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbSwge1xuICAgICAgdGl0bGU6IHRpdGxlID8/IGBNb2RpZnkgJHtlbnRpdHlSZWYuZm9ybWF0cy5pbmRpdmlkdWFsfWAsXG4gICAgICBzaXplOiB0aGlzLnBsYXRmb3JtLmlzKCdNb2JpbGUnKSB8fCB0aGlzLnBsYXRmb3JtLmlzKCdTTScpID8gJ2Z1bGwnIDogJ21kJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdm0sXG4gICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgIGVudGl0eTogZW50aXR5UmVmLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgZmFsc2UpO1xuICAgIGlmIChwb3B1cC5kYXRhPy5yZXN1bHQgPT0gdHJ1ZSkge1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIHRydWUpO1xuICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgnZGF0YScsIGNsb25lRGVlcChwb3B1cC5kYXRhLmNvbnRleHQpKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUE1vZGlmeVByb3BlcnR5SW50ZXJmYWNlV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ21vZGlmeVBvcHVwJyxcbiAgc3RlcHM6IHtcbiAgICBtb2RpZnlQb3B1cDoge1xuICAgICAgaWQ6ICdtb2RpZnlQb3B1cCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlQcm9wZXJ0eUludGVyZmFjZVBvcHVwQWN0aW9uJyxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcInJlc3VsdFwiKSA9PSB0cnVlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBzdWNjZXNzVG9hc3Q6IHtcbiAgICAgIGlkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgIGFjdGlvbjogJ0FYUFRvYXN0QWN0aW9uJyxcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIHRpdGxlOiAnRW50aXR5IE1vZGlmaWVkJyxcbiAgICAgICAgY29udGVudDogJ1JlY29yZCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgdXBkYXRlZC4nLFxuICAgICAgfSxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW10sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgbW9kaWZ5Q29uZmlybWVkOiB7XG4gICAgICBpZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlDb25maXJtZWRBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19
@@ -8,32 +8,30 @@ export class AXMCommentService {
8
8
  this.configs = inject(AXP_ROOT_CONFIG_TOKEN);
9
9
  this.http = inject(HttpClient);
10
10
  this.mainUrl = this.configs.baseUrl;
11
- this.messagesUrl = `${this.configs.baseUrl}/conversion/messages`;
11
+ this.messagesUrl = `${this.configs.baseUrl}/conversion/messages/room`;
12
+ this.messagePostUrl = `${this.configs.baseUrl}/conversion/messages`;
13
+ this.messageReactionUrl = `${this.configs.baseUrl}/conversion/message-reactions/change`;
12
14
  }
13
- async getComments(params) {
15
+ async get(params) {
14
16
  const url = `${this.messagesUrl}`;
15
17
  return await firstValueFrom(this.http.get(url, {
16
18
  params: params,
17
19
  }));
18
20
  }
19
- async postComment(payload) {
20
- const url = `${this.messagesUrl}`;
21
- return await firstValueFrom(this.http.post(url, payload));
22
- }
23
- async replyToComment(payload) {
24
- const url = `${this.mainUrl}/reply-comment`;
21
+ async post(payload) {
22
+ const url = `${this.messagePostUrl}`;
25
23
  return await firstValueFrom(this.http.post(url, payload));
26
24
  }
27
- async likeComment(commentId) {
28
- const url = `${this.mainUrl}/like-comment`;
29
- return await firstValueFrom(this.http.post(url, commentId));
25
+ async put(payload) {
26
+ const url = `${this.messagePostUrl}/${payload.id}`;
27
+ return await firstValueFrom(this.http.put(url, { content: payload.content }));
30
28
  }
31
- async deleteComment(commentId) {
32
- const url = `${this.mainUrl}/delete-comment/${commentId}`;
29
+ async delete(payload) {
30
+ const url = `${this.messagePostUrl}/${payload.id}`;
33
31
  return await firstValueFrom(this.http.delete(url));
34
32
  }
35
- async editComment(payload) {
36
- const url = `${this.mainUrl}/edit-comment`;
33
+ async like(payload) {
34
+ const url = `${this.messageReactionUrl}`;
37
35
  return await firstValueFrom(this.http.put(url, payload));
38
36
  }
39
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMCommentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -45,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
45
43
  providedIn: 'root',
46
44
  }]
47
45
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2JhY2tlbmQvc3JjL2xpYi9kYXRhL2FwaS9jb21tZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RDLE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFJVSxZQUFPLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDeEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQixZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxzQkFBc0IsQ0FBQztLQW1DckU7SUFqQ0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFXO1FBQzNCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sTUFBTSxjQUFjLENBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsRUFBRTtZQUN0QixNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBWTtRQUM1QixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxPQUFPLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQVk7UUFDL0IsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQztRQUM1QyxPQUFPLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQWlCO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sZUFBZSxDQUFDO1FBQzNDLE9BQU8sTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBaUI7UUFDbkMsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxtQkFBbUIsU0FBUyxFQUFFLENBQUM7UUFDMUQsT0FBTyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQVk7UUFDNUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxlQUFlLENBQUM7UUFDM0MsT0FBTyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDOzhHQXZDVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQX1JPT1RfQ09ORklHX1RPS0VOIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYTUNvbW1lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb25maWdzID0gaW5qZWN0KEFYUF9ST09UX0NPTkZJR19UT0tFTik7XG4gIHByaXZhdGUgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBwcml2YXRlIG1haW5VcmwgPSB0aGlzLmNvbmZpZ3MuYmFzZVVybDtcbiAgcHJpdmF0ZSBtZXNzYWdlc1VybCA9IGAke3RoaXMuY29uZmlncy5iYXNlVXJsfS9jb252ZXJzaW9uL21lc3NhZ2VzYDtcblxuICBhc3luYyBnZXRDb21tZW50cyhwYXJhbXM6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tZXNzYWdlc1VybH1gO1xuICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cC5nZXQ8YW55Pih1cmwsIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhc3luYyBwb3N0Q29tbWVudChwYXlsb2FkOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMubWVzc2FnZXNVcmx9YDtcbiAgICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIHBheWxvYWQpKTtcbiAgfVxuXG4gIGFzeW5jIHJlcGx5VG9Db21tZW50KHBheWxvYWQ6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYWluVXJsfS9yZXBseS1jb21tZW50YDtcbiAgICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIHBheWxvYWQpKTtcbiAgfVxuXG4gIGFzeW5jIGxpa2VDb21tZW50KGNvbW1lbnRJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1haW5Vcmx9L2xpa2UtY29tbWVudGA7XG4gICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBjb21tZW50SWQpKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUNvbW1lbnQoY29tbWVudElkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMubWFpblVybH0vZGVsZXRlLWNvbW1lbnQvJHtjb21tZW50SWR9YDtcbiAgICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCkpO1xuICB9XG5cbiAgYXN5bmMgZWRpdENvbW1lbnQocGF5bG9hZDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1haW5Vcmx9L2VkaXQtY29tbWVudGA7XG4gICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIHBheWxvYWQpKTtcbiAgfVxufVxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2JhY2tlbmQvc3JjL2xpYi9kYXRhL2FwaS9jb21tZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RDLE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFJVSxZQUFPLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDeEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQixZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTywyQkFBMkIsQ0FBQztRQUNqRSxtQkFBYyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLHNCQUFzQixDQUFDO1FBQy9ELHVCQUFrQixHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLHNDQUFzQyxDQUFDO0tBd0M1RjtJQXRDQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQVc7UUFDbkIsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsT0FBTyxNQUFNLGNBQWMsQ0FDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxFQUFFO1lBQ3RCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFZO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBWTtRQUNwQixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ25ELE9BQU8sTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBWTtRQUN2QixNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ25ELE9BQU8sTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFZO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDekMsT0FBTyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDOzhHQXBDVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQX1JPT1RfQ09ORklHX1RPS0VOIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYTUNvbW1lbnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb25maWdzID0gaW5qZWN0KEFYUF9ST09UX0NPTkZJR19UT0tFTik7XG4gIHByaXZhdGUgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBwcml2YXRlIG1haW5VcmwgPSB0aGlzLmNvbmZpZ3MuYmFzZVVybDtcbiAgcHJpdmF0ZSBtZXNzYWdlc1VybCA9IGAke3RoaXMuY29uZmlncy5iYXNlVXJsfS9jb252ZXJzaW9uL21lc3NhZ2VzL3Jvb21gO1xuICBwcml2YXRlIG1lc3NhZ2VQb3N0VXJsID0gYCR7dGhpcy5jb25maWdzLmJhc2VVcmx9L2NvbnZlcnNpb24vbWVzc2FnZXNgO1xuICBwcml2YXRlIG1lc3NhZ2VSZWFjdGlvblVybCA9IGAke3RoaXMuY29uZmlncy5iYXNlVXJsfS9jb252ZXJzaW9uL21lc3NhZ2UtcmVhY3Rpb25zL2NoYW5nZWA7XG5cbiAgYXN5bmMgZ2V0KHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1lc3NhZ2VzVXJsfWA7XG4gICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwLmdldDxhbnk+KHVybCwge1xuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHBvc3QocGF5bG9hZDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1lc3NhZ2VQb3N0VXJsfWA7XG4gICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBwYXlsb2FkKSk7XG4gIH1cblxuICBhc3luYyBwdXQocGF5bG9hZDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1lc3NhZ2VQb3N0VXJsfS8ke3BheWxvYWQuaWR9YDtcbiAgICByZXR1cm4gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5odHRwLnB1dDxhbnk+KHVybCwgeyBjb250ZW50OiBwYXlsb2FkLmNvbnRlbnQgfSkpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKHBheWxvYWQ6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5tZXNzYWdlUG9zdFVybH0vJHtwYXlsb2FkLmlkfWA7XG4gICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwpKTtcbiAgfVxuXG4gIGFzeW5jIGxpa2UocGF5bG9hZDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1lc3NhZ2VSZWFjdGlvblVybH1gO1xuICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucHV0PGFueT4odXJsLCBwYXlsb2FkKSk7XG4gIH1cblxuICAvLyBhc3luYyBkZWxldGVDb21tZW50KGNvbW1lbnRJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgLy8gICBjb25zdCB1cmwgPSBgJHt0aGlzLm1haW5Vcmx9L2RlbGV0ZS1jb21tZW50LyR7Y29tbWVudElkfWA7XG4gIC8vICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwpKTtcbiAgLy8gfVxuXG4gIC8vIGFzeW5jIGVkaXRDb21tZW50KHBheWxvYWQ6IGFueSk6IFByb21pc2U8YW55PiB7XG4gIC8vICAgY29uc3QgdXJsID0gYCR7dGhpcy5tYWluVXJsfS9lZGl0LWNvbW1lbnRgO1xuICAvLyAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucHV0PGFueT4odXJsLCBwYXlsb2FkKSk7XG4gIC8vIH1cbn1cbiJdfQ==