@acorex-platform/module-report-management-client 0.0.15 → 0.0.18

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.
@@ -40,7 +40,7 @@ class AXPReportDrillPopupComponent extends AXBasePageComponent {
40
40
  await this.vm.executeReport();
41
41
  }
42
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPReportDrillPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPReportDrillPopupComponent, isStandalone: true, selector: "axp-report-drill-popup", providers: [AXPReportViewerViewModel], usesInheritance: true, ngImport: i0, template: "<ax-content>\n <div class=\"__drill-content\">\n @if (vm.hasError()) {\n <axp-state-message\n icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.unexpected'\"\n >\n </axp-state-message>\n } @else if (vm.isTableLayout()) {\n <axp-report-table-view class=\"__drill-view\"></axp-report-table-view>\n } @else {\n <axp-state-message\n icon=\"fa-light fa-chart-line\"\n [title]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.title'\"\n [description]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.description'\"\n >\n </axp-state-message>\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n", styles: [":host{display:flex;height:100%;min-height:0;flex-direction:column}.__drill-content{display:flex;height:100%;min-height:60vh;flex:1;flex-direction:column;overflow:hidden}.__drill-view{display:flex;height:100%;min-height:0;width:100%;flex:1;flex-direction:column}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "component", type: AXPReportTableViewComponent, selector: "axp-report-table-view" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPReportDrillPopupComponent, isStandalone: true, selector: "axp-report-drill-popup", providers: [AXPReportViewerViewModel], usesInheritance: true, ngImport: i0, template: "<ax-content>\n <div class=\"__drill-content\">\n @if (vm.hasError()) {\n <axp-state-message\n icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.unexpected'\"\n >\n </axp-state-message>\n } @else if (vm.isTableLayout()) {\n <axp-report-table-view class=\"__drill-view\"></axp-report-table-view>\n } @else {\n <axp-state-message\n icon=\"fa-light fa-chart-line\"\n [title]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.title'\"\n [description]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.description'\"\n >\n </axp-state-message>\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n", styles: [":host{display:flex;height:100%;min-height:0;flex-direction:column}:host .__drill-content{display:flex;height:100%;min-height:60vh;flex:1;flex-direction:column;overflow:hidden}:host .__drill-view{display:flex;height:100%;min-height:0;width:100%;flex:1;flex-direction:column}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "component", type: AXPReportTableViewComponent, selector: "axp-report-table-view" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
44
44
  }
45
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPReportDrillPopupComponent, decorators: [{
46
46
  type: Component,
@@ -52,8 +52,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
52
52
  AXTranslationModule,
53
53
  AXPStateMessageComponent,
54
54
  AXPReportTableViewComponent,
55
- ], providers: [AXPReportViewerViewModel], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-content>\n <div class=\"__drill-content\">\n @if (vm.hasError()) {\n <axp-state-message\n icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.unexpected'\"\n >\n </axp-state-message>\n } @else if (vm.isTableLayout()) {\n <axp-report-table-view class=\"__drill-view\"></axp-report-table-view>\n } @else {\n <axp-state-message\n icon=\"fa-light fa-chart-line\"\n [title]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.title'\"\n [description]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.description'\"\n >\n </axp-state-message>\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n", styles: [":host{display:flex;height:100%;min-height:0;flex-direction:column}.__drill-content{display:flex;height:100%;min-height:60vh;flex:1;flex-direction:column;overflow:hidden}.__drill-view{display:flex;height:100%;min-height:0;width:100%;flex:1;flex-direction:column}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
55
+ ], providers: [AXPReportViewerViewModel], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-content>\n <div class=\"__drill-content\">\n @if (vm.hasError()) {\n <axp-state-message\n icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.unexpected'\"\n >\n </axp-state-message>\n } @else if (vm.isTableLayout()) {\n <axp-report-table-view class=\"__drill-view\"></axp-report-table-view>\n } @else {\n <axp-state-message\n icon=\"fa-light fa-chart-line\"\n [title]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.title'\"\n [description]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.description'\"\n >\n </axp-state-message>\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n", styles: [":host{display:flex;height:100%;min-height:0;flex-direction:column}:host .__drill-content{display:flex;height:100%;min-height:60vh;flex:1;flex-direction:column;overflow:hidden}:host .__drill-view{display:flex;height:100%;min-height:0;width:100%;flex:1;flex-direction:column}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
56
56
  }] });
57
57
 
58
58
  export { AXPReportDrillPopupComponent };
59
- //# sourceMappingURL=acorex-platform-module-report-management-client-report-drill-popup.component-CvfwhlEp.mjs.map
59
+ //# sourceMappingURL=acorex-platform-module-report-management-client-report-drill-popup.component-BdZPBD7t.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-report-management-client-report-drill-popup.component-CvfwhlEp.mjs","sources":["../../../../libs/modules/report-management/client/src/lib/features/report-viewer/report-drill-popup/report-drill-popup.component.ts","../../../../libs/modules/report-management/client/src/lib/features/report-viewer/report-drill-popup/report-drill-popup.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPStateMessageComponent } from '@acorex-platform/framework-client/layout/components';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPReportViewerViewModel } from '../report-viewer.viewmodel';\nimport { AXPReportTableViewComponent } from '../views/report-table-view/report-table-view.component';\n\n//#region ---- Report Drill Popup ----\n\n@Component({\n selector: 'axp-report-drill-popup',\n templateUrl: './report-drill-popup.component.html',\n styleUrl: './report-drill-popup.component.css',\n imports: [\n CommonModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n AXPStateMessageComponent,\n AXPReportTableViewComponent,\n ],\n providers: [AXPReportViewerViewModel],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPReportDrillPopupComponent extends AXBasePageComponent {\n //#region ---- Popup Data ----\n\n reportId!: string;\n layoutId?: string;\n parameters: Record<string, unknown> = {};\n hideColumnFields: string[] = [];\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n protected readonly vm = inject(AXPReportViewerViewModel);\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n await this.vm.loadReport(this.reportId);\n\n if (this.layoutId) {\n this.vm.switchLayout(this.layoutId);\n }\n\n if (this.hideColumnFields.length > 0) {\n this.vm.applyDrillView({ hideColumnFields: this.hideColumnFields });\n }\n\n if (this.parameters && Object.keys(this.parameters).length > 0) {\n this.vm.updateFilterContext(this.parameters);\n }\n\n await this.vm.executeReport();\n }\n\n //#endregion\n}\n\n//#endregion\n","<ax-content>\n <div class=\"__drill-content\">\n @if (vm.hasError()) {\n <axp-state-message\n icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.unexpected'\"\n >\n </axp-state-message>\n } @else if (vm.isTableLayout()) {\n <axp-report-table-view class=\"__drill-view\"></axp-report-table-view>\n } @else {\n <axp-state-message\n icon=\"fa-light fa-chart-line\"\n [title]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.title'\"\n [description]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.description'\"\n >\n </axp-state-message>\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n"],"names":["i1","i3","i4"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-report-management-client-report-drill-popup.component-BdZPBD7t.mjs","sources":["../../../../libs/modules/report-management/client/src/lib/features/report-viewer/report-drill-popup/report-drill-popup.component.ts","../../../../libs/modules/report-management/client/src/lib/features/report-viewer/report-drill-popup/report-drill-popup.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPStateMessageComponent } from '@acorex-platform/framework-client/layout/components';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXPReportViewerViewModel } from '../report-viewer.viewmodel';\nimport { AXPReportTableViewComponent } from '../views/report-table-view/report-table-view.component';\n\n//#region ---- Report Drill Popup ----\n\n@Component({\n selector: 'axp-report-drill-popup',\n templateUrl: './report-drill-popup.component.html',\n styleUrl: './report-drill-popup.component.css',\n imports: [\n CommonModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n AXPStateMessageComponent,\n AXPReportTableViewComponent,\n ],\n providers: [AXPReportViewerViewModel],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXPReportDrillPopupComponent extends AXBasePageComponent {\n //#region ---- Popup Data ----\n\n reportId!: string;\n layoutId?: string;\n parameters: Record<string, unknown> = {};\n hideColumnFields: string[] = [];\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n protected readonly vm = inject(AXPReportViewerViewModel);\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n await this.vm.loadReport(this.reportId);\n\n if (this.layoutId) {\n this.vm.switchLayout(this.layoutId);\n }\n\n if (this.hideColumnFields.length > 0) {\n this.vm.applyDrillView({ hideColumnFields: this.hideColumnFields });\n }\n\n if (this.parameters && Object.keys(this.parameters).length > 0) {\n this.vm.updateFilterContext(this.parameters);\n }\n\n await this.vm.executeReport();\n }\n\n //#endregion\n}\n\n//#endregion\n","<ax-content>\n <div class=\"__drill-content\">\n @if (vm.hasError()) {\n <axp-state-message\n icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.unexpected'\"\n >\n </axp-state-message>\n } @else if (vm.isTableLayout()) {\n <axp-report-table-view class=\"__drill-view\"></axp-report-table-view>\n } @else {\n <axp-state-message\n icon=\"fa-light fa-chart-line\"\n [title]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.title'\"\n [description]=\"'@report-management:report-viewer.components.report-drill-popup.unsupported-layout.description'\"\n >\n </axp-state-message>\n }\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n"],"names":["i1","i3","i4"],"mappings":"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"}
@@ -457,7 +457,7 @@ class AXMReportRunnerRootPageComponent extends AXPPageLayoutBaseComponent {
457
457
  provide: AXPPageLayoutBase,
458
458
  useExisting: AXMReportRunnerRootPageComponent,
459
459
  },
