@acorex/platform 20.7.2 → 20.7.4

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 (30) hide show
  1. package/common/index.d.ts +172 -3
  2. package/fesm2022/acorex-platform-common.mjs +164 -3
  3. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-layout-builder.mjs +1 -1
  5. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-layout-components.mjs +2 -2
  7. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-layout-views.mjs +1 -1
  9. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  10. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-C9mOMYwZ.mjs → acorex-platform-layout-widgets-file-list-popup.component-BfV3spe3.mjs} +3 -3
  11. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-C9mOMYwZ.mjs.map → acorex-platform-layout-widgets-file-list-popup.component-BfV3spe3.mjs.map} +1 -1
  12. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DQTOsLlw.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs} +3 -3
  13. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs.map +1 -0
  14. package/fesm2022/acorex-platform-layout-widgets.mjs +281 -131
  15. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  16. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Wai8B4-y.mjs → acorex-platform-themes-default-entity-master-create-view.component-CJcbkSBF.mjs} +2 -2
  17. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CJcbkSBF.mjs.map +1 -0
  18. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-BxR89ekp.mjs → acorex-platform-themes-default-entity-master-modify-view.component-DAFQ4UI9.mjs} +2 -2
  19. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DAFQ4UI9.mjs.map +1 -0
  20. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BAr8i1xL.mjs → acorex-platform-themes-default-entity-master-single-view.component-CwHHYmiK.mjs} +2 -2
  21. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CwHHYmiK.mjs.map +1 -0
  22. package/fesm2022/acorex-platform-themes-default.mjs +6 -6
  23. package/fesm2022/acorex-platform-themes-shared.mjs +1 -1
  24. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  25. package/layout/widgets/index.d.ts +36 -20
  26. package/package.json +5 -5
  27. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DQTOsLlw.mjs.map +0 -1
  28. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Wai8B4-y.mjs.map +0 -1
  29. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BxR89ekp.mjs.map +0 -1
  30. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BAr8i1xL.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-layout-views.mjs","sources":["../tmp-esm2022/layout/views/lib/layouts/page/page-layout.base.js","../tmp-esm2022/layout/views/lib/layouts/page/page-layout.component.js","../tmp-esm2022/layout/views/lib/layouts/page/page-layout-base.component.js","../tmp-esm2022/layout/views/lib/layouts/popup/popup-layout.base.js","../tmp-esm2022/layout/views/lib/layouts/popup/popup-layout.component.js","../tmp-esm2022/layout/views/lib/layouts/popup/popup-layout-base.component.js","../tmp-esm2022/layout/views/lib/views/details-view/details-view.viewmodel.js","../tmp-esm2022/layout/views/lib/views/details-view/details-view.component.js","../tmp-esm2022/layout/views/acorex-platform-layout-views.js"],"sourcesContent":["export class AXPPageLayoutBase {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1sYXlvdXQuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9saWIvbGF5b3V0cy9wYWdlL3BhZ2UtbGF5b3V0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixpQkFBaUI7Q0FnRHRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEJhY2tCdXR0b24sIEFYUEJhZGdlLCBBWFBCcmVhZGNydW1iSXRlbSwgQVhQRXhlY3V0ZUNvbW1hbmQsIEFYUFBhZ2VTdGF0dXMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBQYWdlTGF5b3V0QmFzZSB7XG4gIGFic3RyYWN0IHByaW1hcnlNZW51SXRlbXM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcblxuICBhYnN0cmFjdCBzZWNvbmRhcnlNZW51SXRlbXM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcblxuICBhYnN0cmFjdCB0aXRsZUFjdGlvbnM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcblxuICBhYnN0cmFjdCBoYXNUaXRsZUFjdGlvbnM6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNQcmltYXJ5QWN0aW9uczogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGhhc1NlY29uZGFyeUFjdGlvbnM6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNBY3Rpb25zOiBTaWduYWw8Ym9vbGVhbj47XG5cbiAgYWJzdHJhY3QgYnJlYWRjcnVtYnM6IFNpZ25hbDxBWFBCcmVhZGNydW1iSXRlbVtdPjtcblxuICBhYnN0cmFjdCB0aXRsZTogU2lnbmFsPHN0cmluZz47XG5cbiAgYWJzdHJhY3QgdGl0bGVJY29uOiBTaWduYWw8c3RyaW5nIHwgbnVsbD47XG5cbiAgYWJzdHJhY3QgaGFzVGl0bGU6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNUaXRsZUljb246IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNEZXNjcmlwdGlvbjogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGRlc2NyaXB0aW9uOiBTaWduYWw8c3RyaW5nIHwgbnVsbD47XG5cbiAgYWJzdHJhY3QgaGFzQnJlYWRjcnVtYnM6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNCYWRnZTogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGJhZGdlOiBTaWduYWw8QVhQQmFkZ2UgfCBudWxsPjtcblxuICBhYnN0cmFjdCBoYXNTdGF0dXM6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBzdGF0dXM6IFNpZ25hbDxBWFBQYWdlU3RhdHVzIHwgbnVsbD47XG5cbiAgYWJzdHJhY3QgaGFzQmFja0J1dHRvbjogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGJhY2tCdXR0b246IFNpZ25hbDxBWFBCYWNrQnV0dG9uIHwgbnVsbD47XG5cbiAgYWJzdHJhY3Qgb25CYWNrQnV0dG9uQ2xpY2s6ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IHN0YXJ0U2lkZVRvZ2dsZTogKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgZXhlY3V0ZTogKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, inject, viewChild, ViewEncapsulation, } from '@angular/core';\n//\nimport { AXCommonModule } from '@acorex/cdk/common';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXPStickyDirective } from '@acorex/platform/common';\nimport { AXPComponentSlotModule } from '@acorex/platform/layout/components';\n//\nimport { AXDrawerContainerDirective, AXDrawerDirectiveModule } from '@acorex/cdk/drawer';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPDeviceService } from '@acorex/platform/core';\nimport { AXPStatusChipComponent } from '@acorex/platform/layout/widgets';\nimport { AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutHeaderComponent, } from '@acorex/platform/layout/components';\nimport { AXPCommandService } from '@acorex/platform/runtime';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXPPageLayoutBase } from './page-layout.base';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/cdk/drawer\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/breadcrumbs\";\nimport * as i5 from \"@acorex/components/dropdown\";\nimport * as i6 from \"@acorex/components/button\";\nimport * as i7 from \"@acorex/core/translation\";\nimport * as i8 from \"@acorex/platform/layout/components\";\nexport class AXPPageLayoutComponent {\n constructor() {\n this.page = inject(AXPPageLayoutBase, { optional: true });\n this.layoutService = inject(AXPLayoutThemeService);\n this.deviceService = inject(AXPDeviceService);\n this.startSideDrawer = viewChild('startSideDrawer', ...(ngDevMode ? [{ debugName: \"startSideDrawer\" }] : []));\n this.workflow = inject(AXPWorkflowService);\n this.commandService = inject(AXPCommandService);\n this.#initialize = afterNextRender(async () => {\n this.checkScrollableContent();\n });\n this.#effect = effect(() => {\n this.page?.title();\n this.page?.description();\n this.checkScrollableContent();\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n #initialize;\n #effect;\n checkScrollableContent() {\n const content = document.querySelector('axp-page-content');\n if (content && content.scrollHeight >= content.clientHeight) {\n content.classList.add('--scrollable');\n }\n }\n handleActionClick(item) {\n if (item.command && (item.items?.length ?? 0) == 0) {\n this.execute(item.command);\n }\n }\n toggleStartSide() {\n this.startSideDrawer()?.toggle();\n }\n handleSecondaryActionClick(item) {\n if (item.command) {\n this.execute(item.command);\n }\n }\n handleBackdropClick(e) {\n e.nativeEvent.preventDefault();\n e.nativeEvent.stopPropagation();\n e.component.hide();\n return false;\n }\n async execute(command) {\n const reserved = ['navigate'];\n if (reserved.includes(command.name)) {\n await this.workflow.execute(command.name, { options: command.options });\n return;\n }\n if (this.commandService.exists(command.name)) {\n await this.commandService.execute(command.name, command.options ?? {});\n }\n else {\n await this.page?.execute(command);\n }\n }\n handleOnBackdropClick(event) {\n event.stopPropagation();\n this.startSideDrawer()?.hide();\n }\n //#region ---------------- Status Helpers ----------------\n getEntityData() {\n // Get entity data from page context if available\n if (this.page && 'getEntityData' in this.page && typeof this.page.getEntityData === 'function') {\n return this.page.getEntityData();\n }\n return null;\n }\n async handleStatusTransition(transition) {\n // Convert status transition to command and execute\n await this.execute({\n name: 'update-status',\n options: {\n transition,\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPageLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.16\", type: AXPPageLayoutComponent, isStandalone: true, selector: \"axp-page-layout\", providers: [], viewQueries: [{ propertyName: \"startSideDrawer\", first: true, predicate: [\"startSideDrawer\"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.AXDrawerContainerDirective }], ngImport: i0, template: \"<!-------- Begin Start Side Drawer -------->\\n<div id=\\\"axp-drawer-start\\\" [mode]=\\\"deviceService.isSmall() ? 'overlay' : 'push'\\\" [transition]=\\\"250\\\" axDrawerItem\\n [backDrop]=\\\"true\\\" (onBackdropClick)=\\\"handleBackdropClick($event)\\\" #startSideDrawer=\\\"axDrawerItem\\\"\\n [backdropClass]=\\\"'ax-bg-darkest/75'\\\" [collapsed]=\\\"deviceService.isSmall()\\\" drawerLocation=\\\"start\\\"\\n class=\\\"ax-z-50 ax-h-full\\\">\\n <ng-content select=\\\"axp-layout-start-side\\\"></ng-content>\\n</div>\\n<!-------- Finish Start Side Drawer -------->\\n<!--------------------------------------------------------------->\\n<!-------- Begin Main Layout Container -------->\\n<axp-layout-container id=\\\"axp-page-layout\\\" #container>\\n <!-------- Begin Page Header -------->\\n <axp-layout-header id=\\\"axp-page-header\\\" *translate=\\\"let t\\\" #sticky=\\\"axpSticky\\\" [axpSticky]=\\\"'axp-is-sticky'\\\"\\n [stickyOffset]=\\\"50\\\" [stickyParent]=\\\"container.hostElement\\\">\\n <!-------- Begin Back Button (Mobile Only) -------->\\n @if (page?.hasBackButton() && deviceService.isSmall()) {\\n <ax-button id=\\\"axp-btn-back\\\" [look]=\\\"'blank'\\\" class=\\\"ax-sm ax-w-fit ax-ms-1\\\" color=\\\"secondary\\\"\\n (click)=\\\"page?.onBackButtonClick()\\\" [text]=\\\"page?.backButton()?.title\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-chevron-left rtl:ax-rotate-180\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }\\n <!-------- Finish Back Button -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Bar -------->\\n <axp-layout-title-bar id=\\\"axp-title-bar\\\">\\n <!-------- Begin Title Section -------->\\n <div class=\\\"ax-flex ax-flex-col ax-transition\\\">\\n <!-------- Begin Breadcrumbs -------->\\n @if (page?.hasBreadcrumbs() && !deviceService.isSmall()) {\\n <ax-breadcrumbs id=\\\"axp-breadcrumb\\\" class=\\\"ax-mb-1\\\">\\n @for (item of page?.breadcrumbs(); track $index) {\\n <ax-breadcrumbs-item [attr.id]=\\\"'axp-breadcrumb-item-' + $index\\\" [active]=\\\"$last\\\"\\n (click)=\\\"item.command ? execute(item.command) : null\\\">\\n @if (item.icon) {\\n <i [class]=\\\"item.icon\\\"></i>\\n }\\n {{ t(item.title) | async }}\\n </ax-breadcrumbs-item>\\n }\\n <ng-template #divider>\\n <i class=\\\"fa-regular fa-chevron-right rtl:ax-rotate-180 fa-sm\\\"></i>\\n </ng-template>\\n </ax-breadcrumbs>\\n }\\n <!-------- Finish Breadcrumbs -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Container -------->\\n <div class=\\\"__title-container\\\">\\n <!-------- Begin Page Title -------->\\n @if (page?.hasTitle()) {\\n <axp-layout-title id=\\\"axp-page-title\\\">\\n @if (page?.hasTitleIcon()) {\\n <ax-icon [icon]=\\\"page?.titleIcon()!\\\" class=\\\"ax-me-2\\\"></ax-icon>\\n }\\n {{ t(page?.title()) | async }}\\n </axp-layout-title>\\n }\\n <!-------- Finish Page Title -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Actions -------->\\n @if (page?.hasTitleActions()) {\\n <ax-button id=\\\"axp-btn-title-actions\\\" [look]=\\\"'blank'\\\" class=\\\"ax-sm -ax-mx-2\\\">\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-caret-down fa-fw\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of page?.titleActions(); track $index) {\\n <ng-container>\\n <ax-button-item [attr.id]=\\\"'axp-btn-title-action-' + (sub.name || $index)\\\"\\n [text]=\\\"(t(sub.title) | async)!\\\" [color]=\\\"sub.color\\\" [disabled]=\\\"sub.disabled\\\"\\n [selected]=\\\"sub.command?.metadata?.['isSelected']\\\" (onClick)=\\\"handleActionClick(sub)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n @if (sub.command?.metadata?.['isSelected']) {\\n <ax-suffix class=\\\"ax-ms-2\\\">\\n <ax-icon icon=\\\"fa-solid fa-check\\\"></ax-icon>\\n </ax-suffix>\\n }\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n </ng-container>\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n <!-------- Finish Title Actions -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Badge -------->\\n @if (page?.hasBadge()) {\\n <div id=\\\"axp-page-badge\\\" class=\\\"__title-badge --{{ page?.badge()?.color }}\\\"\\n [attr.title]=\\\"page?.badge()?.description\\\">\\n <i class=\\\"fa-solid fa-circle\\\"></i>\\n {{ page?.badge()?.title }}\\n </div>\\n }\\n <!-------- Finish Title Badge -------->\\n\\n <!-------- Begin Page Status -------->\\n\\n @if (page?.hasStatus()) {\\n <axp-status-chip\\n [value]=\\\"page?.status()?.value ?? null\\\"\\n [readonly]=\\\"page?.status()?.readonly || false\\\"\\n [definitionKey]=\\\"page?.status()?.definitionKey ?? null\\\"\\n [entityData]=\\\"getEntityData()\\\"\\n (transitionExecuted)=\\\"handleStatusTransition($event)\\\"\\n class=\\\"__title-status\\\"\\n ></axp-status-chip>\\n }\\n <!-------- Finish Page Status -------->\\n\\n </div>\\n <!-------- Finish Title Container -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Description -------->\\n @if (page?.hasDescription()) {\\n <axp-layout-description id=\\\"axp-page-description\\\">\\n {{ t(page?.description()) | async }}</axp-layout-description>\\n }\\n <!-------- Finish Page Description -------->\\n </div>\\n <!-------- Finish Title Section -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Actions -------->\\n <axp-layout-actions id=\\\"axp-page-actions\\\" class=\\\"ax-shrink-0\\\">\\n <axp-component-slot name=\\\"page-header-actions\\\"></axp-component-slot>\\n <!-------- Begin Primary Actions -------->\\n @if (page?.hasPrimaryActions()) {\\n @for (item of page?.primaryMenuItems(); track $index) {\\n @if (item.visible != false) {\\n <ax-button [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title)\\\" [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [iconOnly]=\\\"deviceService.isSmall()\\\" [disabled]=\\\"item.disabled\\\" [text]=\\\"(t(item.title) | async)!\\\"\\n [look]=\\\"'solid'\\\" [color]=\\\"item.color\\\" (onClick)=\\\"handleActionClick(item)\\\">\\n <ax-prefix>\\n <i class=\\\"{{ item.icon }}\\\"></i>\\n </ax-prefix>\\n @if (item?.items) {\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of item?.items; track $index) {\\n @if (sub.visible != false) {\\n <ax-button-item [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title) + '-' + (sub.name || sub.title)\\\"\\n [text]=\\\"(t(sub.title) | async)!\\\" [color]=\\\"sub.color\\\" [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"handleActionClick(sub)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n }\\n </ax-button>\\n }\\n }\\n }\\n <!-------- Finish Primary Actions -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Secondary Actions -------->\\n @if (page?.hasSecondaryActions()) {\\n <ax-button id=\\\"axp-btn-secondary\\\" [class.ax-sm]=\\\"deviceService.isSmall()\\\" [iconOnly]=\\\"deviceService.isSmall()\\\"\\n [text]=\\\"'@general:terms.interface.actions' | translate | async\\\"\\n [look]=\\\"deviceService.isSmall() ? 'blank' : 'solid'\\\" [color]=\\\"'default'\\\">\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-ellipsis-vertical\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (item of page?.secondaryMenuItems(); track $index) {\\n @if (item.visible != false) {\\n <ax-button-item [attr.id]=\\\"'axp-btn-secondary-' + (item.name || item.title)\\\"\\n [text]=\\\"(item.title | translate | async)!\\\" [color]=\\\"item.color\\\" [disabled]=\\\"item.disabled\\\"\\n (onClick)=\\\"handleSecondaryActionClick(item)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n <!-------- Finish Secondary Actions -------->\\n </axp-layout-actions>\\n <!-------- Finish Page Actions -------->\\n </axp-layout-title-bar>\\n <!-------- Finish Title Bar -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Toolbar / Navbar -------->\\n @if (!sticky.isSticky) {}\\n <ng-content select=\\\"axp-page-toolbar\\\"></ng-content>\\n <!-------- Finish Page Toolbar / Navbar -------->\\n </axp-layout-header>\\n <!-------- Finish Page Header -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Content -------->\\n <ng-content select=\\\"axp-page-content\\\"></ng-content>\\n <!-------- Finish Page Content -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Footer -------->\\n <axp-page-footer-container id=\\\"axp-page-footer-container\\\"\\n [ngStyle]=\\\"{ display: tt.isEmpty() && prefixSlot.isEmpty() && suffixSlot.isEmpty() ? 'none' : 'block' }\\\">\\n <axp-layout-container #tt>\\n <ng-content select=\\\"axp-page-footer\\\"></ng-content>\\n </axp-layout-container>\\n <axp-page-footer id=\\\"axp-page-footer\\\">\\n <axp-layout-prefix>\\n <axp-component-slot name=\\\"page-footer-start\\\" #prefixSlot=\\\"slot\\\"></axp-component-slot>\\n </axp-layout-prefix>\\n <axp-layout-suffix>\\n <axp-component-slot name=\\\"page-footer-end\\\" #suffixSlot=\\\"slot\\\"></axp-component-slot>\\n </axp-layout-suffix>\\n </axp-page-footer>\\n </axp-page-footer-container>\\n <!-------- Finish Page Footer -------->\\n</axp-layout-container>\\n<!-------- Finish Main Layout Container -------->\", styles: [\".axp-status-icon{font-size:.875rem;line-height:1}.axp-status-chip{display:inline-flex}.axp-status-chip--primary{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-status-icon--primary{color:rgb(var(--ax-sys-color-primary-dark-surface))}.axp-status-chip--secondary{background-color:rgb(var(--ax-sys-color-secondary-lighter-surface));color:rgb(var(--ax-sys-color-on-secondary-lighter-surface))}.axp-status-icon--secondary{color:rgb(var(--ax-sys-color-secondary-dark-surface))}.axp-status-chip--success{background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}.axp-status-icon--success{color:rgb(var(--ax-sys-color-success-dark-surface))}.axp-status-chip--warning{background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}.axp-status-icon--warning{color:rgb(var(--ax-sys-color-warning-dark-surface))}.axp-status-chip--danger{background-color:rgb(var(--ax-sys-color-danger-lighter-surface));color:rgb(var(--ax-sys-color-on-danger-lighter-surface))}.axp-status-icon--danger{color:rgb(var(--ax-sys-color-danger-dark-surface))}.axp-status-chip--info{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--info{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--accent1{background-color:rgb(var(--ax-sys-color-accent1-lighter-surface));color:rgb(var(--ax-sys-color-on-accent1-lighter-surface))}.axp-status-icon--accent1{color:rgb(var(--ax-sys-color-accent1-dark-surface))}.axp-status-chip--accent2{background-color:rgb(var(--ax-sys-color-accent2-lighter-surface));color:rgb(var(--ax-sys-color-on-accent2-lighter-surface))}.axp-status-icon--accent2{color:rgb(var(--ax-sys-color-accent2-dark-surface))}.axp-status-chip--accent3{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--accent3{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--neutral{background-color:rgb(var(--ax-sys-color-neutral-lighter-surface));color:rgb(var(--ax-sys-color-on-neutral-lighter-surface))}.axp-status-icon--neutral{color:rgb(var(--ax-sys-color-neutral-dark-surface))}axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}axp-layout-sections axp-layout-section>axp-layout-footer{opacity:0;animation:fadeInDown .5s ease-out forwards}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-page-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side,axp-page-layout axp-layout-end-side{display:flex;min-height:100%;min-width:16rem;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side axp-layout-header,axp-page-layout axp-layout-end-side axp-layout-header{display:flex;flex-direction:column;gap:.5rem;padding:1rem}axp-page-layout axp-layout-start-side axp-layout-header>axp-layout-title,axp-page-layout axp-layout-end-side axp-layout-header>axp-layout-title{font-size:1.125rem;line-height:1.75rem;font-weight:500}axp-page-layout axp-layout-start-side>axp-layout-content,axp-page-layout axp-layout-end-side>axp-layout-content{flex:1 1 0%}axp-page-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-page-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-page-layout>axp-layout-container>axp-layout-header.axp-is-sticky{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item{font-size:.75rem;line-height:1rem}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item.ax-state-active .ax-breadcrumb-item-content{cursor:default;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1));opacity:.75}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{display:flex;width:100%;align-items:center;justify-content:space-between;padding-left:1rem;padding-right:1rem}@media (min-width: 1280px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{border-width:0px}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar ax-layout-nav-button{display:flex;align-items:center;justify-content:space-between}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container{display:flex;align-items:baseline;gap:.75rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{display:inline-block;width:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;line-height:1.75rem;font-weight:500;line-height:1}@media (min-width: 1024px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge{display:inline-flex;--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;align-self:baseline;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:600;line-height:1}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge i{margin-inline-end:.25rem;line-height:1;font-size:.5rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--warning{background-color:rgb(var(--ax-sys-color-warning-lightest-surface));color:rgb(var(--ax-sys-color-on-warning-lightest-surface));border-color:rgb(var(--ax-sys-color-border-warning-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--danger{background-color:rgb(var(--ax-sys-color-danger-lightest-surface));color:rgb(var(--ax-sys-color-on-danger-lightest-surface));border-color:rgb(var(--ax-sys-color-border-danger-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--success{background-color:rgb(var(--ax-sys-color-success-lightest-surface));color:rgb(var(--ax-sys-color-on-success-lightest-surface));border-color:rgb(var(--ax-sys-color-border-success-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--primary{background-color:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface));border-color:rgb(var(--ax-sys-color-border-primary-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-page-toolbar{margin-top:.5rem;padding-left:1rem;padding-right:1rem}axp-page-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column;padding:.75rem 1rem}axp-page-layout>axp-layout-container>axp-page-content.--scrollable{padding-bottom:1rem}axp-page-layout>axp-layout-container>axp-page-footer-container{border-top-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container{position:sticky;bottom:0;z-index:10;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-page-layout>axp-layout-container>axp-page-footer-container.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: \n //\n AXCommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", 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: AXBreadcrumbsModule }, { kind: \"component\", type: i4.AXBreadCrumbsComponent, selector: \"ax-breadcrumbs\" }, { kind: \"component\", type: i4.AXBreadCrumbsItemComponent, selector: \"ax-breadcrumbs-item\", inputs: [\"disabled\", \"active\"] }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i5.AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i6.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i6.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i6.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\", \"closeParentOnClick\", \"lockOnLoading\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i7.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"ngmodule\", type: AXDrawerDirectiveModule }, { kind: \"directive\", type: i1.AXDrawerItemDirective, selector: \"[axDrawerItem]\", inputs: [\"location\", \"collapsed\", \"backDrop\", \"mode\", \"transition\", \"closeOnBackdropClick\", \"backdropClass\", \"singleOpenMode\"], outputs: [\"collapseStateChanged\", \"locationChange\", \"collapsedChange\", \"backDropChange\", \"modeChange\", \"transitionChange\", \"closeOnBackdropClickChange\", \"backdropClassChange\", \"onBackdropClick\", \"singleOpenModeChange\"], exportAs: [\"axDrawerItem\"] }, { kind: \"ngmodule\", type: \n //\n AXPComponentSlotModule }, { kind: \"directive\", type: i8.AXPComponentSlotDirective, selector: \"axp-component-slot\", inputs: [\"name\", \"host\", \"context\"], exportAs: [\"slot\"] }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"component\", type: AXPThemeLayoutActionsComponent, selector: \"axp-layout-actions\" }, { kind: \"component\", type: AXPThemeLayoutHeaderComponent, selector: \"axp-layout-header\" }, { kind: \"directive\", type: AXPStickyDirective, selector: \"[axpSticky]\", inputs: [\"axpSticky\", \"stickyOffset\", \"stickyParent\", \"stickyTarget\"], outputs: [\"isStickyChange\"], exportAs: [\"axpSticky\"] }, { kind: \"component\", type: AXPThemeLayoutContainerComponent, selector: \"axp-layout-container\" }, { kind: \"component\", type: AXPStatusChipComponent, selector: \"axp-status-chip\", inputs: [\"status\", \"value\", \"readonly\", \"availableTransitions\", \"definitionKey\", \"entityData\"], outputs: [\"openChange\", \"transitionExecuted\", \"transitionError\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i7.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPageLayoutComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [\n CommonModule,\n //\n AXCommonModule,\n AXDecoratorModule,\n AXBreadcrumbsModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXButtonModule,\n AXTranslationModule,\n AXDrawerModule,\n AXDrawerDirectiveModule,\n //\n AXPComponentSlotModule,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutHeaderComponent,\n AXPStickyDirective,\n AXPThemeLayoutContainerComponent,\n AXPStatusChipComponent,\n ], selector: 'axp-page-layout', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [AXDrawerContainerDirective], providers: [], template: \"<!-------- Begin Start Side Drawer -------->\\n<div id=\\\"axp-drawer-start\\\" [mode]=\\\"deviceService.isSmall() ? 'overlay' : 'push'\\\" [transition]=\\\"250\\\" axDrawerItem\\n [backDrop]=\\\"true\\\" (onBackdropClick)=\\\"handleBackdropClick($event)\\\" #startSideDrawer=\\\"axDrawerItem\\\"\\n [backdropClass]=\\\"'ax-bg-darkest/75'\\\" [collapsed]=\\\"deviceService.isSmall()\\\" drawerLocation=\\\"start\\\"\\n class=\\\"ax-z-50 ax-h-full\\\">\\n <ng-content select=\\\"axp-layout-start-side\\\"></ng-content>\\n</div>\\n<!-------- Finish Start Side Drawer -------->\\n<!--------------------------------------------------------------->\\n<!-------- Begin Main Layout Container -------->\\n<axp-layout-container id=\\\"axp-page-layout\\\" #container>\\n <!-------- Begin Page Header -------->\\n <axp-layout-header id=\\\"axp-page-header\\\" *translate=\\\"let t\\\" #sticky=\\\"axpSticky\\\" [axpSticky]=\\\"'axp-is-sticky'\\\"\\n [stickyOffset]=\\\"50\\\" [stickyParent]=\\\"container.hostElement\\\">\\n <!-------- Begin Back Button (Mobile Only) -------->\\n @if (page?.hasBackButton() && deviceService.isSmall()) {\\n <ax-button id=\\\"axp-btn-back\\\" [look]=\\\"'blank'\\\" class=\\\"ax-sm ax-w-fit ax-ms-1\\\" color=\\\"secondary\\\"\\n (click)=\\\"page?.onBackButtonClick()\\\" [text]=\\\"page?.backButton()?.title\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-chevron-left rtl:ax-rotate-180\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }\\n <!-------- Finish Back Button -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Bar -------->\\n <axp-layout-title-bar id=\\\"axp-title-bar\\\">\\n <!-------- Begin Title Section -------->\\n <div class=\\\"ax-flex ax-flex-col ax-transition\\\">\\n <!-------- Begin Breadcrumbs -------->\\n @if (page?.hasBreadcrumbs() && !deviceService.isSmall()) {\\n <ax-breadcrumbs id=\\\"axp-breadcrumb\\\" class=\\\"ax-mb-1\\\">\\n @for (item of page?.breadcrumbs(); track $index) {\\n <ax-breadcrumbs-item [attr.id]=\\\"'axp-breadcrumb-item-' + $index\\\" [active]=\\\"$last\\\"\\n (click)=\\\"item.command ? execute(item.command) : null\\\">\\n @if (item.icon) {\\n <i [class]=\\\"item.icon\\\"></i>\\n }\\n {{ t(item.title) | async }}\\n </ax-breadcrumbs-item>\\n }\\n <ng-template #divider>\\n <i class=\\\"fa-regular fa-chevron-right rtl:ax-rotate-180 fa-sm\\\"></i>\\n </ng-template>\\n </ax-breadcrumbs>\\n }\\n <!-------- Finish Breadcrumbs -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Container -------->\\n <div class=\\\"__title-container\\\">\\n <!-------- Begin Page Title -------->\\n @if (page?.hasTitle()) {\\n <axp-layout-title id=\\\"axp-page-title\\\">\\n @if (page?.hasTitleIcon()) {\\n <ax-icon [icon]=\\\"page?.titleIcon()!\\\" class=\\\"ax-me-2\\\"></ax-icon>\\n }\\n {{ t(page?.title()) | async }}\\n </axp-layout-title>\\n }\\n <!-------- Finish Page Title -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Actions -------->\\n @if (page?.hasTitleActions()) {\\n <ax-button id=\\\"axp-btn-title-actions\\\" [look]=\\\"'blank'\\\" class=\\\"ax-sm -ax-mx-2\\\">\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-caret-down fa-fw\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of page?.titleActions(); track $index) {\\n <ng-container>\\n <ax-button-item [attr.id]=\\\"'axp-btn-title-action-' + (sub.name || $index)\\\"\\n [text]=\\\"(t(sub.title) | async)!\\\" [color]=\\\"sub.color\\\" [disabled]=\\\"sub.disabled\\\"\\n [selected]=\\\"sub.command?.metadata?.['isSelected']\\\" (onClick)=\\\"handleActionClick(sub)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n @if (sub.command?.metadata?.['isSelected']) {\\n <ax-suffix class=\\\"ax-ms-2\\\">\\n <ax-icon icon=\\\"fa-solid fa-check\\\"></ax-icon>\\n </ax-suffix>\\n }\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n </ng-container>\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n <!-------- Finish Title Actions -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Badge -------->\\n @if (page?.hasBadge()) {\\n <div id=\\\"axp-page-badge\\\" class=\\\"__title-badge --{{ page?.badge()?.color }}\\\"\\n [attr.title]=\\\"page?.badge()?.description\\\">\\n <i class=\\\"fa-solid fa-circle\\\"></i>\\n {{ page?.badge()?.title }}\\n </div>\\n }\\n <!-------- Finish Title Badge -------->\\n\\n <!-------- Begin Page Status -------->\\n\\n @if (page?.hasStatus()) {\\n <axp-status-chip\\n [value]=\\\"page?.status()?.value ?? null\\\"\\n [readonly]=\\\"page?.status()?.readonly || false\\\"\\n [definitionKey]=\\\"page?.status()?.definitionKey ?? null\\\"\\n [entityData]=\\\"getEntityData()\\\"\\n (transitionExecuted)=\\\"handleStatusTransition($event)\\\"\\n class=\\\"__title-status\\\"\\n ></axp-status-chip>\\n }\\n <!-------- Finish Page Status -------->\\n\\n </div>\\n <!-------- Finish Title Container -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Description -------->\\n @if (page?.hasDescription()) {\\n <axp-layout-description id=\\\"axp-page-description\\\">\\n {{ t(page?.description()) | async }}</axp-layout-description>\\n }\\n <!-------- Finish Page Description -------->\\n </div>\\n <!-------- Finish Title Section -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Actions -------->\\n <axp-layout-actions id=\\\"axp-page-actions\\\" class=\\\"ax-shrink-0\\\">\\n <axp-component-slot name=\\\"page-header-actions\\\"></axp-component-slot>\\n <!-------- Begin Primary Actions -------->\\n @if (page?.hasPrimaryActions()) {\\n @for (item of page?.primaryMenuItems(); track $index) {\\n @if (item.visible != false) {\\n <ax-button [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title)\\\" [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [iconOnly]=\\\"deviceService.isSmall()\\\" [disabled]=\\\"item.disabled\\\" [text]=\\\"(t(item.title) | async)!\\\"\\n [look]=\\\"'solid'\\\" [color]=\\\"item.color\\\" (onClick)=\\\"handleActionClick(item)\\\">\\n <ax-prefix>\\n <i class=\\\"{{ item.icon }}\\\"></i>\\n </ax-prefix>\\n @if (item?.items) {\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of item?.items; track $index) {\\n @if (sub.visible != false) {\\n <ax-button-item [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title) + '-' + (sub.name || sub.title)\\\"\\n [text]=\\\"(t(sub.title) | async)!\\\" [color]=\\\"sub.color\\\" [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"handleActionClick(sub)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n }\\n </ax-button>\\n }\\n }\\n }\\n <!-------- Finish Primary Actions -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Secondary Actions -------->\\n @if (page?.hasSecondaryActions()) {\\n <ax-button id=\\\"axp-btn-secondary\\\" [class.ax-sm]=\\\"deviceService.isSmall()\\\" [iconOnly]=\\\"deviceService.isSmall()\\\"\\n [text]=\\\"'@general:terms.interface.actions' | translate | async\\\"\\n [look]=\\\"deviceService.isSmall() ? 'blank' : 'solid'\\\" [color]=\\\"'default'\\\">\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-ellipsis-vertical\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (item of page?.secondaryMenuItems(); track $index) {\\n @if (item.visible != false) {\\n <ax-button-item [attr.id]=\\\"'axp-btn-secondary-' + (item.name || item.title)\\\"\\n [text]=\\\"(item.title | translate | async)!\\\" [color]=\\\"item.color\\\" [disabled]=\\\"item.disabled\\\"\\n (onClick)=\\\"handleSecondaryActionClick(item)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n <!-------- Finish Secondary Actions -------->\\n </axp-layout-actions>\\n <!-------- Finish Page Actions -------->\\n </axp-layout-title-bar>\\n <!-------- Finish Title Bar -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Toolbar / Navbar -------->\\n @if (!sticky.isSticky) {}\\n <ng-content select=\\\"axp-page-toolbar\\\"></ng-content>\\n <!-------- Finish Page Toolbar / Navbar -------->\\n </axp-layout-header>\\n <!-------- Finish Page Header -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Content -------->\\n <ng-content select=\\\"axp-page-content\\\"></ng-content>\\n <!-------- Finish Page Content -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Footer -------->\\n <axp-page-footer-container id=\\\"axp-page-footer-container\\\"\\n [ngStyle]=\\\"{ display: tt.isEmpty() && prefixSlot.isEmpty() && suffixSlot.isEmpty() ? 'none' : 'block' }\\\">\\n <axp-layout-container #tt>\\n <ng-content select=\\\"axp-page-footer\\\"></ng-content>\\n </axp-layout-container>\\n <axp-page-footer id=\\\"axp-page-footer\\\">\\n <axp-layout-prefix>\\n <axp-component-slot name=\\\"page-footer-start\\\" #prefixSlot=\\\"slot\\\"></axp-component-slot>\\n </axp-layout-prefix>\\n <axp-layout-suffix>\\n <axp-component-slot name=\\\"page-footer-end\\\" #suffixSlot=\\\"slot\\\"></axp-component-slot>\\n </axp-layout-suffix>\\n </axp-page-footer>\\n </axp-page-footer-container>\\n <!-------- Finish Page Footer -------->\\n</axp-layout-container>\\n<!-------- Finish Main Layout Container -------->\", styles: [\".axp-status-icon{font-size:.875rem;line-height:1}.axp-status-chip{display:inline-flex}.axp-status-chip--primary{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-status-icon--primary{color:rgb(var(--ax-sys-color-primary-dark-surface))}.axp-status-chip--secondary{background-color:rgb(var(--ax-sys-color-secondary-lighter-surface));color:rgb(var(--ax-sys-color-on-secondary-lighter-surface))}.axp-status-icon--secondary{color:rgb(var(--ax-sys-color-secondary-dark-surface))}.axp-status-chip--success{background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}.axp-status-icon--success{color:rgb(var(--ax-sys-color-success-dark-surface))}.axp-status-chip--warning{background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}.axp-status-icon--warning{color:rgb(var(--ax-sys-color-warning-dark-surface))}.axp-status-chip--danger{background-color:rgb(var(--ax-sys-color-danger-lighter-surface));color:rgb(var(--ax-sys-color-on-danger-lighter-surface))}.axp-status-icon--danger{color:rgb(var(--ax-sys-color-danger-dark-surface))}.axp-status-chip--info{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--info{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--accent1{background-color:rgb(var(--ax-sys-color-accent1-lighter-surface));color:rgb(var(--ax-sys-color-on-accent1-lighter-surface))}.axp-status-icon--accent1{color:rgb(var(--ax-sys-color-accent1-dark-surface))}.axp-status-chip--accent2{background-color:rgb(var(--ax-sys-color-accent2-lighter-surface));color:rgb(var(--ax-sys-color-on-accent2-lighter-surface))}.axp-status-icon--accent2{color:rgb(var(--ax-sys-color-accent2-dark-surface))}.axp-status-chip--accent3{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--accent3{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--neutral{background-color:rgb(var(--ax-sys-color-neutral-lighter-surface));color:rgb(var(--ax-sys-color-on-neutral-lighter-surface))}.axp-status-icon--neutral{color:rgb(var(--ax-sys-color-neutral-dark-surface))}axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}axp-layout-sections axp-layout-section>axp-layout-footer{opacity:0;animation:fadeInDown .5s ease-out forwards}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-page-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side,axp-page-layout axp-layout-end-side{display:flex;min-height:100%;min-width:16rem;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side axp-layout-header,axp-page-layout axp-layout-end-side axp-layout-header{display:flex;flex-direction:column;gap:.5rem;padding:1rem}axp-page-layout axp-layout-start-side axp-layout-header>axp-layout-title,axp-page-layout axp-layout-end-side axp-layout-header>axp-layout-title{font-size:1.125rem;line-height:1.75rem;font-weight:500}axp-page-layout axp-layout-start-side>axp-layout-content,axp-page-layout axp-layout-end-side>axp-layout-content{flex:1 1 0%}axp-page-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-page-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-page-layout>axp-layout-container>axp-layout-header.axp-is-sticky{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item{font-size:.75rem;line-height:1rem}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item.ax-state-active .ax-breadcrumb-item-content{cursor:default;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1));opacity:.75}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{display:flex;width:100%;align-items:center;justify-content:space-between;padding-left:1rem;padding-right:1rem}@media (min-width: 1280px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{border-width:0px}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar ax-layout-nav-button{display:flex;align-items:center;justify-content:space-between}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container{display:flex;align-items:baseline;gap:.75rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{display:inline-block;width:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;line-height:1.75rem;font-weight:500;line-height:1}@media (min-width: 1024px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge{display:inline-flex;--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;align-self:baseline;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:600;line-height:1}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge i{margin-inline-end:.25rem;line-height:1;font-size:.5rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--warning{background-color:rgb(var(--ax-sys-color-warning-lightest-surface));color:rgb(var(--ax-sys-color-on-warning-lightest-surface));border-color:rgb(var(--ax-sys-color-border-warning-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--danger{background-color:rgb(var(--ax-sys-color-danger-lightest-surface));color:rgb(var(--ax-sys-color-on-danger-lightest-surface));border-color:rgb(var(--ax-sys-color-border-danger-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--success{background-color:rgb(var(--ax-sys-color-success-lightest-surface));color:rgb(var(--ax-sys-color-on-success-lightest-surface));border-color:rgb(var(--ax-sys-color-border-success-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--primary{background-color:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface));border-color:rgb(var(--ax-sys-color-border-primary-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-page-toolbar{margin-top:.5rem;padding-left:1rem;padding-right:1rem}axp-page-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column;padding:.75rem 1rem}axp-page-layout>axp-layout-container>axp-page-content.--scrollable{padding-bottom:1rem}axp-page-layout>axp-layout-container>axp-page-footer-container{border-top-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container{position:sticky;bottom:0;z-index:10;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-page-layout>axp-layout-container>axp-page-footer-container.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\\n\"] }]\n }], propDecorators: { startSideDrawer: [{ type: i0.ViewChild, args: ['startSideDrawer', { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvdmlld3Mvc3JjL2xpYi9sYXlvdXRzL3BhZ2UvcGFnZS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvdmlld3Mvc3JjL2xpYi9sYXlvdXRzL3BhZ2UvcGFnZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsRUFBRTtBQUNGLE9BQU8sRUFBZ0IsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLEVBQUU7QUFDRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sb0JBQW9CLENBQUM7QUFDaEgsT0FBTyxF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aW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy9cbmltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhDb21tb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYRHJvcGRvd25CdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24tYnV0dG9uJztcbmltcG9ydCB7IEFYUFN0aWNreURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUENvbXBvbmVudFNsb3RNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzJztcbi8vXG5pbXBvcnQgeyBBWERyYXdlckNvbnRhaW5lckRpcmVjdGl2ZSwgQVhEcmF3ZXJEaXJlY3RpdmVNb2R1bGUsIEFYRHJhd2VySXRlbURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL2RyYXdlcic7XG5pbXBvcnQgeyBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBBY3Rpb25NZW51SXRlbSwgQVhQRGV2aWNlU2VydmljZSwgQVhQRXhlY3V0ZUNvbW1hbmQsIEFYUFBhZ2VTdGF0dXMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQU3RhdHVzQ2hpcENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldHMnO1xuaW1wb3J0IHtcbiAgQVhQVGhlbWVMYXlvdXRBY3Rpb25zQ29tcG9uZW50LFxuICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICBBWFBUaGVtZUxheW91dENvbnRhaW5lckNvbXBvbmVudCxcbiAgQVhQVGhlbWVMYXlvdXRIZWFkZXJDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dEJhc2UgfSBmcm9tICcuL3BhZ2UtbGF5b3V0LmJhc2UnO1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgLy9cbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIEFYRHJvcGRvd25CdXR0b25Nb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYRHJhd2VyTW9kdWxlLFxuICAgIEFYRHJhd2VyRGlyZWN0aXZlTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQQ29tcG9uZW50U2xvdE1vZHVsZSxcbiAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0QWN0aW9uc0NvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dEhlYWRlckNvbXBvbmVudCxcbiAgICBBWFBTdGlja3lEaXJlY3RpdmUsXG4gICAgQVhQVGhlbWVMYXlvdXRDb250YWluZXJDb21wb25lbnQsXG4gICAgQVhQU3RhdHVzQ2hpcENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS1sYXlvdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgc2VsZWN0b3I6ICdheHAtcGFnZS1sYXlvdXQnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0RGlyZWN0aXZlczogW0FYRHJhd2VyQ29udGFpbmVyRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQUGFnZUxheW91dENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBwYWdlID0gaW5qZWN0PEFYUFBhZ2VMYXlvdXRCYXNlPihBWFBQYWdlTGF5b3V0QmFzZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcm90ZWN0ZWQgbGF5b3V0U2VydmljZSA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZGV2aWNlU2VydmljZSA9IGluamVjdChBWFBEZXZpY2VTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgc3RhcnRTaWRlRHJhd2VyID0gdmlld0NoaWxkPEFYRHJhd2VySXRlbURpcmVjdGl2ZT4oJ3N0YXJ0U2lkZURyYXdlcicpO1xuXG4gIHByb3RlY3RlZCB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgY29tbWFuZFNlcnZpY2UgPSBpbmplY3QoQVhQQ29tbWFuZFNlcnZpY2UpO1xuXG4gICNpbml0aWFsaXplID0gYWZ0ZXJOZXh0UmVuZGVyKGFzeW5jICgpID0+IHtcbiAgICB0aGlzLmNoZWNrU2Nyb2xsYWJsZUNvbnRlbnQoKTtcbiAgfSk7XG5cbiAgI2VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdGhpcy5wYWdlPy50aXRsZSgpO1xuICAgIHRoaXMucGFnZT8uZGVzY3JpcHRpb24oKTtcbiAgICB0aGlzLmNoZWNrU2Nyb2xsYWJsZUNvbnRlbnQoKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBjaGVja1Njcm9sbGFibGVDb250ZW50KCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdheHAtcGFnZS1jb250ZW50Jyk7XG4gICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC5zY3JvbGxIZWlnaHQgPj0gY29udGVudC5jbGllbnRIZWlnaHQpIHtcbiAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgnLS1zY3JvbGxhYmxlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUFjdGlvbkNsaWNrKGl0ZW06IEFYUEFjdGlvbk1lbnVJdGVtKSB7XG4gICAgaWYgKGl0ZW0uY29tbWFuZCAmJiAoaXRlbS5pdGVtcz8ubGVuZ3RoID8/IDApID09IDApIHtcbiAgICAgIHRoaXMuZXhlY3V0ZShpdGVtLmNvbW1hbmQpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVN0YXJ0U2lkZSgpIHtcbiAgICB0aGlzLnN0YXJ0U2lkZURyYXdlcigpPy50b2dnbGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVTZWNvbmRhcnlBY3Rpb25DbGljayhpdGVtOiBBWFBBY3Rpb25NZW51SXRlbSkge1xuICAgIGlmIChpdGVtLmNvbW1hbmQpIHtcbiAgICAgIHRoaXMuZXhlY3V0ZShpdGVtLmNvbW1hbmQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVCYWNrZHJvcENsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgIGUubmF0aXZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBlLm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUuY29tcG9uZW50LmhpZGUoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCkge1xuICAgIGNvbnN0IHJlc2VydmVkID0gWyduYXZpZ2F0ZSddO1xuICAgIGlmIChyZXNlcnZlZC5pbmNsdWRlcyhjb21tYW5kLm5hbWUpKSB7XG4gICAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoY29tbWFuZC5uYW1lLCB7IG9wdGlvbnM6IGNvbW1hbmQub3B0aW9ucyB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tbWFuZFNlcnZpY2UuZXhpc3RzKGNvbW1hbmQubmFtZSkpIHtcbiAgICAgIGF3YWl0IHRoaXMuY29tbWFuZFNlcnZpY2UuZXhlY3V0ZShjb21tYW5kLm5hbWUsIGNvbW1hbmQub3B0aW9ucyA/PyB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMucGFnZT8uZXhlY3V0ZShjb21tYW5kKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT25CYWNrZHJvcENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zdGFydFNpZGVEcmF3ZXIoKT8uaGlkZSgpO1xuICB9XG5cbiAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBTdGF0dXMgSGVscGVycyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXR5RGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCB7XG4gICAgLy8gR2V0IGVudGl0eSBkYXRhIGZyb20gcGFnZSBjb250ZXh0IGlmIGF2YWlsYWJsZVxuICAgIGlmICh0aGlzLnBhZ2UgJiYgJ2dldEVudGl0eURhdGEnIGluIHRoaXMucGFnZSAmJiB0eXBlb2YgKHRoaXMucGFnZSBhcyBhbnkpLmdldEVudGl0eURhdGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAodGhpcy5wYWdlIGFzIGFueSkuZ2V0RW50aXR5RGF0YSgpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTdGF0dXNUcmFuc2l0aW9uKHRyYW5zaXRpb246IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIENvbnZlcnQgc3RhdHVzIHRyYW5zaXRpb24gdG8gY29tbWFuZCBhbmQgZXhlY3V0ZVxuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZSh7XG4gICAgICBuYW1lOiAndXBkYXRlLXN0YXR1cycsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIHRyYW5zaXRpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCI8IS0tLS0tLS0tIEJlZ2luIFN0YXJ0IFNpZGUgRHJhd2VyICAtLS0tLS0tLT5cbjxkaXYgaWQ9XCJheHAtZHJhd2VyLXN0YXJ0XCIgW21vZGVdPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKCkgPyAnb3ZlcmxheScgOiAncHVzaCdcIiBbdHJhbnNpdGlvbl09XCIyNTBcIiBheERyYXdlckl0ZW1cbiAgW2JhY2tEcm9wXT1cInRydWVcIiAob25CYWNrZHJvcENsaWNrKT1cImhhbmRsZUJhY2tkcm9wQ2xpY2soJGV2ZW50KVwiICNzdGFydFNpZGVEcmF3ZXI9XCJheERyYXdlckl0ZW1cIlxuICBbYmFja2Ryb3BDbGFzc109XCInYXgtYmctZGFya2VzdC83NSdcIiBbY29sbGFwc2VkXT1cImRldmljZVNlcnZpY2UuaXNTbWFsbCgpXCIgZHJhd2VyTG9jYXRpb249XCJzdGFydFwiXG4gIGNsYXNzPVwiYXgtei01MCBheC1oLWZ1bGxcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1zdGFydC1zaWRlXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48IS0tLS0tLS0tIEZpbmlzaCBTdGFydCBTaWRlIERyYXdlciAgLS0tLS0tLS0+XG48IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbjwhLS0tLS0tLS0gQmVnaW4gTWFpbiBMYXlvdXQgQ29udGFpbmVyICAtLS0tLS0tLT5cbjxheHAtbGF5b3V0LWNvbnRhaW5lciBpZD1cImF4cC1wYWdlLWxheW91dFwiICNjb250YWluZXI+XG4gIDwhLS0tLS0tLS0gQmVnaW4gUGFnZSBIZWFkZXIgIC0tLS0tLS0tPlxuICA8YXhwLWxheW91dC1oZWFkZXIgaWQ9XCJheHAtcGFnZS1oZWFkZXJcIiAqdHJhbnNsYXRlPVwibGV0IHRcIiAjc3RpY2t5PVwiYXhwU3RpY2t5XCIgW2F4cFN0aWNreV09XCInYXhwLWlzLXN0aWNreSdcIlxuICAgIFtzdGlja3lPZmZzZXRdPVwiNTBcIiBbc3RpY2t5UGFyZW50XT1cImNvbnRhaW5lci5ob3N0RWxlbWVudFwiPlxuICAgIDwhLS0tLS0tLS0gQmVnaW4gQmFjayBCdXR0b24gKE1vYmlsZSBPbmx5KSAgLS0tLS0tLS0+XG4gICAgQGlmIChwYWdlPy5oYXNCYWNrQnV0dG9uKCkgJiYgZGV2aWNlU2VydmljZS5pc1NtYWxsKCkpIHtcbiAgICA8YXgtYnV0dG9uIGlkPVwiYXhwLWJ0bi1iYWNrXCIgW2xvb2tdPVwiJ2JsYW5rJ1wiIGNsYXNzPVwiYXgtc20gYXgtdy1maXQgYXgtbXMtMVwiIGNvbG9yPVwic2Vjb25kYXJ5XCJcbiAgICAgIChjbGljayk9XCJwYWdlPy5vbkJhY2tCdXR0b25DbGljaygpXCIgW3RleHRdPVwicGFnZT8uYmFja0J1dHRvbigpPy50aXRsZVwiPlxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLWNoZXZyb24tbGVmdCBydGw6YXgtcm90YXRlLTE4MFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIH1cbiAgICA8IS0tLS0tLS0tIEZpbmlzaCBCYWNrIEJ1dHRvbiAgLS0tLS0tLS0+XG4gICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSBCYXIgIC0tLS0tLS0tPlxuICAgIDxheHAtbGF5b3V0LXRpdGxlLWJhciBpZD1cImF4cC10aXRsZS1iYXJcIj5cbiAgICAgIDwhLS0tLS0tLS0gQmVnaW4gVGl0bGUgU2VjdGlvbiAgLS0tLS0tLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC10cmFuc2l0aW9uXCI+XG4gICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gQnJlYWRjcnVtYnMgIC0tLS0tLS0tPlxuICAgICAgICBAaWYgKHBhZ2U/Lmhhc0JyZWFkY3J1bWJzKCkgJiYgIWRldmljZVNlcnZpY2UuaXNTbWFsbCgpKSB7XG4gICAgICAgIDxheC1icmVhZGNydW1icyBpZD1cImF4cC1icmVhZGNydW1iXCIgY2xhc3M9XCJheC1tYi0xXCI+XG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBwYWdlPy5icmVhZGNydW1icygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8YXgtYnJlYWRjcnVtYnMtaXRlbSBbYXR0ci5pZF09XCInYXhwLWJyZWFkY3J1bWItaXRlbS0nICsgJGluZGV4XCIgW2FjdGl2ZV09XCIkbGFzdFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5jb21tYW5kID8gZXhlY3V0ZShpdGVtLmNvbW1hbmQpIDogbnVsbFwiPlxuICAgICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJpdGVtLmljb25cIj48L2k+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7eyB0KGl0ZW0udGl0bGUpIHwgYXN5bmMgfX1cbiAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzLWl0ZW0+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGl2aWRlcj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtcmVndWxhciBmYS1jaGV2cm9uLXJpZ2h0IHJ0bDpheC1yb3RhdGUtMTgwIGZhLXNtXCI+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYXgtYnJlYWRjcnVtYnM+XG4gICAgICAgIH1cbiAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggQnJlYWRjcnVtYnMgIC0tLS0tLS0tPlxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSBDb250YWluZXIgIC0tLS0tLS0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiX190aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFBhZ2UgVGl0bGUgIC0tLS0tLS0tPlxuICAgICAgICAgIEBpZiAocGFnZT8uaGFzVGl0bGUoKSkge1xuICAgICAgICAgIDxheHAtbGF5b3V0LXRpdGxlIGlkPVwiYXhwLXBhZ2UtdGl0bGVcIj5cbiAgICAgICAgICAgIEBpZiAocGFnZT8uaGFzVGl0bGVJY29uKCkpIHtcbiAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cInBhZ2U/LnRpdGxlSWNvbigpIVwiIGNsYXNzPVwiYXgtbWUtMlwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHt7IHQocGFnZT8udGl0bGUoKSkgfCBhc3luYyB9fVxuICAgICAgICAgIDwvYXhwLWxheW91dC10aXRsZT5cbiAgICAgICAgICB9XG4gICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggUGFnZSBUaXRsZSAgLS0tLS0tLS0+XG4gICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgICAgICBAaWYgKHBhZ2U/Lmhhc1RpdGxlQWN0aW9ucygpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiBpZD1cImF4cC1idG4tdGl0bGUtYWN0aW9uc1wiIFtsb29rXT1cIidibGFuaydcIiBjbGFzcz1cImF4LXNtIC1heC1teC0yXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNhcmV0LWRvd24gZmEtZndcIj48L2k+XG4gICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbCAjcGFuZWw+XG4gICAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgICAgIEBmb3IgKHN1YiBvZiBwYWdlPy50aXRsZUFjdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSBbYXR0ci5pZF09XCInYXhwLWJ0bi10aXRsZS1hY3Rpb24tJyArIChzdWIubmFtZSB8fCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiKHQoc3ViLnRpdGxlKSB8IGFzeW5jKSFcIiBbY29sb3JdPVwic3ViLmNvbG9yXCIgW2Rpc2FibGVkXT1cInN1Yi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzdWIuY29tbWFuZD8ubWV0YWRhdGE/LlsnaXNTZWxlY3RlZCddXCIgKG9uQ2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soc3ViKVwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1saWdodCB7eyBzdWIuaWNvbiB9fVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc3ViLmNvbW1hbmQ/Lm1ldGFkYXRhPy5bJ2lzU2VsZWN0ZWQnXSkge1xuICAgICAgICAgICAgICAgICAgICA8YXgtc3VmZml4IGNsYXNzPVwiYXgtbXMtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1zb2xpZCBmYS1jaGVja1wiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgICBAaWYgKHN1Yi5icmVhaykge1xuICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgQWN0aW9ucyAgLS0tLS0tLS0+XG4gICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSBCYWRnZSAgLS0tLS0tLS0+XG4gICAgICAgICAgQGlmIChwYWdlPy5oYXNCYWRnZSgpKSB7XG4gICAgICAgICAgPGRpdiBpZD1cImF4cC1wYWdlLWJhZGdlXCIgY2xhc3M9XCJfX3RpdGxlLWJhZGdlIC0te3sgcGFnZT8uYmFkZ2UoKT8uY29sb3IgfX1cIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwicGFnZT8uYmFkZ2UoKT8uZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAge3sgcGFnZT8uYmFkZ2UoKT8udGl0bGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgQmFkZ2UgIC0tLS0tLS0tPlxuXG4gICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBQYWdlIFN0YXR1cyAgLS0tLS0tLS0+XG5cbiAgICAgICAgICBAaWYgKHBhZ2U/Lmhhc1N0YXR1cygpKSB7XG4gICAgICAgICAgPGF4cC1zdGF0dXMtY2hpcFxuICAgICAgICAgICAgW3ZhbHVlXT1cInBhZ2U/LnN0YXR1cygpPy52YWx1ZSA/PyBudWxsXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJwYWdlPy5zdGF0dXMoKT8ucmVhZG9ubHkgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW2RlZmluaXRpb25LZXldPVwicGFnZT8uc3RhdHVzKCk/LmRlZmluaXRpb25LZXkgPz8gbnVsbFwiXG4gICAgICAgICAgICBbZW50aXR5RGF0YV09XCJnZXRFbnRpdHlEYXRhKClcIlxuICAgICAgICAgICAgKHRyYW5zaXRpb25FeGVjdXRlZCk9XCJoYW5kbGVTdGF0dXNUcmFuc2l0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJfX3RpdGxlLXN0YXR1c1wiXG4gICAgICAgICAgPjwvYXhwLXN0YXR1cy1jaGlwPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8IS0tLS0tLS0tIEZpbmlzaCBQYWdlIFN0YXR1cyAgLS0tLS0tLS0+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIFRpdGxlIENvbnRhaW5lciAgLS0tLS0tLS0+XG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFBhZ2UgRGVzY3JpcHRpb24gIC0tLS0tLS0tPlxuICAgICAgICBAaWYgKHBhZ2U/Lmhhc0Rlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgPGF4cC1sYXlvdXQtZGVzY3JpcHRpb24gaWQ9XCJheHAtcGFnZS1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIHt7IHQocGFnZT8uZGVzY3JpcHRpb24oKSkgfCBhc3luYyB9fTwvYXhwLWxheW91dC1kZXNjcmlwdGlvbj5cbiAgICAgICAgfVxuICAgICAgICA8IS0tLS0tLS0tIEZpbmlzaCBQYWdlIERlc2NyaXB0aW9uICAtLS0tLS0tLT5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgU2VjdGlvbiAgLS0tLS0tLS0+XG4gICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgIDwhLS0tLS0tLS0gQmVnaW4gUGFnZSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgIDxheHAtbGF5b3V0LWFjdGlvbnMgaWQ9XCJheHAtcGFnZS1hY3Rpb25zXCIgY2xhc3M9XCJheC1zaHJpbmstMFwiPlxuICAgICAgICA8YXhwLWNvbXBvbmVudC1zbG90IG5hbWU9XCJwYWdlLWhlYWRlci1hY3Rpb25zXCI+PC9heHAtY29tcG9uZW50LXNsb3Q+XG4gICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gUHJpbWFyeSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgICAgQGlmIChwYWdlPy5oYXNQcmltYXJ5QWN0aW9ucygpKSB7XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgcGFnZT8ucHJpbWFyeU1lbnVJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgQGlmIChpdGVtLnZpc2libGUgIT0gZmFsc2UpIHtcbiAgICAgICAgPGF4LWJ1dHRvbiBbYXR0ci5pZF09XCInYXhwLWJ0bi1wcmltYXJ5LScgKyAoaXRlbS5uYW1lIHx8IGl0ZW0udGl0bGUpXCIgW2NsYXNzLmF4LXNtXT1cImRldmljZVNlcnZpY2UuaXNTbWFsbCgpXCJcbiAgICAgICAgICBbaWNvbk9ubHldPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKClcIiBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiIFt0ZXh0XT1cIih0KGl0ZW0udGl0bGUpIHwgYXN5bmMpIVwiXG4gICAgICAgICAgW2xvb2tdPVwiJ3NvbGlkJ1wiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgKG9uQ2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soaXRlbSlcIj5cbiAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7eyBpdGVtLmljb24gfX1cIj48L2k+XG4gICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgQGlmIChpdGVtPy5pdGVtcykge1xuICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbCAjcGFuZWw+XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgQGZvciAoc3ViIG9mIGl0ZW0/Lml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgQGlmIChzdWIudmlzaWJsZSAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gW2F0dHIuaWRdPVwiJ2F4cC1idG4tcHJpbWFyeS0nICsgKGl0ZW0ubmFtZSB8fCBpdGVtLnRpdGxlKSArICctJyArIChzdWIubmFtZSB8fCBzdWIudGl0bGUpXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCIodChzdWIudGl0bGUpIHwgYXN5bmMpIVwiIFtjb2xvcl09XCJzdWIuY29sb3JcIiBbZGlzYWJsZWRdPVwic3ViLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVBY3Rpb25DbGljayhzdWIpXCI+XG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1saWdodCB7eyBzdWIuaWNvbiB9fVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgQGlmIChzdWIuYnJlYWspIHtcbiAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgICAgfVxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggUHJpbWFyeSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gU2Vjb25kYXJ5IEFjdGlvbnMgIC0tLS0tLS0tPlxuICAgICAgICBAaWYgKHBhZ2U/Lmhhc1NlY29uZGFyeUFjdGlvbnMoKSkge1xuICAgICAgICA8YXgtYnV0dG9uIGlkPVwiYXhwLWJ0bi1zZWNvbmRhcnlcIiBbY2xhc3MuYXgtc21dPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKClcIiBbaWNvbk9ubHldPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKClcIlxuICAgICAgICAgIFt0ZXh0XT1cIidAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UuYWN0aW9ucycgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgW2xvb2tdPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKCkgPyAnYmxhbmsnIDogJ3NvbGlkJ1wiIFtjb2xvcl09XCInZGVmYXVsdCdcIj5cbiAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1lbGxpcHNpcy12ZXJ0aWNhbFwiPjwvaT5cbiAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWwgI3BhbmVsPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgcGFnZT8uc2Vjb25kYXJ5TWVudUl0ZW1zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICBAaWYgKGl0ZW0udmlzaWJsZSAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gW2F0dHIuaWRdPVwiJ2F4cC1idG4tc2Vjb25kYXJ5LScgKyAoaXRlbS5uYW1lIHx8IGl0ZW0udGl0bGUpXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCIoaXRlbS50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVTZWNvbmRhcnlBY3Rpb25DbGljayhpdGVtKVwiPlxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQge3sgaXRlbS5pY29uIH19XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW0uYnJlYWspIHtcbiAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIFNlY29uZGFyeSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgIDwvYXhwLWxheW91dC1hY3Rpb25zPlxuICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggUGFnZSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICA8L2F4cC1sYXlvdXQtdGl0bGUtYmFyPlxuICAgIDwhLS0tLS0tLS0gRmluaXNoIFRpdGxlIEJhciAgLS0tLS0tLS0+XG4gICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgPCEtLS0tLS0tLSBCZWdpbiBQYWdlIFRvb2xiYXIgLyBOYXZiYXIgIC0tLS0tLS0tPlxuICAgIEBpZiAoIXN0aWNreS5pc1N0aWNreSkge31cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtcGFnZS10b29sYmFyXCI+PC9uZy1jb250ZW50PlxuICAgIDwhLS0tLS0tLS0gRmluaXNoIFBhZ2UgVG9vbGJhciAvIE5hdmJhciAgLS0tLS0tLS0+XG4gIDwvYXhwLWxheW91dC1oZWFkZXI+XG4gIDwhLS0tLS0tLS0gRmluaXNoIFBhZ2UgSGVhZGVyICAtLS0tLS0tLT5cbiAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gIDwhLS0tLS0tLS0gQmVnaW4gUGFnZSBDb250ZW50ICAtLS0tLS0tLT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLXBhZ2UtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgPCEtLS0tLS0tLSBGaW5pc2ggUGFnZSBDb250ZW50ICAtLS0tLS0tLT5cbiAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gIDwhLS0tLS0tLS0gQmVnaW4gUGFnZSBGb290ZXIgIC0tLS0tLS0tPlxuICA8YXhwLXBhZ2UtZm9vdGVyLWNvbnRhaW5lciBpZD1cImF4cC1wYWdlLWZvb3Rlci1jb250YWluZXJcIlxuICAgIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogdHQuaXNFbXB0eSgpICYmIHByZWZpeFNsb3QuaXNFbXB0eSgpICYmIHN1ZmZpeFNsb3QuaXNFbXB0eSgpID8gJ25vbmUnIDogJ2Jsb2NrJyB9XCI+XG4gICAgPGF4cC1sYXlvdXQtY29udGFpbmVyICN0dD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1wYWdlLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgICA8L2F4cC1sYXlvdXQtY29udGFpbmVyPlxuICAgIDxheHAtcGFnZS1mb290ZXIgaWQ9XCJheHAtcGFnZS1mb290ZXJcIj5cbiAgICAgIDxheHAtbGF5b3V0LXByZWZpeD5cbiAgICAgICAgPGF4cC1jb21wb25lbnQtc2xvdCBuYW1lPVwicGFnZS1mb290ZXItc3RhcnRcIiAjcHJlZml4U2xvdD1cInNsb3RcIj48L2F4cC1jb21wb25lbnQtc2xvdD5cbiAgICAgIDwvYXhwLWxheW91dC1wcmVmaXg+XG4gICAgICA8YXhwLWxheW91dC1zdWZmaXg+XG4gICAgICAgIDxheHAtY29tcG9uZW50LXNsb3QgbmFtZT1cInBhZ2UtZm9vdGVyLWVuZFwiICNzdWZmaXhTbG90PVwic2xvdFwiPjwvYXhwLWNvbXBvbmVudC1zbG90PlxuICAgICAgPC9heHAtbGF5b3V0LXN1ZmZpeD5cbiAgICA8L2F4cC1wYWdlLWZvb3Rlcj5cbiAgPC9heHAtcGFnZS1mb290ZXItY29udGFpbmVyPlxuICA8IS0tLS0tLS0tIEZpbmlzaCBQYWdlIEZvb3RlciAgLS0tLS0tLS0+XG48L2F4cC1sYXlvdXQtY29udGFpbmVyPlxuPCEtLS0tLS0tLSBGaW5pc2ggTWFpbiBMYXlvdXQgQ29udGFpbmVyICAtLS0tLS0tLT4iXX0=","import { AXToastService } from '@acorex/components/toast';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPHomePageService } from '@acorex/platform/common';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { Component, computed, effect, inject, signal, viewChild } from '@angular/core';\nimport { isEmpty, isNil } from 'lodash-es';\nimport { AXPPageLayoutComponent } from './page-layout.component';\nimport { AXPPolicyEngineService } from '@acorex/platform/runtime';\nimport * as i0 from \"@angular/core\";\nexport class AXPPageLayoutBaseComponent {\n constructor() {\n //#region ---------------- Services ----------------\n this.layoutService = inject(AXPLayoutThemeService);\n this.sessionService = inject(AXPSessionService);\n this.translateService = inject(AXTranslationService);\n this.formatService = inject(AXFormatService);\n this.toastService = inject(AXToastService);\n this.homePageService = inject(AXPHomePageService);\n this.policyService = inject(AXPPolicyEngineService);\n //#endregion\n //#region ---------------- Signal to force recomputation ----------------\n this._updateTrigger = signal(0, ...(ngDevMode ? [{ debugName: \"_updateTrigger\" }] : []));\n this.updateTrigger = this._updateTrigger.asReadonly();\n //#endregion\n //#region ---------------- Title ----------------\n this.title = signal('', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.titleIcon = signal(null, ...(ngDevMode ? [{ debugName: \"titleIcon\" }] : []));\n this.#titleEffect = effect(async () => {\n this.updateTrigger();\n this.title.set(await this.getPageTitle());\n const icon = await this.getPageIcon();\n this.titleIcon.set(icon);\n }, ...(ngDevMode ? [{ debugName: \"#titleEffect\" }] : []));\n this.hasTitle = computed(() => this.title() !== '', ...(ngDevMode ? [{ debugName: \"hasTitle\" }] : []));\n this.hasTitleIcon = computed(() => this.titleIcon() !== null, ...(ngDevMode ? [{ debugName: \"hasTitleIcon\" }] : []));\n //#endregion\n //#region ---------------- Description ----------------\n this.description = signal(null, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.hasDescription = computed(() => !isNil(this.description()) && !isEmpty(this.description()), ...(ngDevMode ? [{ debugName: \"hasDescription\" }] : []));\n this.#descriptionEffect = effect(async () => {\n this.updateTrigger();\n this.description.set(await this.getPageDescription());\n }, ...(ngDevMode ? [{ debugName: \"#descriptionEffect\" }] : []));\n //#endregion\n //#region ---------------- Breadcrumbs ----------------\n this.defaultBreadCrumbs = [\n {\n title: '@general:terms.interface.navigation.home',\n icon: 'fa-solid fa-home ax-text-xs ax-me-1',\n command: {\n name: 'navigate',\n options: {\n path: this.homePageService.getCurrent().path,\n },\n },\n },\n ];\n this.breadcrumbs = signal(this.defaultBreadCrumbs, ...(ngDevMode ? [{ debugName: \"breadcrumbs\" }] : []));\n this.#breadcrumbsEffect = effect(async () => {\n this.updateTrigger();\n const breadCrumbs = await this.getPageBreadcrumbs();\n this.breadcrumbs.set([...this.defaultBreadCrumbs, ...breadCrumbs]);\n }, ...(ngDevMode ? [{ debugName: \"#breadcrumbsEffect\" }] : []));\n this.hasBreadcrumbs = computed(() => this.breadcrumbs().length > 1, ...(ngDevMode ? [{ debugName: \"hasBreadcrumbs\" }] : []));\n //#endregion\n //#region ---------------- Badge ----------------\n this.badge = signal(null, ...(ngDevMode ? [{ debugName: \"badge\" }] : []));\n this.hasBadge = computed(() => this.badge() !== null, ...(ngDevMode ? [{ debugName: \"hasBadge\" }] : []));\n this.#badgeEffect = effect(async () => {\n this.updateTrigger();\n this.badge.set(await this.getPageBadge());\n }, ...(ngDevMode ? [{ debugName: \"#badgeEffect\" }] : []));\n //#endregion\n //#region ---------------- Status ----------------\n this.status = signal(null, ...(ngDevMode ? [{ debugName: \"status\" }] : []));\n this.hasStatus = computed(() => this.status() !== null, ...(ngDevMode ? [{ debugName: \"hasStatus\" }] : []));\n this.#statusEffect = effect(async () => {\n this.updateTrigger();\n this.status.set(await this.getPageStatus());\n }, ...(ngDevMode ? [{ debugName: \"#statusEffect\" }] : []));\n //#endregion\n //#region ---------------- Layout ----------------\n this.layout = viewChild(AXPPageLayoutComponent, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n //#endregion\n //#region ---------------- Actions ----------------\n this.primaryMenuItems = signal([], ...(ngDevMode ? [{ debugName: \"primaryMenuItems\" }] : []));\n this.hasPrimaryActions = computed(() => this.primaryMenuItems().filter(item => item.visible != false).length > 0, ...(ngDevMode ? [{ debugName: \"hasPrimaryActions\" }] : []));\n this.#primaryMenuItemsEffect = effect(async () => {\n this.updateTrigger();\n const items = await this.getPrimaryMenuItems();\n this.primaryMenuItems.set(items);\n }, ...(ngDevMode ? [{ debugName: \"#primaryMenuItemsEffect\" }] : []));\n this.secondaryMenuItems = signal([], ...(ngDevMode ? [{ debugName: \"secondaryMenuItems\" }] : []));\n this.hasSecondaryActions = computed(() => this.secondaryMenuItems().filter(item => item.visible != false).length > 0, ...(ngDevMode ? [{ debugName: \"hasSecondaryActions\" }] : []));\n this.#secondaryMenuItemsEffect = effect(async () => {\n this.updateTrigger();\n const items = await this.getSecondaryMenuItems();\n this.secondaryMenuItems.set(items);\n }, ...(ngDevMode ? [{ debugName: \"#secondaryMenuItemsEffect\" }] : []));\n this.hasActions = computed(() => this.hasPrimaryActions() || this.hasSecondaryActions(), ...(ngDevMode ? [{ debugName: \"hasActions\" }] : []));\n this.titleActions = signal([], ...(ngDevMode ? [{ debugName: \"titleActions\" }] : []));\n this.hasTitleActions = computed(() => this.titleActions().length > 0, ...(ngDevMode ? [{ debugName: \"hasTitleActions\" }] : []));\n this.#titleActionsEffect = effect(async () => {\n this.updateTrigger();\n this.titleActions.set(await this.getTitleActions());\n }, ...(ngDevMode ? [{ debugName: \"#titleActionsEffect\" }] : []));\n this.backButton = signal(null, ...(ngDevMode ? [{ debugName: \"backButton\" }] : []));\n this.hasBackButton = computed(() => this.backButton() !== null, ...(ngDevMode ? [{ debugName: \"hasBackButton\" }] : []));\n this.#backButtonEffect = effect(async () => {\n this.updateTrigger();\n this.backButton.set(await this.getBackButton());\n }, ...(ngDevMode ? [{ debugName: \"#backButtonEffect\" }] : []));\n }\n recompute() {\n this._updateTrigger.set(this._updateTrigger() + 1);\n }\n //#endregion\n //#region ---------------- Lifecycle hooks ----------------\n async ngOnInit() {\n this.translateService.langChanges$.subscribe(() => {\n this.recompute();\n });\n }\n #titleEffect;\n getPageTitle() {\n return '';\n }\n getPageIcon() {\n return null;\n }\n #descriptionEffect;\n getPageDescription() {\n return null;\n }\n #breadcrumbsEffect;\n getPageBreadcrumbs() {\n return [];\n }\n #badgeEffect;\n getPageBadge() {\n return null;\n }\n #statusEffect;\n getPageStatus() {\n return null;\n }\n //TODO: Remove this after migration to the new layout\n toggleEndSide() {\n //this.layout()?.toggleStartSide()\n }\n //TODO: Remove this after migration to the new layout\n toggleStartSide() {\n this.layout()?.toggleStartSide();\n }\n #primaryMenuItemsEffect;\n getPrimaryMenuItems() {\n return [];\n }\n #secondaryMenuItemsEffect;\n getSecondaryMenuItems() {\n return [];\n }\n #titleActionsEffect;\n getTitleActions() {\n return [];\n }\n getBackButton() {\n return null;\n }\n #backButtonEffect;\n //#endregion\n //#region ---------------- Handle Commands ----------------\n execute(command) { }\n startSideToggle() {\n this.layout();\n }\n onBackButtonClick() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPageLayoutBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.16\", type: AXPPageLayoutBaseComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"layout\", first: true, predicate: AXPPageLayoutComponent, descendants: true, isSignal: true }], ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPageLayoutBaseComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n template: '',\n }]\n }], propDecorators: { layout: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPPageLayoutComponent), { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1sYXlvdXQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC92aWV3cy9zcmMvbGliL2xheW91dHMvcGFnZS9wYWdlLWxheW91dC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNbEUsTUFBTSxPQUFnQiwwQkFBMEI7SUFKaEQ7UUFLRSx3REFBd0Q7UUFFckMsa0JBQWEsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM5QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hELGtCQUFhLEdBQUcs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RUFBRSxDQUFDO0lBQ1osQ0FBQztJQVVELFlBQVksQ0FHVDtJQUVPLFlBQVk7UUFDcEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBVUQsYUFBYSxDQUdWO0lBRU8sYUFBYTtRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFTRCxxREFBcUQ7SUFDM0MsYUFBYTtRQUNyQixrQ0FBa0M7SUFDcEMsQ0FBQztJQUVELHFEQUFxRDtJQUMzQyxlQUFlO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0lBVUQsdUJBQXVCLENBSXBCO0lBRU8sbUJBQW1CO1FBQzNCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQU1ELHlCQUF5QixDQUl0QjtJQUlPLHFCQUFxQjtRQUM3QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFNRCxtQkFBbUIsQ0FHaEI7SUFFTyxlQUFlO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQU1TLGFBQWE7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCLENBR2Q7SUFFSCxZQUFZO0lBRVosK0RBQStEO0lBRXhELE9BQU8sQ0FBQyxPQUEwQixJQUEwQixDQUFDO0lBRTdELGVBQWU7UUFDcEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxpQkFBaUIsS0FBMkIsQ0FBQzsrR0FuT2hDLDBCQUEwQjttR0FBMUIsMEJBQTBCLGdIQWlKakIsc0JBQXNCLGdFQW5KekMsRUFBRTs7NEZBRVEsMEJBQTBCO2tCQUovQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsRUFBRTtpQkFDYjt3RkFrSjhCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQSG9tZVBhZ2VTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEJhY2tCdXR0b24sIEFYUEJhZGdlLCBBWFBCcmVhZGNydW1iSXRlbSwgQVhQRXhlY3V0ZUNvbW1hbmQsIEFYUFBhZ2VTdGF0dXMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vcGFnZS1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUFBvbGljeUVuZ2luZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dEJhc2UgfSBmcm9tICcuL3BhZ2UtbGF5b3V0LmJhc2UnO1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQUGFnZUxheW91dEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBWFBQYWdlTGF5b3V0QmFzZSB7XG4gIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgU2VydmljZXMgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybWF0U2VydmljZSA9IGluamVjdChBWEZvcm1hdFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhvbWVQYWdlU2VydmljZSA9IGluamVjdChBWFBIb21lUGFnZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9saWN5U2VydmljZSA9IGluamVjdChBWFBQb2xpY3lFbmdpbmVTZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIFNpZ25hbCB0byBmb3JjZSByZWNvbXB1dGF0aW9uICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByaXZhdGUgX3VwZGF0ZVRyaWdnZXIgPSBzaWduYWwoMCk7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVRyaWdnZXIgPSB0aGlzLl91cGRhdGVUcmlnZ2VyLmFzUmVhZG9ubHkoKTtcblxuICBwcm90ZWN0ZWQgcmVjb21wdXRlKCkge1xuICAgIHRoaXMuX3VwZGF0ZVRyaWdnZXIuc2V0KHRoaXMuX3VwZGF0ZVRyaWdnZXIoKSArIDEpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBMaWZlY3ljbGUgaG9va3MgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxhbmdDaGFuZ2VzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgVGl0bGUgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHVibGljIHRpdGxlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICBwdWJsaWMgdGl0bGVJY29uID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICN0aXRsZUVmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgdGhpcy50aXRsZS5zZXQoYXdhaXQgdGhpcy5nZXRQYWdlVGl0bGUoKSk7XG4gICAgY29uc3QgaWNvbiA9IGF3YWl0IHRoaXMuZ2V0UGFnZUljb24oKTtcbiAgICB0aGlzLnRpdGxlSWNvbi5zZXQoaWNvbik7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBnZXRQYWdlVGl0bGUoKTogc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UGFnZUljb24oKTogc3RyaW5nIHwgbnVsbCB8IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGhhc1RpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aXRsZSgpICE9PSAnJyk7XG4gIHB1YmxpYyBoYXNUaXRsZUljb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRpdGxlSWNvbigpICE9PSBudWxsKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIERlc2NyaXB0aW9uICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgaGFzRGVzY3JpcHRpb24gPSBjb21wdXRlZCgoKSA9PiAhaXNOaWwodGhpcy5kZXNjcmlwdGlvbigpKSAmJiAhaXNFbXB0eSh0aGlzLmRlc2NyaXB0aW9uKCkpKTtcblxuICAjZGVzY3JpcHRpb25FZmZlY3QgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgIHRoaXMuZGVzY3JpcHRpb24uc2V0KGF3YWl0IHRoaXMuZ2V0UGFnZURlc2NyaXB0aW9uKCkpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgZ2V0UGFnZURlc2NyaXB0aW9uKCk6IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgQnJlYWRjcnVtYnMgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJpdmF0ZSBkZWZhdWx0QnJlYWRDcnVtYnM6IEFYUEJyZWFkY3J1bWJJdGVtW10gPSBbXG4gICAge1xuICAgICAgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UubmF2aWdhdGlvbi5ob21lJyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1ob21lIGF4LXRleHQteHMgYXgtbWUtMScsXG4gICAgICBjb21tYW5kOiB7XG4gICAgICAgIG5hbWU6ICduYXZpZ2F0ZScsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBwYXRoOiB0aGlzLmhvbWVQYWdlU2VydmljZS5nZXRDdXJyZW50KCkucGF0aCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXTtcblxuICBwdWJsaWMgYnJlYWRjcnVtYnMgPSBzaWduYWw8QVhQQnJlYWRjcnVtYkl0ZW1bXT4odGhpcy5kZWZhdWx0QnJlYWRDcnVtYnMpO1xuXG4gICNicmVhZGNydW1ic0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgY29uc3QgYnJlYWRDcnVtYnMgPSBhd2FpdCB0aGlzLmdldFBhZ2VCcmVhZGNydW1icygpO1xuICAgIHRoaXMuYnJlYWRjcnVtYnMuc2V0KFsuLi50aGlzLmRlZmF1bHRCcmVhZENydW1icywgLi4uYnJlYWRDcnVtYnNdKTtcbiAgfSk7XG5cbiAgcHVibGljIGhhc0JyZWFkY3J1bWJzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5icmVhZGNydW1icygpLmxlbmd0aCA+IDEpO1xuXG4gIHByb3RlY3RlZCBnZXRQYWdlQnJlYWRjcnVtYnMoKTogQVhQQnJlYWRjcnVtYkl0ZW1bXSB8IFByb21pc2U8QVhQQnJlYWRjcnVtYkl0ZW1bXT4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgQmFkZ2UgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHVibGljIGJhZGdlID0gc2lnbmFsPEFYUEJhZGdlIHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIGhhc0JhZGdlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5iYWRnZSgpICE9PSBudWxsKTtcblxuICAjYmFkZ2VFZmZlY3QgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgIHRoaXMuYmFkZ2Uuc2V0KGF3YWl0IHRoaXMuZ2V0UGFnZUJhZGdlKCkpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgZ2V0UGFnZUJhZGdlKCk6IEFYUEJhZGdlIHwgbnVsbCB8IFByb21pc2U8QVhQQmFkZ2UgfCBudWxsPiB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIFN0YXR1cyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICBwdWJsaWMgc3RhdHVzID0gc2lnbmFsPEFYUFBhZ2VTdGF0dXMgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgaGFzU3RhdHVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0dXMoKSAhPT0gbnVsbCk7XG5cbiAgI3N0YXR1c0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgdGhpcy5zdGF0dXMuc2V0KGF3YWl0IHRoaXMuZ2V0UGFnZVN0YXR1cygpKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGdldFBhZ2VTdGF0dXMoKTogQVhQUGFnZVN0YXR1cyB8IG51bGwgfCBQcm9taXNlPEFYUFBhZ2VTdGF0dXMgfCBudWxsPiB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIExheW91dCAgIC0tLS0tLS0tLS0tLS0tLS1cblxuXG4gIHByb3RlY3RlZCBsYXlvdXQgPSB2aWV3Q2hpbGQoQVhQUGFnZUxheW91dENvbXBvbmVudCk7XG5cbiAgLy9UT0RPOiBSZW1vdmUgdGhpcyBhZnRlciBtaWdyYXRpb24gdG8gdGhlIG5ldyBsYXlvdXRcbiAgcHJvdGVjdGVkIHRvZ2dsZUVuZFNpZGUoKSB7XG4gICAgLy90aGlzLmxheW91dCgpPy50b2dnbGVTdGFydFNpZGUoKVxuICB9XG5cbiAgLy9UT0RPOiBSZW1vdmUgdGhpcyBhZnRlciBtaWdyYXRpb24gdG8gdGhlIG5ldyBsYXlvdXRcbiAgcHJvdGVjdGVkIHRvZ2dsZVN0YXJ0U2lkZSgpIHtcbiAgICB0aGlzLmxheW91dCgpPy50b2dnbGVTdGFydFNpZGUoKVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBBY3Rpb25zICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHB1YmxpYyBwcmltYXJ5TWVudUl0ZW1zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcblxuICBwdWJsaWMgaGFzUHJpbWFyeUFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByaW1hcnlNZW51SXRlbXMoKS5maWx0ZXIoaXRlbSA9PiBpdGVtLnZpc2libGUgIT0gZmFsc2UpLmxlbmd0aCA+IDApO1xuXG4gICNwcmltYXJ5TWVudUl0ZW1zRWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICB0aGlzLnVwZGF0ZVRyaWdnZXIoKTtcbiAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMuZ2V0UHJpbWFyeU1lbnVJdGVtcygpO1xuICAgIHRoaXMucHJpbWFyeU1lbnVJdGVtcy5zZXQoaXRlbXMpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgZ2V0UHJpbWFyeU1lbnVJdGVtcygpOiBBWFBBY3Rpb25NZW51SXRlbVtdIHwgUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHVibGljIHNlY29uZGFyeU1lbnVJdGVtcyA9IHNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPihbXSk7XG5cbiAgcHVibGljIGhhc1NlY29uZGFyeUFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlY29uZGFyeU1lbnVJdGVtcygpLmZpbHRlcihpdGVtID0+IGl0ZW0udmlzaWJsZSAhPSBmYWxzZSkubGVuZ3RoID4gMCk7XG5cbiAgI3NlY29uZGFyeU1lbnVJdGVtc0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgY29uc3QgaXRlbXMgPSBhd2FpdCB0aGlzLmdldFNlY29uZGFyeU1lbnVJdGVtcygpO1xuICAgIHRoaXMuc2Vjb25kYXJ5TWVudUl0ZW1zLnNldChpdGVtcyk7XG4gIH0pO1xuXG4gIHB1YmxpYyBoYXNBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5oYXNQcmltYXJ5QWN0aW9ucygpIHx8IHRoaXMuaGFzU2Vjb25kYXJ5QWN0aW9ucygpKTtcblxuICBwcm90ZWN0ZWQgZ2V0U2Vjb25kYXJ5TWVudUl0ZW1zKCk6IEFYUEFjdGlvbk1lbnVJdGVtW10gfCBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwdWJsaWMgdGl0bGVBY3Rpb25zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcblxuICBwdWJsaWMgaGFzVGl0bGVBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aXRsZUFjdGlvbnMoKS5sZW5ndGggPiAwKTtcblxuICAjdGl0bGVBY3Rpb25zRWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICB0aGlzLnVwZGF0ZVRyaWdnZXIoKTtcbiAgICB0aGlzLnRpdGxlQWN0aW9ucy5zZXQoYXdhaXQgdGhpcy5nZXRUaXRsZUFjdGlvbnMoKSk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBnZXRUaXRsZUFjdGlvbnMoKTogQVhQQWN0aW9uTWVudUl0ZW1bXSB8IFByb21pc2U8QVhQQWN0aW9uTWVudUl0ZW1bXT4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrQnV0dG9uID0gc2lnbmFsPEFYUEJhY2tCdXR0b24gfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgaGFzQmFja0J1dHRvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYmFja0J1dHRvbigpICE9PSBudWxsKTtcblxuICBwcm90ZWN0ZWQgZ2V0QmFja0J1dHRvbigpOiAoQVhQQmFja0J1dHRvbiB8IG51bGwpIHwgUHJvbWlzZTxBWFBCYWNrQnV0dG9uIHwgbnVsbD4ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgI2JhY2tCdXR0b25FZmZlY3QgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgIHRoaXMuYmFja0J1dHRvbi5zZXQoYXdhaXQgdGhpcy5nZXRCYWNrQnV0dG9uKCkpO1xuICB9KTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIEhhbmRsZSBDb21tYW5kcyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICBwdWJsaWMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHsgfVxuXG4gIHB1YmxpYyBzdGFydFNpZGVUb2dnbGUoKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubGF5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25CYWNrQnV0dG9uQ2xpY2soKTogdm9pZCB8IFByb21pc2U8dm9pZD4geyB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=","export class AXPPopupLayoutBase {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtbGF5b3V0LmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC92aWV3cy9zcmMvbGliL2xheW91dHMvcG9wdXAvcG9wdXAtbGF5b3V0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixrQkFBa0I7Q0FXdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBBY3Rpb25NZW51SXRlbSwgQVhQRXhlY3V0ZUNvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBQb3B1cExheW91dEJhc2Uge1xuICAgIGFic3RyYWN0IHByaW1hcnlNZW51SXRlbXM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcbiAgICBhYnN0cmFjdCBzZWNvbmRhcnlNZW51SXRlbXM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcbiAgICBhYnN0cmFjdCB0aXRsZUFjdGlvbnM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcbiAgICBhYnN0cmFjdCBoYXNUaXRsZUFjdGlvbnM6IFNpZ25hbDxib29sZWFuPjtcbiAgICBhYnN0cmFjdCBoYXNQcmltYXJ5QWN0aW9uczogU2lnbmFsPGJvb2xlYW4+O1xuICAgIGFic3RyYWN0IGhhc1NlY29uZGFyeUFjdGlvbnM6IFNpZ25hbDxib29sZWFuPjtcbiAgICBhYnN0cmFjdCBoYXNBY3Rpb25zOiBTaWduYWw8Ym9vbGVhbj47XG4gICAgYWJzdHJhY3QgdGl0bGU6IFNpZ25hbDxzdHJpbmc+O1xuICAgIGFic3RyYWN0IGhhc1RpdGxlOiBTaWduYWw8Ym9vbGVhbj47XG4gICAgYWJzdHJhY3QgZXhlY3V0ZTogKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbn0gIl19","import { CommonModule } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, inject, ViewEncapsulation, } from '@angular/core';\n//\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from \"@acorex/cdk/common\";\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\n//\nimport { AXDrawerDirectiveModule } from '@acorex/cdk/drawer';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, } from '@acorex/platform/layout/components';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXPPopupLayoutBase } from './popup-layout.base';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/core/translation\";\nimport * as i4 from \"@angular/common\";\nexport class AXPPopupLayoutComponent {\n constructor() {\n this.popup = inject(AXPPopupLayoutBase);\n this.layoutService = inject(AXPLayoutThemeService);\n this.workflow = inject(AXPWorkflowService);\n this.#initialize = afterNextRender(async () => {\n this.checkScrollableContent();\n });\n this.#effect = effect(() => {\n this.popup?.title();\n this.checkScrollableContent();\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n #initialize;\n #effect;\n checkScrollableContent() {\n const content = document.querySelector('axp-popup-content');\n if (content && content.scrollHeight >= content.clientHeight) {\n content.classList.add('--scrollable');\n }\n }\n handleActionClick(item) {\n if (item.command && (item.items?.length ?? 0) == 0) {\n this.popup?.execute(item.command);\n }\n }\n handleSecondaryActionClick(item) {\n if (item.command) {\n this.popup?.execute(item.command);\n }\n }\n handleBackdropClick(e) {\n e.nativeEvent.preventDefault();\n e.nativeEvent.stopPropagation();\n e.component.hide();\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPopupLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.16\", type: AXPPopupLayoutComponent, isStandalone: true, selector: \"axp-popup-layout\", ngImport: i0, template: \"<axp-layout-container id=\\\"axp-popup-layout\\\" #container>\\n <ng-content select=\\\"axp-page-content\\\"></ng-content>\\n <axp-page-footer id=\\\"axp-popup-footer\\\" *translate=\\\"let t\\\">\\n <ax-prefix> </ax-prefix>\\n @if (popup.hasPrimaryActions()) {\\n <ax-suffix>\\n @for (item of popup.primaryMenuItems(); track $index) {\\n <ax-button\\n [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title)\\\"\\n [text]=\\\"(t(item.title) | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"item.color\\\"\\n (onClick)=\\\"handleActionClick(item)\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"{{ item.icon }}\\\"></i>\\n </ax-prefix>\\n </ax-button>\\n }\\n </ax-suffix>\\n }\\n </axp-page-footer>\\n</axp-layout-container>\\n\", styles: [\".axp-status-icon{font-size:.875rem;line-height:1}.axp-status-chip{display:inline-flex}.axp-status-chip--primary{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-status-icon--primary{color:rgb(var(--ax-sys-color-primary-dark-surface))}.axp-status-chip--secondary{background-color:rgb(var(--ax-sys-color-secondary-lighter-surface));color:rgb(var(--ax-sys-color-on-secondary-lighter-surface))}.axp-status-icon--secondary{color:rgb(var(--ax-sys-color-secondary-dark-surface))}.axp-status-chip--success{background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}.axp-status-icon--success{color:rgb(var(--ax-sys-color-success-dark-surface))}.axp-status-chip--warning{background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}.axp-status-icon--warning{color:rgb(var(--ax-sys-color-warning-dark-surface))}.axp-status-chip--danger{background-color:rgb(var(--ax-sys-color-danger-lighter-surface));color:rgb(var(--ax-sys-color-on-danger-lighter-surface))}.axp-status-icon--danger{color:rgb(var(--ax-sys-color-danger-dark-surface))}.axp-status-chip--info{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--info{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--accent1{background-color:rgb(var(--ax-sys-color-accent1-lighter-surface));color:rgb(var(--ax-sys-color-on-accent1-lighter-surface))}.axp-status-icon--accent1{color:rgb(var(--ax-sys-color-accent1-dark-surface))}.axp-status-chip--accent2{background-color:rgb(var(--ax-sys-color-accent2-lighter-surface));color:rgb(var(--ax-sys-color-on-accent2-lighter-surface))}.axp-status-icon--accent2{color:rgb(var(--ax-sys-color-accent2-dark-surface))}.axp-status-chip--accent3{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--accent3{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--neutral{background-color:rgb(var(--ax-sys-color-neutral-lighter-surface));color:rgb(var(--ax-sys-color-on-neutral-lighter-surface))}.axp-status-icon--neutral{color:rgb(var(--ax-sys-color-neutral-dark-surface))}axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}axp-layout-sections axp-layout-section>axp-layout-footer{opacity:0;animation:fadeInDown .5s ease-out forwards}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-popup-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container>axp-layout-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-popup-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-popup-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column}axp-popup-layout>axp-layout-container>axp-page-footer{border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer:is(.ax-dark *){--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-dark-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer{position:sticky;bottom:0;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-popup-layout>axp-layout-container>axp-page-footer.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: \n //\n AXCommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.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: AXBreadcrumbsModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { 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: AXTranslationModule }, { kind: \"directive\", type: i3.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"ngmodule\", type: AXDrawerDirectiveModule }, { kind: \"component\", type: \n //\n AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"component\", type: AXPThemeLayoutContainerComponent, selector: \"axp-layout-container\" }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPopupLayoutComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [\n CommonModule,\n //\n AXCommonModule,\n AXDecoratorModule,\n AXBreadcrumbsModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXButtonModule,\n AXTranslationModule,\n AXDrawerModule,\n AXDrawerDirectiveModule,\n //\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutContainerComponent,\n ], selector: 'axp-popup-layout', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"<axp-layout-container id=\\\"axp-popup-layout\\\" #container>\\n <ng-content select=\\\"axp-page-content\\\"></ng-content>\\n <axp-page-footer id=\\\"axp-popup-footer\\\" *translate=\\\"let t\\\">\\n <ax-prefix> </ax-prefix>\\n @if (popup.hasPrimaryActions()) {\\n <ax-suffix>\\n @for (item of popup.primaryMenuItems(); track $index) {\\n <ax-button\\n [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title)\\\"\\n [text]=\\\"(t(item.title) | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"item.color\\\"\\n (onClick)=\\\"handleActionClick(item)\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"{{ item.icon }}\\\"></i>\\n </ax-prefix>\\n </ax-button>\\n }\\n </ax-suffix>\\n }\\n </axp-page-footer>\\n</axp-layout-container>\\n\", styles: [\".axp-status-icon{font-size:.875rem;line-height:1}.axp-status-chip{display:inline-flex}.axp-status-chip--primary{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-status-icon--primary{color:rgb(var(--ax-sys-color-primary-dark-surface))}.axp-status-chip--secondary{background-color:rgb(var(--ax-sys-color-secondary-lighter-surface));color:rgb(var(--ax-sys-color-on-secondary-lighter-surface))}.axp-status-icon--secondary{color:rgb(var(--ax-sys-color-secondary-dark-surface))}.axp-status-chip--success{background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}.axp-status-icon--success{color:rgb(var(--ax-sys-color-success-dark-surface))}.axp-status-chip--warning{background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}.axp-status-icon--warning{color:rgb(var(--ax-sys-color-warning-dark-surface))}.axp-status-chip--danger{background-color:rgb(var(--ax-sys-color-danger-lighter-surface));color:rgb(var(--ax-sys-color-on-danger-lighter-surface))}.axp-status-icon--danger{color:rgb(var(--ax-sys-color-danger-dark-surface))}.axp-status-chip--info{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--info{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--accent1{background-color:rgb(var(--ax-sys-color-accent1-lighter-surface));color:rgb(var(--ax-sys-color-on-accent1-lighter-surface))}.axp-status-icon--accent1{color:rgb(var(--ax-sys-color-accent1-dark-surface))}.axp-status-chip--accent2{background-color:rgb(var(--ax-sys-color-accent2-lighter-surface));color:rgb(var(--ax-sys-color-on-accent2-lighter-surface))}.axp-status-icon--accent2{color:rgb(var(--ax-sys-color-accent2-dark-surface))}.axp-status-chip--accent3{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--accent3{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--neutral{background-color:rgb(var(--ax-sys-color-neutral-lighter-surface));color:rgb(var(--ax-sys-color-on-neutral-lighter-surface))}.axp-status-icon--neutral{color:rgb(var(--ax-sys-color-neutral-dark-surface))}axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}axp-layout-sections axp-layout-section>axp-layout-footer{opacity:0;animation:fadeInDown .5s ease-out forwards}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-popup-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container>axp-layout-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-popup-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-popup-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column}axp-popup-layout>axp-layout-container>axp-page-footer{border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer:is(.ax-dark *){--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-dark-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer{position:sticky;bottom:0;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-popup-layout>axp-layout-container>axp-page-footer.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9saWIvbGF5b3V0cy9wb3B1cC9wb3B1cC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvdmlld3Mvc3JjL2xpYi9sYXlvdXRzL3BvcHVwL3BvcHVwLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04saUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLEVBQUU7QUFDRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxFQUFFO0FBQ0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFN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SUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgZWZmZWN0LFxuICAgIGluamVjdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vL1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDbGlja0V2ZW50LCBBWENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYWNvcmV4L2Nkay9jb21tb25cIjtcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG4vL1xuaW1wb3J0IHsgQVhEcmF3ZXJEaXJlY3RpdmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9kcmF3ZXInO1xuaW1wb3J0IHsgQVhEcmF3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJhd2VyJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEV4ZWN1dGVDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZCc7XG5pbXBvcnQge1xuICAgIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsXG4gICAgQVhQVGhlbWVMYXlvdXRDb250YWluZXJDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBQb3B1cExheW91dEJhc2UgfSBmcm9tICcuL3BvcHVwLWxheW91dC5iYXNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgLy9cbiAgICAgICAgQVhDb21tb25Nb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgICAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICAgICAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICAgICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgICAgIEFYRHJhd2VyRGlyZWN0aXZlTW9kdWxlLFxuICAgICAgICAvL1xuICAgICAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgICAgICBBWFBUaGVtZUxheW91dENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wb3B1cC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BvcHVwLWxheW91dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHNlbGVjdG9yOiAnYXhwLXBvcHVwLWxheW91dCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQUG9wdXBMYXlvdXRDb21wb25lbnQge1xuICAgIHByb3RlY3RlZCBwb3B1cCA9IGluamVjdDxBWFBQb3B1cExheW91dEJhc2U+KEFYUFBvcHVwTGF5b3V0QmFzZSk7XG4gICAgcHJvdGVjdGVkIGxheW91dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcblxuICAgICNpbml0aWFsaXplID0gYWZ0ZXJOZXh0UmVuZGVyKGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja1Njcm9sbGFibGVDb250ZW50KCk7XG4gICAgfSk7XG5cbiAgICAjZWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgdGhpcy5wb3B1cD8udGl0bGUoKTtcbiAgICAgICAgdGhpcy5jaGVja1Njcm9sbGFibGVDb250ZW50KCk7XG4gICAgfSk7XG5cbiAgICBwcml2YXRlIGNoZWNrU2Nyb2xsYWJsZUNvbnRlbnQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdheHAtcG9wdXAtY29udGVudCcpO1xuICAgICAgICBpZiAoY29udGVudCAmJiBjb250ZW50LnNjcm9sbEhlaWdodCA+PSBjb250ZW50LmNsaWVudEhlaWdodCkge1xuICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QuYWRkKCctLXNjcm9sbGFibGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVBY3Rpb25DbGljayhpdGVtOiBBWFBBY3Rpb25NZW51SXRlbSkge1xuICAgICAgICBpZiAoaXRlbS5jb21tYW5kICYmIChpdGVtLml0ZW1zPy5sZW5ndGggPz8gMCkgPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5wb3B1cD8uZXhlY3V0ZShpdGVtLmNvbW1hbmQpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlU2Vjb25kYXJ5QWN0aW9uQ2xpY2soaXRlbTogQVhQQWN0aW9uTWVudUl0ZW0pIHtcbiAgICAgICAgaWYgKGl0ZW0uY29tbWFuZCkge1xuICAgICAgICAgICAgdGhpcy5wb3B1cD8uZXhlY3V0ZShpdGVtLmNvbW1hbmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGhhbmRsZUJhY2tkcm9wQ2xpY2soZTogQVhDbGlja0V2ZW50KSB7XG4gICAgICAgIGUubmF0aXZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5uYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5jb21wb25lbnQuaGlkZSgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufSAiLCI8YXhwLWxheW91dC1jb250YWluZXIgaWQ9XCJheHAtcG9wdXAtbGF5b3V0XCIgI2NvbnRhaW5lcj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLXBhZ2UtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgPGF4cC1wYWdlLWZvb3RlciBpZD1cImF4cC1wb3B1cC1mb290ZXJcIiAqdHJhbnNsYXRlPVwibGV0IHRcIj5cbiAgICA8YXgtcHJlZml4PiA8L2F4LXByZWZpeD5cbiAgICBAaWYgKHBvcHVwLmhhc1ByaW1hcnlBY3Rpb25zKCkpIHtcbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgcG9wdXAucHJpbWFyeU1lbnVJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICBbYXR0ci5pZF09XCInYXhwLWJ0bi1wcmltYXJ5LScgKyAoaXRlbS5uYW1lIHx8IGl0ZW0udGl0bGUpXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cIih0KGl0ZW0udGl0bGUpIHwgYXN5bmMpIVwiXG4gICAgICAgICAgICBbbG9va109XCInc29saWQnXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJpdGVtLmNvbG9yXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUFjdGlvbkNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7IGl0ZW0uaWNvbiB9fVwiPjwvaT5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICB9XG4gIDwvYXhwLXBhZ2UtZm9vdGVyPlxuPC9heHAtbGF5b3V0LWNvbnRhaW5lcj5cbiJdfQ==","import { AXToastService } from '@acorex/components/toast';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPHomePageService } from '@acorex/platform/common';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { Component, computed, effect, inject, signal, viewChild } from '@angular/core';\nimport { AXPPopupLayoutComponent } from './popup-layout.component';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport * as i0 from \"@angular/core\";\nexport class AXPPopupLayoutBaseComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n //#region ---------------- Services ----------------\n this.layoutService = inject(AXPLayoutThemeService);\n this.sessionService = inject(AXPSessionService);\n this.translateService = inject(AXTranslationService);\n this.formatService = inject(AXFormatService);\n this.toastService = inject(AXToastService);\n this.homePageService = inject(AXPHomePageService);\n //#endregion\n //#region ---------------- Signal to force recomputation ----------------\n this._updateTrigger = signal(0, ...(ngDevMode ? [{ debugName: \"_updateTrigger\" }] : []));\n this.updateTrigger = this._updateTrigger.asReadonly();\n //#endregion\n //#region ---------------- Title ----------------\n this.title = signal('', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.#titleEffect = effect(async () => {\n this.updateTrigger();\n this.title.set(await this.getPopupTitle());\n }, ...(ngDevMode ? [{ debugName: \"#titleEffect\" }] : []));\n this.hasTitle = computed(() => this.title() !== '', ...(ngDevMode ? [{ debugName: \"hasTitle\" }] : []));\n //#endregion\n //#region ---------------- Layout ----------------\n // Placeholder for popup layout reference if needed\n this.layout = viewChild(AXPPopupLayoutComponent, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n //#endregion\n //#region ---------------- Actions ----------------\n this.primaryMenuItems = signal([], ...(ngDevMode ? [{ debugName: \"primaryMenuItems\" }] : []));\n this.hasPrimaryActions = computed(() => this.primaryMenuItems().length > 0, ...(ngDevMode ? [{ debugName: \"hasPrimaryActions\" }] : []));\n this.#primaryMenuItemsEffect = effect(async () => {\n this.updateTrigger();\n this.primaryMenuItems.set(await this.getPrimaryMenuItems());\n }, ...(ngDevMode ? [{ debugName: \"#primaryMenuItemsEffect\" }] : []));\n this.secondaryMenuItems = signal([], ...(ngDevMode ? [{ debugName: \"secondaryMenuItems\" }] : []));\n this.hasSecondaryActions = computed(() => this.secondaryMenuItems().length > 0, ...(ngDevMode ? [{ debugName: \"hasSecondaryActions\" }] : []));\n this.#secondaryMenuItemsEffect = effect(async () => {\n this.updateTrigger();\n this.secondaryMenuItems.set(await this.getSecondaryMenuItems());\n }, ...(ngDevMode ? [{ debugName: \"#secondaryMenuItemsEffect\" }] : []));\n this.hasActions = computed(() => this.hasPrimaryActions() || this.hasSecondaryActions(), ...(ngDevMode ? [{ debugName: \"hasActions\" }] : []));\n this.titleActions = signal([], ...(ngDevMode ? [{ debugName: \"titleActions\" }] : []));\n this.hasTitleActions = computed(() => this.titleActions().length > 0, ...(ngDevMode ? [{ debugName: \"hasTitleActions\" }] : []));\n this.#titleActionsEffect = effect(async () => {\n this.updateTrigger();\n this.titleActions.set(await this.getTitleActions());\n }, ...(ngDevMode ? [{ debugName: \"#titleActionsEffect\" }] : []));\n }\n recompute() {\n this._updateTrigger.set(this._updateTrigger() + 1);\n }\n //#endregion\n //#region ---------------- Lifecycle hooks ----------------\n async ngOnInit() {\n super.ngOnInit();\n this.translateService.langChanges$.subscribe(() => {\n this.recompute();\n });\n }\n #titleEffect;\n getPopupTitle() {\n return '';\n }\n #primaryMenuItemsEffect;\n getPrimaryMenuItems() {\n return [];\n }\n #secondaryMenuItemsEffect;\n getSecondaryMenuItems() {\n return [];\n }\n #titleActionsEffect;\n getTitleActions() {\n return [];\n }\n //#endregion\n //#region ---------------- Handle Commands ----------------\n execute(command) { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPopupLayoutBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.16\", type: AXPPopupLayoutBaseComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"layout\", first: true, predicate: AXPPopupLayoutComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPopupLayoutBaseComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n template: '',\n }]\n }], propDecorators: { layout: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPPopupLayoutComponent), { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtbGF5b3V0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvdmlld3Mvc3JjL2xpYi9sYXlvdXRzL3BvcHVwL3BvcHVwLWxheW91dC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNOUQsTUFBTSxPQUFnQiwyQkFBNEIsU0FBUSxtQkFBbUI7SUFKN0U7O1FBS0ksd0RBQXdEO1FBRXJDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUMsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxpQkFB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QVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBUUQsWUFBWSxDQUdUO0lBRU8sYUFBYTtRQUNuQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFtQkQsdUJBQXVCLENBR3BCO0lBQ08sbUJBQW1CO1FBQ3pCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUlELHlCQUF5QixDQUd0QjtJQUNPLHFCQUFxQjtRQUMzQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFNRCxtQkFBbUIsQ0FHaEI7SUFDTyxlQUFlO1FBQ3JCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUdELFlBQVk7SUFFWiwrREFBK0Q7SUFFeEQsT0FBTyxDQUFDLE9BQTBCLElBQTBCLENBQUM7K0dBcEdsRCwyQkFBMkI7bUdBQTNCLDJCQUEyQixnSEF5RGhCLHVCQUF1Qix1RkEzRDFDLEVBQUU7OzRGQUVNLDJCQUEyQjtrQkFKaEQsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7d0ZBMERnQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b2FzdCc7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUEhvbWVQYWdlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEFjdGlvbk1lbnVJdGVtLCBBWFBFeGVjdXRlQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBQb3B1cExheW91dENvbXBvbmVudCB9IGZyb20gJy4vcG9wdXAtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQUG9wdXBMYXlvdXRCYXNlQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gICAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBTZXJ2aWNlcyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCByZWFkb25seSBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSBpbmplY3QoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaG9tZVBhZ2VTZXJ2aWNlID0gaW5qZWN0KEFYUEhvbWVQYWdlU2VydmljZSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgU2lnbmFsIHRvIGZvcmNlIHJlY29tcHV0YXRpb24gICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcml2YXRlIF91cGRhdGVUcmlnZ2VyID0gc2lnbmFsKDApO1xuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVRyaWdnZXIgPSB0aGlzLl91cGRhdGVUcmlnZ2VyLmFzUmVhZG9ubHkoKTtcblxuICAgIHByb3RlY3RlZCByZWNvbXB1dGUoKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVRyaWdnZXIuc2V0KHRoaXMuX3VwZGF0ZVRyaWdnZXIoKSArIDEpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBMaWZlY3ljbGUgaG9va3MgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxhbmdDaGFuZ2VzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIFRpdGxlICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIHRpdGxlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gICAgI3RpdGxlRWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgICAgIHRoaXMudGl0bGUuc2V0KGF3YWl0IHRoaXMuZ2V0UG9wdXBUaXRsZSgpKTtcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCBnZXRQb3B1cFRpdGxlKCk6IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRpdGxlKCkgIT09ICcnKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG5cblxuICAgIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgTGF5b3V0ICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLy8gUGxhY2Vob2xkZXIgZm9yIHBvcHVwIGxheW91dCByZWZlcmVuY2UgaWYgbmVlZGVkXG4gICAgcHJvdGVjdGVkIGxheW91dCA9IHZpZXdDaGlsZChBWFBQb3B1cExheW91dENvbXBvbmVudCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgQWN0aW9ucyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBwcmltYXJ5TWVudUl0ZW1zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcbiAgICBwdWJsaWMgaGFzUHJpbWFyeUFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByaW1hcnlNZW51SXRlbXMoKS5sZW5ndGggPiAwKTtcbiAgICAjcHJpbWFyeU1lbnVJdGVtc0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgICAgICB0aGlzLnByaW1hcnlNZW51SXRlbXMuc2V0KGF3YWl0IHRoaXMuZ2V0UHJpbWFyeU1lbnVJdGVtcygpKTtcbiAgICB9KTtcbiAgICBwcm90ZWN0ZWQgZ2V0UHJpbWFyeU1lbnVJdGVtcygpOiBBWFBBY3Rpb25NZW51SXRlbVtdIHwgUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2Vjb25kYXJ5TWVudUl0ZW1zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcbiAgICBwdWJsaWMgaGFzU2Vjb25kYXJ5QWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2Vjb25kYXJ5TWVudUl0ZW1zKCkubGVuZ3RoID4gMCk7XG4gICAgI3NlY29uZGFyeU1lbnVJdGVtc0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgICAgICB0aGlzLnNlY29uZGFyeU1lbnVJdGVtcy5zZXQoYXdhaXQgdGhpcy5nZXRTZWNvbmRhcnlNZW51SXRlbXMoKSk7XG4gICAgfSk7XG4gICAgcHJvdGVjdGVkIGdldFNlY29uZGFyeU1lbnVJdGVtcygpOiBBWFBBY3Rpb25NZW51SXRlbVtdIHwgUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzQWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaGFzUHJpbWFyeUFjdGlvbnMoKSB8fCB0aGlzLmhhc1NlY29uZGFyeUFjdGlvbnMoKSk7XG5cbiAgICBwdWJsaWMgdGl0bGVBY3Rpb25zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcbiAgICBwdWJsaWMgaGFzVGl0bGVBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aXRsZUFjdGlvbnMoKS5sZW5ndGggPiAwKTtcbiAgICAjdGl0bGVBY3Rpb25zRWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgICAgIHRoaXMudGl0bGVBY3Rpb25zLnNldChhd2FpdCB0aGlzLmdldFRpdGxlQWN0aW9ucygpKTtcbiAgICB9KTtcbiAgICBwcm90ZWN0ZWQgZ2V0VGl0bGVBY3Rpb25zKCk6IEFYUEFjdGlvbk1lbnVJdGVtW10gfCBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIEhhbmRsZSBDb21tYW5kcyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBleGVjdXRlKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKTogdm9pZCB8IFByb21pc2U8dm9pZD4geyB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn0gIl19","import { AXToastService } from '@acorex/components/toast';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPCommonSettings, AXPSettingsService } from '@acorex/platform/common';\nimport { AXPDeviceService, AXPExpressionEvaluatorService, getChangedPaths, getSmart, } from '@acorex/platform/core';\nimport { AXPPageStatus } from '@acorex/platform/layout/widget-core';\nimport { computed, effect, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { patchState, signalStore, withComputed, withMethods, withState } from '@ngrx/signals';\nimport { cloneDeep, isEqual } from 'lodash-es';\nexport const AXPLayoutDetailsViewViewModel = signalStore(withState(() => {\n const state = {\n adapter: null,\n rootContext: {},\n previousContext: {},\n context: {},\n scope: null,\n status: AXPPageStatus.Processing,\n currentPage: null,\n currentTab: null,\n pageSelectedRows: [],\n // Cache for rendered tabs per page to prevent re-rendering\n renderedTabsCache: {},\n };\n return state;\n}), withComputed((store, deviceService = inject(AXPDeviceService)) => ({\n icon: computed(() => store.adapter()?.icon ?? null),\n content: computed(() => {\n const pages = store.adapter()?.pages ?? [];\n const primaryPage = pages.find((p) => p.isPrimary) ?? pages[0];\n return primaryPage?.content ?? [];\n }),\n //\n showPages: computed(() => !store.currentPage() && !deviceService.isLarge()),\n isLarge: computed(() => deviceService.isLarge()),\n //\n isBusy: computed(() => store.status() == AXPPageStatus.Processing),\n isSaving: computed(() => store.status() == AXPPageStatus.Submitting),\n isDirty: computed(() => !isEqual(store.context(), store.previousContext())),\n changesCount: computed(() => getChangedPaths(store.context(), store.previousContext()).length),\n isLoaded: computed(() => store.adapter() != null),\n currentPageSelectedRows: computed(() => store.pageSelectedRows()),\n //\n // Rendered tabs for current page - prevents re-rendering on tab switch\n currentPageRenderedTabs: computed(() => {\n const currentPage = store.currentPage();\n if (!currentPage?.id) {\n return [];\n }\n const pageId = currentPage.id;\n const cache = store.renderedTabsCache();\n return cache[pageId] || [];\n }),\n})), withMethods((store, evaluatorService = inject(AXPExpressionEvaluatorService), router = inject(Router), route = inject(ActivatedRoute), deviceService = inject(AXPDeviceService), formatService = inject(AXFormatService), toastService = inject(AXToastService), translateService = inject(AXTranslationService), settingsService = inject(AXPSettingsService)) => {\n // Effect to automatically cache current tab when it changes\n effect(() => {\n const currentPage = store.currentPage();\n const currentTab = store.currentTab();\n if (currentPage?.id && currentTab?.id) {\n const pageId = currentPage.id;\n const tabId = currentTab.id;\n const cache = store.renderedTabsCache();\n const pageCache = cache[pageId] || [];\n // Check if tab is already in cache\n const isTabCached = pageCache.some((cached) => cached.tabId === tabId);\n if (!isTabCached) {\n // Add tab to cache for this page\n const newTabCache = {\n tabId: tabId,\n tab: currentTab,\n };\n const updatedPageCache = [...pageCache, newTabCache];\n // Update the cache immutably\n const updatedCache = {\n ...cache,\n [pageId]: updatedPageCache,\n };\n patchState(store, {\n renderedTabsCache: updatedCache,\n });\n }\n }\n });\n // Create an effect to handle route changes\n effect(() => {\n if (store.adapter()) {\n route.queryParams.subscribe((params) => {\n const pageId = params['page'];\n const adapter = store.adapter();\n if (adapter) {\n // Find current page from query param or conditionally default to first page\n let currentPage = null;\n if (pageId) {\n const foundPage = adapter.pages.find((p) => p.id === pageId);\n if (foundPage) {\n currentPage = foundPage;\n }\n }\n else {\n // Only auto-select primary page if layout is large\n if (deviceService.isLarge() || adapter.pages.length == 1) {\n const primaryPage = adapter.pages.find((p) => p.isPrimary) ?? adapter.pages[0];\n currentPage = primaryPage;\n }\n }\n // Set current tab to first tab of the current page (internal state only)\n let currentTab = currentPage?.tabs?.[0] ?? null;\n // Only update if there's a change\n if (store.currentPage()?.id !== currentPage?.id) {\n patchState(store, {\n currentPage,\n currentTab,\n });\n }\n }\n });\n }\n });\n return {\n async loadAdapter(adapter) {\n patchState(store, { adapter });\n // Load adapter context if adapter has load function\n let adapterContext = {};\n if (adapter.load) {\n const adapterResult = await adapter.load();\n adapterContext = adapterResult?.data ?? {};\n }\n patchState(store, {\n rootContext: cloneDeep(adapterContext),\n });\n },\n async loadPage(pageId, forceRefresh) {\n const adapter = store.adapter();\n if (!adapter) {\n throw new Error('Adapter must be loaded before loading page');\n }\n patchState(store, {\n status: AXPPageStatus.Processing,\n });\n // Get page ID from parameter or query params\n const queryParams = router.routerState.snapshot.root.queryParams;\n const targetPageId = pageId || queryParams['page'];\n // Find current page from page ID or conditionally default to first page\n let currentPage = null;\n if (targetPageId) {\n const foundPage = adapter.pages.find((p) => p.id === targetPageId);\n if (foundPage) {\n currentPage = foundPage;\n }\n }\n else {\n // Only auto-select primary page if layout is large\n if (deviceService.isLarge() || adapter.pages.length == 1) {\n const primaryPage = adapter.pages.find((p) => p.isPrimary) ?? adapter.pages[0];\n currentPage = primaryPage;\n }\n }\n // Load page data if current page exists\n let context = {};\n if (currentPage) {\n const currentPageIndex = adapter.pages.findIndex((p) => p.id === currentPage.id);\n const loadResult = await adapter.pages[currentPageIndex]?.load?.({ forceRefresh });\n context = loadResult?.data ?? {};\n }\n // Set current tab to first tab of the current page (internal state only)\n let currentTab = currentPage?.tabs?.[0] ?? null;\n patchState(store, {\n previousContext: cloneDeep(context),\n context: cloneDeep(context),\n status: AXPPageStatus.Rendered,\n currentPage,\n currentTab,\n });\n },\n async load(adapter) {\n // Setup expression evaluator scope\n const scope = {\n context: {\n eval: (path) => {\n return getSmart(store.context(), path);\n },\n isDirty: () => store.isDirty(),\n },\n };\n patchState(store, {\n scope,\n });\n //\n await this.loadAdapter(adapter);\n await this.loadPage(undefined, true);\n },\n updateContext(context) {\n patchState(store, {\n context,\n });\n },\n updatePageSelectedRows(rows) {\n patchState(store, {\n pageSelectedRows: rows,\n });\n },\n //Current Page\n currentPageTitle() {\n const raw = store.currentPage()?.title;\n if (raw) {\n return formatService.format(raw, 'string', store.context());\n }\n else {\n return null;\n }\n },\n currentPageDescription() {\n const raw = store.currentPage()?.description;\n if (raw) {\n return formatService.format(raw, 'string', store.context());\n }\n else {\n return null;\n }\n },\n async currentPagePrimaryActions() {\n const raw = store.currentPage()?.actions?.filter((a) => a.priority == 'primary') ?? [];\n const acceptAction = store.currentPage()?.settings?.commands?.accept;\n const rejectAction = store.currentPage()?.settings?.commands?.reject;\n if (rejectAction) {\n raw.push({\n priority: 'primary',\n zone: 'footer',\n name: 'reject',\n title: rejectAction.title,\n color: rejectAction.color,\n command: rejectAction.command,\n visible: rejectAction.visible,\n });\n }\n if (acceptAction) {\n raw.push({\n priority: 'primary',\n zone: 'footer',\n name: 'accept',\n title: acceptAction.title,\n color: acceptAction.color,\n command: acceptAction.command,\n visible: acceptAction.visible,\n });\n }\n const processed = await evaluatorService.evaluate(raw, store.scope());\n return processed;\n },\n async currentPageSecondaryActions() {\n const raw = store.currentPage()?.actions?.filter((a) => a.priority == 'secondary') ?? [];\n const processed = await evaluatorService.evaluate(raw, store.scope());\n return processed;\n },\n currentPageContent() {\n const content = store.currentPage()?.content;\n return content;\n },\n currentPageTabs() {\n return store.currentPage()?.tabs?.filter((tab) => tab.visible !== false);\n },\n setCurrentPage(page) {\n // Clear previous page cache if changing pages\n const previousPage = store.currentPage();\n if (previousPage?.id && previousPage.id !== page?.id) {\n this.clearPageTabCache(previousPage.id);\n }\n if (page) {\n const firstTab = page.tabs?.[0] ?? null;\n patchState(store, {\n currentPage: page,\n currentTab: firstTab,\n });\n router.navigate([], {\n queryParams: {\n page: page.id,\n },\n queryParamsHandling: 'merge',\n });\n }\n else {\n patchState(store, {\n currentPage: null,\n currentTab: null,\n });\n // Remove page query parameter\n const currentParams = { ...route.snapshot.queryParams };\n delete currentParams['page'];\n router.navigate([], {\n queryParams: currentParams,\n });\n }\n },\n //Current Tab\n setCurrentTab(tab) {\n patchState(store, {\n currentTab: tab,\n });\n // Cache management is handled automatically by the effect\n },\n getCurrentTabContent() {\n return store.currentTab()?.content ?? [];\n },\n //#region ---- Rendered Tabs Management ----\n /**\n * Get content for a specific rendered tab\n */\n getRenderedTabContent(tabId) {\n const renderedTabs = store.currentPageRenderedTabs();\n const renderedTab = renderedTabs.find((cached) => cached.tabId === tabId);\n return renderedTab?.tab?.content ?? [];\n },\n /**\n * Clear cache when page changes to free memory\n */\n clearPageTabCache(pageId) {\n const cache = store.renderedTabsCache();\n const updatedCache = { ...cache };\n delete updatedCache[pageId];\n patchState(store, {\n renderedTabsCache: updatedCache,\n });\n },\n //#endregion\n title() {\n const raw = store.showPages() ? (store.adapter()?.title ?? '') : (store.adapter()?.label ?? '');\n return raw ? formatService.format(raw, 'string', store.rootContext()) : null;\n },\n backButtonTitle() {\n const raw = store.showPages() ? (store.adapter()?.label ?? '') : (store.adapter()?.title ?? '');\n return raw ? formatService.format(raw, 'string', store.rootContext()) : null;\n },\n description() {\n const raw = store.adapter()?.description;\n if (raw) {\n return formatService.format(raw, 'string', store.rootContext());\n }\n else {\n return null;\n }\n },\n async primaryActions() {\n const raw = store.adapter()?.actions?.filter((a) => a.priority == 'primary') ?? [];\n const processed = await evaluatorService.evaluate(raw, store.scope());\n return processed;\n },\n async secondaryActions() {\n const raw = store.adapter()?.actions?.filter((a) => a.priority == 'secondary') ?? [];\n const processed = await evaluatorService.evaluate(raw, store.scope());\n return processed;\n },\n async breadcrumbs() {\n const breadcrumbs = await Promise.all(store.adapter()?.breadcrumbs?.map(async (b) => {\n const raw = b?.title ?? '';\n return {\n ...b,\n // title: await evaluatorService.evaluate(raw, store.scope() as AXPExpressionEvaluatorScope),\n title: await formatService.format(raw, 'string', store.rootContext()),\n };\n }) ?? []);\n // Add current page title as the last breadcrumb item\n const currentPageLabel = store.currentPage()?.label;\n const pages = store.adapter()?.pages ?? [];\n const primaryPage = pages.find((p) => p.isPrimary) ?? pages[0];\n const isMainPage = primaryPage?.id === store.currentPage()?.id;\n if (currentPageLabel && !isMainPage) {\n const processedCurrentPageTitle = formatService.format(currentPageLabel, 'string', store.context());\n breadcrumbs.push({\n title: processedCurrentPageTitle,\n });\n }\n return breadcrumbs;\n },\n async discard() {\n patchState(store, {\n context: cloneDeep(store.previousContext()),\n });\n },\n async save(command, form) {\n const formResult = await form.validate();\n if (!formResult.result) {\n return;\n }\n patchState(store, {\n status: AXPPageStatus.Submitting,\n });\n const result = await store.currentPage()?.execute?.(command, store.context());\n const enableOperationToasts = await settingsService.get(AXPCommonSettings.EnableOperationToasts);\n if (result?.success) {\n patchState(store, {\n previousContext: store.context(),\n });\n // After successful save, force refresh the rootContext and reload the current page\n try {\n await this.loadPage(store.currentPage()?.id, true);\n }\n catch (error) {\n console.error('Failed to refresh page after save', error);\n }\n if (enableOperationToasts) {\n toastService.show({\n color: 'success',\n title: await translateService.translateAsync('@general:messages.generic.success.title'),\n content: await translateService.translateAsync('@general:messages.generic.success.description'),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n else {\n if (enableOperationToasts) {\n toastService.show({\n color: 'danger',\n title: await translateService.translateAsync('@general:messages.generic.error.title'),\n content: result?.message?.text ||\n (await translateService.translateAsync('@general:messages.generic.error.description')),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n patchState(store, {\n status: AXPPageStatus.Submitted,\n });\n },\n goToListPage() {\n if (store.adapter()?.exitUrl) {\n router.navigate([store.adapter()?.exitUrl]);\n }\n },\n };\n}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy12aWV3LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9saWIvdmlld3MvZGV0YWlscy12aWV3L2RldGFpbHMtdmlldy52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLDZCQUE2QixFQUM3QixlQUFlLEVBQ2YsUUFBUSxHQUNULE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTy9DLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLFdBQVcsQ0FDdEQsU0FBUyxDQUFDLEdBQUcsRUFBRTtJQUNiLE1BQU0sS0FBSyxHQUFHO1FBQ1osT0FBTyxFQUFFLElBQTBDO1FBQ25ELFdBQVcsRUFBRSxFQUF5QjtRQUN0QyxlQUFl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cy9mb3JtJztcbmltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQQ29tbW9uU2V0dGluZ3MsIEFYUFNldHRpbmdzU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUERldmljZVNlcnZpY2UsXG4gIEFYUEV4ZWN1dGVDb21tYW5kLFxuICBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUsXG4gIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlLFxuICBnZXRDaGFuZ2VkUGF0aHMsXG4gIGdldFNtYXJ0LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQUGFnZVN0YXR1cyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBwYXRjaFN0YXRlLCBzaWduYWxTdG9yZSwgd2l0aENvbXB1dGVkLCB3aXRoTWV0aG9kcywgd2l0aFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQVhQTGF5b3V0RGV0YWlsc1ZpZXdBZGFwdGVyLFxuICBBWFBMYXlvdXREZXRhaWxzVmlld1BhZ2UsXG4gIEFYUExheW91dERldGFpbHNWaWV3VGFiSXRlbSxcbn0gZnJvbSAnLi9kZXRhaWxzLXZpZXcuYWRhcHRlcic7XG5cbmV4cG9ydCBjb25zdCBBWFBMYXlvdXREZXRhaWxzVmlld1ZpZXdNb2RlbCA9IHNpZ25hbFN0b3JlKFxuICB3aXRoU3RhdGUoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0ge1xuICAgICAgYWRhcHRlcjogbnVsbCBhcyBBWFBMYXlvdXREZXRhaWxzVmlld0FkYXB0ZXIgfCBudWxsLFxuICAgICAgcm9vdENvbnRleHQ6IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBwcmV2aW91c0NvbnRleHQ6IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb250ZXh0OiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgc2NvcGU6IG51bGwgYXMgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlIHwgbnVsbCxcbiAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nLFxuICAgICAgY3VycmVudFBhZ2U6IG51bGwgYXMgQVhQTGF5b3V0RGV0YWlsc1ZpZXdQYWdlIHwgbnVsbCxcbiAgICAgIGN1cnJlbnRUYWI6IG51bGwgYXMgQVhQTGF5b3V0RGV0YWlsc1ZpZXdUYWJJdGVtIHwgbnVsbCxcbiAgICAgIHBhZ2VTZWxlY3RlZFJvd3M6IFtdIGFzIGFueVtdLFxuICAgICAgLy8gQ2FjaGUgZm9yIHJlbmRlcmVkIHRhYnMgcGVyIHBhZ2UgdG8gcHJldmVudCByZS1yZW5kZXJpbmdcbiAgICAgIHJlbmRlcmVkVGFic0NhY2hlOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBBcnJheTx7IHRhYklkOiBzdHJpbmc7IHRhYjogQVhQTGF5b3V0RGV0YWlsc1ZpZXdUYWJJdGVtIH0+PixcbiAgICB9O1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfSksXG4gIHdpdGhDb21wdXRlZCgoc3RvcmUsIGRldmljZVNlcnZpY2UgPSBpbmplY3QoQVhQRGV2aWNlU2VydmljZSkpID0+ICh7XG4gICAgaWNvbjogY29tcHV0ZWQoKCkgPT4gc3RvcmUuYWRhcHRlcigpPy5pY29uID8/IG51bGwpLFxuICAgIGNvbnRlbnQ6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgIGNvbnN0IHBhZ2VzID0gc3RvcmUuYWRhcHRlcigpPy5wYWdlcyA/PyBbXTtcbiAgICAgIGNvbnN0IHByaW1hcnlQYWdlID0gcGFnZXMuZmluZCgocCkgPT4gcC5pc1ByaW1hcnkpID8/IHBhZ2VzWzBdO1xuICAgICAgcmV0dXJuIHByaW1hcnlQYWdlPy5jb250ZW50ID8/IFtdO1xuICAgIH0pLFxuICAgIC8vXG4gICAgc2hvd1BhZ2VzOiBjb21wdXRlZCgoKSA9PiAhc3RvcmUuY3VycmVudFBhZ2UoKSAmJiAhZGV2aWNlU2VydmljZS5pc0xhcmdlKCkpLFxuICAgIGlzTGFyZ2U6IGNvbXB1dGVkKCgpID0+IGRldmljZVNlcnZpY2UuaXNMYXJnZSgpKSxcbiAgICAvL1xuICAgIGlzQnVzeTogY29tcHV0ZWQoKCkgPT4gc3RvcmUuc3RhdHVzKCkgPT0gQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nKSxcbiAgICBpc1NhdmluZzogY29tcHV0ZWQoKCkgPT4gc3RvcmUuc3RhdHVzKCkgPT0gQVhQUGFnZVN0YXR1cy5TdWJtaXR0aW5nKSxcbiAgICBpc0RpcnR5OiBjb21wdXRlZCgoKSA9PiAhaXNFcXVhbChzdG9yZS5jb250ZXh0KCksIHN0b3JlLnByZXZpb3VzQ29udGV4dCgpKSksXG4gICAgY2hhbmdlc0NvdW50OiBjb21wdXRlZCgoKSA9PiBnZXRDaGFuZ2VkUGF0aHMoc3RvcmUuY29udGV4dCgpLCBzdG9yZS5wcmV2aW91c0NvbnRleHQoKSkubGVuZ3RoKSxcbiAgICBpc0xvYWRlZDogY29tcHV0ZWQoKCkgPT4gc3RvcmUuYWRhcHRlcigpICE9IG51bGwpLFxuICAgIGN1cnJlbnRQYWdlU2VsZWN0ZWRSb3dzOiBjb21wdXRlZCgoKSA9PiBzdG9yZS5wYWdlU2VsZWN0ZWRSb3dzKCkpLFxuICAgIC8vXG4gICAgLy8gUmVuZGVyZWQgdGFicyBmb3IgY3VycmVudCBwYWdlIC0gcHJldmVudHMgcmUtcmVuZGVyaW5nIG9uIHRhYiBzd2l0Y2hcbiAgICBjdXJyZW50UGFnZVJlbmRlcmVkVGFiczogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSBzdG9yZS5jdXJyZW50UGFnZSgpO1xuICAgICAgaWYgKCFjdXJyZW50UGFnZT8uaWQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYWdlSWQgPSBjdXJyZW50UGFnZS5pZDtcbiAgICAgIGNvbnN0IGNhY2hlID0gc3RvcmUucmVuZGVyZWRUYWJzQ2FjaGUoKTtcbiAgICAgIHJldHVybiBjYWNoZVtwYWdlSWRdIHx8IFtdO1xuICAgIH0pLFxuICB9KSksXG4gIHdpdGhNZXRob2RzKFxuICAgIChcbiAgICAgIHN0b3JlLFxuICAgICAgZXZhbHVhdG9yU2VydmljZSA9IGluamVjdChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSksXG4gICAgICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKSxcbiAgICAgIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKSxcbiAgICAgIGRldmljZVNlcnZpY2UgPSBpbmplY3QoQVhQRGV2aWNlU2VydmljZSksXG4gICAgICBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSksXG4gICAgICB0b2FzdFNlcnZpY2UgPSBpbmplY3QoQVhUb2FzdFNlcnZpY2UpLFxuICAgICAgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSksXG4gICAgICBzZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoQVhQU2V0dGluZ3NTZXJ2aWNlKSxcbiAgICApID0+IHtcbiAgICAgIC8vIEVmZmVjdCB0byBhdXRvbWF0aWNhbGx5IGNhY2hlIGN1cnJlbnQgdGFiIHdoZW4gaXQgY2hhbmdlc1xuICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSBzdG9yZS5jdXJyZW50UGFnZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50VGFiID0gc3RvcmUuY3VycmVudFRhYigpO1xuXG4gICAgICAgIGlmIChjdXJyZW50UGFnZT8uaWQgJiYgY3VycmVudFRhYj8uaWQpIHtcbiAgICAgICAgICBjb25zdCBwYWdlSWQgPSBjdXJyZW50UGFnZS5pZDtcbiAgICAgICAgICBjb25zdCB0YWJJZCA9IGN1cnJlbnRUYWIuaWQ7XG4gICAgICAgICAgY29uc3QgY2FjaGUgPSBzdG9yZS5yZW5kZXJlZFRhYnNDYWNoZSgpO1xuICAgICAgICAgIGNvbnN0IHBhZ2VDYWNoZSA9IGNhY2hlW3BhZ2VJZF0gfHwgW107XG5cbiAgICAgICAgICAvLyBDaGVjayBpZiB0YWIgaXMgYWxyZWFkeSBpbiBjYWNoZVxuICAgICAgICAgIGNvbnN0IGlzVGFiQ2FjaGVkID0gcGFnZUNhY2hlLnNvbWUoKGNhY2hlZCkgPT4gY2FjaGVkLnRhYklkID09PSB0YWJJZCk7XG5cbiAgICAgICAgICBpZiAoIWlzVGFiQ2FjaGVkKSB7XG4gICAgICAgICAgICAvLyBBZGQgdGFiIHRvIGNhY2hlIGZvciB0aGlzIHBhZ2VcbiAgICAgICAgICAgIGNvbnN0IG5ld1RhYkNhY2hlID0ge1xuICAgICAgICAgICAgICB0YWJJZDogdGFiSWQsXG4gICAgICAgICAgICAgIHRhYjogY3VycmVudFRhYixcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRQYWdlQ2FjaGUgPSBbLi4ucGFnZUNhY2hlLCBuZXdUYWJDYWNoZV07XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGUgaW1tdXRhYmx5XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkQ2FjaGUgPSB7XG4gICAgICAgICAgICAgIC4uLmNhY2hlLFxuICAgICAgICAgICAgICBbcGFnZUlkXTogdXBkYXRlZFBhZ2VDYWNoZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgcmVuZGVyZWRUYWJzQ2FjaGU6IHVwZGF0ZWRDYWNoZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIENyZWF0ZSBhbiBlZmZlY3QgdG8gaGFuZGxlIHJvdXRlIGNoYW5nZXNcbiAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChzdG9yZS5hZGFwdGVyKCkpIHtcbiAgICAgICAgICByb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFnZUlkID0gcGFyYW1zWydwYWdlJ107XG4gICAgICAgICAgICBjb25zdCBhZGFwdGVyID0gc3RvcmUuYWRhcHRlcigpO1xuICAgICAgICAgICAgaWYgKGFkYXB0ZXIpIHtcbiAgICAgICAgICAgICAgLy8gRmluZCBjdXJyZW50IHBhZ2UgZnJvbSBxdWVyeSBwYXJhbSBvciBjb25kaXRpb25hbGx5IGRlZmF1bHQgdG8gZmlyc3QgcGFnZVxuICAgICAgICAgICAgICBsZXQgY3VycmVudFBhZ2U6IEFYUExheW91dERldGFpbHNWaWV3UGFnZSB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgICBpZiAocGFnZUlkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmRQYWdlID0gYWRhcHRlci5wYWdlcy5maW5kKChwKSA9PiBwLmlkID09PSBwYWdlSWQpO1xuICAgICAgICAgICAgICAgIGlmIChmb3VuZFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlID0gZm91bmRQYWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBPbmx5IGF1dG8tc2VsZWN0IHByaW1hcnkgcGFnZSBpZiBsYXlvdXQgaXMgbGFyZ2VcbiAgICAgICAgICAgICAgICBpZiAoZGV2aWNlU2VydmljZS5pc0xhcmdlKCkgfHwgYWRhcHRlci5wYWdlcy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcHJpbWFyeVBhZ2UgPSBhZGFwdGVyLnBhZ2VzLmZpbmQoKHApID0+IHAuaXNQcmltYXJ5KSA/PyBhZGFwdGVyLnBhZ2VzWzBdO1xuICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2UgPSBwcmltYXJ5UGFnZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBTZXQgY3VycmVudCB0YWIgdG8gZmlyc3QgdGFiIG9mIHRoZSBjdXJyZW50IHBhZ2UgKGludGVybmFsIHN0YXRlIG9ubHkpXG4gICAgICAgICAgICAgIGxldCBjdXJyZW50VGFiID0gY3VycmVudFBhZ2U/LnRhYnM/LlswXSA/PyBudWxsO1xuXG4gICAgICAgICAgICAgIC8vIE9ubHkgdXBkYXRlIGlmIHRoZXJlJ3MgYSBjaGFuZ2VcbiAgICAgICAgICAgICAgaWYgKHN0b3JlLmN1cnJlbnRQYWdlKCk/LmlkICE9PSBjdXJyZW50UGFnZT8uaWQpIHtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZSxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYWIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFzeW5jIGxvYWRBZGFwdGVyKGFkYXB0ZXI6IEFYUExheW91dERldGFpbHNWaWV3QWRhcHRlcikge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgYWRhcHRlciB9KTtcblxuICAgICAgICAgIC8vIExvYWQgYWRhcHRlciBjb250ZXh0IGlmIGFkYXB0ZXIgaGFzIGxvYWQgZnVuY3Rpb25cbiAgICAgICAgICBsZXQgYWRhcHRlckNvbnRleHQgPSB7fTtcbiAgICAgICAgICBpZiAoYWRhcHRlci5sb2FkKSB7XG4gICAgICAgICAgICBjb25zdCBhZGFwdGVyUmVzdWx0ID0gYXdhaXQgYWRhcHRlci5sb2FkKCk7XG4gICAgICAgICAgICBhZGFwdGVyQ29udGV4dCA9IGFkYXB0ZXJSZXN1bHQ/LmRhdGEgPz8ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgcm9vdENvbnRleHQ6IGNsb25lRGVlcChhZGFwdGVyQ29udGV4dCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgYXN5bmMgbG9hZFBhZ2UocGFnZUlkPzogc3RyaW5nLCBmb3JjZVJlZnJlc2g/OiBib29sZWFuKSB7XG4gICAgICAgICAgY29uc3QgYWRhcHRlciA9IHN0b3JlLmFkYXB0ZXIoKTtcbiAgICAgICAgICBpZiAoIWFkYXB0ZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQWRhcHRlciBtdXN0IGJlIGxvYWRlZCBiZWZvcmUgbG9hZGluZyBwYWdlJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlByb2Nlc3NpbmcsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICAvLyBHZXQgcGFnZSBJRCBmcm9tIHBhcmFtZXRlciBvciBxdWVyeSBwYXJhbXNcbiAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290LnF1ZXJ5UGFyYW1zO1xuICAgICAgICAgIGNvbnN0IHRhcmdldFBhZ2VJZCA9IHBhZ2VJZCB8fCBxdWVyeVBhcmFtc1sncGFnZSddO1xuXG4gICAgICAgICAgLy8gRmluZCBjdXJyZW50IHBhZ2UgZnJvbSBwYWdlIElEIG9yIGNvbmRpdGlvbmFsbHkgZGVmYXVsdCB0byBmaXJzdCBwYWdlXG4gICAgICAgICAgbGV0IGN1cnJlbnRQYWdlOiBBWFBMYXlvdXREZXRhaWxzVmlld1BhZ2UgfCBudWxsID0gbnVsbDtcbiAgICAgICAgICBpZiAodGFyZ2V0UGFnZUlkKSB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZFBhZ2UgPSBhZGFwdGVyLnBhZ2VzLmZpbmQoKHApID0+IHAuaWQgPT09IHRhcmdldFBhZ2VJZCk7XG4gICAgICAgICAgICBpZiAoZm91bmRQYWdlKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRQYWdlID0gZm91bmRQYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBPbmx5IGF1dG8tc2VsZWN0IHByaW1hcnkgcGFnZSBpZiBsYXlvdXQgaXMgbGFyZ2VcbiAgICAgICAgICAgIGlmIChkZXZpY2VTZXJ2aWNlLmlzTGFyZ2UoKSB8fCBhZGFwdGVyLnBhZ2VzLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByaW1hcnlQYWdlID0gYWRhcHRlci5wYWdlcy5maW5kKChwKSA9PiBwLmlzUHJpbWFyeSkgPz8gYWRhcHRlci5wYWdlc1swXTtcbiAgICAgICAgICAgICAgY3VycmVudFBhZ2UgPSBwcmltYXJ5UGFnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBMb2FkIHBhZ2UgZGF0YSBpZiBjdXJyZW50IHBhZ2UgZXhpc3RzXG4gICAgICAgICAgbGV0IGNvbnRleHQgPSB7fTtcbiAgICAgICAgICBpZiAoY3VycmVudFBhZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlSW5kZXggPSBhZGFwdGVyLnBhZ2VzLmZpbmRJbmRleCgocCkgPT4gcC5pZCA9PT0gY3VycmVudFBhZ2UuaWQpO1xuICAgICAgICAgICAgY29uc3QgbG9hZFJlc3VsdCA9IGF3YWl0IGFkYXB0ZXIucGFnZXNbY3VycmVudFBhZ2VJbmRleF0/LmxvYWQ/Lih7IGZvcmNlUmVmcmVzaCB9KTtcbiAgICAgICAgICAgIGNvbnRleHQgPSBsb2FkUmVzdWx0Py5kYXRhID8/IHt9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFNldCBjdXJyZW50IHRhYiB0byBmaXJzdCB0YWIgb2YgdGhlIGN1cnJlbnQgcGFnZSAoaW50ZXJuYWwgc3RhdGUgb25seSlcbiAgICAgICAgICBsZXQgY3VycmVudFRhYiA9IGN1cnJlbnRQYWdlPy50YWJzPy5bMF0gPz8gbnVsbDtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBwcmV2aW91c0NvbnRleHQ6IGNsb25lRGVlcChjb250ZXh0KSxcbiAgICAgICAgICAgIGNvbnRleHQ6IGNsb25lRGVlcChjb250ZXh0KSxcbiAgICAgICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5SZW5kZXJlZCxcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlLFxuICAgICAgICAgICAgY3VycmVudFRhYixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBhc3luYyBsb2FkKGFkYXB0ZXI6IEFYUExheW91dERldGFpbHNWaWV3QWRhcHRlcikge1xuICAgICAgICAgIC8vIFNldHVwIGV4cHJlc3Npb24gZXZhbHVhdG9yIHNjb3BlXG4gICAgICAgICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTbWFydChzdG9yZS5jb250ZXh0KCksIHBhdGgpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBpc0RpcnR5OiAoKSA9PiBzdG9yZS5pc0RpcnR5KCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRBZGFwdGVyKGFkYXB0ZXIpO1xuICAgICAgICAgIGF3YWl0IHRoaXMubG9hZFBhZ2UodW5kZWZpbmVkLCB0cnVlKTtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGVDb250ZXh0KGNvbnRleHQ6IGFueSkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdXBkYXRlUGFnZVNlbGVjdGVkUm93cyhyb3dzOiBhbnlbXSkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIHBhZ2VTZWxlY3RlZFJvd3M6IHJvd3MsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy9DdXJyZW50IFBhZ2VcbiAgICAgICAgY3VycmVudFBhZ2VUaXRsZSgpIHtcbiAgICAgICAgICBjb25zdCByYXcgPSBzdG9yZS5jdXJyZW50UGFnZSgpPy50aXRsZTtcbiAgICAgICAgICBpZiAocmF3KSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0U2VydmljZS5mb3JtYXQocmF3LCAnc3RyaW5nJywgc3RvcmUuY29udGV4dCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGN1cnJlbnRQYWdlRGVzY3JpcHRpb24oKSB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gc3RvcmUuY3VycmVudFBhZ2UoKT8uZGVzY3JpcHRpb247XG4gICAgICAgICAgaWYgKHJhdykge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFNlcnZpY2UuZm9ybWF0KHJhdywgJ3N0cmluZycsIHN0b3JlLmNvbnRleHQoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBhc3luYyBjdXJyZW50UGFnZVByaW1hcnlBY3Rpb25zKCkge1xuICAgICAgICAgIGNvbnN0IHJhdyA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LmFjdGlvbnM/LmZpbHRlcigoYSkgPT4gYS5wcmlvcml0eSA9PSAncHJpbWFyeScpID8/IFtdO1xuICAgICAgICAgIGNvbnN0IGFjY2VwdEFjdGlvbiA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LnNldHRpbmdzPy5jb21tYW5kcz8uYWNjZXB0O1xuICAgICAgICAgIGNvbnN0IHJlamVjdEFjdGlvbiA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LnNldHRpbmdzPy5jb21tYW5kcz8ucmVqZWN0O1xuICAgICAgICAgIGlmIChyZWplY3RBY3Rpb24pIHtcbiAgICAgICAgICAgIHJhdy5wdXNoKHtcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgem9uZTogJ2Zvb3RlcicsXG4gICAgICAgICAgICAgIG5hbWU6ICdyZWplY3QnLFxuICAgICAgICAgICAgICB0aXRsZTogcmVqZWN0QWN0aW9uLnRpdGxlLFxuICAgICAgICAgICAgICBjb2xvcjogcmVqZWN0QWN0aW9uLmNvbG9yLFxuICAgICAgICAgICAgICBjb21tYW5kOiByZWplY3RBY3Rpb24uY29tbWFuZCxcbiAgICAgICAgICAgICAgdmlzaWJsZTogcmVqZWN0QWN0aW9uLnZpc2libGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFjY2VwdEFjdGlvbikge1xuICAgICAgICAgICAgcmF3LnB1c2goe1xuICAgICAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICB6b25lOiAnZm9vdGVyJyxcbiAgICAgICAgICAgICAgbmFtZTogJ2FjY2VwdCcsXG4gICAgICAgICAgICAgIHRpdGxlOiBhY2NlcHRBY3Rpb24udGl0bGUsXG4gICAgICAgICAgICAgIGNvbG9yOiBhY2NlcHRBY3Rpb24uY29sb3IsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IGFjY2VwdEFjdGlvbi5jb21tYW5kLFxuICAgICAgICAgICAgICB2aXNpYmxlOiBhY2NlcHRBY3Rpb24udmlzaWJsZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBwcm9jZXNzZWQgPSBhd2FpdCBldmFsdWF0b3JTZXJ2aWNlLmV2YWx1YXRlKHJhdywgc3RvcmUuc2NvcGUoKSBhcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUpO1xuICAgICAgICAgIHJldHVybiBwcm9jZXNzZWQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgYXN5bmMgY3VycmVudFBhZ2VTZWNvbmRhcnlBY3Rpb25zKCkge1xuICAgICAgICAgIGNvbnN0IHJhdyA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LmFjdGlvbnM/LmZpbHRlcigoYSkgPT4gYS5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5JykgPz8gW107XG4gICAgICAgICAgY29uc3QgcHJvY2Vzc2VkID0gYXdhaXQgZXZhbHVhdG9yU2VydmljZS5ldmFsdWF0ZShyYXcsIHN0b3JlLnNjb3BlKCkgYXMgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlKTtcbiAgICAgICAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICAgICAgICB9LFxuXG4gICAgICAgIGN1cnJlbnRQYWdlQ29udGVudCgpIHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gc3RvcmUuY3VycmVudFBhZ2UoKT8uY29udGVudDtcbiAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcblxuICAgICAgICBjdXJyZW50UGFnZVRhYnMoKSB7XG4gICAgICAgICAgcmV0dXJuIHN0b3JlLmN1cnJlbnRQYWdlKCk/LnRhYnM/LmZpbHRlcigodGFiKSA9PiB0YWIudmlzaWJsZSAhPT0gZmFsc2UpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHNldEN1cnJlbnRQYWdlKHBhZ2U6IEFYUExheW91dERldGFpbHNWaWV3UGFnZSB8IG51bGwpIHtcbiAgICAgICAgICAvLyBDbGVhciBwcmV2aW91cyBwYWdlIGNhY2hlIGlmIGNoYW5naW5nIHBhZ2VzXG4gICAgICAgICAgY29uc3QgcHJldmlvdXNQYWdlID0gc3RvcmUuY3VycmVudFBhZ2UoKTtcbiAgICAgICAgICBpZiAocHJldmlvdXNQYWdlPy5pZCAmJiBwcmV2aW91c1BhZ2UuaWQgIT09IHBhZ2U/LmlkKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyUGFnZVRhYkNhY2hlKHByZXZpb3VzUGFnZS5pZCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0VGFiID0gcGFnZS50YWJzPy5bMF0gPz8gbnVsbDtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICBjdXJyZW50UGFnZTogcGFnZSxcbiAgICAgICAgICAgICAgY3VycmVudFRhYjogZmlyc3RUYWIsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgcGFnZTogcGFnZS5pZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgIGN1cnJlbnRQYWdlOiBudWxsLFxuICAgICAgICAgICAgICBjdXJyZW50VGFiOiBudWxsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBSZW1vdmUgcGFnZSBxdWVyeSBwYXJhbWV0ZXJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbXMgPSB7IC4uLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zIH07XG4gICAgICAgICAgICBkZWxldGUgY3VycmVudFBhcmFtc1sncGFnZSddO1xuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBjdXJyZW50UGFyYW1zLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIC8vQ3VycmVudCBUYWJcbiAgICAgICAgc2V0Q3VycmVudFRhYih0YWI6IEFYUExheW91dERldGFpbHNWaWV3VGFiSXRlbSkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIGN1cnJlbnRUYWI6IHRhYixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICAvLyBDYWNoZSBtYW5hZ2VtZW50IGlzIGhhbmRsZWQgYXV0b21hdGljYWxseSBieSB0aGUgZWZmZWN0XG4gICAgICAgIH0sXG5cbiAgICAgICAgZ2V0Q3VycmVudFRhYkNvbnRlbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIHN0b3JlLmN1cnJlbnRUYWIoKT8uY29udGVudCA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyNyZWdpb24gLS0tLSBSZW5kZXJlZCBUYWJzIE1hbmFnZW1lbnQgLS0tLVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXQgY29udGVudCBmb3IgYSBzcGVjaWZpYyByZW5kZXJlZCB0YWJcbiAgICAgICAgICovXG4gICAgICAgIGdldFJlbmRlcmVkVGFiQ29udGVudCh0YWJJZDogc3RyaW5nKSB7XG4gICAgICAgICAgY29uc3QgcmVuZGVyZWRUYWJzID0gc3RvcmUuY3VycmVudFBhZ2VSZW5kZXJlZFRhYnMoKTtcbiAgICAgICAgICBjb25zdCByZW5kZXJlZFRhYiA9IHJlbmRlcmVkVGFicy5maW5kKChjYWNoZWQpID0+IGNhY2hlZC50YWJJZCA9PT0gdGFiSWQpO1xuICAgICAgICAgIHJldHVybiByZW5kZXJlZFRhYj8udGFiPy5jb250ZW50ID8/IFtdO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDbGVhciBjYWNoZSB3aGVuIHBhZ2UgY2hhbmdlcyB0byBmcmVlIG1lbW9yeVxuICAgICAgICAgKi9cbiAgICAgICAgY2xlYXJQYWdlVGFiQ2FjaGUocGFnZUlkOiBzdHJpbmcpIHtcbiAgICAgICAgICBjb25zdCBjYWNoZSA9IHN0b3JlLnJlbmRlcmVkVGFic0NhY2hlKCk7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZENhY2hlID0geyAuLi5jYWNoZSB9O1xuICAgICAgICAgIGRlbGV0ZSB1cGRhdGVkQ2FjaGVbcGFnZUlkXTtcblxuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIHJlbmRlcmVkVGFic0NhY2hlOiB1cGRhdGVkQ2FjaGUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8jZW5kcmVnaW9uXG5cbiAgICAgICAgdGl0bGUoKSB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gc3RvcmUuc2hvd1BhZ2VzKCkgPyAoc3RvcmUuYWRhcHRlcigpPy50aXRsZSA/PyAnJykgOiAoc3RvcmUuYWRhcHRlcigpPy5sYWJlbCA/PyAnJyk7XG4gICAgICAgICAgcmV0dXJuIHJhdyA/IGZvcm1hdFNlcnZpY2UuZm9ybWF0KHJhdywgJ3N0cmluZycsIHN0b3JlLnJvb3RDb250ZXh0KCkpIDogbnVsbDtcbiAgICAgICAgfSxcblxuICAgICAgICBiYWNrQnV0dG9uVGl0bGUoKSB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gc3RvcmUuc2hvd1BhZ2VzKCkgPyAoc3RvcmUuYWRhcHRlcigpPy5sYWJlbCA/PyAnJykgOiAoc3RvcmUuYWRhcHRlcigpPy50aXRsZSA/PyAnJyk7XG4gICAgICAgICAgcmV0dXJuIHJhdyA/IGZvcm1hdFNlcnZpY2UuZm9ybWF0KHJhdywgJ3N0cmluZycsIHN0b3JlLnJvb3RDb250ZXh0KCkpIDogbnVsbDtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgICBjb25zdCByYXcgPSBzdG9yZS5hZGFwdGVyKCk/LmRlc2NyaXB0aW9uO1xuICAgICAgICAgIGlmIChyYXcpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRTZXJ2aWNlLmZvcm1hdChyYXcsICdzdHJpbmcnLCBzdG9yZS5yb290Q29udGV4dCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGFzeW5jIHByaW1hcnlBY3Rpb25zKCkge1xuICAgICAgICAgIGNvbnN0IHJhdyA9IHN0b3JlLmFkYXB0ZXIoKT8uYWN0aW9ucz8uZmlsdGVyKChhKSA9PiBhLnByaW9yaXR5ID09ICdwcmltYXJ5JykgPz8gW107XG4gICAgICAgICAgY29uc3QgcHJvY2Vzc2VkID0gYXdhaXQgZXZhbHVhdG9yU2VydmljZS5ldmFsdWF0ZShyYXcsIHN0b3JlLnNjb3BlKCkgYXMgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlKTtcbiAgICAgICAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICAgICAgICB9LFxuXG4gICAgICAgIGFzeW5jIHNlY29uZGFyeUFjdGlvbnMoKSB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gc3RvcmUuYWRhcHRlcigpPy5hY3Rpb25zPy5maWx0ZXIoKGEpID0+IGEucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScpID8/IFtdO1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IGF3YWl0IGV2YWx1YXRvclNlcnZpY2UuZXZhbHVhdGUocmF3LCBzdG9yZS5zY29wZSgpIGFzIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSk7XG4gICAgICAgICAgcmV0dXJuIHByb2Nlc3NlZDtcbiAgICAgICAgfSxcblxuICAgICAgICBhc3luYyBicmVhZGNydW1icygpIHtcbiAgICAgICAgICBjb25zdCBicmVhZGNydW1icyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgc3RvcmUuYWRhcHRlcigpPy5icmVhZGNydW1icz8ubWFwKGFzeW5jIChiKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJhdyA9IGI/LnRpdGxlID8/ICcnO1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmIsXG4gICAgICAgICAgICAgICAgLy8gdGl0bGU6IGF3YWl0IGV2YWx1YXRvclNlcnZpY2UuZXZhbHVhdGUocmF3LCBzdG9yZS5zY29wZSgpIGFzIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSksXG4gICAgICAgICAgICAgICAgdGl0bGU6IGF3YWl0IGZvcm1hdFNlcnZpY2UuZm9ybWF0KHJhdywgJ3N0cmluZycsIHN0b3JlLnJvb3RDb250ZXh0KCkpLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSkgPz8gW10sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIEFkZCBjdXJyZW50IHBhZ2UgdGl0bGUgYXMgdGhlIGxhc3QgYnJlYWRjcnVtYiBpdGVtXG4gICAgICAgICAgY29uc3QgY3VycmVudFBhZ2VMYWJlbCA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LmxhYmVsO1xuICAgICAgICAgIGNvbnN0IHBhZ2VzID0gc3RvcmUuYWRhcHRlcigpPy5wYWdlcyA/PyBbXTtcbiAgICAgICAgICBjb25zdCBwcmltYXJ5UGFnZSA9IHBhZ2VzLmZpbmQoKHApID0+IHAuaXNQcmltYXJ5KSA/PyBwYWdlc1swXTtcbiAgICAgICAgICBjb25zdCBpc01haW5QYWdlID0gcHJpbWFyeVBhZ2U/LmlkID09PSBzdG9yZS5jdXJyZW50UGFnZSgpPy5pZDtcbiAgICAgICAgICBpZiAoY3VycmVudFBhZ2VMYWJlbCAmJiAhaXNNYWluUGFnZSkge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkQ3VycmVudFBhZ2VUaXRsZSA9IGZvcm1hdFNlcnZpY2UuZm9ybWF0KGN1cnJlbnRQYWdlTGFiZWwsICdzdHJpbmcnLCBzdG9yZS5jb250ZXh0KCkpO1xuICAgICAgICAgICAgYnJlYWRjcnVtYnMucHVzaCh7XG4gICAgICAgICAgICAgIHRpdGxlOiBwcm9jZXNzZWRDdXJyZW50UGFnZVRpdGxlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGJyZWFkY3J1bWJzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGFzeW5jIGRpc2NhcmQoKSB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgY29udGV4dDogY2xvbmVEZWVwKHN0b3JlLnByZXZpb3VzQ29udGV4dCgpKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBhc3luYyBzYXZlKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kLCBmb3JtOiBBWEZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgICBjb25zdCBmb3JtUmVzdWx0ID0gYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuICAgICAgICAgIGlmICghZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlN1Ym1pdHRpbmcsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmUuY3VycmVudFBhZ2UoKT8uZXhlY3V0ZT8uKGNvbW1hbmQsIHN0b3JlLmNvbnRleHQoKSk7XG4gICAgICAgICAgY29uc3QgZW5hYmxlT3BlcmF0aW9uVG9hc3RzID0gYXdhaXQgc2V0dGluZ3NTZXJ2aWNlLmdldChBWFBDb21tb25TZXR0aW5ncy5FbmFibGVPcGVyYXRpb25Ub2FzdHMpO1xuICAgICAgICAgIGlmIChyZXN1bHQ/LnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgcHJldmlvdXNDb250ZXh0OiBzdG9yZS5jb250ZXh0KCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIEFmdGVyIHN1Y2Nlc3NmdWwgc2F2ZSwgZm9yY2UgcmVmcmVzaCB0aGUgcm9vdENvbnRleHQgYW5kIHJlbG9hZCB0aGUgY3VycmVudCBwYWdlXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRQYWdlKHN0b3JlLmN1cnJlbnRQYWdlKCk/LmlkLCB0cnVlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byByZWZyZXNoIHBhZ2UgYWZ0ZXIgc2F2ZScsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmFibGVPcGVyYXRpb25Ub2FzdHMpIHtcbiAgICAgICAgICAgICAgdG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOm1lc3NhZ2VzLmdlbmVyaWMuc3VjY2Vzcy50aXRsZScpLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOm1lc3NhZ2VzLmdlbmVyaWMuc3VjY2Vzcy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgICAgICAgICAgICAgdGltZU91dDogMzAwMCxcbiAgICAgICAgICAgICAgICB0aW1lT3V0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZW5hYmxlT3BlcmF0aW9uVG9hc3RzKSB7XG4gICAgICAgICAgICAgIHRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOm1lc3NhZ2VzLmdlbmVyaWMuZXJyb3IudGl0bGUnKSxcbiAgICAgICAgICAgICAgICBjb250ZW50OlxuICAgICAgICAgICAgICAgICAgcmVzdWx0Py5tZXNzYWdlPy50ZXh0IHx8XG4gICAgICAgICAgICAgICAgICAoYXdhaXQgdHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6bWVzc2FnZXMuZ2VuZXJpYy5lcnJvci5kZXNjcmlwdGlvbicpKSxcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRpbWVPdXQ6IDMwMDAsXG4gICAgICAgICAgICAgICAgdGltZU91dFByb2dyZXNzOiB0cnVlLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlN1Ym1pdHRlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBnb1RvTGlzdFBhZ2UoKSB7XG4gICAgICAgICAgaWYgKHN0b3JlLmFkYXB0ZXIoKT8uZXhpdFVybCkge1xuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlKFtzdG9yZS5hZGFwdGVyKCk/LmV4aXRVcmxdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gICksXG4pO1xuIl19","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostListener, ViewEncapsulation, computed, effect, inject, input, signal, viewChild, } from '@angular/core';\n//\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFileModule } from '@acorex/core/file';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule } from '@acorex/core/translation';\n//\nimport { AXResizableDirective } from '@acorex/cdk/resizable';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXPEntityCommandScope } from '@acorex/platform/common';\nimport { AXPBroadcastEventService, AXPDeviceService, } from '@acorex/platform/core';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutStartSideComponent, } from '@acorex/platform/layout/components';\nimport { AXPWidgetContainerComponent, AXPWidgetCoreModule, } from '@acorex/platform/layout/widget-core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '../../layouts';\nimport { AXPLayoutDetailsViewViewModel } from './details-view.viewmodel';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/dropdown\";\nimport * as i3 from \"@acorex/core/translation\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/tabs\";\nimport * as i6 from \"@acorex/platform/layout/widget-core\";\nimport * as i7 from \"@acorex/components/form\";\nimport * as i8 from \"@angular/common\";\nexport class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent {\n constructor() {\n super(...arguments);\n this.adapter = input.required(...(ngDevMode ? [{ debugName: \"adapter\" }] : []));\n //\n this.vm = inject(AXPLayoutDetailsViewViewModel);\n this.router = inject(Router);\n this.route = inject(ActivatedRoute);\n this.eventService = inject(AXPBroadcastEventService);\n this.deviceService = inject(AXPDeviceService);\n this.destroyed$ = new Subject();\n this.form = viewChild('form', ...(ngDevMode ? [{ debugName: \"form\" }] : []));\n this.widgetContainer = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: \"widgetContainer\" }] : []));\n this.footerPrimaryActions = signal([], ...(ngDevMode ? [{ debugName: \"footerPrimaryActions\" }] : []));\n this.footerSecondaryActions = signal([], ...(ngDevMode ? [{ debugName: \"footerSecondaryActions\" }] : []));\n this.footerActions = computed(() => [...this.footerPrimaryActions(), ...this.footerSecondaryActions()], ...(ngDevMode ? [{ debugName: \"footerActions\" }] : []));\n this.hasVisibleFooterPrimaryActions = computed(() => {\n const primaryFooterActions = this.footerPrimaryActions();\n return primaryFooterActions.some((action) => action.visible != false);\n }, ...(ngDevMode ? [{ debugName: \"hasVisibleFooterPrimaryActions\" }] : []));\n this.hasVisibleFooterSecondaryActions = computed(() => {\n const secondaryFooterActions = this.footerSecondaryActions();\n return secondaryFooterActions.some((action) => action.visible != false);\n }, ...(ngDevMode ? [{ debugName: \"hasVisibleFooterSecondaryActions\" }] : []));\n this.hasFooter = computed(() => {\n return ((this.hasVisibleFooterPrimaryActions() || this.hasVisibleFooterSecondaryActions()) &&\n !this.vm.currentPage()?.isReadonly);\n }, ...(ngDevMode ? [{ debugName: \"hasFooter\" }] : []));\n this.#FooterActionsEffect = effect(async () => {\n this.updateTrigger();\n const footerPrimaryActions = await this.getFooterPrimaryActions();\n const footerSecondaryActions = await this.getFooterSecondaryActions();\n this.footerPrimaryActions.set(footerPrimaryActions);\n this.footerSecondaryActions.set(footerSecondaryActions);\n }, ...(ngDevMode ? [{ debugName: \"#FooterActionsEffect\" }] : []));\n }\n /**\n * Append timestamp query param to trigger router to re-run guards/resolvers\n */\n async refreshLayout() {\n const router = this.router;\n const route = this.route;\n const now = Date.now();\n await router.navigate([], {\n relativeTo: route,\n queryParams: { _ts: now },\n queryParamsHandling: 'merge',\n });\n }\n async ngOnInit() {\n await super.ngOnInit();\n //\n await this.vm.load(this.adapter());\n this.eventService\n //TODO: Use the constant from the entity module\n .listen('entity:refresh-layout')\n .pipe(takeUntil(this.destroyed$))\n .subscribe((e) => {\n if (e.data.name == this.vm.adapter()?.name) {\n this.refreshLayout();\n }\n });\n }\n async ngAfterViewInit() {\n const listWidget = (await this.widgetContainer()?.find('page-list_table'));\n if (listWidget?.api && typeof listWidget.api === 'function') {\n const onSelectionChange = listWidget.api()['onSelectionChange'];\n if (onSelectionChange) {\n this.onSelectionChangeSubscription = onSelectionChange.subscribe((e) => {\n this.vm.updatePageSelectedRows(e);\n this.recompute();\n });\n }\n }\n }\n ngOnDestroy() {\n this.onSelectionChangeSubscription?.unsubscribe();\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n #FooterActionsEffect;\n handleOnContextChanged(e) {\n this.vm.updateContext(e.data);\n this.recompute();\n }\n handleSelectPage(page) {\n this.vm.setCurrentPage(page);\n }\n async getAllPrimaryActions() {\n if (!this.vm.showPages()) {\n const [primaryActions, pagePrimaryActions] = await Promise.all([\n this.vm.primaryActions(),\n this.vm.currentPagePrimaryActions(),\n ]);\n return [...primaryActions, ...pagePrimaryActions];\n }\n else {\n return [];\n }\n }\n async getPrimaryMenuItems() {\n return (await this.getAllPrimaryActions()).filter((a) => {\n return (a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.vm.currentPageSelectedRows().length) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.vm.currentPageSelectedRows().length)));\n });\n }\n async getFooterPrimaryActions() {\n return (await this.getAllPrimaryActions()).filter((item) => item.zone == 'footer');\n }\n async getAllSecondaryActions() {\n if (!this.vm.showPages()) {\n const [secondaryActions, pageSecondaryActions] = await Promise.all([\n this.vm.secondaryActions(),\n this.vm.currentPageSecondaryActions(),\n ]);\n return [...secondaryActions, ...pageSecondaryActions];\n }\n else {\n return [];\n }\n }\n async getSecondaryMenuItems() {\n return (await this.getAllSecondaryActions()).filter((item) => item.zone == 'header');\n }\n async getFooterSecondaryActions() {\n return (await this.getAllSecondaryActions()).filter((item) => item.zone == 'footer');\n }\n async getPageBreadcrumbs() {\n return (await this.vm.breadcrumbs()) ?? [];\n }\n async getPageTitle() {\n if (this.vm.showPages()) {\n return this.vm.title() || '';\n }\n else {\n return this.vm.currentPageTitle() || '';\n }\n }\n async getPageDescription() {\n if (this.vm.showPages()) {\n return (await this.vm.description()) || '';\n }\n else {\n return await this.vm.currentPageDescription();\n }\n }\n async getBackButton() {\n if (this.vm.adapter()?.pages?.length > 1) {\n return {\n title: this.vm.backButtonTitle() ?? '',\n };\n }\n else {\n return {\n title: this.vm.adapter()?.label ?? '',\n };\n }\n }\n // override async getPageBadge(): Promise<AXPBadge | null> {\n // if (this.vm.isDirty()) {\n // return {\n // title: await this.translateService.translateAsync('@general:terms.interface.save-status.not-saved.title'),\n // color: 'warning',\n // description: await this.translateService.translateAsync(\n // '@general:terms.interface.save-status.not-saved.description',\n // ),\n // };\n // }\n // return null;\n // }\n // override async getPageStatus(): Promise<AXPPageStatus | null> {\n // const adapter = this.vm.adapter();\n // if (!adapter?.name) {\n // return null;\n // }\n // // Parse entity name (format: \"ModuleName.EntityName\")\n // const [moduleName, entityName] = adapter.name.split('.');\n // if (!moduleName || !entityName) {\n // return null;\n // }\n // try {\n // // Get entity definition\n // const entityDefinition = await this.entityRegistry.resolve(moduleName, entityName);\n // if (!entityDefinition) {\n // return null;\n // }\n // // Find status plugin\n // const statusPlugin = entityDefinition.plugins?.find((p: any) => p.name === 'status');\n // if (!statusPlugin?.options) {\n // return null;\n // }\n // const statusOptions = statusPlugin.options as any;\n // const statusField = statusOptions.field ?? 'statusId';\n // const statusDefinitionKey = statusOptions.definition;\n // // Get status definition key from property widget options if not in plugin options\n // let definitionKey: string | undefined = typeof statusDefinitionKey === 'string' ? statusDefinitionKey : undefined;\n // if (!definitionKey) {\n // // Try to get from status property widget options\n // const statusProperty = entityDefinition.properties?.find((p: any) => p.name === statusField);\n // const widgetOptions = statusProperty?.schema?.interface?.options;\n // if (widgetOptions?.['definitionKey']) {\n // definitionKey = widgetOptions['definitionKey'];\n // }\n // }\n // if (!definitionKey) {\n // return null;\n // }\n // // Get current status value from entity context\n // const entity = this.vm.context();\n // const statusValue = entity?.[statusField];\n // if (!statusValue) {\n // return null;\n // }\n // return {\n // definitionKey,\n // value: typeof statusValue === 'string' ? statusValue : statusValue?.name ?? statusValue,\n // dataPath: statusField,\n // readonly: this.vm.currentPage()?.isReadonly ?? false,\n // };\n // } catch (error) {\n // console.warn('Failed to get page status:', error);\n // return null;\n // }\n // }\n /**\n * Get entity data for status chip component\n */\n getEntityData() {\n return this.vm.context() ?? null;\n }\n async onBackButtonClick() {\n // When back button is clicked in small layout, go back to page list\n if (!this.vm.showPages() && this.vm.adapter()?.pages?.length > 1) {\n this.vm.setCurrentPage(null);\n }\n else {\n this.vm.goToListPage();\n }\n }\n //#region ---- Command Execution ----\n async execute(command) {\n if (!this.vm.adapter()) {\n return;\n }\n const acceptCommand = this.vm.currentPage()?.settings?.commands?.accept?.command.name;\n const rejectCommand = this.vm.currentPage()?.settings?.commands?.reject?.command.name;\n if (command.name == acceptCommand) {\n await this.vm.save(command, this.form());\n this.recompute();\n return;\n }\n if (command.name == rejectCommand) {\n await this.vm.discard();\n this.recompute();\n return;\n }\n // Handle status update command\n if (command.name === 'update-status') {\n const transition = command.options?.['transition'];\n if (transition?.toStatus?.name) {\n const status = await this.getPageStatus();\n if (status?.dataPath) {\n // Update entity context with new status value\n const entity = this.vm.context();\n if (entity) {\n entity[status.dataPath] = transition.toStatus.name;\n this.vm.updateContext(entity);\n this.recompute();\n }\n }\n }\n return;\n }\n // Get all actions\n const [adapterPrimaryActions, adapterSecondaryActions, pagePrimaryActions, pageSecondaryActions] = await Promise.all([\n this.vm.primaryActions(),\n this.vm.secondaryActions(),\n this.vm.currentPagePrimaryActions(),\n this.vm.currentPageSecondaryActions(),\n ]);\n // Combine adapter actions (primary + secondary)\n const adapterActions = [...adapterPrimaryActions, ...adapterSecondaryActions];\n // Combine current page actions (primary + secondary)\n const pageActions = [...pagePrimaryActions, ...pageSecondaryActions];\n // Helper function to check if command exists in actions\n const commandExistsInActions = (actions, commandName) => {\n return actions.some((action) => action.command?.name === commandName);\n };\n // Check if command exists in adapter actions first\n if (commandExistsInActions(adapterActions, command.name)) {\n await this.vm.adapter()?.execute?.(command, this.vm.context());\n }\n // Check if command exists in current page actions\n else if (commandExistsInActions(pageActions, command.name)) {\n await this.vm\n .currentPage()\n ?.execute?.(command, this.vm.pageSelectedRows().length ? this.vm.pageSelectedRows() : this.vm.context());\n }\n }\n async handleKeyboardEvent(event) {\n if (event.ctrlKey) {\n switch (event.code) {\n case 'KeyS':\n event.preventDefault();\n event.stopPropagation();\n await this.execute({ name: this.vm.currentPage()?.settings?.commands?.accept?.command.name || 'save' });\n break;\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPLayoutDetailsViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.16\", type: AXPLayoutDetailsViewComponent, isStandalone: true, selector: \"axp-layout-details-view\", inputs: { adapter: { classPropertyName: \"adapter\", publicName: \"adapter\", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { \"document:keydown\": \"handleKeyboardEvent($event)\" } }, providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPLayoutDetailsViewComponent,\n },\n AXPLayoutDetailsViewViewModel,\n ], viewQueries: [{ propertyName: \"form\", first: true, predicate: [\"form\"], descendants: true, isSignal: true }, { propertyName: \"widgetContainer\", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if (vm.adapter()?.pages?.length! > 1 && vm.isLarge()) {\\n <axp-layout-start-side [axResizable]=\\\"true\\\">\\n <axp-layout-header>\\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\\n <axp-layout-description>{{ t(vm.description()) | async }}</axp-layout-description>\\n </axp-layout-header>\\n <axp-layout-content>\\n <ax-tabs class=\\\"axp-vertical-tabs\\\" [look]=\\\"'with-line-color'\\\" [location]=\\\"'end'\\\" [fitParent]=\\\"true\\\">\\n @for (item of vm.adapter()?.pages; track $index) {\\n <ax-tab-item\\n [text]=\\\"(formatService.format(item.label, 'string', vm.rootContext()) | translate | async)!\\\"\\n (onClick)=\\\"handleSelectPage(item)\\\"\\n [active]=\\\"vm.currentPage() == item\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </axp-layout-content>\\n </axp-layout-start-side>\\n }\\n <!-- Content Section -->\\n <axp-page-content class=\\\"ax-flex ax-flex-row ax-gap-4\\\">\\n @if (vm.showPages()) {\\n <axp-layout-list class=\\\"ax-w-full\\\">\\n @for (item of vm.adapter()?.pages; track $index) {\\n <axp-layout-list-item (click)=\\\"handleSelectPage(item)\\\">\\n <axp-layout-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\" class=\\\"ax-text-gray-500\\\"></ax-icon>\\n </axp-layout-prefix>\\n <axp-layout-content>\\n <a class=\\\"ax-font-semibold\\\">{{\\n formatService.format(item.label, 'string', vm.rootContext()) | translate | async\\n }}</a>\\n </axp-layout-content>\\n <axp-layout-suffix>\\n <ax-icon icon=\\\" far fa-chevron-right\\\" class=\\\"ax-text-gray-400\\\"></ax-icon>\\n </axp-layout-suffix>\\n </axp-layout-list-item>\\n }\\n </axp-layout-list>\\n } @else {\\n <ax-form class=\\\"ax-h-full ax-w-full\\\" #form>\\n <axp-widgets-container [context]=\\\"vm.context()\\\" (onContextChanged)=\\\"handleOnContextChanged($event)\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-w-full ax-gap-4 ax-h-full\\\">\\n @for (content of vm.currentPageContent(); track $index) {\\n <ng-container axp-widget-renderer [node]=\\\"content\\\" [mode]=\\\"content.mode ?? 'view'\\\"></ng-container>\\n }\\n @if (vm.currentPage()?.tabs?.length) {\\n <div class=\\\"axp-horizontal-tabs\\\">\\n <ax-tabs [location]=\\\"'bottom'\\\" [fitParent]=\\\"false\\\" look=\\\"classic\\\">\\n @for (tab of vm.currentPageTabs(); track $index) {\\n <ax-tab-item\\n (onClick)=\\\"vm.setCurrentTab(tab)\\\"\\n [text]=\\\"(tab.title | translate | async)!\\\"\\n [active]=\\\"vm.currentTab() == tab\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ tab.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n <div [class]=\\\"'content'\\\">\\n @for (renderedTab of vm.currentPageRenderedTabs(); track renderedTab.tabId) {\\n <div [class]=\\\"renderedTab.tabId === vm.currentTab()?.id ? '' : 'ax-hidden'\\\">\\n @for (content of vm.getRenderedTabContent(renderedTab.tabId); track $index) {\\n <ng-container axp-widget-renderer [node]=\\\"content\\\" [mode]=\\\"content.mode ?? 'view'\\\">\\n </ng-container>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n </axp-widgets-container>\\n </ax-form>\\n }\\n </axp-page-content>\\n\\n <!-- Footer Section -->\\n @if (hasFooter()) {\\n <axp-page-footer class=\\\"--animated\\\">\\n <axp-layout-suffix>\\n <!-- secondary footer actions -->\\n @if (hasVisibleFooterSecondaryActions()) {\\n <ax-button\\n [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [iconOnly]=\\\"deviceService.isSmall()\\\"\\n [text]=\\\"'@general:terms.interface.actions' | translate | async\\\"\\n [look]=\\\"deviceService.isSmall() ? 'blank' : 'solid'\\\"\\n [color]=\\\"'default'\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-ellipsis-vertical\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (action of footerSecondaryActions(); track $index) {\\n @if (action.visible != false) {\\n <ax-button-item\\n [text]=\\\"(t(action.title) | async)!\\\"\\n [color]=\\\"action.color\\\"\\n [disabled]=\\\"action.disabled || vm.isSaving()\\\"\\n (onClick)=\\\"execute(action.command!)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ action.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (action.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n\\n @if (hasVisibleFooterPrimaryActions()) {\\n @for (action of footerPrimaryActions(); track $index) {\\n @if (action.visible != false) {\\n <ax-button\\n [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [disabled]=\\\"action.disabled || vm.isSaving()\\\"\\n [text]=\\\"(t(action.title) | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"execute(action.command!)\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"{{ action.icon }}\\\"></i>\\n </ax-prefix>\\n @if (action?.items) {\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of action?.items; track $index) {\\n @if (sub.visible != false) {\\n <ax-button-item\\n [text]=\\\"(t(sub.title) | async)!\\\"\\n [color]=\\\"sub.color\\\"\\n [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"execute(sub.command!)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n }\\n </ax-button>\\n }\\n }\\n }\\n </axp-layout-suffix>\\n </axp-page-footer>\\n }\\n</axp-page-layout>\\n\", styles: [\"axp-layout-details-view .axp-vertical-tabs{--ax-comp-tabs-default-border-radius: 0}axp-layout-details-view .axp-vertical-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}axp-layout-details-view .axp-horizontal-tabs{display:flex;width:100%;flex-direction:column}axp-layout-details-view .axp-horizontal-tabs .content{margin-top:1rem;margin-bottom:1rem;display:block;width:100%}axp-layout-details-view axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}axp-layout-details-view axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-details-view axp-page-content ax-form form{height:100%}axp-layout-details-view axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: \n // Angular\n CommonModule }, { kind: \"ngmodule\", type: \n // ACoreX\n AXMenuModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i1.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i1.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\", \"closeParentOnClick\", \"lockOnLoading\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i2.AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i3.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"ngmodule\", type: AXBreadcrumbsModule }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"ngmodule\", type: AXFileModule }, { kind: \"ngmodule\", type: AXDateTimeModule }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"component\", type: i5.AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: i5.AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"directive\", type: AXResizableDirective, selector: \"[axResizable]\", inputs: [\"axResizable\", \"minWidth\", \"maxWidth\", \"dblClickAction\", \"width\", \"defaultWidth\"], outputs: [\"axResizableChange\", \"minWidthChange\", \"maxWidthChange\", \"dblClickActionChange\", \"widthChange\", \"defaultWidthChange\", \"onResizingStarted\", \"onResizingEnded\", \"onResizingDblClick\"] }, { kind: \"component\", type: \n //\n AXPThemeLayoutListComponent, selector: \"axp-layout-list\" }, { kind: \"component\", type: AXPThemeLayoutListItemComponent, selector: \"axp-layout-list-item\" }, { kind: \"component\", type: AXPPageLayoutComponent, selector: \"axp-page-layout\" }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: i6.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i6.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\", \"onLoad\"], exportAs: [\"widgetRenderer\"] }, { kind: \"component\", type: AXPThemeLayoutStartSideComponent, selector: \"axp-layout-page-start-side, axp-layout-start-side\" }, { kind: \"component\", type: AXPThemeLayoutHeaderComponent, selector: \"axp-layout-header\" }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i7.AXFormComponent, selector: \"ax-form\", inputs: [\"disabled\", \"readonly\", \"labelMode\", \"look\", \"messageStyle\", \"updateOn\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { kind: \"pipe\", type: i8.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPLayoutDetailsViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-layout-details-view', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n // Angular\n CommonModule,\n // ACoreX\n AXMenuModule,\n AXButtonModule,\n AXButtonGroupModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXTranslationModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXBreadcrumbsModule,\n AXBadgeModule,\n AXSearchBoxModule,\n AXFormatModule,\n AXFileModule,\n AXDateTimeModule,\n AXSearchBoxModule,\n AXTabsModule,\n AXResizableDirective,\n //\n AXPThemeLayoutListComponent,\n AXPThemeLayoutListItemComponent,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPWidgetCoreModule,\n AXPThemeLayoutStartSideComponent,\n AXPThemeLayoutHeaderComponent,\n AXFormModule,\n ], encapsulation: ViewEncapsulation.None, providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPLayoutDetailsViewComponent,\n },\n AXPLayoutDetailsViewViewModel,\n ], template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if (vm.adapter()?.pages?.length! > 1 && vm.isLarge()) {\\n <axp-layout-start-side [axResizable]=\\\"true\\\">\\n <axp-layout-header>\\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\\n <axp-layout-description>{{ t(vm.description()) | async }}</axp-layout-description>\\n </axp-layout-header>\\n <axp-layout-content>\\n <ax-tabs class=\\\"axp-vertical-tabs\\\" [look]=\\\"'with-line-color'\\\" [location]=\\\"'end'\\\" [fitParent]=\\\"true\\\">\\n @for (item of vm.adapter()?.pages; track $index) {\\n <ax-tab-item\\n [text]=\\\"(formatService.format(item.label, 'string', vm.rootContext()) | translate | async)!\\\"\\n (onClick)=\\\"handleSelectPage(item)\\\"\\n [active]=\\\"vm.currentPage() == item\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </axp-layout-content>\\n </axp-layout-start-side>\\n }\\n <!-- Content Section -->\\n <axp-page-content class=\\\"ax-flex ax-flex-row ax-gap-4\\\">\\n @if (vm.showPages()) {\\n <axp-layout-list class=\\\"ax-w-full\\\">\\n @for (item of vm.adapter()?.pages; track $index) {\\n <axp-layout-list-item (click)=\\\"handleSelectPage(item)\\\">\\n <axp-layout-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\" class=\\\"ax-text-gray-500\\\"></ax-icon>\\n </axp-layout-prefix>\\n <axp-layout-content>\\n <a class=\\\"ax-font-semibold\\\">{{\\n formatService.format(item.label, 'string', vm.rootContext()) | translate | async\\n }}</a>\\n </axp-layout-content>\\n <axp-layout-suffix>\\n <ax-icon icon=\\\" far fa-chevron-right\\\" class=\\\"ax-text-gray-400\\\"></ax-icon>\\n </axp-layout-suffix>\\n </axp-layout-list-item>\\n }\\n </axp-layout-list>\\n } @else {\\n <ax-form class=\\\"ax-h-full ax-w-full\\\" #form>\\n <axp-widgets-container [context]=\\\"vm.context()\\\" (onContextChanged)=\\\"handleOnContextChanged($event)\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-w-full ax-gap-4 ax-h-full\\\">\\n @for (content of vm.currentPageContent(); track $index) {\\n <ng-container axp-widget-renderer [node]=\\\"content\\\" [mode]=\\\"content.mode ?? 'view'\\\"></ng-container>\\n }\\n @if (vm.currentPage()?.tabs?.length) {\\n <div class=\\\"axp-horizontal-tabs\\\">\\n <ax-tabs [location]=\\\"'bottom'\\\" [fitParent]=\\\"false\\\" look=\\\"classic\\\">\\n @for (tab of vm.currentPageTabs(); track $index) {\\n <ax-tab-item\\n (onClick)=\\\"vm.setCurrentTab(tab)\\\"\\n [text]=\\\"(tab.title | translate | async)!\\\"\\n [active]=\\\"vm.currentTab() == tab\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ tab.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n <div [class]=\\\"'content'\\\">\\n @for (renderedTab of vm.currentPageRenderedTabs(); track renderedTab.tabId) {\\n <div [class]=\\\"renderedTab.tabId === vm.currentTab()?.id ? '' : 'ax-hidden'\\\">\\n @for (content of vm.getRenderedTabContent(renderedTab.tabId); track $index) {\\n <ng-container axp-widget-renderer [node]=\\\"content\\\" [mode]=\\\"content.mode ?? 'view'\\\">\\n </ng-container>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n </axp-widgets-container>\\n </ax-form>\\n }\\n </axp-page-content>\\n\\n <!-- Footer Section -->\\n @if (hasFooter()) {\\n <axp-page-footer class=\\\"--animated\\\">\\n <axp-layout-suffix>\\n <!-- secondary footer actions -->\\n @if (hasVisibleFooterSecondaryActions()) {\\n <ax-button\\n [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [iconOnly]=\\\"deviceService.isSmall()\\\"\\n [text]=\\\"'@general:terms.interface.actions' | translate | async\\\"\\n [look]=\\\"deviceService.isSmall() ? 'blank' : 'solid'\\\"\\n [color]=\\\"'default'\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-ellipsis-vertical\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (action of footerSecondaryActions(); track $index) {\\n @if (action.visible != false) {\\n <ax-button-item\\n [text]=\\\"(t(action.title) | async)!\\\"\\n [color]=\\\"action.color\\\"\\n [disabled]=\\\"action.disabled || vm.isSaving()\\\"\\n (onClick)=\\\"execute(action.command!)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ action.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (action.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n\\n @if (hasVisibleFooterPrimaryActions()) {\\n @for (action of footerPrimaryActions(); track $index) {\\n @if (action.visible != false) {\\n <ax-button\\n [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [disabled]=\\\"action.disabled || vm.isSaving()\\\"\\n [text]=\\\"(t(action.title) | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"execute(action.command!)\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"{{ action.icon }}\\\"></i>\\n </ax-prefix>\\n @if (action?.items) {\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of action?.items; track $index) {\\n @if (sub.visible != false) {\\n <ax-button-item\\n [text]=\\\"(t(sub.title) | async)!\\\"\\n [color]=\\\"sub.color\\\"\\n [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"execute(sub.command!)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n }\\n </ax-button>\\n }\\n }\\n }\\n </axp-layout-suffix>\\n </axp-page-footer>\\n }\\n</axp-page-layout>\\n\", styles: [\"axp-layout-details-view .axp-vertical-tabs{--ax-comp-tabs-default-border-radius: 0}axp-layout-details-view .axp-vertical-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}axp-layout-details-view .axp-horizontal-tabs{display:flex;width:100%;flex-direction:column}axp-layout-details-view .axp-horizontal-tabs .content{margin-top:1rem;margin-bottom:1rem;display:block;width:100%}axp-layout-details-view axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}axp-layout-details-view axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-details-view axp-page-content ax-form form{height:100%}axp-layout-details-view axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}\\n\"] }]\n }], propDecorators: { adapter: [{ type: i0.Input, args: [{ isSignal: true, alias: \"adapter\", required: true }] }], form: [{ type: i0.ViewChild, args: ['form', { isSignal: true }] }], widgetContainer: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }], handleKeyboardEvent: [{\n type: HostListener,\n args: ['document:keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9saWIvdmlld3MvZGV0YWlscy12aWV3L2RldGFpbHMtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC92aWV3cy9zcmMvbGliL3ZpZXdzL2RldGFpbHMtdmlldy9kZXRhaWxzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFHWixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsRUFBRTtBQUNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIs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LDREQUMzQiwrQkFBK0IsaUVBQy9CLHNCQUFzQiw0REFDdEIsNEJBQTRCLCtoQkFDNUIsbUJBQW1CLHlhQUNuQixnQ0FBZ0MsOEZBQ2hDLDZCQUE2Qiw2REFDN0IsWUFBWTs7NEZBV0gsNkJBQTZCO2tCQTdDekMsU0FBUzsrQkFHRSx5QkFBeUIsbUJBQ2xCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsVUFBVTt3QkFDVixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLEVBQUU7d0JBQ0YsMkJBQTJCO3dCQUMzQiwrQkFBK0I7d0JBQy9CLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1QixtQkFBbUI7d0JBQ25CLGdDQUFnQzt3QkFDaEMsNkJBQTZCO3dCQUM3QixZQUFZO3FCQUNiLGlCQUNjLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVywrQkFBK0I7eUJBQzNDO3dCQUNELDZCQUE2QjtxQkFDOUI7K0pBYzJDLE1BQU0sNkZBQ2lCLDJCQUEyQjtzQkE0VTdGLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdExpc3RlbmVyLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vXG5pbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYQnJlYWRjcnVtYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQnV0dG9uR3JvdXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWE1lbnVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWVudSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYRGF0ZVRpbWVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYRmlsZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7IEFYRm9ybWF0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbi8vXG5pbXBvcnQgeyBBWFJlc2l6YWJsZURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL3Jlc2l6YWJsZSc7XG5pbXBvcnQgeyBBWEZvcm1Db21wb25lbnQsIEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRTY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUEFjdGlvbk1lbnVJdGVtLFxuICBBWFBCYWNrQnV0dG9uLFxuICBBWFBCcmVhZGNydW1iSXRlbSxcbiAgQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlLFxuICBBWFBEZXZpY2VTZXJ2aWNlLFxuICBBWFBFeGVjdXRlQ29tbWFuZCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsXG4gIEFYUFRoZW1lTGF5b3V0SGVhZGVyQ29tcG9uZW50LFxuICBBWFBUaGVtZUxheW91dExpc3RDb21wb25lbnQsXG4gIEFYUFRoZW1lTGF5b3V0TGlzdEl0ZW1Db21wb25lbnQsXG4gIEFYUFRoZW1lTGF5b3V0U3RhcnRTaWRlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCxcbiAgQVhQV2lkZ2V0Q29yZUNvbnRleHRDaGFuZ2VFdmVudCxcbiAgQVhQV2lkZ2V0Q29yZU1vZHVsZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQRGF0YUxpc3RXaWRnZXRWaWV3Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBQYWdlTGF5b3V0QmFzZSwgQVhQUGFnZUxheW91dEJhc2VDb21wb25lbnQsIEFYUFBhZ2VMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9sYXlvdXRzJztcbmltcG9ydCB7XG4gIEFYUExheW91dERldGFpbHNWaWV3QWN0aW9uLFxuICBBWFBMYXlvdXREZXRhaWxzVmlld0FkYXB0ZXIsXG4gIEFYUExheW91dERldGFpbHNWaWV3UGFnZSxcbn0gZnJvbSAnLi9kZXRhaWxzLXZpZXcuYWRhcHRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXREZXRhaWxzVmlld1ZpZXdNb2RlbCB9IGZyb20gJy4vZGV0YWlscy12aWV3LnZpZXdtb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZGV0YWlscy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RldGFpbHMtdmlldy5jb21wb25lbnQuc2NzcycsXG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1kZXRhaWxzLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIC8vIEFuZ3VsYXJcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgLy8gQUNvcmVYXG4gICAgQVhNZW51TW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYQnV0dG9uR3JvdXBNb2R1bGUsXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYQnJlYWRjcnVtYnNNb2R1bGUsXG4gICAgQVhCYWRnZU1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWEZvcm1hdE1vZHVsZSxcbiAgICBBWEZpbGVNb2R1bGUsXG4gICAgQVhEYXRlVGltZU1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhSZXNpemFibGVEaXJlY3RpdmUsXG4gICAgLy9cbiAgICBBWFBUaGVtZUxheW91dExpc3RDb21wb25lbnQsXG4gICAgQVhQVGhlbWVMYXlvdXRMaXN0SXRlbUNvbXBvbmVudCxcbiAgICBBWFBQYWdlTGF5b3V0Q29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsXG4gICAgQVhQV2lkZ2V0Q29yZU1vZHVsZSxcbiAgICBBWFBUaGVtZUxheW91dFN0YXJ0U2lkZUNvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dEhlYWRlckNvbXBvbmVudCxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUFBhZ2VMYXlvdXRCYXNlLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYUExheW91dERldGFpbHNWaWV3Q29tcG9uZW50LFxuICAgIH0sXG4gICAgQVhQTGF5b3V0RGV0YWlsc1ZpZXdWaWV3TW9kZWwsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExheW91dERldGFpbHNWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQUGFnZUxheW91dEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGFkYXB0ZXIgPSBpbnB1dC5yZXF1aXJlZDxBWFBMYXlvdXREZXRhaWxzVmlld0FkYXB0ZXI+KCk7XG4gIC8vXG4gIHByb3RlY3RlZCB2bSA9IGluamVjdChBWFBMYXlvdXREZXRhaWxzVmlld1ZpZXdNb2RlbCk7XG4gIHByb3RlY3RlZCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJvdGVjdGVkIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJvdGVjdGVkIGV2ZW50U2VydmljZSA9IGluamVjdChBWFBCcm9hZGNhc3RFdmVudFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZGV2aWNlU2VydmljZSA9IGluamVjdChBWFBEZXZpY2VTZXJ2aWNlKTtcbiAgLy8gcHJvdGVjdGVkIGVudGl0eVJlZ2lzdHJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIG9uU2VsZWN0aW9uQ2hhbmdlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCBmb3JtID0gdmlld0NoaWxkPEFYRm9ybUNvbXBvbmVudD4oJ2Zvcm0nKTtcbiAgcHJvdGVjdGVkIHdpZGdldENvbnRhaW5lciA9IHZpZXdDaGlsZDxBWFBXaWRnZXRDb250YWluZXJDb21wb25lbnQ+KEFYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCk7XG5cbiAgcHJvdGVjdGVkIGZvb3RlclByaW1hcnlBY3Rpb25zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcbiAgcHJvdGVjdGVkIGZvb3RlclNlY29uZGFyeUFjdGlvbnMgPSBzaWduYWw8QVhQQWN0aW9uTWVudUl0ZW1bXT4oW10pO1xuXG4gIHByb3RlY3RlZCBmb290ZXJBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gWy4uLnRoaXMuZm9vdGVyUHJpbWFyeUFjdGlvbnMoKSwgLi4udGhpcy5mb290ZXJTZWNvbmRhcnlBY3Rpb25zKCldKTtcblxuICBwcm90ZWN0ZWQgaGFzVmlzaWJsZUZvb3RlclByaW1hcnlBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHByaW1hcnlGb290ZXJBY3Rpb25zID0gdGhpcy5mb290ZXJQcmltYXJ5QWN0aW9ucygpO1xuICAgIHJldHVybiBwcmltYXJ5Rm9vdGVyQWN0aW9ucy5zb21lKChhY3Rpb24pID0+IGFjdGlvbi52aXNpYmxlICE9IGZhbHNlKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGhhc1Zpc2libGVGb290ZXJTZWNvbmRhcnlBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlY29uZGFyeUZvb3RlckFjdGlvbnMgPSB0aGlzLmZvb3RlclNlY29uZGFyeUFjdGlvbnMoKTtcbiAgICByZXR1cm4gc2Vjb25kYXJ5Rm9vdGVyQWN0aW9ucy5zb21lKChhY3Rpb24pID0+IGFjdGlvbi52aXNpYmxlICE9IGZhbHNlKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGhhc0Zvb3RlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMuaGFzVmlzaWJsZUZvb3RlclByaW1hcnlBY3Rpb25zKCkgfHwgdGhpcy5oYXNWaXNpYmxlRm9vdGVyU2Vjb25kYXJ5QWN0aW9ucygpKSAmJlxuICAgICAgIXRoaXMudm0uY3VycmVudFBhZ2UoKT8uaXNSZWFkb25seVxuICAgICk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBcHBlbmQgdGltZXN0YW1wIHF1ZXJ5IHBhcmFtIHRvIHRyaWdnZXIgcm91dGVyIHRvIHJlLXJ1biBndWFyZHMvcmVzb2x2ZXJzXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgcmVmcmVzaExheW91dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByb3V0ZXIgPSB0aGlzLnJvdXRlcjtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMucm91dGU7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBhd2FpdCByb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHJlbGF0aXZlVG86IHJvdXRlLFxuICAgICAgcXVlcnlQYXJhbXM6IHsgX3RzOiBub3cgfSxcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5uZ09uSW5pdCgpO1xuICAgIC8vXG4gICAgYXdhaXQgdGhpcy52bS5sb2FkKHRoaXMuYWRhcHRlcigpKTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAvL1RPRE86IFVzZSB0aGUgY29uc3RhbnQgZnJvbSB0aGUgZW50aXR5IG1vZHVsZVxuICAgICAgLmxpc3RlbignZW50aXR5OnJlZnJlc2gtbGF5b3V0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICBpZiAoKGUuZGF0YSBhcyBhbnkpLm5hbWUgPT0gdGhpcy52bS5hZGFwdGVyKCk/Lm5hbWUpIHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hMYXlvdXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgbGlzdFdpZGdldCA9IChhd2FpdCB0aGlzLndpZGdldENvbnRhaW5lcigpPy5maW5kKCdwYWdlLWxpc3RfdGFibGUnKSkgYXMgQVhQRGF0YUxpc3RXaWRnZXRWaWV3Q29tcG9uZW50O1xuICAgIGlmIChsaXN0V2lkZ2V0Py5hcGkgJiYgdHlwZW9mIGxpc3RXaWRnZXQuYXBpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBvblNlbGVjdGlvbkNoYW5nZSA9IGxpc3RXaWRnZXQuYXBpKClbJ29uU2VsZWN0aW9uQ2hhbmdlJ10gYXMgU3ViamVjdDxhbnk+O1xuICAgICAgaWYgKG9uU2VsZWN0aW9uQ2hhbmdlKSB7XG4gICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VTdWJzY3JpcHRpb24gPSBvblNlbGVjdGlvbkNoYW5nZS5zdWJzY3JpYmUoKGU6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudm0udXBkYXRlUGFnZVNlbGVjdGVkUm93cyhlKTtcbiAgICAgICAgICB0aGlzLnJlY29tcHV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjRm9vdGVyQWN0aW9uc0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgY29uc3QgZm9vdGVyUHJpbWFyeUFjdGlvbnMgPSBhd2FpdCB0aGlzLmdldEZvb3RlclByaW1hcnlBY3Rpb25zKCk7XG4gICAgY29uc3QgZm9vdGVyU2Vjb25kYXJ5QWN0aW9ucyA9IGF3YWl0IHRoaXMuZ2V0Rm9vdGVyU2Vjb25kYXJ5QWN0aW9ucygpO1xuICAgIHRoaXMuZm9vdGVyUHJpbWFyeUFjdGlvbnMuc2V0KGZvb3RlclByaW1hcnlBY3Rpb25zKTtcbiAgICB0aGlzLmZvb3RlclNlY29uZGFyeUFjdGlvbnMuc2V0KGZvb3RlclNlY29uZGFyeUFjdGlvbnMpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlT25Db250ZXh0Q2hhbmdlZChlOiBBWFBXaWRnZXRDb3JlQ29udGV4dENoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy52bS51cGRhdGVDb250ZXh0KGUuZGF0YSk7XG4gICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVTZWxlY3RQYWdlKHBhZ2U6IEFYUExheW91dERldGFpbHNWaWV3UGFnZSkge1xuICAgIHRoaXMudm0uc2V0Q3VycmVudFBhZ2UocGFnZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0QWxsUHJpbWFyeUFjdGlvbnMoKTogUHJvbWlzZTxBWFBMYXlvdXREZXRhaWxzVmlld0FjdGlvbltdPiB7XG4gICAgaWYgKCF0aGlzLnZtLnNob3dQYWdlcygpKSB7XG4gICAgICBjb25zdCBbcHJpbWFyeUFjdGlvbnMsIHBhZ2VQcmltYXJ5QWN0aW9uc10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIHRoaXMudm0ucHJpbWFyeUFjdGlvbnMoKSxcbiAgICAgICAgdGhpcy52bS5jdXJyZW50UGFnZVByaW1hcnlBY3Rpb25zKCksXG4gICAgICBdKTtcbiAgICAgIHJldHVybiBbLi4ucHJpbWFyeUFjdGlvbnMsIC4uLnBhZ2VQcmltYXJ5QWN0aW9uc107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZ2V0UHJpbWFyeU1lbnVJdGVtcygpOiBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0QWxsUHJpbWFyeUFjdGlvbnMoKSkuZmlsdGVyKChhKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBhLnByaW9yaXR5ID09ICdwcmltYXJ5JyAmJlxuICAgICAgICAoKChhIGFzIGFueSkuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmIHRoaXMudm0uY3VycmVudFBhZ2VTZWxlY3RlZFJvd3MoKS5sZW5ndGgpIHx8XG4gICAgICAgICAgKChhIGFzIGFueSkuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy52bS5jdXJyZW50UGFnZVNlbGVjdGVkUm93cygpLmxlbmd0aCkpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldEZvb3RlclByaW1hcnlBY3Rpb25zKCk6IFByb21pc2U8QVhQQWN0aW9uTWVudUl0ZW1bXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRBbGxQcmltYXJ5QWN0aW9ucygpKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uem9uZSA9PSAnZm9vdGVyJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0QWxsU2Vjb25kYXJ5QWN0aW9ucygpOiBQcm9taXNlPEFYUExheW91dERldGFpbHNWaWV3QWN0aW9uW10+IHtcbiAgICBpZiAoIXRoaXMudm0uc2hvd1BhZ2VzKCkpIHtcbiAgICAgIGNvbnN0IFtzZWNvbmRhcnlBY3Rpb25zLCBwYWdlU2Vjb25kYXJ5QWN0aW9uc10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIHRoaXMudm0uc2Vjb25kYXJ5QWN0aW9ucygpLFxuICAgICAgICB0aGlzLnZtLmN1cnJlbnRQYWdlU2Vjb25kYXJ5QWN0aW9ucygpLFxuICAgICAgXSk7XG4gICAgICByZXR1cm4gWy4uLnNlY29uZGFyeUFjdGlvbnMsIC4uLnBhZ2VTZWNvbmRhcnlBY3Rpb25zXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBnZXRTZWNvbmRhcnlNZW51SXRlbXMoKTogUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldEFsbFNlY29uZGFyeUFjdGlvbnMoKSkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnpvbmUgPT0gJ2hlYWRlcicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldEZvb3RlclNlY29uZGFyeUFjdGlvbnMoKTogUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldEFsbFNlY29uZGFyeUFjdGlvbnMoKSkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnpvbmUgPT0gJ2Zvb3RlcicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGdldFBhZ2VCcmVhZGNydW1icygpOiBQcm9taXNlPEFYUEJyZWFkY3J1bWJJdGVtW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMudm0uYnJlYWRjcnVtYnMoKSkgPz8gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZ2V0UGFnZVRpdGxlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKHRoaXMudm0uc2hvd1BhZ2VzKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnZtLnRpdGxlKCkgfHwgJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZtLmN1cnJlbnRQYWdlVGl0bGUoKSB8fCAnJztcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRQYWdlRGVzY3JpcHRpb24oKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgaWYgKHRoaXMudm0uc2hvd1BhZ2VzKCkpIHtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy52bS5kZXNjcmlwdGlvbigpKSB8fCAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudm0uY3VycmVudFBhZ2VEZXNjcmlwdGlvbigpO1xuICAgIH1cbiAgfVxuICBvdmVycmlkZSBhc3luYyBnZXRCYWNrQnV0dG9uKCk6IFByb21pc2U8QVhQQmFja0J1dHRvbiB8IG51bGw+IHtcbiAgICBpZiAodGhpcy52bS5hZGFwdGVyKCk/LnBhZ2VzPy5sZW5ndGghID4gMSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6IHRoaXMudm0uYmFja0J1dHRvblRpdGxlKCkgPz8gJycsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogdGhpcy52bS5hZGFwdGVyKCk/LmxhYmVsID8/ICcnLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBvdmVycmlkZSBhc3luYyBnZXRQYWdlQmFkZ2UoKTogUHJvbWlzZTxBWFBCYWRnZSB8IG51bGw+IHtcbiAgLy8gICBpZiAodGhpcy52bS5pc0RpcnR5KCkpIHtcbiAgLy8gICAgIHJldHVybiB7XG4gIC8vICAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOnRlcm1zLmludGVyZmFjZS5zYXZlLXN0YXR1cy5ub3Qtc2F2ZWQudGl0bGUnKSxcbiAgLy8gICAgICAgY29sb3I6ICd3YXJuaW5nJyxcbiAgLy8gICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYyhcbiAgLy8gICAgICAgICAnQGdlbmVyYWw6dGVybXMuaW50ZXJmYWNlLnNhdmUtc3RhdHVzLm5vdC1zYXZlZC5kZXNjcmlwdGlvbicsXG4gIC8vICAgICAgICksXG4gIC8vICAgICB9O1xuICAvLyAgIH1cbiAgLy8gICByZXR1cm4gbnVsbDtcbiAgLy8gfVxuXG4gIC8vIG92ZXJyaWRlIGFzeW5jIGdldFBhZ2VTdGF0dXMoKTogUHJvbWlzZTxBWFBQYWdlU3RhdHVzIHwgbnVsbD4ge1xuICAvLyAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLnZtLmFkYXB0ZXIoKTtcbiAgLy8gICBpZiAoIWFkYXB0ZXI/Lm5hbWUpIHtcbiAgLy8gICAgIHJldHVybiBudWxsO1xuICAvLyAgIH1cblxuICAvLyAgIC8vIFBhcnNlIGVudGl0eSBuYW1lIChmb3JtYXQ6IFwiTW9kdWxlTmFtZS5FbnRpdHlOYW1lXCIpXG4gIC8vICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gYWRhcHRlci5uYW1lLnNwbGl0KCcuJyk7XG4gIC8vICAgaWYgKCFtb2R1bGVOYW1lIHx8ICFlbnRpdHlOYW1lKSB7XG4gIC8vICAgICByZXR1cm4gbnVsbDtcbiAgLy8gICB9XG5cbiAgLy8gICB0cnkge1xuICAvLyAgICAgLy8gR2V0IGVudGl0eSBkZWZpbml0aW9uXG4gIC8vICAgICBjb25zdCBlbnRpdHlEZWZpbml0aW9uID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAvLyAgICAgaWYgKCFlbnRpdHlEZWZpbml0aW9uKSB7XG4gIC8vICAgICAgIHJldHVybiBudWxsO1xuICAvLyAgICAgfVxuXG4gIC8vICAgICAvLyBGaW5kIHN0YXR1cyBwbHVnaW5cbiAgLy8gICAgIGNvbnN0IHN0YXR1c1BsdWdpbiA9IGVudGl0eURlZmluaXRpb24ucGx1Z2lucz8uZmluZCgocDogYW55KSA9PiBwLm5hbWUgPT09ICdzdGF0dXMnKTtcbiAgLy8gICAgIGlmICghc3RhdHVzUGx1Z2luPy5vcHRpb25zKSB7XG4gIC8vICAgICAgIHJldHVybiBudWxsO1xuICAvLyAgICAgfVxuXG4gIC8vICAgICBjb25zdCBzdGF0dXNPcHRpb25zID0gc3RhdHVzUGx1Z2luLm9wdGlvbnMgYXMgYW55O1xuICAvLyAgICAgY29uc3Qgc3RhdHVzRmllbGQgPSBzdGF0dXNPcHRpb25zLmZpZWxkID8/ICdzdGF0dXNJZCc7XG4gIC8vICAgICBjb25zdCBzdGF0dXNEZWZpbml0aW9uS2V5ID0gc3RhdHVzT3B0aW9ucy5kZWZpbml0aW9uO1xuXG4gIC8vICAgICAvLyBHZXQgc3RhdHVzIGRlZmluaXRpb24ga2V5IGZyb20gcHJvcGVydHkgd2lkZ2V0IG9wdGlvbnMgaWYgbm90IGluIHBsdWdpbiBvcHRpb25zXG4gIC8vICAgICBsZXQgZGVmaW5pdGlvbktleTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdHlwZW9mIHN0YXR1c0RlZmluaXRpb25LZXkgPT09ICdzdHJpbmcnID8gc3RhdHVzRGVmaW5pdGlvbktleSA6IHVuZGVmaW5lZDtcblxuICAvLyAgICAgaWYgKCFkZWZpbml0aW9uS2V5KSB7XG4gIC8vICAgICAgIC8vIFRyeSB0byBnZXQgZnJvbSBzdGF0dXMgcHJvcGVydHkgd2lkZ2V0IG9wdGlvbnNcbiAgLy8gICAgICAgY29uc3Qgc3RhdHVzUHJvcGVydHkgPSBlbnRpdHlEZWZpbml0aW9uLnByb3BlcnRpZXM/LmZpbmQoKHA6IGFueSkgPT4gcC5uYW1lID09PSBzdGF0dXNGaWVsZCk7XG4gIC8vICAgICAgIGNvbnN0IHdpZGdldE9wdGlvbnMgPSBzdGF0dXNQcm9wZXJ0eT8uc2NoZW1hPy5pbnRlcmZhY2U/Lm9wdGlvbnM7XG4gIC8vICAgICAgIGlmICh3aWRnZXRPcHRpb25zPy5bJ2RlZmluaXRpb25LZXknXSkge1xuICAvLyAgICAgICAgIGRlZmluaXRpb25LZXkgPSB3aWRnZXRPcHRpb25zWydkZWZpbml0aW9uS2V5J107XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cblxuICAvLyAgICAgaWYgKCFkZWZpbml0aW9uS2V5KSB7XG4gIC8vICAgICAgIHJldHVybiBudWxsO1xuICAvLyAgICAgfVxuXG4gIC8vICAgICAvLyBHZXQgY3VycmVudCBzdGF0dXMgdmFsdWUgZnJvbSBlbnRpdHkgY29udGV4dFxuICAvLyAgICAgY29uc3QgZW50aXR5ID0gdGhpcy52bS5jb250ZXh0KCk7XG4gIC8vICAgICBjb25zdCBzdGF0dXNWYWx1ZSA9IGVudGl0eT8uW3N0YXR1c0ZpZWxkXTtcbiAgLy8gICAgIGlmICghc3RhdHVzVmFsdWUpIHtcbiAgLy8gICAgICAgcmV0dXJuIG51bGw7XG4gIC8vICAgICB9XG5cbiAgLy8gICAgIHJldHVybiB7XG4gIC8vICAgICAgIGRlZmluaXRpb25LZXksXG4gIC8vICAgICAgIHZhbHVlOiB0eXBlb2Ygc3RhdHVzVmFsdWUgPT09ICdzdHJpbmcnID8gc3RhdHVzVmFsdWUgOiBzdGF0dXNWYWx1ZT8ubmFtZSA/PyBzdGF0dXNWYWx1ZSxcbiAgLy8gICAgICAgZGF0YVBhdGg6IHN0YXR1c0ZpZWxkLFxuICAvLyAgICAgICByZWFkb25seTogdGhpcy52bS5jdXJyZW50UGFnZSgpPy5pc1JlYWRvbmx5ID8/IGZhbHNlLFxuICAvLyAgICAgfTtcbiAgLy8gICB9IGNhdGNoIChlcnJvcikge1xuICAvLyAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gZ2V0IHBhZ2Ugc3RhdHVzOicsIGVycm9yKTtcbiAgLy8gICAgIHJldHVybiBudWxsO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBHZXQgZW50aXR5IGRhdGEgZm9yIHN0YXR1cyBjaGlwIGNvbXBvbmVudFxuICAgKi9cbiAgZ2V0RW50aXR5RGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudm0uY29udGV4dCgpID8/IG51bGw7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBvbkJhY2tCdXR0b25DbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBXaGVuIGJhY2sgYnV0dG9uIGlzIGNsaWNrZWQgaW4gc21hbGwgbGF5b3V0LCBnbyBiYWNrIHRvIHBhZ2UgbGlzdFxuICAgIGlmICghdGhpcy52bS5zaG93UGFnZXMoKSAmJiB0aGlzLnZtLmFkYXB0ZXIoKT8ucGFnZXM/Lmxlbmd0aCEgPiAxKSB7XG4gICAgICB0aGlzLnZtLnNldEN1cnJlbnRQYWdlKG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZtLmdvVG9MaXN0UGFnZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQ29tbWFuZCBFeGVjdXRpb24gICAtLS0tXG5cbiAgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy52bS5hZGFwdGVyKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NlcHRDb21tYW5kID0gdGhpcy52bS5jdXJyZW50UGFnZSgpPy5zZXR0aW5ncz8uY29tbWFuZHM/LmFjY2VwdD8uY29tbWFuZC5uYW1lO1xuICAgIGNvbnN0IHJlamVjdENvbW1hbmQgPSB0aGlzLnZtLmN1cnJlbnRQYWdlKCk/LnNldHRpbmdzPy5jb21tYW5kcz8ucmVqZWN0Py5jb21tYW5kLm5hbWU7XG5cbiAgICBpZiAoY29tbWFuZC5uYW1lID09IGFjY2VwdENvbW1hbmQpIHtcbiAgICAgIGF3YWl0IHRoaXMudm0uc2F2ZShjb21tYW5kLCB0aGlzLmZvcm0oKSEpO1xuICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZC5uYW1lID09IHJlamVjdENvbW1hbmQpIHtcbiAgICAgIGF3YWl0IHRoaXMudm0uZGlzY2FyZCgpO1xuICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgc3RhdHVzIHVwZGF0ZSBjb21tYW5kXG4gICAgaWYgKGNvbW1hbmQubmFtZSA9PT0gJ3VwZGF0ZS1zdGF0dXMnKSB7XG4gICAgICBjb25zdCB0cmFuc2l0aW9uID0gY29tbWFuZC5vcHRpb25zPy5bJ3RyYW5zaXRpb24nXTtcbiAgICAgIGlmICh0cmFuc2l0aW9uPy50b1N0YXR1cz8ubmFtZSkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLmdldFBhZ2VTdGF0dXMoKTtcbiAgICAgICAgaWYgKHN0YXR1cz8uZGF0YVBhdGgpIHtcbiAgICAgICAgICAvLyBVcGRhdGUgZW50aXR5IGNvbnRleHQgd2l0aCBuZXcgc3RhdHVzIHZhbHVlXG4gICAgICAgICAgY29uc3QgZW50aXR5ID0gdGhpcy52bS5jb250ZXh0KCk7XG4gICAgICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICAgICAgZW50aXR5W3N0YXR1cy5kYXRhUGF0aF0gPSB0cmFuc2l0aW9uLnRvU3RhdHVzLm5hbWU7XG4gICAgICAgICAgICB0aGlzLnZtLnVwZGF0ZUNvbnRleHQoZW50aXR5KTtcbiAgICAgICAgICAgIHRoaXMucmVjb21wdXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gR2V0IGFsbCBhY3Rpb25zXG4gICAgY29uc3QgW2FkYXB0ZXJQcmltYXJ5QWN0aW9ucywgYWRhcHRlclNlY29uZGFyeUFjdGlvbnMsIHBhZ2VQcmltYXJ5QWN0aW9ucywgcGFnZVNlY29uZGFyeUFjdGlvbnNdID1cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgdGhpcy52bS5wcmltYXJ5QWN0aW9ucygpLFxuICAgICAgICB0aGlzLnZtLnNlY29uZGFyeUFjdGlvbnMoKSxcbiAgICAgICAgdGhpcy52bS5jdXJyZW50UGFnZVByaW1hcnlBY3Rpb25zKCksXG4gICAgICAgIHRoaXMudm0uY3VycmVudFBhZ2VTZWNvbmRhcnlBY3Rpb25zKCksXG4gICAgICBdKTtcblxuICAgIC8vIENvbWJpbmUgYWRhcHRlciBhY3Rpb25zIChwcmltYXJ5ICsgc2Vjb25kYXJ5KVxuICAgIGNvbnN0IGFkYXB0ZXJBY3Rpb25zID0gWy4uLmFkYXB0ZXJQcmltYXJ5QWN0aW9ucywgLi4uYWRhcHRlclNlY29uZGFyeUFjdGlvbnNdO1xuXG4gICAgLy8gQ29tYmluZSBjdXJyZW50IHBhZ2UgYWN0aW9ucyAocHJpbWFyeSArIHNlY29uZGFyeSlcbiAgICBjb25zdCBwYWdlQWN0aW9ucyA9IFsuLi5wYWdlUHJpbWFyeUFjdGlvbnMsIC4uLnBhZ2VTZWNvbmRhcnlBY3Rpb25zXTtcblxuICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjaGVjayBpZiBjb21tYW5kIGV4aXN0cyBpbiBhY3Rpb25zXG4gICAgY29uc3QgY29tbWFuZEV4aXN0c0luQWN0aW9ucyA9IChhY3Rpb25zOiBhbnlbXSwgY29tbWFuZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIGFjdGlvbnMuc29tZSgoYWN0aW9uKSA9PiBhY3Rpb24uY29tbWFuZD8ubmFtZSA9PT0gY29tbWFuZE5hbWUpO1xuICAgIH07XG5cbiAgICAvLyBDaGVjayBpZiBjb21tYW5kIGV4aXN0cyBpbiBhZGFwdGVyIGFjdGlvbnMgZmlyc3RcbiAgICBpZiAoY29tbWFuZEV4aXN0c0luQWN0aW9ucyhhZGFwdGVyQWN0aW9ucywgY29tbWFuZC5uYW1lKSkge1xuICAgICAgYXdhaXQgdGhpcy52bS5hZGFwdGVyKCk/LmV4ZWN1dGU/Lihjb21tYW5kLCB0aGlzLnZtLmNvbnRleHQoKSk7XG4gICAgfVxuICAgIC8vIENoZWNrIGlmIGNvbW1hbmQgZXhpc3RzIGluIGN1cnJlbnQgcGFnZSBhY3Rpb25zXG4gICAgZWxzZSBpZiAoY29tbWFuZEV4aXN0c0luQWN0aW9ucyhwYWdlQWN0aW9ucywgY29tbWFuZC5uYW1lKSkge1xuICAgICAgYXdhaXQgdGhpcy52bVxuICAgICAgICAuY3VycmVudFBhZ2UoKVxuICAgICAgICA/LmV4ZWN1dGU/Lihjb21tYW5kLCB0aGlzLnZtLnBhZ2VTZWxlY3RlZFJvd3MoKS5sZW5ndGggPyB0aGlzLnZtLnBhZ2VTZWxlY3RlZFJvd3MoKSA6IHRoaXMudm0uY29udGV4dCgpKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgIGNhc2UgJ0tleVMnOlxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlKHsgbmFtZTogdGhpcy52bS5jdXJyZW50UGFnZSgpPy5zZXR0aW5ncz8uY29tbWFuZHM/LmFjY2VwdD8uY29tbWFuZC5uYW1lIHx8ICdzYXZlJyB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsIjxheHAtcGFnZS1sYXlvdXQgKnRyYW5zbGF0ZT1cImxldCB0XCI+XG4gIEBpZiAodm0uYWRhcHRlcigpPy5wYWdlcz8ubGVuZ3RoISA+IDEgJiYgdm0uaXNMYXJnZSgpKSB7XG4gICAgPGF4cC1sYXlvdXQtc3RhcnQtc2lkZSBbYXhSZXNpemFibGVdPVwidHJ1ZVwiPlxuICAgICAgPGF4cC1sYXlvdXQtaGVhZGVyPlxuICAgICAgICA8YXhwLWxheW91dC10aXRsZT57eyB0KHZtLnRpdGxlKCkpIHwgYXN5bmMgfX08L2F4cC1sYXlvdXQtdGl0bGU+XG4gICAgICAgIDxheHAtbGF5b3V0LWRlc2NyaXB0aW9uPnt7IHQodm0uZGVzY3JpcHRpb24oKSkgfCBhc3luYyB9fTwvYXhwLWxheW91dC1kZXNjcmlwdGlvbj5cbiAgICAgIDwvYXhwLWxheW91dC1oZWFkZXI+XG4gICAgICA8YXhwLWxheW91dC1jb250ZW50PlxuICAgICAgICA8YXgtdGFicyBjbGFzcz1cImF4cC12ZXJ0aWNhbC10YWJzXCIgW2xvb2tdPVwiJ3dpdGgtbGluZS1jb2xvcidcIiBbbG9jYXRpb25dPVwiJ2VuZCdcIiBbZml0UGFyZW50XT1cInRydWVcIj5cbiAgICAgICAgICBAZm9yIChpdGVtIG9mIHZtLmFkYXB0ZXIoKT8ucGFnZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgICAgICAgIFt0ZXh0XT1cIihmb3JtYXRTZXJ2aWNlLmZvcm1hdChpdGVtLmxhYmVsLCAnc3RyaW5nJywgdm0ucm9vdENvbnRleHQoKSkgfCB0cmFuc2xhdGUgfCBhc3luYykhXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2VsZWN0UGFnZShpdGVtKVwiXG4gICAgICAgICAgICAgIFthY3RpdmVdPVwidm0uY3VycmVudFBhZ2UoKSA9PSBpdGVtXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmFyICR7eyBpdGVtLmljb24gfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgPC9heC10YWItaXRlbT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtdGFicz5cbiAgICAgIDwvYXhwLWxheW91dC1jb250ZW50PlxuICAgIDwvYXhwLWxheW91dC1zdGFydC1zaWRlPlxuICB9XG4gIDwhLS0gQ29udGVudCBTZWN0aW9uIC0tPlxuICA8YXhwLXBhZ2UtY29udGVudCBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1yb3cgYXgtZ2FwLTRcIj5cbiAgICBAaWYgKHZtLnNob3dQYWdlcygpKSB7XG4gICAgICA8YXhwLWxheW91dC1saXN0IGNsYXNzPVwiYXgtdy1mdWxsXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygdm0uYWRhcHRlcigpPy5wYWdlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGF4cC1sYXlvdXQtbGlzdC1pdGVtIChjbGljayk9XCJoYW5kbGVTZWxlY3RQYWdlKGl0ZW0pXCI+XG4gICAgICAgICAgICA8YXhwLWxheW91dC1wcmVmaXg+XG4gICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYXIgJHt7IGl0ZW0uaWNvbiB9fVwiIGNsYXNzPVwiYXgtdGV4dC1ncmF5LTUwMFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXhwLWxheW91dC1wcmVmaXg+XG4gICAgICAgICAgICA8YXhwLWxheW91dC1jb250ZW50PlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57e1xuICAgICAgICAgICAgICAgIGZvcm1hdFNlcnZpY2UuZm9ybWF0KGl0ZW0ubGFiZWwsICdzdHJpbmcnLCB2bS5yb290Q29udGV4dCgpKSB8IHRyYW5zbGF0ZSB8IGFzeW5jXG4gICAgICAgICAgICAgIH19PC9hPlxuICAgICAgICAgICAgPC9heHAtbGF5b3V0LWNvbnRlbnQ+XG4gICAgICAgICAgICA8YXhwLWxheW91dC1zdWZmaXg+XG4gICAgICAgICAgICAgIDxheC1pY29uIGljb249XCIgZmFyIGZhLWNoZXZyb24tcmlnaHRcIiBjbGFzcz1cImF4LXRleHQtZ3JheS00MDBcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4cC1sYXlvdXQtc3VmZml4PlxuICAgICAgICAgIDwvYXhwLWxheW91dC1saXN0LWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIDwvYXhwLWxheW91dC1saXN0PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGF4LWZvcm0gY2xhc3M9XCJheC1oLWZ1bGwgYXgtdy1mdWxsXCIgI2Zvcm0+XG4gICAgICAgIDxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwidm0uY29udGV4dCgpXCIgKG9uQ29udGV4dENoYW5nZWQpPVwiaGFuZGxlT25Db250ZXh0Q2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtdy1mdWxsIGF4LWdhcC00IGF4LWgtZnVsbFwiPlxuICAgICAgICAgICAgQGZvciAoY29udGVudCBvZiB2bS5jdXJyZW50UGFnZUNvbnRlbnQoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJjb250ZW50XCIgW21vZGVdPVwiY29udGVudC5tb2RlID8/ICd2aWV3J1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICh2bS5jdXJyZW50UGFnZSgpPy50YWJzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4cC1ob3Jpem9udGFsLXRhYnNcIj5cbiAgICAgICAgICAgICAgICA8YXgtdGFicyBbbG9jYXRpb25dPVwiJ2JvdHRvbSdcIiBbZml0UGFyZW50XT1cImZhbHNlXCIgbG9vaz1cImNsYXNzaWNcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKHRhYiBvZiB2bS5jdXJyZW50UGFnZVRhYnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxheC10YWItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInZtLnNldEN1cnJlbnRUYWIodGFiKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiKHRhYi50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVdPVwidm0uY3VycmVudFRhYigpID09IHRhYlwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhciAke3sgdGFiLmljb24gfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9heC10YWJzPlxuICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidjb250ZW50J1wiPlxuICAgICAgICAgICAgICAgICAgQGZvciAocmVuZGVyZWRUYWIgb2Ygdm0uY3VycmVudFBhZ2VSZW5kZXJlZFRhYnMoKTsgdHJhY2sgcmVuZGVyZWRUYWIudGFiSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwicmVuZGVyZWRUYWIudGFiSWQgPT09IHZtLmN1cnJlbnRUYWIoKT8uaWQgPyAnJyA6ICdheC1oaWRkZW4nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoY29udGVudCBvZiB2bS5nZXRSZW5kZXJlZFRhYkNvbnRlbnQocmVuZGVyZWRUYWIudGFiSWQpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJjb250ZW50XCIgW21vZGVdPVwiY29udGVudC5tb2RlID8/ICd2aWV3J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICAgICAgPC9heC1mb3JtPlxuICAgIH1cbiAgPC9heHAtcGFnZS1jb250ZW50PlxuXG4gIDwhLS0gRm9vdGVyIFNlY3Rpb24gLS0+XG4gIEBpZiAoaGFzRm9vdGVyKCkpIHtcbiAgICA8YXhwLXBhZ2UtZm9vdGVyIGNsYXNzPVwiLS1hbmltYXRlZFwiPlxuICAgICAgPGF4cC1sYXlvdXQtc3VmZml4PlxuICAgICAgICA8IS0tIHNlY29uZGFyeSBmb290ZXIgYWN0aW9ucyAtLT5cbiAgICAgICAgQGlmIChoYXNWaXNpYmxlRm9vdGVyU2Vjb25kYXJ5QWN0aW9ucygpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgW2NsYXNzLmF4LXNtXT1cImRldmljZVNlcnZpY2UuaXNTbWFsbCgpXCJcbiAgICAgICAgICAgIFtpY29uT25seV09XCJkZXZpY2VTZXJ2aWNlLmlzU21hbGwoKVwiXG4gICAgICAgICAgICBbdGV4dF09XCInQGdlbmVyYWw6dGVybXMuaW50ZXJmYWNlLmFjdGlvbnMnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgW2xvb2tdPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKCkgPyAnYmxhbmsnIDogJ3NvbGlkJ1wiXG4gICAgICAgICAgICBbY29sb3JdPVwiJ2RlZmF1bHQnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWVsbGlwc2lzLXZlcnRpY2FsXCI+PC9pPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWwgI3BhbmVsPlxuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgZm9vdGVyU2Vjb25kYXJ5QWN0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uLnZpc2libGUgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiKHQoYWN0aW9uLnRpdGxlKSB8IGFzeW5jKSFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWQgfHwgdm0uaXNTYXZpbmcoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZXhlY3V0ZShhY3Rpb24uY29tbWFuZCEpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQge3sgYWN0aW9uLmljb24gfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uLmJyZWFrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChoYXNWaXNpYmxlRm9vdGVyUHJpbWFyeUFjdGlvbnMoKSkge1xuICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBmb290ZXJQcmltYXJ5QWN0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBpZiAoYWN0aW9uLnZpc2libGUgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zbV09XCJkZXZpY2VTZXJ2aWNlLmlzU21hbGwoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCB8fCB2bS5pc1NhdmluZygpXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCIodChhY3Rpb24udGl0bGUpIHwgYXN5bmMpIVwiXG4gICAgICAgICAgICAgICAgW2xvb2tdPVwiJ3NvbGlkJ1wiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvclwiXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZXhlY3V0ZShhY3Rpb24uY29tbWFuZCEpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uPy5pdGVtcykge1xuICAgICAgICAgICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsICNwYW5lbD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoc3ViIG9mIGFjdGlvbj8uaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdWIudmlzaWJsZSAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCIodChzdWIudGl0bGUpIHwgYXN5bmMpIVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInN1Yi5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInN1Yi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZXhlY3V0ZShzdWIuY29tbWFuZCEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQge3sgc3ViLmljb24gfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3ViLmJyZWFrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2F4cC1sYXlvdXQtc3VmZml4PlxuICAgIDwvYXhwLXBhZ2UtZm9vdGVyPlxuICB9XG48L2F4cC1wYWdlLWxheW91dD5cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC12aWV3cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9hY29yZXgtcGxhdGZvcm0tbGF5b3V0LXZpZXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i7","i1","i2","i3","i4","i5","i6","i8"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-layout-views.mjs","sources":["../tmp-esm2022/layout/views/lib/layouts/page/page-layout.base.js","../tmp-esm2022/layout/views/lib/layouts/page/page-layout.component.js","../tmp-esm2022/layout/views/lib/layouts/page/page-layout-base.component.js","../tmp-esm2022/layout/views/lib/layouts/popup/popup-layout.base.js","../tmp-esm2022/layout/views/lib/layouts/popup/popup-layout.component.js","../tmp-esm2022/layout/views/lib/layouts/popup/popup-layout-base.component.js","../tmp-esm2022/layout/views/lib/views/details-view/details-view.viewmodel.js","../tmp-esm2022/layout/views/lib/views/details-view/details-view.component.js","../tmp-esm2022/layout/views/acorex-platform-layout-views.js"],"sourcesContent":["export class AXPPageLayoutBase {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1sYXlvdXQuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9saWIvbGF5b3V0cy9wYWdlL3BhZ2UtbGF5b3V0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixpQkFBaUI7Q0FnRHRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEJhY2tCdXR0b24sIEFYUEJhZGdlLCBBWFBCcmVhZGNydW1iSXRlbSwgQVhQRXhlY3V0ZUNvbW1hbmQsIEFYUFBhZ2VTdGF0dXMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBQYWdlTGF5b3V0QmFzZSB7XG4gIGFic3RyYWN0IHByaW1hcnlNZW51SXRlbXM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcblxuICBhYnN0cmFjdCBzZWNvbmRhcnlNZW51SXRlbXM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcblxuICBhYnN0cmFjdCB0aXRsZUFjdGlvbnM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcblxuICBhYnN0cmFjdCBoYXNUaXRsZUFjdGlvbnM6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNQcmltYXJ5QWN0aW9uczogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGhhc1NlY29uZGFyeUFjdGlvbnM6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNBY3Rpb25zOiBTaWduYWw8Ym9vbGVhbj47XG5cbiAgYWJzdHJhY3QgYnJlYWRjcnVtYnM6IFNpZ25hbDxBWFBCcmVhZGNydW1iSXRlbVtdPjtcblxuICBhYnN0cmFjdCB0aXRsZTogU2lnbmFsPHN0cmluZz47XG5cbiAgYWJzdHJhY3QgdGl0bGVJY29uOiBTaWduYWw8c3RyaW5nIHwgbnVsbD47XG5cbiAgYWJzdHJhY3QgaGFzVGl0bGU6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNUaXRsZUljb246IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNEZXNjcmlwdGlvbjogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGRlc2NyaXB0aW9uOiBTaWduYWw8c3RyaW5nIHwgbnVsbD47XG5cbiAgYWJzdHJhY3QgaGFzQnJlYWRjcnVtYnM6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBoYXNCYWRnZTogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGJhZGdlOiBTaWduYWw8QVhQQmFkZ2UgfCBudWxsPjtcblxuICBhYnN0cmFjdCBoYXNTdGF0dXM6IFNpZ25hbDxib29sZWFuPjtcblxuICBhYnN0cmFjdCBzdGF0dXM6IFNpZ25hbDxBWFBQYWdlU3RhdHVzIHwgbnVsbD47XG5cbiAgYWJzdHJhY3QgaGFzQmFja0J1dHRvbjogU2lnbmFsPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGJhY2tCdXR0b246IFNpZ25hbDxBWFBCYWNrQnV0dG9uIHwgbnVsbD47XG5cbiAgYWJzdHJhY3Qgb25CYWNrQnV0dG9uQ2xpY2s6ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IHN0YXJ0U2lkZVRvZ2dsZTogKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgZXhlY3V0ZTogKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, inject, viewChild, ViewEncapsulation, } from '@angular/core';\n//\nimport { AXCommonModule } from '@acorex/cdk/common';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXPStickyDirective } from '@acorex/platform/common';\nimport { AXPComponentSlotModule } from '@acorex/platform/layout/components';\n//\nimport { AXDrawerContainerDirective, AXDrawerDirectiveModule } from '@acorex/cdk/drawer';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPDeviceService } from '@acorex/platform/core';\nimport { AXPStatusChipComponent } from '@acorex/platform/layout/widgets';\nimport { AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutHeaderComponent, } from '@acorex/platform/layout/components';\nimport { AXPCommandService } from '@acorex/platform/runtime';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXPPageLayoutBase } from './page-layout.base';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/cdk/drawer\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/breadcrumbs\";\nimport * as i5 from \"@acorex/components/dropdown\";\nimport * as i6 from \"@acorex/components/button\";\nimport * as i7 from \"@acorex/core/translation\";\nimport * as i8 from \"@acorex/platform/layout/components\";\nexport class AXPPageLayoutComponent {\n constructor() {\n this.page = inject(AXPPageLayoutBase, { optional: true });\n this.layoutService = inject(AXPLayoutThemeService);\n this.deviceService = inject(AXPDeviceService);\n this.startSideDrawer = viewChild('startSideDrawer', ...(ngDevMode ? [{ debugName: \"startSideDrawer\" }] : []));\n this.workflow = inject(AXPWorkflowService);\n this.commandService = inject(AXPCommandService);\n this.#initialize = afterNextRender(async () => {\n this.checkScrollableContent();\n });\n this.#effect = effect(() => {\n this.page?.title();\n this.page?.description();\n this.checkScrollableContent();\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n #initialize;\n #effect;\n checkScrollableContent() {\n const content = document.querySelector('axp-page-content');\n if (content && content.scrollHeight >= content.clientHeight) {\n content.classList.add('--scrollable');\n }\n }\n handleActionClick(item) {\n if (item.command && (item.items?.length ?? 0) == 0) {\n this.execute(item.command);\n }\n }\n toggleStartSide() {\n this.startSideDrawer()?.toggle();\n }\n handleSecondaryActionClick(item) {\n if (item.command) {\n this.execute(item.command);\n }\n }\n handleBackdropClick(e) {\n e.nativeEvent.preventDefault();\n e.nativeEvent.stopPropagation();\n e.component.hide();\n return false;\n }\n async execute(command) {\n const reserved = ['navigate'];\n if (reserved.includes(command.name)) {\n await this.workflow.execute(command.name, { options: command.options });\n return;\n }\n if (this.commandService.exists(command.name)) {\n await this.commandService.execute(command.name, command.options ?? {});\n }\n else {\n await this.page?.execute(command);\n }\n }\n handleOnBackdropClick(event) {\n event.stopPropagation();\n this.startSideDrawer()?.hide();\n }\n //#region ---------------- Status Helpers ----------------\n getEntityData() {\n // Get entity data from page context if available\n if (this.page && 'getEntityData' in this.page && typeof this.page.getEntityData === 'function') {\n return this.page.getEntityData();\n }\n return null;\n }\n async handleStatusTransition(transition) {\n // Convert status transition to command and execute\n await this.execute({\n name: 'update-status',\n options: {\n transition,\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPageLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.16\", type: AXPPageLayoutComponent, isStandalone: true, selector: \"axp-page-layout\", providers: [], viewQueries: [{ propertyName: \"startSideDrawer\", first: true, predicate: [\"startSideDrawer\"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.AXDrawerContainerDirective }], ngImport: i0, template: \"<!-------- Begin Start Side Drawer -------->\\n<div id=\\\"axp-drawer-start\\\" [mode]=\\\"deviceService.isSmall() ? 'overlay' : 'push'\\\" [transition]=\\\"250\\\" axDrawerItem\\n [backDrop]=\\\"true\\\" (onBackdropClick)=\\\"handleBackdropClick($event)\\\" #startSideDrawer=\\\"axDrawerItem\\\"\\n [backdropClass]=\\\"'ax-bg-darkest/75'\\\" [collapsed]=\\\"deviceService.isSmall()\\\" drawerLocation=\\\"start\\\"\\n class=\\\"ax-z-50 ax-h-full\\\">\\n <ng-content select=\\\"axp-layout-start-side\\\"></ng-content>\\n</div>\\n<!-------- Finish Start Side Drawer -------->\\n<!--------------------------------------------------------------->\\n<!-------- Begin Main Layout Container -------->\\n<axp-layout-container id=\\\"axp-page-layout\\\" #container>\\n <!-------- Begin Page Header -------->\\n <axp-layout-header id=\\\"axp-page-header\\\" *translate=\\\"let t\\\" #sticky=\\\"axpSticky\\\" [axpSticky]=\\\"'axp-is-sticky'\\\"\\n [stickyOffset]=\\\"50\\\" [stickyParent]=\\\"container.hostElement\\\">\\n <!-------- Begin Back Button (Mobile Only) -------->\\n @if (page?.hasBackButton() && deviceService.isSmall()) {\\n <ax-button id=\\\"axp-btn-back\\\" [look]=\\\"'blank'\\\" class=\\\"ax-sm ax-w-fit ax-ms-1\\\" color=\\\"secondary\\\"\\n (click)=\\\"page?.onBackButtonClick()\\\" [text]=\\\"page?.backButton()?.title\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-chevron-left rtl:ax-rotate-180\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }\\n <!-------- Finish Back Button -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Bar -------->\\n <axp-layout-title-bar id=\\\"axp-title-bar\\\">\\n <!-------- Begin Title Section -------->\\n <div class=\\\"ax-flex ax-flex-col ax-transition\\\">\\n <!-------- Begin Breadcrumbs -------->\\n @if (page?.hasBreadcrumbs() && !deviceService.isSmall()) {\\n <ax-breadcrumbs id=\\\"axp-breadcrumb\\\" class=\\\"ax-mb-1\\\">\\n @for (item of page?.breadcrumbs(); track $index) {\\n <ax-breadcrumbs-item [attr.id]=\\\"'axp-breadcrumb-item-' + $index\\\" [active]=\\\"$last\\\"\\n (click)=\\\"item.command ? execute(item.command) : null\\\">\\n @if (item.icon) {\\n <i [class]=\\\"item.icon\\\"></i>\\n }\\n {{ t(item.title) | async }}\\n </ax-breadcrumbs-item>\\n }\\n <ng-template #divider>\\n <i class=\\\"fa-regular fa-chevron-right rtl:ax-rotate-180 fa-sm\\\"></i>\\n </ng-template>\\n </ax-breadcrumbs>\\n }\\n <!-------- Finish Breadcrumbs -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Container -------->\\n <div class=\\\"__title-container\\\">\\n <!-------- Begin Page Title -------->\\n @if (page?.hasTitle()) {\\n <axp-layout-title id=\\\"axp-page-title\\\">\\n @if (page?.hasTitleIcon()) {\\n <ax-icon [icon]=\\\"page?.titleIcon()!\\\" class=\\\"ax-me-2\\\"></ax-icon>\\n }\\n {{ t(page?.title()) | async }}\\n </axp-layout-title>\\n }\\n <!-------- Finish Page Title -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Actions -------->\\n @if (page?.hasTitleActions()) {\\n <ax-button id=\\\"axp-btn-title-actions\\\" [look]=\\\"'blank'\\\" class=\\\"ax-sm -ax-mx-2\\\">\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-caret-down fa-fw\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of page?.titleActions(); track $index) {\\n <ng-container>\\n <ax-button-item [attr.id]=\\\"'axp-btn-title-action-' + (sub.name || $index)\\\"\\n [text]=\\\"(t(sub.title) | async)!\\\" [color]=\\\"sub.color\\\" [disabled]=\\\"sub.disabled\\\"\\n [selected]=\\\"sub.command?.metadata?.['isSelected']\\\" (onClick)=\\\"handleActionClick(sub)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n @if (sub.command?.metadata?.['isSelected']) {\\n <ax-suffix class=\\\"ax-ms-2\\\">\\n <ax-icon icon=\\\"fa-solid fa-check\\\"></ax-icon>\\n </ax-suffix>\\n }\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n </ng-container>\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n <!-------- Finish Title Actions -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Badge -------->\\n @if (page?.hasBadge()) {\\n <div id=\\\"axp-page-badge\\\" class=\\\"__title-badge --{{ page?.badge()?.color }}\\\"\\n [attr.title]=\\\"page?.badge()?.description\\\">\\n <i class=\\\"fa-solid fa-circle\\\"></i>\\n {{ page?.badge()?.title }}\\n </div>\\n }\\n <!-------- Finish Title Badge -------->\\n\\n <!-------- Begin Page Status -------->\\n\\n @if (page?.hasStatus()) {\\n <axp-status-chip\\n [value]=\\\"page?.status()?.value ?? null\\\"\\n [readonly]=\\\"page?.status()?.readonly || false\\\"\\n [definitionKey]=\\\"page?.status()?.definitionKey ?? null\\\"\\n [entityData]=\\\"getEntityData()\\\"\\n (transitionExecuted)=\\\"handleStatusTransition($event)\\\"\\n class=\\\"__title-status\\\"\\n ></axp-status-chip>\\n }\\n <!-------- Finish Page Status -------->\\n\\n </div>\\n <!-------- Finish Title Container -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Description -------->\\n @if (page?.hasDescription()) {\\n <axp-layout-description id=\\\"axp-page-description\\\">\\n {{ t(page?.description()) | async }}</axp-layout-description>\\n }\\n <!-------- Finish Page Description -------->\\n </div>\\n <!-------- Finish Title Section -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Actions -------->\\n <axp-layout-actions id=\\\"axp-page-actions\\\" class=\\\"ax-shrink-0\\\">\\n <axp-component-slot name=\\\"page-header-actions\\\"></axp-component-slot>\\n <!-------- Begin Primary Actions -------->\\n @if (page?.hasPrimaryActions()) {\\n @for (item of page?.primaryMenuItems(); track $index) {\\n @if (item.visible != false) {\\n <ax-button [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title)\\\" [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [iconOnly]=\\\"deviceService.isSmall()\\\" [disabled]=\\\"item.disabled\\\" [text]=\\\"(t(item.title) | async)!\\\"\\n [look]=\\\"'solid'\\\" [color]=\\\"item.color\\\" (onClick)=\\\"handleActionClick(item)\\\">\\n <ax-prefix>\\n <i class=\\\"{{ item.icon }}\\\"></i>\\n </ax-prefix>\\n @if (item?.items) {\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of item?.items; track $index) {\\n @if (sub.visible != false) {\\n <ax-button-item [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title) + '-' + (sub.name || sub.title)\\\"\\n [text]=\\\"(t(sub.title) | async)!\\\" [color]=\\\"sub.color\\\" [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"handleActionClick(sub)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n }\\n </ax-button>\\n }\\n }\\n }\\n <!-------- Finish Primary Actions -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Secondary Actions -------->\\n @if (page?.hasSecondaryActions()) {\\n <ax-button id=\\\"axp-btn-secondary\\\" [class.ax-sm]=\\\"deviceService.isSmall()\\\" [iconOnly]=\\\"deviceService.isSmall()\\\"\\n [text]=\\\"'@general:terms.interface.actions' | translate | async\\\"\\n [look]=\\\"deviceService.isSmall() ? 'blank' : 'solid'\\\" [color]=\\\"'default'\\\">\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-ellipsis-vertical\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (item of page?.secondaryMenuItems(); track $index) {\\n @if (item.visible != false) {\\n <ax-button-item [attr.id]=\\\"'axp-btn-secondary-' + (item.name || item.title)\\\"\\n [text]=\\\"(item.title | translate | async)!\\\" [color]=\\\"item.color\\\" [disabled]=\\\"item.disabled\\\"\\n (onClick)=\\\"handleSecondaryActionClick(item)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n <!-------- Finish Secondary Actions -------->\\n </axp-layout-actions>\\n <!-------- Finish Page Actions -------->\\n </axp-layout-title-bar>\\n <!-------- Finish Title Bar -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Toolbar / Navbar -------->\\n @if (!sticky.isSticky) {}\\n <ng-content select=\\\"axp-page-toolbar\\\"></ng-content>\\n <!-------- Finish Page Toolbar / Navbar -------->\\n </axp-layout-header>\\n <!-------- Finish Page Header -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Content -------->\\n <ng-content select=\\\"axp-page-content\\\"></ng-content>\\n <!-------- Finish Page Content -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Footer -------->\\n <axp-page-footer-container id=\\\"axp-page-footer-container\\\"\\n [ngStyle]=\\\"{ display: tt.isEmpty() && prefixSlot.isEmpty() && suffixSlot.isEmpty() ? 'none' : 'block' }\\\">\\n <axp-layout-container #tt>\\n <ng-content select=\\\"axp-page-footer\\\"></ng-content>\\n </axp-layout-container>\\n <axp-page-footer id=\\\"axp-page-footer\\\">\\n <axp-layout-prefix>\\n <axp-component-slot name=\\\"page-footer-start\\\" #prefixSlot=\\\"slot\\\"></axp-component-slot>\\n </axp-layout-prefix>\\n <axp-layout-suffix>\\n <axp-component-slot name=\\\"page-footer-end\\\" #suffixSlot=\\\"slot\\\"></axp-component-slot>\\n </axp-layout-suffix>\\n </axp-page-footer>\\n </axp-page-footer-container>\\n <!-------- Finish Page Footer -------->\\n</axp-layout-container>\\n<!-------- Finish Main Layout Container -------->\", styles: [\".axp-status-icon{font-size:.875rem;line-height:1}.axp-status-chip{display:inline-flex}.axp-status-chip--primary{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-status-icon--primary{color:rgb(var(--ax-sys-color-primary-dark-surface))}.axp-status-chip--secondary{background-color:rgb(var(--ax-sys-color-secondary-lighter-surface));color:rgb(var(--ax-sys-color-on-secondary-lighter-surface))}.axp-status-icon--secondary{color:rgb(var(--ax-sys-color-secondary-dark-surface))}.axp-status-chip--success{background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}.axp-status-icon--success{color:rgb(var(--ax-sys-color-success-dark-surface))}.axp-status-chip--warning{background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}.axp-status-icon--warning{color:rgb(var(--ax-sys-color-warning-dark-surface))}.axp-status-chip--danger{background-color:rgb(var(--ax-sys-color-danger-lighter-surface));color:rgb(var(--ax-sys-color-on-danger-lighter-surface))}.axp-status-icon--danger{color:rgb(var(--ax-sys-color-danger-dark-surface))}.axp-status-chip--info{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--info{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--accent1{background-color:rgb(var(--ax-sys-color-accent1-lighter-surface));color:rgb(var(--ax-sys-color-on-accent1-lighter-surface))}.axp-status-icon--accent1{color:rgb(var(--ax-sys-color-accent1-dark-surface))}.axp-status-chip--accent2{background-color:rgb(var(--ax-sys-color-accent2-lighter-surface));color:rgb(var(--ax-sys-color-on-accent2-lighter-surface))}.axp-status-icon--accent2{color:rgb(var(--ax-sys-color-accent2-dark-surface))}.axp-status-chip--accent3{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--accent3{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--neutral{background-color:rgb(var(--ax-sys-color-neutral-lighter-surface));color:rgb(var(--ax-sys-color-on-neutral-lighter-surface))}.axp-status-icon--neutral{color:rgb(var(--ax-sys-color-neutral-dark-surface))}axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}axp-layout-sections axp-layout-section>axp-layout-footer{opacity:0;animation:fadeInDown .5s ease-out forwards}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-page-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side,axp-page-layout axp-layout-end-side{display:flex;min-height:100%;min-width:16rem;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side axp-layout-header,axp-page-layout axp-layout-end-side axp-layout-header{display:flex;flex-direction:column;gap:.5rem;padding:1rem}axp-page-layout axp-layout-start-side axp-layout-header>axp-layout-title,axp-page-layout axp-layout-end-side axp-layout-header>axp-layout-title{font-size:1.125rem;line-height:1.75rem;font-weight:500}axp-page-layout axp-layout-start-side>axp-layout-content,axp-page-layout axp-layout-end-side>axp-layout-content{flex:1 1 0%}axp-page-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-page-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-page-layout>axp-layout-container>axp-layout-header.axp-is-sticky{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item{font-size:.75rem;line-height:1rem}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item.ax-state-active .ax-breadcrumb-item-content{cursor:default;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1));opacity:.75}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{display:flex;width:100%;align-items:center;justify-content:space-between;padding-left:1rem;padding-right:1rem}@media (min-width: 1280px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{border-width:0px}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar ax-layout-nav-button{display:flex;align-items:center;justify-content:space-between}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container{display:flex;align-items:baseline;gap:.75rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{display:inline-block;width:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;line-height:1.75rem;font-weight:500;line-height:1}@media (min-width: 1024px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge{display:inline-flex;--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;align-self:baseline;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:600;line-height:1}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge i{margin-inline-end:.25rem;line-height:1;font-size:.5rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--warning{background-color:rgb(var(--ax-sys-color-warning-lightest-surface));color:rgb(var(--ax-sys-color-on-warning-lightest-surface));border-color:rgb(var(--ax-sys-color-border-warning-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--danger{background-color:rgb(var(--ax-sys-color-danger-lightest-surface));color:rgb(var(--ax-sys-color-on-danger-lightest-surface));border-color:rgb(var(--ax-sys-color-border-danger-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--success{background-color:rgb(var(--ax-sys-color-success-lightest-surface));color:rgb(var(--ax-sys-color-on-success-lightest-surface));border-color:rgb(var(--ax-sys-color-border-success-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--primary{background-color:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface));border-color:rgb(var(--ax-sys-color-border-primary-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-page-toolbar{margin-top:.5rem;padding-left:1rem;padding-right:1rem}axp-page-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column;padding:.75rem 1rem}axp-page-layout>axp-layout-container>axp-page-content.--scrollable{padding-bottom:1rem}axp-page-layout>axp-layout-container>axp-page-footer-container{border-top-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container{position:sticky;bottom:0;z-index:10;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-page-layout>axp-layout-container>axp-page-footer-container.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: \n //\n AXCommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", 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: AXBreadcrumbsModule }, { kind: \"component\", type: i4.AXBreadCrumbsComponent, selector: \"ax-breadcrumbs\" }, { kind: \"component\", type: i4.AXBreadCrumbsItemComponent, selector: \"ax-breadcrumbs-item\", inputs: [\"disabled\", \"active\"] }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i5.AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i6.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i6.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i6.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\", \"closeParentOnClick\", \"lockOnLoading\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i7.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"ngmodule\", type: AXDrawerDirectiveModule }, { kind: \"directive\", type: i1.AXDrawerItemDirective, selector: \"[axDrawerItem]\", inputs: [\"location\", \"collapsed\", \"backDrop\", \"mode\", \"transition\", \"closeOnBackdropClick\", \"backdropClass\", \"singleOpenMode\"], outputs: [\"collapseStateChanged\", \"locationChange\", \"collapsedChange\", \"backDropChange\", \"modeChange\", \"transitionChange\", \"closeOnBackdropClickChange\", \"backdropClassChange\", \"onBackdropClick\", \"singleOpenModeChange\"], exportAs: [\"axDrawerItem\"] }, { kind: \"ngmodule\", type: \n //\n AXPComponentSlotModule }, { kind: \"directive\", type: i8.AXPComponentSlotDirective, selector: \"axp-component-slot\", inputs: [\"name\", \"host\", \"context\"], exportAs: [\"slot\"] }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"component\", type: AXPThemeLayoutActionsComponent, selector: \"axp-layout-actions\" }, { kind: \"component\", type: AXPThemeLayoutHeaderComponent, selector: \"axp-layout-header\" }, { kind: \"directive\", type: AXPStickyDirective, selector: \"[axpSticky]\", inputs: [\"axpSticky\", \"stickyOffset\", \"stickyParent\", \"stickyTarget\"], outputs: [\"isStickyChange\"], exportAs: [\"axpSticky\"] }, { kind: \"component\", type: AXPThemeLayoutContainerComponent, selector: \"axp-layout-container\" }, { kind: \"component\", type: AXPStatusChipComponent, selector: \"axp-status-chip\", inputs: [\"status\", \"value\", \"readonly\", \"availableTransitions\", \"definitionKey\", \"entityData\"], outputs: [\"openChange\", \"transitionExecuted\", \"transitionError\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i7.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPageLayoutComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [\n CommonModule,\n //\n AXCommonModule,\n AXDecoratorModule,\n AXBreadcrumbsModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXButtonModule,\n AXTranslationModule,\n AXDrawerModule,\n AXDrawerDirectiveModule,\n //\n AXPComponentSlotModule,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutHeaderComponent,\n AXPStickyDirective,\n AXPThemeLayoutContainerComponent,\n AXPStatusChipComponent,\n ], selector: 'axp-page-layout', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [AXDrawerContainerDirective], providers: [], template: \"<!-------- Begin Start Side Drawer -------->\\n<div id=\\\"axp-drawer-start\\\" [mode]=\\\"deviceService.isSmall() ? 'overlay' : 'push'\\\" [transition]=\\\"250\\\" axDrawerItem\\n [backDrop]=\\\"true\\\" (onBackdropClick)=\\\"handleBackdropClick($event)\\\" #startSideDrawer=\\\"axDrawerItem\\\"\\n [backdropClass]=\\\"'ax-bg-darkest/75'\\\" [collapsed]=\\\"deviceService.isSmall()\\\" drawerLocation=\\\"start\\\"\\n class=\\\"ax-z-50 ax-h-full\\\">\\n <ng-content select=\\\"axp-layout-start-side\\\"></ng-content>\\n</div>\\n<!-------- Finish Start Side Drawer -------->\\n<!--------------------------------------------------------------->\\n<!-------- Begin Main Layout Container -------->\\n<axp-layout-container id=\\\"axp-page-layout\\\" #container>\\n <!-------- Begin Page Header -------->\\n <axp-layout-header id=\\\"axp-page-header\\\" *translate=\\\"let t\\\" #sticky=\\\"axpSticky\\\" [axpSticky]=\\\"'axp-is-sticky'\\\"\\n [stickyOffset]=\\\"50\\\" [stickyParent]=\\\"container.hostElement\\\">\\n <!-------- Begin Back Button (Mobile Only) -------->\\n @if (page?.hasBackButton() && deviceService.isSmall()) {\\n <ax-button id=\\\"axp-btn-back\\\" [look]=\\\"'blank'\\\" class=\\\"ax-sm ax-w-fit ax-ms-1\\\" color=\\\"secondary\\\"\\n (click)=\\\"page?.onBackButtonClick()\\\" [text]=\\\"page?.backButton()?.title\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-chevron-left rtl:ax-rotate-180\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n }\\n <!-------- Finish Back Button -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Bar -------->\\n <axp-layout-title-bar id=\\\"axp-title-bar\\\">\\n <!-------- Begin Title Section -------->\\n <div class=\\\"ax-flex ax-flex-col ax-transition\\\">\\n <!-------- Begin Breadcrumbs -------->\\n @if (page?.hasBreadcrumbs() && !deviceService.isSmall()) {\\n <ax-breadcrumbs id=\\\"axp-breadcrumb\\\" class=\\\"ax-mb-1\\\">\\n @for (item of page?.breadcrumbs(); track $index) {\\n <ax-breadcrumbs-item [attr.id]=\\\"'axp-breadcrumb-item-' + $index\\\" [active]=\\\"$last\\\"\\n (click)=\\\"item.command ? execute(item.command) : null\\\">\\n @if (item.icon) {\\n <i [class]=\\\"item.icon\\\"></i>\\n }\\n {{ t(item.title) | async }}\\n </ax-breadcrumbs-item>\\n }\\n <ng-template #divider>\\n <i class=\\\"fa-regular fa-chevron-right rtl:ax-rotate-180 fa-sm\\\"></i>\\n </ng-template>\\n </ax-breadcrumbs>\\n }\\n <!-------- Finish Breadcrumbs -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Container -------->\\n <div class=\\\"__title-container\\\">\\n <!-------- Begin Page Title -------->\\n @if (page?.hasTitle()) {\\n <axp-layout-title id=\\\"axp-page-title\\\">\\n @if (page?.hasTitleIcon()) {\\n <ax-icon [icon]=\\\"page?.titleIcon()!\\\" class=\\\"ax-me-2\\\"></ax-icon>\\n }\\n {{ t(page?.title()) | async }}\\n </axp-layout-title>\\n }\\n <!-------- Finish Page Title -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Actions -------->\\n @if (page?.hasTitleActions()) {\\n <ax-button id=\\\"axp-btn-title-actions\\\" [look]=\\\"'blank'\\\" class=\\\"ax-sm -ax-mx-2\\\">\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-caret-down fa-fw\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of page?.titleActions(); track $index) {\\n <ng-container>\\n <ax-button-item [attr.id]=\\\"'axp-btn-title-action-' + (sub.name || $index)\\\"\\n [text]=\\\"(t(sub.title) | async)!\\\" [color]=\\\"sub.color\\\" [disabled]=\\\"sub.disabled\\\"\\n [selected]=\\\"sub.command?.metadata?.['isSelected']\\\" (onClick)=\\\"handleActionClick(sub)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n @if (sub.command?.metadata?.['isSelected']) {\\n <ax-suffix class=\\\"ax-ms-2\\\">\\n <ax-icon icon=\\\"fa-solid fa-check\\\"></ax-icon>\\n </ax-suffix>\\n }\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n </ng-container>\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n <!-------- Finish Title Actions -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Title Badge -------->\\n @if (page?.hasBadge()) {\\n <div id=\\\"axp-page-badge\\\" class=\\\"__title-badge --{{ page?.badge()?.color }}\\\"\\n [attr.title]=\\\"page?.badge()?.description\\\">\\n <i class=\\\"fa-solid fa-circle\\\"></i>\\n {{ page?.badge()?.title }}\\n </div>\\n }\\n <!-------- Finish Title Badge -------->\\n\\n <!-------- Begin Page Status -------->\\n\\n @if (page?.hasStatus()) {\\n <axp-status-chip\\n [value]=\\\"page?.status()?.value ?? null\\\"\\n [readonly]=\\\"page?.status()?.readonly || false\\\"\\n [definitionKey]=\\\"page?.status()?.definitionKey ?? null\\\"\\n [entityData]=\\\"getEntityData()\\\"\\n (transitionExecuted)=\\\"handleStatusTransition($event)\\\"\\n class=\\\"__title-status\\\"\\n ></axp-status-chip>\\n }\\n <!-------- Finish Page Status -------->\\n\\n </div>\\n <!-------- Finish Title Container -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Description -------->\\n @if (page?.hasDescription()) {\\n <axp-layout-description id=\\\"axp-page-description\\\">\\n {{ t(page?.description()) | async }}</axp-layout-description>\\n }\\n <!-------- Finish Page Description -------->\\n </div>\\n <!-------- Finish Title Section -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Actions -------->\\n <axp-layout-actions id=\\\"axp-page-actions\\\" class=\\\"ax-shrink-0\\\">\\n <axp-component-slot name=\\\"page-header-actions\\\"></axp-component-slot>\\n <!-------- Begin Primary Actions -------->\\n @if (page?.hasPrimaryActions()) {\\n @for (item of page?.primaryMenuItems(); track $index) {\\n @if (item.visible != false) {\\n <ax-button [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title)\\\" [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [iconOnly]=\\\"deviceService.isSmall()\\\" [disabled]=\\\"item.disabled\\\" [text]=\\\"(t(item.title) | async)!\\\"\\n [look]=\\\"'solid'\\\" [color]=\\\"item.color\\\" (onClick)=\\\"handleActionClick(item)\\\">\\n <ax-prefix>\\n <i class=\\\"{{ item.icon }}\\\"></i>\\n </ax-prefix>\\n @if (item?.items) {\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of item?.items; track $index) {\\n @if (sub.visible != false) {\\n <ax-button-item [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title) + '-' + (sub.name || sub.title)\\\"\\n [text]=\\\"(t(sub.title) | async)!\\\" [color]=\\\"sub.color\\\" [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"handleActionClick(sub)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n }\\n </ax-button>\\n }\\n }\\n }\\n <!-------- Finish Primary Actions -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Secondary Actions -------->\\n @if (page?.hasSecondaryActions()) {\\n <ax-button id=\\\"axp-btn-secondary\\\" [class.ax-sm]=\\\"deviceService.isSmall()\\\" [iconOnly]=\\\"deviceService.isSmall()\\\"\\n [text]=\\\"'@general:terms.interface.actions' | translate | async\\\"\\n [look]=\\\"deviceService.isSmall() ? 'blank' : 'solid'\\\" [color]=\\\"'default'\\\">\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-ellipsis-vertical\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (item of page?.secondaryMenuItems(); track $index) {\\n @if (item.visible != false) {\\n <ax-button-item [attr.id]=\\\"'axp-btn-secondary-' + (item.name || item.title)\\\"\\n [text]=\\\"(item.title | translate | async)!\\\" [color]=\\\"item.color\\\" [disabled]=\\\"item.disabled\\\"\\n (onClick)=\\\"handleSecondaryActionClick(item)\\\">\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n <!-------- Finish Secondary Actions -------->\\n </axp-layout-actions>\\n <!-------- Finish Page Actions -------->\\n </axp-layout-title-bar>\\n <!-------- Finish Title Bar -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Toolbar / Navbar -------->\\n @if (!sticky.isSticky) {}\\n <ng-content select=\\\"axp-page-toolbar\\\"></ng-content>\\n <!-------- Finish Page Toolbar / Navbar -------->\\n </axp-layout-header>\\n <!-------- Finish Page Header -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Content -------->\\n <ng-content select=\\\"axp-page-content\\\"></ng-content>\\n <!-------- Finish Page Content -------->\\n <!--------------------------------------------------------------->\\n <!-------- Begin Page Footer -------->\\n <axp-page-footer-container id=\\\"axp-page-footer-container\\\"\\n [ngStyle]=\\\"{ display: tt.isEmpty() && prefixSlot.isEmpty() && suffixSlot.isEmpty() ? 'none' : 'block' }\\\">\\n <axp-layout-container #tt>\\n <ng-content select=\\\"axp-page-footer\\\"></ng-content>\\n </axp-layout-container>\\n <axp-page-footer id=\\\"axp-page-footer\\\">\\n <axp-layout-prefix>\\n <axp-component-slot name=\\\"page-footer-start\\\" #prefixSlot=\\\"slot\\\"></axp-component-slot>\\n </axp-layout-prefix>\\n <axp-layout-suffix>\\n <axp-component-slot name=\\\"page-footer-end\\\" #suffixSlot=\\\"slot\\\"></axp-component-slot>\\n </axp-layout-suffix>\\n </axp-page-footer>\\n </axp-page-footer-container>\\n <!-------- Finish Page Footer -------->\\n</axp-layout-container>\\n<!-------- Finish Main Layout Container -------->\", styles: [\".axp-status-icon{font-size:.875rem;line-height:1}.axp-status-chip{display:inline-flex}.axp-status-chip--primary{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-status-icon--primary{color:rgb(var(--ax-sys-color-primary-dark-surface))}.axp-status-chip--secondary{background-color:rgb(var(--ax-sys-color-secondary-lighter-surface));color:rgb(var(--ax-sys-color-on-secondary-lighter-surface))}.axp-status-icon--secondary{color:rgb(var(--ax-sys-color-secondary-dark-surface))}.axp-status-chip--success{background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}.axp-status-icon--success{color:rgb(var(--ax-sys-color-success-dark-surface))}.axp-status-chip--warning{background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}.axp-status-icon--warning{color:rgb(var(--ax-sys-color-warning-dark-surface))}.axp-status-chip--danger{background-color:rgb(var(--ax-sys-color-danger-lighter-surface));color:rgb(var(--ax-sys-color-on-danger-lighter-surface))}.axp-status-icon--danger{color:rgb(var(--ax-sys-color-danger-dark-surface))}.axp-status-chip--info{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--info{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--accent1{background-color:rgb(var(--ax-sys-color-accent1-lighter-surface));color:rgb(var(--ax-sys-color-on-accent1-lighter-surface))}.axp-status-icon--accent1{color:rgb(var(--ax-sys-color-accent1-dark-surface))}.axp-status-chip--accent2{background-color:rgb(var(--ax-sys-color-accent2-lighter-surface));color:rgb(var(--ax-sys-color-on-accent2-lighter-surface))}.axp-status-icon--accent2{color:rgb(var(--ax-sys-color-accent2-dark-surface))}.axp-status-chip--accent3{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--accent3{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--neutral{background-color:rgb(var(--ax-sys-color-neutral-lighter-surface));color:rgb(var(--ax-sys-color-on-neutral-lighter-surface))}.axp-status-icon--neutral{color:rgb(var(--ax-sys-color-neutral-dark-surface))}axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}axp-layout-sections axp-layout-section>axp-layout-footer{opacity:0;animation:fadeInDown .5s ease-out forwards}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-page-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side,axp-page-layout axp-layout-end-side{display:flex;min-height:100%;min-width:16rem;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side axp-layout-header,axp-page-layout axp-layout-end-side axp-layout-header{display:flex;flex-direction:column;gap:.5rem;padding:1rem}axp-page-layout axp-layout-start-side axp-layout-header>axp-layout-title,axp-page-layout axp-layout-end-side axp-layout-header>axp-layout-title{font-size:1.125rem;line-height:1.75rem;font-weight:500}axp-page-layout axp-layout-start-side>axp-layout-content,axp-page-layout axp-layout-end-side>axp-layout-content{flex:1 1 0%}axp-page-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-page-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-page-layout>axp-layout-container>axp-layout-header.axp-is-sticky{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item{font-size:.75rem;line-height:1rem}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item.ax-state-active .ax-breadcrumb-item-content{cursor:default;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1));opacity:.75}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{display:flex;width:100%;align-items:center;justify-content:space-between;padding-left:1rem;padding-right:1rem}@media (min-width: 1280px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{border-width:0px}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar ax-layout-nav-button{display:flex;align-items:center;justify-content:space-between}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container{display:flex;align-items:baseline;gap:.75rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{display:inline-block;width:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;line-height:1.75rem;font-weight:500;line-height:1}@media (min-width: 1024px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge{display:inline-flex;--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;align-self:baseline;border-radius:.375rem;padding:.25rem .5rem;font-size:.75rem;line-height:1rem;font-weight:600;line-height:1}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge i{margin-inline-end:.25rem;line-height:1;font-size:.5rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--warning{background-color:rgb(var(--ax-sys-color-warning-lightest-surface));color:rgb(var(--ax-sys-color-on-warning-lightest-surface));border-color:rgb(var(--ax-sys-color-border-warning-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--danger{background-color:rgb(var(--ax-sys-color-danger-lightest-surface));color:rgb(var(--ax-sys-color-on-danger-lightest-surface));border-color:rgb(var(--ax-sys-color-border-danger-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--success{background-color:rgb(var(--ax-sys-color-success-lightest-surface));color:rgb(var(--ax-sys-color-on-success-lightest-surface));border-color:rgb(var(--ax-sys-color-border-success-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container .__title-badge.--primary{background-color:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface));border-color:rgb(var(--ax-sys-color-border-primary-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header axp-page-toolbar{margin-top:.5rem;padding-left:1rem;padding-right:1rem}axp-page-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column;padding:.75rem 1rem}axp-page-layout>axp-layout-container>axp-page-content.--scrollable{padding-bottom:1rem}axp-page-layout>axp-layout-container>axp-page-footer-container{border-top-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container{position:sticky;bottom:0;z-index:10;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-page-layout>axp-layout-container>axp-page-footer-container.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\\n\"] }]\n }], propDecorators: { startSideDrawer: [{ type: i0.ViewChild, args: ['startSideDrawer', { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvdmlld3Mvc3JjL2xpYi9sYXlvdXRzL3BhZ2UvcGFnZS1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvdmlld3Mvc3JjL2xpYi9sYXlvdXRzL3BhZ2UvcGFnZS1sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsRUFBRTtBQUNGLE9BQU8sRUFBZ0IsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLEVBQUU7QUFDRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sb0JBQW9CLENBQUM7QUFDaEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBcUIsZ0JBQWdCLEVBQW9DLE1BQU0sdUJBQXVCLENBQUM7QUFDOUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qiw0QkFBNEIsRUFDNUIsZ0NBQWdDLEVBQ2hDLDZCQUE2QixHQUM5QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7O0FBaUN2RCxNQUFNLE9BQU8sc0JBQXNCO0lBaENuQztRQWlDWSxTQUFJLEdBQUcsTUFBTSxDQUFvQixpQkFBaUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV6QyxvQkFBZSxHQUFHLFNBQVMsQ0FBd0IsaUJBQWlCLDJEQUFDLENBQUM7UUFFdEUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFckQsZ0JBQVcsR0FBRyxlQUFlLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxZQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDaEMsQ0FBQyxtREFBQyxDQUFDO0tBdUVKO0lBL0VDLFdBQVcsQ0FFUjtJQUVILE9BQU8sQ0FJSjtJQUVLLHNCQUFzQjtRQUM1QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0QsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxJQUF1QjtRQUNqRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVTLDBCQUEwQixDQUFDLElBQXVCO1FBQzFELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRVMsbUJBQW1CLENBQUMsQ0FBZTtRQUMzQyxDQUFDLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFUyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTBCO1FBQ2hELE1BQU0sUUFBUSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4RSxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRVMscUJBQXFCLENBQUMsS0FBaUI7UUFDL0MsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsOERBQThEO0lBRXBELGFBQWE7UUFDckIsaURBQWlEO1FBQ2pELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxlQUFlLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxPQUFRLElBQUksQ0FBQyxJQUFZLENBQUMsYUFBYSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3hHLE9BQVEsSUFBSSxDQUFDLElBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRVMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFVBQWU7UUFDcEQsbURBQW1EO1FBQ25ELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNqQixJQUFJLEVBQUUsZUFBZTtZQUNyQixPQUFPLEVBQUU7Z0JBQ1AsVUFBVTthQUNYO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F2RlUsc0JBQXNCO21HQUF0QixzQkFBc0IsOERBRnRCLEVBQUUsOE5DakVmLHdoV0F1T2tELGdpY0RqTTlDLFlBQVk7Z0JBQ1osRUFBRTtnQkFDRixjQUFjLDhCQUNkLGlCQUFpQixzVkFDakIsbUJBQW1CLCtPQUNuQixzQkFBc0IsOEJBQ3RCLGdCQUFnQixxUUFDaEIsY0FBYywyd0JBQ2QsbUJBQW1CLDhHQUNuQixjQUFjLDhCQUNkLHVCQUF1QjtnQkFDdkIsRUFBRTtnQkFDRixzQkFBc0IsbUxBQ3RCLDRCQUE0QixnaUJBQzVCLDhCQUE4QiwrREFDOUIsNkJBQTZCLDhEQUM3QixrQkFBa0IscUxBQ2xCLGdDQUFnQyxpRUFDaEMsc0JBQXNCOzs0RkFXYixzQkFBc0I7a0JBaENsQyxTQUFTO2lDQUNJLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLEVBQUU7d0JBQ0YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsRUFBRTt3QkFDRixzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsOEJBQThCO3dCQUM5Qiw2QkFBNkI7d0JBQzdCLGtCQUFrQjt3QkFDbEIsZ0NBQWdDO3dCQUNoQyxzQkFBc0I7cUJBQ3ZCLFlBR1MsaUJBQWlCLGlCQUNaLGlCQUFpQixDQUFDLElBQUksbUJBRXBCLHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CLENBQUMsMEJBQTBCLENBQUMsYUFDakMsRUFBRTs2RUFRZ0QsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy9cbmltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhDb21tb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYRHJvcGRvd25CdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24tYnV0dG9uJztcbmltcG9ydCB7IEFYUFN0aWNreURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUENvbXBvbmVudFNsb3RNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzJztcbi8vXG5pbXBvcnQgeyBBWERyYXdlckNvbnRhaW5lckRpcmVjdGl2ZSwgQVhEcmF3ZXJEaXJlY3RpdmVNb2R1bGUsIEFYRHJhd2VySXRlbURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL2RyYXdlcic7XG5pbXBvcnQgeyBBWERyYXdlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcmF3ZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBBY3Rpb25NZW51SXRlbSwgQVhQRGV2aWNlU2VydmljZSwgQVhQRXhlY3V0ZUNvbW1hbmQsIEFYUFBhZ2VTdGF0dXMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQU3RhdHVzQ2hpcENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldHMnO1xuaW1wb3J0IHtcbiAgQVhQVGhlbWVMYXlvdXRBY3Rpb25zQ29tcG9uZW50LFxuICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICBBWFBUaGVtZUxheW91dENvbnRhaW5lckNvbXBvbmVudCxcbiAgQVhQVGhlbWVMYXlvdXRIZWFkZXJDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dEJhc2UgfSBmcm9tICcuL3BhZ2UtbGF5b3V0LmJhc2UnO1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgLy9cbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgIEFYRHJvcGRvd25CdXR0b25Nb2R1bGUsXG4gICAgQVhEcm9wZG93bk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYRHJhd2VyTW9kdWxlLFxuICAgIEFYRHJhd2VyRGlyZWN0aXZlTW9kdWxlLFxuICAgIC8vXG4gICAgQVhQQ29tcG9uZW50U2xvdE1vZHVsZSxcbiAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0QWN0aW9uc0NvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dEhlYWRlckNvbXBvbmVudCxcbiAgICBBWFBTdGlja3lEaXJlY3RpdmUsXG4gICAgQVhQVGhlbWVMYXlvdXRDb250YWluZXJDb21wb25lbnQsXG4gICAgQVhQU3RhdHVzQ2hpcENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS1sYXlvdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgc2VsZWN0b3I6ICdheHAtcGFnZS1sYXlvdXQnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0RGlyZWN0aXZlczogW0FYRHJhd2VyQ29udGFpbmVyRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQUGFnZUxheW91dENvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBwYWdlID0gaW5qZWN0PEFYUFBhZ2VMYXlvdXRCYXNlPihBWFBQYWdlTGF5b3V0QmFzZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcm90ZWN0ZWQgbGF5b3V0U2VydmljZSA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZGV2aWNlU2VydmljZSA9IGluamVjdChBWFBEZXZpY2VTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgc3RhcnRTaWRlRHJhd2VyID0gdmlld0NoaWxkPEFYRHJhd2VySXRlbURpcmVjdGl2ZT4oJ3N0YXJ0U2lkZURyYXdlcicpO1xuXG4gIHByb3RlY3RlZCB3b3JrZmxvdyA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgY29tbWFuZFNlcnZpY2UgPSBpbmplY3QoQVhQQ29tbWFuZFNlcnZpY2UpO1xuXG4gICNpbml0aWFsaXplID0gYWZ0ZXJOZXh0UmVuZGVyKGFzeW5jICgpID0+IHtcbiAgICB0aGlzLmNoZWNrU2Nyb2xsYWJsZUNvbnRlbnQoKTtcbiAgfSk7XG5cbiAgI2VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdGhpcy5wYWdlPy50aXRsZSgpO1xuICAgIHRoaXMucGFnZT8uZGVzY3JpcHRpb24oKTtcbiAgICB0aGlzLmNoZWNrU2Nyb2xsYWJsZUNvbnRlbnQoKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBjaGVja1Njcm9sbGFibGVDb250ZW50KCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdheHAtcGFnZS1jb250ZW50Jyk7XG4gICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC5zY3JvbGxIZWlnaHQgPj0gY29udGVudC5jbGllbnRIZWlnaHQpIHtcbiAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgnLS1zY3JvbGxhYmxlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUFjdGlvbkNsaWNrKGl0ZW06IEFYUEFjdGlvbk1lbnVJdGVtKSB7XG4gICAgaWYgKGl0ZW0uY29tbWFuZCAmJiAoaXRlbS5pdGVtcz8ubGVuZ3RoID8/IDApID09IDApIHtcbiAgICAgIHRoaXMuZXhlY3V0ZShpdGVtLmNvbW1hbmQpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVN0YXJ0U2lkZSgpIHtcbiAgICB0aGlzLnN0YXJ0U2lkZURyYXdlcigpPy50b2dnbGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVTZWNvbmRhcnlBY3Rpb25DbGljayhpdGVtOiBBWFBBY3Rpb25NZW51SXRlbSkge1xuICAgIGlmIChpdGVtLmNvbW1hbmQpIHtcbiAgICAgIHRoaXMuZXhlY3V0ZShpdGVtLmNvbW1hbmQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVCYWNrZHJvcENsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgIGUubmF0aXZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBlLm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUuY29tcG9uZW50LmhpZGUoKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCkge1xuICAgIGNvbnN0IHJlc2VydmVkID0gWyduYXZpZ2F0ZSddO1xuICAgIGlmIChyZXNlcnZlZC5pbmNsdWRlcyhjb21tYW5kLm5hbWUpKSB7XG4gICAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoY29tbWFuZC5uYW1lLCB7IG9wdGlvbnM6IGNvbW1hbmQub3B0aW9ucyB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tbWFuZFNlcnZpY2UuZXhpc3RzKGNvbW1hbmQubmFtZSkpIHtcbiAgICAgIGF3YWl0IHRoaXMuY29tbWFuZFNlcnZpY2UuZXhlY3V0ZShjb21tYW5kLm5hbWUsIGNvbW1hbmQub3B0aW9ucyA/PyB7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMucGFnZT8uZXhlY3V0ZShjb21tYW5kKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT25CYWNrZHJvcENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zdGFydFNpZGVEcmF3ZXIoKT8uaGlkZSgpO1xuICB9XG5cbiAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBTdGF0dXMgSGVscGVycyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXR5RGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCB7XG4gICAgLy8gR2V0IGVudGl0eSBkYXRhIGZyb20gcGFnZSBjb250ZXh0IGlmIGF2YWlsYWJsZVxuICAgIGlmICh0aGlzLnBhZ2UgJiYgJ2dldEVudGl0eURhdGEnIGluIHRoaXMucGFnZSAmJiB0eXBlb2YgKHRoaXMucGFnZSBhcyBhbnkpLmdldEVudGl0eURhdGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiAodGhpcy5wYWdlIGFzIGFueSkuZ2V0RW50aXR5RGF0YSgpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTdGF0dXNUcmFuc2l0aW9uKHRyYW5zaXRpb246IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIENvbnZlcnQgc3RhdHVzIHRyYW5zaXRpb24gdG8gY29tbWFuZCBhbmQgZXhlY3V0ZVxuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZSh7XG4gICAgICBuYW1lOiAndXBkYXRlLXN0YXR1cycsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIHRyYW5zaXRpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iLCI8IS0tLS0tLS0tIEJlZ2luIFN0YXJ0IFNpZGUgRHJhd2VyICAtLS0tLS0tLT5cbjxkaXYgaWQ9XCJheHAtZHJhd2VyLXN0YXJ0XCIgW21vZGVdPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKCkgPyAnb3ZlcmxheScgOiAncHVzaCdcIiBbdHJhbnNpdGlvbl09XCIyNTBcIiBheERyYXdlckl0ZW1cbiAgW2JhY2tEcm9wXT1cInRydWVcIiAob25CYWNrZHJvcENsaWNrKT1cImhhbmRsZUJhY2tkcm9wQ2xpY2soJGV2ZW50KVwiICNzdGFydFNpZGVEcmF3ZXI9XCJheERyYXdlckl0ZW1cIlxuICBbYmFja2Ryb3BDbGFzc109XCInYXgtYmctZGFya2VzdC83NSdcIiBbY29sbGFwc2VkXT1cImRldmljZVNlcnZpY2UuaXNTbWFsbCgpXCIgZHJhd2VyTG9jYXRpb249XCJzdGFydFwiXG4gIGNsYXNzPVwiYXgtei01MCBheC1oLWZ1bGxcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1zdGFydC1zaWRlXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48IS0tLS0tLS0tIEZpbmlzaCBTdGFydCBTaWRlIERyYXdlciAgLS0tLS0tLS0+XG48IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbjwhLS0tLS0tLS0gQmVnaW4gTWFpbiBMYXlvdXQgQ29udGFpbmVyICAtLS0tLS0tLT5cbjxheHAtbGF5b3V0LWNvbnRhaW5lciBpZD1cImF4cC1wYWdlLWxheW91dFwiICNjb250YWluZXI+XG4gIDwhLS0tLS0tLS0gQmVnaW4gUGFnZSBIZWFkZXIgIC0tLS0tLS0tPlxuICA8YXhwLWxheW91dC1oZWFkZXIgaWQ9XCJheHAtcGFnZS1oZWFkZXJcIiAqdHJhbnNsYXRlPVwibGV0IHRcIiAjc3RpY2t5PVwiYXhwU3RpY2t5XCIgW2F4cFN0aWNreV09XCInYXhwLWlzLXN0aWNreSdcIlxuICAgIFtzdGlja3lPZmZzZXRdPVwiNTBcIiBbc3RpY2t5UGFyZW50XT1cImNvbnRhaW5lci5ob3N0RWxlbWVudFwiPlxuICAgIDwhLS0tLS0tLS0gQmVnaW4gQmFjayBCdXR0b24gKE1vYmlsZSBPbmx5KSAgLS0tLS0tLS0+XG4gICAgQGlmIChwYWdlPy5oYXNCYWNrQnV0dG9uKCkgJiYgZGV2aWNlU2VydmljZS5pc1NtYWxsKCkpIHtcbiAgICA8YXgtYnV0dG9uIGlkPVwiYXhwLWJ0bi1iYWNrXCIgW2xvb2tdPVwiJ2JsYW5rJ1wiIGNsYXNzPVwiYXgtc20gYXgtdy1maXQgYXgtbXMtMVwiIGNvbG9yPVwic2Vjb25kYXJ5XCJcbiAgICAgIChjbGljayk9XCJwYWdlPy5vbkJhY2tCdXR0b25DbGljaygpXCIgW3RleHRdPVwicGFnZT8uYmFja0J1dHRvbigpPy50aXRsZVwiPlxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLWNoZXZyb24tbGVmdCBydGw6YXgtcm90YXRlLTE4MFwiPjwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIH1cbiAgICA8IS0tLS0tLS0tIEZpbmlzaCBCYWNrIEJ1dHRvbiAgLS0tLS0tLS0+XG4gICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSBCYXIgIC0tLS0tLS0tPlxuICAgIDxheHAtbGF5b3V0LXRpdGxlLWJhciBpZD1cImF4cC10aXRsZS1iYXJcIj5cbiAgICAgIDwhLS0tLS0tLS0gQmVnaW4gVGl0bGUgU2VjdGlvbiAgLS0tLS0tLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC10cmFuc2l0aW9uXCI+XG4gICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gQnJlYWRjcnVtYnMgIC0tLS0tLS0tPlxuICAgICAgICBAaWYgKHBhZ2U/Lmhhc0JyZWFkY3J1bWJzKCkgJiYgIWRldmljZVNlcnZpY2UuaXNTbWFsbCgpKSB7XG4gICAgICAgIDxheC1icmVhZGNydW1icyBpZD1cImF4cC1icmVhZGNydW1iXCIgY2xhc3M9XCJheC1tYi0xXCI+XG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBwYWdlPy5icmVhZGNydW1icygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8YXgtYnJlYWRjcnVtYnMtaXRlbSBbYXR0ci5pZF09XCInYXhwLWJyZWFkY3J1bWItaXRlbS0nICsgJGluZGV4XCIgW2FjdGl2ZV09XCIkbGFzdFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaXRlbS5jb21tYW5kID8gZXhlY3V0ZShpdGVtLmNvbW1hbmQpIDogbnVsbFwiPlxuICAgICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJpdGVtLmljb25cIj48L2k+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB7eyB0KGl0ZW0udGl0bGUpIHwgYXN5bmMgfX1cbiAgICAgICAgICA8L2F4LWJyZWFkY3J1bWJzLWl0ZW0+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGl2aWRlcj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtcmVndWxhciBmYS1jaGV2cm9uLXJpZ2h0IHJ0bDpheC1yb3RhdGUtMTgwIGZhLXNtXCI+PC9pPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYXgtYnJlYWRjcnVtYnM+XG4gICAgICAgIH1cbiAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggQnJlYWRjcnVtYnMgIC0tLS0tLS0tPlxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSBDb250YWluZXIgIC0tLS0tLS0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiX190aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFBhZ2UgVGl0bGUgIC0tLS0tLS0tPlxuICAgICAgICAgIEBpZiAocGFnZT8uaGFzVGl0bGUoKSkge1xuICAgICAgICAgIDxheHAtbGF5b3V0LXRpdGxlIGlkPVwiYXhwLXBhZ2UtdGl0bGVcIj5cbiAgICAgICAgICAgIEBpZiAocGFnZT8uaGFzVGl0bGVJY29uKCkpIHtcbiAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cInBhZ2U/LnRpdGxlSWNvbigpIVwiIGNsYXNzPVwiYXgtbWUtMlwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHt7IHQocGFnZT8udGl0bGUoKSkgfCBhc3luYyB9fVxuICAgICAgICAgIDwvYXhwLWxheW91dC10aXRsZT5cbiAgICAgICAgICB9XG4gICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggUGFnZSBUaXRsZSAgLS0tLS0tLS0+XG4gICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgICAgICBAaWYgKHBhZ2U/Lmhhc1RpdGxlQWN0aW9ucygpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiBpZD1cImF4cC1idG4tdGl0bGUtYWN0aW9uc1wiIFtsb29rXT1cIidibGFuaydcIiBjbGFzcz1cImF4LXNtIC1heC1teC0yXCI+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWNhcmV0LWRvd24gZmEtZndcIj48L2k+XG4gICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbCAjcGFuZWw+XG4gICAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgICAgIEBmb3IgKHN1YiBvZiBwYWdlPy50aXRsZUFjdGlvbnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbSBbYXR0ci5pZF09XCInYXhwLWJ0bi10aXRsZS1hY3Rpb24tJyArIChzdWIubmFtZSB8fCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiKHQoc3ViLnRpdGxlKSB8IGFzeW5jKSFcIiBbY29sb3JdPVwic3ViLmNvbG9yXCIgW2Rpc2FibGVkXT1cInN1Yi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzdWIuY29tbWFuZD8ubWV0YWRhdGE/LlsnaXNTZWxlY3RlZCddXCIgKG9uQ2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soc3ViKVwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1saWdodCB7eyBzdWIuaWNvbiB9fVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc3ViLmNvbW1hbmQ/Lm1ldGFkYXRhPy5bJ2lzU2VsZWN0ZWQnXSkge1xuICAgICAgICAgICAgICAgICAgICA8YXgtc3VmZml4IGNsYXNzPVwiYXgtbXMtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1zb2xpZCBmYS1jaGVja1wiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1zdWZmaXg+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgICBAaWYgKHN1Yi5icmVhaykge1xuICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgPC9heC1kcm9wZG93bi1wYW5lbD5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgQWN0aW9ucyAgLS0tLS0tLS0+XG4gICAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBUaXRsZSBCYWRnZSAgLS0tLS0tLS0+XG4gICAgICAgICAgQGlmIChwYWdlPy5oYXNCYWRnZSgpKSB7XG4gICAgICAgICAgPGRpdiBpZD1cImF4cC1wYWdlLWJhZGdlXCIgY2xhc3M9XCJfX3RpdGxlLWJhZGdlIC0te3sgcGFnZT8uYmFkZ2UoKT8uY29sb3IgfX1cIlxuICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwicGFnZT8uYmFkZ2UoKT8uZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAge3sgcGFnZT8uYmFkZ2UoKT8udGl0bGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgQmFkZ2UgIC0tLS0tLS0tPlxuXG4gICAgICAgICAgPCEtLS0tLS0tLSBCZWdpbiBQYWdlIFN0YXR1cyAgLS0tLS0tLS0+XG5cbiAgICAgICAgICBAaWYgKHBhZ2U/Lmhhc1N0YXR1cygpKSB7XG4gICAgICAgICAgPGF4cC1zdGF0dXMtY2hpcFxuICAgICAgICAgICAgW3ZhbHVlXT1cInBhZ2U/LnN0YXR1cygpPy52YWx1ZSA/PyBudWxsXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJwYWdlPy5zdGF0dXMoKT8ucmVhZG9ubHkgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW2RlZmluaXRpb25LZXldPVwicGFnZT8uc3RhdHVzKCk/LmRlZmluaXRpb25LZXkgPz8gbnVsbFwiXG4gICAgICAgICAgICBbZW50aXR5RGF0YV09XCJnZXRFbnRpdHlEYXRhKClcIlxuICAgICAgICAgICAgKHRyYW5zaXRpb25FeGVjdXRlZCk9XCJoYW5kbGVTdGF0dXNUcmFuc2l0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgY2xhc3M9XCJfX3RpdGxlLXN0YXR1c1wiXG4gICAgICAgICAgPjwvYXhwLXN0YXR1cy1jaGlwPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8IS0tLS0tLS0tIEZpbmlzaCBQYWdlIFN0YXR1cyAgLS0tLS0tLS0+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIFRpdGxlIENvbnRhaW5lciAgLS0tLS0tLS0+XG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxuICAgICAgICA8IS0tLS0tLS0tIEJlZ2luIFBhZ2UgRGVzY3JpcHRpb24gIC0tLS0tLS0tPlxuICAgICAgICBAaWYgKHBhZ2U/Lmhhc0Rlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgPGF4cC1sYXlvdXQtZGVzY3JpcHRpb24gaWQ9XCJheHAtcGFnZS1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIHt7IHQocGFnZT8uZGVzY3JpcHRpb24oKSkgfCBhc3luYyB9fTwvYXhwLWxheW91dC1kZXNjcmlwdGlvbj5cbiAgICAgICAgfVxuICAgICAgICA8IS0tLS0tLS0tIEZpbmlzaCBQYWdlIERlc2NyaXB0aW9uICAtLS0tLS0tLT5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggVGl0bGUgU2VjdGlvbiAgLS0tLS0tLS0+XG4gICAgICA8IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cbiAgICAgIDwhLS0tLS0tLS0gQmVnaW4gUGFnZSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgIDxheHAtbGF5b3V0LWFjdGlvbnMgaWQ9XCJheHAtcGFnZS1hY3Rpb25zXCIgY2xhc3M9XCJheC1zaHJpbmstMFwiPlxuICAgICAgICA8YXhwLWNvbXBvbmVudC1zbG90IG5hbWU9XCJwYWdlLWhlYWRlci1hY3Rpb25zXCI+PC9heHAtY29tcG9uZW50LXNsb3Q+XG4gICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gUHJpbWFyeSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgICAgQGlmIChwYWdlPy5oYXNQcmltYXJ5QWN0aW9ucygpKSB7XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgcGFnZT8ucHJpbWFyeU1lbnVJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgQGlmIChpdGVtLnZpc2libGUgIT0gZmFsc2UpIHtcbiAgICAgICAgPGF4LWJ1dHRvbiBbYXR0ci5pZF09XCInYXhwLWJ0bi1wcmltYXJ5LScgKyAoaXRlbS5uYW1lIHx8IGl0ZW0udGl0bGUpXCIgW2NsYXNzLmF4LXNtXT1cImRldmljZVNlcnZpY2UuaXNTbWFsbCgpXCJcbiAgICAgICAgICBbaWNvbk9ubHldPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKClcIiBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiIFt0ZXh0XT1cIih0KGl0ZW0udGl0bGUpIHwgYXN5bmMpIVwiXG4gICAgICAgICAgW2xvb2tdPVwiJ3NvbGlkJ1wiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgKG9uQ2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soaXRlbSlcIj5cbiAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJ7eyBpdGVtLmljb24gfX1cIj48L2k+XG4gICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgQGlmIChpdGVtPy5pdGVtcykge1xuICAgICAgICAgIDxheC1kcm9wZG93bi1wYW5lbCAjcGFuZWw+XG4gICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgQGZvciAoc3ViIG9mIGl0ZW0/Lml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgQGlmIChzdWIudmlzaWJsZSAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gW2F0dHIuaWRdPVwiJ2F4cC1idG4tcHJpbWFyeS0nICsgKGl0ZW0ubmFtZSB8fCBpdGVtLnRpdGxlKSArICctJyArIChzdWIubmFtZSB8fCBzdWIudGl0bGUpXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCIodChzdWIudGl0bGUpIHwgYXN5bmMpIVwiIFtjb2xvcl09XCJzdWIuY29sb3JcIiBbZGlzYWJsZWRdPVwic3ViLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVBY3Rpb25DbGljayhzdWIpXCI+XG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYS1saWdodCB7eyBzdWIuaWNvbiB9fVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgQGlmIChzdWIuYnJlYWspIHtcbiAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgICAgfVxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggUHJpbWFyeSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgIDwhLS0tLS0tLS0gQmVnaW4gU2Vjb25kYXJ5IEFjdGlvbnMgIC0tLS0tLS0tPlxuICAgICAgICBAaWYgKHBhZ2U/Lmhhc1NlY29uZGFyeUFjdGlvbnMoKSkge1xuICAgICAgICA8YXgtYnV0dG9uIGlkPVwiYXhwLWJ0bi1zZWNvbmRhcnlcIiBbY2xhc3MuYXgtc21dPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKClcIiBbaWNvbk9ubHldPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKClcIlxuICAgICAgICAgIFt0ZXh0XT1cIidAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UuYWN0aW9ucycgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgW2xvb2tdPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKCkgPyAnYmxhbmsnIDogJ3NvbGlkJ1wiIFtjb2xvcl09XCInZGVmYXVsdCdcIj5cbiAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1lbGxpcHNpcy12ZXJ0aWNhbFwiPjwvaT5cbiAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWwgI3BhbmVsPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgcGFnZT8uc2Vjb25kYXJ5TWVudUl0ZW1zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICBAaWYgKGl0ZW0udmlzaWJsZSAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0gW2F0dHIuaWRdPVwiJ2F4cC1idG4tc2Vjb25kYXJ5LScgKyAoaXRlbS5uYW1lIHx8IGl0ZW0udGl0bGUpXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCIoaXRlbS50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVTZWNvbmRhcnlBY3Rpb25DbGljayhpdGVtKVwiPlxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQge3sgaXRlbS5pY29uIH19XCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgICAgICBAaWYgKGl0ZW0uYnJlYWspIHtcbiAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIDwhLS0tLS0tLS0gRmluaXNoIFNlY29uZGFyeSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICAgIDwvYXhwLWxheW91dC1hY3Rpb25zPlxuICAgICAgPCEtLS0tLS0tLSBGaW5pc2ggUGFnZSBBY3Rpb25zICAtLS0tLS0tLT5cbiAgICA8L2F4cC1sYXlvdXQtdGl0bGUtYmFyPlxuICAgIDwhLS0tLS0tLS0gRmluaXNoIFRpdGxlIEJhciAgLS0tLS0tLS0+XG4gICAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gICAgPCEtLS0tLS0tLSBCZWdpbiBQYWdlIFRvb2xiYXIgLyBOYXZiYXIgIC0tLS0tLS0tPlxuICAgIEBpZiAoIXN0aWNreS5pc1N0aWNreSkge31cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtcGFnZS10b29sYmFyXCI+PC9uZy1jb250ZW50PlxuICAgIDwhLS0tLS0tLS0gRmluaXNoIFBhZ2UgVG9vbGJhciAvIE5hdmJhciAgLS0tLS0tLS0+XG4gIDwvYXhwLWxheW91dC1oZWFkZXI+XG4gIDwhLS0tLS0tLS0gRmluaXNoIFBhZ2UgSGVhZGVyICAtLS0tLS0tLT5cbiAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gIDwhLS0tLS0tLS0gQmVnaW4gUGFnZSBDb250ZW50ICAtLS0tLS0tLT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLXBhZ2UtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgPCEtLS0tLS0tLSBGaW5pc2ggUGFnZSBDb250ZW50ICAtLS0tLS0tLT5cbiAgPCEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+XG4gIDwhLS0tLS0tLS0gQmVnaW4gUGFnZSBGb290ZXIgIC0tLS0tLS0tPlxuICA8YXhwLXBhZ2UtZm9vdGVyLWNvbnRhaW5lciBpZD1cImF4cC1wYWdlLWZvb3Rlci1jb250YWluZXJcIlxuICAgIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogdHQuaXNFbXB0eSgpICYmIHByZWZpeFNsb3QuaXNFbXB0eSgpICYmIHN1ZmZpeFNsb3QuaXNFbXB0eSgpID8gJ25vbmUnIDogJ2Jsb2NrJyB9XCI+XG4gICAgPGF4cC1sYXlvdXQtY29udGFpbmVyICN0dD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1wYWdlLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgICA8L2F4cC1sYXlvdXQtY29udGFpbmVyPlxuICAgIDxheHAtcGFnZS1mb290ZXIgaWQ9XCJheHAtcGFnZS1mb290ZXJcIj5cbiAgICAgIDxheHAtbGF5b3V0LXByZWZpeD5cbiAgICAgICAgPGF4cC1jb21wb25lbnQtc2xvdCBuYW1lPVwicGFnZS1mb290ZXItc3RhcnRcIiAjcHJlZml4U2xvdD1cInNsb3RcIj48L2F4cC1jb21wb25lbnQtc2xvdD5cbiAgICAgIDwvYXhwLWxheW91dC1wcmVmaXg+XG4gICAgICA8YXhwLWxheW91dC1zdWZmaXg+XG4gICAgICAgIDxheHAtY29tcG9uZW50LXNsb3QgbmFtZT1cInBhZ2UtZm9vdGVyLWVuZFwiICNzdWZmaXhTbG90PVwic2xvdFwiPjwvYXhwLWNvbXBvbmVudC1zbG90PlxuICAgICAgPC9heHAtbGF5b3V0LXN1ZmZpeD5cbiAgICA8L2F4cC1wYWdlLWZvb3Rlcj5cbiAgPC9heHAtcGFnZS1mb290ZXItY29udGFpbmVyPlxuICA8IS0tLS0tLS0tIEZpbmlzaCBQYWdlIEZvb3RlciAgLS0tLS0tLS0+XG48L2F4cC1sYXlvdXQtY29udGFpbmVyPlxuPCEtLS0tLS0tLSBGaW5pc2ggTWFpbiBMYXlvdXQgQ29udGFpbmVyICAtLS0tLS0tLT4iXX0=","import { AXToastService } from '@acorex/components/toast';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPHomePageService } from '@acorex/platform/common';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { Component, computed, effect, inject, signal, viewChild } from '@angular/core';\nimport { isEmpty, isNil } from 'lodash-es';\nimport { AXPPageLayoutComponent } from './page-layout.component';\nimport { AXPPolicyEngineService } from '@acorex/platform/runtime';\nimport * as i0 from \"@angular/core\";\nexport class AXPPageLayoutBaseComponent {\n constructor() {\n //#region ---------------- Services ----------------\n this.layoutService = inject(AXPLayoutThemeService);\n this.sessionService = inject(AXPSessionService);\n this.translateService = inject(AXTranslationService);\n this.formatService = inject(AXFormatService);\n this.toastService = inject(AXToastService);\n this.homePageService = inject(AXPHomePageService);\n this.policyService = inject(AXPPolicyEngineService);\n //#endregion\n //#region ---------------- Signal to force recomputation ----------------\n this._updateTrigger = signal(0, ...(ngDevMode ? [{ debugName: \"_updateTrigger\" }] : []));\n this.updateTrigger = this._updateTrigger.asReadonly();\n //#endregion\n //#region ---------------- Title ----------------\n this.title = signal('', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.titleIcon = signal(null, ...(ngDevMode ? [{ debugName: \"titleIcon\" }] : []));\n this.#titleEffect = effect(async () => {\n this.updateTrigger();\n this.title.set(await this.getPageTitle());\n const icon = await this.getPageIcon();\n this.titleIcon.set(icon);\n }, ...(ngDevMode ? [{ debugName: \"#titleEffect\" }] : []));\n this.hasTitle = computed(() => this.title() !== '', ...(ngDevMode ? [{ debugName: \"hasTitle\" }] : []));\n this.hasTitleIcon = computed(() => this.titleIcon() !== null, ...(ngDevMode ? [{ debugName: \"hasTitleIcon\" }] : []));\n //#endregion\n //#region ---------------- Description ----------------\n this.description = signal(null, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.hasDescription = computed(() => !isNil(this.description()) && !isEmpty(this.description()), ...(ngDevMode ? [{ debugName: \"hasDescription\" }] : []));\n this.#descriptionEffect = effect(async () => {\n this.updateTrigger();\n this.description.set(await this.getPageDescription());\n }, ...(ngDevMode ? [{ debugName: \"#descriptionEffect\" }] : []));\n //#endregion\n //#region ---------------- Breadcrumbs ----------------\n this.defaultBreadCrumbs = [\n {\n title: '@general:terms.interface.navigation.home',\n icon: 'fa-solid fa-home ax-text-xs ax-me-1',\n command: {\n name: 'navigate',\n options: {\n path: this.homePageService.getCurrent().path,\n },\n },\n },\n ];\n this.breadcrumbs = signal(this.defaultBreadCrumbs, ...(ngDevMode ? [{ debugName: \"breadcrumbs\" }] : []));\n this.#breadcrumbsEffect = effect(async () => {\n this.updateTrigger();\n const breadCrumbs = await this.getPageBreadcrumbs();\n this.breadcrumbs.set([...this.defaultBreadCrumbs, ...breadCrumbs]);\n }, ...(ngDevMode ? [{ debugName: \"#breadcrumbsEffect\" }] : []));\n this.hasBreadcrumbs = computed(() => this.breadcrumbs().length > 1, ...(ngDevMode ? [{ debugName: \"hasBreadcrumbs\" }] : []));\n //#endregion\n //#region ---------------- Badge ----------------\n this.badge = signal(null, ...(ngDevMode ? [{ debugName: \"badge\" }] : []));\n this.hasBadge = computed(() => this.badge() !== null, ...(ngDevMode ? [{ debugName: \"hasBadge\" }] : []));\n this.#badgeEffect = effect(async () => {\n this.updateTrigger();\n this.badge.set(await this.getPageBadge());\n }, ...(ngDevMode ? [{ debugName: \"#badgeEffect\" }] : []));\n //#endregion\n //#region ---------------- Status ----------------\n this.status = signal(null, ...(ngDevMode ? [{ debugName: \"status\" }] : []));\n this.hasStatus = computed(() => this.status() !== null, ...(ngDevMode ? [{ debugName: \"hasStatus\" }] : []));\n this.#statusEffect = effect(async () => {\n this.updateTrigger();\n this.status.set(await this.getPageStatus());\n }, ...(ngDevMode ? [{ debugName: \"#statusEffect\" }] : []));\n //#endregion\n //#region ---------------- Layout ----------------\n this.layout = viewChild(AXPPageLayoutComponent, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n //#endregion\n //#region ---------------- Actions ----------------\n this.primaryMenuItems = signal([], ...(ngDevMode ? [{ debugName: \"primaryMenuItems\" }] : []));\n this.hasPrimaryActions = computed(() => this.primaryMenuItems().filter(item => item.visible != false).length > 0, ...(ngDevMode ? [{ debugName: \"hasPrimaryActions\" }] : []));\n this.#primaryMenuItemsEffect = effect(async () => {\n this.updateTrigger();\n const items = await this.getPrimaryMenuItems();\n this.primaryMenuItems.set(items);\n }, ...(ngDevMode ? [{ debugName: \"#primaryMenuItemsEffect\" }] : []));\n this.secondaryMenuItems = signal([], ...(ngDevMode ? [{ debugName: \"secondaryMenuItems\" }] : []));\n this.hasSecondaryActions = computed(() => this.secondaryMenuItems().filter(item => item.visible != false).length > 0, ...(ngDevMode ? [{ debugName: \"hasSecondaryActions\" }] : []));\n this.#secondaryMenuItemsEffect = effect(async () => {\n this.updateTrigger();\n const items = await this.getSecondaryMenuItems();\n this.secondaryMenuItems.set(items);\n }, ...(ngDevMode ? [{ debugName: \"#secondaryMenuItemsEffect\" }] : []));\n this.hasActions = computed(() => this.hasPrimaryActions() || this.hasSecondaryActions(), ...(ngDevMode ? [{ debugName: \"hasActions\" }] : []));\n this.titleActions = signal([], ...(ngDevMode ? [{ debugName: \"titleActions\" }] : []));\n this.hasTitleActions = computed(() => this.titleActions().length > 0, ...(ngDevMode ? [{ debugName: \"hasTitleActions\" }] : []));\n this.#titleActionsEffect = effect(async () => {\n this.updateTrigger();\n this.titleActions.set(await this.getTitleActions());\n }, ...(ngDevMode ? [{ debugName: \"#titleActionsEffect\" }] : []));\n this.backButton = signal(null, ...(ngDevMode ? [{ debugName: \"backButton\" }] : []));\n this.hasBackButton = computed(() => this.backButton() !== null, ...(ngDevMode ? [{ debugName: \"hasBackButton\" }] : []));\n this.#backButtonEffect = effect(async () => {\n this.updateTrigger();\n this.backButton.set(await this.getBackButton());\n }, ...(ngDevMode ? [{ debugName: \"#backButtonEffect\" }] : []));\n }\n recompute() {\n this._updateTrigger.set(this._updateTrigger() + 1);\n }\n //#endregion\n //#region ---------------- Lifecycle hooks ----------------\n async ngOnInit() {\n this.translateService.langChanges$.subscribe(() => {\n this.recompute();\n });\n }\n #titleEffect;\n getPageTitle() {\n return '';\n }\n getPageIcon() {\n return null;\n }\n #descriptionEffect;\n getPageDescription() {\n return null;\n }\n #breadcrumbsEffect;\n getPageBreadcrumbs() {\n return [];\n }\n #badgeEffect;\n getPageBadge() {\n return null;\n }\n #statusEffect;\n getPageStatus() {\n return null;\n }\n //TODO: Remove this after migration to the new layout\n toggleEndSide() {\n //this.layout()?.toggleStartSide()\n }\n //TODO: Remove this after migration to the new layout\n toggleStartSide() {\n this.layout()?.toggleStartSide();\n }\n #primaryMenuItemsEffect;\n getPrimaryMenuItems() {\n return [];\n }\n #secondaryMenuItemsEffect;\n getSecondaryMenuItems() {\n return [];\n }\n #titleActionsEffect;\n getTitleActions() {\n return [];\n }\n getBackButton() {\n return null;\n }\n #backButtonEffect;\n //#endregion\n //#region ---------------- Handle Commands ----------------\n execute(command) { }\n startSideToggle() {\n this.layout();\n }\n onBackButtonClick() { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPageLayoutBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.16\", type: AXPPageLayoutBaseComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"layout\", first: true, predicate: AXPPageLayoutComponent, descendants: true, isSignal: true }], ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPageLayoutBaseComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n template: '',\n }]\n }], propDecorators: { layout: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPPageLayoutComponent), { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1sYXlvdXQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC92aWV3cy9zcmMvbGliL2xheW91dHMvcGFnZS9wYWdlLWxheW91dC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNbEUsTUFBTSxPQUFnQiwwQkFBMEI7SUFKaEQ7UUFLRSx3REFBd0Q7UUFFckMsa0JBQWEsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM5QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hELGtCQUFhLEdBQUcs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RUFBRSxDQUFDO0lBQ1osQ0FBQztJQVVELFlBQVksQ0FHVDtJQUVPLFlBQVk7UUFDcEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBVUQsYUFBYSxDQUdWO0lBRU8sYUFBYTtRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFTRCxxREFBcUQ7SUFDM0MsYUFBYTtRQUNyQixrQ0FBa0M7SUFDcEMsQ0FBQztJQUVELHFEQUFxRDtJQUMzQyxlQUFlO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0lBVUQsdUJBQXVCLENBSXBCO0lBRU8sbUJBQW1CO1FBQzNCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQU1ELHlCQUF5QixDQUl0QjtJQUlPLHFCQUFxQjtRQUM3QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFNRCxtQkFBbUIsQ0FHaEI7SUFFTyxlQUFlO1FBQ3ZCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQU1TLGFBQWE7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsaUJBQWlCLENBR2Q7SUFFSCxZQUFZO0lBRVosK0RBQStEO0lBRXhELE9BQU8sQ0FBQyxPQUEwQixJQUEwQixDQUFDO0lBRTdELGVBQWU7UUFDcEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxpQkFBaUIsS0FBMkIsQ0FBQzsrR0FuT2hDLDBCQUEwQjttR0FBMUIsMEJBQTBCLGdIQWlKakIsc0JBQXNCLGdFQW5KekMsRUFBRTs7NEZBRVEsMEJBQTBCO2tCQUovQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsRUFBRTtpQkFDYjt3RkFrSjhCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQSG9tZVBhZ2VTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEJhY2tCdXR0b24sIEFYUEJhZGdlLCBBWFBCcmVhZGNydW1iSXRlbSwgQVhQRXhlY3V0ZUNvbW1hbmQsIEFYUFBhZ2VTdGF0dXMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vcGFnZS1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUFBvbGljeUVuZ2luZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dEJhc2UgfSBmcm9tICcuL3BhZ2UtbGF5b3V0LmJhc2UnO1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQUGFnZUxheW91dEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBWFBQYWdlTGF5b3V0QmFzZSB7XG4gIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgU2VydmljZXMgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybWF0U2VydmljZSA9IGluamVjdChBWEZvcm1hdFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhvbWVQYWdlU2VydmljZSA9IGluamVjdChBWFBIb21lUGFnZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9saWN5U2VydmljZSA9IGluamVjdChBWFBQb2xpY3lFbmdpbmVTZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIFNpZ25hbCB0byBmb3JjZSByZWNvbXB1dGF0aW9uICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByaXZhdGUgX3VwZGF0ZVRyaWdnZXIgPSBzaWduYWwoMCk7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVRyaWdnZXIgPSB0aGlzLl91cGRhdGVUcmlnZ2VyLmFzUmVhZG9ubHkoKTtcblxuICBwcm90ZWN0ZWQgcmVjb21wdXRlKCkge1xuICAgIHRoaXMuX3VwZGF0ZVRyaWdnZXIuc2V0KHRoaXMuX3VwZGF0ZVRyaWdnZXIoKSArIDEpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBMaWZlY3ljbGUgaG9va3MgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxhbmdDaGFuZ2VzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgVGl0bGUgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHVibGljIHRpdGxlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICBwdWJsaWMgdGl0bGVJY29uID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICN0aXRsZUVmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgdGhpcy50aXRsZS5zZXQoYXdhaXQgdGhpcy5nZXRQYWdlVGl0bGUoKSk7XG4gICAgY29uc3QgaWNvbiA9IGF3YWl0IHRoaXMuZ2V0UGFnZUljb24oKTtcbiAgICB0aGlzLnRpdGxlSWNvbi5zZXQoaWNvbik7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBnZXRQYWdlVGl0bGUoKTogc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UGFnZUljb24oKTogc3RyaW5nIHwgbnVsbCB8IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIGhhc1RpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aXRsZSgpICE9PSAnJyk7XG4gIHB1YmxpYyBoYXNUaXRsZUljb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRpdGxlSWNvbigpICE9PSBudWxsKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIERlc2NyaXB0aW9uICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgaGFzRGVzY3JpcHRpb24gPSBjb21wdXRlZCgoKSA9PiAhaXNOaWwodGhpcy5kZXNjcmlwdGlvbigpKSAmJiAhaXNFbXB0eSh0aGlzLmRlc2NyaXB0aW9uKCkpKTtcblxuICAjZGVzY3JpcHRpb25FZmZlY3QgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgIHRoaXMuZGVzY3JpcHRpb24uc2V0KGF3YWl0IHRoaXMuZ2V0UGFnZURlc2NyaXB0aW9uKCkpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgZ2V0UGFnZURlc2NyaXB0aW9uKCk6IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgQnJlYWRjcnVtYnMgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHJpdmF0ZSBkZWZhdWx0QnJlYWRDcnVtYnM6IEFYUEJyZWFkY3J1bWJJdGVtW10gPSBbXG4gICAge1xuICAgICAgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UubmF2aWdhdGlvbi5ob21lJyxcbiAgICAgIGljb246ICdmYS1zb2xpZCBmYS1ob21lIGF4LXRleHQteHMgYXgtbWUtMScsXG4gICAgICBjb21tYW5kOiB7XG4gICAgICAgIG5hbWU6ICduYXZpZ2F0ZScsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBwYXRoOiB0aGlzLmhvbWVQYWdlU2VydmljZS5nZXRDdXJyZW50KCkucGF0aCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgXTtcblxuICBwdWJsaWMgYnJlYWRjcnVtYnMgPSBzaWduYWw8QVhQQnJlYWRjcnVtYkl0ZW1bXT4odGhpcy5kZWZhdWx0QnJlYWRDcnVtYnMpO1xuXG4gICNicmVhZGNydW1ic0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgY29uc3QgYnJlYWRDcnVtYnMgPSBhd2FpdCB0aGlzLmdldFBhZ2VCcmVhZGNydW1icygpO1xuICAgIHRoaXMuYnJlYWRjcnVtYnMuc2V0KFsuLi50aGlzLmRlZmF1bHRCcmVhZENydW1icywgLi4uYnJlYWRDcnVtYnNdKTtcbiAgfSk7XG5cbiAgcHVibGljIGhhc0JyZWFkY3J1bWJzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5icmVhZGNydW1icygpLmxlbmd0aCA+IDEpO1xuXG4gIHByb3RlY3RlZCBnZXRQYWdlQnJlYWRjcnVtYnMoKTogQVhQQnJlYWRjcnVtYkl0ZW1bXSB8IFByb21pc2U8QVhQQnJlYWRjcnVtYkl0ZW1bXT4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgQmFkZ2UgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgcHVibGljIGJhZGdlID0gc2lnbmFsPEFYUEJhZGdlIHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIGhhc0JhZGdlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5iYWRnZSgpICE9PSBudWxsKTtcblxuICAjYmFkZ2VFZmZlY3QgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgIHRoaXMuYmFkZ2Uuc2V0KGF3YWl0IHRoaXMuZ2V0UGFnZUJhZGdlKCkpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgZ2V0UGFnZUJhZGdlKCk6IEFYUEJhZGdlIHwgbnVsbCB8IFByb21pc2U8QVhQQmFkZ2UgfCBudWxsPiB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIFN0YXR1cyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICBwdWJsaWMgc3RhdHVzID0gc2lnbmFsPEFYUFBhZ2VTdGF0dXMgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgaGFzU3RhdHVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0dXMoKSAhPT0gbnVsbCk7XG5cbiAgI3N0YXR1c0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgdGhpcy5zdGF0dXMuc2V0KGF3YWl0IHRoaXMuZ2V0UGFnZVN0YXR1cygpKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGdldFBhZ2VTdGF0dXMoKTogQVhQUGFnZVN0YXR1cyB8IG51bGwgfCBQcm9taXNlPEFYUFBhZ2VTdGF0dXMgfCBudWxsPiB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIExheW91dCAgIC0tLS0tLS0tLS0tLS0tLS1cblxuXG4gIHByb3RlY3RlZCBsYXlvdXQgPSB2aWV3Q2hpbGQoQVhQUGFnZUxheW91dENvbXBvbmVudCk7XG5cbiAgLy9UT0RPOiBSZW1vdmUgdGhpcyBhZnRlciBtaWdyYXRpb24gdG8gdGhlIG5ldyBsYXlvdXRcbiAgcHJvdGVjdGVkIHRvZ2dsZUVuZFNpZGUoKSB7XG4gICAgLy90aGlzLmxheW91dCgpPy50b2dnbGVTdGFydFNpZGUoKVxuICB9XG5cbiAgLy9UT0RPOiBSZW1vdmUgdGhpcyBhZnRlciBtaWdyYXRpb24gdG8gdGhlIG5ldyBsYXlvdXRcbiAgcHJvdGVjdGVkIHRvZ2dsZVN0YXJ0U2lkZSgpIHtcbiAgICB0aGlzLmxheW91dCgpPy50b2dnbGVTdGFydFNpZGUoKVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBBY3Rpb25zICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHB1YmxpYyBwcmltYXJ5TWVudUl0ZW1zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcblxuICBwdWJsaWMgaGFzUHJpbWFyeUFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByaW1hcnlNZW51SXRlbXMoKS5maWx0ZXIoaXRlbSA9PiBpdGVtLnZpc2libGUgIT0gZmFsc2UpLmxlbmd0aCA+IDApO1xuXG4gICNwcmltYXJ5TWVudUl0ZW1zRWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICB0aGlzLnVwZGF0ZVRyaWdnZXIoKTtcbiAgICBjb25zdCBpdGVtcyA9IGF3YWl0IHRoaXMuZ2V0UHJpbWFyeU1lbnVJdGVtcygpO1xuICAgIHRoaXMucHJpbWFyeU1lbnVJdGVtcy5zZXQoaXRlbXMpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgZ2V0UHJpbWFyeU1lbnVJdGVtcygpOiBBWFBBY3Rpb25NZW51SXRlbVtdIHwgUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHVibGljIHNlY29uZGFyeU1lbnVJdGVtcyA9IHNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPihbXSk7XG5cbiAgcHVibGljIGhhc1NlY29uZGFyeUFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlY29uZGFyeU1lbnVJdGVtcygpLmZpbHRlcihpdGVtID0+IGl0ZW0udmlzaWJsZSAhPSBmYWxzZSkubGVuZ3RoID4gMCk7XG5cbiAgI3NlY29uZGFyeU1lbnVJdGVtc0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgY29uc3QgaXRlbXMgPSBhd2FpdCB0aGlzLmdldFNlY29uZGFyeU1lbnVJdGVtcygpO1xuICAgIHRoaXMuc2Vjb25kYXJ5TWVudUl0ZW1zLnNldChpdGVtcyk7XG4gIH0pO1xuXG4gIHB1YmxpYyBoYXNBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5oYXNQcmltYXJ5QWN0aW9ucygpIHx8IHRoaXMuaGFzU2Vjb25kYXJ5QWN0aW9ucygpKTtcblxuICBwcm90ZWN0ZWQgZ2V0U2Vjb25kYXJ5TWVudUl0ZW1zKCk6IEFYUEFjdGlvbk1lbnVJdGVtW10gfCBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwdWJsaWMgdGl0bGVBY3Rpb25zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcblxuICBwdWJsaWMgaGFzVGl0bGVBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aXRsZUFjdGlvbnMoKS5sZW5ndGggPiAwKTtcblxuICAjdGl0bGVBY3Rpb25zRWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICB0aGlzLnVwZGF0ZVRyaWdnZXIoKTtcbiAgICB0aGlzLnRpdGxlQWN0aW9ucy5zZXQoYXdhaXQgdGhpcy5nZXRUaXRsZUFjdGlvbnMoKSk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBnZXRUaXRsZUFjdGlvbnMoKTogQVhQQWN0aW9uTWVudUl0ZW1bXSB8IFByb21pc2U8QVhQQWN0aW9uTWVudUl0ZW1bXT4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrQnV0dG9uID0gc2lnbmFsPEFYUEJhY2tCdXR0b24gfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgaGFzQmFja0J1dHRvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYmFja0J1dHRvbigpICE9PSBudWxsKTtcblxuICBwcm90ZWN0ZWQgZ2V0QmFja0J1dHRvbigpOiAoQVhQQmFja0J1dHRvbiB8IG51bGwpIHwgUHJvbWlzZTxBWFBCYWNrQnV0dG9uIHwgbnVsbD4ge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgI2JhY2tCdXR0b25FZmZlY3QgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgIHRoaXMuYmFja0J1dHRvbi5zZXQoYXdhaXQgdGhpcy5nZXRCYWNrQnV0dG9uKCkpO1xuICB9KTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIEhhbmRsZSBDb21tYW5kcyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICBwdWJsaWMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHsgfVxuXG4gIHB1YmxpYyBzdGFydFNpZGVUb2dnbGUoKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubGF5b3V0KCk7XG4gIH1cblxuICBwdWJsaWMgb25CYWNrQnV0dG9uQ2xpY2soKTogdm9pZCB8IFByb21pc2U8dm9pZD4geyB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=","export class AXPPopupLayoutBase {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtbGF5b3V0LmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC92aWV3cy9zcmMvbGliL2xheW91dHMvcG9wdXAvcG9wdXAtbGF5b3V0LmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixrQkFBa0I7Q0FXdkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBBY3Rpb25NZW51SXRlbSwgQVhQRXhlY3V0ZUNvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBQb3B1cExheW91dEJhc2Uge1xuICAgIGFic3RyYWN0IHByaW1hcnlNZW51SXRlbXM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcbiAgICBhYnN0cmFjdCBzZWNvbmRhcnlNZW51SXRlbXM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcbiAgICBhYnN0cmFjdCB0aXRsZUFjdGlvbnM6IFNpZ25hbDxBWFBBY3Rpb25NZW51SXRlbVtdPjtcbiAgICBhYnN0cmFjdCBoYXNUaXRsZUFjdGlvbnM6IFNpZ25hbDxib29sZWFuPjtcbiAgICBhYnN0cmFjdCBoYXNQcmltYXJ5QWN0aW9uczogU2lnbmFsPGJvb2xlYW4+O1xuICAgIGFic3RyYWN0IGhhc1NlY29uZGFyeUFjdGlvbnM6IFNpZ25hbDxib29sZWFuPjtcbiAgICBhYnN0cmFjdCBoYXNBY3Rpb25zOiBTaWduYWw8Ym9vbGVhbj47XG4gICAgYWJzdHJhY3QgdGl0bGU6IFNpZ25hbDxzdHJpbmc+O1xuICAgIGFic3RyYWN0IGhhc1RpdGxlOiBTaWduYWw8Ym9vbGVhbj47XG4gICAgYWJzdHJhY3QgZXhlY3V0ZTogKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbn0gIl19","import { CommonModule } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, effect, inject, ViewEncapsulation, } from '@angular/core';\n//\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from \"@acorex/cdk/common\";\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\n//\nimport { AXDrawerDirectiveModule } from '@acorex/cdk/drawer';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, } from '@acorex/platform/layout/components';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXPPopupLayoutBase } from './popup-layout.base';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/core/translation\";\nimport * as i4 from \"@angular/common\";\nexport class AXPPopupLayoutComponent {\n constructor() {\n this.popup = inject(AXPPopupLayoutBase);\n this.layoutService = inject(AXPLayoutThemeService);\n this.workflow = inject(AXPWorkflowService);\n this.#initialize = afterNextRender(async () => {\n this.checkScrollableContent();\n });\n this.#effect = effect(() => {\n this.popup?.title();\n this.checkScrollableContent();\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n #initialize;\n #effect;\n checkScrollableContent() {\n const content = document.querySelector('axp-popup-content');\n if (content && content.scrollHeight >= content.clientHeight) {\n content.classList.add('--scrollable');\n }\n }\n handleActionClick(item) {\n if (item.command && (item.items?.length ?? 0) == 0) {\n this.popup?.execute(item.command);\n }\n }\n handleSecondaryActionClick(item) {\n if (item.command) {\n this.popup?.execute(item.command);\n }\n }\n handleBackdropClick(e) {\n e.nativeEvent.preventDefault();\n e.nativeEvent.stopPropagation();\n e.component.hide();\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPopupLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.16\", type: AXPPopupLayoutComponent, isStandalone: true, selector: \"axp-popup-layout\", ngImport: i0, template: \"<axp-layout-container id=\\\"axp-popup-layout\\\" #container>\\n <ng-content select=\\\"axp-page-content\\\"></ng-content>\\n <axp-page-footer id=\\\"axp-popup-footer\\\" *translate=\\\"let t\\\">\\n <ax-prefix> </ax-prefix>\\n @if (popup.hasPrimaryActions()) {\\n <ax-suffix>\\n @for (item of popup.primaryMenuItems(); track $index) {\\n <ax-button\\n [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title)\\\"\\n [text]=\\\"(t(item.title) | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"item.color\\\"\\n (onClick)=\\\"handleActionClick(item)\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"{{ item.icon }}\\\"></i>\\n </ax-prefix>\\n </ax-button>\\n }\\n </ax-suffix>\\n }\\n </axp-page-footer>\\n</axp-layout-container>\\n\", styles: [\".axp-status-icon{font-size:.875rem;line-height:1}.axp-status-chip{display:inline-flex}.axp-status-chip--primary{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-status-icon--primary{color:rgb(var(--ax-sys-color-primary-dark-surface))}.axp-status-chip--secondary{background-color:rgb(var(--ax-sys-color-secondary-lighter-surface));color:rgb(var(--ax-sys-color-on-secondary-lighter-surface))}.axp-status-icon--secondary{color:rgb(var(--ax-sys-color-secondary-dark-surface))}.axp-status-chip--success{background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}.axp-status-icon--success{color:rgb(var(--ax-sys-color-success-dark-surface))}.axp-status-chip--warning{background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}.axp-status-icon--warning{color:rgb(var(--ax-sys-color-warning-dark-surface))}.axp-status-chip--danger{background-color:rgb(var(--ax-sys-color-danger-lighter-surface));color:rgb(var(--ax-sys-color-on-danger-lighter-surface))}.axp-status-icon--danger{color:rgb(var(--ax-sys-color-danger-dark-surface))}.axp-status-chip--info{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--info{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--accent1{background-color:rgb(var(--ax-sys-color-accent1-lighter-surface));color:rgb(var(--ax-sys-color-on-accent1-lighter-surface))}.axp-status-icon--accent1{color:rgb(var(--ax-sys-color-accent1-dark-surface))}.axp-status-chip--accent2{background-color:rgb(var(--ax-sys-color-accent2-lighter-surface));color:rgb(var(--ax-sys-color-on-accent2-lighter-surface))}.axp-status-icon--accent2{color:rgb(var(--ax-sys-color-accent2-dark-surface))}.axp-status-chip--accent3{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--accent3{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--neutral{background-color:rgb(var(--ax-sys-color-neutral-lighter-surface));color:rgb(var(--ax-sys-color-on-neutral-lighter-surface))}.axp-status-icon--neutral{color:rgb(var(--ax-sys-color-neutral-dark-surface))}axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}axp-layout-sections axp-layout-section>axp-layout-footer{opacity:0;animation:fadeInDown .5s ease-out forwards}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-popup-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container>axp-layout-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-popup-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-popup-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column}axp-popup-layout>axp-layout-container>axp-page-footer{border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer:is(.ax-dark *){--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-dark-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer{position:sticky;bottom:0;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-popup-layout>axp-layout-container>axp-page-footer.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: \n //\n AXCommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.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: AXBreadcrumbsModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { 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: AXTranslationModule }, { kind: \"directive\", type: i3.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXDrawerModule }, { kind: \"ngmodule\", type: AXDrawerDirectiveModule }, { kind: \"component\", type: \n //\n AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"component\", type: AXPThemeLayoutContainerComponent, selector: \"axp-layout-container\" }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPopupLayoutComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [\n CommonModule,\n //\n AXCommonModule,\n AXDecoratorModule,\n AXBreadcrumbsModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXButtonModule,\n AXTranslationModule,\n AXDrawerModule,\n AXDrawerDirectiveModule,\n //\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutContainerComponent,\n ], selector: 'axp-popup-layout', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"<axp-layout-container id=\\\"axp-popup-layout\\\" #container>\\n <ng-content select=\\\"axp-page-content\\\"></ng-content>\\n <axp-page-footer id=\\\"axp-popup-footer\\\" *translate=\\\"let t\\\">\\n <ax-prefix> </ax-prefix>\\n @if (popup.hasPrimaryActions()) {\\n <ax-suffix>\\n @for (item of popup.primaryMenuItems(); track $index) {\\n <ax-button\\n [attr.id]=\\\"'axp-btn-primary-' + (item.name || item.title)\\\"\\n [text]=\\\"(t(item.title) | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"item.color\\\"\\n (onClick)=\\\"handleActionClick(item)\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"{{ item.icon }}\\\"></i>\\n </ax-prefix>\\n </ax-button>\\n }\\n </ax-suffix>\\n }\\n </axp-page-footer>\\n</axp-layout-container>\\n\", styles: [\".axp-status-icon{font-size:.875rem;line-height:1}.axp-status-chip{display:inline-flex}.axp-status-chip--primary{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-status-icon--primary{color:rgb(var(--ax-sys-color-primary-dark-surface))}.axp-status-chip--secondary{background-color:rgb(var(--ax-sys-color-secondary-lighter-surface));color:rgb(var(--ax-sys-color-on-secondary-lighter-surface))}.axp-status-icon--secondary{color:rgb(var(--ax-sys-color-secondary-dark-surface))}.axp-status-chip--success{background-color:rgb(var(--ax-sys-color-success-lighter-surface));color:rgb(var(--ax-sys-color-on-success-lighter-surface))}.axp-status-icon--success{color:rgb(var(--ax-sys-color-success-dark-surface))}.axp-status-chip--warning{background-color:rgb(var(--ax-sys-color-warning-lighter-surface));color:rgb(var(--ax-sys-color-on-warning-lighter-surface))}.axp-status-icon--warning{color:rgb(var(--ax-sys-color-warning-dark-surface))}.axp-status-chip--danger{background-color:rgb(var(--ax-sys-color-danger-lighter-surface));color:rgb(var(--ax-sys-color-on-danger-lighter-surface))}.axp-status-icon--danger{color:rgb(var(--ax-sys-color-danger-dark-surface))}.axp-status-chip--info{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--info{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--accent1{background-color:rgb(var(--ax-sys-color-accent1-lighter-surface));color:rgb(var(--ax-sys-color-on-accent1-lighter-surface))}.axp-status-icon--accent1{color:rgb(var(--ax-sys-color-accent1-dark-surface))}.axp-status-chip--accent2{background-color:rgb(var(--ax-sys-color-accent2-lighter-surface));color:rgb(var(--ax-sys-color-on-accent2-lighter-surface))}.axp-status-icon--accent2{color:rgb(var(--ax-sys-color-accent2-dark-surface))}.axp-status-chip--accent3{background-color:rgb(var(--ax-sys-color-accent3-lighter-surface));color:rgb(var(--ax-sys-color-on-accent3-lighter-surface))}.axp-status-icon--accent3{color:rgb(var(--ax-sys-color-accent3-dark-surface))}.axp-status-chip--neutral{background-color:rgb(var(--ax-sys-color-neutral-lighter-surface));color:rgb(var(--ax-sys-color-on-neutral-lighter-surface))}.axp-status-icon--neutral{color:rgb(var(--ax-sys-color-neutral-dark-surface))}axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}axp-layout-sections axp-layout-section>axp-layout-footer{opacity:0;animation:fadeInDown .5s ease-out forwards}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-popup-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container>axp-layout-header{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-popup-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-popup-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column}axp-popup-layout>axp-layout-container>axp-page-footer{border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer:is(.ax-dark *){--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-dark-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer{position:sticky;bottom:0;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-popup-layout>axp-layout-container>axp-page-footer.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9saWIvbGF5b3V0cy9wb3B1cC9wb3B1cC1sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvdmlld3Mvc3JjL2xpYi9sYXlvdXRzL3BvcHVwL3BvcHVwLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04saUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLEVBQUU7QUFDRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxFQUFFO0FBQ0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFDSCw0QkFBNEIsRUFDNUIsZ0NBQWdDLEdBQ25DLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQTBCekQsTUFBTSxPQUFPLHVCQUF1QjtJQXhCcEM7UUF5QmMsVUFBSyxHQUFHLE1BQU0sQ0FBcUIsa0JBQWtCLENBQUMsQ0FBQztRQUN2RCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlDLGFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVoRCxnQkFBVyxHQUFHLGVBQWUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNyQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILFlBQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxtREFBQyxDQUFDO0tBNEJOO0lBbkNHLFdBQVcsQ0FFUjtJQUVILE9BQU8sQ0FHSjtJQUVLLHNCQUFzQjtRQUMxQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDNUQsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxJQUF1QjtRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNMLENBQUM7SUFHUywwQkFBMEIsQ0FBQyxJQUF1QjtRQUN4RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0wsQ0FBQztJQUVTLG1CQUFtQixDQUFDLENBQWU7UUFDekMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzsrR0F2Q1EsdUJBQXVCO21HQUF2Qix1QkFBdUIsNEVDckRwQyx1ekJBdUJBLGsxU0RTUSxZQUFZO2dCQUNaLEVBQUU7Z0JBQ0YsY0FBYyw4QkFDZCxpQkFBaUIscVBBQ2pCLG1CQUFtQiw4QkFDbkIsc0JBQXNCLDhCQUN0QixnQkFBZ0IsOEJBQ2hCLGNBQWMsNlhBQ2QsbUJBQW1CLDhHQUNuQixjQUFjLDhCQUNkLHVCQUF1QjtnQkFDdkIsRUFBRTtnQkFDRiw0QkFBNEIsZ2lCQUM1QixnQ0FBZ0M7OzRGQVEzQix1QkFBdUI7a0JBeEJuQyxTQUFTO2lDQUNNLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLEVBQUU7d0JBQ0YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsRUFBRTt3QkFDRiw0QkFBNEI7d0JBQzVCLGdDQUFnQztxQkFDbkMsWUFHUyxrQkFBa0IsaUJBQ2IsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgZWZmZWN0LFxuICAgIGluamVjdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vL1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDbGlja0V2ZW50LCBBWENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYWNvcmV4L2Nkay9jb21tb25cIjtcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG4vL1xuaW1wb3J0IHsgQVhEcmF3ZXJEaXJlY3RpdmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9kcmF3ZXInO1xuaW1wb3J0IHsgQVhEcmF3ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJhd2VyJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEV4ZWN1dGVDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZCc7XG5pbXBvcnQge1xuICAgIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsXG4gICAgQVhQVGhlbWVMYXlvdXRDb250YWluZXJDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBQb3B1cExheW91dEJhc2UgfSBmcm9tICcuL3BvcHVwLWxheW91dC5iYXNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgLy9cbiAgICAgICAgQVhDb21tb25Nb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWEJyZWFkY3J1bWJzTW9kdWxlLFxuICAgICAgICBBWERyb3Bkb3duQnV0dG9uTW9kdWxlLFxuICAgICAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgICAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICAgICAgQVhEcmF3ZXJNb2R1bGUsXG4gICAgICAgIEFYRHJhd2VyRGlyZWN0aXZlTW9kdWxlLFxuICAgICAgICAvL1xuICAgICAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgICAgICBBWFBUaGVtZUxheW91dENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wb3B1cC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BvcHVwLWxheW91dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHNlbGVjdG9yOiAnYXhwLXBvcHVwLWxheW91dCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQUG9wdXBMYXlvdXRDb21wb25lbnQge1xuICAgIHByb3RlY3RlZCBwb3B1cCA9IGluamVjdDxBWFBQb3B1cExheW91dEJhc2U+KEFYUFBvcHVwTGF5b3V0QmFzZSk7XG4gICAgcHJvdGVjdGVkIGxheW91dFNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgd29ya2Zsb3cgPSBpbmplY3QoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcblxuICAgICNpbml0aWFsaXplID0gYWZ0ZXJOZXh0UmVuZGVyKGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja1Njcm9sbGFibGVDb250ZW50KCk7XG4gICAgfSk7XG5cbiAgICAjZWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgdGhpcy5wb3B1cD8udGl0bGUoKTtcbiAgICAgICAgdGhpcy5jaGVja1Njcm9sbGFibGVDb250ZW50KCk7XG4gICAgfSk7XG5cbiAgICBwcml2YXRlIGNoZWNrU2Nyb2xsYWJsZUNvbnRlbnQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdheHAtcG9wdXAtY29udGVudCcpO1xuICAgICAgICBpZiAoY29udGVudCAmJiBjb250ZW50LnNjcm9sbEhlaWdodCA+PSBjb250ZW50LmNsaWVudEhlaWdodCkge1xuICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QuYWRkKCctLXNjcm9sbGFibGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVBY3Rpb25DbGljayhpdGVtOiBBWFBBY3Rpb25NZW51SXRlbSkge1xuICAgICAgICBpZiAoaXRlbS5jb21tYW5kICYmIChpdGVtLml0ZW1zPy5sZW5ndGggPz8gMCkgPT0gMCkge1xuICAgICAgICAgICAgdGhpcy5wb3B1cD8uZXhlY3V0ZShpdGVtLmNvbW1hbmQpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlU2Vjb25kYXJ5QWN0aW9uQ2xpY2soaXRlbTogQVhQQWN0aW9uTWVudUl0ZW0pIHtcbiAgICAgICAgaWYgKGl0ZW0uY29tbWFuZCkge1xuICAgICAgICAgICAgdGhpcy5wb3B1cD8uZXhlY3V0ZShpdGVtLmNvbW1hbmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGhhbmRsZUJhY2tkcm9wQ2xpY2soZTogQVhDbGlja0V2ZW50KSB7XG4gICAgICAgIGUubmF0aXZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5uYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5jb21wb25lbnQuaGlkZSgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufSAiLCI8YXhwLWxheW91dC1jb250YWluZXIgaWQ9XCJheHAtcG9wdXAtbGF5b3V0XCIgI2NvbnRhaW5lcj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLXBhZ2UtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgPGF4cC1wYWdlLWZvb3RlciBpZD1cImF4cC1wb3B1cC1mb290ZXJcIiAqdHJhbnNsYXRlPVwibGV0IHRcIj5cbiAgICA8YXgtcHJlZml4PiA8L2F4LXByZWZpeD5cbiAgICBAaWYgKHBvcHVwLmhhc1ByaW1hcnlBY3Rpb25zKCkpIHtcbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgcG9wdXAucHJpbWFyeU1lbnVJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICBbYXR0ci5pZF09XCInYXhwLWJ0bi1wcmltYXJ5LScgKyAoaXRlbS5uYW1lIHx8IGl0ZW0udGl0bGUpXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cIih0KGl0ZW0udGl0bGUpIHwgYXN5bmMpIVwiXG4gICAgICAgICAgICBbbG9va109XCInc29saWQnXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJpdGVtLmNvbG9yXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUFjdGlvbkNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7IGl0ZW0uaWNvbiB9fVwiPjwvaT5cbiAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICB9XG4gIDwvYXhwLXBhZ2UtZm9vdGVyPlxuPC9heHAtbGF5b3V0LWNvbnRhaW5lcj5cbiJdfQ==","import { AXToastService } from '@acorex/components/toast';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPHomePageService } from '@acorex/platform/common';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { Component, computed, effect, inject, signal, viewChild } from '@angular/core';\nimport { AXPPopupLayoutComponent } from './popup-layout.component';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport * as i0 from \"@angular/core\";\nexport class AXPPopupLayoutBaseComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n //#region ---------------- Services ----------------\n this.layoutService = inject(AXPLayoutThemeService);\n this.sessionService = inject(AXPSessionService);\n this.translateService = inject(AXTranslationService);\n this.formatService = inject(AXFormatService);\n this.toastService = inject(AXToastService);\n this.homePageService = inject(AXPHomePageService);\n //#endregion\n //#region ---------------- Signal to force recomputation ----------------\n this._updateTrigger = signal(0, ...(ngDevMode ? [{ debugName: \"_updateTrigger\" }] : []));\n this.updateTrigger = this._updateTrigger.asReadonly();\n //#endregion\n //#region ---------------- Title ----------------\n this.title = signal('', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.#titleEffect = effect(async () => {\n this.updateTrigger();\n this.title.set(await this.getPopupTitle());\n }, ...(ngDevMode ? [{ debugName: \"#titleEffect\" }] : []));\n this.hasTitle = computed(() => this.title() !== '', ...(ngDevMode ? [{ debugName: \"hasTitle\" }] : []));\n //#endregion\n //#region ---------------- Layout ----------------\n // Placeholder for popup layout reference if needed\n this.layout = viewChild(AXPPopupLayoutComponent, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n //#endregion\n //#region ---------------- Actions ----------------\n this.primaryMenuItems = signal([], ...(ngDevMode ? [{ debugName: \"primaryMenuItems\" }] : []));\n this.hasPrimaryActions = computed(() => this.primaryMenuItems().length > 0, ...(ngDevMode ? [{ debugName: \"hasPrimaryActions\" }] : []));\n this.#primaryMenuItemsEffect = effect(async () => {\n this.updateTrigger();\n this.primaryMenuItems.set(await this.getPrimaryMenuItems());\n }, ...(ngDevMode ? [{ debugName: \"#primaryMenuItemsEffect\" }] : []));\n this.secondaryMenuItems = signal([], ...(ngDevMode ? [{ debugName: \"secondaryMenuItems\" }] : []));\n this.hasSecondaryActions = computed(() => this.secondaryMenuItems().length > 0, ...(ngDevMode ? [{ debugName: \"hasSecondaryActions\" }] : []));\n this.#secondaryMenuItemsEffect = effect(async () => {\n this.updateTrigger();\n this.secondaryMenuItems.set(await this.getSecondaryMenuItems());\n }, ...(ngDevMode ? [{ debugName: \"#secondaryMenuItemsEffect\" }] : []));\n this.hasActions = computed(() => this.hasPrimaryActions() || this.hasSecondaryActions(), ...(ngDevMode ? [{ debugName: \"hasActions\" }] : []));\n this.titleActions = signal([], ...(ngDevMode ? [{ debugName: \"titleActions\" }] : []));\n this.hasTitleActions = computed(() => this.titleActions().length > 0, ...(ngDevMode ? [{ debugName: \"hasTitleActions\" }] : []));\n this.#titleActionsEffect = effect(async () => {\n this.updateTrigger();\n this.titleActions.set(await this.getTitleActions());\n }, ...(ngDevMode ? [{ debugName: \"#titleActionsEffect\" }] : []));\n }\n recompute() {\n this._updateTrigger.set(this._updateTrigger() + 1);\n }\n //#endregion\n //#region ---------------- Lifecycle hooks ----------------\n async ngOnInit() {\n super.ngOnInit();\n this.translateService.langChanges$.subscribe(() => {\n this.recompute();\n });\n }\n #titleEffect;\n getPopupTitle() {\n return '';\n }\n #primaryMenuItemsEffect;\n getPrimaryMenuItems() {\n return [];\n }\n #secondaryMenuItemsEffect;\n getSecondaryMenuItems() {\n return [];\n }\n #titleActionsEffect;\n getTitleActions() {\n return [];\n }\n //#endregion\n //#region ---------------- Handle Commands ----------------\n execute(command) { }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPopupLayoutBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.16\", type: AXPPopupLayoutBaseComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"layout\", first: true, predicate: AXPPopupLayoutComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPPopupLayoutBaseComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n template: '',\n }]\n }], propDecorators: { layout: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPPopupLayoutComponent), { isSignal: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtbGF5b3V0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvdmlld3Mvc3JjL2xpYi9sYXlvdXRzL3BvcHVwL3BvcHVwLWxheW91dC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNOUQsTUFBTSxPQUFnQiwyQkFBNEIsU0FBUSxtQkFBbUI7SUFKN0U7O1FBS0ksd0RBQXdEO1FBRXJDLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUMsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxpQkFB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QVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBUUQsWUFBWSxDQUdUO0lBRU8sYUFBYTtRQUNuQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFtQkQsdUJBQXVCLENBR3BCO0lBQ08sbUJBQW1CO1FBQ3pCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUlELHlCQUF5QixDQUd0QjtJQUNPLHFCQUFxQjtRQUMzQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFNRCxtQkFBbUIsQ0FHaEI7SUFDTyxlQUFlO1FBQ3JCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUdELFlBQVk7SUFFWiwrREFBK0Q7SUFFeEQsT0FBTyxDQUFDLE9BQTBCLElBQTBCLENBQUM7K0dBcEdsRCwyQkFBMkI7bUdBQTNCLDJCQUEyQixnSEF5RGhCLHVCQUF1Qix1RkEzRDFDLEVBQUU7OzRGQUVNLDJCQUEyQjtrQkFKaEQsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7d0ZBMERnQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b2FzdCc7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUEhvbWVQYWdlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEFjdGlvbk1lbnVJdGVtLCBBWFBFeGVjdXRlQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBQb3B1cExheW91dENvbXBvbmVudCB9IGZyb20gJy4vcG9wdXAtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQUG9wdXBMYXlvdXRCYXNlQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gICAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBTZXJ2aWNlcyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHByb3RlY3RlZCByZWFkb25seSBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSBpbmplY3QoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaG9tZVBhZ2VTZXJ2aWNlID0gaW5qZWN0KEFYUEhvbWVQYWdlU2VydmljZSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgU2lnbmFsIHRvIGZvcmNlIHJlY29tcHV0YXRpb24gICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBwcml2YXRlIF91cGRhdGVUcmlnZ2VyID0gc2lnbmFsKDApO1xuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVRyaWdnZXIgPSB0aGlzLl91cGRhdGVUcmlnZ2VyLmFzUmVhZG9ubHkoKTtcblxuICAgIHByb3RlY3RlZCByZWNvbXB1dGUoKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVRyaWdnZXIuc2V0KHRoaXMuX3VwZGF0ZVRyaWdnZXIoKSArIDEpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0tLS0tLS0tLS0tLS0gICBMaWZlY3ljbGUgaG9va3MgICAtLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxhbmdDaGFuZ2VzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIFRpdGxlICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgcHVibGljIHRpdGxlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gICAgI3RpdGxlRWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgICAgIHRoaXMudGl0bGUuc2V0KGF3YWl0IHRoaXMuZ2V0UG9wdXBUaXRsZSgpKTtcbiAgICB9KTtcblxuICAgIHByb3RlY3RlZCBnZXRQb3B1cFRpdGxlKCk6IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRpdGxlKCkgIT09ICcnKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG5cblxuICAgIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgTGF5b3V0ICAgLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLy8gUGxhY2Vob2xkZXIgZm9yIHBvcHVwIGxheW91dCByZWZlcmVuY2UgaWYgbmVlZGVkXG4gICAgcHJvdGVjdGVkIGxheW91dCA9IHZpZXdDaGlsZChBWFBQb3B1cExheW91dENvbXBvbmVudCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tLS0tLS0tLS0tLS0tICAgQWN0aW9ucyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBwcmltYXJ5TWVudUl0ZW1zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcbiAgICBwdWJsaWMgaGFzUHJpbWFyeUFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByaW1hcnlNZW51SXRlbXMoKS5sZW5ndGggPiAwKTtcbiAgICAjcHJpbWFyeU1lbnVJdGVtc0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgICAgICB0aGlzLnByaW1hcnlNZW51SXRlbXMuc2V0KGF3YWl0IHRoaXMuZ2V0UHJpbWFyeU1lbnVJdGVtcygpKTtcbiAgICB9KTtcbiAgICBwcm90ZWN0ZWQgZ2V0UHJpbWFyeU1lbnVJdGVtcygpOiBBWFBBY3Rpb25NZW51SXRlbVtdIHwgUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2Vjb25kYXJ5TWVudUl0ZW1zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcbiAgICBwdWJsaWMgaGFzU2Vjb25kYXJ5QWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2Vjb25kYXJ5TWVudUl0ZW1zKCkubGVuZ3RoID4gMCk7XG4gICAgI3NlY29uZGFyeU1lbnVJdGVtc0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlVHJpZ2dlcigpO1xuICAgICAgICB0aGlzLnNlY29uZGFyeU1lbnVJdGVtcy5zZXQoYXdhaXQgdGhpcy5nZXRTZWNvbmRhcnlNZW51SXRlbXMoKSk7XG4gICAgfSk7XG4gICAgcHJvdGVjdGVkIGdldFNlY29uZGFyeU1lbnVJdGVtcygpOiBBWFBBY3Rpb25NZW51SXRlbVtdIHwgUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzQWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaGFzUHJpbWFyeUFjdGlvbnMoKSB8fCB0aGlzLmhhc1NlY29uZGFyeUFjdGlvbnMoKSk7XG5cbiAgICBwdWJsaWMgdGl0bGVBY3Rpb25zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcbiAgICBwdWJsaWMgaGFzVGl0bGVBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50aXRsZUFjdGlvbnMoKS5sZW5ndGggPiAwKTtcbiAgICAjdGl0bGVBY3Rpb25zRWZmZWN0ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgICAgIHRoaXMudGl0bGVBY3Rpb25zLnNldChhd2FpdCB0aGlzLmdldFRpdGxlQWN0aW9ucygpKTtcbiAgICB9KTtcbiAgICBwcm90ZWN0ZWQgZ2V0VGl0bGVBY3Rpb25zKCk6IEFYUEFjdGlvbk1lbnVJdGVtW10gfCBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLS0tLS0tLS0tLS0tLSAgIEhhbmRsZSBDb21tYW5kcyAgIC0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBleGVjdXRlKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKTogdm9pZCB8IFByb21pc2U8dm9pZD4geyB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn0gIl19","import { AXToastService } from '@acorex/components/toast';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPCommonSettings, AXPSettingsService } from '@acorex/platform/common';\nimport { AXPDeviceService, AXPExpressionEvaluatorService, getChangedPaths, getSmart, } from '@acorex/platform/core';\nimport { AXPPageStatus } from '@acorex/platform/layout/widget-core';\nimport { computed, effect, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { patchState, signalStore, withComputed, withMethods, withState } from '@ngrx/signals';\nimport { cloneDeep, isEqual } from 'lodash-es';\nexport const AXPLayoutDetailsViewViewModel = signalStore(withState(() => {\n const state = {\n adapter: null,\n rootContext: {},\n previousContext: {},\n context: {},\n scope: null,\n status: AXPPageStatus.Processing,\n currentPage: null,\n currentTab: null,\n pageSelectedRows: [],\n // Cache for rendered tabs per page to prevent re-rendering\n renderedTabsCache: {},\n };\n return state;\n}), withComputed((store, deviceService = inject(AXPDeviceService)) => ({\n icon: computed(() => store.adapter()?.icon ?? null),\n content: computed(() => {\n const pages = store.adapter()?.pages ?? [];\n const primaryPage = pages.find((p) => p.isPrimary) ?? pages[0];\n return primaryPage?.content ?? [];\n }),\n //\n showPages: computed(() => !store.currentPage() && !deviceService.isLarge()),\n isLarge: computed(() => deviceService.isLarge()),\n //\n isBusy: computed(() => store.status() == AXPPageStatus.Processing),\n isSaving: computed(() => store.status() == AXPPageStatus.Submitting),\n isDirty: computed(() => !isEqual(store.context(), store.previousContext())),\n changesCount: computed(() => getChangedPaths(store.context(), store.previousContext()).length),\n isLoaded: computed(() => store.adapter() != null),\n currentPageSelectedRows: computed(() => store.pageSelectedRows()),\n //\n // Rendered tabs for current page - prevents re-rendering on tab switch\n currentPageRenderedTabs: computed(() => {\n const currentPage = store.currentPage();\n if (!currentPage?.id) {\n return [];\n }\n const pageId = currentPage.id;\n const cache = store.renderedTabsCache();\n return cache[pageId] || [];\n }),\n})), withMethods((store, evaluatorService = inject(AXPExpressionEvaluatorService), router = inject(Router), route = inject(ActivatedRoute), deviceService = inject(AXPDeviceService), formatService = inject(AXFormatService), toastService = inject(AXToastService), translateService = inject(AXTranslationService), settingsService = inject(AXPSettingsService)) => {\n // Effect to automatically cache current tab when it changes\n effect(() => {\n const currentPage = store.currentPage();\n const currentTab = store.currentTab();\n if (currentPage?.id && currentTab?.id) {\n const pageId = currentPage.id;\n const tabId = currentTab.id;\n const cache = store.renderedTabsCache();\n const pageCache = cache[pageId] || [];\n // Check if tab is already in cache\n const isTabCached = pageCache.some((cached) => cached.tabId === tabId);\n if (!isTabCached) {\n // Add tab to cache for this page\n const newTabCache = {\n tabId: tabId,\n tab: currentTab,\n };\n const updatedPageCache = [...pageCache, newTabCache];\n // Update the cache immutably\n const updatedCache = {\n ...cache,\n [pageId]: updatedPageCache,\n };\n patchState(store, {\n renderedTabsCache: updatedCache,\n });\n }\n }\n });\n // Create an effect to handle route changes\n effect(() => {\n if (store.adapter()) {\n route.queryParams.subscribe((params) => {\n const pageId = params['page'];\n const adapter = store.adapter();\n if (adapter) {\n // Find current page from query param or conditionally default to first page\n let currentPage = null;\n if (pageId) {\n const foundPage = adapter.pages.find((p) => p.id === pageId);\n if (foundPage) {\n currentPage = foundPage;\n }\n }\n else {\n // Only auto-select primary page if layout is large\n if (deviceService.isLarge() || adapter.pages.length == 1) {\n const primaryPage = adapter.pages.find((p) => p.isPrimary) ?? adapter.pages[0];\n currentPage = primaryPage;\n }\n }\n // Set current tab to first tab of the current page (internal state only)\n let currentTab = currentPage?.tabs?.[0] ?? null;\n // Only update if there's a change\n if (store.currentPage()?.id !== currentPage?.id) {\n patchState(store, {\n currentPage,\n currentTab,\n });\n }\n }\n });\n }\n });\n return {\n async loadAdapter(adapter) {\n patchState(store, { adapter });\n // Load adapter context if adapter has load function\n let adapterContext = {};\n if (adapter.load) {\n const adapterResult = await adapter.load();\n adapterContext = adapterResult?.data ?? {};\n }\n patchState(store, {\n rootContext: cloneDeep(adapterContext),\n });\n },\n async loadPage(pageId, forceRefresh) {\n const adapter = store.adapter();\n if (!adapter) {\n throw new Error('Adapter must be loaded before loading page');\n }\n patchState(store, {\n status: AXPPageStatus.Processing,\n });\n // Get page ID from parameter or query params\n const queryParams = router.routerState.snapshot.root.queryParams;\n const targetPageId = pageId || queryParams['page'];\n // Find current page from page ID or conditionally default to first page\n let currentPage = null;\n if (targetPageId) {\n const foundPage = adapter.pages.find((p) => p.id === targetPageId);\n if (foundPage) {\n currentPage = foundPage;\n }\n }\n else {\n // Only auto-select primary page if layout is large\n if (deviceService.isLarge() || adapter.pages.length == 1) {\n const primaryPage = adapter.pages.find((p) => p.isPrimary) ?? adapter.pages[0];\n currentPage = primaryPage;\n }\n }\n // Load page data if current page exists\n let context = {};\n if (currentPage) {\n const currentPageIndex = adapter.pages.findIndex((p) => p.id === currentPage.id);\n const loadResult = await adapter.pages[currentPageIndex]?.load?.({ forceRefresh });\n context = loadResult?.data ?? {};\n }\n // Set current tab to first tab of the current page (internal state only)\n let currentTab = currentPage?.tabs?.[0] ?? null;\n patchState(store, {\n previousContext: cloneDeep(context),\n context: cloneDeep(context),\n status: AXPPageStatus.Rendered,\n currentPage,\n currentTab,\n });\n },\n async load(adapter) {\n // Setup expression evaluator scope\n const scope = {\n context: {\n eval: (path) => {\n return getSmart(store.context(), path);\n },\n isDirty: () => store.isDirty(),\n },\n };\n patchState(store, {\n scope,\n });\n //\n await this.loadAdapter(adapter);\n await this.loadPage(undefined, true);\n },\n updateContext(context) {\n patchState(store, {\n context,\n });\n },\n updatePageSelectedRows(rows) {\n patchState(store, {\n pageSelectedRows: rows,\n });\n },\n //Current Page\n currentPageTitle() {\n const raw = store.currentPage()?.title;\n if (raw) {\n return formatService.format(raw, 'string', store.context());\n }\n else {\n return null;\n }\n },\n currentPageDescription() {\n const raw = store.currentPage()?.description;\n if (raw) {\n return formatService.format(raw, 'string', store.context());\n }\n else {\n return null;\n }\n },\n async currentPagePrimaryActions() {\n const raw = store.currentPage()?.actions?.filter((a) => a.priority == 'primary') ?? [];\n const acceptAction = store.currentPage()?.settings?.commands?.accept;\n const rejectAction = store.currentPage()?.settings?.commands?.reject;\n if (rejectAction) {\n raw.push({\n priority: 'primary',\n zone: 'footer',\n name: 'reject',\n title: rejectAction.title,\n color: rejectAction.color,\n command: rejectAction.command,\n visible: rejectAction.visible,\n });\n }\n if (acceptAction) {\n raw.push({\n priority: 'primary',\n zone: 'footer',\n name: 'accept',\n title: acceptAction.title,\n color: acceptAction.color,\n command: acceptAction.command,\n visible: acceptAction.visible,\n });\n }\n const processed = await evaluatorService.evaluate(raw, store.scope());\n return processed;\n },\n async currentPageSecondaryActions() {\n const raw = store.currentPage()?.actions?.filter((a) => a.priority == 'secondary') ?? [];\n const processed = await evaluatorService.evaluate(raw, store.scope());\n return processed;\n },\n currentPageContent() {\n const content = store.currentPage()?.content;\n return content;\n },\n currentPageTabs() {\n return store.currentPage()?.tabs?.filter((tab) => tab.visible !== false);\n },\n setCurrentPage(page) {\n // Clear previous page cache if changing pages\n const previousPage = store.currentPage();\n if (previousPage?.id && previousPage.id !== page?.id) {\n this.clearPageTabCache(previousPage.id);\n }\n if (page) {\n const firstTab = page.tabs?.[0] ?? null;\n patchState(store, {\n currentPage: page,\n currentTab: firstTab,\n });\n router.navigate([], {\n queryParams: {\n page: page.id,\n },\n queryParamsHandling: 'merge',\n });\n }\n else {\n patchState(store, {\n currentPage: null,\n currentTab: null,\n });\n // Remove page query parameter\n const currentParams = { ...route.snapshot.queryParams };\n delete currentParams['page'];\n router.navigate([], {\n queryParams: currentParams,\n });\n }\n },\n //Current Tab\n setCurrentTab(tab) {\n patchState(store, {\n currentTab: tab,\n });\n // Cache management is handled automatically by the effect\n },\n getCurrentTabContent() {\n return store.currentTab()?.content ?? [];\n },\n //#region ---- Rendered Tabs Management ----\n /**\n * Get content for a specific rendered tab\n */\n getRenderedTabContent(tabId) {\n const renderedTabs = store.currentPageRenderedTabs();\n const renderedTab = renderedTabs.find((cached) => cached.tabId === tabId);\n return renderedTab?.tab?.content ?? [];\n },\n /**\n * Clear cache when page changes to free memory\n */\n clearPageTabCache(pageId) {\n const cache = store.renderedTabsCache();\n const updatedCache = { ...cache };\n delete updatedCache[pageId];\n patchState(store, {\n renderedTabsCache: updatedCache,\n });\n },\n //#endregion\n title() {\n const raw = store.showPages() ? (store.adapter()?.title ?? '') : (store.adapter()?.label ?? '');\n return raw ? formatService.format(raw, 'string', store.rootContext()) : null;\n },\n backButtonTitle() {\n const raw = store.showPages() ? (store.adapter()?.label ?? '') : (store.adapter()?.title ?? '');\n return raw ? formatService.format(raw, 'string', store.rootContext()) : null;\n },\n description() {\n const raw = store.adapter()?.description;\n if (raw) {\n return formatService.format(raw, 'string', store.rootContext());\n }\n else {\n return null;\n }\n },\n async primaryActions() {\n const raw = store.adapter()?.actions?.filter((a) => a.priority == 'primary') ?? [];\n const processed = await evaluatorService.evaluate(raw, store.scope());\n return processed;\n },\n async secondaryActions() {\n const raw = store.adapter()?.actions?.filter((a) => a.priority == 'secondary') ?? [];\n const processed = await evaluatorService.evaluate(raw, store.scope());\n return processed;\n },\n async breadcrumbs() {\n const breadcrumbs = await Promise.all(store.adapter()?.breadcrumbs?.map(async (b) => {\n const raw = b?.title ?? '';\n return {\n ...b,\n // title: await evaluatorService.evaluate(raw, store.scope() as AXPExpressionEvaluatorScope),\n title: await formatService.format(raw, 'string', store.rootContext()),\n };\n }) ?? []);\n // Add current page title as the last breadcrumb item\n const currentPageLabel = store.currentPage()?.label;\n const pages = store.adapter()?.pages ?? [];\n const primaryPage = pages.find((p) => p.isPrimary) ?? pages[0];\n const isMainPage = primaryPage?.id === store.currentPage()?.id;\n if (currentPageLabel && !isMainPage) {\n const processedCurrentPageTitle = formatService.format(currentPageLabel, 'string', store.context());\n breadcrumbs.push({\n title: processedCurrentPageTitle,\n });\n }\n return breadcrumbs;\n },\n async discard() {\n patchState(store, {\n context: cloneDeep(store.previousContext()),\n });\n },\n async save(command, form) {\n const formResult = await form.validate();\n if (!formResult.result) {\n return;\n }\n patchState(store, {\n status: AXPPageStatus.Submitting,\n });\n const result = await store.currentPage()?.execute?.(command, store.context());\n const enableOperationToasts = await settingsService.get(AXPCommonSettings.EnableOperationToasts);\n if (result?.success) {\n patchState(store, {\n previousContext: store.context(),\n });\n // After successful save, force refresh the rootContext and reload the current page\n try {\n await this.loadPage(store.currentPage()?.id, true);\n }\n catch (error) {\n console.error('Failed to refresh page after save', error);\n }\n if (enableOperationToasts) {\n toastService.show({\n color: 'success',\n title: await translateService.translateAsync('@general:messages.generic.success.title'),\n content: await translateService.translateAsync('@general:messages.generic.success.description'),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n else {\n if (enableOperationToasts) {\n toastService.show({\n color: 'danger',\n title: await translateService.translateAsync('@general:messages.generic.error.title'),\n content: result?.message?.text ||\n (await translateService.translateAsync('@general:messages.generic.error.description')),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n patchState(store, {\n status: AXPPageStatus.Submitted,\n });\n },\n goToListPage() {\n if (store.adapter()?.exitUrl) {\n router.navigate([store.adapter()?.exitUrl]);\n }\n },\n };\n}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy12aWV3LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9saWIvdmlld3MvZGV0YWlscy12aWV3L2RldGFpbHMtdmlldy52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRixPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLDZCQUE2QixFQUM3QixlQUFlLEVBQ2YsUUFBUSxHQUNULE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTy9DLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLFdBQVcsQ0FDdEQsU0FBUyxDQUFDLEdBQUcsRUFBRTtJQUNiLE1BQU0sS0FBSyxHQUFHO1FBQ1osT0FBTyxFQUFFLElBQTBDO1FBQ25ELFdBQVcsRUFBRSxFQUF5QjtRQUN0QyxlQUFl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cy9mb3JtJztcbmltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQQ29tbW9uU2V0dGluZ3MsIEFYUFNldHRpbmdzU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUERldmljZVNlcnZpY2UsXG4gIEFYUEV4ZWN1dGVDb21tYW5kLFxuICBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUsXG4gIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlLFxuICBnZXRDaGFuZ2VkUGF0aHMsXG4gIGdldFNtYXJ0LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQUGFnZVN0YXR1cyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBwYXRjaFN0YXRlLCBzaWduYWxTdG9yZSwgd2l0aENvbXB1dGVkLCB3aXRoTWV0aG9kcywgd2l0aFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQVhQTGF5b3V0RGV0YWlsc1ZpZXdBZGFwdGVyLFxuICBBWFBMYXlvdXREZXRhaWxzVmlld1BhZ2UsXG4gIEFYUExheW91dERldGFpbHNWaWV3VGFiSXRlbSxcbn0gZnJvbSAnLi9kZXRhaWxzLXZpZXcuYWRhcHRlcic7XG5cbmV4cG9ydCBjb25zdCBBWFBMYXlvdXREZXRhaWxzVmlld1ZpZXdNb2RlbCA9IHNpZ25hbFN0b3JlKFxuICB3aXRoU3RhdGUoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0ge1xuICAgICAgYWRhcHRlcjogbnVsbCBhcyBBWFBMYXlvdXREZXRhaWxzVmlld0FkYXB0ZXIgfCBudWxsLFxuICAgICAgcm9vdENvbnRleHQ6IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBwcmV2aW91c0NvbnRleHQ6IHt9IGFzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICBjb250ZXh0OiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgc2NvcGU6IG51bGwgYXMgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlIHwgbnVsbCxcbiAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nLFxuICAgICAgY3VycmVudFBhZ2U6IG51bGwgYXMgQVhQTGF5b3V0RGV0YWlsc1ZpZXdQYWdlIHwgbnVsbCxcbiAgICAgIGN1cnJlbnRUYWI6IG51bGwgYXMgQVhQTGF5b3V0RGV0YWlsc1ZpZXdUYWJJdGVtIHwgbnVsbCxcbiAgICAgIHBhZ2VTZWxlY3RlZFJvd3M6IFtdIGFzIGFueVtdLFxuICAgICAgLy8gQ2FjaGUgZm9yIHJlbmRlcmVkIHRhYnMgcGVyIHBhZ2UgdG8gcHJldmVudCByZS1yZW5kZXJpbmdcbiAgICAgIHJlbmRlcmVkVGFic0NhY2hlOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBBcnJheTx7IHRhYklkOiBzdHJpbmc7IHRhYjogQVhQTGF5b3V0RGV0YWlsc1ZpZXdUYWJJdGVtIH0+PixcbiAgICB9O1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfSksXG4gIHdpdGhDb21wdXRlZCgoc3RvcmUsIGRldmljZVNlcnZpY2UgPSBpbmplY3QoQVhQRGV2aWNlU2VydmljZSkpID0+ICh7XG4gICAgaWNvbjogY29tcHV0ZWQoKCkgPT4gc3RvcmUuYWRhcHRlcigpPy5pY29uID8/IG51bGwpLFxuICAgIGNvbnRlbnQ6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgIGNvbnN0IHBhZ2VzID0gc3RvcmUuYWRhcHRlcigpPy5wYWdlcyA/PyBbXTtcbiAgICAgIGNvbnN0IHByaW1hcnlQYWdlID0gcGFnZXMuZmluZCgocCkgPT4gcC5pc1ByaW1hcnkpID8/IHBhZ2VzWzBdO1xuICAgICAgcmV0dXJuIHByaW1hcnlQYWdlPy5jb250ZW50ID8/IFtdO1xuICAgIH0pLFxuICAgIC8vXG4gICAgc2hvd1BhZ2VzOiBjb21wdXRlZCgoKSA9PiAhc3RvcmUuY3VycmVudFBhZ2UoKSAmJiAhZGV2aWNlU2VydmljZS5pc0xhcmdlKCkpLFxuICAgIGlzTGFyZ2U6IGNvbXB1dGVkKCgpID0+IGRldmljZVNlcnZpY2UuaXNMYXJnZSgpKSxcbiAgICAvL1xuICAgIGlzQnVzeTogY29tcHV0ZWQoKCkgPT4gc3RvcmUuc3RhdHVzKCkgPT0gQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nKSxcbiAgICBpc1NhdmluZzogY29tcHV0ZWQoKCkgPT4gc3RvcmUuc3RhdHVzKCkgPT0gQVhQUGFnZVN0YXR1cy5TdWJtaXR0aW5nKSxcbiAgICBpc0RpcnR5OiBjb21wdXRlZCgoKSA9PiAhaXNFcXVhbChzdG9yZS5jb250ZXh0KCksIHN0b3JlLnByZXZpb3VzQ29udGV4dCgpKSksXG4gICAgY2hhbmdlc0NvdW50OiBjb21wdXRlZCgoKSA9PiBnZXRDaGFuZ2VkUGF0aHMoc3RvcmUuY29udGV4dCgpLCBzdG9yZS5wcmV2aW91c0NvbnRleHQoKSkubGVuZ3RoKSxcbiAgICBpc0xvYWRlZDogY29tcHV0ZWQoKCkgPT4gc3RvcmUuYWRhcHRlcigpICE9IG51bGwpLFxuICAgIGN1cnJlbnRQYWdlU2VsZWN0ZWRSb3dzOiBjb21wdXRlZCgoKSA9PiBzdG9yZS5wYWdlU2VsZWN0ZWRSb3dzKCkpLFxuICAgIC8vXG4gICAgLy8gUmVuZGVyZWQgdGFicyBmb3IgY3VycmVudCBwYWdlIC0gcHJldmVudHMgcmUtcmVuZGVyaW5nIG9uIHRhYiBzd2l0Y2hcbiAgICBjdXJyZW50UGFnZVJlbmRlcmVkVGFiczogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSBzdG9yZS5jdXJyZW50UGFnZSgpO1xuICAgICAgaWYgKCFjdXJyZW50UGFnZT8uaWQpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBwYWdlSWQgPSBjdXJyZW50UGFnZS5pZDtcbiAgICAgIGNvbnN0IGNhY2hlID0gc3RvcmUucmVuZGVyZWRUYWJzQ2FjaGUoKTtcbiAgICAgIHJldHVybiBjYWNoZVtwYWdlSWRdIHx8IFtdO1xuICAgIH0pLFxuICB9KSksXG4gIHdpdGhNZXRob2RzKFxuICAgIChcbiAgICAgIHN0b3JlLFxuICAgICAgZXZhbHVhdG9yU2VydmljZSA9IGluamVjdChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSksXG4gICAgICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKSxcbiAgICAgIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKSxcbiAgICAgIGRldmljZVNlcnZpY2UgPSBpbmplY3QoQVhQRGV2aWNlU2VydmljZSksXG4gICAgICBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSksXG4gICAgICB0b2FzdFNlcnZpY2UgPSBpbmplY3QoQVhUb2FzdFNlcnZpY2UpLFxuICAgICAgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSksXG4gICAgICBzZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoQVhQU2V0dGluZ3NTZXJ2aWNlKSxcbiAgICApID0+IHtcbiAgICAgIC8vIEVmZmVjdCB0byBhdXRvbWF0aWNhbGx5IGNhY2hlIGN1cnJlbnQgdGFiIHdoZW4gaXQgY2hhbmdlc1xuICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSBzdG9yZS5jdXJyZW50UGFnZSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50VGFiID0gc3RvcmUuY3VycmVudFRhYigpO1xuXG4gICAgICAgIGlmIChjdXJyZW50UGFnZT8uaWQgJiYgY3VycmVudFRhYj8uaWQpIHtcbiAgICAgICAgICBjb25zdCBwYWdlSWQgPSBjdXJyZW50UGFnZS5pZDtcbiAgICAgICAgICBjb25zdCB0YWJJZCA9IGN1cnJlbnRUYWIuaWQ7XG4gICAgICAgICAgY29uc3QgY2FjaGUgPSBzdG9yZS5yZW5kZXJlZFRhYnNDYWNoZSgpO1xuICAgICAgICAgIGNvbnN0IHBhZ2VDYWNoZSA9IGNhY2hlW3BhZ2VJZF0gfHwgW107XG5cbiAgICAgICAgICAvLyBDaGVjayBpZiB0YWIgaXMgYWxyZWFkeSBpbiBjYWNoZVxuICAgICAgICAgIGNvbnN0IGlzVGFiQ2FjaGVkID0gcGFnZUNhY2hlLnNvbWUoKGNhY2hlZCkgPT4gY2FjaGVkLnRhYklkID09PSB0YWJJZCk7XG5cbiAgICAgICAgICBpZiAoIWlzVGFiQ2FjaGVkKSB7XG4gICAgICAgICAgICAvLyBBZGQgdGFiIHRvIGNhY2hlIGZvciB0aGlzIHBhZ2VcbiAgICAgICAgICAgIGNvbnN0IG5ld1RhYkNhY2hlID0ge1xuICAgICAgICAgICAgICB0YWJJZDogdGFiSWQsXG4gICAgICAgICAgICAgIHRhYjogY3VycmVudFRhYixcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRQYWdlQ2FjaGUgPSBbLi4ucGFnZUNhY2hlLCBuZXdUYWJDYWNoZV07XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGUgaW1tdXRhYmx5XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkQ2FjaGUgPSB7XG4gICAgICAgICAgICAgIC4uLmNhY2hlLFxuICAgICAgICAgICAgICBbcGFnZUlkXTogdXBkYXRlZFBhZ2VDYWNoZSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgcmVuZGVyZWRUYWJzQ2FjaGU6IHVwZGF0ZWRDYWNoZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIENyZWF0ZSBhbiBlZmZlY3QgdG8gaGFuZGxlIHJvdXRlIGNoYW5nZXNcbiAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChzdG9yZS5hZGFwdGVyKCkpIHtcbiAgICAgICAgICByb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFnZUlkID0gcGFyYW1zWydwYWdlJ107XG4gICAgICAgICAgICBjb25zdCBhZGFwdGVyID0gc3RvcmUuYWRhcHRlcigpO1xuICAgICAgICAgICAgaWYgKGFkYXB0ZXIpIHtcbiAgICAgICAgICAgICAgLy8gRmluZCBjdXJyZW50IHBhZ2UgZnJvbSBxdWVyeSBwYXJhbSBvciBjb25kaXRpb25hbGx5IGRlZmF1bHQgdG8gZmlyc3QgcGFnZVxuICAgICAgICAgICAgICBsZXQgY3VycmVudFBhZ2U6IEFYUExheW91dERldGFpbHNWaWV3UGFnZSB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgICBpZiAocGFnZUlkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmRQYWdlID0gYWRhcHRlci5wYWdlcy5maW5kKChwKSA9PiBwLmlkID09PSBwYWdlSWQpO1xuICAgICAgICAgICAgICAgIGlmIChmb3VuZFBhZ2UpIHtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlID0gZm91bmRQYWdlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBPbmx5IGF1dG8tc2VsZWN0IHByaW1hcnkgcGFnZSBpZiBsYXlvdXQgaXMgbGFyZ2VcbiAgICAgICAgICAgICAgICBpZiAoZGV2aWNlU2VydmljZS5pc0xhcmdlKCkgfHwgYWRhcHRlci5wYWdlcy5sZW5ndGggPT0gMSkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgcHJpbWFyeVBhZ2UgPSBhZGFwdGVyLnBhZ2VzLmZpbmQoKHApID0+IHAuaXNQcmltYXJ5KSA/PyBhZGFwdGVyLnBhZ2VzWzBdO1xuICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2UgPSBwcmltYXJ5UGFnZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBTZXQgY3VycmVudCB0YWIgdG8gZmlyc3QgdGFiIG9mIHRoZSBjdXJyZW50IHBhZ2UgKGludGVybmFsIHN0YXRlIG9ubHkpXG4gICAgICAgICAgICAgIGxldCBjdXJyZW50VGFiID0gY3VycmVudFBhZ2U/LnRhYnM/LlswXSA/PyBudWxsO1xuXG4gICAgICAgICAgICAgIC8vIE9ubHkgdXBkYXRlIGlmIHRoZXJlJ3MgYSBjaGFuZ2VcbiAgICAgICAgICAgICAgaWYgKHN0b3JlLmN1cnJlbnRQYWdlKCk/LmlkICE9PSBjdXJyZW50UGFnZT8uaWQpIHtcbiAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZSxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYWIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFzeW5jIGxvYWRBZGFwdGVyKGFkYXB0ZXI6IEFYUExheW91dERldGFpbHNWaWV3QWRhcHRlcikge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgYWRhcHRlciB9KTtcblxuICAgICAgICAgIC8vIExvYWQgYWRhcHRlciBjb250ZXh0IGlmIGFkYXB0ZXIgaGFzIGxvYWQgZnVuY3Rpb25cbiAgICAgICAgICBsZXQgYWRhcHRlckNvbnRleHQgPSB7fTtcbiAgICAgICAgICBpZiAoYWRhcHRlci5sb2FkKSB7XG4gICAgICAgICAgICBjb25zdCBhZGFwdGVyUmVzdWx0ID0gYXdhaXQgYWRhcHRlci5sb2FkKCk7XG4gICAgICAgICAgICBhZGFwdGVyQ29udGV4dCA9IGFkYXB0ZXJSZXN1bHQ/LmRhdGEgPz8ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgcm9vdENvbnRleHQ6IGNsb25lRGVlcChhZGFwdGVyQ29udGV4dCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgYXN5bmMgbG9hZFBhZ2UocGFnZUlkPzogc3RyaW5nLCBmb3JjZVJlZnJlc2g/OiBib29sZWFuKSB7XG4gICAgICAgICAgY29uc3QgYWRhcHRlciA9IHN0b3JlLmFkYXB0ZXIoKTtcbiAgICAgICAgICBpZiAoIWFkYXB0ZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQWRhcHRlciBtdXN0IGJlIGxvYWRlZCBiZWZvcmUgbG9hZGluZyBwYWdlJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlByb2Nlc3NpbmcsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICAvLyBHZXQgcGFnZSBJRCBmcm9tIHBhcmFtZXRlciBvciBxdWVyeSBwYXJhbXNcbiAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290LnF1ZXJ5UGFyYW1zO1xuICAgICAgICAgIGNvbnN0IHRhcmdldFBhZ2VJZCA9IHBhZ2VJZCB8fCBxdWVyeVBhcmFtc1sncGFnZSddO1xuXG4gICAgICAgICAgLy8gRmluZCBjdXJyZW50IHBhZ2UgZnJvbSBwYWdlIElEIG9yIGNvbmRpdGlvbmFsbHkgZGVmYXVsdCB0byBmaXJzdCBwYWdlXG4gICAgICAgICAgbGV0IGN1cnJlbnRQYWdlOiBBWFBMYXlvdXREZXRhaWxzVmlld1BhZ2UgfCBudWxsID0gbnVsbDtcbiAgICAgICAgICBpZiAodGFyZ2V0UGFnZUlkKSB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZFBhZ2UgPSBhZGFwdGVyLnBhZ2VzLmZpbmQoKHApID0+IHAuaWQgPT09IHRhcmdldFBhZ2VJZCk7XG4gICAgICAgICAgICBpZiAoZm91bmRQYWdlKSB7XG4gICAgICAgICAgICAgIGN1cnJlbnRQYWdlID0gZm91bmRQYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBPbmx5IGF1dG8tc2VsZWN0IHByaW1hcnkgcGFnZSBpZiBsYXlvdXQgaXMgbGFyZ2VcbiAgICAgICAgICAgIGlmIChkZXZpY2VTZXJ2aWNlLmlzTGFyZ2UoKSB8fCBhZGFwdGVyLnBhZ2VzLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByaW1hcnlQYWdlID0gYWRhcHRlci5wYWdlcy5maW5kKChwKSA9PiBwLmlzUHJpbWFyeSkgPz8gYWRhcHRlci5wYWdlc1swXTtcbiAgICAgICAgICAgICAgY3VycmVudFBhZ2UgPSBwcmltYXJ5UGFnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBMb2FkIHBhZ2UgZGF0YSBpZiBjdXJyZW50IHBhZ2UgZXhpc3RzXG4gICAgICAgICAgbGV0IGNvbnRleHQgPSB7fTtcbiAgICAgICAgICBpZiAoY3VycmVudFBhZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlSW5kZXggPSBhZGFwdGVyLnBhZ2VzLmZpbmRJbmRleCgocCkgPT4gcC5pZCA9PT0gY3VycmVudFBhZ2UuaWQpO1xuICAgICAgICAgICAgY29uc3QgbG9hZFJlc3VsdCA9IGF3YWl0IGFkYXB0ZXIucGFnZXNbY3VycmVudFBhZ2VJbmRleF0/LmxvYWQ/Lih7IGZvcmNlUmVmcmVzaCB9KTtcbiAgICAgICAgICAgIGNvbnRleHQgPSBsb2FkUmVzdWx0Py5kYXRhID8/IHt9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFNldCBjdXJyZW50IHRhYiB0byBmaXJzdCB0YWIgb2YgdGhlIGN1cnJlbnQgcGFnZSAoaW50ZXJuYWwgc3RhdGUgb25seSlcbiAgICAgICAgICBsZXQgY3VycmVudFRhYiA9IGN1cnJlbnRQYWdlPy50YWJzPy5bMF0gPz8gbnVsbDtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBwcmV2aW91c0NvbnRleHQ6IGNsb25lRGVlcChjb250ZXh0KSxcbiAgICAgICAgICAgIGNvbnRleHQ6IGNsb25lRGVlcChjb250ZXh0KSxcbiAgICAgICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5SZW5kZXJlZCxcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlLFxuICAgICAgICAgICAgY3VycmVudFRhYixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBhc3luYyBsb2FkKGFkYXB0ZXI6IEFYUExheW91dERldGFpbHNWaWV3QWRhcHRlcikge1xuICAgICAgICAgIC8vIFNldHVwIGV4cHJlc3Npb24gZXZhbHVhdG9yIHNjb3BlXG4gICAgICAgICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRTbWFydChzdG9yZS5jb250ZXh0KCksIHBhdGgpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBpc0RpcnR5OiAoKSA9PiBzdG9yZS5pc0RpcnR5KCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRBZGFwdGVyKGFkYXB0ZXIpO1xuICAgICAgICAgIGF3YWl0IHRoaXMubG9hZFBhZ2UodW5kZWZpbmVkLCB0cnVlKTtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGVDb250ZXh0KGNvbnRleHQ6IGFueSkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdXBkYXRlUGFnZVNlbGVjdGVkUm93cyhyb3dzOiBhbnlbXSkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIHBhZ2VTZWxlY3RlZFJvd3M6IHJvd3MsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy9DdXJyZW50IFBhZ2VcbiAgICAgICAgY3VycmVudFBhZ2VUaXRsZSgpIHtcbiAgICAgICAgICBjb25zdCByYXcgPSBzdG9yZS5jdXJyZW50UGFnZSgpPy50aXRsZTtcbiAgICAgICAgICBpZiAocmF3KSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0U2VydmljZS5mb3JtYXQocmF3LCAnc3RyaW5nJywgc3RvcmUuY29udGV4dCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGN1cnJlbnRQYWdlRGVzY3JpcHRpb24oKSB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gc3RvcmUuY3VycmVudFBhZ2UoKT8uZGVzY3JpcHRpb247XG4gICAgICAgICAgaWYgKHJhdykge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFNlcnZpY2UuZm9ybWF0KHJhdywgJ3N0cmluZycsIHN0b3JlLmNvbnRleHQoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBhc3luYyBjdXJyZW50UGFnZVByaW1hcnlBY3Rpb25zKCkge1xuICAgICAgICAgIGNvbnN0IHJhdyA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LmFjdGlvbnM/LmZpbHRlcigoYSkgPT4gYS5wcmlvcml0eSA9PSAncHJpbWFyeScpID8/IFtdO1xuICAgICAgICAgIGNvbnN0IGFjY2VwdEFjdGlvbiA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LnNldHRpbmdzPy5jb21tYW5kcz8uYWNjZXB0O1xuICAgICAgICAgIGNvbnN0IHJlamVjdEFjdGlvbiA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LnNldHRpbmdzPy5jb21tYW5kcz8ucmVqZWN0O1xuICAgICAgICAgIGlmIChyZWplY3RBY3Rpb24pIHtcbiAgICAgICAgICAgIHJhdy5wdXNoKHtcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgem9uZTogJ2Zvb3RlcicsXG4gICAgICAgICAgICAgIG5hbWU6ICdyZWplY3QnLFxuICAgICAgICAgICAgICB0aXRsZTogcmVqZWN0QWN0aW9uLnRpdGxlLFxuICAgICAgICAgICAgICBjb2xvcjogcmVqZWN0QWN0aW9uLmNvbG9yLFxuICAgICAgICAgICAgICBjb21tYW5kOiByZWplY3RBY3Rpb24uY29tbWFuZCxcbiAgICAgICAgICAgICAgdmlzaWJsZTogcmVqZWN0QWN0aW9uLnZpc2libGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFjY2VwdEFjdGlvbikge1xuICAgICAgICAgICAgcmF3LnB1c2goe1xuICAgICAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICB6b25lOiAnZm9vdGVyJyxcbiAgICAgICAgICAgICAgbmFtZTogJ2FjY2VwdCcsXG4gICAgICAgICAgICAgIHRpdGxlOiBhY2NlcHRBY3Rpb24udGl0bGUsXG4gICAgICAgICAgICAgIGNvbG9yOiBhY2NlcHRBY3Rpb24uY29sb3IsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IGFjY2VwdEFjdGlvbi5jb21tYW5kLFxuICAgICAgICAgICAgICB2aXNpYmxlOiBhY2NlcHRBY3Rpb24udmlzaWJsZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBwcm9jZXNzZWQgPSBhd2FpdCBldmFsdWF0b3JTZXJ2aWNlLmV2YWx1YXRlKHJhdywgc3RvcmUuc2NvcGUoKSBhcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUpO1xuICAgICAgICAgIHJldHVybiBwcm9jZXNzZWQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgYXN5bmMgY3VycmVudFBhZ2VTZWNvbmRhcnlBY3Rpb25zKCkge1xuICAgICAgICAgIGNvbnN0IHJhdyA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LmFjdGlvbnM/LmZpbHRlcigoYSkgPT4gYS5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5JykgPz8gW107XG4gICAgICAgICAgY29uc3QgcHJvY2Vzc2VkID0gYXdhaXQgZXZhbHVhdG9yU2VydmljZS5ldmFsdWF0ZShyYXcsIHN0b3JlLnNjb3BlKCkgYXMgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlKTtcbiAgICAgICAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICAgICAgICB9LFxuXG4gICAgICAgIGN1cnJlbnRQYWdlQ29udGVudCgpIHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gc3RvcmUuY3VycmVudFBhZ2UoKT8uY29udGVudDtcbiAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgfSxcblxuICAgICAgICBjdXJyZW50UGFnZVRhYnMoKSB7XG4gICAgICAgICAgcmV0dXJuIHN0b3JlLmN1cnJlbnRQYWdlKCk/LnRhYnM/LmZpbHRlcigodGFiKSA9PiB0YWIudmlzaWJsZSAhPT0gZmFsc2UpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHNldEN1cnJlbnRQYWdlKHBhZ2U6IEFYUExheW91dERldGFpbHNWaWV3UGFnZSB8IG51bGwpIHtcbiAgICAgICAgICAvLyBDbGVhciBwcmV2aW91cyBwYWdlIGNhY2hlIGlmIGNoYW5naW5nIHBhZ2VzXG4gICAgICAgICAgY29uc3QgcHJldmlvdXNQYWdlID0gc3RvcmUuY3VycmVudFBhZ2UoKTtcbiAgICAgICAgICBpZiAocHJldmlvdXNQYWdlPy5pZCAmJiBwcmV2aW91c1BhZ2UuaWQgIT09IHBhZ2U/LmlkKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyUGFnZVRhYkNhY2hlKHByZXZpb3VzUGFnZS5pZCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0VGFiID0gcGFnZS50YWJzPy5bMF0gPz8gbnVsbDtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICBjdXJyZW50UGFnZTogcGFnZSxcbiAgICAgICAgICAgICAgY3VycmVudFRhYjogZmlyc3RUYWIsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgcGFnZTogcGFnZS5pZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgIGN1cnJlbnRQYWdlOiBudWxsLFxuICAgICAgICAgICAgICBjdXJyZW50VGFiOiBudWxsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBSZW1vdmUgcGFnZSBxdWVyeSBwYXJhbWV0ZXJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbXMgPSB7IC4uLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zIH07XG4gICAgICAgICAgICBkZWxldGUgY3VycmVudFBhcmFtc1sncGFnZSddO1xuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBjdXJyZW50UGFyYW1zLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIC8vQ3VycmVudCBUYWJcbiAgICAgICAgc2V0Q3VycmVudFRhYih0YWI6IEFYUExheW91dERldGFpbHNWaWV3VGFiSXRlbSkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIGN1cnJlbnRUYWI6IHRhYixcbiAgICAgICAgICB9KTtcbiAgICAgICAgICAvLyBDYWNoZSBtYW5hZ2VtZW50IGlzIGhhbmRsZWQgYXV0b21hdGljYWxseSBieSB0aGUgZWZmZWN0XG4gICAgICAgIH0sXG5cbiAgICAgICAgZ2V0Q3VycmVudFRhYkNvbnRlbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIHN0b3JlLmN1cnJlbnRUYWIoKT8uY29udGVudCA/PyBbXTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyNyZWdpb24gLS0tLSBSZW5kZXJlZCBUYWJzIE1hbmFnZW1lbnQgLS0tLVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXQgY29udGVudCBmb3IgYSBzcGVjaWZpYyByZW5kZXJlZCB0YWJcbiAgICAgICAgICovXG4gICAgICAgIGdldFJlbmRlcmVkVGFiQ29udGVudCh0YWJJZDogc3RyaW5nKSB7XG4gICAgICAgICAgY29uc3QgcmVuZGVyZWRUYWJzID0gc3RvcmUuY3VycmVudFBhZ2VSZW5kZXJlZFRhYnMoKTtcbiAgICAgICAgICBjb25zdCByZW5kZXJlZFRhYiA9IHJlbmRlcmVkVGFicy5maW5kKChjYWNoZWQpID0+IGNhY2hlZC50YWJJZCA9PT0gdGFiSWQpO1xuICAgICAgICAgIHJldHVybiByZW5kZXJlZFRhYj8udGFiPy5jb250ZW50ID8/IFtdO1xuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDbGVhciBjYWNoZSB3aGVuIHBhZ2UgY2hhbmdlcyB0byBmcmVlIG1lbW9yeVxuICAgICAgICAgKi9cbiAgICAgICAgY2xlYXJQYWdlVGFiQ2FjaGUocGFnZUlkOiBzdHJpbmcpIHtcbiAgICAgICAgICBjb25zdCBjYWNoZSA9IHN0b3JlLnJlbmRlcmVkVGFic0NhY2hlKCk7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZENhY2hlID0geyAuLi5jYWNoZSB9O1xuICAgICAgICAgIGRlbGV0ZSB1cGRhdGVkQ2FjaGVbcGFnZUlkXTtcblxuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIHJlbmRlcmVkVGFic0NhY2hlOiB1cGRhdGVkQ2FjaGUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8jZW5kcmVnaW9uXG5cbiAgICAgICAgdGl0bGUoKSB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gc3RvcmUuc2hvd1BhZ2VzKCkgPyAoc3RvcmUuYWRhcHRlcigpPy50aXRsZSA/PyAnJykgOiAoc3RvcmUuYWRhcHRlcigpPy5sYWJlbCA/PyAnJyk7XG4gICAgICAgICAgcmV0dXJuIHJhdyA/IGZvcm1hdFNlcnZpY2UuZm9ybWF0KHJhdywgJ3N0cmluZycsIHN0b3JlLnJvb3RDb250ZXh0KCkpIDogbnVsbDtcbiAgICAgICAgfSxcblxuICAgICAgICBiYWNrQnV0dG9uVGl0bGUoKSB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gc3RvcmUuc2hvd1BhZ2VzKCkgPyAoc3RvcmUuYWRhcHRlcigpPy5sYWJlbCA/PyAnJykgOiAoc3RvcmUuYWRhcHRlcigpPy50aXRsZSA/PyAnJyk7XG4gICAgICAgICAgcmV0dXJuIHJhdyA/IGZvcm1hdFNlcnZpY2UuZm9ybWF0KHJhdywgJ3N0cmluZycsIHN0b3JlLnJvb3RDb250ZXh0KCkpIDogbnVsbDtcbiAgICAgICAgfSxcblxuICAgICAgICBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgICBjb25zdCByYXcgPSBzdG9yZS5hZGFwdGVyKCk/LmRlc2NyaXB0aW9uO1xuICAgICAgICAgIGlmIChyYXcpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXRTZXJ2aWNlLmZvcm1hdChyYXcsICdzdHJpbmcnLCBzdG9yZS5yb290Q29udGV4dCgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGFzeW5jIHByaW1hcnlBY3Rpb25zKCkge1xuICAgICAgICAgIGNvbnN0IHJhdyA9IHN0b3JlLmFkYXB0ZXIoKT8uYWN0aW9ucz8uZmlsdGVyKChhKSA9PiBhLnByaW9yaXR5ID09ICdwcmltYXJ5JykgPz8gW107XG4gICAgICAgICAgY29uc3QgcHJvY2Vzc2VkID0gYXdhaXQgZXZhbHVhdG9yU2VydmljZS5ldmFsdWF0ZShyYXcsIHN0b3JlLnNjb3BlKCkgYXMgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlKTtcbiAgICAgICAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICAgICAgICB9LFxuXG4gICAgICAgIGFzeW5jIHNlY29uZGFyeUFjdGlvbnMoKSB7XG4gICAgICAgICAgY29uc3QgcmF3ID0gc3RvcmUuYWRhcHRlcigpPy5hY3Rpb25zPy5maWx0ZXIoKGEpID0+IGEucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScpID8/IFtdO1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IGF3YWl0IGV2YWx1YXRvclNlcnZpY2UuZXZhbHVhdGUocmF3LCBzdG9yZS5zY29wZSgpIGFzIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSk7XG4gICAgICAgICAgcmV0dXJuIHByb2Nlc3NlZDtcbiAgICAgICAgfSxcblxuICAgICAgICBhc3luYyBicmVhZGNydW1icygpIHtcbiAgICAgICAgICBjb25zdCBicmVhZGNydW1icyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgc3RvcmUuYWRhcHRlcigpPy5icmVhZGNydW1icz8ubWFwKGFzeW5jIChiKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJhdyA9IGI/LnRpdGxlID8/ICcnO1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmIsXG4gICAgICAgICAgICAgICAgLy8gdGl0bGU6IGF3YWl0IGV2YWx1YXRvclNlcnZpY2UuZXZhbHVhdGUocmF3LCBzdG9yZS5zY29wZSgpIGFzIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSksXG4gICAgICAgICAgICAgICAgdGl0bGU6IGF3YWl0IGZvcm1hdFNlcnZpY2UuZm9ybWF0KHJhdywgJ3N0cmluZycsIHN0b3JlLnJvb3RDb250ZXh0KCkpLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSkgPz8gW10sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIEFkZCBjdXJyZW50IHBhZ2UgdGl0bGUgYXMgdGhlIGxhc3QgYnJlYWRjcnVtYiBpdGVtXG4gICAgICAgICAgY29uc3QgY3VycmVudFBhZ2VMYWJlbCA9IHN0b3JlLmN1cnJlbnRQYWdlKCk/LmxhYmVsO1xuICAgICAgICAgIGNvbnN0IHBhZ2VzID0gc3RvcmUuYWRhcHRlcigpPy5wYWdlcyA/PyBbXTtcbiAgICAgICAgICBjb25zdCBwcmltYXJ5UGFnZSA9IHBhZ2VzLmZpbmQoKHApID0+IHAuaXNQcmltYXJ5KSA/PyBwYWdlc1swXTtcbiAgICAgICAgICBjb25zdCBpc01haW5QYWdlID0gcHJpbWFyeVBhZ2U/LmlkID09PSBzdG9yZS5jdXJyZW50UGFnZSgpPy5pZDtcbiAgICAgICAgICBpZiAoY3VycmVudFBhZ2VMYWJlbCAmJiAhaXNNYWluUGFnZSkge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkQ3VycmVudFBhZ2VUaXRsZSA9IGZvcm1hdFNlcnZpY2UuZm9ybWF0KGN1cnJlbnRQYWdlTGFiZWwsICdzdHJpbmcnLCBzdG9yZS5jb250ZXh0KCkpO1xuICAgICAgICAgICAgYnJlYWRjcnVtYnMucHVzaCh7XG4gICAgICAgICAgICAgIHRpdGxlOiBwcm9jZXNzZWRDdXJyZW50UGFnZVRpdGxlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGJyZWFkY3J1bWJzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGFzeW5jIGRpc2NhcmQoKSB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgY29udGV4dDogY2xvbmVEZWVwKHN0b3JlLnByZXZpb3VzQ29udGV4dCgpKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBhc3luYyBzYXZlKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kLCBmb3JtOiBBWEZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgICBjb25zdCBmb3JtUmVzdWx0ID0gYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuICAgICAgICAgIGlmICghZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlN1Ym1pdHRpbmcsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RvcmUuY3VycmVudFBhZ2UoKT8uZXhlY3V0ZT8uKGNvbW1hbmQsIHN0b3JlLmNvbnRleHQoKSk7XG4gICAgICAgICAgY29uc3QgZW5hYmxlT3BlcmF0aW9uVG9hc3RzID0gYXdhaXQgc2V0dGluZ3NTZXJ2aWNlLmdldChBWFBDb21tb25TZXR0aW5ncy5FbmFibGVPcGVyYXRpb25Ub2FzdHMpO1xuICAgICAgICAgIGlmIChyZXN1bHQ/LnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgcHJldmlvdXNDb250ZXh0OiBzdG9yZS5jb250ZXh0KCksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIEFmdGVyIHN1Y2Nlc3NmdWwgc2F2ZSwgZm9yY2UgcmVmcmVzaCB0aGUgcm9vdENvbnRleHQgYW5kIHJlbG9hZCB0aGUgY3VycmVudCBwYWdlXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRQYWdlKHN0b3JlLmN1cnJlbnRQYWdlKCk/LmlkLCB0cnVlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byByZWZyZXNoIHBhZ2UgYWZ0ZXIgc2F2ZScsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmFibGVPcGVyYXRpb25Ub2FzdHMpIHtcbiAgICAgICAgICAgICAgdG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICAgICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOm1lc3NhZ2VzLmdlbmVyaWMuc3VjY2Vzcy50aXRsZScpLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOm1lc3NhZ2VzLmdlbmVyaWMuc3VjY2Vzcy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgICAgIGxvY2F0aW9uOiAnYm90dG9tLWNlbnRlcicsXG4gICAgICAgICAgICAgICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgICAgICAgICAgICAgdGltZU91dDogMzAwMCxcbiAgICAgICAgICAgICAgICB0aW1lT3V0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZW5hYmxlT3BlcmF0aW9uVG9hc3RzKSB7XG4gICAgICAgICAgICAgIHRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOm1lc3NhZ2VzLmdlbmVyaWMuZXJyb3IudGl0bGUnKSxcbiAgICAgICAgICAgICAgICBjb250ZW50OlxuICAgICAgICAgICAgICAgICAgcmVzdWx0Py5tZXNzYWdlPy50ZXh0IHx8XG4gICAgICAgICAgICAgICAgICAoYXdhaXQgdHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6bWVzc2FnZXMuZ2VuZXJpYy5lcnJvci5kZXNjcmlwdGlvbicpKSxcbiAgICAgICAgICAgICAgICBsb2NhdGlvbjogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIHRpbWVPdXQ6IDMwMDAsXG4gICAgICAgICAgICAgICAgdGltZU91dFByb2dyZXNzOiB0cnVlLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlN1Ym1pdHRlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBnb1RvTGlzdFBhZ2UoKSB7XG4gICAgICAgICAgaWYgKHN0b3JlLmFkYXB0ZXIoKT8uZXhpdFVybCkge1xuICAgICAgICAgICAgcm91dGVyLm5hdmlnYXRlKFtzdG9yZS5hZGFwdGVyKCk/LmV4aXRVcmxdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gICksXG4pO1xuIl19","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostListener, ViewEncapsulation, computed, effect, inject, input, signal, viewChild, } from '@angular/core';\n//\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFileModule } from '@acorex/core/file';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule } from '@acorex/core/translation';\n//\nimport { AXResizableDirective } from '@acorex/cdk/resizable';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXPEntityCommandScope } from '@acorex/platform/common';\nimport { AXPBroadcastEventService, AXPDeviceService, } from '@acorex/platform/core';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutStartSideComponent, } from '@acorex/platform/layout/components';\nimport { AXPWidgetContainerComponent, AXPWidgetCoreModule, } from '@acorex/platform/layout/widget-core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '../../layouts';\nimport { AXPLayoutDetailsViewViewModel } from './details-view.viewmodel';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/button\";\nimport * as i2 from \"@acorex/components/dropdown\";\nimport * as i3 from \"@acorex/core/translation\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/tabs\";\nimport * as i6 from \"@acorex/platform/layout/widget-core\";\nimport * as i7 from \"@acorex/components/form\";\nimport * as i8 from \"@angular/common\";\nexport class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent {\n constructor() {\n super(...arguments);\n this.adapter = input.required(...(ngDevMode ? [{ debugName: \"adapter\" }] : []));\n //\n this.vm = inject(AXPLayoutDetailsViewViewModel);\n this.router = inject(Router);\n this.route = inject(ActivatedRoute);\n this.eventService = inject(AXPBroadcastEventService);\n this.deviceService = inject(AXPDeviceService);\n this.destroyed$ = new Subject();\n this.form = viewChild('form', ...(ngDevMode ? [{ debugName: \"form\" }] : []));\n this.widgetContainer = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: \"widgetContainer\" }] : []));\n this.footerPrimaryActions = signal([], ...(ngDevMode ? [{ debugName: \"footerPrimaryActions\" }] : []));\n this.footerSecondaryActions = signal([], ...(ngDevMode ? [{ debugName: \"footerSecondaryActions\" }] : []));\n this.footerActions = computed(() => [...this.footerPrimaryActions(), ...this.footerSecondaryActions()], ...(ngDevMode ? [{ debugName: \"footerActions\" }] : []));\n this.hasVisibleFooterPrimaryActions = computed(() => {\n const primaryFooterActions = this.footerPrimaryActions();\n return primaryFooterActions.some((action) => action.visible != false);\n }, ...(ngDevMode ? [{ debugName: \"hasVisibleFooterPrimaryActions\" }] : []));\n this.hasVisibleFooterSecondaryActions = computed(() => {\n const secondaryFooterActions = this.footerSecondaryActions();\n return secondaryFooterActions.some((action) => action.visible != false);\n }, ...(ngDevMode ? [{ debugName: \"hasVisibleFooterSecondaryActions\" }] : []));\n this.hasFooter = computed(() => {\n return ((this.hasVisibleFooterPrimaryActions() || this.hasVisibleFooterSecondaryActions()) &&\n !this.vm.currentPage()?.isReadonly);\n }, ...(ngDevMode ? [{ debugName: \"hasFooter\" }] : []));\n this.#FooterActionsEffect = effect(async () => {\n this.updateTrigger();\n const footerPrimaryActions = await this.getFooterPrimaryActions();\n const footerSecondaryActions = await this.getFooterSecondaryActions();\n this.footerPrimaryActions.set(footerPrimaryActions);\n this.footerSecondaryActions.set(footerSecondaryActions);\n }, ...(ngDevMode ? [{ debugName: \"#FooterActionsEffect\" }] : []));\n }\n /**\n * Append timestamp query param to trigger router to re-run guards/resolvers\n */\n async refreshLayout() {\n const router = this.router;\n const route = this.route;\n const now = Date.now();\n await router.navigate([], {\n relativeTo: route,\n queryParams: { _ts: now },\n queryParamsHandling: 'merge',\n });\n }\n async ngOnInit() {\n await super.ngOnInit();\n //\n await this.vm.load(this.adapter());\n this.eventService\n //TODO: Use the constant from the entity module\n .listen('entity:refresh-layout')\n .pipe(takeUntil(this.destroyed$))\n .subscribe((e) => {\n if (e.data.name == this.vm.adapter()?.name) {\n this.refreshLayout();\n }\n });\n }\n async ngAfterViewInit() {\n const listWidget = (await this.widgetContainer()?.find('page-list_table'));\n if (listWidget?.api && typeof listWidget.api === 'function') {\n const onSelectionChange = listWidget.api()['onSelectionChange'];\n if (onSelectionChange) {\n this.onSelectionChangeSubscription = onSelectionChange.subscribe((e) => {\n this.vm.updatePageSelectedRows(e);\n this.recompute();\n });\n }\n }\n }\n ngOnDestroy() {\n this.onSelectionChangeSubscription?.unsubscribe();\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n #FooterActionsEffect;\n handleOnContextChanged(e) {\n this.vm.updateContext(e.data);\n this.recompute();\n }\n handleSelectPage(page) {\n this.vm.setCurrentPage(page);\n }\n async getAllPrimaryActions() {\n if (!this.vm.showPages()) {\n const [primaryActions, pagePrimaryActions] = await Promise.all([\n this.vm.primaryActions(),\n this.vm.currentPagePrimaryActions(),\n ]);\n return [...primaryActions, ...pagePrimaryActions];\n }\n else {\n return [];\n }\n }\n async getPrimaryMenuItems() {\n return (await this.getAllPrimaryActions()).filter((a) => {\n return (a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.vm.currentPageSelectedRows().length) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.vm.currentPageSelectedRows().length)));\n });\n }\n async getFooterPrimaryActions() {\n return (await this.getAllPrimaryActions()).filter((item) => item.zone == 'footer');\n }\n async getAllSecondaryActions() {\n if (!this.vm.showPages()) {\n const [secondaryActions, pageSecondaryActions] = await Promise.all([\n this.vm.secondaryActions(),\n this.vm.currentPageSecondaryActions(),\n ]);\n return [...secondaryActions, ...pageSecondaryActions];\n }\n else {\n return [];\n }\n }\n async getSecondaryMenuItems() {\n return (await this.getAllSecondaryActions()).filter((item) => item.zone == 'header');\n }\n async getFooterSecondaryActions() {\n return (await this.getAllSecondaryActions()).filter((item) => item.zone == 'footer');\n }\n async getPageBreadcrumbs() {\n return (await this.vm.breadcrumbs()) ?? [];\n }\n async getPageTitle() {\n if (this.vm.showPages()) {\n return this.vm.title() || '';\n }\n else {\n return this.vm.currentPageTitle() || '';\n }\n }\n async getPageDescription() {\n if (this.vm.showPages()) {\n return (await this.vm.description()) || '';\n }\n else {\n return await this.vm.currentPageDescription();\n }\n }\n async getBackButton() {\n if (this.vm.adapter()?.pages?.length > 1) {\n return {\n title: this.vm.backButtonTitle() ?? '',\n };\n }\n else {\n return {\n title: this.vm.adapter()?.label ?? '',\n };\n }\n }\n // override async getPageBadge(): Promise<AXPBadge | null> {\n // if (this.vm.isDirty()) {\n // return {\n // title: await this.translateService.translateAsync('@general:terms.interface.save-status.not-saved.title'),\n // color: 'warning',\n // description: await this.translateService.translateAsync(\n // '@general:terms.interface.save-status.not-saved.description',\n // ),\n // };\n // }\n // return null;\n // }\n // override async getPageStatus(): Promise<AXPPageStatus | null> {\n // const adapter = this.vm.adapter();\n // if (!adapter?.name) {\n // return null;\n // }\n // // Parse entity name (format: \"ModuleName.EntityName\")\n // const [moduleName, entityName] = adapter.name.split('.');\n // if (!moduleName || !entityName) {\n // return null;\n // }\n // try {\n // // Get entity definition\n // const entityDefinition = await this.entityRegistry.resolve(moduleName, entityName);\n // if (!entityDefinition) {\n // return null;\n // }\n // // Find status plugin\n // const statusPlugin = entityDefinition.plugins?.find((p: any) => p.name === 'status');\n // if (!statusPlugin?.options) {\n // return null;\n // }\n // const statusOptions = statusPlugin.options as any;\n // const statusField = statusOptions.field ?? 'statusId';\n // const statusDefinitionKey = statusOptions.definition;\n // // Get status definition key from property widget options if not in plugin options\n // let definitionKey: string | undefined = typeof statusDefinitionKey === 'string' ? statusDefinitionKey : undefined;\n // if (!definitionKey) {\n // // Try to get from status property widget options\n // const statusProperty = entityDefinition.properties?.find((p: any) => p.name === statusField);\n // const widgetOptions = statusProperty?.schema?.interface?.options;\n // if (widgetOptions?.['definitionKey']) {\n // definitionKey = widgetOptions['definitionKey'];\n // }\n // }\n // if (!definitionKey) {\n // return null;\n // }\n // // Get current status value from entity context\n // const entity = this.vm.context();\n // const statusValue = entity?.[statusField];\n // if (!statusValue) {\n // return null;\n // }\n // return {\n // definitionKey,\n // value: typeof statusValue === 'string' ? statusValue : statusValue?.name ?? statusValue,\n // dataPath: statusField,\n // readonly: this.vm.currentPage()?.isReadonly ?? false,\n // };\n // } catch (error) {\n // console.warn('Failed to get page status:', error);\n // return null;\n // }\n // }\n /**\n * Get entity data for status chip component\n */\n getEntityData() {\n return this.vm.context() ?? null;\n }\n async onBackButtonClick() {\n // When back button is clicked in small layout, go back to page list\n if (!this.vm.showPages() && this.vm.adapter()?.pages?.length > 1) {\n this.vm.setCurrentPage(null);\n }\n else {\n this.vm.goToListPage();\n }\n }\n //#region ---- Command Execution ----\n async execute(command) {\n if (!this.vm.adapter()) {\n return;\n }\n const acceptCommand = this.vm.currentPage()?.settings?.commands?.accept?.command.name;\n const rejectCommand = this.vm.currentPage()?.settings?.commands?.reject?.command.name;\n if (command.name == acceptCommand) {\n await this.vm.save(command, this.form());\n this.recompute();\n return;\n }\n if (command.name == rejectCommand) {\n await this.vm.discard();\n this.recompute();\n return;\n }\n // Handle status update command\n if (command.name === 'update-status') {\n const transition = command.options?.['transition'];\n if (transition?.toStatus?.name) {\n const status = await this.getPageStatus();\n if (status?.dataPath) {\n // Update entity context with new status value\n const entity = this.vm.context();\n if (entity) {\n entity[status.dataPath] = transition.toStatus.name;\n this.vm.updateContext(entity);\n this.recompute();\n }\n }\n }\n return;\n }\n // Get all actions\n const [adapterPrimaryActions, adapterSecondaryActions, pagePrimaryActions, pageSecondaryActions] = await Promise.all([\n this.vm.primaryActions(),\n this.vm.secondaryActions(),\n this.vm.currentPagePrimaryActions(),\n this.vm.currentPageSecondaryActions(),\n ]);\n // Combine adapter actions (primary + secondary)\n const adapterActions = [...adapterPrimaryActions, ...adapterSecondaryActions];\n // Combine current page actions (primary + secondary)\n const pageActions = [...pagePrimaryActions, ...pageSecondaryActions];\n // Helper function to check if command exists in actions\n const commandExistsInActions = (actions, commandName) => {\n return actions.some((action) => action.command?.name === commandName);\n };\n // Check if command exists in adapter actions first\n if (commandExistsInActions(adapterActions, command.name)) {\n await this.vm.adapter()?.execute?.(command, this.vm.context());\n }\n // Check if command exists in current page actions\n else if (commandExistsInActions(pageActions, command.name)) {\n await this.vm\n .currentPage()\n ?.execute?.(command, this.vm.pageSelectedRows().length ? this.vm.pageSelectedRows() : this.vm.context());\n }\n }\n async handleKeyboardEvent(event) {\n if (event.ctrlKey) {\n switch (event.code) {\n case 'KeyS':\n event.preventDefault();\n event.stopPropagation();\n await this.execute({ name: this.vm.currentPage()?.settings?.commands?.accept?.command.name || 'save' });\n break;\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPLayoutDetailsViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.16\", type: AXPLayoutDetailsViewComponent, isStandalone: true, selector: \"axp-layout-details-view\", inputs: { adapter: { classPropertyName: \"adapter\", publicName: \"adapter\", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { \"document:keydown\": \"handleKeyboardEvent($event)\" } }, providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPLayoutDetailsViewComponent,\n },\n AXPLayoutDetailsViewViewModel,\n ], viewQueries: [{ propertyName: \"form\", first: true, predicate: [\"form\"], descendants: true, isSignal: true }, { propertyName: \"widgetContainer\", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if (vm.adapter()?.pages?.length! > 1 && vm.isLarge()) {\\n <axp-layout-start-side [axResizable]=\\\"true\\\">\\n <axp-layout-header>\\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\\n <axp-layout-description>{{ t(vm.description()) | async }}</axp-layout-description>\\n </axp-layout-header>\\n <axp-layout-content>\\n <ax-tabs class=\\\"axp-vertical-tabs\\\" [look]=\\\"'with-line-color'\\\" [location]=\\\"'end'\\\" [fitParent]=\\\"true\\\">\\n @for (item of vm.adapter()?.pages; track $index) {\\n <ax-tab-item\\n [text]=\\\"(formatService.format(item.label, 'string', vm.rootContext()) | translate | async)!\\\"\\n (onClick)=\\\"handleSelectPage(item)\\\"\\n [active]=\\\"vm.currentPage() == item\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </axp-layout-content>\\n </axp-layout-start-side>\\n }\\n <!-- Content Section -->\\n <axp-page-content class=\\\"ax-flex ax-flex-row ax-gap-4\\\">\\n @if (vm.showPages()) {\\n <axp-layout-list class=\\\"ax-w-full\\\">\\n @for (item of vm.adapter()?.pages; track $index) {\\n <axp-layout-list-item (click)=\\\"handleSelectPage(item)\\\">\\n <axp-layout-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\" class=\\\"ax-text-gray-500\\\"></ax-icon>\\n </axp-layout-prefix>\\n <axp-layout-content>\\n <a class=\\\"ax-font-semibold\\\">{{\\n formatService.format(item.label, 'string', vm.rootContext()) | translate | async\\n }}</a>\\n </axp-layout-content>\\n <axp-layout-suffix>\\n <ax-icon icon=\\\" far fa-chevron-right\\\" class=\\\"ax-text-gray-400\\\"></ax-icon>\\n </axp-layout-suffix>\\n </axp-layout-list-item>\\n }\\n </axp-layout-list>\\n } @else {\\n <ax-form class=\\\"ax-h-full ax-w-full\\\" #form>\\n <axp-widgets-container [context]=\\\"vm.context()\\\" (onContextChanged)=\\\"handleOnContextChanged($event)\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-w-full ax-gap-4 ax-h-full\\\">\\n @for (content of vm.currentPageContent(); track $index) {\\n <ng-container axp-widget-renderer [node]=\\\"content\\\" [mode]=\\\"content.mode ?? 'view'\\\"></ng-container>\\n }\\n @if (vm.currentPage()?.tabs?.length) {\\n <div class=\\\"axp-horizontal-tabs\\\">\\n <ax-tabs [location]=\\\"'bottom'\\\" [fitParent]=\\\"false\\\" look=\\\"classic\\\">\\n @for (tab of vm.currentPageTabs(); track $index) {\\n <ax-tab-item\\n (onClick)=\\\"vm.setCurrentTab(tab)\\\"\\n [text]=\\\"(tab.title | translate | async)!\\\"\\n [active]=\\\"vm.currentTab() == tab\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ tab.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n <div [class]=\\\"'content'\\\">\\n @for (renderedTab of vm.currentPageRenderedTabs(); track renderedTab.tabId) {\\n <div [class]=\\\"renderedTab.tabId === vm.currentTab()?.id ? '' : 'ax-hidden'\\\">\\n @for (content of vm.getRenderedTabContent(renderedTab.tabId); track $index) {\\n <ng-container axp-widget-renderer [node]=\\\"content\\\" [mode]=\\\"content.mode ?? 'view'\\\">\\n </ng-container>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n </axp-widgets-container>\\n </ax-form>\\n }\\n </axp-page-content>\\n\\n <!-- Footer Section -->\\n @if (hasFooter()) {\\n <axp-page-footer class=\\\"--animated\\\">\\n <axp-layout-suffix>\\n <!-- secondary footer actions -->\\n @if (hasVisibleFooterSecondaryActions()) {\\n <ax-button\\n [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [iconOnly]=\\\"deviceService.isSmall()\\\"\\n [text]=\\\"'@general:terms.interface.actions' | translate | async\\\"\\n [look]=\\\"deviceService.isSmall() ? 'blank' : 'solid'\\\"\\n [color]=\\\"'default'\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-ellipsis-vertical\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (action of footerSecondaryActions(); track $index) {\\n @if (action.visible != false) {\\n <ax-button-item\\n [text]=\\\"(t(action.title) | async)!\\\"\\n [color]=\\\"action.color\\\"\\n [disabled]=\\\"action.disabled || vm.isSaving()\\\"\\n (onClick)=\\\"execute(action.command!)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ action.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (action.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n\\n @if (hasVisibleFooterPrimaryActions()) {\\n @for (action of footerPrimaryActions(); track $index) {\\n @if (action.visible != false) {\\n <ax-button\\n [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [disabled]=\\\"action.disabled || vm.isSaving()\\\"\\n [text]=\\\"(t(action.title) | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"execute(action.command!)\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"{{ action.icon }}\\\"></i>\\n </ax-prefix>\\n @if (action?.items) {\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of action?.items; track $index) {\\n @if (sub.visible != false) {\\n <ax-button-item\\n [text]=\\\"(t(sub.title) | async)!\\\"\\n [color]=\\\"sub.color\\\"\\n [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"execute(sub.command!)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n }\\n </ax-button>\\n }\\n }\\n }\\n </axp-layout-suffix>\\n </axp-page-footer>\\n }\\n</axp-page-layout>\\n\", styles: [\"axp-layout-details-view .axp-vertical-tabs{--ax-comp-tabs-default-border-radius: 0}axp-layout-details-view .axp-vertical-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}axp-layout-details-view .axp-horizontal-tabs{display:flex;width:100%;flex-direction:column}axp-layout-details-view .axp-horizontal-tabs .content{margin-top:1rem;margin-bottom:1rem;display:block;width:100%}axp-layout-details-view axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}axp-layout-details-view axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-details-view axp-page-content ax-form form{height:100%}axp-layout-details-view axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: \n // Angular\n CommonModule }, { kind: \"ngmodule\", type: \n // ACoreX\n AXMenuModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i1.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i1.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i1.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\", \"closeParentOnClick\", \"lockOnLoading\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXButtonGroupModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i2.AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i3.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"ngmodule\", type: AXBreadcrumbsModule }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"ngmodule\", type: AXFileModule }, { kind: \"ngmodule\", type: AXDateTimeModule }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"component\", type: i5.AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: i5.AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"directive\", type: AXResizableDirective, selector: \"[axResizable]\", inputs: [\"axResizable\", \"minWidth\", \"maxWidth\", \"dblClickAction\", \"width\", \"defaultWidth\"], outputs: [\"axResizableChange\", \"minWidthChange\", \"maxWidthChange\", \"dblClickActionChange\", \"widthChange\", \"defaultWidthChange\", \"onResizingStarted\", \"onResizingEnded\", \"onResizingDblClick\"] }, { kind: \"component\", type: \n //\n AXPThemeLayoutListComponent, selector: \"axp-layout-list\" }, { kind: \"component\", type: AXPThemeLayoutListItemComponent, selector: \"axp-layout-list-item\" }, { kind: \"component\", type: AXPPageLayoutComponent, selector: \"axp-page-layout\" }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"ngmodule\", type: AXPWidgetCoreModule }, { kind: \"component\", type: i6.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i6.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\", \"onLoad\"], exportAs: [\"widgetRenderer\"] }, { kind: \"component\", type: AXPThemeLayoutStartSideComponent, selector: \"axp-layout-page-start-side, axp-layout-start-side\" }, { kind: \"component\", type: AXPThemeLayoutHeaderComponent, selector: \"axp-layout-header\" }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i7.AXFormComponent, selector: \"ax-form\", inputs: [\"disabled\", \"readonly\", \"labelMode\", \"look\", \"messageStyle\", \"updateOn\", \"inUserInteractionActive\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { kind: \"pipe\", type: i8.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.16\", ngImport: i0, type: AXPLayoutDetailsViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-layout-details-view', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n // Angular\n CommonModule,\n // ACoreX\n AXMenuModule,\n AXButtonModule,\n AXButtonGroupModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXTranslationModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXBreadcrumbsModule,\n AXBadgeModule,\n AXSearchBoxModule,\n AXFormatModule,\n AXFileModule,\n AXDateTimeModule,\n AXSearchBoxModule,\n AXTabsModule,\n AXResizableDirective,\n //\n AXPThemeLayoutListComponent,\n AXPThemeLayoutListItemComponent,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPWidgetCoreModule,\n AXPThemeLayoutStartSideComponent,\n AXPThemeLayoutHeaderComponent,\n AXFormModule,\n ], encapsulation: ViewEncapsulation.None, providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPLayoutDetailsViewComponent,\n },\n AXPLayoutDetailsViewViewModel,\n ], template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if (vm.adapter()?.pages?.length! > 1 && vm.isLarge()) {\\n <axp-layout-start-side [axResizable]=\\\"true\\\">\\n <axp-layout-header>\\n <axp-layout-title>{{ t(vm.title()) | async }}</axp-layout-title>\\n <axp-layout-description>{{ t(vm.description()) | async }}</axp-layout-description>\\n </axp-layout-header>\\n <axp-layout-content>\\n <ax-tabs class=\\\"axp-vertical-tabs\\\" [look]=\\\"'with-line-color'\\\" [location]=\\\"'end'\\\" [fitParent]=\\\"true\\\">\\n @for (item of vm.adapter()?.pages; track $index) {\\n <ax-tab-item\\n [text]=\\\"(formatService.format(item.label, 'string', vm.rootContext()) | translate | async)!\\\"\\n (onClick)=\\\"handleSelectPage(item)\\\"\\n [active]=\\\"vm.currentPage() == item\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </axp-layout-content>\\n </axp-layout-start-side>\\n }\\n <!-- Content Section -->\\n <axp-page-content class=\\\"ax-flex ax-flex-row ax-gap-4\\\">\\n @if (vm.showPages()) {\\n <axp-layout-list class=\\\"ax-w-full\\\">\\n @for (item of vm.adapter()?.pages; track $index) {\\n <axp-layout-list-item (click)=\\\"handleSelectPage(item)\\\">\\n <axp-layout-prefix>\\n <ax-icon icon=\\\"far ${{ item.icon }}\\\" class=\\\"ax-text-gray-500\\\"></ax-icon>\\n </axp-layout-prefix>\\n <axp-layout-content>\\n <a class=\\\"ax-font-semibold\\\">{{\\n formatService.format(item.label, 'string', vm.rootContext()) | translate | async\\n }}</a>\\n </axp-layout-content>\\n <axp-layout-suffix>\\n <ax-icon icon=\\\" far fa-chevron-right\\\" class=\\\"ax-text-gray-400\\\"></ax-icon>\\n </axp-layout-suffix>\\n </axp-layout-list-item>\\n }\\n </axp-layout-list>\\n } @else {\\n <ax-form class=\\\"ax-h-full ax-w-full\\\" #form>\\n <axp-widgets-container [context]=\\\"vm.context()\\\" (onContextChanged)=\\\"handleOnContextChanged($event)\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-w-full ax-gap-4 ax-h-full\\\">\\n @for (content of vm.currentPageContent(); track $index) {\\n <ng-container axp-widget-renderer [node]=\\\"content\\\" [mode]=\\\"content.mode ?? 'view'\\\"></ng-container>\\n }\\n @if (vm.currentPage()?.tabs?.length) {\\n <div class=\\\"axp-horizontal-tabs\\\">\\n <ax-tabs [location]=\\\"'bottom'\\\" [fitParent]=\\\"false\\\" look=\\\"classic\\\">\\n @for (tab of vm.currentPageTabs(); track $index) {\\n <ax-tab-item\\n (onClick)=\\\"vm.setCurrentTab(tab)\\\"\\n [text]=\\\"(tab.title | translate | async)!\\\"\\n [active]=\\\"vm.currentTab() == tab\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"far ${{ tab.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n <div [class]=\\\"'content'\\\">\\n @for (renderedTab of vm.currentPageRenderedTabs(); track renderedTab.tabId) {\\n <div [class]=\\\"renderedTab.tabId === vm.currentTab()?.id ? '' : 'ax-hidden'\\\">\\n @for (content of vm.getRenderedTabContent(renderedTab.tabId); track $index) {\\n <ng-container axp-widget-renderer [node]=\\\"content\\\" [mode]=\\\"content.mode ?? 'view'\\\">\\n </ng-container>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n </axp-widgets-container>\\n </ax-form>\\n }\\n </axp-page-content>\\n\\n <!-- Footer Section -->\\n @if (hasFooter()) {\\n <axp-page-footer class=\\\"--animated\\\">\\n <axp-layout-suffix>\\n <!-- secondary footer actions -->\\n @if (hasVisibleFooterSecondaryActions()) {\\n <ax-button\\n [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [iconOnly]=\\\"deviceService.isSmall()\\\"\\n [text]=\\\"'@general:terms.interface.actions' | translate | async\\\"\\n [look]=\\\"deviceService.isSmall() ? 'blank' : 'solid'\\\"\\n [color]=\\\"'default'\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"fa-solid fa-ellipsis-vertical\\\"></i>\\n </ax-prefix>\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (action of footerSecondaryActions(); track $index) {\\n @if (action.visible != false) {\\n <ax-button-item\\n [text]=\\\"(t(action.title) | async)!\\\"\\n [color]=\\\"action.color\\\"\\n [disabled]=\\\"action.disabled || vm.isSaving()\\\"\\n (onClick)=\\\"execute(action.command!)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ action.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (action.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n }\\n\\n @if (hasVisibleFooterPrimaryActions()) {\\n @for (action of footerPrimaryActions(); track $index) {\\n @if (action.visible != false) {\\n <ax-button\\n [class.ax-sm]=\\\"deviceService.isSmall()\\\"\\n [disabled]=\\\"action.disabled || vm.isSaving()\\\"\\n [text]=\\\"(t(action.title) | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"execute(action.command!)\\\"\\n >\\n <ax-prefix>\\n <i class=\\\"{{ action.icon }}\\\"></i>\\n </ax-prefix>\\n @if (action?.items) {\\n <ax-dropdown-panel #panel>\\n <ax-button-item-list>\\n @for (sub of action?.items; track $index) {\\n @if (sub.visible != false) {\\n <ax-button-item\\n [text]=\\\"(t(sub.title) | async)!\\\"\\n [color]=\\\"sub.color\\\"\\n [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"execute(sub.command!)\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-light {{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n }\\n </ax-button>\\n }\\n }\\n }\\n </axp-layout-suffix>\\n </axp-page-footer>\\n }\\n</axp-page-layout>\\n\", styles: [\"axp-layout-details-view .axp-vertical-tabs{--ax-comp-tabs-default-border-radius: 0}axp-layout-details-view .axp-vertical-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}axp-layout-details-view .axp-horizontal-tabs{display:flex;width:100%;flex-direction:column}axp-layout-details-view .axp-horizontal-tabs .content{margin-top:1rem;margin-bottom:1rem;display:block;width:100%}axp-layout-details-view axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}axp-layout-details-view axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-details-view axp-page-content ax-form form{height:100%}axp-layout-details-view axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}\\n\"] }]\n }], propDecorators: { adapter: [{ type: i0.Input, args: [{ isSignal: true, alias: \"adapter\", required: true }] }], form: [{ type: i0.ViewChild, args: ['form', { isSignal: true }] }], widgetContainer: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPWidgetContainerComponent), { isSignal: true }] }], handleKeyboardEvent: [{\n type: HostListener,\n args: ['document:keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlscy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9saWIvdmlld3MvZGV0YWlscy12aWV3L2RldGFpbHMtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC92aWV3cy9zcmMvbGliL3ZpZXdzL2RldGFpbHMtdmlldy9kZXRhaWxzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFHWixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsRUFBRTtBQUNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIs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LDREQUMzQiwrQkFBK0IsaUVBQy9CLHNCQUFzQiw0REFDdEIsNEJBQTRCLCtoQkFDNUIsbUJBQW1CLHlhQUNuQixnQ0FBZ0MsOEZBQ2hDLDZCQUE2Qiw2REFDN0IsWUFBWTs7NEZBV0gsNkJBQTZCO2tCQTdDekMsU0FBUzsrQkFHRSx5QkFBeUIsbUJBQ2xCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsVUFBVTt3QkFDVixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLEVBQUU7d0JBQ0YsMkJBQTJCO3dCQUMzQiwrQkFBK0I7d0JBQy9CLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1QixtQkFBbUI7d0JBQ25CLGdDQUFnQzt3QkFDaEMsNkJBQTZCO3dCQUM3QixZQUFZO3FCQUNiLGlCQUNjLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVywrQkFBK0I7eUJBQzNDO3dCQUNELDZCQUE2QjtxQkFDOUI7K0pBYzJDLE1BQU0sNkZBQ2lCLDJCQUEyQjtzQkE0VTdGLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdExpc3RlbmVyLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vXG5pbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYQnJlYWRjcnVtYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQnV0dG9uR3JvdXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWE1lbnVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWVudSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYRGF0ZVRpbWVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYRmlsZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7IEFYRm9ybWF0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbi8vXG5pbXBvcnQgeyBBWFJlc2l6YWJsZURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL3Jlc2l6YWJsZSc7XG5pbXBvcnQgeyBBWEZvcm1Db21wb25lbnQsIEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRTY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUEFjdGlvbk1lbnVJdGVtLFxuICBBWFBCYWNrQnV0dG9uLFxuICBBWFBCcmVhZGNydW1iSXRlbSxcbiAgQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlLFxuICBBWFBEZXZpY2VTZXJ2aWNlLFxuICBBWFBFeGVjdXRlQ29tbWFuZCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsXG4gIEFYUFRoZW1lTGF5b3V0SGVhZGVyQ29tcG9uZW50LFxuICBBWFBUaGVtZUxheW91dExpc3RDb21wb25lbnQsXG4gIEFYUFRoZW1lTGF5b3V0TGlzdEl0ZW1Db21wb25lbnQsXG4gIEFYUFRoZW1lTGF5b3V0U3RhcnRTaWRlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCxcbiAgQVhQV2lkZ2V0Q29yZUNvbnRleHRDaGFuZ2VFdmVudCxcbiAgQVhQV2lkZ2V0Q29yZU1vZHVsZSxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQRGF0YUxpc3RXaWRnZXRWaWV3Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0cyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBQYWdlTGF5b3V0QmFzZSwgQVhQUGFnZUxheW91dEJhc2VDb21wb25lbnQsIEFYUFBhZ2VMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9sYXlvdXRzJztcbmltcG9ydCB7XG4gIEFYUExheW91dERldGFpbHNWaWV3QWN0aW9uLFxuICBBWFBMYXlvdXREZXRhaWxzVmlld0FkYXB0ZXIsXG4gIEFYUExheW91dERldGFpbHNWaWV3UGFnZSxcbn0gZnJvbSAnLi9kZXRhaWxzLXZpZXcuYWRhcHRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXREZXRhaWxzVmlld1ZpZXdNb2RlbCB9IGZyb20gJy4vZGV0YWlscy12aWV3LnZpZXdtb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZGV0YWlscy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RldGFpbHMtdmlldy5jb21wb25lbnQuc2NzcycsXG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1kZXRhaWxzLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIC8vIEFuZ3VsYXJcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgLy8gQUNvcmVYXG4gICAgQVhNZW51TW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYQnV0dG9uR3JvdXBNb2R1bGUsXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYQnJlYWRjcnVtYnNNb2R1bGUsXG4gICAgQVhCYWRnZU1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWEZvcm1hdE1vZHVsZSxcbiAgICBBWEZpbGVNb2R1bGUsXG4gICAgQVhEYXRlVGltZU1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhSZXNpemFibGVEaXJlY3RpdmUsXG4gICAgLy9cbiAgICBBWFBUaGVtZUxheW91dExpc3RDb21wb25lbnQsXG4gICAgQVhQVGhlbWVMYXlvdXRMaXN0SXRlbUNvbXBvbmVudCxcbiAgICBBWFBQYWdlTGF5b3V0Q29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsXG4gICAgQVhQV2lkZ2V0Q29yZU1vZHVsZSxcbiAgICBBWFBUaGVtZUxheW91dFN0YXJ0U2lkZUNvbXBvbmVudCxcbiAgICBBWFBUaGVtZUxheW91dEhlYWRlckNvbXBvbmVudCxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUFBhZ2VMYXlvdXRCYXNlLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYUExheW91dERldGFpbHNWaWV3Q29tcG9uZW50LFxuICAgIH0sXG4gICAgQVhQTGF5b3V0RGV0YWlsc1ZpZXdWaWV3TW9kZWwsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExheW91dERldGFpbHNWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQUGFnZUxheW91dEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGFkYXB0ZXIgPSBpbnB1dC5yZXF1aXJlZDxBWFBMYXlvdXREZXRhaWxzVmlld0FkYXB0ZXI+KCk7XG4gIC8vXG4gIHByb3RlY3RlZCB2bSA9IGluamVjdChBWFBMYXlvdXREZXRhaWxzVmlld1ZpZXdNb2RlbCk7XG4gIHByb3RlY3RlZCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJvdGVjdGVkIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJvdGVjdGVkIGV2ZW50U2VydmljZSA9IGluamVjdChBWFBCcm9hZGNhc3RFdmVudFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgZGV2aWNlU2VydmljZSA9IGluamVjdChBWFBEZXZpY2VTZXJ2aWNlKTtcbiAgLy8gcHJvdGVjdGVkIGVudGl0eVJlZ2lzdHJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIG9uU2VsZWN0aW9uQ2hhbmdlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCBmb3JtID0gdmlld0NoaWxkPEFYRm9ybUNvbXBvbmVudD4oJ2Zvcm0nKTtcbiAgcHJvdGVjdGVkIHdpZGdldENvbnRhaW5lciA9IHZpZXdDaGlsZDxBWFBXaWRnZXRDb250YWluZXJDb21wb25lbnQ+KEFYUFdpZGdldENvbnRhaW5lckNvbXBvbmVudCk7XG5cbiAgcHJvdGVjdGVkIGZvb3RlclByaW1hcnlBY3Rpb25zID0gc2lnbmFsPEFYUEFjdGlvbk1lbnVJdGVtW10+KFtdKTtcbiAgcHJvdGVjdGVkIGZvb3RlclNlY29uZGFyeUFjdGlvbnMgPSBzaWduYWw8QVhQQWN0aW9uTWVudUl0ZW1bXT4oW10pO1xuXG4gIHByb3RlY3RlZCBmb290ZXJBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gWy4uLnRoaXMuZm9vdGVyUHJpbWFyeUFjdGlvbnMoKSwgLi4udGhpcy5mb290ZXJTZWNvbmRhcnlBY3Rpb25zKCldKTtcblxuICBwcm90ZWN0ZWQgaGFzVmlzaWJsZUZvb3RlclByaW1hcnlBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHByaW1hcnlGb290ZXJBY3Rpb25zID0gdGhpcy5mb290ZXJQcmltYXJ5QWN0aW9ucygpO1xuICAgIHJldHVybiBwcmltYXJ5Rm9vdGVyQWN0aW9ucy5zb21lKChhY3Rpb24pID0+IGFjdGlvbi52aXNpYmxlICE9IGZhbHNlKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGhhc1Zpc2libGVGb290ZXJTZWNvbmRhcnlBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlY29uZGFyeUZvb3RlckFjdGlvbnMgPSB0aGlzLmZvb3RlclNlY29uZGFyeUFjdGlvbnMoKTtcbiAgICByZXR1cm4gc2Vjb25kYXJ5Rm9vdGVyQWN0aW9ucy5zb21lKChhY3Rpb24pID0+IGFjdGlvbi52aXNpYmxlICE9IGZhbHNlKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGhhc0Zvb3RlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMuaGFzVmlzaWJsZUZvb3RlclByaW1hcnlBY3Rpb25zKCkgfHwgdGhpcy5oYXNWaXNpYmxlRm9vdGVyU2Vjb25kYXJ5QWN0aW9ucygpKSAmJlxuICAgICAgIXRoaXMudm0uY3VycmVudFBhZ2UoKT8uaXNSZWFkb25seVxuICAgICk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBBcHBlbmQgdGltZXN0YW1wIHF1ZXJ5IHBhcmFtIHRvIHRyaWdnZXIgcm91dGVyIHRvIHJlLXJ1biBndWFyZHMvcmVzb2x2ZXJzXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgcmVmcmVzaExheW91dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByb3V0ZXIgPSB0aGlzLnJvdXRlcjtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMucm91dGU7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBhd2FpdCByb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHJlbGF0aXZlVG86IHJvdXRlLFxuICAgICAgcXVlcnlQYXJhbXM6IHsgX3RzOiBub3cgfSxcbiAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5uZ09uSW5pdCgpO1xuICAgIC8vXG4gICAgYXdhaXQgdGhpcy52bS5sb2FkKHRoaXMuYWRhcHRlcigpKTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAvL1RPRE86IFVzZSB0aGUgY29uc3RhbnQgZnJvbSB0aGUgZW50aXR5IG1vZHVsZVxuICAgICAgLmxpc3RlbignZW50aXR5OnJlZnJlc2gtbGF5b3V0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICBpZiAoKGUuZGF0YSBhcyBhbnkpLm5hbWUgPT0gdGhpcy52bS5hZGFwdGVyKCk/Lm5hbWUpIHtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hMYXlvdXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgbGlzdFdpZGdldCA9IChhd2FpdCB0aGlzLndpZGdldENvbnRhaW5lcigpPy5maW5kKCdwYWdlLWxpc3RfdGFibGUnKSkgYXMgQVhQRGF0YUxpc3RXaWRnZXRWaWV3Q29tcG9uZW50O1xuICAgIGlmIChsaXN0V2lkZ2V0Py5hcGkgJiYgdHlwZW9mIGxpc3RXaWRnZXQuYXBpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBvblNlbGVjdGlvbkNoYW5nZSA9IGxpc3RXaWRnZXQuYXBpKClbJ29uU2VsZWN0aW9uQ2hhbmdlJ10gYXMgU3ViamVjdDxhbnk+O1xuICAgICAgaWYgKG9uU2VsZWN0aW9uQ2hhbmdlKSB7XG4gICAgICAgIHRoaXMub25TZWxlY3Rpb25DaGFuZ2VTdWJzY3JpcHRpb24gPSBvblNlbGVjdGlvbkNoYW5nZS5zdWJzY3JpYmUoKGU6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudm0udXBkYXRlUGFnZVNlbGVjdGVkUm93cyhlKTtcbiAgICAgICAgICB0aGlzLnJlY29tcHV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjRm9vdGVyQWN0aW9uc0VmZmVjdCA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgdGhpcy51cGRhdGVUcmlnZ2VyKCk7XG4gICAgY29uc3QgZm9vdGVyUHJpbWFyeUFjdGlvbnMgPSBhd2FpdCB0aGlzLmdldEZvb3RlclByaW1hcnlBY3Rpb25zKCk7XG4gICAgY29uc3QgZm9vdGVyU2Vjb25kYXJ5QWN0aW9ucyA9IGF3YWl0IHRoaXMuZ2V0Rm9vdGVyU2Vjb25kYXJ5QWN0aW9ucygpO1xuICAgIHRoaXMuZm9vdGVyUHJpbWFyeUFjdGlvbnMuc2V0KGZvb3RlclByaW1hcnlBY3Rpb25zKTtcbiAgICB0aGlzLmZvb3RlclNlY29uZGFyeUFjdGlvbnMuc2V0KGZvb3RlclNlY29uZGFyeUFjdGlvbnMpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlT25Db250ZXh0Q2hhbmdlZChlOiBBWFBXaWRnZXRDb3JlQ29udGV4dENoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy52bS51cGRhdGVDb250ZXh0KGUuZGF0YSk7XG4gICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVTZWxlY3RQYWdlKHBhZ2U6IEFYUExheW91dERldGFpbHNWaWV3UGFnZSkge1xuICAgIHRoaXMudm0uc2V0Q3VycmVudFBhZ2UocGFnZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0QWxsUHJpbWFyeUFjdGlvbnMoKTogUHJvbWlzZTxBWFBMYXlvdXREZXRhaWxzVmlld0FjdGlvbltdPiB7XG4gICAgaWYgKCF0aGlzLnZtLnNob3dQYWdlcygpKSB7XG4gICAgICBjb25zdCBbcHJpbWFyeUFjdGlvbnMsIHBhZ2VQcmltYXJ5QWN0aW9uc10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIHRoaXMudm0ucHJpbWFyeUFjdGlvbnMoKSxcbiAgICAgICAgdGhpcy52bS5jdXJyZW50UGFnZVByaW1hcnlBY3Rpb25zKCksXG4gICAgICBdKTtcbiAgICAgIHJldHVybiBbLi4ucHJpbWFyeUFjdGlvbnMsIC4uLnBhZ2VQcmltYXJ5QWN0aW9uc107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZ2V0UHJpbWFyeU1lbnVJdGVtcygpOiBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0QWxsUHJpbWFyeUFjdGlvbnMoKSkuZmlsdGVyKChhKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBhLnByaW9yaXR5ID09ICdwcmltYXJ5JyAmJlxuICAgICAgICAoKChhIGFzIGFueSkuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmIHRoaXMudm0uY3VycmVudFBhZ2VTZWxlY3RlZFJvd3MoKS5sZW5ndGgpIHx8XG4gICAgICAgICAgKChhIGFzIGFueSkuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy52bS5jdXJyZW50UGFnZVNlbGVjdGVkUm93cygpLmxlbmd0aCkpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldEZvb3RlclByaW1hcnlBY3Rpb25zKCk6IFByb21pc2U8QVhQQWN0aW9uTWVudUl0ZW1bXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRBbGxQcmltYXJ5QWN0aW9ucygpKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uem9uZSA9PSAnZm9vdGVyJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0QWxsU2Vjb25kYXJ5QWN0aW9ucygpOiBQcm9taXNlPEFYUExheW91dERldGFpbHNWaWV3QWN0aW9uW10+IHtcbiAgICBpZiAoIXRoaXMudm0uc2hvd1BhZ2VzKCkpIHtcbiAgICAgIGNvbnN0IFtzZWNvbmRhcnlBY3Rpb25zLCBwYWdlU2Vjb25kYXJ5QWN0aW9uc10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIHRoaXMudm0uc2Vjb25kYXJ5QWN0aW9ucygpLFxuICAgICAgICB0aGlzLnZtLmN1cnJlbnRQYWdlU2Vjb25kYXJ5QWN0aW9ucygpLFxuICAgICAgXSk7XG4gICAgICByZXR1cm4gWy4uLnNlY29uZGFyeUFjdGlvbnMsIC4uLnBhZ2VTZWNvbmRhcnlBY3Rpb25zXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBnZXRTZWNvbmRhcnlNZW51SXRlbXMoKTogUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldEFsbFNlY29uZGFyeUFjdGlvbnMoKSkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnpvbmUgPT0gJ2hlYWRlcicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldEZvb3RlclNlY29uZGFyeUFjdGlvbnMoKTogUHJvbWlzZTxBWFBBY3Rpb25NZW51SXRlbVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldEFsbFNlY29uZGFyeUFjdGlvbnMoKSkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnpvbmUgPT0gJ2Zvb3RlcicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGdldFBhZ2VCcmVhZGNydW1icygpOiBQcm9taXNlPEFYUEJyZWFkY3J1bWJJdGVtW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMudm0uYnJlYWRjcnVtYnMoKSkgPz8gW107XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZ2V0UGFnZVRpdGxlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKHRoaXMudm0uc2hvd1BhZ2VzKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnZtLnRpdGxlKCkgfHwgJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnZtLmN1cnJlbnRQYWdlVGl0bGUoKSB8fCAnJztcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRQYWdlRGVzY3JpcHRpb24oKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgaWYgKHRoaXMudm0uc2hvd1BhZ2VzKCkpIHtcbiAgICAgIHJldHVybiAoYXdhaXQgdGhpcy52bS5kZXNjcmlwdGlvbigpKSB8fCAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudm0uY3VycmVudFBhZ2VEZXNjcmlwdGlvbigpO1xuICAgIH1cbiAgfVxuICBvdmVycmlkZSBhc3luYyBnZXRCYWNrQnV0dG9uKCk6IFByb21pc2U8QVhQQmFja0J1dHRvbiB8IG51bGw+IHtcbiAgICBpZiAodGhpcy52bS5hZGFwdGVyKCk/LnBhZ2VzPy5sZW5ndGghID4gMSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6IHRoaXMudm0uYmFja0J1dHRvblRpdGxlKCkgPz8gJycsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogdGhpcy52bS5hZGFwdGVyKCk/LmxhYmVsID8/ICcnLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBvdmVycmlkZSBhc3luYyBnZXRQYWdlQmFkZ2UoKTogUHJvbWlzZTxBWFBCYWRnZSB8IG51bGw+IHtcbiAgLy8gICBpZiAodGhpcy52bS5pc0RpcnR5KCkpIHtcbiAgLy8gICAgIHJldHVybiB7XG4gIC8vICAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOnRlcm1zLmludGVyZmFjZS5zYXZlLXN0YXR1cy5ub3Qtc2F2ZWQudGl0bGUnKSxcbiAgLy8gICAgICAgY29sb3I6ICd3YXJuaW5nJyxcbiAgLy8gICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVBc3luYyhcbiAgLy8gICAgICAgICAnQGdlbmVyYWw6dGVybXMuaW50ZXJmYWNlLnNhdmUtc3RhdHVzLm5vdC1zYXZlZC5kZXNjcmlwdGlvbicsXG4gIC8vICAgICAgICksXG4gIC8vICAgICB9O1xuICAvLyAgIH1cbiAgLy8gICByZXR1cm4gbnVsbDtcbiAgLy8gfVxuXG4gIC8vIG92ZXJyaWRlIGFzeW5jIGdldFBhZ2VTdGF0dXMoKTogUHJvbWlzZTxBWFBQYWdlU3RhdHVzIHwgbnVsbD4ge1xuICAvLyAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLnZtLmFkYXB0ZXIoKTtcbiAgLy8gICBpZiAoIWFkYXB0ZXI/Lm5hbWUpIHtcbiAgLy8gICAgIHJldHVybiBudWxsO1xuICAvLyAgIH1cblxuICAvLyAgIC8vIFBhcnNlIGVudGl0eSBuYW1lIChmb3JtYXQ6IFwiTW9kdWxlTmFtZS5FbnRpdHlOYW1lXCIpXG4gIC8vICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gYWRhcHRlci5uYW1lLnNwbGl0KCcuJyk7XG4gIC8vICAgaWYgKCFtb2R1bGVOYW1lIHx8ICFlbnRpdHlOYW1lKSB7XG4gIC8vICAgICByZXR1cm4gbnVsbDtcbiAgLy8gICB9XG5cbiAgLy8gICB0cnkge1xuICAvLyAgICAgLy8gR2V0IGVudGl0eSBkZWZpbml0aW9uXG4gIC8vICAgICBjb25zdCBlbnRpdHlEZWZpbml0aW9uID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAvLyAgICAgaWYgKCFlbnRpdHlEZWZpbml0aW9uKSB7XG4gIC8vICAgICAgIHJldHVybiBudWxsO1xuICAvLyAgICAgfVxuXG4gIC8vICAgICAvLyBGaW5kIHN0YXR1cyBwbHVnaW5cbiAgLy8gICAgIGNvbnN0IHN0YXR1c1BsdWdpbiA9IGVudGl0eURlZmluaXRpb24ucGx1Z2lucz8uZmluZCgocDogYW55KSA9PiBwLm5hbWUgPT09ICdzdGF0dXMnKTtcbiAgLy8gICAgIGlmICghc3RhdHVzUGx1Z2luPy5vcHRpb25zKSB7XG4gIC8vICAgICAgIHJldHVybiBudWxsO1xuICAvLyAgICAgfVxuXG4gIC8vICAgICBjb25zdCBzdGF0dXNPcHRpb25zID0gc3RhdHVzUGx1Z2luLm9wdGlvbnMgYXMgYW55O1xuICAvLyAgICAgY29uc3Qgc3RhdHVzRmllbGQgPSBzdGF0dXNPcHRpb25zLmZpZWxkID8/ICdzdGF0dXNJZCc7XG4gIC8vICAgICBjb25zdCBzdGF0dXNEZWZpbml0aW9uS2V5ID0gc3RhdHVzT3B0aW9ucy5kZWZpbml0aW9uO1xuXG4gIC8vICAgICAvLyBHZXQgc3RhdHVzIGRlZmluaXRpb24ga2V5IGZyb20gcHJvcGVydHkgd2lkZ2V0IG9wdGlvbnMgaWYgbm90IGluIHBsdWdpbiBvcHRpb25zXG4gIC8vICAgICBsZXQgZGVmaW5pdGlvbktleTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdHlwZW9mIHN0YXR1c0RlZmluaXRpb25LZXkgPT09ICdzdHJpbmcnID8gc3RhdHVzRGVmaW5pdGlvbktleSA6IHVuZGVmaW5lZDtcblxuICAvLyAgICAgaWYgKCFkZWZpbml0aW9uS2V5KSB7XG4gIC8vICAgICAgIC8vIFRyeSB0byBnZXQgZnJvbSBzdGF0dXMgcHJvcGVydHkgd2lkZ2V0IG9wdGlvbnNcbiAgLy8gICAgICAgY29uc3Qgc3RhdHVzUHJvcGVydHkgPSBlbnRpdHlEZWZpbml0aW9uLnByb3BlcnRpZXM/LmZpbmQoKHA6IGFueSkgPT4gcC5uYW1lID09PSBzdGF0dXNGaWVsZCk7XG4gIC8vICAgICAgIGNvbnN0IHdpZGdldE9wdGlvbnMgPSBzdGF0dXNQcm9wZXJ0eT8uc2NoZW1hPy5pbnRlcmZhY2U/Lm9wdGlvbnM7XG4gIC8vICAgICAgIGlmICh3aWRnZXRPcHRpb25zPy5bJ2RlZmluaXRpb25LZXknXSkge1xuICAvLyAgICAgICAgIGRlZmluaXRpb25LZXkgPSB3aWRnZXRPcHRpb25zWydkZWZpbml0aW9uS2V5J107XG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH1cblxuICAvLyAgICAgaWYgKCFkZWZpbml0aW9uS2V5KSB7XG4gIC8vICAgICAgIHJldHVybiBudWxsO1xuICAvLyAgICAgfVxuXG4gIC8vICAgICAvLyBHZXQgY3VycmVudCBzdGF0dXMgdmFsdWUgZnJvbSBlbnRpdHkgY29udGV4dFxuICAvLyAgICAgY29uc3QgZW50aXR5ID0gdGhpcy52bS5jb250ZXh0KCk7XG4gIC8vICAgICBjb25zdCBzdGF0dXNWYWx1ZSA9IGVudGl0eT8uW3N0YXR1c0ZpZWxkXTtcbiAgLy8gICAgIGlmICghc3RhdHVzVmFsdWUpIHtcbiAgLy8gICAgICAgcmV0dXJuIG51bGw7XG4gIC8vICAgICB9XG5cbiAgLy8gICAgIHJldHVybiB7XG4gIC8vICAgICAgIGRlZmluaXRpb25LZXksXG4gIC8vICAgICAgIHZhbHVlOiB0eXBlb2Ygc3RhdHVzVmFsdWUgPT09ICdzdHJpbmcnID8gc3RhdHVzVmFsdWUgOiBzdGF0dXNWYWx1ZT8ubmFtZSA/PyBzdGF0dXNWYWx1ZSxcbiAgLy8gICAgICAgZGF0YVBhdGg6IHN0YXR1c0ZpZWxkLFxuICAvLyAgICAgICByZWFkb25seTogdGhpcy52bS5jdXJyZW50UGFnZSgpPy5pc1JlYWRvbmx5ID8/IGZhbHNlLFxuICAvLyAgICAgfTtcbiAgLy8gICB9IGNhdGNoIChlcnJvcikge1xuICAvLyAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gZ2V0IHBhZ2Ugc3RhdHVzOicsIGVycm9yKTtcbiAgLy8gICAgIHJldHVybiBudWxsO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIC8qKlxuICAgKiBHZXQgZW50aXR5IGRhdGEgZm9yIHN0YXR1cyBjaGlwIGNvbXBvbmVudFxuICAgKi9cbiAgZ2V0RW50aXR5RGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudm0uY29udGV4dCgpID8/IG51bGw7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBvbkJhY2tCdXR0b25DbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBXaGVuIGJhY2sgYnV0dG9uIGlzIGNsaWNrZWQgaW4gc21hbGwgbGF5b3V0LCBnbyBiYWNrIHRvIHBhZ2UgbGlzdFxuICAgIGlmICghdGhpcy52bS5zaG93UGFnZXMoKSAmJiB0aGlzLnZtLmFkYXB0ZXIoKT8ucGFnZXM/Lmxlbmd0aCEgPiAxKSB7XG4gICAgICB0aGlzLnZtLnNldEN1cnJlbnRQYWdlKG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZtLmdvVG9MaXN0UGFnZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQ29tbWFuZCBFeGVjdXRpb24gICAtLS0tXG5cbiAgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy52bS5hZGFwdGVyKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NlcHRDb21tYW5kID0gdGhpcy52bS5jdXJyZW50UGFnZSgpPy5zZXR0aW5ncz8uY29tbWFuZHM/LmFjY2VwdD8uY29tbWFuZC5uYW1lO1xuICAgIGNvbnN0IHJlamVjdENvbW1hbmQgPSB0aGlzLnZtLmN1cnJlbnRQYWdlKCk/LnNldHRpbmdzPy5jb21tYW5kcz8ucmVqZWN0Py5jb21tYW5kLm5hbWU7XG5cbiAgICBpZiAoY29tbWFuZC5uYW1lID09IGFjY2VwdENvbW1hbmQpIHtcbiAgICAgIGF3YWl0IHRoaXMudm0uc2F2ZShjb21tYW5kLCB0aGlzLmZvcm0oKSEpO1xuICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZC5uYW1lID09IHJlamVjdENvbW1hbmQpIHtcbiAgICAgIGF3YWl0IHRoaXMudm0uZGlzY2FyZCgpO1xuICAgICAgdGhpcy5yZWNvbXB1dGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgc3RhdHVzIHVwZGF0ZSBjb21tYW5kXG4gICAgaWYgKGNvbW1hbmQubmFtZSA9PT0gJ3VwZGF0ZS1zdGF0dXMnKSB7XG4gICAgICBjb25zdCB0cmFuc2l0aW9uID0gY29tbWFuZC5vcHRpb25zPy5bJ3RyYW5zaXRpb24nXTtcbiAgICAgIGlmICh0cmFuc2l0aW9uPy50b1N0YXR1cz8ubmFtZSkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBhd2FpdCB0aGlzLmdldFBhZ2VTdGF0dXMoKTtcbiAgICAgICAgaWYgKHN0YXR1cz8uZGF0YVBhdGgpIHtcbiAgICAgICAgICAvLyBVcGRhdGUgZW50aXR5IGNvbnRleHQgd2l0aCBuZXcgc3RhdHVzIHZhbHVlXG4gICAgICAgICAgY29uc3QgZW50aXR5ID0gdGhpcy52bS5jb250ZXh0KCk7XG4gICAgICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICAgICAgZW50aXR5W3N0YXR1cy5kYXRhUGF0aF0gPSB0cmFuc2l0aW9uLnRvU3RhdHVzLm5hbWU7XG4gICAgICAgICAgICB0aGlzLnZtLnVwZGF0ZUNvbnRleHQoZW50aXR5KTtcbiAgICAgICAgICAgIHRoaXMucmVjb21wdXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gR2V0IGFsbCBhY3Rpb25zXG4gICAgY29uc3QgW2FkYXB0ZXJQcmltYXJ5QWN0aW9ucywgYWRhcHRlclNlY29uZGFyeUFjdGlvbnMsIHBhZ2VQcmltYXJ5QWN0aW9ucywgcGFnZVNlY29uZGFyeUFjdGlvbnNdID1cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgdGhpcy52bS5wcmltYXJ5QWN0aW9ucygpLFxuICAgICAgICB0aGlzLnZtLnNlY29uZGFyeUFjdGlvbnMoKSxcbiAgICAgICAgdGhpcy52bS5jdXJyZW50UGFnZVByaW1hcnlBY3Rpb25zKCksXG4gICAgICAgIHRoaXMudm0uY3VycmVudFBhZ2VTZWNvbmRhcnlBY3Rpb25zKCksXG4gICAgICBdKTtcblxuICAgIC8vIENvbWJpbmUgYWRhcHRlciBhY3Rpb25zIChwcmltYXJ5ICsgc2Vjb25kYXJ5KVxuICAgIGNvbnN0IGFkYXB0ZXJBY3Rpb25zID0gWy4uLmFkYXB0ZXJQcmltYXJ5QWN0aW9ucywgLi4uYWRhcHRlclNlY29uZGFyeUFjdGlvbnNdO1xuXG4gICAgLy8gQ29tYmluZSBjdXJyZW50IHBhZ2UgYWN0aW9ucyAocHJpbWFyeSArIHNlY29uZGFyeSlcbiAgICBjb25zdCBwYWdlQWN0aW9ucyA9IFsuLi5wYWdlUHJpbWFyeUFjdGlvbnMsIC4uLnBhZ2VTZWNvbmRhcnlBY3Rpb25zXTtcblxuICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjaGVjayBpZiBjb21tYW5kIGV4aXN0cyBpbiBhY3Rpb25zXG4gICAgY29uc3QgY29tbWFuZEV4aXN0c0luQWN0aW9ucyA9IChhY3Rpb25zOiBhbnlbXSwgY29tbWFuZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIGFjdGlvbnMuc29tZSgoYWN0aW9uKSA9PiBhY3Rpb24uY29tbWFuZD8ubmFtZSA9PT0gY29tbWFuZE5hbWUpO1xuICAgIH07XG5cbiAgICAvLyBDaGVjayBpZiBjb21tYW5kIGV4aXN0cyBpbiBhZGFwdGVyIGFjdGlvbnMgZmlyc3RcbiAgICBpZiAoY29tbWFuZEV4aXN0c0luQWN0aW9ucyhhZGFwdGVyQWN0aW9ucywgY29tbWFuZC5uYW1lKSkge1xuICAgICAgYXdhaXQgdGhpcy52bS5hZGFwdGVyKCk/LmV4ZWN1dGU/Lihjb21tYW5kLCB0aGlzLnZtLmNvbnRleHQoKSk7XG4gICAgfVxuICAgIC8vIENoZWNrIGlmIGNvbW1hbmQgZXhpc3RzIGluIGN1cnJlbnQgcGFnZSBhY3Rpb25zXG4gICAgZWxzZSBpZiAoY29tbWFuZEV4aXN0c0luQWN0aW9ucyhwYWdlQWN0aW9ucywgY29tbWFuZC5uYW1lKSkge1xuICAgICAgYXdhaXQgdGhpcy52bVxuICAgICAgICAuY3VycmVudFBhZ2UoKVxuICAgICAgICA/LmV4ZWN1dGU/Lihjb21tYW5kLCB0aGlzLnZtLnBhZ2VTZWxlY3RlZFJvd3MoKS5sZW5ndGggPyB0aGlzLnZtLnBhZ2VTZWxlY3RlZFJvd3MoKSA6IHRoaXMudm0uY29udGV4dCgpKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgIGNhc2UgJ0tleVMnOlxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5leGVjdXRlKHsgbmFtZTogdGhpcy52bS5jdXJyZW50UGFnZSgpPy5zZXR0aW5ncz8uY29tbWFuZHM/LmFjY2VwdD8uY29tbWFuZC5uYW1lIHx8ICdzYXZlJyB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsIjxheHAtcGFnZS1sYXlvdXQgKnRyYW5zbGF0ZT1cImxldCB0XCI+XG4gIEBpZiAodm0uYWRhcHRlcigpPy5wYWdlcz8ubGVuZ3RoISA+IDEgJiYgdm0uaXNMYXJnZSgpKSB7XG4gICAgPGF4cC1sYXlvdXQtc3RhcnQtc2lkZSBbYXhSZXNpemFibGVdPVwidHJ1ZVwiPlxuICAgICAgPGF4cC1sYXlvdXQtaGVhZGVyPlxuICAgICAgICA8YXhwLWxheW91dC10aXRsZT57eyB0KHZtLnRpdGxlKCkpIHwgYXN5bmMgfX08L2F4cC1sYXlvdXQtdGl0bGU+XG4gICAgICAgIDxheHAtbGF5b3V0LWRlc2NyaXB0aW9uPnt7IHQodm0uZGVzY3JpcHRpb24oKSkgfCBhc3luYyB9fTwvYXhwLWxheW91dC1kZXNjcmlwdGlvbj5cbiAgICAgIDwvYXhwLWxheW91dC1oZWFkZXI+XG4gICAgICA8YXhwLWxheW91dC1jb250ZW50PlxuICAgICAgICA8YXgtdGFicyBjbGFzcz1cImF4cC12ZXJ0aWNhbC10YWJzXCIgW2xvb2tdPVwiJ3dpdGgtbGluZS1jb2xvcidcIiBbbG9jYXRpb25dPVwiJ2VuZCdcIiBbZml0UGFyZW50XT1cInRydWVcIj5cbiAgICAgICAgICBAZm9yIChpdGVtIG9mIHZtLmFkYXB0ZXIoKT8ucGFnZXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgICAgICAgIFt0ZXh0XT1cIihmb3JtYXRTZXJ2aWNlLmZvcm1hdChpdGVtLmxhYmVsLCAnc3RyaW5nJywgdm0ucm9vdENvbnRleHQoKSkgfCB0cmFuc2xhdGUgfCBhc3luYykhXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2VsZWN0UGFnZShpdGVtKVwiXG4gICAgICAgICAgICAgIFthY3RpdmVdPVwidm0uY3VycmVudFBhZ2UoKSA9PSBpdGVtXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmFyICR7eyBpdGVtLmljb24gfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgPC9heC10YWItaXRlbT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtdGFicz5cbiAgICAgIDwvYXhwLWxheW91dC1jb250ZW50PlxuICAgIDwvYXhwLWxheW91dC1zdGFydC1zaWRlPlxuICB9XG4gIDwhLS0gQ29udGVudCBTZWN0aW9uIC0tPlxuICA8YXhwLXBhZ2UtY29udGVudCBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1yb3cgYXgtZ2FwLTRcIj5cbiAgICBAaWYgKHZtLnNob3dQYWdlcygpKSB7XG4gICAgICA8YXhwLWxheW91dC1saXN0IGNsYXNzPVwiYXgtdy1mdWxsXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2Ygdm0uYWRhcHRlcigpPy5wYWdlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgPGF4cC1sYXlvdXQtbGlzdC1pdGVtIChjbGljayk9XCJoYW5kbGVTZWxlY3RQYWdlKGl0ZW0pXCI+XG4gICAgICAgICAgICA8YXhwLWxheW91dC1wcmVmaXg+XG4gICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYXIgJHt7IGl0ZW0uaWNvbiB9fVwiIGNsYXNzPVwiYXgtdGV4dC1ncmF5LTUwMFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIDwvYXhwLWxheW91dC1wcmVmaXg+XG4gICAgICAgICAgICA8YXhwLWxheW91dC1jb250ZW50PlxuICAgICAgICAgICAgICA8YSBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57e1xuICAgICAgICAgICAgICAgIGZvcm1hdFNlcnZpY2UuZm9ybWF0KGl0ZW0ubGFiZWwsICdzdHJpbmcnLCB2bS5yb290Q29udGV4dCgpKSB8IHRyYW5zbGF0ZSB8IGFzeW5jXG4gICAgICAgICAgICAgIH19PC9hPlxuICAgICAgICAgICAgPC9heHAtbGF5b3V0LWNvbnRlbnQ+XG4gICAgICAgICAgICA8YXhwLWxheW91dC1zdWZmaXg+XG4gICAgICAgICAgICAgIDxheC1pY29uIGljb249XCIgZmFyIGZhLWNoZXZyb24tcmlnaHRcIiBjbGFzcz1cImF4LXRleHQtZ3JheS00MDBcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4cC1sYXlvdXQtc3VmZml4PlxuICAgICAgICAgIDwvYXhwLWxheW91dC1saXN0LWl0ZW0+XG4gICAgICAgIH1cbiAgICAgIDwvYXhwLWxheW91dC1saXN0PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGF4LWZvcm0gY2xhc3M9XCJheC1oLWZ1bGwgYXgtdy1mdWxsXCIgI2Zvcm0+XG4gICAgICAgIDxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwidm0uY29udGV4dCgpXCIgKG9uQ29udGV4dENoYW5nZWQpPVwiaGFuZGxlT25Db250ZXh0Q2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtdy1mdWxsIGF4LWdhcC00IGF4LWgtZnVsbFwiPlxuICAgICAgICAgICAgQGZvciAoY29udGVudCBvZiB2bS5jdXJyZW50UGFnZUNvbnRlbnQoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJjb250ZW50XCIgW21vZGVdPVwiY29udGVudC5tb2RlID8/ICd2aWV3J1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICh2bS5jdXJyZW50UGFnZSgpPy50YWJzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4cC1ob3Jpem9udGFsLXRhYnNcIj5cbiAgICAgICAgICAgICAgICA8YXgtdGFicyBbbG9jYXRpb25dPVwiJ2JvdHRvbSdcIiBbZml0UGFyZW50XT1cImZhbHNlXCIgbG9vaz1cImNsYXNzaWNcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKHRhYiBvZiB2bS5jdXJyZW50UGFnZVRhYnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxheC10YWItaXRlbVxuICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInZtLnNldEN1cnJlbnRUYWIodGFiKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiKHRhYi50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVdPVwidm0uY3VycmVudFRhYigpID09IHRhYlwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhciAke3sgdGFiLmljb24gfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtdGFiLWl0ZW0+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9heC10YWJzPlxuICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidjb250ZW50J1wiPlxuICAgICAgICAgICAgICAgICAgQGZvciAocmVuZGVyZWRUYWIgb2Ygdm0uY3VycmVudFBhZ2VSZW5kZXJlZFRhYnMoKTsgdHJhY2sgcmVuZGVyZWRUYWIudGFiSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbY2xhc3NdPVwicmVuZGVyZWRUYWIudGFiSWQgPT09IHZtLmN1cnJlbnRUYWIoKT8uaWQgPyAnJyA6ICdheC1oaWRkZW4nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoY29udGVudCBvZiB2bS5nZXRSZW5kZXJlZFRhYkNvbnRlbnQocmVuZGVyZWRUYWIudGFiSWQpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJjb250ZW50XCIgW21vZGVdPVwiY29udGVudC5tb2RlID8/ICd2aWV3J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICAgICAgPC9heC1mb3JtPlxuICAgIH1cbiAgPC9heHAtcGFnZS1jb250ZW50PlxuXG4gIDwhLS0gRm9vdGVyIFNlY3Rpb24gLS0+XG4gIEBpZiAoaGFzRm9vdGVyKCkpIHtcbiAgICA8YXhwLXBhZ2UtZm9vdGVyIGNsYXNzPVwiLS1hbmltYXRlZFwiPlxuICAgICAgPGF4cC1sYXlvdXQtc3VmZml4PlxuICAgICAgICA8IS0tIHNlY29uZGFyeSBmb290ZXIgYWN0aW9ucyAtLT5cbiAgICAgICAgQGlmIChoYXNWaXNpYmxlRm9vdGVyU2Vjb25kYXJ5QWN0aW9ucygpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgW2NsYXNzLmF4LXNtXT1cImRldmljZVNlcnZpY2UuaXNTbWFsbCgpXCJcbiAgICAgICAgICAgIFtpY29uT25seV09XCJkZXZpY2VTZXJ2aWNlLmlzU21hbGwoKVwiXG4gICAgICAgICAgICBbdGV4dF09XCInQGdlbmVyYWw6dGVybXMuaW50ZXJmYWNlLmFjdGlvbnMnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgW2xvb2tdPVwiZGV2aWNlU2VydmljZS5pc1NtYWxsKCkgPyAnYmxhbmsnIDogJ3NvbGlkJ1wiXG4gICAgICAgICAgICBbY29sb3JdPVwiJ2RlZmF1bHQnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWVsbGlwc2lzLXZlcnRpY2FsXCI+PC9pPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWwgI3BhbmVsPlxuICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgZm9vdGVyU2Vjb25kYXJ5QWN0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uLnZpc2libGUgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiKHQoYWN0aW9uLnRpdGxlKSB8IGFzeW5jKSFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWQgfHwgdm0uaXNTYXZpbmcoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZXhlY3V0ZShhY3Rpb24uY29tbWFuZCEpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQge3sgYWN0aW9uLmljb24gfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uLmJyZWFrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChoYXNWaXNpYmxlRm9vdGVyUHJpbWFyeUFjdGlvbnMoKSkge1xuICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBmb290ZXJQcmltYXJ5QWN0aW9ucygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBpZiAoYWN0aW9uLnZpc2libGUgIT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgICAgIFtjbGFzcy5heC1zbV09XCJkZXZpY2VTZXJ2aWNlLmlzU21hbGwoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCB8fCB2bS5pc1NhdmluZygpXCJcbiAgICAgICAgICAgICAgICBbdGV4dF09XCIodChhY3Rpb24udGl0bGUpIHwgYXN5bmMpIVwiXG4gICAgICAgICAgICAgICAgW2xvb2tdPVwiJ3NvbGlkJ1wiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvclwiXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZXhlY3V0ZShhY3Rpb24uY29tbWFuZCEpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uPy5pdGVtcykge1xuICAgICAgICAgICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsICNwYW5lbD5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoc3ViIG9mIGFjdGlvbj8uaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzdWIudmlzaWJsZSAhPSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCIodChzdWIudGl0bGUpIHwgYXN5bmMpIVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInN1Yi5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInN1Yi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZXhlY3V0ZShzdWIuY29tbWFuZCEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQge3sgc3ViLmljb24gfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc3ViLmJyZWFrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgICAgICA8L2F4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2F4cC1sYXlvdXQtc3VmZml4PlxuICAgIDwvYXhwLXBhZ2UtZm9vdGVyPlxuICB9XG48L2F4cC1wYWdlLWxheW91dD5cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC12aWV3cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzL3NyYy9hY29yZXgtcGxhdGZvcm0tbGF5b3V0LXZpZXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i7","i1","i2","i3","i4","i5","i6","i8"],"mappings":"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"}