@acorex/modules 20.6.0-next.15 → 20.6.0-next.17

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 (38) hide show
  1. package/common/index.d.ts +1 -0
  2. package/fesm2022/acorex-modules-common.mjs +5 -2
  3. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  4. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BiCwa7Ww.mjs → acorex-modules-form-template-management-template-picker.component-R6Ijm-97.mjs} +13 -13
  5. package/fesm2022/acorex-modules-form-template-management-template-picker.component-R6Ijm-97.mjs.map +1 -0
  6. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  7. package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-1KGMBDfA.mjs → acorex-modules-party-management-acorex-modules-party-management-DB3H-49E.mjs} +7 -7
  8. package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-1KGMBDfA.mjs.map → acorex-modules-party-management-acorex-modules-party-management-DB3H-49E.mjs.map} +1 -1
  9. package/fesm2022/{acorex-modules-party-management-industry.entity-DHuE1kt7.mjs → acorex-modules-party-management-industry.entity-E0RPqKYR.mjs} +2 -2
  10. package/fesm2022/{acorex-modules-party-management-industry.entity-DHuE1kt7.mjs.map → acorex-modules-party-management-industry.entity-E0RPqKYR.mjs.map} +1 -1
  11. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-jD8FUA11.mjs → acorex-modules-party-management-party-identifier-type.entity-COMURXUX.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-jD8FUA11.mjs.map → acorex-modules-party-management-party-identifier-type.entity-COMURXUX.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-party-management-party-identifier.entity-BykPw02a.mjs → acorex-modules-party-management-party-identifier.entity-C6b-Vrgs.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-party-management-party-identifier.entity-BykPw02a.mjs.map → acorex-modules-party-management-party-identifier.entity-C6b-Vrgs.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-DT0eidsI.mjs → acorex-modules-party-management-party-relationship.entity-rZHjByaY.mjs} +2 -2
  16. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-DT0eidsI.mjs.map → acorex-modules-party-management-party-relationship.entity-rZHjByaY.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-party-management-party-role.entity-avNIs_Ga.mjs → acorex-modules-party-management-party-role.entity-B_fesIiR.mjs} +2 -2
  18. package/fesm2022/{acorex-modules-party-management-party-role.entity-avNIs_Ga.mjs.map → acorex-modules-party-management-party-role.entity-B_fesIiR.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-party-management-party.entity-CPN2U-mp.mjs → acorex-modules-party-management-party.entity-Czvx5O4_.mjs} +3 -13
  20. package/fesm2022/acorex-modules-party-management-party.entity-Czvx5O4_.mjs.map +1 -0
  21. package/fesm2022/acorex-modules-party-management.mjs +1 -1
  22. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-B0TrJk70.mjs → acorex-modules-platform-management-acorex-modules-platform-management-B99sSLFQ.mjs} +5 -5
  23. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-B0TrJk70.mjs.map → acorex-modules-platform-management-acorex-modules-platform-management-B99sSLFQ.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-platform-management-list-version.component-_xsJ6KyX.mjs → acorex-modules-platform-management-list-version.component-um9dTYaN.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-platform-management-list-version.component-_xsJ6KyX.mjs.map → acorex-modules-platform-management-list-version.component-um9dTYaN.mjs.map} +1 -1
  26. package/fesm2022/{acorex-modules-platform-management-menu-list.component-CXlEbNtH.mjs → acorex-modules-platform-management-menu-list.component-DeS8hSoB.mjs} +8 -8
  27. package/fesm2022/acorex-modules-platform-management-menu-list.component-DeS8hSoB.mjs.map +1 -0
  28. package/fesm2022/{acorex-modules-platform-management-permission-definition.provider-BWt2Ib-i.mjs → acorex-modules-platform-management-permission-definition.provider-DHfWGH0p.mjs} +2 -2
  29. package/fesm2022/{acorex-modules-platform-management-permission-definition.provider-BWt2Ib-i.mjs.map → acorex-modules-platform-management-permission-definition.provider-DHfWGH0p.mjs.map} +1 -1
  30. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  31. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-BPHpCx1z.mjs → acorex-modules-report-management-report-runner-root-page.component-Cjpx-4Q9.mjs} +5 -9
  32. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-Cjpx-4Q9.mjs.map +1 -0
  33. package/fesm2022/acorex-modules-report-management.mjs +1 -1
  34. package/package.json +28 -28
  35. package/fesm2022/acorex-modules-form-template-management-template-picker.component-BiCwa7Ww.mjs.map +0 -1
  36. package/fesm2022/acorex-modules-party-management-party.entity-CPN2U-mp.mjs.map +0 -1
  37. package/fesm2022/acorex-modules-platform-management-menu-list.component-CXlEbNtH.mjs.map +0 -1
  38. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BPHpCx1z.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-modules-form-template-management-template-picker.component-BiCwa7Ww.mjs","sources":["../tmp-esm2022/form-template-management/lib/features/designer/components/template-picker/template-picker.component.js"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXPSettingService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, inject, Injector, model, runInInjectionContext, signal, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { orderBy } from 'lodash-es';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXTreeViewModule } from '@acorex/components/tree-view';\nimport { AXPStateMessageComponent, AXPWidgetItemComponent } from '@acorex/platform/layout/components';\nimport { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '../../../../const';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/search-box\";\nimport * as i5 from \"@acorex/components/tree-view\";\nimport * as i6 from \"@angular/common\";\nimport * as i7 from \"@acorex/core/translation\";\n/**\n * Maps AXPDisplayWidgetProvided to generic AXPWidgetItemData\n */\nfunction mapToWidgetItemData(widget) {\n return {\n title: widget.title,\n description: widget.description,\n icon: widget.icon ?? 'fa-solid fa-cube',\n isPinned: widget.pinned,\n data: widget\n };\n}\nexport class AXPTemplateWidgetPickerComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.settingService = inject(AXPSettingService);\n this.injector = inject(Injector);\n this.categoryEntityService = runInInjectionContext(this.injector, () => new AXMEntityCrudServiceImpl(`${RootConfig.module.name}.Category`));\n this.expandedCategoriesKey = 'forms:templates:picker:expandedCategories';\n // Track expanded category IDs\n this.expandedCategoryIds = signal([], ...(ngDevMode ? [{ debugName: \"expandedCategoryIds\" }] : []));\n this.pinnedSettingKey = 'forms:templates:picker:pinned';\n this.searchTerm = model('', ...(ngDevMode ? [{ debugName: \"searchTerm\" }] : []));\n // Data properties - populated by popup service\n this.widgets = [];\n // Signals\n this.displayWidgets = signal([], ...(ngDevMode ? [{ debugName: \"displayWidgets\" }] : []));\n // Signal to track selected widgets\n this.selectedWidgets = signal([], ...(ngDevMode ? [{ debugName: \"selectedWidgets\" }] : []));\n // Computed for filtered and ordered widget list\n this.orderedList = computed(() => {\n const search = this.searchTerm().toLowerCase();\n const selectedCategory = this.selectedCategory();\n const selectedCategoryId = selectedCategory ? selectedCategory.id : null;\n const filterByCategory = (widget) => {\n if (!selectedCategoryId || selectedCategoryId == 'all')\n return true;\n return selectedCategoryId === widget.group.name;\n };\n return orderBy(this.displayWidgets().filter((w) => {\n const matchesCategory = filterByCategory(w);\n const matchesSearch = !search || w.title.toLowerCase().includes(search) || w.description?.toLowerCase().includes(search);\n return matchesCategory && matchesSearch;\n }), ['pinned', 'title'], ['desc', 'asc']);\n }, ...(ngDevMode ? [{ debugName: \"orderedList\" }] : []));\n // Pinned and regular lists\n this.pinnedList = computed(() => this.orderedList().filter((c) => c.pinned), ...(ngDevMode ? [{ debugName: \"pinnedList\" }] : []));\n this.regularList = computed(() => this.orderedList().filter((c) => !c.pinned), ...(ngDevMode ? [{ debugName: \"regularList\" }] : []));\n // Mapped data for generic widget items\n this.pinnedWidgetItems = computed(() => this.pinnedList().map(mapToWidgetItemData), ...(ngDevMode ? [{ debugName: \"pinnedWidgetItems\" }] : []));\n this.regularWidgetItems = computed(() => this.regularList().map(mapToWidgetItemData), ...(ngDevMode ? [{ debugName: \"regularWidgetItems\" }] : []));\n // Computed property to check if we're in search mode\n this.isSearchMode = computed(() => this.searchTerm().trim().length > 0, ...(ngDevMode ? [{ debugName: \"isSearchMode\" }] : []));\n // Computed property to check if there are any results\n this.hasResults = computed(() => this.orderedList().length > 0, ...(ngDevMode ? [{ debugName: \"hasResults\" }] : []));\n //#region Category Tree\n this.provideLazyTreeView = async (selectedItemId) => {\n if (selectedItemId == 'all') {\n const categories = await this.categoryEntityService.getRoots({});\n const items = categories.items.map((item) => ({\n id: item.id,\n title: item.title,\n hasChild: item.childrenCount > 0,\n expanded: this.expandedCategoryIds().includes(item.id),\n }));\n return items;\n }\n else if (selectedItemId) {\n const categories = (await this.categoryEntityService.getChildren({ parentId: selectedItemId }))?.items.map((item) => ({\n id: item.id,\n title: item.title,\n parentId: item.parentId,\n hasChild: item.childrenCount > 0,\n expanded: this.expandedCategoryIds().includes(item.id),\n }));\n return categories;\n }\n else {\n return [\n {\n hasChild: true,\n id: \"all\",\n title: \"All Items\",\n expanded: true,\n }\n ];\n }\n };\n this.selectedCategory = signal(null, ...(ngDevMode ? [{ debugName: \"selectedCategory\" }] : []));\n }\n async ngOnInit() {\n super.ngOnInit();\n // Load expanded categories from settings\n const savedExpandedIds = (await this.settingService.get(this.expandedCategoriesKey)) || [];\n this.expandedCategoryIds.set(savedExpandedIds);\n //\n const pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];\n this.displayWidgets.set(this.widgets.map((c) => ({\n ...c,\n pinned: pinnedWidgets.includes(c.id),\n icon: c.icon ?? 'fa-solid fa-file-invoice',\n })));\n }\n handleWidgetClick(clickEvent) {\n const { event, widget } = clickEvent;\n const originalWidget = widget.data;\n if (event.ctrlKey) {\n const currentSelection = this.selectedWidgets();\n const isAlreadySelected = currentSelection.some((w) => w === originalWidget);\n if (isAlreadySelected) {\n // Deselect widget if already selected\n this.selectedWidgets.set(currentSelection.filter((w) => w !== originalWidget));\n }\n else {\n // Add widget to selection\n this.selectedWidgets.set([...currentSelection, originalWidget]);\n }\n }\n else {\n // If CTRL is not pressed, select only the clicked widget\n this.close({ widgets: [originalWidget] });\n }\n }\n async handleWidgetPinClick(clickEvent) {\n const { widget } = clickEvent;\n const originalWidget = widget.data;\n originalWidget.pinned = !originalWidget.pinned;\n // Get the current list of pinned widgets from settings\n let pinnedWidgets = (await this.settingService.get(this.pinnedSettingKey)) || [];\n // Update the list of pinned widgets based on the pinned status\n if (originalWidget.pinned) {\n if (!pinnedWidgets.includes(originalWidget.id)) {\n pinnedWidgets.push(originalWidget.id);\n }\n }\n else {\n pinnedWidgets = pinnedWidgets.filter((name) => name !== originalWidget.id);\n }\n // Save the updated list of pinned widgets\n await this.settingService.scope(AXPPlatformScope.User).set(this.pinnedSettingKey, pinnedWidgets);\n // Trigger a re-render of the widgets\n this.displayWidgets.set([...this.displayWidgets()]);\n }\n // Check if a widget is selected\n isWidgetSelected(widget) {\n return this.selectedWidgets().includes(widget);\n }\n // Check if a generic widget item is selected\n isWidgetItemSelected(widgetItem) {\n const originalWidget = widgetItem.data;\n return this.isWidgetSelected(originalWidget);\n }\n handleConfirmSelection() {\n this.close({ widgets: this.selectedWidgets() });\n }\n handleNodeClick(event) {\n const item = event.data;\n this.selectedCategory.set(item);\n }\n async handleCollapseChanged(event) {\n const item = event.data;\n const currentExpanded = this.expandedCategoryIds();\n if (item.expanded) {\n // Category was expanded - add to expanded list\n if (!currentExpanded.includes(item.id)) {\n const newExpanded = [...currentExpanded, item.id];\n this.expandedCategoryIds.set(newExpanded);\n await this.settingService.scope(AXPPlatformScope.User).set(this.expandedCategoriesKey, newExpanded);\n }\n }\n else {\n // Category was collapsed - remove from expanded list\n const newExpanded = currentExpanded.filter(id => id !== item.id);\n this.expandedCategoryIds.set(newExpanded);\n await this.settingService.scope(AXPPlatformScope.User).set(this.expandedCategoriesKey, newExpanded);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPTemplateWidgetPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPTemplateWidgetPickerComponent, isStandalone: true, selector: \"ng-component\", inputs: { searchTerm: { classPropertyName: \"searchTerm\", publicName: \"searchTerm\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchTerm: \"searchTermChange\" }, usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-flex ax-flex-col lg:ax-h-[60vh]\\\">\\n <div class=\\\"ax-p-2 ax-surface-lowest ax-border-b ax-flex-none\\\">\\n <ax-search-box\\n look=\\\"fill\\\"\\n placeholder=\\\"e.g. Button, Text, ...\\\"\\n class=\\\"ax-sm\\\"\\n [(ngModel)]=\\\"searchTerm\\\"\\n [delayTime]=\\\"300\\\"\\n >\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n <div class=\\\"ax-flex ax-flex-grow ax-h-full\\\">\\n <!-- Category Tree - Hidden in search mode -->\\n @if (!isSearchMode()) {\\n <div\\n class=\\\"ax-flex ax-h-full ax-p-2 ax-overflow-auto ax-w-1/3 ax-justify-start ax-items-start ax-surface-lowest ax-border-e\\\"\\n >\\n <ax-tree-view\\n [showCheckbox]=\\\"false\\\"\\n [itemTemplate]=\\\"categoryTemplate\\\"\\n [textField]=\\\"'title'\\\"\\n [hasChildField]=\\\"'hasChild'\\\"\\n [valueField]=\\\"'id'\\\"\\n [expandedField]=\\\"'expanded'\\\"\\n [items]=\\\"provideLazyTreeView\\\"\\n (onNodeClick)=\\\"handleNodeClick($event)\\\"\\n (onCollapsedChanged)=\\\"handleCollapseChanged($event)\\\"\\n class=\\\"ax-w-full\\\"\\n >\\n </ax-tree-view>\\n\\n <ng-template #categoryTemplate let-item>\\n <ax-icon class=\\\"fa-solid fa-folder ax-text-yellow-500 fa-fw\\\"></ax-icon>\\n {{ item.title | translate | async }}\\n </ng-template>\\n </div>\\n }\\n\\n <!-- Widget Grid - Full width in search mode, 2/3 width otherwise -->\\n <div\\n [class]=\\\"\\n isSearchMode()\\n ? 'ax-flex ax-h-full ax-flex-col ax-w-full ax-overflow-hidden'\\n : 'ax-flex ax-h-full ax-flex-col ax-w-2/3 ax-overflow-hidden'\\n \\\"\\n >\\n @if (hasResults()) {\\n <div class=\\\"ax-flex ax-flex-col ax-p-4\\\">\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for (widgetItem of pinnedWidgetItems(); track widgetItem.title) {\\n <axp-widget-item\\n [widget]=\\\"widgetItem\\\"\\n [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\"\\n (onPinClick)=\\\"handleWidgetPinClick($event)\\\"\\n >\\n </axp-widget-item>\\n }\\n </div>\\n @if (pinnedWidgetItems().length) {\\n <hr class=\\\"ax-my-4 ax-border-dashed\\\" />\\n }\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for (widgetItem of regularWidgetItems(); track widgetItem.title) {\\n <axp-widget-item\\n [widget]=\\\"widgetItem\\\"\\n [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\"\\n (onPinClick)=\\\"handleWidgetPinClick($event)\\\"\\n >\\n </axp-widget-item>\\n }\\n </div>\\n </div>\\n } @else {\\n <!-- Empty State -->\\n <axp-state-message\\n icon=\\\"fa-light fa-search\\\"\\n [title]=\\\"\\n isSearchMode()\\n ? '@form-template-management:designer.components.template-picker.empty-states.no-search-results.title'\\n : '@form-template-management:designer.components.template-picker.empty-states.no-category-results.title'\\n \\\"\\n [description]=\\\"\\n isSearchMode()\\n ? '@form-template-management:designer.components.template-picker.empty-states.no-search-results.description'\\n : '@form-template-management:designer.components.template-picker.empty-states.no-category-results.description'\\n \\\"\\n >\\n @if (isSearchMode()) {\\n <ax-button\\n look=\\\"blank\\\"\\n [text]=\\\"'@form-template-management:designer.components.template-picker.clear-search' | translate | async\\\"\\n class=\\\"ax-mt-4\\\"\\n (onClick)=\\\"searchTerm.set('')\\\"\\n ></ax-button>\\n }\\n </axp-state-message>\\n }\\n </div>\\n </div>\\n</div>\\n\\n@if (selectedWidgets().length) {\\n <ax-footer>\\n <ax-suffix>\\n <ax-button\\n look=\\\"solid\\\"\\n color=\\\"primary\\\"\\n text=\\\"{{ selectedWidgets().length }} Selected\\\"\\n (onClick)=\\\"handleConfirmSelection()\\\"\\n ></ax-button>\\n </ax-suffix>\\n </ax-footer>\\n}\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: \n //\n AXCommonModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i4.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\", \"autoSearch\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXTreeViewModule }, { kind: \"component\", type: i5.AXTreeViewComponent, selector: \"ax-tree-view\", inputs: [\"items\", \"showCheckbox\", \"hasCheckboxField\", \"selectionMode\", \"selectionBehavior\", \"selectionScope\", \"focusNodeEnabled\", \"valueField\", \"textField\", \"visibleField\", \"disableField\", \"hasChildField\", \"selectedField\", \"expandedField\", \"tooltipField\", \"childrenField\", \"activeField\", \"indeterminateField\", \"parentField\", \"iconField\", \"toggleIcons\", \"look\", \"showEmptyNodeMassage\", \"itemTemplate\", \"emptyTemplate\", \"expandOn\"], outputs: [\"onSelectionChanged\", \"onItemSelectedChanged\", \"onNodeClick\", \"onCollapsedChanged\", \"onNodedbClick\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"component\", type: AXPWidgetItemComponent, selector: \"axp-widget-item\", inputs: [\"widget\", \"isSelected\", \"showPinButton\", \"customClasses\"], outputs: [\"onWidgetClick\", \"onPinClick\"] }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }, { kind: \"pipe\", type: i6.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i7.AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPTemplateWidgetPickerComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n FormsModule,\n //\n AXCommonModule,\n AXButtonModule,\n AXDecoratorModule,\n AXSearchBoxModule,\n AXTreeViewModule,\n AXTranslationModule,\n AXPWidgetItemComponent,\n AXPStateMessageComponent,\n ], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"ax-flex ax-flex-col lg:ax-h-[60vh]\\\">\\n <div class=\\\"ax-p-2 ax-surface-lowest ax-border-b ax-flex-none\\\">\\n <ax-search-box\\n look=\\\"fill\\\"\\n placeholder=\\\"e.g. Button, Text, ...\\\"\\n class=\\\"ax-sm\\\"\\n [(ngModel)]=\\\"searchTerm\\\"\\n [delayTime]=\\\"300\\\"\\n >\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n <div class=\\\"ax-flex ax-flex-grow ax-h-full\\\">\\n <!-- Category Tree - Hidden in search mode -->\\n @if (!isSearchMode()) {\\n <div\\n class=\\\"ax-flex ax-h-full ax-p-2 ax-overflow-auto ax-w-1/3 ax-justify-start ax-items-start ax-surface-lowest ax-border-e\\\"\\n >\\n <ax-tree-view\\n [showCheckbox]=\\\"false\\\"\\n [itemTemplate]=\\\"categoryTemplate\\\"\\n [textField]=\\\"'title'\\\"\\n [hasChildField]=\\\"'hasChild'\\\"\\n [valueField]=\\\"'id'\\\"\\n [expandedField]=\\\"'expanded'\\\"\\n [items]=\\\"provideLazyTreeView\\\"\\n (onNodeClick)=\\\"handleNodeClick($event)\\\"\\n (onCollapsedChanged)=\\\"handleCollapseChanged($event)\\\"\\n class=\\\"ax-w-full\\\"\\n >\\n </ax-tree-view>\\n\\n <ng-template #categoryTemplate let-item>\\n <ax-icon class=\\\"fa-solid fa-folder ax-text-yellow-500 fa-fw\\\"></ax-icon>\\n {{ item.title | translate | async }}\\n </ng-template>\\n </div>\\n }\\n\\n <!-- Widget Grid - Full width in search mode, 2/3 width otherwise -->\\n <div\\n [class]=\\\"\\n isSearchMode()\\n ? 'ax-flex ax-h-full ax-flex-col ax-w-full ax-overflow-hidden'\\n : 'ax-flex ax-h-full ax-flex-col ax-w-2/3 ax-overflow-hidden'\\n \\\"\\n >\\n @if (hasResults()) {\\n <div class=\\\"ax-flex ax-flex-col ax-p-4\\\">\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for (widgetItem of pinnedWidgetItems(); track widgetItem.title) {\\n <axp-widget-item\\n [widget]=\\\"widgetItem\\\"\\n [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\"\\n (onPinClick)=\\\"handleWidgetPinClick($event)\\\"\\n >\\n </axp-widget-item>\\n }\\n </div>\\n @if (pinnedWidgetItems().length) {\\n <hr class=\\\"ax-my-4 ax-border-dashed\\\" />\\n }\\n <div class=\\\"ax-grid ax-grid-cols-2 ax-gap-2\\\">\\n @for (widgetItem of regularWidgetItems(); track widgetItem.title) {\\n <axp-widget-item\\n [widget]=\\\"widgetItem\\\"\\n [isSelected]=\\\"isWidgetItemSelected(widgetItem)\\\"\\n (onWidgetClick)=\\\"handleWidgetClick($event)\\\"\\n (onPinClick)=\\\"handleWidgetPinClick($event)\\\"\\n >\\n </axp-widget-item>\\n }\\n </div>\\n </div>\\n } @else {\\n <!-- Empty State -->\\n <axp-state-message\\n icon=\\\"fa-light fa-search\\\"\\n [title]=\\\"\\n isSearchMode()\\n ? '@form-template-management:designer.components.template-picker.empty-states.no-search-results.title'\\n : '@form-template-management:designer.components.template-picker.empty-states.no-category-results.title'\\n \\\"\\n [description]=\\\"\\n isSearchMode()\\n ? '@form-template-management:designer.components.template-picker.empty-states.no-search-results.description'\\n : '@form-template-management:designer.components.template-picker.empty-states.no-category-results.description'\\n \\\"\\n >\\n @if (isSearchMode()) {\\n <ax-button\\n look=\\\"blank\\\"\\n [text]=\\\"'@form-template-management:designer.components.template-picker.clear-search' | translate | async\\\"\\n class=\\\"ax-mt-4\\\"\\n (onClick)=\\\"searchTerm.set('')\\\"\\n ></ax-button>\\n }\\n </axp-state-message>\\n }\\n </div>\\n </div>\\n</div>\\n\\n@if (selectedWidgets().length) {\\n <ax-footer>\\n <ax-suffix>\\n <ax-button\\n look=\\\"solid\\\"\\n color=\\\"primary\\\"\\n text=\\\"{{ selectedWidgets().length }} Selected\\\"\\n (onClick)=\\\"handleConfirmSelection()\\\"\\n ></ax-button>\\n </ax-suffix>\\n </ax-footer>\\n}\\n\" }]\n }], propDecorators: { searchTerm: [{ type: i0.Input, args: [{ isSignal: true, alias: \"searchTerm\", required: false }] }, { type: i0.Output, args: [\"searchTermChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9mb3JtLXRlbXBsYXRlLW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9kZXNpZ25lci9jb21wb25lbnRzL3RlbXBsYXRlLXBpY2tlci90ZW1wbGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL2Zvcm0tdGVtcGxhdGUtbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2Rlc2lnbmVyL2NvbXBvbmVudHMvdGVtcGxhdGUtcGlja2VyL3RlbXBsYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLFdBQVcsRUFB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QUFnQzttR0FBaEMsZ0NBQWdDLCtSQzdEN0Msb3RJQW9IQSwyQ0R0RUksWUFBWSw4QkFDWixXQUFXO2dCQUNYLEVBQUU7Z0JBQ0YsY0FBYyw4QkFDZCxjQUFjLDZYQUNkLGlCQUFpQixzY0FDakIsaUJBQWlCLDBaQUNqQixnQkFBZ0IsNG9CQUNoQixtQkFBbUIsK0JBQ25CLHNCQUFzQiwwS0FDdEIsd0JBQXdCOzs0RkFLZixnQ0FBZ0M7a0JBakI1QyxTQUFTOzhCQUNDO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxFQUFFO3dCQUNGLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3FCQUN6QixpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBQbGF0Zm9ybVNjb3BlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIEluamVjdG9yLCBtb2RlbCwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzTmlsLCBvcmRlckJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUFRlbXBsYXRlV2lkZ2V0TGlzdEl0ZW0gfSBmcm9tICcuL3RlbXBsYXRlLnByb3ZpZGVyJztcblxuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFRyZWVWaWV3TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RyZWUtdmlldyc7XG5pbXBvcnQgeyBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnQsIEFYUFdpZGdldEl0ZW1Db21wb25lbnQsIEFYUFdpZGdldEl0ZW1EYXRhLCBBWFBXaWRnZXRJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9jb25zdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGlzcGxheVdpZGdldFByb3ZpZGVkIGV4dGVuZHMgQVhQVGVtcGxhdGVXaWRnZXRMaXN0SXRlbSB7XG4gIHBpbm5lZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBDYXRlZ29yeURpc3BsYXlNb2RlbCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHBhcmVudElkPzogc3RyaW5nO1xuICBoYXNDaGlsZDogYm9vbGVhbjtcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE1hcHMgQVhQRGlzcGxheVdpZGdldFByb3ZpZGVkIHRvIGdlbmVyaWMgQVhQV2lkZ2V0SXRlbURhdGFcbiAqL1xuZnVuY3Rpb24gbWFwVG9XaWRnZXRJdGVtRGF0YSh3aWRnZXQ6IEFYUERpc3BsYXlXaWRnZXRQcm92aWRlZCk6IEFYUFdpZGdldEl0ZW1EYXRhIHtcbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogd2lkZ2V0LnRpdGxlLFxuICAgIGRlc2NyaXB0aW9uOiB3aWRnZXQuZGVzY3JpcHRpb24sXG4gICAgaWNvbjogd2lkZ2V0Lmljb24gPz8gJ2ZhLXNvbGlkIGZhLWN1YmUnLFxuICAgIGlzUGlubmVkOiB3aWRnZXQucGlubmVkLFxuICAgIGRhdGE6IHdpZGdldFxuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICAvL1xuICAgIEFYQ29tbW9uTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYU2VhcmNoQm94TW9kdWxlLFxuICAgIEFYVHJlZVZpZXdNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBXaWRnZXRJdGVtQ29tcG9uZW50LFxuICAgIEFYUFN0YXRlTWVzc2FnZUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRlbXBsYXRlV2lkZ2V0UGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc2V0dGluZ1NlcnZpY2UgPSBpbmplY3QoQVhQU2V0dGluZ1NlcnZpY2UpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSBjYXRlZ29yeUVudGl0eVNlcnZpY2UgPSBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gbmV3IEFYTUVudGl0eUNydWRTZXJ2aWNlSW1wbDxhbnksIGFueT4oYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uQ2F0ZWdvcnlgKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBleHBhbmRlZENhdGVnb3JpZXNLZXkgPSAnZm9ybXM6dGVtcGxhdGVzOnBpY2tlcjpleHBhbmRlZENhdGVnb3JpZXMnO1xuXG4gIC8vIFRyYWNrIGV4cGFuZGVkIGNhdGVnb3J5IElEc1xuICBwcml2YXRlIGV4cGFuZGVkQ2F0ZWdvcnlJZHMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvLyBMb2FkIGV4cGFuZGVkIGNhdGVnb3JpZXMgZnJvbSBzZXR0aW5nc1xuICAgIGNvbnN0IHNhdmVkRXhwYW5kZWRJZHMgPSAoYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQ8c3RyaW5nW10+KHRoaXMuZXhwYW5kZWRDYXRlZ29yaWVzS2V5KSkgfHwgW107XG4gICAgdGhpcy5leHBhbmRlZENhdGVnb3J5SWRzLnNldChzYXZlZEV4cGFuZGVkSWRzKTtcbiAgICAvL1xuICAgIGNvbnN0IHBpbm5lZFdpZGdldHMgPSAoYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQ8c3RyaW5nW10+KHRoaXMucGlubmVkU2V0dGluZ0tleSkpIHx8IFtdO1xuICAgIHRoaXMuZGlzcGxheVdpZGdldHMuc2V0KFxuICAgICAgdGhpcy53aWRnZXRzLm1hcCgoYykgPT4gKHtcbiAgICAgICAgLi4uYyxcbiAgICAgICAgcGlubmVkOiBwaW5uZWRXaWRnZXRzLmluY2x1ZGVzKGMuaWQpLFxuICAgICAgICBpY29uOiBjLmljb24gPz8gJ2ZhLXNvbGlkIGZhLWZpbGUtaW52b2ljZScsXG4gICAgICB9KSksXG4gICAgKTtcblxuXG4gIH1cblxuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGlubmVkU2V0dGluZ0tleSA9ICdmb3Jtczp0ZW1wbGF0ZXM6cGlja2VyOnBpbm5lZCc7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaFRlcm0gPSBtb2RlbCgnJyk7XG5cbiAgLy8gRGF0YSBwcm9wZXJ0aWVzIC0gcG9wdWxhdGVkIGJ5IHBvcHVwIHNlcnZpY2VcbiAgd2lkZ2V0czogQVhQVGVtcGxhdGVXaWRnZXRMaXN0SXRlbVtdID0gW107XG5cbiAgLy8gU2lnbmFsc1xuICBwcml2YXRlIGRpc3BsYXlXaWRnZXRzID0gc2lnbmFsPEFYUERpc3BsYXlXaWRnZXRQcm92aWRlZFtdPihbXSk7XG5cbiAgLy8gU2lnbmFsIHRvIHRyYWNrIHNlbGVjdGVkIHdpZGdldHNcbiAgcHJvdGVjdGVkIHNlbGVjdGVkV2lkZ2V0cyA9IHNpZ25hbDxBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWRbXT4oW10pO1xuXG4gIC8vIENvbXB1dGVkIGZvciBmaWx0ZXJlZCBhbmQgb3JkZXJlZCB3aWRnZXQgbGlzdFxuICBwcml2YXRlIG9yZGVyZWRMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoVGVybSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRDYXRlZ29yeSA9IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSgpO1xuICAgIGNvbnN0IHNlbGVjdGVkQ2F0ZWdvcnlJZCA9IHNlbGVjdGVkQ2F0ZWdvcnkgPyBzZWxlY3RlZENhdGVnb3J5LmlkIDogbnVsbDtcblxuICAgIGNvbnN0IGZpbHRlckJ5Q2F0ZWdvcnkgPSAod2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWQpID0+IHtcbiAgICAgIGlmICghc2VsZWN0ZWRDYXRlZ29yeUlkIHx8IHNlbGVjdGVkQ2F0ZWdvcnlJZCA9PSAnYWxsJykgcmV0dXJuIHRydWU7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRDYXRlZ29yeUlkID09PSB3aWRnZXQuZ3JvdXAubmFtZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIG9yZGVyQnkoXG4gICAgICB0aGlzLmRpc3BsYXlXaWRnZXRzKCkuZmlsdGVyKCh3KSA9PiB7XG4gICAgICAgIGNvbnN0IG1hdGNoZXNDYXRlZ29yeSA9IGZpbHRlckJ5Q2F0ZWdvcnkodyk7XG4gICAgICAgIGNvbnN0IG1hdGNoZXNTZWFyY2ggPVxuICAgICAgICAgICFzZWFyY2ggfHwgdy50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaCkgfHwgdy5kZXNjcmlwdGlvbj8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlc0NhdGVnb3J5ICYmIG1hdGNoZXNTZWFyY2g7XG4gICAgICB9KSxcbiAgICAgIFsncGlubmVkJywgJ3RpdGxlJ10sXG4gICAgICBbJ2Rlc2MnLCAnYXNjJ10sXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gUGlubmVkIGFuZCByZWd1bGFyIGxpc3RzXG4gIHByb3RlY3RlZCBwaW5uZWRMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gYy5waW5uZWQpKTtcbiAgcHJvdGVjdGVkIHJlZ3VsYXJMaXN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmRlcmVkTGlzdCgpLmZpbHRlcigoYykgPT4gIWMucGlubmVkKSk7XG5cbiAgLy8gTWFwcGVkIGRhdGEgZm9yIGdlbmVyaWMgd2lkZ2V0IGl0ZW1zXG4gIHByb3RlY3RlZCBwaW5uZWRXaWRnZXRJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGlubmVkTGlzdCgpLm1hcChtYXBUb1dpZGdldEl0ZW1EYXRhKSk7XG4gIHByb3RlY3RlZCByZWd1bGFyV2lkZ2V0SXRlbXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlZ3VsYXJMaXN0KCkubWFwKG1hcFRvV2lkZ2V0SXRlbURhdGEpKTtcblxuICAvLyBDb21wdXRlZCBwcm9wZXJ0eSB0byBjaGVjayBpZiB3ZSdyZSBpbiBzZWFyY2ggbW9kZVxuICBwcm90ZWN0ZWQgaXNTZWFyY2hNb2RlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZWFyY2hUZXJtKCkudHJpbSgpLmxlbmd0aCA+IDApO1xuXG4gIC8vIENvbXB1dGVkIHByb3BlcnR5IHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgcmVzdWx0c1xuICBwcm90ZWN0ZWQgaGFzUmVzdWx0cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3JkZXJlZExpc3QoKS5sZW5ndGggPiAwKTtcblxuXG5cbiAgcHJvdGVjdGVkIGhhbmRsZVdpZGdldENsaWNrKGNsaWNrRXZlbnQ6IEFYUFdpZGdldEl0ZW1DbGlja0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgeyBldmVudCwgd2lkZ2V0IH0gPSBjbGlja0V2ZW50O1xuICAgIGNvbnN0IG9yaWdpbmFsV2lkZ2V0ID0gd2lkZ2V0LmRhdGEgYXMgQVhQRGlzcGxheVdpZGdldFByb3ZpZGVkO1xuXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGVkV2lkZ2V0cygpO1xuICAgICAgY29uc3QgaXNBbHJlYWR5U2VsZWN0ZWQgPSBjdXJyZW50U2VsZWN0aW9uLnNvbWUoKHcpID0+IHcgPT09IG9yaWdpbmFsV2lkZ2V0KTtcblxuICAgICAgaWYgKGlzQWxyZWFkeVNlbGVjdGVkKSB7XG4gICAgICAgIC8vIERlc2VsZWN0IHdpZGdldCBpZiBhbHJlYWR5IHNlbGVjdGVkXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnNldChjdXJyZW50U2VsZWN0aW9uLmZpbHRlcigodykgPT4gdyAhPT0gb3JpZ2luYWxXaWRnZXQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFkZCB3aWRnZXQgdG8gc2VsZWN0aW9uXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnNldChbLi4uY3VycmVudFNlbGVjdGlvbiwgb3JpZ2luYWxXaWRnZXRdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgQ1RSTCBpcyBub3QgcHJlc3NlZCwgc2VsZWN0IG9ubHkgdGhlIGNsaWNrZWQgd2lkZ2V0XG4gICAgICB0aGlzLmNsb3NlKHsgd2lkZ2V0czogW29yaWdpbmFsV2lkZ2V0XSB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlV2lkZ2V0UGluQ2xpY2soY2xpY2tFdmVudDogQVhQV2lkZ2V0SXRlbUNsaWNrRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IHdpZGdldCB9ID0gY2xpY2tFdmVudDtcbiAgICBjb25zdCBvcmlnaW5hbFdpZGdldCA9IHdpZGdldC5kYXRhIGFzIEFYUERpc3BsYXlXaWRnZXRQcm92aWRlZDtcblxuICAgIG9yaWdpbmFsV2lkZ2V0LnBpbm5lZCA9ICFvcmlnaW5hbFdpZGdldC5waW5uZWQ7XG5cbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgbGlzdCBvZiBwaW5uZWQgd2lkZ2V0cyBmcm9tIHNldHRpbmdzXG4gICAgbGV0IHBpbm5lZFdpZGdldHMgPSAoYXdhaXQgdGhpcy5zZXR0aW5nU2VydmljZS5nZXQ8c3RyaW5nW10+KHRoaXMucGlubmVkU2V0dGluZ0tleSkpIHx8IFtdO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIHBpbm5lZCB3aWRnZXRzIGJhc2VkIG9uIHRoZSBwaW5uZWQgc3RhdHVzXG4gICAgaWYgKG9yaWdpbmFsV2lkZ2V0LnBpbm5lZCkge1xuICAgICAgaWYgKCFwaW5uZWRXaWRnZXRzLmluY2x1ZGVzKG9yaWdpbmFsV2lkZ2V0LmlkKSkge1xuICAgICAgICBwaW5uZWRXaWRnZXRzLnB1c2gob3JpZ2luYWxXaWRnZXQuaWQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwaW5uZWRXaWRnZXRzID0gcGlubmVkV2lkZ2V0cy5maWx0ZXIoKG5hbWUpID0+IG5hbWUgIT09IG9yaWdpbmFsV2lkZ2V0LmlkKTtcbiAgICB9XG5cbiAgICAvLyBTYXZlIHRoZSB1cGRhdGVkIGxpc3Qgb2YgcGlubmVkIHdpZGdldHNcbiAgICBhd2FpdCB0aGlzLnNldHRpbmdTZXJ2aWNlLnNjb3BlKEFYUFBsYXRmb3JtU2NvcGUuVXNlcikuc2V0KHRoaXMucGlubmVkU2V0dGluZ0tleSwgcGlubmVkV2lkZ2V0cyk7XG5cbiAgICAvLyBUcmlnZ2VyIGEgcmUtcmVuZGVyIG9mIHRoZSB3aWRnZXRzXG4gICAgdGhpcy5kaXNwbGF5V2lkZ2V0cy5zZXQoWy4uLnRoaXMuZGlzcGxheVdpZGdldHMoKV0pO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgYSB3aWRnZXQgaXMgc2VsZWN0ZWRcbiAgcHJvdGVjdGVkIGlzV2lkZ2V0U2VsZWN0ZWQod2lkZ2V0OiBBWFBEaXNwbGF5V2lkZ2V0UHJvdmlkZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFdpZGdldHMoKS5pbmNsdWRlcyh3aWRnZXQpO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgYSBnZW5lcmljIHdpZGdldCBpdGVtIGlzIHNlbGVjdGVkXG4gIHByb3RlY3RlZCBpc1dpZGdldEl0ZW1TZWxlY3RlZCh3aWRnZXRJdGVtOiBBWFBXaWRnZXRJdGVtRGF0YSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9yaWdpbmFsV2lkZ2V0ID0gd2lkZ2V0SXRlbS5kYXRhIGFzIEFYUERpc3BsYXlXaWRnZXRQcm92aWRlZDtcbiAgICByZXR1cm4gdGhpcy5pc1dpZGdldFNlbGVjdGVkKG9yaWdpbmFsV2lkZ2V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb25maXJtU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UoeyB3aWRnZXRzOiB0aGlzLnNlbGVjdGVkV2lkZ2V0cygpIH0pO1xuICB9XG5cbiAgLy8jcmVnaW9uIENhdGVnb3J5IFRyZWVcblxuXG4gIHByb3RlY3RlZCBwcm92aWRlTGF6eVRyZWVWaWV3ID0gYXN5bmMgKHNlbGVjdGVkSXRlbUlkPzogc3RyaW5nIHwgbnVtYmVyKTogUHJvbWlzZTxBWFBDYXRlZ29yeURpc3BsYXlNb2RlbFtdPiA9PiB7XG4gICAgaWYgKHNlbGVjdGVkSXRlbUlkID09ICdhbGwnKSB7XG4gICAgICBjb25zdCBjYXRlZ29yaWVzID0gYXdhaXQgdGhpcy5jYXRlZ29yeUVudGl0eVNlcnZpY2UuZ2V0Um9vdHMoe30pO1xuICAgICAgY29uc3QgaXRlbXMgPSBjYXRlZ29yaWVzLml0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxuICAgICAgICBoYXNDaGlsZDogaXRlbS5jaGlsZHJlbkNvdW50ID4gMCxcbiAgICAgICAgZXhwYW5kZWQ6IHRoaXMuZXhwYW5kZWRDYXRlZ29yeUlkcygpLmluY2x1ZGVzKGl0ZW0uaWQpLFxuICAgICAgfSkpO1xuICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cbiAgICBlbHNlIGlmIChzZWxlY3RlZEl0ZW1JZCkge1xuICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IChhd2FpdCB0aGlzLmNhdGVnb3J5RW50aXR5U2VydmljZS5nZXRDaGlsZHJlbih7IHBhcmVudElkOiBzZWxlY3RlZEl0ZW1JZCBhcyBzdHJpbmcgfSkpPy5pdGVtcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcbiAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXG4gICAgICAgIGhhc0NoaWxkOiBpdGVtLmNoaWxkcmVuQ291bnQgPiAwLFxuICAgICAgICBleHBhbmRlZDogdGhpcy5leHBhbmRlZENhdGVnb3J5SWRzKCkuaW5jbHVkZXMoaXRlbS5pZCksXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gY2F0ZWdvcmllcztcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgaGFzQ2hpbGQ6IHRydWUsXG4gICAgICAgICAgaWQ6IFwiYWxsXCIsXG4gICAgICAgICAgdGl0bGU6IFwiQWxsIEl0ZW1zXCIsXG4gICAgICAgICAgZXhwYW5kZWQ6IHRydWUsXG4gICAgICAgIH0gYXMgQVhQQ2F0ZWdvcnlEaXNwbGF5TW9kZWxcbiAgICAgIF07XG4gICAgfVxuICB9O1xuXG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQ2F0ZWdvcnkgPSBzaWduYWw8QVhQQ2F0ZWdvcnlEaXNwbGF5TW9kZWwgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlTm9kZUNsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBpdGVtID0gZXZlbnQuZGF0YSBhcyBBWFBDYXRlZ29yeURpc3BsYXlNb2RlbDtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuc2V0KGl0ZW0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNvbGxhcHNlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgY29uc3QgaXRlbSA9IGV2ZW50LmRhdGEgYXMgQVhQQ2F0ZWdvcnlEaXNwbGF5TW9kZWw7XG4gICAgY29uc3QgY3VycmVudEV4cGFuZGVkID0gdGhpcy5leHBhbmRlZENhdGVnb3J5SWRzKCk7XG5cbiAgICBpZiAoaXRlbS5leHBhbmRlZCkge1xuICAgICAgLy8gQ2F0ZWdvcnkgd2FzIGV4cGFuZGVkIC0gYWRkIHRvIGV4cGFuZGVkIGxpc3RcbiAgICAgIGlmICghY3VycmVudEV4cGFuZGVkLmluY2x1ZGVzKGl0ZW0uaWQpKSB7XG4gICAgICAgIGNvbnN0IG5ld0V4cGFuZGVkID0gWy4uLmN1cnJlbnRFeHBhbmRlZCwgaXRlbS5pZF07XG4gICAgICAgIHRoaXMuZXhwYW5kZWRDYXRlZ29yeUlkcy5zZXQobmV3RXhwYW5kZWQpO1xuICAgICAgICBhd2FpdCB0aGlzLnNldHRpbmdTZXJ2aWNlLnNjb3BlKEFYUFBsYXRmb3JtU2NvcGUuVXNlcikuc2V0KHRoaXMuZXhwYW5kZWRDYXRlZ29yaWVzS2V5LCBuZXdFeHBhbmRlZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENhdGVnb3J5IHdhcyBjb2xsYXBzZWQgLSByZW1vdmUgZnJvbSBleHBhbmRlZCBsaXN0XG4gICAgICBjb25zdCBuZXdFeHBhbmRlZCA9IGN1cnJlbnRFeHBhbmRlZC5maWx0ZXIoaWQgPT4gaWQgIT09IGl0ZW0uaWQpO1xuICAgICAgdGhpcy5leHBhbmRlZENhdGVnb3J5SWRzLnNldChuZXdFeHBhbmRlZCk7XG4gICAgICBhd2FpdCB0aGlzLnNldHRpbmdTZXJ2aWNlLnNjb3BlKEFYUFBsYXRmb3JtU2NvcGUuVXNlcikuc2V0KHRoaXMuZXhwYW5kZWRDYXRlZ29yaWVzS2V5LCBuZXdFeHBhbmRlZCk7XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kIHJlZ2lvblxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgbGc6YXgtaC1bNjB2aF1cIj5cbiAgPGRpdiBjbGFzcz1cImF4LXAtMiBheC1zdXJmYWNlLWxvd2VzdCBheC1ib3JkZXItYiBheC1mbGV4LW5vbmVcIj5cbiAgICA8YXgtc2VhcmNoLWJveFxuICAgICAgbG9vaz1cImZpbGxcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJlLmcuIEJ1dHRvbiwgVGV4dCwgLi4uXCJcbiAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgIFtkZWxheVRpbWVdPVwiMzAwXCJcbiAgICA+XG4gICAgICA8YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgIDwvYXgtc2VhcmNoLWJveD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtZ3JvdyBheC1oLWZ1bGxcIj5cbiAgICA8IS0tIENhdGVnb3J5IFRyZWUgLSBIaWRkZW4gaW4gc2VhcmNoIG1vZGUgLS0+XG4gICAgQGlmICghaXNTZWFyY2hNb2RlKCkpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJheC1mbGV4IGF4LWgtZnVsbCBheC1wLTIgYXgtb3ZlcmZsb3ctYXV0byBheC13LTEvMyBheC1qdXN0aWZ5LXN0YXJ0IGF4LWl0ZW1zLXN0YXJ0IGF4LXN1cmZhY2UtbG93ZXN0IGF4LWJvcmRlci1lXCJcbiAgICAgID5cbiAgICAgICAgPGF4LXRyZWUtdmlld1xuICAgICAgICAgIFtzaG93Q2hlY2tib3hdPVwiZmFsc2VcIlxuICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiY2F0ZWdvcnlUZW1wbGF0ZVwiXG4gICAgICAgICAgW3RleHRGaWVsZF09XCIndGl0bGUnXCJcbiAgICAgICAgICBbaGFzQ2hpbGRGaWVsZF09XCInaGFzQ2hpbGQnXCJcbiAgICAgICAgICBbdmFsdWVGaWVsZF09XCInaWQnXCJcbiAgICAgICAgICBbZXhwYW5kZWRGaWVsZF09XCInZXhwYW5kZWQnXCJcbiAgICAgICAgICBbaXRlbXNdPVwicHJvdmlkZUxhenlUcmVlVmlld1wiXG4gICAgICAgICAgKG9uTm9kZUNsaWNrKT1cImhhbmRsZU5vZGVDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAob25Db2xsYXBzZWRDaGFuZ2VkKT1cImhhbmRsZUNvbGxhcHNlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICBjbGFzcz1cImF4LXctZnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgPC9heC10cmVlLXZpZXc+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNjYXRlZ29yeVRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZm9sZGVyIGF4LXRleHQteWVsbG93LTUwMCBmYS1md1wiPjwvYXgtaWNvbj5cbiAgICAgICAgICB7eyBpdGVtLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gV2lkZ2V0IEdyaWQgLSBGdWxsIHdpZHRoIGluIHNlYXJjaCBtb2RlLCAyLzMgd2lkdGggb3RoZXJ3aXNlIC0tPlxuICAgIDxkaXZcbiAgICAgIFtjbGFzc109XCJcbiAgICAgICAgaXNTZWFyY2hNb2RlKClcbiAgICAgICAgICA/ICdheC1mbGV4IGF4LWgtZnVsbCBheC1mbGV4LWNvbCBheC13LWZ1bGwgYXgtb3ZlcmZsb3ctaGlkZGVuJ1xuICAgICAgICAgIDogJ2F4LWZsZXggYXgtaC1mdWxsIGF4LWZsZXgtY29sIGF4LXctMi8zIGF4LW92ZXJmbG93LWhpZGRlbidcbiAgICAgIFwiXG4gICAgPlxuICAgICAgQGlmIChoYXNSZXN1bHRzKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtcC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgIEBmb3IgKHdpZGdldEl0ZW0gb2YgcGlubmVkV2lkZ2V0SXRlbXMoKTsgdHJhY2sgd2lkZ2V0SXRlbS50aXRsZSkge1xuICAgICAgICAgICAgICA8YXhwLXdpZGdldC1pdGVtXG4gICAgICAgICAgICAgICAgW3dpZGdldF09XCJ3aWRnZXRJdGVtXCJcbiAgICAgICAgICAgICAgICBbaXNTZWxlY3RlZF09XCJpc1dpZGdldEl0ZW1TZWxlY3RlZCh3aWRnZXRJdGVtKVwiXG4gICAgICAgICAgICAgICAgKG9uV2lkZ2V0Q2xpY2spPVwiaGFuZGxlV2lkZ2V0Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uUGluQ2xpY2spPVwiaGFuZGxlV2lkZ2V0UGluQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9heHAtd2lkZ2V0LWl0ZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChwaW5uZWRXaWRnZXRJdGVtcygpLmxlbmd0aCkge1xuICAgICAgICAgICAgPGhyIGNsYXNzPVwiYXgtbXktNCBheC1ib3JkZXItZGFzaGVkXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTIgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgIEBmb3IgKHdpZGdldEl0ZW0gb2YgcmVndWxhcldpZGdldEl0ZW1zKCk7IHRyYWNrIHdpZGdldEl0ZW0udGl0bGUpIHtcbiAgICAgICAgICAgICAgPGF4cC13aWRnZXQtaXRlbVxuICAgICAgICAgICAgICAgIFt3aWRnZXRdPVwid2lkZ2V0SXRlbVwiXG4gICAgICAgICAgICAgICAgW2lzU2VsZWN0ZWRdPVwiaXNXaWRnZXRJdGVtU2VsZWN0ZWQod2lkZ2V0SXRlbSlcIlxuICAgICAgICAgICAgICAgIChvbldpZGdldENsaWNrKT1cImhhbmRsZVdpZGdldENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvblBpbkNsaWNrKT1cImhhbmRsZVdpZGdldFBpbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvYXhwLXdpZGdldC1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8IS0tIEVtcHR5IFN0YXRlIC0tPlxuICAgICAgICA8YXhwLXN0YXRlLW1lc3NhZ2VcbiAgICAgICAgICBpY29uPVwiZmEtbGlnaHQgZmEtc2VhcmNoXCJcbiAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICBpc1NlYXJjaE1vZGUoKVxuICAgICAgICAgICAgICA/ICdAZm9ybS10ZW1wbGF0ZS1tYW5hZ2VtZW50OmRlc2lnbmVyLmNvbXBvbmVudHMudGVtcGxhdGUtcGlja2VyLmVtcHR5LXN0YXRlcy5uby1zZWFyY2gtcmVzdWx0cy50aXRsZSdcbiAgICAgICAgICAgICAgOiAnQGZvcm0tdGVtcGxhdGUtbWFuYWdlbWVudDpkZXNpZ25lci5jb21wb25lbnRzLnRlbXBsYXRlLXBpY2tlci5lbXB0eS1zdGF0ZXMubm8tY2F0ZWdvcnktcmVzdWx0cy50aXRsZSdcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJcbiAgICAgICAgICAgIGlzU2VhcmNoTW9kZSgpXG4gICAgICAgICAgICAgID8gJ0Bmb3JtLXRlbXBsYXRlLW1hbmFnZW1lbnQ6ZGVzaWduZXIuY29tcG9uZW50cy50ZW1wbGF0ZS1waWNrZXIuZW1wdHktc3RhdGVzLm5vLXNlYXJjaC1yZXN1bHRzLmRlc2NyaXB0aW9uJ1xuICAgICAgICAgICAgICA6ICdAZm9ybS10ZW1wbGF0ZS1tYW5hZ2VtZW50OmRlc2lnbmVyLmNvbXBvbmVudHMudGVtcGxhdGUtcGlja2VyLmVtcHR5LXN0YXRlcy5uby1jYXRlZ29yeS1yZXN1bHRzLmRlc2NyaXB0aW9uJ1xuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGlzU2VhcmNoTW9kZSgpKSB7XG4gICAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICAgICAgICAgIFt0ZXh0XT1cIidAZm9ybS10ZW1wbGF0ZS1tYW5hZ2VtZW50OmRlc2lnbmVyLmNvbXBvbmVudHMudGVtcGxhdGUtcGlja2VyLmNsZWFyLXNlYXJjaCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgtbXQtNFwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cInNlYXJjaFRlcm0uc2V0KCcnKVwiXG4gICAgICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2F4cC1zdGF0ZS1tZXNzYWdlPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5AaWYgKHNlbGVjdGVkV2lkZ2V0cygpLmxlbmd0aCkge1xuICA8YXgtZm9vdGVyPlxuICAgIDxheC1zdWZmaXg+XG4gICAgICA8YXgtYnV0dG9uXG4gICAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIHRleHQ9XCJ7eyBzZWxlY3RlZFdpZGdldHMoKS5sZW5ndGggfX0gU2VsZWN0ZWRcIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVDb25maXJtU2VsZWN0aW9uKClcIlxuICAgICAgPjwvYXgtYnV0dG9uPlxuICAgIDwvYXgtc3VmZml4PlxuICA8L2F4LWZvb3Rlcj5cbn1cbiJdfQ=="],"names":["i6","i7"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAwBA;AACA;AACA;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,MAAM,CAAC,KAAK;AAC3B,QAAQ,WAAW,EAAE,MAAM,CAAC,WAAW;AACvC,QAAQ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,kBAAkB;AAC/C,QAAQ,QAAQ,EAAE,MAAM,CAAC,MAAM;AAC/B,QAAQ,IAAI,EAAE;AACd,KAAK;AACL;AACO,MAAM,gCAAgC,SAAS,mBAAmB,CAAC;AAC1E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,wBAAwB,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACnJ,QAAQ,IAAI,CAAC,qBAAqB,GAAG,2CAA2C;AAChF;AACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,QAAQ,IAAI,CAAC,gBAAgB,GAAG,+BAA+B;AAC/D,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjG;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnG;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE;AAC1D,YAAY,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC5D,YAAY,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,GAAG,IAAI;AACpF,YAAY,MAAM,gBAAgB,GAAG,CAAC,MAAM,KAAK;AACjD,gBAAgB,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,IAAI,KAAK;AACtE,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB,OAAO,kBAAkB,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI;AAC/D,YAAY,CAAC;AACb,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;AAC/D,gBAAgB,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC;AAC3D,gBAAgB,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AACxI,gBAAgB,OAAO,eAAe,IAAI,aAAa;AACvD,YAAY,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACrD,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzI,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5I;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvJ,QAAQ,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1J;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtI;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5H;AACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,OAAO,cAAc,KAAK;AAC7D,YAAY,IAAI,cAAc,IAAI,KAAK,EAAE;AACzC,gBAAgB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChF,gBAAgB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AAC9D,oBAAoB,EAAE,EAAE,IAAI,CAAC,EAAE;AAC/B,oBAAoB,KAAK,EAAE,IAAI,CAAC,KAAK;AACrC,oBAAoB,QAAQ,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC;AACpD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1E,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,iBAAiB,IAAI,cAAc,EAAE;AACrC,gBAAgB,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACtI,oBAAoB,EAAE,EAAE,IAAI,CAAC,EAAE;AAC/B,oBAAoB,KAAK,EAAE,IAAI,CAAC,KAAK;AACrC,oBAAoB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC3C,oBAAoB,QAAQ,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC;AACpD,oBAAoB,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1E,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,UAAU;AACjC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,OAAO;AACvB,oBAAoB;AACpB,wBAAwB,QAAQ,EAAE,IAAI;AACtC,wBAAwB,EAAE,EAAE,KAAK;AACjC,wBAAwB,KAAK,EAAE,WAAW;AAC1C,wBAAwB,QAAQ,EAAE,IAAI;AACtC;AACA,iBAAiB;AACjB,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvG,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB;AACA,QAAQ,MAAM,gBAAgB,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;AAClG,QAAQ,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACtD;AACA,QAAQ,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC1F,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACzD,YAAY,GAAG,CAAC;AAChB,YAAY,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,0BAA0B;AACtD,SAAS,CAAC,CAAC,CAAC;AACZ,IAAI;AACJ,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAClC,QAAQ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU;AAC5C,QAAQ,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI;AAC1C,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;AAC3B,YAAY,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE;AAC3D,YAAY,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC;AACxF,YAAY,IAAI,iBAAiB,EAAE;AACnC;AACA,gBAAgB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,CAAC;AAC9F,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAC/E,YAAY;AACZ,QAAQ;AACR,aAAa;AACb;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;AACrD,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,oBAAoB,CAAC,UAAU,EAAE;AAC3C,QAAQ,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU;AACrC,QAAQ,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI;AAC1C,QAAQ,cAAc,CAAC,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM;AACtD;AACA,QAAQ,IAAI,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACxF;AACA,QAAQ,IAAI,cAAc,CAAC,MAAM,EAAE;AACnC,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;AAC5D,gBAAgB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;AACrD,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;AACtF,QAAQ;AACR;AACA,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC;AACxG;AACA,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;AAC3D,IAAI;AACJ;AACA,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtD,IAAI;AACJ;AACA,IAAI,oBAAoB,CAAC,UAAU,EAAE;AACrC,QAAQ,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI;AAC9C,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;AACpD,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;AACvD,IAAI;AACJ,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;AAC/B,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC,IAAI;AACJ,IAAI,MAAM,qBAAqB,CAAC,KAAK,EAAE;AACvC,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;AAC/B,QAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC1D,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B;AACA,YAAY,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACpD,gBAAgB,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC;AACjE,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC;AACzD,gBAAgB,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC;AACnH,YAAY;AACZ,QAAQ;AACR,aAAa;AACb;AACA,YAAY,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;AAC5E,YAAY,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC;AACrD,YAAY,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC;AAC/G,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACrM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,gCAAgC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,otIAAotI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI;AACljK;AACA,gBAAgB,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,+BAA+B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,sBAAsB,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEA,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEC,IAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACj/E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,UAAU,EAAE,CAAC;AAC3I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE;AAC9B,wBAAwB,YAAY;AACpC,wBAAwB,WAAW;AACnC;AACA,wBAAwB,cAAc;AACtC,wBAAwB,cAAc;AACtC,wBAAwB,iBAAiB;AACzC,wBAAwB,iBAAiB;AACzC,wBAAwB,gBAAgB;AACxC,wBAAwB,mBAAmB;AAC3C,wBAAwB,sBAAsB;AAC9C,wBAAwB,wBAAwB;AAChD,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,otIAAotI,EAAE;AAC9xI,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-modules-party-management-party.entity-CPN2U-mp.mjs","sources":["../tmp-esm2022/party-management/lib/entities/party/party.entity.js"],"sourcesContent":["//#region ---- Imports ----\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { RootConfig as ContactManagementRootConfig } from '@acorex/modules/contact-management';\nimport { AXPEntityQueryType, createAllQueryView, createQueryView } from '@acorex/platform/common';\nimport { entityDetailsCrudActions, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterCrudActions, entityMasterRecordActions, } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { RootConfig } from '../../const';\nimport { AXMPartyService } from './party.service';\n//#endregion\nexport async function partyFactory(injector) {\n const dataService = injector.get(AXMPartyService);\n const translateService = injector.get(AXTranslationService);\n // Resolve texts for select option labels\n // Using static keys ensures i18n pipes/services render properly\n const partyTypeIndividualText = await translateService.translateAsync('@party-management:party.properties.type.options.individual');\n const partyTypeOrganizationText = await translateService.translateAsync('@party-management:party.properties.type.options.organization');\n const entityDef = {\n module: RootConfig.module.name,\n name: RootConfig.entities.party.name,\n title: RootConfig.entities.party.title,\n icon: 'fa-light fa-user',\n formats: {\n individual: RootConfig.entities.party.title,\n displayName: 'Information',\n plural: RootConfig.entities.party.titlePlural,\n searchResult: {\n title: '{{ displayName }}',\n description: '@party-management:party.search-result-description',\n },\n },\n plugins: [\n // {\n // name: 'computed-property',\n // options: {\n // fields: [\n // {\n // name: 'primaryContact',\n // title: `Primary Contact`,\n // group: {\n // id: 'computed-properties',\n // title: 'Primaries',\n // },\n // showAs: {\n // type: AXPWidgetsCatalog.contact,\n // options: {\n // type: \"email\",\n // width: \"300px\",\n // hasLabel: false,\n // disabled: true,\n // },\n // },\n // conditions: [\n // {\n // name: 'isPrimary',\n // operator: { type: 'equal' },\n // value: true,\n // },\n // ],\n // value: '{{ context.eval(\"contacts.{value}\")?.[0]?.value}}',\n // },\n // ],\n // },\n // },\n ],\n groups: [\n {\n id: 'basic-info',\n title: '@general:terms.interface.basic-info',\n },\n ],\n properties: [\n {\n name: 'typeId',\n title: '@general:terms.common.type',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: {\n dataType: 'string',\n readonly: true,\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'id',\n textField: 'title',\n dataSource: [\n { id: 'individual', title: partyTypeIndividualText },\n { id: 'organization', title: partyTypeOrganizationText },\n ],\n expose: [\n { source: 'id', target: 'type.id' },\n { source: 'title', target: 'type.title' },\n ],\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'displayName',\n title: '@general:terms.common.display-name',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'firstName',\n title: '@general:terms.contact.first-name',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n hidden: '{{ context.eval(\"type.id\") == \"organization\" }}',\n },\n },\n {\n name: 'lastName',\n title: '@general:terms.contact.last-name',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n hidden: '{{ context.eval(\"type.id\") == \"organization\" }}',\n },\n },\n {\n name: 'legalName',\n title: '@party-management:party.properties.legal-name.title',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n hidden: '{{ context.eval(\"type.id\") == \"individual\" }}',\n },\n },\n ],\n columns: [\n { name: 'displayName', options: { width: '300px' } },\n { name: 'typeId', options: { dataPath: 'type.title' } },\n { name: 'legalName', options: { width: '300px' } },\n ],\n relatedEntities: [\n {\n entity: `${ContactManagementRootConfig.module.name}.${ContactManagementRootConfig.entities.contactMethod.name}`,\n title: '@party-management:party.related-entities.contacts.title',\n columns: ['methodTypeId', 'value', 'isPrimary', 'isVerified', 'notes'],\n conditions: [...entityDetailsReferenceCondition(RootConfig.entities.party.fullname)],\n actions: [...entityDetailsReferenceCreateActions(RootConfig.entities.party.fullname)],\n layout: { type: 'tab-list' },\n persistence: {\n dataPath: 'contacts',\n strategy: 'referenced',\n },\n },\n {\n entity: 'LocationManagement.Location',\n title: '@party-management:party.related-entities.locations.title',\n columns: [\n 'title',\n 'locationTypeId',\n 'street1',\n 'cityId',\n 'stateId',\n 'countryId',\n 'postalCode',\n 'isPrimary',\n 'isActive',\n ],\n conditions: [...entityDetailsReferenceCondition(RootConfig.entities.party.fullname)],\n actions: [...entityDetailsReferenceCreateActions(RootConfig.entities.party.fullname)],\n layout: { type: 'tab-list' },\n persistence: {\n dataPath: 'locations',\n strategy: 'referenced',\n },\n },\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.partyRole.name}`,\n title: '@party-management:party.related-entities.roles.title',\n columns: ['roleId', 'status', 'since', 'until', 'notes'],\n conditions: [entityDetailsSimpleCondition('partyId')],\n actions: [...entityDetailsCrudActions('partyId')],\n layout: { type: 'page-list' },\n },\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.partyIdentifier.name}`,\n title: '@party-management:party.related-entities.identifiers.title',\n columns: ['typeId', 'value', 'countryId', 'isPrimary', 'validFrom', 'validTo', 'attachments'],\n conditions: [entityDetailsSimpleCondition('partyId')],\n actions: [...entityDetailsCrudActions('partyId')],\n layout: { type: 'tab-list' },\n },\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.partyRelationship.name}`,\n title: '@party-management:party.related-entities.relationships.title',\n columns: ['toPartyId', 'typeId', 'validFrom', 'validTo', 'notes'],\n conditions: [entityDetailsSimpleCondition('fromPartyId')],\n actions: [...entityDetailsCrudActions('fromPartyId')],\n layout: { type: 'page-list' },\n },\n ],\n commands: {\n create: {\n execute: async (data) => {\n const res = await dataService.insertOne(data);\n return { id: res };\n },\n },\n delete: {\n execute: async (id) => {\n return await dataService.deleteOne(id);\n },\n },\n update: {\n execute: async (data) => {\n return await dataService.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id) => {\n return await dataService.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e) => {\n return await dataService.query(e);\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'basic-info',\n order: 1,\n },\n ],\n properties: [\n {\n name: 'typeId',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'displayName',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'firstName',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n order: 3,\n },\n },\n },\n },\n {\n name: 'lastName',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n order: 4,\n },\n },\n },\n },\n {\n name: 'legalName',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 5,\n },\n },\n },\n },\n {\n name: 'notes',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 8,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'basic-info',\n },\n ],\n properties: [\n {\n name: 'typeId',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'displayName',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'firstName',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n order: 3,\n },\n },\n },\n },\n {\n name: 'lastName',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n order: 4,\n },\n },\n },\n },\n {\n name: 'legalName',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 5,\n },\n },\n },\n },\n {\n name: 'notes',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 8,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{displayName}}',\n sections: [\n {\n id: 'basic-info',\n },\n ],\n properties: [\n {\n name: 'typeId',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 1,\n },\n },\n },\n },\n {\n name: 'displayName',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 2,\n },\n },\n },\n },\n {\n name: 'firstName',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n order: 3,\n },\n },\n },\n },\n {\n name: 'lastName',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n order: 4,\n },\n },\n },\n },\n {\n name: 'legalName',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n order: 5,\n },\n },\n },\n },\n {\n name: 'notes',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 8,\n },\n },\n },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [\n createAllQueryView({\n sorts: [{ name: 'displayName', dir: 'asc' }],\n }),\n createQueryView('individuals', partyTypeIndividualText, true, {\n conditions: [\n {\n name: 'type.id',\n operator: { type: 'equal' },\n value: 'individual',\n },\n ],\n }),\n createQueryView('organizations', partyTypeOrganizationText, true, {\n conditions: [\n {\n name: 'type.id',\n operator: { type: 'equal' },\n value: 'organization',\n },\n ],\n }),\n ],\n },\n },\n },\n };\n return entityDef;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydHkuZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3BhcnR5LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy9wYXJ0eS9wYXJ0eS5lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBRS9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLElBQUksMkJBQTJCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRixPQUFPLEVBQWEsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0csT0FBTyxFQUNMLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsbUNBQW1DLEVBQ25DLDRCQUE0QixFQUM1Qix1QkFBdUIsRUFDdkIseUJBQXlCLEdBQzFCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHbEQsWUFBWTtBQUVaLE1BQU0sQ0FBQyxLQUFLLFVBQVUsWUFBWSxDQUFDLFFBQWtCO0lBQ25ELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDNUQseUNBQXlDO0lBQ3pDLGdFQUFnRTtJQUNoRSxNQUFNLHVCQUF1QixHQUFHLE1BQU0sZ0JBQWdCLENBQUMsY0FBYyxDQUNuRSw0REFBNEQsQ0FDN0QsQ0FBQztJQUNGLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxnQkFBZ0Is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RSxJQUFJLEVBQUUsT0FBTzs0QkFDYixNQUFNLEVBQUU7Z0NBQ04sU0FBUyxFQUFFO29DQUNULEVBQUUsRUFBRTt3Q0FDRixPQUFPLEVBQUUsRUFBRTt3Q0FDWCxLQUFLLEVBQUUsQ0FBQztxQ0FDVDtpQ0FDRjs2QkFDRjt5QkFDRjtxQkFDRjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLHlCQUF5QixFQUFFLENBQUM7aUJBQzFDO2dCQUNELElBQUksRUFBRTtvQkFDSixPQUFPLEVBQUUsQ0FBQyxHQUFHLHVCQUF1QixFQUFFLENBQUM7b0JBQ3ZDLEtBQUssRUFBRTt3QkFDTCxrQkFBa0IsQ0FBQzs0QkFDakIsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQzt5QkFDN0MsQ0FBQzt3QkFDRixlQUFlLENBQUMsYUFBYSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRTs0QkFDNUQsVUFBVSxFQUFFO2dDQUNWO29DQUNFLElBQUksRUFBRSxTQUFTO29DQUNmLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7b0NBQzNCLEtBQUssRUFBRSxZQUFZO2lDQUNwQjs2QkFDRjt5QkFDRixDQUFDO3dCQUNGLGVBQWUsQ0FBQyxlQUFlLEVBQUUseUJBQXlCLEVBQUUsSUFBSSxFQUFFOzRCQUNoRSxVQUFVLEVBQUU7Z0NBQ1Y7b0NBQ0UsSUFBSSxFQUFFLFNBQVM7b0NBQ2YsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtvQ0FDM0IsS0FBSyxFQUFFLGNBQWM7aUNBQ3RCOzZCQUNGO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IFJvb3RDb25maWcgYXMgQ29udGFjdE1hbmFnZW1lbnRSb290Q29uZmlnIH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL2NvbnRhY3QtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBBWFBFbnRpdHksIEFYUEVudGl0eVF1ZXJ5VHlwZSwgY3JlYXRlQWxsUXVlcnlWaWV3LCBjcmVhdGVRdWVyeVZpZXcgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQge1xuICBlbnRpdHlEZXRhaWxzQ3J1ZEFjdGlvbnMsXG4gIGVudGl0eURldGFpbHNSZWZlcmVuY2VDb25kaXRpb24sXG4gIGVudGl0eURldGFpbHNSZWZlcmVuY2VDcmVhdGVBY3Rpb25zLFxuICBlbnRpdHlEZXRhaWxzU2ltcGxlQ29uZGl0aW9uLFxuICBlbnRpdHlNYXN0ZXJDcnVkQWN0aW9ucyxcbiAgZW50aXR5TWFzdGVyUmVjb3JkQWN0aW9ucyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1QYXJ0eVNlcnZpY2UgfSBmcm9tICcuL3BhcnR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNUGFydHlNYW5hZ2VtZW50UGFydHlFbnRpdHlNb2RlbCB9IGZyb20gJy4vcGFydHkudHlwZXMnO1xuXG4vLyNlbmRyZWdpb25cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnR5RmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBQcm9taXNlPEFYUEVudGl0eSB8IG51bGw+IHtcbiAgY29uc3QgZGF0YVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQVhNUGFydHlTZXJ2aWNlKTtcbiAgY29uc3QgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdG9yLmdldChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIC8vIFJlc29sdmUgdGV4dHMgZm9yIHNlbGVjdCBvcHRpb24gbGFiZWxzXG4gIC8vIFVzaW5nIHN0YXRpYyBrZXlzIGVuc3VyZXMgaTE4biBwaXBlcy9zZXJ2aWNlcyByZW5kZXIgcHJvcGVybHlcbiAgY29uc3QgcGFydHlUeXBlSW5kaXZpZHVhbFRleHQgPSBhd2FpdCB0cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKFxuICAgICdAcGFydHktbWFuYWdlbWVudDpwYXJ0eS5wcm9wZXJ0aWVzLnR5cGUub3B0aW9ucy5pbmRpdmlkdWFsJyxcbiAgKTtcbiAgY29uc3QgcGFydHlUeXBlT3JnYW5pemF0aW9uVGV4dCA9IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoXG4gICAgJ0BwYXJ0eS1tYW5hZ2VtZW50OnBhcnR5LnByb3BlcnRpZXMudHlwZS5vcHRpb25zLm9yZ2FuaXphdGlvbicsXG4gICk7XG5cbiAgY29uc3QgZW50aXR5RGVmOiBBWFBFbnRpdHkgPSB7XG4gICAgbW9kdWxlOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgIG5hbWU6IFJvb3RDb25maWcuZW50aXRpZXMucGFydHkubmFtZSxcbiAgICB0aXRsZTogUm9vdENvbmZpZy5lbnRpdGllcy5wYXJ0eS50aXRsZSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtdXNlcicsXG4gICAgZm9ybWF0czoge1xuICAgICAgaW5kaXZpZHVhbDogUm9vdENvbmZpZy5lbnRpdGllcy5wYXJ0eS50aXRsZSxcbiAgICAgIGRpc3BsYXlOYW1lOiAnSW5mb3JtYXRpb24nLFxuICAgICAgcGx1cmFsOiBSb290Q29uZmlnLmVudGl0aWVzLnBhcnR5LnRpdGxlUGx1cmFsLFxuICAgICAgc2VhcmNoUmVzdWx0OiB7XG4gICAgICAgIHRpdGxlOiAne3sgZGlzcGxheU5hbWUgfX0nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0BwYXJ0eS1tYW5hZ2VtZW50OnBhcnR5LnNlYXJjaC1yZXN1bHQtZGVzY3JpcHRpb24nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFtcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgbmFtZTogJ2NvbXB1dGVkLXByb3BlcnR5JyxcbiAgICAgIC8vICAgb3B0aW9uczoge1xuICAgICAgLy8gICAgIGZpZWxkczogW1xuICAgICAgLy8gICAgICAge1xuICAgICAgLy8gICAgICAgICBuYW1lOiAncHJpbWFyeUNvbnRhY3QnLFxuICAgICAgLy8gICAgICAgICB0aXRsZTogYFByaW1hcnkgQ29udGFjdGAsXG4gICAgICAvLyAgICAgICAgIGdyb3VwOiB7XG4gICAgICAvLyAgICAgICAgICAgaWQ6ICdjb21wdXRlZC1wcm9wZXJ0aWVzJyxcbiAgICAgIC8vICAgICAgICAgICB0aXRsZTogJ1ByaW1hcmllcycsXG4gICAgICAvLyAgICAgICAgIH0sXG4gICAgICAvLyAgICAgICAgIHNob3dBczoge1xuICAgICAgLy8gICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmNvbnRhY3QsXG4gICAgICAvLyAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgLy8gICAgICAgICAgICAgdHlwZTogXCJlbWFpbFwiLFxuICAgICAgLy8gICAgICAgICAgICAgd2lkdGg6IFwiMzAwcHhcIixcbiAgICAgIC8vICAgICAgICAgICAgIGhhc0xhYmVsOiBmYWxzZSxcbiAgICAgIC8vICAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgLy8gICAgICAgICAgIH0sXG4gICAgICAvLyAgICAgICAgIH0sXG4gICAgICAvLyAgICAgICAgIGNvbmRpdGlvbnM6IFtcbiAgICAgIC8vICAgICAgICAgICB7XG4gICAgICAvLyAgICAgICAgICAgICBuYW1lOiAnaXNQcmltYXJ5JyxcbiAgICAgIC8vICAgICAgICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdlcXVhbCcgfSxcbiAgICAgIC8vICAgICAgICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgLy8gICAgICAgICAgIH0sXG4gICAgICAvLyAgICAgICAgIF0sXG4gICAgICAvLyAgICAgICAgIHZhbHVlOiAne3sgY29udGV4dC5ldmFsKFwiY29udGFjdHMue3ZhbHVlfVwiKT8uWzBdPy52YWx1ZX19JyxcbiAgICAgIC8vICAgICAgIH0sXG4gICAgICAvLyAgICAgXSxcbiAgICAgIC8vICAgfSxcbiAgICAgIC8vIH0sXG4gICAgXSxcbiAgICBncm91cHM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdiYXNpYy1pbmZvJyxcbiAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UuYmFzaWMtaW5mbycsXG4gICAgICB9LFxuICAgIF0sXG4gICAgcHJvcGVydGllczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAndHlwZUlkJyxcbiAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5jb21tb24udHlwZScsXG4gICAgICAgIGdyb3VwSWQ6ICdiYXNpYy1pbmZvJyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSwgaW5saW5lOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICdpZCcsXG4gICAgICAgICAgICAgIHRleHRGaWVsZDogJ3RpdGxlJyxcbiAgICAgICAgICAgICAgZGF0YVNvdXJjZTogW1xuICAgICAgICAgICAgICAgIHsgaWQ6ICdpbmRpdmlkdWFsJywgdGl0bGU6IHBhcnR5VHlwZUluZGl2aWR1YWxUZXh0IH0sXG4gICAgICAgICAgICAgICAgeyBpZDogJ29yZ2FuaXphdGlvbicsIHRpdGxlOiBwYXJ0eVR5cGVPcmdhbml6YXRpb25UZXh0IH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIGV4cG9zZTogW1xuICAgICAgICAgICAgICAgIHsgc291cmNlOiAnaWQnLCB0YXJnZXQ6ICd0eXBlLmlkJyB9LFxuICAgICAgICAgICAgICAgIHsgc291cmNlOiAndGl0bGUnLCB0YXJnZXQ6ICd0eXBlLnRpdGxlJyB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB2YWxpZGF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJ1bGU6ICdyZXF1aXJlZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkaXNwbGF5TmFtZScsXG4gICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6dGVybXMuY29tbW9uLmRpc3BsYXktbmFtZScsXG4gICAgICAgIGdyb3VwSWQ6ICdiYXNpYy1pbmZvJyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSwgaW5saW5lOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcnVsZTogJ3JlcXVpcmVkJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2ZpcnN0TmFtZScsXG4gICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6dGVybXMuY29udGFjdC5maXJzdC1uYW1lJyxcbiAgICAgICAgZ3JvdXBJZDogJ2Jhc2ljLWluZm8nLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9LCBpbmxpbmU6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBoaWRkZW46ICd7eyBjb250ZXh0LmV2YWwoXCJ0eXBlLmlkXCIpID09IFwib3JnYW5pemF0aW9uXCIgIH19JyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdsYXN0TmFtZScsXG4gICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6dGVybXMuY29udGFjdC5sYXN0LW5hbWUnLFxuICAgICAgICBncm91cElkOiAnYmFzaWMtaW5mbycsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0sIGlubGluZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGhpZGRlbjogJ3t7IGNvbnRleHQuZXZhbChcInR5cGUuaWRcIikgPT0gXCJvcmdhbml6YXRpb25cIiAgfX0nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2xlZ2FsTmFtZScsXG4gICAgICAgIHRpdGxlOiAnQHBhcnR5LW1hbmFnZW1lbnQ6cGFydHkucHJvcGVydGllcy5sZWdhbC1uYW1lLnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ2Jhc2ljLWluZm8nLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9LCBpbmxpbmU6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBoaWRkZW46ICd7eyBjb250ZXh0LmV2YWwoXCJ0eXBlLmlkXCIpID09IFwiaW5kaXZpZHVhbFwiICB9fScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgY29sdW1uczogW1xuICAgICAgeyBuYW1lOiAnZGlzcGxheU5hbWUnLCBvcHRpb25zOiB7IHdpZHRoOiAnMzAwcHgnIH0gfSxcbiAgICAgIHsgbmFtZTogJ3R5cGVJZCcsIG9wdGlvbnM6IHsgZGF0YVBhdGg6ICd0eXBlLnRpdGxlJyB9IH0sXG4gICAgICB7IG5hbWU6ICdsZWdhbE5hbWUnLCBvcHRpb25zOiB7IHdpZHRoOiAnMzAwcHgnIH0gfSxcbiAgICBdLFxuICAgIHJlbGF0ZWRFbnRpdGllczogW1xuICAgICAge1xuICAgICAgICBlbnRpdHk6IGAke0NvbnRhY3RNYW5hZ2VtZW50Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtDb250YWN0TWFuYWdlbWVudFJvb3RDb25maWcuZW50aXRpZXMuY29udGFjdE1ldGhvZC5uYW1lfWAsXG4gICAgICAgIHRpdGxlOiAnQHBhcnR5LW1hbmFnZW1lbnQ6cGFydHkucmVsYXRlZC1lbnRpdGllcy5jb250YWN0cy50aXRsZScsXG4gICAgICAgIGNvbHVtbnM6IFsnbWV0aG9kVHlwZUlkJywgJ3ZhbHVlJywgJ2lzUHJpbWFyeScsICdpc1ZlcmlmaWVkJywgJ25vdGVzJ10sXG4gICAgICAgIGNvbmRpdGlvbnM6IFsuLi5lbnRpdHlEZXRhaWxzUmVmZXJlbmNlQ29uZGl0aW9uKFJvb3RDb25maWcuZW50aXRpZXMucGFydHkuZnVsbG5hbWUpXSxcbiAgICAgICAgYWN0aW9uczogWy4uLmVudGl0eURldGFpbHNSZWZlcmVuY2VDcmVhdGVBY3Rpb25zKFJvb3RDb25maWcuZW50aXRpZXMucGFydHkuZnVsbG5hbWUpXSxcbiAgICAgICAgbGF5b3V0OiB7IHR5cGU6ICd0YWItbGlzdCcgfSxcbiAgICAgICAgcGVyc2lzdGVuY2U6IHtcbiAgICAgICAgICBkYXRhUGF0aDogJ2NvbnRhY3RzJyxcbiAgICAgICAgICBzdHJhdGVneTogJ3JlZmVyZW5jZWQnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZW50aXR5OiAnTG9jYXRpb25NYW5hZ2VtZW50LkxvY2F0aW9uJyxcbiAgICAgICAgdGl0bGU6ICdAcGFydHktbWFuYWdlbWVudDpwYXJ0eS5yZWxhdGVkLWVudGl0aWVzLmxvY2F0aW9ucy50aXRsZScsXG4gICAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAgICAndGl0bGUnLFxuICAgICAgICAgICdsb2NhdGlvblR5cGVJZCcsXG4gICAgICAgICAgJ3N0cmVldDEnLFxuICAgICAgICAgICdjaXR5SWQnLFxuICAgICAgICAgICdzdGF0ZUlkJyxcbiAgICAgICAgICAnY291bnRyeUlkJyxcbiAgICAgICAgICAncG9zdGFsQ29kZScsXG4gICAgICAgICAgJ2lzUHJpbWFyeScsXG4gICAgICAgICAgJ2lzQWN0aXZlJyxcbiAgICAgICAgXSxcbiAgICAgICAgY29uZGl0aW9uczogWy4uLmVudGl0eURldGFpbHNSZWZlcmVuY2VDb25kaXRpb24oUm9vdENvbmZpZy5lbnRpdGllcy5wYXJ0eS5mdWxsbmFtZSldLFxuICAgICAgICBhY3Rpb25zOiBbLi4uZW50aXR5RGV0YWlsc1JlZmVyZW5jZUNyZWF0ZUFjdGlvbnMoUm9vdENvbmZpZy5lbnRpdGllcy5wYXJ0eS5mdWxsbmFtZSldLFxuICAgICAgICBsYXlvdXQ6IHsgdHlwZTogJ3RhYi1saXN0JyB9LFxuICAgICAgICBwZXJzaXN0ZW5jZToge1xuICAgICAgICAgIGRhdGFQYXRoOiAnbG9jYXRpb25zJyxcbiAgICAgICAgICBzdHJhdGVneTogJ3JlZmVyZW5jZWQnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZW50aXR5OiBgJHtSb290Q29uZmlnLm1vZHVsZS5uYW1lfS4ke1Jvb3RDb25maWcuZW50aXRpZXMucGFydHlSb2xlLm5hbWV9YCxcbiAgICAgICAgdGl0bGU6ICdAcGFydHktbWFuYWdlbWVudDpwYXJ0eS5yZWxhdGVkLWVudGl0aWVzLnJvbGVzLnRpdGxlJyxcbiAgICAgICAgY29sdW1uczogWydyb2xlSWQnLCAnc3RhdHVzJywgJ3NpbmNlJywgJ3VudGlsJywgJ25vdGVzJ10sXG4gICAgICAgIGNvbmRpdGlvbnM6IFtlbnRpdHlEZXRhaWxzU2ltcGxlQ29uZGl0aW9uKCdwYXJ0eUlkJyldLFxuICAgICAgICBhY3Rpb25zOiBbLi4uZW50aXR5RGV0YWlsc0NydWRBY3Rpb25zKCdwYXJ0eUlkJyldLFxuICAgICAgICBsYXlvdXQ6IHsgdHlwZTogJ3BhZ2UtbGlzdCcgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGVudGl0eTogYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uJHtSb290Q29uZmlnLmVudGl0aWVzLnBhcnR5SWRlbnRpZmllci5uYW1lfWAsXG4gICAgICAgIHRpdGxlOiAnQHBhcnR5LW1hbmFnZW1lbnQ6cGFydHkucmVsYXRlZC1lbnRpdGllcy5pZGVudGlmaWVycy50aXRsZScsXG4gICAgICAgIGNvbHVtbnM6IFsndHlwZUlkJywgJ3ZhbHVlJywgJ2NvdW50cnlJZCcsICdpc1ByaW1hcnknLCAndmFsaWRGcm9tJywgJ3ZhbGlkVG8nLCAnYXR0YWNobWVudHMnXSxcbiAgICAgICAgY29uZGl0aW9uczogW2VudGl0eURldGFpbHNTaW1wbGVDb25kaXRpb24oJ3BhcnR5SWQnKV0sXG4gICAgICAgIGFjdGlvbnM6IFsuLi5lbnRpdHlEZXRhaWxzQ3J1ZEFjdGlvbnMoJ3BhcnR5SWQnKV0sXG4gICAgICAgIGxheW91dDogeyB0eXBlOiAndGFiLWxpc3QnIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBlbnRpdHk6IGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy5wYXJ0eVJlbGF0aW9uc2hpcC5uYW1lfWAsXG4gICAgICAgIHRpdGxlOiAnQHBhcnR5LW1hbmFnZW1lbnQ6cGFydHkucmVsYXRlZC1lbnRpdGllcy5yZWxhdGlvbnNoaXBzLnRpdGxlJyxcbiAgICAgICAgY29sdW1uczogWyd0b1BhcnR5SWQnLCAndHlwZUlkJywgJ3ZhbGlkRnJvbScsICd2YWxpZFRvJywgJ25vdGVzJ10sXG4gICAgICAgIGNvbmRpdGlvbnM6IFtlbnRpdHlEZXRhaWxzU2ltcGxlQ29uZGl0aW9uKCdmcm9tUGFydHlJZCcpXSxcbiAgICAgICAgYWN0aW9uczogWy4uLmVudGl0eURldGFpbHNDcnVkQWN0aW9ucygnZnJvbVBhcnR5SWQnKV0sXG4gICAgICAgIGxheW91dDogeyB0eXBlOiAncGFnZS1saXN0JyB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvbW1hbmRzOiB7XG4gICAgICBjcmVhdGU6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGRhdGE6IEFYTVBhcnR5TWFuYWdlbWVudFBhcnR5RW50aXR5TW9kZWwpID0+IHtcbiAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBkYXRhU2VydmljZS5pbnNlcnRPbmUoZGF0YSk7XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IHJlcyB9O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRlbGV0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS5kZWxldGVPbmUoaWQpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVwZGF0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZGF0YTogQVhNUGFydHlNYW5hZ2VtZW50UGFydHlFbnRpdHlNb2RlbCkgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS51cGRhdGVPbmUoZGF0YS5pZCwgZGF0YSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgcXVlcmllczoge1xuICAgICAgYnlLZXk6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZGF0YVNlcnZpY2UuZ2V0T25lKGlkKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLlNpbmdsZSxcbiAgICAgIH0sXG4gICAgICBsaXN0OiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChlOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgZGF0YVNlcnZpY2UucXVlcnkoZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IEFYUEVudGl0eVF1ZXJ5VHlwZS5MaXN0LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGludGVyZmFjZXM6IHtcbiAgICAgIG1hc3Rlcjoge1xuICAgICAgICBjcmVhdGU6IHtcbiAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogJ2Jhc2ljLWluZm8nLFxuICAgICAgICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0eXBlSWQnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2Rpc3BsYXlOYW1lJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA2LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdmaXJzdE5hbWUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDMsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAzLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2xhc3ROYW1lJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiAzLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdsZWdhbE5hbWUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA1LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ25vdGVzJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiAxMixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDgsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZToge1xuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnYmFzaWMtaW5mbycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAndHlwZUlkJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA2LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdkaXNwbGF5TmFtZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnZmlyc3ROYW1lJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiAzLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdsYXN0TmFtZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMyxcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDQsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnbGVnYWxOYW1lJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA2LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdub3RlcycsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA4LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBzaW5nbGU6IHtcbiAgICAgICAgICB0aXRsZTogJ3t7ZGlzcGxheU5hbWV9fScsXG4gICAgICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdiYXNpYy1pbmZvJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0eXBlSWQnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAxLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2Rpc3BsYXlOYW1lJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA2LFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogMixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdmaXJzdE5hbWUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDMsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiAzLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2xhc3ROYW1lJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiAzLFxuICAgICAgICAgICAgICAgICAgICBvcmRlcjogNCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdsZWdhbE5hbWUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA1LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ25vdGVzJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiAxMixcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDgsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWN0aW9uczogWy4uLmVudGl0eU1hc3RlclJlY29yZEFjdGlvbnMoKV0sXG4gICAgICAgIH0sXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBhY3Rpb25zOiBbLi4uZW50aXR5TWFzdGVyQ3J1ZEFjdGlvbnMoKV0sXG4gICAgICAgICAgdmlld3M6IFtcbiAgICAgICAgICAgIGNyZWF0ZUFsbFF1ZXJ5Vmlldyh7XG4gICAgICAgICAgICAgIHNvcnRzOiBbeyBuYW1lOiAnZGlzcGxheU5hbWUnLCBkaXI6ICdhc2MnIH1dLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjcmVhdGVRdWVyeVZpZXcoJ2luZGl2aWR1YWxzJywgcGFydHlUeXBlSW5kaXZpZHVhbFRleHQsIHRydWUsIHtcbiAgICAgICAgICAgICAgY29uZGl0aW9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICd0eXBlLmlkJyxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdlcXVhbCcgfSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnaW5kaXZpZHVhbCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY3JlYXRlUXVlcnlWaWV3KCdvcmdhbml6YXRpb25zJywgcGFydHlUeXBlT3JnYW5pemF0aW9uVGV4dCwgdHJ1ZSwge1xuICAgICAgICAgICAgICBjb25kaXRpb25zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ3R5cGUuaWQnLFxuICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHsgdHlwZTogJ2VxdWFsJyB9LFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICdvcmdhbml6YXRpb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBlbnRpdHlEZWY7XG59XG4iXX0="],"names":["RootConfig","ContactManagementRootConfig"],"mappings":"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"}