460
- ], 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: ["@layer properties;.axp-report-runner-root-page axp-layout-start-side{height:100%;width:calc(var(--spacing, .25rem) * 80);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}@media(width>=1920px){.axp-report-runner-root-page axp-layout-start-side{width:calc(var(--spacing, .25rem) * 96)}}.axp-report-runner-root-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding-inline:calc(var(--spacing, .25rem) * 4)}.axp-report-runner-root-page .__reports-browser{padding:calc(var(--spacing, .25rem) * 3)}:where(.axp-report-runner-root-page .__reports-browser>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 8) * calc(1 - var(--tw-space-y-reverse)))}@media(width>=64rem){.axp-report-runner-root-page .__reports-browser{padding:calc(var(--spacing, .25rem) * 6)}}:where(.axp-report-runner-root-page .__reports-browser .__section>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}.axp-report-runner-root-page .__reports-browser .__section .__section-title{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-report-runner-root-page .__reports-browser .__section .__section-title ax-icon{color:rgba(var(--ax-sys-color-primary-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 4)}@media(width>=2560px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(width>=48rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(width>=80rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(width>=96rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item{cursor:pointer;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 4);transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);display:flex;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-icon{display:flex;height:calc(var(--spacing, .25rem) * 10);width:calc(var(--spacing, .25rem) * 10);flex-shrink:0;align-items:center;justify-content:center;border-radius:.25rem;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content{min-width:0;flex:1}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-description{margin-top:var(--spacing, .25rem);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));opacity:75%}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:rgba(var(--ax-sys-color-warning-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-warning-surface)) 10%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon ax-icon{color:rgba(var(--ax-sys-color-warning-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{border-color:rgba(var(--ax-sys-color-warning-surface));background-color:rgba(var(--ax-sys-color-warning-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-warning-surface)) 5%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon ax-icon{color:rgba(var(--ax-sys-color-primary-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{border-color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-space-y-reverse{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-space-y-reverse: 0;--tw-font-weight: initial;--tw-duration: initial}}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\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:
460
+ ], 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: ["@layer properties;.axp-report-runner-root-page axp-layout-start-side{height:100%;width:calc(var(--spacing, .25rem) * 80);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}@media(width>=1920px){.axp-report-runner-root-page axp-layout-start-side{width:calc(var(--spacing, .25rem) * 96)}}.axp-report-runner-root-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding-inline:calc(var(--spacing, .25rem) * 4)}.axp-report-runner-root-page .__reports-browser{padding:calc(var(--spacing, .25rem) * 3)}:where(.axp-report-runner-root-page .__reports-browser>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 8) * calc(1 - var(--tw-space-y-reverse)))}@media(width>=64rem){.axp-report-runner-root-page .__reports-browser{padding:calc(var(--spacing, .25rem) * 6)}}:where(.axp-report-runner-root-page .__reports-browser .__section>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}.axp-report-runner-root-page .__reports-browser .__section .__section-title{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-report-runner-root-page .__reports-browser .__section .__section-title ax-icon{color:rgba(var(--ax-sys-color-primary-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 4)}@media(width>=2560px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(width>=48rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(width>=80rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(width>=96rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item{display:flex;cursor:pointer;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 4);transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-icon{display:flex;height:calc(var(--spacing, .25rem) * 10);width:calc(var(--spacing, .25rem) * 10);flex-shrink:0;align-items:center;justify-content:center;border-radius:.25rem;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content{min-width:0;flex:1}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-description{margin-top:var(--spacing, .25rem);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));opacity:75%}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:rgba(var(--ax-sys-color-warning-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-warning-surface)) 10%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon ax-icon{color:rgba(var(--ax-sys-color-warning-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{border-color:rgba(var(--ax-sys-color-warning-surface));background-color:rgba(var(--ax-sys-color-warning-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-warning-surface)) 5%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon ax-icon{color:rgba(var(--ax-sys-color-primary-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{border-color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-space-y-reverse{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-space-y-reverse: 0;--tw-font-weight: initial;--tw-duration: initial}}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\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:
461
461
  //
462
462
  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:
463
463
  //
@@ -497,8 +497,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
497
497
  provide: AXPPageLayoutBase,
498
498
  useExisting: AXMReportRunnerRootPageComponent,
499
499
  },
