@acorex/modules 20.8.5 → 20.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/index.d.ts +14 -14
- package/fesm2022/{acorex-modules-common-search-popup.component-Cdpkw5Vj.mjs → acorex-modules-common-search-popup.component-WrMDy-u_.mjs} +8 -8
- package/fesm2022/{acorex-modules-common-search-popup.component-Cdpkw5Vj.mjs.map → acorex-modules-common-search-popup.component-WrMDy-u_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-J28i59f7.mjs → acorex-modules-common-timeline-version-history-popup.component-DoTh8TG9.mjs} +3 -3
- package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-J28i59f7.mjs.map → acorex-modules-common-timeline-version-history-popup.component-DoTh8TG9.mjs.map} +1 -1
- package/fesm2022/acorex-modules-common.mjs +885 -885
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-De7MKk_P.mjs → acorex-modules-report-management-report-runner-root-page.component-B0-p2yII.mjs} +4 -6
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-B0-p2yII.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management.mjs +36 -19
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/package.json +6 -6
- package/report-management/index.d.ts +8 -0
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-De7MKk_P.mjs.map +0 -1
|
@@ -5,7 +5,6 @@ import * as i3 from '@acorex/components/decorators';
|
|
|
5
5
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
6
6
|
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
7
7
|
import { AXLoadingModule } from '@acorex/components/loading';
|
|
8
|
-
import * as i3$1 from '@acorex/components/search-box';
|
|
9
8
|
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
10
9
|
import { AXTabsModule } from '@acorex/components/tabs';
|
|
11
10
|
import * as i1$1 from '@acorex/core/translation';
|
|
@@ -19,7 +18,6 @@ import * as i1 from '@angular/common';
|
|
|
19
18
|
import { CommonModule } from '@angular/common';
|
|
20
19
|
import * as i0 from '@angular/core';
|
|
21
20
|
import { computed, inject, output, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
22
|
-
import * as i2$1 from '@angular/forms';
|
|
23
21
|
import { FormsModule } from '@angular/forms';
|
|
24
22
|
import { ActivatedRoute, Router, NavigationEnd, RouterModule } from '@angular/router';
|
|
25
23
|
import { merge, filter, startWith, firstValueFrom } from 'rxjs';
|
|
@@ -451,9 +449,9 @@ class AXMReportRunnerRootPageComponent extends AXPPageLayoutBaseComponent {
|
|
|
451
449
|
provide: AXPPageLayoutBase,
|
|
452
450
|
useExisting: AXMReportRunnerRootPageComponent,
|
|
453
451
|
},
|
|
454
|
-
], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n @if (vm.showSideMenu()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>{{ t('@report-management:report-runner.terms.menu-title') | async }}</axp-layout-title>\n <axp-layout-toolbar>\n <ax-search-box\n [delayTime]=\"300\"\n [ngModel]=\"vm.searchExpression()\"\n (onValueChanged)=\"vm.search($event.value)\"\n [placeholder]=\"t('@report-management:report-runner.terms.search-placeholder') | async\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box
|
|
452
|
+
], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n @if (vm.showSideMenu()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>{{ t('@report-management:report-runner.terms.menu-title') | async }}</axp-layout-title>\n <axp-layout-toolbar>\n <!-- <ax-search-box\n [delayTime]=\"300\"\n [ngModel]=\"vm.searchExpression()\"\n (onValueChanged)=\"vm.search($event.value)\"\n [placeholder]=\"t('@report-management:report-runner.terms.search-placeholder') | async\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box> -->\n </axp-layout-toolbar>\n </axp-layout-header>\n <axp-layout-content>\n <axp-report-categories-tree (categoryClick)=\"onCategoryClick($event)\" (reportClick)=\"onReportClick($event)\" />\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <axp-page-content>\n <!-- Desktop and Mobile: Always show desktop template -->\n <ng-container *ngTemplateOutlet=\"desktop\"> </ng-container>\n </axp-page-content>\n\n <!-- Desktop: Grid-based browser for main content -->\n <ng-template #desktop>\n <div class=\"__reports-browser\">\n @if (vm.categories().length > 0) {\n <div class=\"__section\">\n <h3 class=\"__section-title\">{{ t('@report-management:reports.terms.categories') | async }}</h3>\n <div class=\"__items-grid\">\n @for (category of vm.categories(); track category.id) {\n <div class=\"__item __category\" (click)=\"navigateToCategory(category)\">\n <div class=\"__item-icon\">\n <ax-icon class=\"fa-solid fa-folder\"></ax-icon>\n </div>\n <div class=\"__item-content\">\n <div class=\"__item-title\">{{ category.title }}</div>\n @if (category.description) {\n <div class=\"__item-description\">{{ category.description }}</div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.reports().length > 0) {\n <div class=\"__section\">\n <h3 class=\"__section-title\">{{ t('@report-management:reports.terms.reports') | async }}</h3>\n <div class=\"__items-grid\">\n @for (report of vm.reports(); track report.id) {\n <div class=\"__item __report\" (click)=\"navigateToReport(report)\">\n <div class=\"__item-icon\">\n <ax-icon class=\"fa-solid fa-file-chart-column\"></ax-icon>\n </div>\n <div class=\"__item-content\">\n <div class=\"__item-title\">{{ report.title }}</div>\n @if (report.description) {\n <div class=\"__item-description\">{{ report.description }}</div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.categories().length === 0 && vm.reports().length === 0) {\n <axp-state-message\n icon=\"fa-light fa-folder-open\"\n [title]=\"'@report-management:report-runner.components.report-runner.empty-states.no-items-found.title'\"\n [description]=\"'@report-management:report-runner.components.report-runner.empty-states.no-items-found.description'\"\n >\n </axp-state-message>\n }\n </div>\n </ng-template>\n</axp-page-layout>\n", styles: [".axp-report-runner-root-page axp-layout-start-side{height:100%;width:20rem;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))}@media(min-width:1920px){.axp-report-runner-root-page axp-layout-start-side{width:24rem}}.axp-report-runner-root-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding-left:1rem;padding-right:1rem}.axp-report-runner-root-page .__reports-browser>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.axp-report-runner-root-page .__reports-browser{padding:.75rem}@media(min-width:1024px){.axp-report-runner-root-page .__reports-browser{padding:1.5rem}}.axp-report-runner-root-page .__reports-browser .__section>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.axp-report-runner-root-page .__reports-browser .__section .__section-title{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-runner-root-page .__reports-browser .__section .__section-title ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media(min-width:768px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1536px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:2560px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item{cursor:pointer;border-radius:.5rem;border-width:1px;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;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-report-runner-root-page .__reports-browser .__section .__items-grid .__item: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-report-runner-root-page .__reports-browser .__section .__items-grid .__item{display:flex;align-items:flex-start;gap:.75rem}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-icon{display:flex;height:2.5rem;width:2.5rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.25rem;font-size:1.125rem;line-height:1.75rem}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content{min-width:0px;flex:1 1 0%}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-description{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:rgba(var(--ax-sys-color-warning-500),.1)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-warning-500),.05)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:rgba(var(--ax-sys-color-primary-500),.1)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-500),.05)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
|
|
455
453
|
//
|
|
456
|
-
AXSearchBoxModule }, { kind: "
|
|
454
|
+
AXSearchBoxModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i1$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type:
|
|
457
455
|
//
|
|
458
456
|
AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutToolbarComponent, selector: "axp-layout-toolbar" }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutStartSideComponent, selector: "axp-layout-page-start-side, axp-layout-start-side" }, { kind: "component", type:
|
|
459
457
|
//
|
|
@@ -491,8 +489,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
491
489
|
provide: AXPPageLayoutBase,
|
|
492
490
|
useExisting: AXMReportRunnerRootPageComponent,
|
|
493
491
|
},
|
|
494
|
-
], host: { class: 'axp-report-runner-root-page' }, template: "<axp-page-layout *translate=\"let t\">\n @if (vm.showSideMenu()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>{{ t('@report-management:report-runner.terms.menu-title') | async }}</axp-layout-title>\n <axp-layout-toolbar>\n <ax-search-box\n [delayTime]=\"300\"\n [ngModel]=\"vm.searchExpression()\"\n (onValueChanged)=\"vm.search($event.value)\"\n [placeholder]=\"t('@report-management:report-runner.terms.search-placeholder') | async\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box
|
|
492
|
+
], host: { class: 'axp-report-runner-root-page' }, template: "<axp-page-layout *translate=\"let t\">\n @if (vm.showSideMenu()) {\n <axp-layout-start-side>\n <axp-layout-header>\n <axp-layout-title>{{ t('@report-management:report-runner.terms.menu-title') | async }}</axp-layout-title>\n <axp-layout-toolbar>\n <!-- <ax-search-box\n [delayTime]=\"300\"\n [ngModel]=\"vm.searchExpression()\"\n (onValueChanged)=\"vm.search($event.value)\"\n [placeholder]=\"t('@report-management:report-runner.terms.search-placeholder') | async\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box> -->\n </axp-layout-toolbar>\n </axp-layout-header>\n <axp-layout-content>\n <axp-report-categories-tree (categoryClick)=\"onCategoryClick($event)\" (reportClick)=\"onReportClick($event)\" />\n </axp-layout-content>\n </axp-layout-start-side>\n }\n\n <axp-page-content>\n <!-- Desktop and Mobile: Always show desktop template -->\n <ng-container *ngTemplateOutlet=\"desktop\"> </ng-container>\n </axp-page-content>\n\n <!-- Desktop: Grid-based browser for main content -->\n <ng-template #desktop>\n <div class=\"__reports-browser\">\n @if (vm.categories().length > 0) {\n <div class=\"__section\">\n <h3 class=\"__section-title\">{{ t('@report-management:reports.terms.categories') | async }}</h3>\n <div class=\"__items-grid\">\n @for (category of vm.categories(); track category.id) {\n <div class=\"__item __category\" (click)=\"navigateToCategory(category)\">\n <div class=\"__item-icon\">\n <ax-icon class=\"fa-solid fa-folder\"></ax-icon>\n </div>\n <div class=\"__item-content\">\n <div class=\"__item-title\">{{ category.title }}</div>\n @if (category.description) {\n <div class=\"__item-description\">{{ category.description }}</div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.reports().length > 0) {\n <div class=\"__section\">\n <h3 class=\"__section-title\">{{ t('@report-management:reports.terms.reports') | async }}</h3>\n <div class=\"__items-grid\">\n @for (report of vm.reports(); track report.id) {\n <div class=\"__item __report\" (click)=\"navigateToReport(report)\">\n <div class=\"__item-icon\">\n <ax-icon class=\"fa-solid fa-file-chart-column\"></ax-icon>\n </div>\n <div class=\"__item-content\">\n <div class=\"__item-title\">{{ report.title }}</div>\n @if (report.description) {\n <div class=\"__item-description\">{{ report.description }}</div>\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n @if (vm.categories().length === 0 && vm.reports().length === 0) {\n <axp-state-message\n icon=\"fa-light fa-folder-open\"\n [title]=\"'@report-management:report-runner.components.report-runner.empty-states.no-items-found.title'\"\n [description]=\"'@report-management:report-runner.components.report-runner.empty-states.no-items-found.description'\"\n >\n </axp-state-message>\n }\n </div>\n </ng-template>\n</axp-page-layout>\n", styles: [".axp-report-runner-root-page axp-layout-start-side{height:100%;width:20rem;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))}@media(min-width:1920px){.axp-report-runner-root-page axp-layout-start-side{width:24rem}}.axp-report-runner-root-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding-left:1rem;padding-right:1rem}.axp-report-runner-root-page .__reports-browser>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.axp-report-runner-root-page .__reports-browser{padding:.75rem}@media(min-width:1024px){.axp-report-runner-root-page .__reports-browser{padding:1.5rem}}.axp-report-runner-root-page .__reports-browser .__section>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.axp-report-runner-root-page .__reports-browser .__section .__section-title{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-runner-root-page .__reports-browser .__section .__section-title ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media(min-width:768px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1536px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:2560px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item{cursor:pointer;border-radius:.5rem;border-width:1px;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;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-report-runner-root-page .__reports-browser .__section .__items-grid .__item: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-report-runner-root-page .__reports-browser .__section .__items-grid .__item{display:flex;align-items:flex-start;gap:.75rem}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-icon{display:flex;height:2.5rem;width:2.5rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.25rem;font-size:1.125rem;line-height:1.75rem}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content{min-width:0px;flex:1 1 0%}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-description{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:rgba(var(--ax-sys-color-warning-500),.1)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-warning-500),.05)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:rgba(var(--ax-sys-color-primary-500),.1)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-500),.05)}\n"] }]
|
|
495
493
|
}] });
|
|
496
494
|
|
|
497
495
|
export { AXMReportRunnerRootPageComponent };
|
|
498
|
-
//# sourceMappingURL=acorex-modules-report-management-report-runner-root-page.component-
|
|
496
|
+
//# sourceMappingURL=acorex-modules-report-management-report-runner-root-page.component-B0-p2yII.mjs.map
|
package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-B0-p2yII.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-modules-report-management-report-runner-root-page.component-B0-p2yII.mjs","sources":["../tmp-esm2022/report-management/lib/features/report-runner/report-runner.viewmodel.js","../tmp-esm2022/report-management/lib/features/report-runner/report-categories-tree/report-categories-tree.component.js","../tmp-esm2022/report-management/lib/features/report-runner/report-runner-root-page/report-runner-root-page.component.js"],"sourcesContent":["import { AXLocaleService } from '@acorex/core/locale';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPDeviceService } from '@acorex/platform/core';\nimport { AXPPageStatus } from '@acorex/platform/layout/widget-core';\nimport { computed, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { isEmpty, isNil } from 'lodash-es';\nimport { merge } from 'rxjs';\nimport { RootConfig } from '../../const';\nimport { AXPReportViewerService } from '../../reports';\nexport const AXPReportRunnerRootViewModel = signalStore(withState(() => ({\n activeCategory: undefined,\n categories: [],\n reports: [],\n activeCategoriesPath: [],\n //\n searchExpression: null,\n //\n status: AXPPageStatus.Processing,\n})), withComputed((store, deviceService = inject(AXPDeviceService)) => ({\n searchResults: computed(() => []),\n hasActiveCategory: computed(() => store.activeCategory() != null),\n showSideMenu: computed(() => deviceService.isLarge()),\n isSearching: computed(() => store.searchExpression() != null),\n isBusy: computed(() => store.status() == AXPPageStatus.Processing),\n isLoaded: computed(() => store.activeCategory() != null),\n title: computed(() => store.activeCategory()?.title ?? `@${RootConfig.config.i18n}:report-runner.terms.page-title`),\n description: computed(() => store.activeCategory()?.description ??\n `@${RootConfig.config.i18n}:report-runner.components.report-runner.description`),\n})), withMethods((store, reportDefinitionService = inject(AXPReportViewerService)) => ({\n /**\n * Load root categories\n *\n * Optimization: Service caches result, subsequent calls are instant\n */\n async loadRootCategories() {\n patchState(store, {\n activeCategory: undefined,\n reports: [],\n activeCategoriesPath: [],\n status: AXPPageStatus.Processing,\n });\n const categories = await reportDefinitionService.getCategories();\n patchState(store, {\n categories,\n status: AXPPageStatus.Idle,\n });\n },\n /**\n * Get categories by parentId (cached by service)\n */\n async getCategories(parentId) {\n patchState(store, { status: AXPPageStatus.Processing });\n const result = await reportDefinitionService.getCategories(parentId);\n patchState(store, { status: AXPPageStatus.Idle });\n return result;\n },\n /**\n * Get reports for a category\n *\n * Optimization: Service checks itemsCount before querying\n * - If itemsCount = 0, returns empty array (no API call)\n * - If cached, returns instantly\n */\n async getReports(categoryId) {\n patchState(store, { status: AXPPageStatus.Processing });\n const result = await reportDefinitionService.getReportsByCategoryId(categoryId);\n patchState(store, { status: AXPPageStatus.Idle });\n return result;\n },\n /**\n * Set active category and load its data\n *\n * Optimization: All 3 queries benefit from caching\n * - Categories: Cached from previous navigation\n * - Reports: Skipped if itemsCount = 0\n * - Path: Built from cached categories\n */\n async setActiveCategory(category) {\n patchState(store, {\n status: AXPPageStatus.Processing,\n activeCategory: category,\n });\n // ✅ Parallel loading for better performance\n const [categories, reports, activeCategoriesPath] = await Promise.all([\n reportDefinitionService.getCategories(category.id),\n reportDefinitionService.getReportsByCategoryId(category.id),\n reportDefinitionService.getCategoriesPathById(category.id),\n ]);\n patchState(store, {\n categories,\n reports,\n activeCategoriesPath,\n status: AXPPageStatus.Idle,\n });\n },\n /**\n * Set active category by ID\n *\n * Optimization: getCategoryById uses O(1) cache lookup\n */\n async setActiveCategoryById(id) {\n patchState(store, { status: AXPPageStatus.Processing });\n const category = await reportDefinitionService.getCategoryById(id);\n if (category) {\n patchState(store, { activeCategory: category });\n // ✅ Parallel loading\n const [categories, reports, activeCategoriesPath] = await Promise.all([\n reportDefinitionService.getCategories(category.id),\n reportDefinitionService.getReportsByCategoryId(category.id),\n reportDefinitionService.getCategoriesPathById(category.id),\n ]);\n patchState(store, {\n categories,\n reports,\n activeCategoriesPath,\n });\n }\n patchState(store, { status: AXPPageStatus.Idle });\n },\n /**\n * Search for reports (to be implemented)\n */\n async search(expression) {\n if (!isNil(expression) && !isEmpty(expression)) {\n patchState(store, { searchExpression: expression });\n }\n else {\n patchState(store, { searchExpression: null });\n }\n },\n /**\n * Clear search\n */\n clearSearch() {\n patchState(store, { searchExpression: null });\n },\n})), withHooks((store, translationService = inject(AXTranslationService), localeService = inject(AXLocaleService)) => ({\n async onInit() {\n merge(translationService.langChanges$, localeService.profileChanged$).subscribe(async () => { });\n //\n await store.loadRootCategories();\n },\n onDestroy() { },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXJ1bm5lci52aWV3bW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvcmVwb3J0LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9yZXBvcnQtcnVubmVyL3JlcG9ydC1ydW5uZXIudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQTBDLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9GLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLFdBQVcsQ0FDckQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDZixjQUFjLEVBQUUsU0FBMEM7SUFDMUQsVUFBVSxFQUFFLEVBQXlCO0lBQ3JDLE9BQU8sRUFBRSxFQUEyQjtJQUNwQyxvQkFBb0IsRUFBRSxFQUF5QjtJQUMvQyxFQUFFO0lBQ0YsZ0JBQWdCLEVBQUUs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QUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRyxFQUFFO1FBQ0YsTUFBTSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsU0FBUyxLQUFLLENBQUM7Q0FDaEIsQ0FBQyxDQUFDLENBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYTG9jYWxlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9sb2NhbGUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQRGV2aWNlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBQYWdlU3RhdHVzIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcGF0Y2hTdGF0ZSwgc2lnbmFsU3RvcmUsIHdpdGhDb21wdXRlZCwgd2l0aEhvb2tzLCB3aXRoTWV0aG9kcywgd2l0aFN0YXRlIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBpc0VtcHR5LCBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYUFJlcG9ydENhdGVnb3J5LCBBWFBSZXBvcnREZWZpbml0aW9uLCBBWFBSZXBvcnRWaWV3ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcmVwb3J0cyc7XG5cbmV4cG9ydCBjb25zdCBBWFBSZXBvcnRSdW5uZXJSb290Vmlld01vZGVsID0gc2lnbmFsU3RvcmUoXG4gIHdpdGhTdGF0ZSgoKSA9PiAoe1xuICAgIGFjdGl2ZUNhdGVnb3J5OiB1bmRlZmluZWQgYXMgQVhQUmVwb3J0Q2F0ZWdvcnkgfCB1bmRlZmluZWQsXG4gICAgY2F0ZWdvcmllczogW10gYXMgQVhQUmVwb3J0Q2F0ZWdvcnlbXSxcbiAgICByZXBvcnRzOiBbXSBhcyBBWFBSZXBvcnREZWZpbml0aW9uW10sXG4gICAgYWN0aXZlQ2F0ZWdvcmllc1BhdGg6IFtdIGFzIEFYUFJlcG9ydENhdGVnb3J5W10sXG4gICAgLy9cbiAgICBzZWFyY2hFeHByZXNzaW9uOiBudWxsIGFzIHN0cmluZyB8IG51bGwsXG4gICAgLy9cbiAgICBzdGF0dXM6IEFYUFBhZ2VTdGF0dXMuUHJvY2Vzc2luZyxcbiAgfSkpLFxuICB3aXRoQ29tcHV0ZWQoKHN0b3JlLCBkZXZpY2VTZXJ2aWNlID0gaW5qZWN0KEFYUERldmljZVNlcnZpY2UpKSA9PiAoe1xuICAgIHNlYXJjaFJlc3VsdHM6IGNvbXB1dGVkKCgpID0+IFtdKSxcbiAgICBoYXNBY3RpdmVDYXRlZ29yeTogY29tcHV0ZWQoKCkgPT4gc3RvcmUuYWN0aXZlQ2F0ZWdvcnkoKSAhPSBudWxsKSxcbiAgICBzaG93U2lkZU1lbnU6IGNvbXB1dGVkKCgpID0+IGRldmljZVNlcnZpY2UuaXNMYXJnZSgpKSxcbiAgICBpc1NlYXJjaGluZzogY29tcHV0ZWQoKCkgPT4gc3RvcmUuc2VhcmNoRXhwcmVzc2lvbigpICE9IG51bGwpLFxuICAgIGlzQnVzeTogY29tcHV0ZWQoKCkgPT4gc3RvcmUuc3RhdHVzKCkgPT0gQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nKSxcbiAgICBpc0xvYWRlZDogY29tcHV0ZWQoKCkgPT4gc3RvcmUuYWN0aXZlQ2F0ZWdvcnkoKSAhPSBudWxsKSxcbiAgICB0aXRsZTogY29tcHV0ZWQoKCkgPT4gc3RvcmUuYWN0aXZlQ2F0ZWdvcnkoKT8udGl0bGUgPz8gYEAke1Jvb3RDb25maWcuY29uZmlnLmkxOG59OnJlcG9ydC1ydW5uZXIudGVybXMucGFnZS10aXRsZWApLFxuICAgIGRlc2NyaXB0aW9uOiBjb21wdXRlZChcbiAgICAgICgpID0+XG4gICAgICAgIHN0b3JlLmFjdGl2ZUNhdGVnb3J5KCk/LmRlc2NyaXB0aW9uID8/XG4gICAgICAgIGBAJHtSb290Q29uZmlnLmNvbmZpZy5pMThufTpyZXBvcnQtcnVubmVyLmNvbXBvbmVudHMucmVwb3J0LXJ1bm5lci5kZXNjcmlwdGlvbmAsXG4gICAgKSxcbiAgfSkpLFxuICB3aXRoTWV0aG9kcygoc3RvcmUsIHJlcG9ydERlZmluaXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYUFJlcG9ydFZpZXdlclNlcnZpY2UpKSA9PiAoe1xuICAgIC8qKlxuICAgICAqIExvYWQgcm9vdCBjYXRlZ29yaWVzXG4gICAgICpcbiAgICAgKiBPcHRpbWl6YXRpb246IFNlcnZpY2UgY2FjaGVzIHJlc3VsdCwgc3Vic2VxdWVudCBjYWxscyBhcmUgaW5zdGFudFxuICAgICAqL1xuICAgIGFzeW5jIGxvYWRSb290Q2F0ZWdvcmllcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgYWN0aXZlQ2F0ZWdvcnk6IHVuZGVmaW5lZCxcbiAgICAgICAgcmVwb3J0czogW10sXG4gICAgICAgIGFjdGl2ZUNhdGVnb3JpZXNQYXRoOiBbXSxcbiAgICAgICAgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLlByb2Nlc3NpbmcsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IGF3YWl0IHJlcG9ydERlZmluaXRpb25TZXJ2aWNlLmdldENhdGVnb3JpZXMoKTtcblxuICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICBjYXRlZ29yaWVzLFxuICAgICAgICBzdGF0dXM6IEFYUFBhZ2VTdGF0dXMuSWRsZSxcbiAgICAgIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBHZXQgY2F0ZWdvcmllcyBieSBwYXJlbnRJZCAoY2FjaGVkIGJ5IHNlcnZpY2UpXG4gICAgICovXG4gICAgYXN5bmMgZ2V0Q2F0ZWdvcmllcyhwYXJlbnRJZD86IHN0cmluZyk6IFByb21pc2U8QVhQUmVwb3J0Q2F0ZWdvcnlbXT4ge1xuICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzdGF0dXM6IEFYUFBhZ2VTdGF0dXMuUHJvY2Vzc2luZyB9KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVwb3J0RGVmaW5pdGlvblNlcnZpY2UuZ2V0Q2F0ZWdvcmllcyhwYXJlbnRJZCk7XG5cbiAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgc3RhdHVzOiBBWFBQYWdlU3RhdHVzLklkbGUgfSk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIEdldCByZXBvcnRzIGZvciBhIGNhdGVnb3J5XG4gICAgICpcbiAgICAgKiBPcHRpbWl6YXRpb246IFNlcnZpY2UgY2hlY2tzIGl0ZW1zQ291bnQgYmVmb3JlIHF1ZXJ5aW5nXG4gICAgICogLSBJZiBpdGVtc0NvdW50ID0gMCwgcmV0dXJucyBlbXB0eSBhcnJheSAobm8gQVBJIGNhbGwpXG4gICAgICogLSBJZiBjYWNoZWQsIHJldHVybnMgaW5zdGFudGx5XG4gICAgICovXG4gICAgYXN5bmMgZ2V0UmVwb3J0cyhjYXRlZ29yeUlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUFJlcG9ydERlZmluaXRpb25bXT4ge1xuICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzdGF0dXM6IEFYUFBhZ2VTdGF0dXMuUHJvY2Vzc2luZyB9KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVwb3J0RGVmaW5pdGlvblNlcnZpY2UuZ2V0UmVwb3J0c0J5Q2F0ZWdvcnlJZChjYXRlZ29yeUlkKTtcblxuICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzdGF0dXM6IEFYUFBhZ2VTdGF0dXMuSWRsZSB9KTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogU2V0IGFjdGl2ZSBjYXRlZ29yeSBhbmQgbG9hZCBpdHMgZGF0YVxuICAgICAqXG4gICAgICogT3B0aW1pemF0aW9uOiBBbGwgMyBxdWVyaWVzIGJlbmVmaXQgZnJvbSBjYWNoaW5nXG4gICAgICogLSBDYXRlZ29yaWVzOiBDYWNoZWQgZnJvbSBwcmV2aW91cyBuYXZpZ2F0aW9uXG4gICAgICogLSBSZXBvcnRzOiBTa2lwcGVkIGlmIGl0ZW1zQ291bnQgPSAwXG4gICAgICogLSBQYXRoOiBCdWlsdCBmcm9tIGNhY2hlZCBjYXRlZ29yaWVzXG4gICAgICovXG4gICAgYXN5bmMgc2V0QWN0aXZlQ2F0ZWdvcnkoY2F0ZWdvcnk6IEFYUFJlcG9ydENhdGVnb3J5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5Qcm9jZXNzaW5nLFxuICAgICAgICBhY3RpdmVDYXRlZ29yeTogY2F0ZWdvcnksXG4gICAgICB9KTtcblxuICAgICAgLy8g4pyFIFBhcmFsbGVsIGxvYWRpbmcgZm9yIGJldHRlciBwZXJmb3JtYW5jZVxuICAgICAgY29uc3QgW2NhdGVnb3JpZXMsIHJlcG9ydHMsIGFjdGl2ZUNhdGVnb3JpZXNQYXRoXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgcmVwb3J0RGVmaW5pdGlvblNlcnZpY2UuZ2V0Q2F0ZWdvcmllcyhjYXRlZ29yeS5pZCksXG4gICAgICAgIHJlcG9ydERlZmluaXRpb25TZXJ2aWNlLmdldFJlcG9ydHNCeUNhdGVnb3J5SWQoY2F0ZWdvcnkuaWQpLFxuICAgICAgICByZXBvcnREZWZpbml0aW9uU2VydmljZS5nZXRDYXRlZ29yaWVzUGF0aEJ5SWQoY2F0ZWdvcnkuaWQpLFxuICAgICAgXSk7XG5cbiAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgY2F0ZWdvcmllcyxcbiAgICAgICAgcmVwb3J0cyxcbiAgICAgICAgYWN0aXZlQ2F0ZWdvcmllc1BhdGgsXG4gICAgICAgIHN0YXR1czogQVhQUGFnZVN0YXR1cy5JZGxlLFxuICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFNldCBhY3RpdmUgY2F0ZWdvcnkgYnkgSURcbiAgICAgKlxuICAgICAqIE9wdGltaXphdGlvbjogZ2V0Q2F0ZWdvcnlCeUlkIHVzZXMgTygxKSBjYWNoZSBsb29rdXBcbiAgICAgKi9cbiAgICBhc3luYyBzZXRBY3RpdmVDYXRlZ29yeUJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzdGF0dXM6IEFYUFBhZ2VTdGF0dXMuUHJvY2Vzc2luZyB9KTtcblxuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCByZXBvcnREZWZpbml0aW9uU2VydmljZS5nZXRDYXRlZ29yeUJ5SWQoaWQpO1xuXG4gICAgICBpZiAoY2F0ZWdvcnkpIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBhY3RpdmVDYXRlZ29yeTogY2F0ZWdvcnkgfSk7XG5cbiAgICAgICAgLy8g4pyFIFBhcmFsbGVsIGxvYWRpbmdcbiAgICAgICAgY29uc3QgW2NhdGVnb3JpZXMsIHJlcG9ydHMsIGFjdGl2ZUNhdGVnb3JpZXNQYXRoXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgICByZXBvcnREZWZpbml0aW9uU2VydmljZS5nZXRDYXRlZ29yaWVzKGNhdGVnb3J5LmlkKSxcbiAgICAgICAgICByZXBvcnREZWZpbml0aW9uU2VydmljZS5nZXRSZXBvcnRzQnlDYXRlZ29yeUlkKGNhdGVnb3J5LmlkKSxcbiAgICAgICAgICByZXBvcnREZWZpbml0aW9uU2VydmljZS5nZXRDYXRlZ29yaWVzUGF0aEJ5SWQoY2F0ZWdvcnkuaWQpLFxuICAgICAgICBdKTtcblxuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgY2F0ZWdvcmllcyxcbiAgICAgICAgICByZXBvcnRzLFxuICAgICAgICAgIGFjdGl2ZUNhdGVnb3JpZXNQYXRoLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzdGF0dXM6IEFYUFBhZ2VTdGF0dXMuSWRsZSB9KTtcbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIGZvciByZXBvcnRzICh0byBiZSBpbXBsZW1lbnRlZClcbiAgICAgKi9cbiAgICBhc3luYyBzZWFyY2goZXhwcmVzc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBpZiAoIWlzTmlsKGV4cHJlc3Npb24pICYmICFpc0VtcHR5KGV4cHJlc3Npb24pKSB7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgc2VhcmNoRXhwcmVzc2lvbjogZXhwcmVzc2lvbiB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgc2VhcmNoRXhwcmVzc2lvbjogbnVsbCB9KTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ2xlYXIgc2VhcmNoXG4gICAgICovXG4gICAgY2xlYXJTZWFyY2goKTogdm9pZCB7XG4gICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHNlYXJjaEV4cHJlc3Npb246IG51bGwgfSk7XG4gICAgfSxcbiAgfSkpLFxuICB3aXRoSG9va3MoKHN0b3JlLCB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpLCBsb2NhbGVTZXJ2aWNlID0gaW5qZWN0KEFYTG9jYWxlU2VydmljZSkpID0+ICh7XG4gICAgYXN5bmMgb25Jbml0KCkge1xuICAgICAgbWVyZ2UodHJhbnNsYXRpb25TZXJ2aWNlLmxhbmdDaGFuZ2VzJCwgbG9jYWxlU2VydmljZS5wcm9maWxlQ2hhbmdlZCQpLnN1YnNjcmliZShhc3luYyAoKSA9PiB7IH0pO1xuICAgICAgLy9cbiAgICAgIGF3YWl0IHN0b3JlLmxvYWRSb290Q2F0ZWdvcmllcygpO1xuICAgIH0sXG4gICAgb25EZXN0cm95KCkgeyB9LFxuICB9KSksXG4pO1xuIl19","//#region ---- Imports ----\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTreeViewLegacyModule } from '@acorex/components/tree-view-legacy';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, output, ViewEncapsulation } from '@angular/core';\nimport { AXPReportViewerService } from '../../../reports';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/tree-view-legacy\";\n//#endregion\nexport class AXPReportCategoriesTreeComponent {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.reportDefinitionService = inject(AXPReportViewerService);\n //#endregion\n //#region ---- Output Events ----\n /**\n * Emitted when a category node is clicked\n */\n this.categoryClick = output();\n /**\n * Emitted when a report node is clicked\n */\n this.reportClick = output();\n //#endregion\n //#region ---- Data Loading Methods ----\n /**\n * Provide lazy loading tree data with optimized queries\n *\n * Optimizations:\n * 1. Uses childrenCount to determine expandability (no extra query)\n * 2. Uses itemsCount to skip report queries when count = 0\n * 3. Returns cached data on subsequent calls (via service layer)\n * 4. Single API call per category includes all metadata\n *\n * Performance: Most navigation is instant (cached), only first visit queries API\n */\n this.provideLazyTreeView = async (selectedItemId) => {\n if (selectedItemId) {\n // ✅ Load child categories (includes childrenCount & itemsCount metadata)\n const categories = await this.reportDefinitionService.getCategories(selectedItemId);\n const categoryItems = categories.map((item) => ({\n id: item.id,\n title: item.title,\n // ✅ Optimization: Use count properties to determine expandability\n hasChild: item.childrenCount > 0 || (item.itemsCount ?? 0) > 0,\n item: item,\n type: 'category',\n expanded: false,\n }));\n // ✅ Load report definitions for this category\n // Optimization: Service checks itemsCount before querying (skip if 0)\n const definitions = await this.reportDefinitionService.getReportsByCategoryId(selectedItemId);\n const definitionItems = definitions.map((item) => ({\n id: item.id,\n title: item.title,\n hasChild: false, // Reports are leaf nodes\n item: item,\n type: 'definition',\n expanded: false,\n }));\n // ✅ Return categories first, then reports (sorted)\n return [...categoryItems, ...definitionItems];\n }\n else {\n // ✅ Root level - load root categories only\n const categories = await this.reportDefinitionService.getCategories();\n return categories.map((item) => ({\n id: item.id,\n title: item.title,\n // ✅ Optimization: Use count properties\n hasChild: item.childrenCount > 0 || (item.itemsCount ?? 0) > 0,\n item: item,\n type: 'category',\n expanded: false,\n }));\n }\n };\n }\n //#endregion\n //#region ---- Event Handlers ----\n /**\n * Handle tree node click events\n *\n * Emits appropriate event based on node type:\n * - category → categoryClick\n * - definition → reportClick\n */\n handleNodeClick(event) {\n const node = event.data;\n if (node.type === 'category') {\n this.categoryClick.emit(node.item);\n }\n else if (node.type === 'definition') {\n this.reportClick.emit(node.item);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.19\", ngImport: i0, type: AXPReportCategoriesTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.19\", type: AXPReportCategoriesTreeComponent, isStandalone: true, selector: \"axp-report-categories-tree\", outputs: { categoryClick: \"categoryClick\", reportClick: \"reportClick\" }, host: { classAttribute: \"axp-report-categories-tree\" }, ngImport: i0, template: \"<ax-tree-view-legacy\\n [showCheckbox]=\\\"false\\\"\\n [itemTemplate]=\\\"itemTemplate\\\"\\n [textField]=\\\"'title'\\\"\\n [hasChildField]=\\\"'hasChild'\\\"\\n [valueField]=\\\"'id'\\\"\\n [expandedField]=\\\"'expanded'\\\"\\n [items]=\\\"provideLazyTreeView\\\"\\n (onNodeClick)=\\\"handleNodeClick($event)\\\"\\n>\\n</ax-tree-view-legacy>\\n\\n<ng-template #itemTemplate let-item>\\n @if (item.type === 'category') {\\n <ax-icon class=\\\"fas ax-text-warning fa-folder\\\"></ax-icon>\\n } @else {\\n <ax-icon class=\\\"fas ax-text-accent1 fa-file-chart-column\\\"></ax-icon>\\n }\\n {{ item.title }}\\n</ng-template>\\n\", styles: [\".axp-report-categories-tree{height:100%;width:100%}.axp-report-categories-tree .__tree-view .__item{display:flex;align-items:center;gap:.5rem}.axp-report-categories-tree .__tree-view .__item .__icon{flex-shrink:0}.axp-report-categories-tree .__tree-view .__item .__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.axp-report-categories-tree .__tree-view .__item:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTreeViewLegacyModule }, { kind: \"component\", type: i2.AXTreeViewLegacyComponent, selector: \"ax-tree-view-legacy\", inputs: [\"items\", \"showCheckbox\", \"hasCheckboxField\", \"selectionMode\", \"selectionBehavior\", \"selectionScope\", \"focusNodeEnabled\", \"valueField\", \"textField\", \"visibleField\", \"disableField\", \"hasChildField\", \"selectedField\", \"expandedField\", \"tooltipField\", \"childrenField\", \"activeField\", \"indeterminateField\", \"parentField\", \"iconField\", \"toggleIcons\", \"look\", \"showEmptyNodeMassage\", \"itemTemplate\", \"emptyTemplate\", \"expandOn\"], outputs: [\"onSelectionChanged\", \"onItemSelectedChanged\", \"onNodeClick\", \"onCollapsedChanged\", \"onNodedbClick\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.19\", ngImport: i0, type: AXPReportCategoriesTreeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-report-categories-tree', standalone: true, imports: [CommonModule, AXDecoratorModule, AXTreeViewLegacyModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'axp-report-categories-tree' }, template: \"<ax-tree-view-legacy\\n [showCheckbox]=\\\"false\\\"\\n [itemTemplate]=\\\"itemTemplate\\\"\\n [textField]=\\\"'title'\\\"\\n [hasChildField]=\\\"'hasChild'\\\"\\n [valueField]=\\\"'id'\\\"\\n [expandedField]=\\\"'expanded'\\\"\\n [items]=\\\"provideLazyTreeView\\\"\\n (onNodeClick)=\\\"handleNodeClick($event)\\\"\\n>\\n</ax-tree-view-legacy>\\n\\n<ng-template #itemTemplate let-item>\\n @if (item.type === 'category') {\\n <ax-icon class=\\\"fas ax-text-warning fa-folder\\\"></ax-icon>\\n } @else {\\n <ax-icon class=\\\"fas ax-text-accent1 fa-file-chart-column\\\"></ax-icon>\\n }\\n {{ item.title }}\\n</ng-template>\\n\", styles: [\".axp-report-categories-tree{height:100%;width:100%}.axp-report-categories-tree .__tree-view .__item{display:flex;align-items:center;gap:.5rem}.axp-report-categories-tree .__tree-view .__item .__icon{flex-shrink:0}.axp-report-categories-tree .__tree-view .__item .__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.axp-report-categories-tree .__tree-view .__item:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}\\n\"] }]\n }], propDecorators: { categoryClick: [{ type: i0.Output, args: [\"categoryClick\"] }], reportClick: [{ type: i0.Output, args: [\"reportClick\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNhdGVnb3JpZXMtdHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvcmVwb3J0LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9yZXBvcnQtcnVubmVyL3JlcG9ydC1jYXRlZ29yaWVzLXRyZWUvcmVwb3J0LWNhdGVnb3JpZXMtdHJlZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvcmVwb3J0LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9yZXBvcnQtcnVubmVyL3JlcG9ydC1jYXRlZ29yaWVzLXRyZWUvcmVwb3J0LWNhdGVnb3JpZXMtdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFrQyxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUEwQyxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBdUJsRyxZQUFZO0FBWVosTUFBTSxPQUFPLGdDQUFnQztJQVY3QztRQVdFLCtDQUErQztRQUU5Qiw0QkFBdUIsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUUxRSxZQUFZO1FBRVoscUNBQXFDO1FBRXJDOztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxNQUFNLEVBQXFCLENBQUM7UUFFNUM7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLE1BQU0sRUFBdUIsQ0FBQztR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MGdCRGNZLFlBQVksOEJBQUUsaUJBQWlCLCtIQUFFLHNCQUFzQjs7NEZBT3RELGdDQUFnQztrQkFWNUMsU0FBUzsrQkFDRSw0QkFBNEIsY0FDMUIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDLG1CQUdqRCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLDRCQUE0QixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVHJlZUl0ZW1DbGlja0Jhc2VFdmVudExlZ2FjeSwgQVhUcmVlVmlld0xlZ2FjeU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90cmVlLXZpZXctbGVnYWN5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIG91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFJlcG9ydENhdGVnb3J5LCBBWFBSZXBvcnREZWZpbml0aW9uLCBBWFBSZXBvcnRWaWV3ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcmVwb3J0cyc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIEludGVyZmFjZSAgIC0tLS1cblxuLyoqXG4gKiBUcmVlIHZpZXcgaXRlbSB3aXRoIG9wdGltaXplZCBtZXRhZGF0YVxuICpcbiAqIFVzZXMgY291bnQgcHJvcGVydGllcyBmb3IgZWZmaWNpZW50IHJlbmRlcmluZzpcbiAqIC0gaGFzQ2hpbGQ6IERldGVybWluZWQgYnkgY2hpbGRyZW5Db3VudCArIGl0ZW1zQ291bnRcbiAqIC0gTm8gbmVlZCB0byBxdWVyeSBBUEkgdG8ga25vdyBpZiBleHBhbmRhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZVZpZXdJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgaGFzQ2hpbGQ6IGJvb2xlYW47IC8vIGNoaWxkcmVuQ291bnQgPiAwIHx8IGl0ZW1zQ291bnQgPiAwXG4gIGNoaWxkcmVuPzogVHJlZVZpZXdJdGVtW107XG4gIGl0ZW0/OiBBWFBSZXBvcnRDYXRlZ29yeSB8IEFYUFJlcG9ydERlZmluaXRpb247XG4gIHR5cGU6ICdjYXRlZ29yeScgfCAnZGVmaW5pdGlvbic7XG4gIGV4cGFuZGVkOiBib29sZWFuO1xufVxuXG4vLyNlbmRyZWdpb25cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXJlcG9ydC1jYXRlZ29yaWVzLXRyZWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWERlY29yYXRvck1vZHVsZSwgQVhUcmVlVmlld0xlZ2FjeU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtY2F0ZWdvcmllcy10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3JlcG9ydC1jYXRlZ29yaWVzLXRyZWUuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogeyBjbGFzczogJ2F4cC1yZXBvcnQtY2F0ZWdvcmllcy10cmVlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWFBSZXBvcnRDYXRlZ29yaWVzVHJlZUNvbXBvbmVudCB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXBvcnREZWZpbml0aW9uU2VydmljZSA9IGluamVjdChBWFBSZXBvcnRWaWV3ZXJTZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIE91dHB1dCBFdmVudHMgICAtLS0tXG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIGNhdGVnb3J5IG5vZGUgaXMgY2xpY2tlZFxuICAgKi9cbiAgY2F0ZWdvcnlDbGljayA9IG91dHB1dDxBWFBSZXBvcnRDYXRlZ29yeT4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgcmVwb3J0IG5vZGUgaXMgY2xpY2tlZFxuICAgKi9cbiAgcmVwb3J0Q2xpY2sgPSBvdXRwdXQ8QVhQUmVwb3J0RGVmaW5pdGlvbj4oKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIERhdGEgTG9hZGluZyBNZXRob2RzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBQcm92aWRlIGxhenkgbG9hZGluZyB0cmVlIGRhdGEgd2l0aCBvcHRpbWl6ZWQgcXVlcmllc1xuICAgKlxuICAgKiBPcHRpbWl6YXRpb25zOlxuICAgKiAxLiBVc2VzIGNoaWxkcmVuQ291bnQgdG8gZGV0ZXJtaW5lIGV4cGFuZGFiaWxpdHkgKG5vIGV4dHJhIHF1ZXJ5KVxuICAgKiAyLiBVc2VzIGl0ZW1zQ291bnQgdG8gc2tpcCByZXBvcnQgcXVlcmllcyB3aGVuIGNvdW50ID0gMFxuICAgKiAzLiBSZXR1cm5zIGNhY2hlZCBkYXRhIG9uIHN1YnNlcXVlbnQgY2FsbHMgKHZpYSBzZXJ2aWNlIGxheWVyKVxuICAgKiA0LiBTaW5nbGUgQVBJIGNhbGwgcGVyIGNhdGVnb3J5IGluY2x1ZGVzIGFsbCBtZXRhZGF0YVxuICAgKlxuICAgKiBQZXJmb3JtYW5jZTogTW9zdCBuYXZpZ2F0aW9uIGlzIGluc3RhbnQgKGNhY2hlZCksIG9ubHkgZmlyc3QgdmlzaXQgcXVlcmllcyBBUElcbiAgICovXG4gIHByb3RlY3RlZCBwcm92aWRlTGF6eVRyZWVWaWV3ID0gYXN5bmMgKHNlbGVjdGVkSXRlbUlkPzogc3RyaW5nIHwgbnVtYmVyKTogUHJvbWlzZTxUcmVlVmlld0l0ZW1bXT4gPT4ge1xuICAgIGlmIChzZWxlY3RlZEl0ZW1JZCkge1xuICAgICAgLy8g4pyFIExvYWQgY2hpbGQgY2F0ZWdvcmllcyAoaW5jbHVkZXMgY2hpbGRyZW5Db3VudCAmIGl0ZW1zQ291bnQgbWV0YWRhdGEpXG4gICAgICBjb25zdCBjYXRlZ29yaWVzID0gYXdhaXQgdGhpcy5yZXBvcnREZWZpbml0aW9uU2VydmljZS5nZXRDYXRlZ29yaWVzKHNlbGVjdGVkSXRlbUlkIGFzIHN0cmluZyk7XG5cbiAgICAgIGNvbnN0IGNhdGVnb3J5SXRlbXM6IFRyZWVWaWV3SXRlbVtdID0gY2F0ZWdvcmllcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcbiAgICAgICAgLy8g4pyFIE9wdGltaXphdGlvbjogVXNlIGNvdW50IHByb3BlcnRpZXMgdG8gZGV0ZXJtaW5lIGV4cGFuZGFiaWxpdHlcbiAgICAgICAgaGFzQ2hpbGQ6IGl0ZW0uY2hpbGRyZW5Db3VudCA+IDAgfHwgKGl0ZW0uaXRlbXNDb3VudCA/PyAwKSA+IDAsXG4gICAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICAgIHR5cGU6ICdjYXRlZ29yeScgYXMgY29uc3QsXG4gICAgICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICAgIH0pKTtcblxuICAgICAgLy8g4pyFIExvYWQgcmVwb3J0IGRlZmluaXRpb25zIGZvciB0aGlzIGNhdGVnb3J5XG4gICAgICAvLyBPcHRpbWl6YXRpb246IFNlcnZpY2UgY2hlY2tzIGl0ZW1zQ291bnQgYmVmb3JlIHF1ZXJ5aW5nIChza2lwIGlmIDApXG4gICAgICBjb25zdCBkZWZpbml0aW9ucyA9IGF3YWl0IHRoaXMucmVwb3J0RGVmaW5pdGlvblNlcnZpY2UuZ2V0UmVwb3J0c0J5Q2F0ZWdvcnlJZChzZWxlY3RlZEl0ZW1JZCBhcyBzdHJpbmcpO1xuXG4gICAgICBjb25zdCBkZWZpbml0aW9uSXRlbXM6IFRyZWVWaWV3SXRlbVtdID0gZGVmaW5pdGlvbnMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXG4gICAgICAgIGhhc0NoaWxkOiBmYWxzZSwgLy8gUmVwb3J0cyBhcmUgbGVhZiBub2Rlc1xuICAgICAgICBpdGVtOiBpdGVtLFxuICAgICAgICB0eXBlOiAnZGVmaW5pdGlvbicgYXMgY29uc3QsXG4gICAgICAgIGV4cGFuZGVkOiBmYWxzZSxcbiAgICAgIH0pKTtcblxuICAgICAgLy8g4pyFIFJldHVybiBjYXRlZ29yaWVzIGZpcnN0LCB0aGVuIHJlcG9ydHMgKHNvcnRlZClcbiAgICAgIHJldHVybiBbLi4uY2F0ZWdvcnlJdGVtcywgLi4uZGVmaW5pdGlvbkl0ZW1zXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8g4pyFIFJvb3QgbGV2ZWwgLSBsb2FkIHJvb3QgY2F0ZWdvcmllcyBvbmx5XG4gICAgICBjb25zdCBjYXRlZ29yaWVzID0gYXdhaXQgdGhpcy5yZXBvcnREZWZpbml0aW9uU2VydmljZS5nZXRDYXRlZ29yaWVzKCk7XG5cbiAgICAgIHJldHVybiBjYXRlZ29yaWVzLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxuICAgICAgICAvLyDinIUgT3B0aW1pemF0aW9uOiBVc2UgY291bnQgcHJvcGVydGllc1xuICAgICAgICBoYXNDaGlsZDogaXRlbS5jaGlsZHJlbkNvdW50ID4gMCB8fCAoaXRlbS5pdGVtc0NvdW50ID8/IDApID4gMCxcbiAgICAgICAgaXRlbTogaXRlbSxcbiAgICAgICAgdHlwZTogJ2NhdGVnb3J5JyBhcyBjb25zdCxcbiAgICAgICAgZXhwYW5kZWQ6IGZhbHNlLFxuICAgICAgfSkpO1xuICAgIH1cbiAgfTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEV2ZW50IEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdHJlZSBub2RlIGNsaWNrIGV2ZW50c1xuICAgKlxuICAgKiBFbWl0cyBhcHByb3ByaWF0ZSBldmVudCBiYXNlZCBvbiBub2RlIHR5cGU6XG4gICAqIC0gY2F0ZWdvcnkg4oaSIGNhdGVnb3J5Q2xpY2tcbiAgICogLSBkZWZpbml0aW9uIOKGkiByZXBvcnRDbGlja1xuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVDbGljayhldmVudDogQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50TGVnYWN5KTogdm9pZCB7XG4gICAgY29uc3Qgbm9kZSA9IGV2ZW50LmRhdGEgYXMgVHJlZVZpZXdJdGVtO1xuXG4gICAgaWYgKG5vZGUudHlwZSA9PT0gJ2NhdGVnb3J5Jykge1xuICAgICAgdGhpcy5jYXRlZ29yeUNsaWNrLmVtaXQobm9kZS5pdGVtIGFzIEFYUFJlcG9ydENhdGVnb3J5KTtcbiAgICB9IGVsc2UgaWYgKG5vZGUudHlwZSA9PT0gJ2RlZmluaXRpb24nKSB7XG4gICAgICB0aGlzLnJlcG9ydENsaWNrLmVtaXQobm9kZS5pdGVtIGFzIEFYUFJlcG9ydERlZmluaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuIiwiPGF4LXRyZWUtdmlldy1sZWdhY3lcbiAgW3Nob3dDaGVja2JveF09XCJmYWxzZVwiXG4gIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgW3RleHRGaWVsZF09XCIndGl0bGUnXCJcbiAgW2hhc0NoaWxkRmllbGRdPVwiJ2hhc0NoaWxkJ1wiXG4gIFt2YWx1ZUZpZWxkXT1cIidpZCdcIlxuICBbZXhwYW5kZWRGaWVsZF09XCInZXhwYW5kZWQnXCJcbiAgW2l0ZW1zXT1cInByb3ZpZGVMYXp5VHJlZVZpZXdcIlxuICAob25Ob2RlQ2xpY2spPVwiaGFuZGxlTm9kZUNsaWNrKCRldmVudClcIlxuPlxuPC9heC10cmVlLXZpZXctbGVnYWN5PlxuXG48bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgQGlmIChpdGVtLnR5cGUgPT09ICdjYXRlZ29yeScpIHtcbiAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBheC10ZXh0LXdhcm5pbmcgZmEtZm9sZGVyXCI+PC9heC1pY29uPlxuICB9IEBlbHNlIHtcbiAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBheC10ZXh0LWFjY2VudDEgZmEtZmlsZS1jaGFydC1jb2x1bW5cIj48L2F4LWljb24+XG4gIH1cbiAge3sgaXRlbS50aXRsZSB9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { AXPReportViewerService } from '../../../reports';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPStateMessageComponent, } from '@acorex/platform/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute, NavigationEnd, Router, RouterModule } from '@angular/router';\nimport { filter, firstValueFrom, startWith } from 'rxjs';\nimport { AXPReportRunnerRootViewModel } from '../report-runner.viewmodel';\nimport { AXPReportCategoriesTreeComponent } from '../report-categories-tree/report-categories-tree.component';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/core/translation\";\nexport class AXMReportRunnerRootPageComponent extends AXPPageLayoutBaseComponent {\n constructor() {\n super(...arguments);\n this.vm = inject(AXPReportRunnerRootViewModel);\n this.layoutService = inject(AXPLayoutThemeService);\n this.activatedRoute = inject(ActivatedRoute);\n this.unsubscribe = inject(AXUnsubscriber);\n this.reportDefinitionService = inject(AXPReportViewerService);\n this.workflow = inject(AXPWorkflowService);\n this.router = inject(Router);\n this.baseRoutes = [this.sessionService.application?.name, 'report-management', 'reports'];\n }\n async ngOnInit() {\n await super.ngOnInit();\n //\n this.router.events\n .pipe(this.unsubscribe.takeUntilDestroy, filter((event) => event instanceof NavigationEnd), startWith(null))\n .subscribe(async () => {\n await this.loadFromRoute();\n });\n }\n async loadFromRoute() {\n const snapshot = this.activatedRoute.snapshot;\n const segments = await firstValueFrom(this.activatedRoute.url);\n let categoryId = segments[segments.length - 1]?.path ?? null;\n if (categoryId) {\n await this.vm.setActiveCategoryById(categoryId);\n }\n else {\n await this.vm.loadRootCategories();\n return;\n }\n //\n let reportId = snapshot.queryParamMap.get('report') ?? null;\n if (reportId) {\n // Navigate directly to viewer instead of showing parameters\n await this.navigateToViewer(reportId);\n }\n }\n //#region ---- Event Handlers ----\n /**\n * Handle category selection from tree\n */\n async onCategoryClick(category) {\n await this.navigateToCategory(category);\n }\n /**\n * Handle report selection from tree\n */\n async onReportClick(report) {\n await this.navigateToReport(report);\n }\n /**\n * Navigate directly to report viewer with the selected report\n */\n async navigateToViewer(reportId) {\n const baseViewerRoute = [this.sessionService.application?.name, 'report-management', 'viewer'];\n await this.router.navigate(baseViewerRoute, {\n queryParams: { reportId }\n });\n }\n //#endregion\n async navigateToCategory(category) {\n // Find the path to this category\n const path = await this.reportDefinitionService.getCategoriesPathById(category.id);\n // Find the index of the target category in the path\n let urlParts = [...this.baseRoutes];\n for (const cat of path) {\n urlParts.push(cat.id);\n }\n await this.router.navigate(urlParts);\n }\n async navigateToReport(report) {\n // Navigate directly to viewer instead of showing parameters in runner\n await this.navigateToViewer(report.id);\n }\n //#region ---- Page Configuration Overrides ----\n async getPageBreadcrumbs() {\n const path = this.vm.activeCategoriesPath();\n const report = {\n name: 'reports',\n title: await this.translateService.translateAsync('@report-management:module.menus.root.title'),\n command: {\n name: 'navigate-to-reports-root',\n },\n };\n if (!path || path.length === 0) {\n return [report];\n }\n const breadcrumbs = [report];\n let urlParts = [...this.baseRoutes];\n for (const cat of path) {\n urlParts = [...urlParts, cat.id];\n breadcrumbs.push({\n name: cat.id,\n title: cat.title,\n command: {\n name: 'navigate-to-category',\n options: {\n category: cat,\n },\n },\n });\n }\n return breadcrumbs;\n }\n async getSecondaryMenuItems() {\n return [];\n }\n async getPageTitle() {\n return this.vm.title();\n }\n async getPageDescription() {\n return this.vm.description();\n }\n async getBackButton() {\n const categoriesPath = this.vm.activeCategoriesPath();\n if (!categoriesPath || categoriesPath.length === 0) {\n // At root level, no back button\n return null;\n }\n if (categoriesPath.length === 1) {\n // At first level category, back to reports root\n return {\n title: await this.translateService.translateAsync('@report-management:module.menus.root.title'),\n };\n }\n // At deeper level, back to parent category\n const parentCategory = categoriesPath[categoriesPath.length - 2];\n return {\n title: parentCategory.title,\n };\n }\n async onBackButtonClick() {\n const categoriesPath = this.vm.activeCategoriesPath();\n if (!categoriesPath || categoriesPath.length <= 1) {\n // Navigate back to reports root\n await this.router.navigate([...this.baseRoutes]);\n }\n else {\n // Navigate to parent category\n const parentCategoriesPath = categoriesPath.slice(0, -1);\n let urlParts = [...this.baseRoutes];\n for (const cat of parentCategoriesPath) {\n urlParts.push(cat.id);\n }\n await this.router.navigate(urlParts);\n }\n }\n async execute(command) {\n switch (command.name) {\n case 'navigate-to-category':\n await this.navigateToCategory(command.options?.['category']);\n break;\n case 'navigate-to-reports-root':\n await this.router.navigate([...this.baseRoutes]);\n break;\n case 'create-report':\n await this.workflow.execute('report-create', {\n data: {\n categoryId: this.vm.activeCategory()?.id ?? null,\n },\n });\n break;\n }\n }\n async getPrimaryMenuItems() {\n return [\n // {\n // title: '@general:actions.create.title',\n // icon: 'fa-light fa-plus',\n // color: 'primary',\n // command: {\n // name: 'create-report',\n // },\n // },\n ];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.19\", ngImport: i0, type: AXMReportRunnerRootPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.19\", type: AXMReportRunnerRootPageComponent, isStandalone: true, selector: \"ng-component\", host: { classAttribute: \"axp-report-runner-root-page\" }, providers: [\n AXUnsubscriber,\n AXPReportRunnerRootViewModel,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMReportRunnerRootPageComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if (vm.showSideMenu()) {\\n <axp-layout-start-side>\\n <axp-layout-header>\\n <axp-layout-title>{{ t('@report-management:report-runner.terms.menu-title') | async }}</axp-layout-title>\\n <axp-layout-toolbar>\\n <!-- <ax-search-box\\n [delayTime]=\\\"300\\\"\\n [ngModel]=\\\"vm.searchExpression()\\\"\\n (onValueChanged)=\\\"vm.search($event.value)\\\"\\n [placeholder]=\\\"t('@report-management:report-runner.terms.search-placeholder') | async\\\"\\n >\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box> -->\\n </axp-layout-toolbar>\\n </axp-layout-header>\\n <axp-layout-content>\\n <axp-report-categories-tree (categoryClick)=\\\"onCategoryClick($event)\\\" (reportClick)=\\\"onReportClick($event)\\\" />\\n </axp-layout-content>\\n </axp-layout-start-side>\\n }\\n\\n <axp-page-content>\\n <!-- Desktop and Mobile: Always show desktop template -->\\n <ng-container *ngTemplateOutlet=\\\"desktop\\\"> </ng-container>\\n </axp-page-content>\\n\\n <!-- Desktop: Grid-based browser for main content -->\\n <ng-template #desktop>\\n <div class=\\\"__reports-browser\\\">\\n @if (vm.categories().length > 0) {\\n <div class=\\\"__section\\\">\\n <h3 class=\\\"__section-title\\\">{{ t('@report-management:reports.terms.categories') | async }}</h3>\\n <div class=\\\"__items-grid\\\">\\n @for (category of vm.categories(); track category.id) {\\n <div class=\\\"__item __category\\\" (click)=\\\"navigateToCategory(category)\\\">\\n <div class=\\\"__item-icon\\\">\\n <ax-icon class=\\\"fa-solid fa-folder\\\"></ax-icon>\\n </div>\\n <div class=\\\"__item-content\\\">\\n <div class=\\\"__item-title\\\">{{ category.title }}</div>\\n @if (category.description) {\\n <div class=\\\"__item-description\\\">{{ category.description }}</div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n @if (vm.reports().length > 0) {\\n <div class=\\\"__section\\\">\\n <h3 class=\\\"__section-title\\\">{{ t('@report-management:reports.terms.reports') | async }}</h3>\\n <div class=\\\"__items-grid\\\">\\n @for (report of vm.reports(); track report.id) {\\n <div class=\\\"__item __report\\\" (click)=\\\"navigateToReport(report)\\\">\\n <div class=\\\"__item-icon\\\">\\n <ax-icon class=\\\"fa-solid fa-file-chart-column\\\"></ax-icon>\\n </div>\\n <div class=\\\"__item-content\\\">\\n <div class=\\\"__item-title\\\">{{ report.title }}</div>\\n @if (report.description) {\\n <div class=\\\"__item-description\\\">{{ report.description }}</div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n @if (vm.categories().length === 0 && vm.reports().length === 0) {\\n <axp-state-message\\n icon=\\\"fa-light fa-folder-open\\\"\\n [title]=\\\"'@report-management:report-runner.components.report-runner.empty-states.no-items-found.title'\\\"\\n [description]=\\\"'@report-management:report-runner.components.report-runner.empty-states.no-items-found.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </div>\\n </ng-template>\\n</axp-page-layout>\\n\", styles: [\".axp-report-runner-root-page axp-layout-start-side{height:100%;width:20rem;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))}@media(min-width:1920px){.axp-report-runner-root-page axp-layout-start-side{width:24rem}}.axp-report-runner-root-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding-left:1rem;padding-right:1rem}.axp-report-runner-root-page .__reports-browser>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.axp-report-runner-root-page .__reports-browser{padding:.75rem}@media(min-width:1024px){.axp-report-runner-root-page .__reports-browser{padding:1.5rem}}.axp-report-runner-root-page .__reports-browser .__section>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.axp-report-runner-root-page .__reports-browser .__section .__section-title{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-runner-root-page .__reports-browser .__section .__section-title ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media(min-width:768px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1536px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:2560px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item{cursor:pointer;border-radius:.5rem;border-width:1px;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;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-report-runner-root-page .__reports-browser .__section .__items-grid .__item: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-report-runner-root-page .__reports-browser .__section .__items-grid .__item{display:flex;align-items:flex-start;gap:.75rem}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-icon{display:flex;height:2.5rem;width:2.5rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.25rem;font-size:1.125rem;line-height:1.75rem}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content{min-width:0px;flex:1 1 0%}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-description{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:rgba(var(--ax-sys-color-warning-500),.1)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-warning-500),.05)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:rgba(var(--ax-sys-color-primary-500),.1)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-500),.05)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"ngmodule\", type: \n //\n AXSearchBoxModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXBreadcrumbsModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i3.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"component\", type: \n //\n AXPPageLayoutComponent, selector: \"axp-page-layout\" }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"component\", type: AXPThemeLayoutToolbarComponent, selector: \"axp-layout-toolbar\" }, { kind: \"component\", type: AXPThemeLayoutHeaderComponent, selector: \"axp-layout-header\" }, { kind: \"component\", type: AXPThemeLayoutStartSideComponent, selector: \"axp-layout-page-start-side, axp-layout-start-side\" }, { kind: \"component\", type: \n //\n AXPReportCategoriesTreeComponent, selector: \"axp-report-categories-tree\", outputs: [\"categoryClick\", \"reportClick\"] }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.19\", ngImport: i0, type: AXMReportRunnerRootPageComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n //\n AXSearchBoxModule,\n AXDecoratorModule,\n AXBreadcrumbsModule,\n AXTranslationModule,\n AXButtonModule,\n AXTabsModule,\n AXBadgeModule,\n AXLoadingModule,\n AXDropdownButtonModule,\n //\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutToolbarComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutStartSideComponent,\n //\n AXPReportCategoriesTreeComponent,\n AXPStateMessageComponent,\n ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n AXUnsubscriber,\n AXPReportRunnerRootViewModel,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMReportRunnerRootPageComponent,\n },\n ], host: { class: 'axp-report-runner-root-page' }, template: \"<axp-page-layout *translate=\\\"let t\\\">\\n @if (vm.showSideMenu()) {\\n <axp-layout-start-side>\\n <axp-layout-header>\\n <axp-layout-title>{{ t('@report-management:report-runner.terms.menu-title') | async }}</axp-layout-title>\\n <axp-layout-toolbar>\\n <!-- <ax-search-box\\n [delayTime]=\\\"300\\\"\\n [ngModel]=\\\"vm.searchExpression()\\\"\\n (onValueChanged)=\\\"vm.search($event.value)\\\"\\n [placeholder]=\\\"t('@report-management:report-runner.terms.search-placeholder') | async\\\"\\n >\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box> -->\\n </axp-layout-toolbar>\\n </axp-layout-header>\\n <axp-layout-content>\\n <axp-report-categories-tree (categoryClick)=\\\"onCategoryClick($event)\\\" (reportClick)=\\\"onReportClick($event)\\\" />\\n </axp-layout-content>\\n </axp-layout-start-side>\\n }\\n\\n <axp-page-content>\\n <!-- Desktop and Mobile: Always show desktop template -->\\n <ng-container *ngTemplateOutlet=\\\"desktop\\\"> </ng-container>\\n </axp-page-content>\\n\\n <!-- Desktop: Grid-based browser for main content -->\\n <ng-template #desktop>\\n <div class=\\\"__reports-browser\\\">\\n @if (vm.categories().length > 0) {\\n <div class=\\\"__section\\\">\\n <h3 class=\\\"__section-title\\\">{{ t('@report-management:reports.terms.categories') | async }}</h3>\\n <div class=\\\"__items-grid\\\">\\n @for (category of vm.categories(); track category.id) {\\n <div class=\\\"__item __category\\\" (click)=\\\"navigateToCategory(category)\\\">\\n <div class=\\\"__item-icon\\\">\\n <ax-icon class=\\\"fa-solid fa-folder\\\"></ax-icon>\\n </div>\\n <div class=\\\"__item-content\\\">\\n <div class=\\\"__item-title\\\">{{ category.title }}</div>\\n @if (category.description) {\\n <div class=\\\"__item-description\\\">{{ category.description }}</div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n @if (vm.reports().length > 0) {\\n <div class=\\\"__section\\\">\\n <h3 class=\\\"__section-title\\\">{{ t('@report-management:reports.terms.reports') | async }}</h3>\\n <div class=\\\"__items-grid\\\">\\n @for (report of vm.reports(); track report.id) {\\n <div class=\\\"__item __report\\\" (click)=\\\"navigateToReport(report)\\\">\\n <div class=\\\"__item-icon\\\">\\n <ax-icon class=\\\"fa-solid fa-file-chart-column\\\"></ax-icon>\\n </div>\\n <div class=\\\"__item-content\\\">\\n <div class=\\\"__item-title\\\">{{ report.title }}</div>\\n @if (report.description) {\\n <div class=\\\"__item-description\\\">{{ report.description }}</div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n @if (vm.categories().length === 0 && vm.reports().length === 0) {\\n <axp-state-message\\n icon=\\\"fa-light fa-folder-open\\\"\\n [title]=\\\"'@report-management:report-runner.components.report-runner.empty-states.no-items-found.title'\\\"\\n [description]=\\\"'@report-management:report-runner.components.report-runner.empty-states.no-items-found.description'\\\"\\n >\\n </axp-state-message>\\n }\\n </div>\\n </ng-template>\\n</axp-page-layout>\\n\", styles: [\".axp-report-runner-root-page axp-layout-start-side{height:100%;width:20rem;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))}@media(min-width:1920px){.axp-report-runner-root-page axp-layout-start-side{width:24rem}}.axp-report-runner-root-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding-left:1rem;padding-right:1rem}.axp-report-runner-root-page .__reports-browser>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.axp-report-runner-root-page .__reports-browser{padding:.75rem}@media(min-width:1024px){.axp-report-runner-root-page .__reports-browser{padding:1.5rem}}.axp-report-runner-root-page .__reports-browser .__section>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.axp-report-runner-root-page .__reports-browser .__section .__section-title{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600}.axp-report-runner-root-page .__reports-browser .__section .__section-title ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media(min-width:768px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1536px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:2560px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item{cursor:pointer;border-radius:.5rem;border-width:1px;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;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-report-runner-root-page .__reports-browser .__section .__items-grid .__item: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-report-runner-root-page .__reports-browser .__section .__items-grid .__item{display:flex;align-items:flex-start;gap:.75rem}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-icon{display:flex;height:2.5rem;width:2.5rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.25rem;font-size:1.125rem;line-height:1.75rem}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content{min-width:0px;flex:1 1 0%}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-description{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.875rem;line-height:1.25rem;opacity:.75}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:rgba(var(--ax-sys-color-warning-500),.1)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-warning-500),.05)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:rgba(var(--ax-sys-color-primary-500),.1)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon ax-icon{--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1));background-color:rgba(var(--ax-sys-color-primary-500),.05)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXJ1bm5lci1yb290LXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3JlcG9ydC1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvcmVwb3J0LXJ1bm5lci9yZXBvcnQtcnVubmVyLXJvb3QtcGFnZS9yZXBvcnQtcnVubmVyLXJvb3QtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvcmVwb3J0LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9yZXBvcnQtcnVubmVyL3JlcG9ydC1ydW5uZXItcm9vdC1wYWdlL3JlcG9ydC1ydW5uZXItcm9vdC1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUEwQyxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFD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O3dCQUN0Qiw0QkFBNEI7d0JBQzVCLDhCQUE4Qjt3QkFDOUIsNkJBQTZCO3dCQUM3QixnQ0FBZ0M7d0JBQ2hDLEVBQUU7d0JBQ0YsZ0NBQWdDO3dCQUNoQyx3QkFBd0I7cUJBQzNCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQLGNBQWM7d0JBQ2QsNEJBQTRCO3dCQUM1Qjs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLGtDQUFrQzt5QkFDaEQ7cUJBQ0osUUFDSyxFQUFFLEtBQUssRUFBRSw2QkFBNkIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCcmVhZGNydW1ic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQVhQUmVwb3J0Q2F0ZWdvcnksIEFYUFJlcG9ydERlZmluaXRpb24sIEFYUFJlcG9ydFZpZXdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9yZXBvcnRzJztcbmltcG9ydCB7IEFYUEFjdGlvbk1lbnVJdGVtLCBBWFBCYWNrQnV0dG9uLCBBWFBCcmVhZGNydW1iSXRlbSwgQVhQRXhlY3V0ZUNvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0SGVhZGVyQ29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0U3RhcnRTaWRlQ29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0VG9vbGJhckNvbXBvbmVudCxcbiAgICBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQUGFnZUxheW91dEJhc2UsIEFYUFBhZ2VMYXlvdXRCYXNlQ29tcG9uZW50LCBBWFBQYWdlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvdmlld3MnO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0VmFsdWVGcm9tLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUFJlcG9ydFJ1bm5lclJvb3RWaWV3TW9kZWwgfSBmcm9tICcuLi9yZXBvcnQtcnVubmVyLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBBWFBSZXBvcnRDYXRlZ29yaWVzVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC1jYXRlZ29yaWVzLXRyZWUvcmVwb3J0LWNhdGVnb3JpZXMtdHJlZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29uc3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICAvL1xuICAgICAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICAgICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgICAgIEFYQnJlYWRjcnVtYnNNb2R1bGUsXG4gICAgICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgICAgICBBWFRhYnNNb2R1bGUsXG4gICAgICAgIEFYQmFkZ2VNb2R1bGUsXG4gICAgICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICAgICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcbiAgICAgICAgLy9cbiAgICAgICAgQVhQUGFnZUxheW91dENvbXBvbmVudCxcbiAgICAgICAgQVhQVGhlbWVMYXlvdXRCbG9ja0NvbXBvbmVudCxcbiAgICAgICAgQVhQVGhlbWVMYXlvdXRUb29sYmFyQ29tcG9uZW50LFxuICAgICAgICBBWFBUaGVtZUxheW91dEhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgQVhQVGhlbWVMYXlvdXRTdGFydFNpZGVDb21wb25lbnQsXG4gICAgICAgIC8vXG4gICAgICAgIEFYUFJlcG9ydENhdGVnb3JpZXNUcmVlQ29tcG9uZW50LFxuICAgICAgICBBWFBTdGF0ZU1lc3NhZ2VDb21wb25lbnQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVwb3J0LXJ1bm5lci1yb290LXBhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9yZXBvcnQtcnVubmVyLXJvb3QtcGFnZS5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQVhVbnN1YnNjcmliZXIsXG4gICAgICAgIEFYUFJlcG9ydFJ1bm5lclJvb3RWaWV3TW9kZWwsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFYUFBhZ2VMYXlvdXRCYXNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEFYTVJlcG9ydFJ1bm5lclJvb3RQYWdlQ29tcG9uZW50LFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdDogeyBjbGFzczogJ2F4cC1yZXBvcnQtcnVubmVyLXJvb3QtcGFnZScgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNUmVwb3J0UnVubmVyUm9vdFBhZ2VDb21wb25lbnQgZXh0ZW5kcyBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCB7XG4gICAgcHJvdGVjdGVkIHZtID0gaW5qZWN0KEFYUFJlcG9ydFJ1bm5lclJvb3RWaWV3TW9kZWwpO1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSBsYXlvdXRTZXJ2aWNlID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZSA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG4gICAgcHJpdmF0ZSByZXBvcnREZWZpbml0aW9uU2VydmljZSA9IGluamVjdChBWFBSZXBvcnRWaWV3ZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHdvcmtmbG93ID0gaW5qZWN0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gICAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICAgIHByaXZhdGUgYmFzZVJvdXRlcyA9IFt0aGlzLnNlc3Npb25TZXJ2aWNlLmFwcGxpY2F0aW9uPy5uYW1lLCAncmVwb3J0LW1hbmFnZW1lbnQnLCAncmVwb3J0cyddO1xuXG4gICAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIC8vXG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZS50YWtlVW50aWxEZXN0cm95LFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkRnJvbVJvdXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGxvYWRGcm9tUm91dGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdDtcbiAgICAgICAgY29uc3Qgc2VnbWVudHMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFjdGl2YXRlZFJvdXRlLnVybCk7XG5cbiAgICAgICAgbGV0IGNhdGVnb3J5SWQgPSBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXT8ucGF0aCA/PyBudWxsO1xuICAgICAgICBpZiAoY2F0ZWdvcnlJZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy52bS5zZXRBY3RpdmVDYXRlZ29yeUJ5SWQoY2F0ZWdvcnlJZCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnZtLmxvYWRSb290Q2F0ZWdvcmllcygpO1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgLy9cblxuICAgICAgICBsZXQgcmVwb3J0SWQgPSBzbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgncmVwb3J0JykgPz8gbnVsbDtcblxuICAgICAgICBpZiAocmVwb3J0SWQpIHtcbiAgICAgICAgICAgIC8vIE5hdmlnYXRlIGRpcmVjdGx5IHRvIHZpZXdlciBpbnN0ZWFkIG9mIHNob3dpbmcgcGFyYW1ldGVyc1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvVmlld2VyKHJlcG9ydElkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgRXZlbnQgSGFuZGxlcnMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgY2F0ZWdvcnkgc2VsZWN0aW9uIGZyb20gdHJlZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBvbkNhdGVnb3J5Q2xpY2soY2F0ZWdvcnk6IEFYUFJlcG9ydENhdGVnb3J5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUb0NhdGVnb3J5KGNhdGVnb3J5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgcmVwb3J0IHNlbGVjdGlvbiBmcm9tIHRyZWVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYXN5bmMgb25SZXBvcnRDbGljayhyZXBvcnQ6IEFYUFJlcG9ydERlZmluaXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvUmVwb3J0KHJlcG9ydCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTmF2aWdhdGUgZGlyZWN0bHkgdG8gcmVwb3J0IHZpZXdlciB3aXRoIHRoZSBzZWxlY3RlZCByZXBvcnRcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIG5hdmlnYXRlVG9WaWV3ZXIocmVwb3J0SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBiYXNlVmlld2VyUm91dGUgPSBbdGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZSwgJ3JlcG9ydC1tYW5hZ2VtZW50JywgJ3ZpZXdlciddO1xuICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShiYXNlVmlld2VyUm91dGUsIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IHJlcG9ydElkIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgbmF2aWdhdGVUb0NhdGVnb3J5KGNhdGVnb3J5OiBBWFBSZXBvcnRDYXRlZ29yeSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICAvLyBGaW5kIHRoZSBwYXRoIHRvIHRoaXMgY2F0ZWdvcnlcbiAgICAgICAgY29uc3QgcGF0aCA9IGF3YWl0IHRoaXMucmVwb3J0RGVmaW5pdGlvblNlcnZpY2UuZ2V0Q2F0ZWdvcmllc1BhdGhCeUlkKGNhdGVnb3J5LmlkKTtcbiAgICAgICAgLy8gRmluZCB0aGUgaW5kZXggb2YgdGhlIHRhcmdldCBjYXRlZ29yeSBpbiB0aGUgcGF0aFxuICAgICAgICBsZXQgdXJsUGFydHMgPSBbLi4udGhpcy5iYXNlUm91dGVzXTtcbiAgICAgICAgZm9yIChjb25zdCBjYXQgb2YgcGF0aCkge1xuICAgICAgICAgICAgdXJsUGFydHMucHVzaChjYXQuaWQpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKHVybFBhcnRzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgbmF2aWdhdGVUb1JlcG9ydChyZXBvcnQ6IEFYUFJlcG9ydERlZmluaXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8gTmF2aWdhdGUgZGlyZWN0bHkgdG8gdmlld2VyIGluc3RlYWQgb2Ygc2hvd2luZyBwYXJhbWV0ZXJzIGluIHJ1bm5lclxuICAgICAgICBhd2FpdCB0aGlzLm5hdmlnYXRlVG9WaWV3ZXIocmVwb3J0LmlkKTtcbiAgICB9XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFBhZ2UgQ29uZmlndXJhdGlvbiBPdmVycmlkZXMgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZ2V0UGFnZUJyZWFkY3J1bWJzKCk6IFByb21pc2U8QVhQQnJlYWRjcnVtYkl0ZW1bXT4ge1xuICAgICAgICBjb25zdCBwYXRoID0gdGhpcy52bS5hY3RpdmVDYXRlZ29yaWVzUGF0aCgpO1xuICAgICAgICBjb25zdCByZXBvcnQgPSB7XG4gICAgICAgICAgICBuYW1lOiAncmVwb3J0cycsXG4gICAgICAgICAgICB0aXRsZTogYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAcmVwb3J0LW1hbmFnZW1lbnQ6bW9kdWxlLm1lbnVzLnJvb3QudGl0bGUnKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnbmF2aWdhdGUtdG8tcmVwb3J0cy1yb290JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGlmICghcGF0aCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtyZXBvcnRdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWJzOiBBWFBCcmVhZGNydW1iSXRlbVtdID0gW3JlcG9ydF07XG4gICAgICAgIGxldCB1cmxQYXJ0cyA9IFsuLi50aGlzLmJhc2VSb3V0ZXNdO1xuICAgICAgICBmb3IgKGNvbnN0IGNhdCBvZiBwYXRoKSB7XG4gICAgICAgICAgICB1cmxQYXJ0cyA9IFsuLi51cmxQYXJ0cywgY2F0LmlkXTtcbiAgICAgICAgICAgIGJyZWFkY3J1bWJzLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IGNhdC5pZCxcbiAgICAgICAgICAgICAgICB0aXRsZTogY2F0LnRpdGxlLFxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ25hdmlnYXRlLXRvLWNhdGVnb3J5JyxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk6IGNhdCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJyZWFkY3J1bWJzO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGFzeW5jIGdldFNlY29uZGFyeU1lbnVJdGVtcygpOiBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGFzeW5jIGdldFBhZ2VUaXRsZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy52bS50aXRsZSgpITtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBhc3luYyBnZXRQYWdlRGVzY3JpcHRpb24oKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZtLmRlc2NyaXB0aW9uKCkhO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGFzeW5jIGdldEJhY2tCdXR0b24oKTogUHJvbWlzZTxBWFBCYWNrQnV0dG9uIHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBjYXRlZ29yaWVzUGF0aCA9IHRoaXMudm0uYWN0aXZlQ2F0ZWdvcmllc1BhdGgoKTtcblxuICAgICAgICBpZiAoIWNhdGVnb3JpZXNQYXRoIHx8IGNhdGVnb3JpZXNQYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gQXQgcm9vdCBsZXZlbCwgbm8gYmFjayBidXR0b25cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNhdGVnb3JpZXNQYXRoLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgLy8gQXQgZmlyc3QgbGV2ZWwgY2F0ZWdvcnksIGJhY2sgdG8gcmVwb3J0cyByb290XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0ByZXBvcnQtbWFuYWdlbWVudDptb2R1bGUubWVudXMucm9vdC50aXRsZScpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEF0IGRlZXBlciBsZXZlbCwgYmFjayB0byBwYXJlbnQgY2F0ZWdvcnlcbiAgICAgICAgY29uc3QgcGFyZW50Q2F0ZWdvcnkgPSBjYXRlZ29yaWVzUGF0aFtjYXRlZ29yaWVzUGF0aC5sZW5ndGggLSAyXTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRpdGxlOiBwYXJlbnRDYXRlZ29yeS50aXRsZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBhc3luYyBvbkJhY2tCdXR0b25DbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcmllc1BhdGggPSB0aGlzLnZtLmFjdGl2ZUNhdGVnb3JpZXNQYXRoKCk7XG5cbiAgICAgICAgaWYgKCFjYXRlZ29yaWVzUGF0aCB8fCBjYXRlZ29yaWVzUGF0aC5sZW5ndGggPD0gMSkge1xuICAgICAgICAgICAgLy8gTmF2aWdhdGUgYmFjayB0byByZXBvcnRzIHJvb3RcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFsuLi50aGlzLmJhc2VSb3V0ZXNdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5hdmlnYXRlIHRvIHBhcmVudCBjYXRlZ29yeVxuICAgICAgICAgICAgY29uc3QgcGFyZW50Q2F0ZWdvcmllc1BhdGggPSBjYXRlZ29yaWVzUGF0aC5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgICBsZXQgdXJsUGFydHMgPSBbLi4udGhpcy5iYXNlUm91dGVzXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2F0IG9mIHBhcmVudENhdGVnb3JpZXNQYXRoKSB7XG4gICAgICAgICAgICAgICAgdXJsUGFydHMucHVzaChjYXQuaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUodXJsUGFydHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBzd2l0Y2ggKGNvbW1hbmQubmFtZSkge1xuICAgICAgICAgICAgY2FzZSAnbmF2aWdhdGUtdG8tY2F0ZWdvcnknOlxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUb0NhdGVnb3J5KGNvbW1hbmQub3B0aW9ucz8uWydjYXRlZ29yeSddIGFzIEFYUFJlcG9ydENhdGVnb3J5KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ25hdmlnYXRlLXRvLXJlcG9ydHMtcm9vdCc6XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWy4uLnRoaXMuYmFzZVJvdXRlc10pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY3JlYXRlLXJlcG9ydCc6XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdyZXBvcnQtY3JlYXRlJywge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeUlkOiB0aGlzLnZtLmFjdGl2ZUNhdGVnb3J5KCk/LmlkID8/IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvdmVycmlkZSBhc3luYyBnZXRQcmltYXJ5TWVudUl0ZW1zKCk6IFByb21pc2U8QVhQQWN0aW9uTWVudUl0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgLy8gICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5jcmVhdGUudGl0bGUnLFxuICAgICAgICAgICAgLy8gICAgIGljb246ICdmYS1saWdodCBmYS1wbHVzJyxcbiAgICAgICAgICAgIC8vICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICAgICAgLy8gICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICAgIC8vICAgICAgICAgbmFtZTogJ2NyZWF0ZS1yZXBvcnQnLFxuICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAvLyB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuIiwiPGF4cC1wYWdlLWxheW91dCAqdHJhbnNsYXRlPVwibGV0IHRcIj5cbiAgQGlmICh2bS5zaG93U2lkZU1lbnUoKSkge1xuICAgIDxheHAtbGF5b3V0LXN0YXJ0LXNpZGU+XG4gICAgICA8YXhwLWxheW91dC1oZWFkZXI+XG4gICAgICAgIDxheHAtbGF5b3V0LXRpdGxlPnt7IHQoJ0ByZXBvcnQtbWFuYWdlbWVudDpyZXBvcnQtcnVubmVyLnRlcm1zLm1lbnUtdGl0bGUnKSB8IGFzeW5jIH19PC9heHAtbGF5b3V0LXRpdGxlPlxuICAgICAgICA8YXhwLWxheW91dC10b29sYmFyPlxuICAgICAgICAgIDwhLS0gPGF4LXNlYXJjaC1ib3hcbiAgICAgICAgICAgIFtkZWxheVRpbWVdPVwiMzAwXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInZtLnNlYXJjaEV4cHJlc3Npb24oKVwiXG4gICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwidm0uc2VhcmNoKCRldmVudC52YWx1ZSlcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQoJ0ByZXBvcnQtbWFuYWdlbWVudDpyZXBvcnQtcnVubmVyLnRlcm1zLnNlYXJjaC1wbGFjZWhvbGRlcicpIHwgYXN5bmNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b24+XG4gICAgICAgICAgPC9heC1zZWFyY2gtYm94PiAtLT5cbiAgICAgICAgPC9heHAtbGF5b3V0LXRvb2xiYXI+XG4gICAgICA8L2F4cC1sYXlvdXQtaGVhZGVyPlxuICAgICAgPGF4cC1sYXlvdXQtY29udGVudD5cbiAgICAgICAgPGF4cC1yZXBvcnQtY2F0ZWdvcmllcy10cmVlIChjYXRlZ29yeUNsaWNrKT1cIm9uQ2F0ZWdvcnlDbGljaygkZXZlbnQpXCIgKHJlcG9ydENsaWNrKT1cIm9uUmVwb3J0Q2xpY2soJGV2ZW50KVwiIC8+XG4gICAgICA8L2F4cC1sYXlvdXQtY29udGVudD5cbiAgICA8L2F4cC1sYXlvdXQtc3RhcnQtc2lkZT5cbiAgfVxuXG4gIDxheHAtcGFnZS1jb250ZW50PlxuICAgIDwhLS0gRGVza3RvcCBhbmQgTW9iaWxlOiBBbHdheXMgc2hvdyBkZXNrdG9wIHRlbXBsYXRlIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXNrdG9wXCI+IDwvbmctY29udGFpbmVyPlxuICA8L2F4cC1wYWdlLWNvbnRlbnQ+XG5cbiAgPCEtLSBEZXNrdG9wOiBHcmlkLWJhc2VkIGJyb3dzZXIgZm9yIG1haW4gY29udGVudCAtLT5cbiAgPG5nLXRlbXBsYXRlICNkZXNrdG9wPlxuICAgIDxkaXYgY2xhc3M9XCJfX3JlcG9ydHMtYnJvd3NlclwiPlxuICAgICAgQGlmICh2bS5jYXRlZ29yaWVzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiX19zZWN0aW9uXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiX19zZWN0aW9uLXRpdGxlXCI+e3sgdCgnQHJlcG9ydC1tYW5hZ2VtZW50OnJlcG9ydHMudGVybXMuY2F0ZWdvcmllcycpIHwgYXN5bmMgfX08L2gzPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2l0ZW1zLWdyaWRcIj5cbiAgICAgICAgICAgIEBmb3IgKGNhdGVnb3J5IG9mIHZtLmNhdGVnb3JpZXMoKTsgdHJhY2sgY2F0ZWdvcnkuaWQpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9faXRlbSBfX2NhdGVnb3J5XCIgKGNsaWNrKT1cIm5hdmlnYXRlVG9DYXRlZ29yeShjYXRlZ29yeSlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19pdGVtLWljb25cIj5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZm9sZGVyXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2l0ZW0tY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9faXRlbS10aXRsZVwiPnt7IGNhdGVnb3J5LnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICBAaWYgKGNhdGVnb3J5LmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2l0ZW0tZGVzY3JpcHRpb25cIj57eyBjYXRlZ29yeS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAodm0ucmVwb3J0cygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIl9fc2VjdGlvblwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cIl9fc2VjdGlvbi10aXRsZVwiPnt7IHQoJ0ByZXBvcnQtbWFuYWdlbWVudDpyZXBvcnRzLnRlcm1zLnJlcG9ydHMnKSB8IGFzeW5jIH19PC9oMz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19pdGVtcy1ncmlkXCI+XG4gICAgICAgICAgICBAZm9yIChyZXBvcnQgb2Ygdm0ucmVwb3J0cygpOyB0cmFjayByZXBvcnQuaWQpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9faXRlbSBfX3JlcG9ydFwiIChjbGljayk9XCJuYXZpZ2F0ZVRvUmVwb3J0KHJlcG9ydClcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19pdGVtLWljb25cIj5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZmlsZS1jaGFydC1jb2x1bW5cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9faXRlbS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19pdGVtLXRpdGxlXCI+e3sgcmVwb3J0LnRpdGxlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICBAaWYgKHJlcG9ydC5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19pdGVtLWRlc2NyaXB0aW9uXCI+e3sgcmVwb3J0LmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmICh2bS5jYXRlZ29yaWVzKCkubGVuZ3RoID09PSAwICYmIHZtLnJlcG9ydHMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPGF4cC1zdGF0ZS1tZXNzYWdlXG4gICAgICAgICAgaWNvbj1cImZhLWxpZ2h0IGZhLWZvbGRlci1vcGVuXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0ByZXBvcnQtbWFuYWdlbWVudDpyZXBvcnQtcnVubmVyLmNvbXBvbmVudHMucmVwb3J0LXJ1bm5lci5lbXB0eS1zdGF0ZXMubm8taXRlbXMtZm91bmQudGl0bGUnXCJcbiAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ0ByZXBvcnQtbWFuYWdlbWVudDpyZXBvcnQtcnVubmVyLmNvbXBvbmVudHMucmVwb3J0LXJ1bm5lci5lbXB0eS1zdGF0ZXMubm8taXRlbXMtZm91bmQuZGVzY3JpcHRpb24nXCJcbiAgICAgICAgPlxuICAgICAgICA8L2F4cC1zdGF0ZS1tZXNzYWdlPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9heHAtcGFnZS1sYXlvdXQ+XG4iXX0="],"names":["i1","i2","i3"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { AXPRootLayoutComponent } from '@acorex/platform/themes/default';
|
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
7
|
import { Injectable, inject, NgModule, computed, effect, signal, ChangeDetectionStrategy, Component, ViewEncapsulation, viewChild, DestroyRef, input, untracked } from '@angular/core';
|
|
8
8
|
import { ROUTES, ActivatedRoute, Router } from '@angular/router';
|
|
9
|
-
import { AXP_MENU_PROVIDER } from '@acorex/platform/common';
|
|
9
|
+
import { AXP_MENU_PROVIDER, AXPCommonSettings, AXPSettingsService } from '@acorex/platform/common';
|
|
10
10
|
import * as i1 from '@acorex/core/translation';
|
|
11
11
|
import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
|
|
12
12
|
import { AXBadgeModule } from '@acorex/components/badge';
|
|
@@ -26,6 +26,7 @@ import { CommonModule } from '@angular/common';
|
|
|
26
26
|
import { AXLocaleService } from '@acorex/core/locale';
|
|
27
27
|
import * as i2 from '@acorex/platform/layout/widget-core';
|
|
28
28
|
import { AXPPageStatus, AXPWidgetRegistryService, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';
|
|
29
|
+
import { Subscription } from 'rxjs';
|
|
29
30
|
import { signalStore, withState, withComputed, withMethods, patchState, withHooks } from '@ngrx/signals';
|
|
30
31
|
import { AXBarChartComponent } from '@acorex/charts/bar-chart';
|
|
31
32
|
import { AXChartLegendComponent } from '@acorex/charts/chart-legend';
|
|
@@ -275,7 +276,7 @@ function routesFacory() {
|
|
|
275
276
|
children: [
|
|
276
277
|
{
|
|
277
278
|
path: '**',
|
|
278
|
-
loadComponent: () => import('./acorex-modules-report-management-report-runner-root-page.component-
|
|
279
|
+
loadComponent: () => import('./acorex-modules-report-management-report-runner-root-page.component-B0-p2yII.mjs').then((c) => c.AXMReportRunnerRootPageComponent),
|
|
279
280
|
data: { reuse: true },
|
|
280
281
|
},
|
|
281
282
|
],
|
|
@@ -1007,6 +1008,7 @@ const AXPReportViewerViewModel = signalStore(withState(() => ({
|
|
|
1007
1008
|
hasBeenExecuted: false, // Track if report has been executed at least once
|
|
1008
1009
|
status: AXPPageStatus.Idle,
|
|
1009
1010
|
error: null,
|
|
1011
|
+
showRowIndexColumn: false,
|
|
1010
1012
|
})), withComputed((store, widgetRegistryService = inject(AXPWidgetRegistryService)) => ({
|
|
1011
1013
|
//#region ---- Layout Management ----
|
|
1012
1014
|
availableLayouts: computed(() => {
|
|
@@ -1376,20 +1378,34 @@ const AXPReportViewerViewModel = signalStore(withState(() => ({
|
|
|
1376
1378
|
},
|
|
1377
1379
|
//#endregion
|
|
1378
1380
|
};
|
|
1379
|
-
}), withHooks((store, translationService = inject(AXTranslationService), localeService = inject(AXLocaleService)) =>
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1381
|
+
}), withHooks((store, translationService = inject(AXTranslationService), localeService = inject(AXLocaleService), settingsService = inject(AXPSettingsService)) => {
|
|
1382
|
+
const settingSubs = new Subscription();
|
|
1383
|
+
const syncShowRowIndexColumn = async () => {
|
|
1384
|
+
try {
|
|
1385
|
+
const value = await settingsService.get(AXPCommonSettings.ShowRowIndexColumn);
|
|
1386
|
+
patchState(store, { showRowIndexColumn: value ?? false });
|
|
1387
|
+
}
|
|
1388
|
+
catch {
|
|
1389
|
+
patchState(store, { showRowIndexColumn: false });
|
|
1390
|
+
}
|
|
1391
|
+
};
|
|
1392
|
+
return {
|
|
1393
|
+
async onInit() {
|
|
1394
|
+
translationService.langChanges$.subscribe(() => {
|
|
1395
|
+
// Handle language change if needed
|
|
1396
|
+
});
|
|
1397
|
+
localeService.profileChanged$.subscribe(() => {
|
|
1398
|
+
// Handle locale change if needed
|
|
1399
|
+
});
|
|
1400
|
+
void syncShowRowIndexColumn();
|
|
1401
|
+
settingSubs.add(settingsService.onLoaded.subscribe(() => void syncShowRowIndexColumn()));
|
|
1402
|
+
settingSubs.add(settingsService.onChanged.subscribe(() => void syncShowRowIndexColumn()));
|
|
1403
|
+
},
|
|
1404
|
+
onDestroy() {
|
|
1405
|
+
settingSubs.unsubscribe();
|
|
1406
|
+
},
|
|
1407
|
+
};
|
|
1408
|
+
}));
|
|
1393
1409
|
|
|
1394
1410
|
class AXPReportChartViewComponent {
|
|
1395
1411
|
constructor() {
|
|
@@ -1916,14 +1932,15 @@ class AXPReportTableViewComponent {
|
|
|
1916
1932
|
const defaultAction = applySystemActionDefault(action, systemAction.key);
|
|
1917
1933
|
return {
|
|
1918
1934
|
icon: defaultAction.icon ?? 'fa-light fa-eye',
|
|
1935
|
+
iconOnly: action.iconOnly ?? true,
|
|
1919
1936
|
text: defaultAction.title,
|
|
1920
1937
|
name: action.command?.name,
|
|
1921
|
-
divided: defaultAction.break,
|
|
1938
|
+
divided: defaultAction.break ?? action.break,
|
|
1922
1939
|
color: defaultAction.color,
|
|
1923
1940
|
};
|
|
1924
1941
|
}
|
|
1925
1942
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPReportTableViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1926
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPReportTableViewComponent, isStandalone: true, selector: "axp-report-table-view", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-data-table\n #grid\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n (onRowDbClick)=\"handleDbRowClick($event)\"\n class=\"ax-flex-1\"\n>\n <!-- Dynamic columns based on configuration -->\n <ax-index-column\n
|
|
1943
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AXPReportTableViewComponent, isStandalone: true, selector: "axp-report-table-view", viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-data-table\n #grid\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n (onRowDbClick)=\"handleDbRowClick($event)\"\n class=\"ax-flex-1\"\n>\n <!-- Dynamic columns based on configuration -->\n @if (vm.showRowIndexColumn()) {\n <ax-index-column\n [caption]=\"('@general:terms.common.row-number' | translate | async)!\"\n fixed=\"start\"\n [width]=\"'80px'\"\n [padZero]=\"false\"\n ></ax-index-column>\n }\n @if (vm.canSelectRows()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (column of columns(); track column.field) {\n @if (column.visible) {\n <axp-widget-column-renderer\n [customWidth]=\"column.width == 'auto' ? 'auto' : column.width + 'px'\"\n [caption]=\"(column.title | translate | async)!\"\n [node]=\"column.widget!\"\n ></axp-widget-column-renderer>\n }\n }\n @if (hasPrimaryRowAction()) {\n <ax-command-column\n fixed=\"end\"\n [width]=\"primaryRowAction().length * 70 + 'px'\"\n [items]=\"primaryRowAction()\"\n (onItemClick)=\"handleRowClick($event)\"\n ></ax-command-column>\n }\n @if (hasSecondaryRowAction()) {\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"secondaryRowAction()\"\n (onItemClick)=\"handleRowClick($event)\"\n ></ax-dropdown-command-column>\n }\n</ax-data-table>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i1$2.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "title", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i1$2.AXRowIndexColumnComponent, selector: "ax-index-column", inputs: ["width", "caption", "fixed", "footerTemplate", "padZero"] }, { kind: "component", type: i1$2.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i1$2.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i1$2.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "emptyStateTemplate", "emptyStateText", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: i2.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "customExpandIcon", "customCollapseIcon", "customWidth", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1927
1944
|
}
|
|
1928
1945
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPReportTableViewComponent, decorators: [{
|
|
1929
1946
|
type: Component,
|
|
@@ -1934,7 +1951,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
1934
1951
|
AXDecoratorModule,
|
|
1935
1952
|
AXTranslationModule,
|
|
1936
1953
|
AXPWidgetCoreModule
|
|
1937
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-data-table\n #grid\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n (onRowDbClick)=\"handleDbRowClick($event)\"\n class=\"ax-flex-1\"\n>\n <!-- Dynamic columns based on configuration -->\n <ax-index-column\n
|
|
1954
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-data-table\n #grid\n [dataSource]=\"dataSource\"\n [paging]=\"true\"\n (onRowDbClick)=\"handleDbRowClick($event)\"\n class=\"ax-flex-1\"\n>\n <!-- Dynamic columns based on configuration -->\n @if (vm.showRowIndexColumn()) {\n <ax-index-column\n [caption]=\"('@general:terms.common.row-number' | translate | async)!\"\n fixed=\"start\"\n [width]=\"'80px'\"\n [padZero]=\"false\"\n ></ax-index-column>\n }\n @if (vm.canSelectRows()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (column of columns(); track column.field) {\n @if (column.visible) {\n <axp-widget-column-renderer\n [customWidth]=\"column.width == 'auto' ? 'auto' : column.width + 'px'\"\n [caption]=\"(column.title | translate | async)!\"\n [node]=\"column.widget!\"\n ></axp-widget-column-renderer>\n }\n }\n @if (hasPrimaryRowAction()) {\n <ax-command-column\n fixed=\"end\"\n [width]=\"primaryRowAction().length * 70 + 'px'\"\n [items]=\"primaryRowAction()\"\n (onItemClick)=\"handleRowClick($event)\"\n ></ax-command-column>\n }\n @if (hasSecondaryRowAction()) {\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"secondaryRowAction()\"\n (onItemClick)=\"handleRowClick($event)\"\n ></ax-dropdown-command-column>\n }\n</ax-data-table>\n" }]
|
|
1938
1955
|
}], propDecorators: { grid: [{ type: i0.ViewChild, args: ['grid', { isSignal: true }] }] } });
|
|
1939
1956
|
|
|
1940
1957
|
class AXPReportViewerPageComponent extends AXPPageLayoutBaseComponent {
|