500
- ], 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: ["@layer properties;.axp-report-runner-root-page axp-layout-start-side{height:100%;width:calc(var(--spacing, .25rem) * 80);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}@media(width>=1920px){.axp-report-runner-root-page axp-layout-start-side{width:calc(var(--spacing, .25rem) * 96)}}.axp-report-runner-root-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding-inline:calc(var(--spacing, .25rem) * 4)}.axp-report-runner-root-page .__reports-browser{padding:calc(var(--spacing, .25rem) * 3)}:where(.axp-report-runner-root-page .__reports-browser>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 8) * calc(1 - var(--tw-space-y-reverse)))}@media(width>=64rem){.axp-report-runner-root-page .__reports-browser{padding:calc(var(--spacing, .25rem) * 6)}}:where(.axp-report-runner-root-page .__reports-browser .__section>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}.axp-report-runner-root-page .__reports-browser .__section .__section-title{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-report-runner-root-page .__reports-browser .__section .__section-title ax-icon{color:rgba(var(--ax-sys-color-primary-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 4)}@media(width>=2560px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(width>=48rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(width>=80rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(width>=96rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item{cursor:pointer;border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 4);transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);display:flex;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-icon{display:flex;height:calc(var(--spacing, .25rem) * 10);width:calc(var(--spacing, .25rem) * 10);flex-shrink:0;align-items:center;justify-content:center;border-radius:.25rem;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content{min-width:0;flex:1}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-description{margin-top:var(--spacing, .25rem);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));opacity:75%}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:rgba(var(--ax-sys-color-warning-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-warning-surface)) 10%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon ax-icon{color:rgba(var(--ax-sys-color-warning-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{border-color:rgba(var(--ax-sys-color-warning-surface));background-color:rgba(var(--ax-sys-color-warning-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-warning-surface)) 5%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon ax-icon{color:rgba(var(--ax-sys-color-primary-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{border-color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-space-y-reverse{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-space-y-reverse: 0;--tw-font-weight: initial;--tw-duration: initial}}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
500
+ ], 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: ["@layer properties;.axp-report-runner-root-page axp-layout-start-side{height:100%;width:calc(var(--spacing, .25rem) * 80);border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}@media(width>=1920px){.axp-report-runner-root-page axp-layout-start-side{width:calc(var(--spacing, .25rem) * 96)}}.axp-report-runner-root-page axp-layout-start-side axp-layout-content{overflow-x:auto;padding-inline:calc(var(--spacing, .25rem) * 4)}.axp-report-runner-root-page .__reports-browser{padding:calc(var(--spacing, .25rem) * 3)}:where(.axp-report-runner-root-page .__reports-browser>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 8) * calc(1 - var(--tw-space-y-reverse)))}@media(width>=64rem){.axp-report-runner-root-page .__reports-browser{padding:calc(var(--spacing, .25rem) * 6)}}:where(.axp-report-runner-root-page .__reports-browser .__section>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing, .25rem) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing, .25rem) * 4) * calc(1 - var(--tw-space-y-reverse)))}.axp-report-runner-root-page .__reports-browser .__section .__section-title{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * 2);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-report-runner-root-page .__reports-browser .__section .__section-title ax-icon{color:rgba(var(--ax-sys-color-primary-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:calc(var(--spacing, .25rem) * 4)}@media(width>=2560px){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(width>=48rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(width>=80rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(width>=96rem){.axp-report-runner-root-page .__reports-browser .__section .__items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item{display:flex;cursor:pointer;align-items:flex-start;gap:calc(var(--spacing, .25rem) * 3);border-radius:var(--radius-lg, .5rem);border-style:var(--tw-border-style);border-width:1px;padding:calc(var(--spacing, .25rem) * 4);transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-lighter);color:var(--color-on-lighter);border-color:var(--color-border-lighter)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-icon{display:flex;height:calc(var(--spacing, .25rem) * 10);width:calc(var(--spacing, .25rem) * 10);flex-shrink:0;align-items:center;justify-content:center;border-radius:.25rem;font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content{min-width:0;flex:1}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item .__item-content .__item-description{margin-top:var(--spacing, .25rem);overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));opacity:75%}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:rgba(var(--ax-sys-color-warning-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-warning-surface)) 10%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category .__item-icon ax-icon{color:rgba(var(--ax-sys-color-warning-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{border-color:rgba(var(--ax-sys-color-warning-surface));background-color:rgba(var(--ax-sys-color-warning-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__category:hover{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-warning-surface)) 5%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report .__item-icon ax-icon{color:rgba(var(--ax-sys-color-primary-surface))}.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{border-color:rgba(var(--ax-sys-color-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color: color-mix(in lab,red,red)){.axp-report-runner-root-page .__reports-browser .__section .__items-grid .__item.__report:hover{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-space-y-reverse{syntax: \"*\"; inherits: false; initial-value: 0;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-space-y-reverse: 0;--tw-font-weight: initial;--tw-duration: initial}}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
501
501
  }] });
502
502
 
503
503
  export { AXMReportRunnerRootPageComponent };
504
- //# sourceMappingURL=acorex-platform-module-report-management-client-report-runner-root-page.component-DgvoIHsK.mjs.map
504
+ //# sourceMappingURL=acorex-platform-module-report-management-client-report-runner-root-page.component-CVG3HiJX.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-report-management-client-report-runner-root-page.component-DgvoIHsK.mjs","sources":["../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-categories-tree/report-categories-tree.component.ts","../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-categories-tree/report-categories-tree.component.html","../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-runner.viewmodel.ts","../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-runner-root-page/report-runner-root-page.component.ts","../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-runner-root-page/report-runner-root-page.component.html"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTreeViewComponent, AXTreeViewNode, AXTreeViewNodeClickEvent } from '@acorex/components/tree-view';\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { ChangeDetectionStrategy, Component, inject, output, ViewEncapsulation } from '@angular/core';\nimport { AXPReportCategory, AXPReportDefinition, AXPReportViewerService } from '../../../reports';\n\n//#endregion\n\n//#region ---- Interface ----\n\n/**\n * Tree view item with optimized metadata\n *\n * Uses count properties for efficient rendering:\n * - hasChild: Determined by childrenCount + itemsCount\n * - No need to query API to know if expandable\n */\nexport interface TreeViewItem extends AXTreeViewNode {\n id: string;\n title: string;\n childrenCount: number;\n children?: TreeViewItem[];\n item?: AXPReportCategory | AXPReportDefinition;\n type: 'category' | 'definition';\n expanded: boolean;\n}\n\n//#endregion\n\n@Component({\n selector: 'axp-report-categories-tree',\n standalone: true,\n imports: [AXDecoratorModule, AXTreeViewComponent],\n templateUrl: './report-categories-tree.component.html',\n styleUrl: './report-categories-tree.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'axp-report-categories-tree' },\n})\nexport class AXPReportCategoriesTreeComponent {\n //#region ---- Services & Dependencies ----\n\n private readonly reportDefinitionService = inject(AXPReportViewerService);\n private readonly multiLanguageResolver = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Output Events ----\n\n /**\n * Emitted when a category node is clicked\n */\n categoryClick = output<AXPReportCategory>();\n\n /**\n * Emitted when a report node is clicked\n */\n reportClick = output<AXPReportDefinition>();\n\n //#endregion\n\n //#region ---- Data Loading Methods ----\n\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 protected provideLazyTreeView = async (selectedItemId?: string | number): Promise<AXTreeViewNode[]> => {\n if (selectedItemId) {\n // ✅ Load child categories (includes childrenCount & itemsCount metadata)\n const categories = await this.reportDefinitionService.getCategories(selectedItemId as string);\n\n const categoryItems: TreeViewItem[] = categories.map((item) => ({\n id: item.id,\n title: this.multiLanguageResolver.resolve(item.title),\n childrenCount: item.childrenCount > 0 || (item.itemsCount ?? 0) > 0 ? 1 : 0,\n item: item,\n type: 'category' as const,\n expanded: false,\n }));\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 as string);\n\n const definitionItems: TreeViewItem[] = definitions.map((item) => ({\n id: item.id,\n title: item.title,\n childrenCount: 0,\n item: item,\n type: 'definition' as const,\n expanded: false,\n }));\n\n // ✅ Return categories first, then reports (sorted)\n return [...categoryItems, ...definitionItems];\n } else {\n // ✅ Root level - load root categories only\n const categories = await this.reportDefinitionService.getCategories();\n\n return categories.map((item) => ({\n id: item.id,\n title: this.multiLanguageResolver.resolve(item.title),\n childrenCount: item.childrenCount > 0 || (item.itemsCount ?? 0) > 0 ? 1 : 0,\n item: item,\n type: 'category' as const,\n expanded: false,\n }));\n }\n };\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n /**\n * Handle tree node click events\n *\n * Emits appropriate event based on node type:\n * - category → categoryClick\n * - definition → reportClick\n */\n protected handleNodeClick(event: AXTreeViewNodeClickEvent): void {\n const node = event.node as TreeViewItem;\n\n if (node.type === 'category') {\n this.categoryClick.emit(node.item as AXPReportCategory);\n } else if (node.type === 'definition') {\n this.reportClick.emit(node.item as AXPReportDefinition);\n }\n }\n\n //#endregion\n}\n","<ax-tree-view\n [selectMode]=\"'none'\"\n [dragBehavior]=\"'none'\"\n [showIcons]=\"false\"\n [showChildrenBadge]=\"false\"\n [nodeTemplate]=\"itemTemplate\"\n [titleField]=\"'title'\"\n [idField]=\"'id'\"\n [expandedField]=\"'expanded'\"\n [datasource]=\"provideLazyTreeView\"\n (onNodeClick)=\"handleNodeClick($event)\"\n>\n</ax-tree-view>\n\n<ng-template #itemTemplate let-node=\"node\">\n @let item = node;\n @if (item.type === 'category') {\n <ax-icon class=\"fas text-warning fa-folder\"></ax-icon>\n } @else {\n <ax-icon class=\"fas text-accent1 fa-file-chart-column\"></ax-icon>\n }\n {{ item.title }}\n</ng-template>\n","import { AXPPageStatus } from '@acorex-platform/framework-shared/widget-core';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPDeviceService } from '@acorex-platform/framework-client/core';\n\nimport { computed, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { isEmpty, isNil } from 'lodash';\nimport { merge } from 'rxjs';\nimport { RootConfig } from '@acorex-platform/module-report-management-client/contracts';\nimport { AXPReportCategory, AXPReportDefinition, AXPReportViewerService } from '../../reports';\n\nexport const AXPReportRunnerRootViewModel = signalStore(\n withState(() => ({\n activeCategory: undefined as AXPReportCategory | undefined,\n categories: [] as AXPReportCategory[],\n reports: [] as AXPReportDefinition[],\n activeCategoriesPath: [] as AXPReportCategory[],\n //\n searchExpression: null as string | null,\n //\n status: AXPPageStatus.Processing,\n })),\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(\n () =>\n store.activeCategory()?.description ??\n `@${RootConfig.config.i18n}:report-runner.components.report-runner.description`,\n ),\n })),\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(): Promise<void> {\n patchState(store, {\n activeCategory: undefined,\n reports: [],\n activeCategoriesPath: [],\n status: AXPPageStatus.Processing,\n });\n\n const categories = await reportDefinitionService.getCategories();\n\n patchState(store, {\n categories,\n status: AXPPageStatus.Idle,\n });\n },\n\n /**\n * Get categories by parentId (cached by service)\n */\n async getCategories(parentId?: string): Promise<AXPReportCategory[]> {\n patchState(store, { status: AXPPageStatus.Processing });\n\n const result = await reportDefinitionService.getCategories(parentId);\n\n patchState(store, { status: AXPPageStatus.Idle });\n\n return result;\n },\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: string): Promise<AXPReportDefinition[]> {\n patchState(store, { status: AXPPageStatus.Processing });\n\n const result = await reportDefinitionService.getReportsByCategoryId(categoryId);\n\n patchState(store, { status: AXPPageStatus.Idle });\n\n return result;\n },\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: AXPReportCategory): Promise<void> {\n patchState(store, {\n status: AXPPageStatus.Processing,\n activeCategory: category,\n });\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\n patchState(store, {\n categories,\n reports,\n activeCategoriesPath,\n status: AXPPageStatus.Idle,\n });\n },\n\n /**\n * Set active category by ID\n *\n * Optimization: getCategoryById uses O(1) cache lookup\n */\n async setActiveCategoryById(id: string): Promise<void> {\n patchState(store, { status: AXPPageStatus.Processing });\n\n const category = await reportDefinitionService.getCategoryById(id);\n\n if (category) {\n patchState(store, { activeCategory: category });\n\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\n patchState(store, {\n categories,\n reports,\n activeCategoriesPath,\n });\n }\n\n patchState(store, { status: AXPPageStatus.Idle });\n },\n\n /**\n * Search for reports (to be implemented)\n */\n async search(expression: string): Promise<void> {\n if (!isNil(expression) && !isEmpty(expression)) {\n patchState(store, { searchExpression: expression });\n } else {\n patchState(store, { searchExpression: null });\n }\n },\n\n /**\n * Clear search\n */\n clearSearch(): void {\n patchState(store, { searchExpression: null });\n },\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);\n","\nimport { AXPActionMenuItem, AXPBackButton, AXPBreadcrumbItem, AXPExecuteCommand } from '@acorex-platform/framework-shared/core';\nimport { 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, AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\n\nimport {\n AXPStateMessageComponent,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutStartSideComponent,\n AXPThemeLayoutToolbarComponent,\n} from '@acorex-platform/framework-client/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex-platform/framework-client/layout/views';\nimport { AXPLayoutThemeService } from '@acorex-platform/framework-client/themes/shared';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute, NavigationEnd, RouterModule } from '@angular/router';\nimport { filter, firstValueFrom, startWith } from 'rxjs';\nimport { AXPReportCategory, AXPReportDefinition, AXPReportViewerService } from '../../../reports';\nimport { AXPReportCategoriesTreeComponent } from '../report-categories-tree/report-categories-tree.component';\nimport { AXPReportRunnerRootViewModel } from '../report-runner.viewmodel';\n\n@Component({\n standalone: true,\n 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 ],\n templateUrl: './report-runner-root-page.component.html',\n styleUrl: './report-runner-root-page.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXUnsubscriber,\n AXPReportRunnerRootViewModel,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMReportRunnerRootPageComponent,\n },\n ],\n host: { class: 'axp-report-runner-root-page' },\n})\nexport class AXMReportRunnerRootPageComponent extends AXPPageLayoutBaseComponent {\n protected vm = inject(AXPReportRunnerRootViewModel);\n protected override layoutService = inject(AXPLayoutThemeService);\n private activatedRoute = inject(ActivatedRoute);\n private unsubscribe = inject(AXUnsubscriber);\n private reportDefinitionService = inject(AXPReportViewerService);\n private commandService = inject(AXPCommandService);\n private multiLanguageResolver = inject(AXTranslationService);\n\n private baseRoutes = [this.sessionService.application?.name, 'report-management', 'reports'];\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n //\n this.router.events\n .pipe(\n this.unsubscribe.takeUntilDestroy,\n filter((event) => event instanceof NavigationEnd),\n startWith(null),\n )\n .subscribe(async () => {\n await this.loadFromRoute();\n });\n }\n\n private async loadFromRoute(): Promise<void> {\n const snapshot = this.activatedRoute.snapshot;\n const segments = await firstValueFrom(this.activatedRoute.url);\n\n let categoryId = segments[segments.length - 1]?.path ?? null;\n if (categoryId) {\n await this.vm.setActiveCategoryById(categoryId);\n } else {\n await this.vm.loadRootCategories();\n return;\n }\n //\n\n let reportId = snapshot.queryParamMap.get('report') ?? null;\n\n if (reportId) {\n // Navigate directly to viewer instead of showing parameters\n await this.navigateToViewer(reportId);\n }\n }\n\n //#region ---- Event Handlers ----\n\n /**\n * Handle category selection from tree\n */\n protected async onCategoryClick(category: AXPReportCategory): Promise<void> {\n await this.navigateToCategory(category);\n }\n\n /**\n * Handle report selection from tree\n */\n protected async onReportClick(report: AXPReportDefinition): Promise<void> {\n await this.navigateToReport(report);\n }\n\n /**\n * Navigate directly to report viewer with the selected report\n */\n private async navigateToViewer(reportId: string): Promise<void> {\n const baseViewerRoute = [this.sessionService.application?.name, 'report-management', 'viewer'];\n await this.router.navigate(baseViewerRoute, {\n queryParams: { reportId },\n });\n }\n\n //#endregion\n\n protected async navigateToCategory(category: AXPReportCategory): Promise<void> {\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\n protected async navigateToReport(report: AXPReportDefinition): Promise<void> {\n // Navigate directly to viewer instead of showing parameters in runner\n await this.navigateToViewer(report.id);\n }\n\n //#region ---- Page Configuration Overrides ----\n\n protected override async getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]> {\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: AXPBreadcrumbItem[] = [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: this.multiLanguageResolver.resolve(cat.title),\n command: {\n name: 'navigate-to-category',\n options: {\n category: cat,\n },\n },\n });\n }\n return breadcrumbs;\n }\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return [];\n }\n\n override async getPageTitle(): Promise<string> {\n return this.multiLanguageResolver.resolve(this.vm.title() ?? '');\n }\n\n override async getPageDescription(): Promise<string | null> {\n const d = this.multiLanguageResolver.resolve(this.vm.description() ?? '');\n return d || null;\n }\n\n override async getBackButton(): Promise<AXPBackButton | null> {\n const categoriesPath = this.vm.activeCategoriesPath();\n\n if (!categoriesPath || categoriesPath.length === 0) {\n // At root level, no back button\n return null;\n }\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\n // At deeper level, back to parent category\n const parentCategory = categoriesPath[categoriesPath.length - 2];\n return {\n title: this.multiLanguageResolver.resolve(parentCategory.title),\n };\n }\n\n override async onBackButtonClick(): Promise<void> {\n const categoriesPath = this.vm.activeCategoriesPath();\n\n if (!categoriesPath || categoriesPath.length <= 1) {\n // Navigate back to reports root\n await this.router.navigate([...this.baseRoutes]);\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\n override async execute(command: AXPExecuteCommand): Promise<void> {\n switch (command.name) {\n case 'navigate-to-category':\n await this.navigateToCategory(command.options?.['category'] as AXPReportCategory);\n break;\n case 'navigate-to-reports-root':\n await this.router.navigate([...this.baseRoutes]);\n break;\n case 'create-report':\n await this.commandService.execute('Entity:Create', {\n __context__: {\n entity: 'ReportManagement.Report',\n data: { categoryId: this.vm.activeCategory()?.id ?? null },\n entityInfo: {\n name: 'Report',\n module: 'ReportManagement',\n title: '',\n parentKey: '',\n },\n options: {},\n },\n });\n break;\n }\n }\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\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\n //#endregion\n}\n","<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"],"names":["i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-report-management-client-report-runner-root-page.component-CVG3HiJX.mjs","sources":["../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-categories-tree/report-categories-tree.component.ts","../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-categories-tree/report-categories-tree.component.html","../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-runner.viewmodel.ts","../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-runner-root-page/report-runner-root-page.component.ts","../../../../libs/modules/report-management/client/src/lib/features/report-runner/report-runner-root-page/report-runner-root-page.component.html"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTreeViewComponent, AXTreeViewNode, AXTreeViewNodeClickEvent } from '@acorex/components/tree-view';\n\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { ChangeDetectionStrategy, Component, inject, output, ViewEncapsulation } from '@angular/core';\nimport { AXPReportCategory, AXPReportDefinition, AXPReportViewerService } from '../../../reports';\n\n//#endregion\n\n//#region ---- Interface ----\n\n/**\n * Tree view item with optimized metadata\n *\n * Uses count properties for efficient rendering:\n * - hasChild: Determined by childrenCount + itemsCount\n * - No need to query API to know if expandable\n */\nexport interface TreeViewItem extends AXTreeViewNode {\n id: string;\n title: string;\n childrenCount: number;\n children?: TreeViewItem[];\n item?: AXPReportCategory | AXPReportDefinition;\n type: 'category' | 'definition';\n expanded: boolean;\n}\n\n//#endregion\n\n@Component({\n selector: 'axp-report-categories-tree',\n standalone: true,\n imports: [AXDecoratorModule, AXTreeViewComponent],\n templateUrl: './report-categories-tree.component.html',\n styleUrl: './report-categories-tree.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'axp-report-categories-tree' },\n})\nexport class AXPReportCategoriesTreeComponent {\n //#region ---- Services & Dependencies ----\n\n private readonly reportDefinitionService = inject(AXPReportViewerService);\n private readonly multiLanguageResolver = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Output Events ----\n\n /**\n * Emitted when a category node is clicked\n */\n categoryClick = output<AXPReportCategory>();\n\n /**\n * Emitted when a report node is clicked\n */\n reportClick = output<AXPReportDefinition>();\n\n //#endregion\n\n //#region ---- Data Loading Methods ----\n\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 protected provideLazyTreeView = async (selectedItemId?: string | number): Promise<AXTreeViewNode[]> => {\n if (selectedItemId) {\n // ✅ Load child categories (includes childrenCount & itemsCount metadata)\n const categories = await this.reportDefinitionService.getCategories(selectedItemId as string);\n\n const categoryItems: TreeViewItem[] = categories.map((item) => ({\n id: item.id,\n title: this.multiLanguageResolver.resolve(item.title),\n childrenCount: item.childrenCount > 0 || (item.itemsCount ?? 0) > 0 ? 1 : 0,\n item: item,\n type: 'category' as const,\n expanded: false,\n }));\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 as string);\n\n const definitionItems: TreeViewItem[] = definitions.map((item) => ({\n id: item.id,\n title: item.title,\n childrenCount: 0,\n item: item,\n type: 'definition' as const,\n expanded: false,\n }));\n\n // ✅ Return categories first, then reports (sorted)\n return [...categoryItems, ...definitionItems];\n } else {\n // ✅ Root level - load root categories only\n const categories = await this.reportDefinitionService.getCategories();\n\n return categories.map((item) => ({\n id: item.id,\n title: this.multiLanguageResolver.resolve(item.title),\n childrenCount: item.childrenCount > 0 || (item.itemsCount ?? 0) > 0 ? 1 : 0,\n item: item,\n type: 'category' as const,\n expanded: false,\n }));\n }\n };\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n /**\n * Handle tree node click events\n *\n * Emits appropriate event based on node type:\n * - category → categoryClick\n * - definition → reportClick\n */\n protected handleNodeClick(event: AXTreeViewNodeClickEvent): void {\n const node = event.node as TreeViewItem;\n\n if (node.type === 'category') {\n this.categoryClick.emit(node.item as AXPReportCategory);\n } else if (node.type === 'definition') {\n this.reportClick.emit(node.item as AXPReportDefinition);\n }\n }\n\n //#endregion\n}\n","<ax-tree-view\n [selectMode]=\"'none'\"\n [dragBehavior]=\"'none'\"\n [showIcons]=\"false\"\n [showChildrenBadge]=\"false\"\n [nodeTemplate]=\"itemTemplate\"\n [titleField]=\"'title'\"\n [idField]=\"'id'\"\n [expandedField]=\"'expanded'\"\n [datasource]=\"provideLazyTreeView\"\n (onNodeClick)=\"handleNodeClick($event)\"\n>\n</ax-tree-view>\n\n<ng-template #itemTemplate let-node=\"node\">\n @let item = node;\n @if (item.type === 'category') {\n <ax-icon class=\"fas text-warning fa-folder\"></ax-icon>\n } @else {\n <ax-icon class=\"fas text-accent1 fa-file-chart-column\"></ax-icon>\n }\n {{ item.title }}\n</ng-template>\n","import { AXPPageStatus } from '@acorex-platform/framework-shared/widget-core';\nimport { AXLocaleService } from '@acorex/core/locale';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPDeviceService } from '@acorex-platform/framework-client/core';\n\nimport { computed, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { isEmpty, isNil } from 'lodash';\nimport { merge } from 'rxjs';\nimport { RootConfig } from '@acorex-platform/module-report-management-client/contracts';\nimport { AXPReportCategory, AXPReportDefinition, AXPReportViewerService } from '../../reports';\n\nexport const AXPReportRunnerRootViewModel = signalStore(\n withState(() => ({\n activeCategory: undefined as AXPReportCategory | undefined,\n categories: [] as AXPReportCategory[],\n reports: [] as AXPReportDefinition[],\n activeCategoriesPath: [] as AXPReportCategory[],\n //\n searchExpression: null as string | null,\n //\n status: AXPPageStatus.Processing,\n })),\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(\n () =>\n store.activeCategory()?.description ??\n `@${RootConfig.config.i18n}:report-runner.components.report-runner.description`,\n ),\n })),\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(): Promise<void> {\n patchState(store, {\n activeCategory: undefined,\n reports: [],\n activeCategoriesPath: [],\n status: AXPPageStatus.Processing,\n });\n\n const categories = await reportDefinitionService.getCategories();\n\n patchState(store, {\n categories,\n status: AXPPageStatus.Idle,\n });\n },\n\n /**\n * Get categories by parentId (cached by service)\n */\n async getCategories(parentId?: string): Promise<AXPReportCategory[]> {\n patchState(store, { status: AXPPageStatus.Processing });\n\n const result = await reportDefinitionService.getCategories(parentId);\n\n patchState(store, { status: AXPPageStatus.Idle });\n\n return result;\n },\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: string): Promise<AXPReportDefinition[]> {\n patchState(store, { status: AXPPageStatus.Processing });\n\n const result = await reportDefinitionService.getReportsByCategoryId(categoryId);\n\n patchState(store, { status: AXPPageStatus.Idle });\n\n return result;\n },\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: AXPReportCategory): Promise<void> {\n patchState(store, {\n status: AXPPageStatus.Processing,\n activeCategory: category,\n });\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\n patchState(store, {\n categories,\n reports,\n activeCategoriesPath,\n status: AXPPageStatus.Idle,\n });\n },\n\n /**\n * Set active category by ID\n *\n * Optimization: getCategoryById uses O(1) cache lookup\n */\n async setActiveCategoryById(id: string): Promise<void> {\n patchState(store, { status: AXPPageStatus.Processing });\n\n const category = await reportDefinitionService.getCategoryById(id);\n\n if (category) {\n patchState(store, { activeCategory: category });\n\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\n patchState(store, {\n categories,\n reports,\n activeCategoriesPath,\n });\n }\n\n patchState(store, { status: AXPPageStatus.Idle });\n },\n\n /**\n * Search for reports (to be implemented)\n */\n async search(expression: string): Promise<void> {\n if (!isNil(expression) && !isEmpty(expression)) {\n patchState(store, { searchExpression: expression });\n } else {\n patchState(store, { searchExpression: null });\n }\n },\n\n /**\n * Clear search\n */\n clearSearch(): void {\n patchState(store, { searchExpression: null });\n },\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);\n","\nimport { AXPActionMenuItem, AXPBackButton, AXPBreadcrumbItem, AXPExecuteCommand } from '@acorex-platform/framework-shared/core';\nimport { 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, AXTranslationService } from '@acorex/core/translation';\nimport { AXUnsubscriber } from '@acorex/core/utils';\n\nimport {\n AXPStateMessageComponent,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutStartSideComponent,\n AXPThemeLayoutToolbarComponent,\n} from '@acorex-platform/framework-client/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex-platform/framework-client/layout/views';\nimport { AXPLayoutThemeService } from '@acorex-platform/framework-client/themes/shared';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute, NavigationEnd, RouterModule } from '@angular/router';\nimport { filter, firstValueFrom, startWith } from 'rxjs';\nimport { AXPReportCategory, AXPReportDefinition, AXPReportViewerService } from '../../../reports';\nimport { AXPReportCategoriesTreeComponent } from '../report-categories-tree/report-categories-tree.component';\nimport { AXPReportRunnerRootViewModel } from '../report-runner.viewmodel';\n\n@Component({\n standalone: true,\n 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 ],\n templateUrl: './report-runner-root-page.component.html',\n styleUrl: './report-runner-root-page.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXUnsubscriber,\n AXPReportRunnerRootViewModel,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMReportRunnerRootPageComponent,\n },\n ],\n host: { class: 'axp-report-runner-root-page' },\n})\nexport class AXMReportRunnerRootPageComponent extends AXPPageLayoutBaseComponent {\n protected vm = inject(AXPReportRunnerRootViewModel);\n protected override layoutService = inject(AXPLayoutThemeService);\n private activatedRoute = inject(ActivatedRoute);\n private unsubscribe = inject(AXUnsubscriber);\n private reportDefinitionService = inject(AXPReportViewerService);\n private commandService = inject(AXPCommandService);\n private multiLanguageResolver = inject(AXTranslationService);\n\n private baseRoutes = [this.sessionService.application?.name, 'report-management', 'reports'];\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n //\n this.router.events\n .pipe(\n this.unsubscribe.takeUntilDestroy,\n filter((event) => event instanceof NavigationEnd),\n startWith(null),\n )\n .subscribe(async () => {\n await this.loadFromRoute();\n });\n }\n\n private async loadFromRoute(): Promise<void> {\n const snapshot = this.activatedRoute.snapshot;\n const segments = await firstValueFrom(this.activatedRoute.url);\n\n let categoryId = segments[segments.length - 1]?.path ?? null;\n if (categoryId) {\n await this.vm.setActiveCategoryById(categoryId);\n } else {\n await this.vm.loadRootCategories();\n return;\n }\n //\n\n let reportId = snapshot.queryParamMap.get('report') ?? null;\n\n if (reportId) {\n // Navigate directly to viewer instead of showing parameters\n await this.navigateToViewer(reportId);\n }\n }\n\n //#region ---- Event Handlers ----\n\n /**\n * Handle category selection from tree\n */\n protected async onCategoryClick(category: AXPReportCategory): Promise<void> {\n await this.navigateToCategory(category);\n }\n\n /**\n * Handle report selection from tree\n */\n protected async onReportClick(report: AXPReportDefinition): Promise<void> {\n await this.navigateToReport(report);\n }\n\n /**\n * Navigate directly to report viewer with the selected report\n */\n private async navigateToViewer(reportId: string): Promise<void> {\n const baseViewerRoute = [this.sessionService.application?.name, 'report-management', 'viewer'];\n await this.router.navigate(baseViewerRoute, {\n queryParams: { reportId },\n });\n }\n\n //#endregion\n\n protected async navigateToCategory(category: AXPReportCategory): Promise<void> {\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\n protected async navigateToReport(report: AXPReportDefinition): Promise<void> {\n // Navigate directly to viewer instead of showing parameters in runner\n await this.navigateToViewer(report.id);\n }\n\n //#region ---- Page Configuration Overrides ----\n\n protected override async getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]> {\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: AXPBreadcrumbItem[] = [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: this.multiLanguageResolver.resolve(cat.title),\n command: {\n name: 'navigate-to-category',\n options: {\n category: cat,\n },\n },\n });\n }\n return breadcrumbs;\n }\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return [];\n }\n\n override async getPageTitle(): Promise<string> {\n return this.multiLanguageResolver.resolve(this.vm.title() ?? '');\n }\n\n override async getPageDescription(): Promise<string | null> {\n const d = this.multiLanguageResolver.resolve(this.vm.description() ?? '');\n return d || null;\n }\n\n override async getBackButton(): Promise<AXPBackButton | null> {\n const categoriesPath = this.vm.activeCategoriesPath();\n\n if (!categoriesPath || categoriesPath.length === 0) {\n // At root level, no back button\n return null;\n }\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\n // At deeper level, back to parent category\n const parentCategory = categoriesPath[categoriesPath.length - 2];\n return {\n title: this.multiLanguageResolver.resolve(parentCategory.title),\n };\n }\n\n override async onBackButtonClick(): Promise<void> {\n const categoriesPath = this.vm.activeCategoriesPath();\n\n if (!categoriesPath || categoriesPath.length <= 1) {\n // Navigate back to reports root\n await this.router.navigate([...this.baseRoutes]);\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\n override async execute(command: AXPExecuteCommand): Promise<void> {\n switch (command.name) {\n case 'navigate-to-category':\n await this.navigateToCategory(command.options?.['category'] as AXPReportCategory);\n break;\n case 'navigate-to-reports-root':\n await this.router.navigate([...this.baseRoutes]);\n break;\n case 'create-report':\n await this.commandService.execute('Entity:Create', {\n __context__: {\n entity: 'ReportManagement.Report',\n data: { categoryId: this.vm.activeCategory()?.id ?? null },\n entityInfo: {\n name: 'Report',\n module: 'ReportManagement',\n title: '',\n parentKey: '',\n },\n options: {},\n },\n });\n break;\n }\n }\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\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\n //#endregion\n}\n","<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"],"names":["i2","i3"],"mappings":"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"}
@@ -220,7 +220,7 @@ function routesFacory() {
220
220
  children: [
221
221
  {
222
222
  path: '**',
223
- loadComponent: () => import('./acorex-platform-module-report-management-client-report-runner-root-page.component-DgvoIHsK.mjs').then((c) => c.AXMReportRunnerRootPageComponent),
223
+ loadComponent: () => import('./acorex-platform-module-report-management-client-report-runner-root-page.component-CVG3HiJX.mjs').then((c) => c.AXMReportRunnerRootPageComponent),
224
224
  data: { reuse: true },
225
225
  },
226
226
  ],
@@ -351,7 +351,7 @@ class AXPDrillToReportCommand {
351
351
  };
352
352
  }
353
353
  const popupTitle = await this.resolvePopupTitle(options.title, rowData);
354
- const comp = (await import('./acorex-platform-module-report-management-client-report-drill-popup.component-CvfwhlEp.mjs')).AXPReportDrillPopupComponent;
354
+ const comp = (await import('./acorex-platform-module-report-management-client-report-drill-popup.component-BdZPBD7t.mjs')).AXPReportDrillPopupComponent;
355
355
  this.popupService.open(comp, {
356
356
  title: popupTitle,
357
357
  size: 'lg',
@@ -2299,7 +2299,7 @@ class AXPReportPdfViewComponent {
2299
2299
  this.isFullscreen.set(!isFullscreen);
2300
2300
  }
2301
2301
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPReportPdfViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2302
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPReportPdfViewComponent, isStandalone: true, selector: "axp-report-pdf-view", host: { classAttribute: "axp-report-pdf-view w-full h-full flex flex-col" }, ngImport: i0, template: "<ng-container *translate=\"let t\">\n @if (vm.status() === AXPPageStatus.Processing) {\n <!-- Loading State -->\n <div class=\"__loading flex flex-col items-center justify-center h-full gap-6 p-8\">\n <div class=\"spinner spin w-10 h-10\"></div>\n <div class=\"__loading-text text-sm opacity-70\">\n {{ t('@report-management:report-viewer.components.pdf.messages.loading') | async }}\n </div>\n </div>\n } @else if (vm.status() === AXPPageStatus.Error) {\n <!-- Error State -->\n <axp-state-message mode=\"error\" icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.fetch-description'\">\n </axp-state-message>\n } @else if (isPdfReady()) {\n <!-- PDF Embed Only -->\n <embed class=\"__pdf-embed w-full h-full\" [src]=\"pdfSource()\" type=\"application/pdf\" />\n } @else {\n <!-- No PDF Data State -->\n <axp-state-message icon=\"fa-light fa-file-pdf\"\n [title]=\"'@report-management:report-viewer.components.pdf.empty-states.no-data.title'\"\n [description]=\"'@report-management:report-viewer.components.pdf.empty-states.no-data.description'\">\n </axp-state-message>\n }\n</ng-container>", styles: [".axp-report-pdf-view .__loading{min-height:400px}.axp-report-pdf-view .__pdf-container{background:var(--ax-color-background)}.axp-report-pdf-view .__pdf-container.__fullscreen{position:fixed;inset:0;z-index:9999;border-radius:0}.axp-report-pdf-view .__pdf-toolbar{background:var(--ax-color-surface)}.axp-report-pdf-view .__pdf-body{background:var(--ax-color-background-secondary)}.axp-report-pdf-view .__pdf-wrapper{min-height:400px}.axp-report-pdf-view .__pdf-embed{border:none;box-shadow:0 2px 8px #0000001a;transition:width .3s ease,height .3s ease}@media(max-width:640px){.axp-report-pdf-view .__zoom-controls{width:100%;justify-content:center;margin-left:0;margin-top:.5rem}}.axp-report-pdf-view .__zoom-level{-webkit-user-select:none;user-select:none}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2302
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPReportPdfViewComponent, isStandalone: true, selector: "axp-report-pdf-view", host: { classAttribute: "axp-report-pdf-view w-full h-full flex flex-col" }, ngImport: i0, template: "<ng-container *translate=\"let t\">\n @if (vm.status() === AXPPageStatus.Processing) {\n <!-- Loading State -->\n <div class=\"__loading flex flex-col items-center justify-center h-full gap-6 p-8\">\n <div class=\"spinner spin w-10 h-10\"></div>\n <div class=\"__loading-text text-sm opacity-70\">\n {{ t('@report-management:report-viewer.components.pdf.messages.loading') | async }}\n </div>\n </div>\n } @else if (vm.status() === AXPPageStatus.Error) {\n <!-- Error State -->\n <axp-state-message mode=\"error\" icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.fetch-description'\">\n </axp-state-message>\n } @else if (isPdfReady()) {\n <!-- PDF Embed Only -->\n <embed class=\"__pdf-embed w-full h-full\" [src]=\"pdfSource()\" type=\"application/pdf\" />\n } @else {\n <!-- No PDF Data State -->\n <axp-state-message icon=\"fa-light fa-file-pdf\"\n [title]=\"'@report-management:report-viewer.components.pdf.empty-states.no-data.title'\"\n [description]=\"'@report-management:report-viewer.components.pdf.empty-states.no-data.description'\">\n </axp-state-message>\n }\n</ng-container>", styles: [".axp-report-pdf-view .__loading{min-height:400px}.axp-report-pdf-view .__pdf-container{background:var(--ax-color-background)}.axp-report-pdf-view .__pdf-container.__fullscreen{position:fixed;z-index:9999;inset:0;border-radius:0}.axp-report-pdf-view .__pdf-toolbar{background:var(--ax-color-surface)}.axp-report-pdf-view .__pdf-body{background:var(--ax-color-background-secondary)}.axp-report-pdf-view .__pdf-wrapper{min-height:400px}.axp-report-pdf-view .__pdf-embed{--tw-border-style: none;border-style:none;box-shadow:0 2px 8px #0000001a;transition:width .3s ease,height .3s ease}.axp-report-pdf-view .__zoom-level{-webkit-user-select:none;user-select:none}@media(max-width:640px){.axp-report-pdf-view .__zoom-controls{margin-top:calc(var(--spacing, .25rem) * 2);width:100%;justify-content:center;margin-left:0}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2303
2303
  }
2304
2304
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPReportPdfViewComponent, decorators: [{
2305
2305
  type: Component,
@@ -2312,7 +2312,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2312
2312
  AXPStateMessageComponent,
2313
2313
  ], host: {
2314
2314
  class: 'axp-report-pdf-view w-full h-full flex flex-col',
2315
- }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *translate=\"let t\">\n @if (vm.status() === AXPPageStatus.Processing) {\n <!-- Loading State -->\n <div class=\"__loading flex flex-col items-center justify-center h-full gap-6 p-8\">\n <div class=\"spinner spin w-10 h-10\"></div>\n <div class=\"__loading-text text-sm opacity-70\">\n {{ t('@report-management:report-viewer.components.pdf.messages.loading') | async }}\n </div>\n </div>\n } @else if (vm.status() === AXPPageStatus.Error) {\n <!-- Error State -->\n <axp-state-message mode=\"error\" icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.fetch-description'\">\n </axp-state-message>\n } @else if (isPdfReady()) {\n <!-- PDF Embed Only -->\n <embed class=\"__pdf-embed w-full h-full\" [src]=\"pdfSource()\" type=\"application/pdf\" />\n } @else {\n <!-- No PDF Data State -->\n <axp-state-message icon=\"fa-light fa-file-pdf\"\n [title]=\"'@report-management:report-viewer.components.pdf.empty-states.no-data.title'\"\n [description]=\"'@report-management:report-viewer.components.pdf.empty-states.no-data.description'\">\n </axp-state-message>\n }\n</ng-container>", styles: [".axp-report-pdf-view .__loading{min-height:400px}.axp-report-pdf-view .__pdf-container{background:var(--ax-color-background)}.axp-report-pdf-view .__pdf-container.__fullscreen{position:fixed;inset:0;z-index:9999;border-radius:0}.axp-report-pdf-view .__pdf-toolbar{background:var(--ax-color-surface)}.axp-report-pdf-view .__pdf-body{background:var(--ax-color-background-secondary)}.axp-report-pdf-view .__pdf-wrapper{min-height:400px}.axp-report-pdf-view .__pdf-embed{border:none;box-shadow:0 2px 8px #0000001a;transition:width .3s ease,height .3s ease}@media(max-width:640px){.axp-report-pdf-view .__zoom-controls{width:100%;justify-content:center;margin-left:0;margin-top:.5rem}}.axp-report-pdf-view .__zoom-level{-webkit-user-select:none;user-select:none}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
2315
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *translate=\"let t\">\n @if (vm.status() === AXPPageStatus.Processing) {\n <!-- Loading State -->\n <div class=\"__loading flex flex-col items-center justify-center h-full gap-6 p-8\">\n <div class=\"spinner spin w-10 h-10\"></div>\n <div class=\"__loading-text text-sm opacity-70\">\n {{ t('@report-management:report-viewer.components.pdf.messages.loading') | async }}\n </div>\n </div>\n } @else if (vm.status() === AXPPageStatus.Error) {\n <!-- Error State -->\n <axp-state-message mode=\"error\" icon=\"fa-light fa-exclamation-triangle\"\n [title]=\"'@report-management:report-viewer.messages.error.fetch-title'\"\n [description]=\"vm.error() || '@report-management:report-viewer.messages.error.fetch-description'\">\n </axp-state-message>\n } @else if (isPdfReady()) {\n <!-- PDF Embed Only -->\n <embed class=\"__pdf-embed w-full h-full\" [src]=\"pdfSource()\" type=\"application/pdf\" />\n } @else {\n <!-- No PDF Data State -->\n <axp-state-message icon=\"fa-light fa-file-pdf\"\n [title]=\"'@report-management:report-viewer.components.pdf.empty-states.no-data.title'\"\n [description]=\"'@report-management:report-viewer.components.pdf.empty-states.no-data.description'\">\n </axp-state-message>\n }\n</ng-container>", styles: [".axp-report-pdf-view .__loading{min-height:400px}.axp-report-pdf-view .__pdf-container{background:var(--ax-color-background)}.axp-report-pdf-view .__pdf-container.__fullscreen{position:fixed;z-index:9999;inset:0;border-radius:0}.axp-report-pdf-view .__pdf-toolbar{background:var(--ax-color-surface)}.axp-report-pdf-view .__pdf-body{background:var(--ax-color-background-secondary)}.axp-report-pdf-view .__pdf-wrapper{min-height:400px}.axp-report-pdf-view .__pdf-embed{--tw-border-style: none;border-style:none;box-shadow:0 2px 8px #0000001a;transition:width .3s ease,height .3s ease}.axp-report-pdf-view .__zoom-level{-webkit-user-select:none;user-select:none}@media(max-width:640px){.axp-report-pdf-view .__zoom-controls{margin-top:calc(var(--spacing, .25rem) * 2);width:100%;justify-content:center;margin-left:0}}\n/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */\n"] }]
2316
2316
  }] });
2317
2317
 
2318
2318
  class AXPReportTableViewComponent {