@acorex/platform 19.3.0-next.5 → 19.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/common/lib/app/index.d.ts +0 -1
  2. package/common/lib/common.module.d.ts +1 -1
  3. package/common/lib/configs/app.config.d.ts +12 -3
  4. package/common/lib/home-page/home-page.service.d.ts +6 -0
  5. package/common/lib/layout/logo/logo.component.d.ts +4 -0
  6. package/common/lib/settings/settings.service.d.ts +4 -1
  7. package/common/lib/utils/index.d.ts +0 -1
  8. package/common/lib/utils/regional-util.service.d.ts +2 -2
  9. package/common/lib/utils/regional.types.d.ts +6 -16
  10. package/core/lib/index.d.ts +1 -0
  11. package/{common/lib/app → core/lib/startup}/app-startup.service.d.ts +1 -5
  12. package/core/lib/startup/app-startup.types.d.ts +6 -0
  13. package/core/lib/startup/index.d.ts +2 -0
  14. package/core/lib/types/logo.types.d.ts +5 -9
  15. package/fesm2022/acorex-platform-auth.mjs +5 -1
  16. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-common.mjs +130 -218
  18. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-core.mjs +42 -13
  20. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-builder.mjs +17 -0
  22. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-components.mjs +247 -0
  24. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-layout-designer.mjs +2 -2
  26. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-entity.mjs +44 -20
  28. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-layout-search.mjs +4 -3
  30. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-layout-setting.mjs +5 -4
  32. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  33. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs → acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs} +5 -4
  34. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-themes-default.mjs +18 -20
  36. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  37. package/fesm2022/acorex-platform-themes-shared.mjs +22 -18
  38. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  39. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-CybYV1Kf.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-1IseEVXQ.mjs} +2 -2
  40. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-1IseEVXQ.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-widgets.mjs +35 -3775
  42. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  43. package/layout/builder/lib/builder/context-store.service.d.ts +2 -1
  44. package/layout/builder/lib/builder/widget-base.component.d.ts +1 -0
  45. package/layout/builder/lib/builder/widget-container.component.d.ts +1 -0
  46. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  47. package/layout/builder/lib/builder/widget-renderer.directive.d.ts +1 -0
  48. package/layout/components/README.md +3 -0
  49. package/layout/components/index.d.ts +1 -0
  50. package/layout/components/lib/user-avatar/index.d.ts +4 -0
  51. package/layout/components/lib/user-avatar/user-avatar.component.d.ts +27 -0
  52. package/layout/components/lib/user-avatar/user-avatar.provider.d.ts +3 -0
  53. package/layout/components/lib/user-avatar/user-avatar.service.d.ts +42 -0
  54. package/layout/components/lib/user-avatar/user-avatar.types.d.ts +12 -0
  55. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -0
  56. package/layout/entity/lib/entity.module.d.ts +1 -1
  57. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +1 -1
  58. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +1 -0
  59. package/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.d.ts +0 -5
  60. package/layout/search/lib/search.module.d.ts +1 -1
  61. package/layout/setting/lib/settings.module.d.ts +1 -1
  62. package/package.json +8 -2
  63. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +12 -3
  64. package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +12 -6
  65. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +2 -1
  66. package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +14 -5
  67. package/themes/shared/lib/shared.module.d.ts +1 -1
  68. package/widgets/lib/widgets/index.d.ts +0 -9
  69. package/common/lib/utils/data-generator.d.ts +0 -26
  70. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CybYV1Kf.mjs.map +0 -1
  72. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget.component.d.ts +0 -41
  73. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget.config.d.ts +0 -7
  74. package/widgets/lib/widgets/charts/bar-chart/bar-chart.type.d.ts +0 -34
  75. package/widgets/lib/widgets/charts/bar-chart/index.d.ts +0 -2
  76. package/widgets/lib/widgets/charts/chart.type.d.ts +0 -3
  77. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar-widget.component.d.ts +0 -40
  78. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar-widget.config.d.ts +0 -7
  79. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar.types.d.ts +0 -50
  80. package/widgets/lib/widgets/charts/clock-calendar/index.d.ts +0 -3
  81. package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget.component.d.ts +0 -58
  82. package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget.config.d.ts +0 -7
  83. package/widgets/lib/widgets/charts/donut-chart/donut-chart.type.d.ts +0 -67
  84. package/widgets/lib/widgets/charts/donut-chart/index.d.ts +0 -2
  85. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget.component.d.ts +0 -69
  86. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget.config.d.ts +0 -7
  87. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +0 -29
  88. package/widgets/lib/widgets/charts/gauge-chart/index.d.ts +0 -3
  89. package/widgets/lib/widgets/charts/notification/index.d.ts +0 -3
  90. package/widgets/lib/widgets/charts/notification/notification-widget.component.d.ts +0 -54
  91. package/widgets/lib/widgets/charts/notification/notification-widget.config.d.ts +0 -10
  92. package/widgets/lib/widgets/charts/notification/notification.type.d.ts +0 -47
  93. package/widgets/lib/widgets/charts/shared/chart-base.component.d.ts +0 -44
  94. package/widgets/lib/widgets/charts/shared/chart-base.type.d.ts +0 -37
  95. package/widgets/lib/widgets/charts/shared/components/chart-tooltip/chart-tooltip.component.d.ts +0 -28
  96. package/widgets/lib/widgets/charts/shared/components/chart-tooltip/index.d.ts +0 -1
  97. package/widgets/lib/widgets/charts/sticky-note/index.d.ts +0 -2
  98. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget.component.d.ts +0 -21
  99. package/widgets/lib/widgets/charts/sticky-note/sticky-note-widget.config.d.ts +0 -7
  100. package/widgets/lib/widgets/charts/tasklist/index.d.ts +0 -3
  101. package/widgets/lib/widgets/charts/tasklist/tasklist-widget.component.d.ts +0 -34
  102. package/widgets/lib/widgets/charts/tasklist/tasklist-widget.config.d.ts +0 -7
  103. package/widgets/lib/widgets/charts/tasklist/tasklist.type.d.ts +0 -36
  104. package/widgets/lib/widgets/charts/weather/index.d.ts +0 -4
  105. package/widgets/lib/widgets/charts/weather/weather-services/index.d.ts +0 -3
  106. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.abstract.d.ts +0 -174
  107. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.key.d.ts +0 -2
  108. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.mock.service.d.ts +0 -47
  109. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.service.d.ts +0 -48
  110. package/widgets/lib/widgets/charts/weather/weather-widget.component.d.ts +0 -109
  111. package/widgets/lib/widgets/charts/weather/weather-widget.config.d.ts +0 -14
  112. package/widgets/lib/widgets/charts/weather/weather.module.d.ts +0 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-category/entity-category.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-category/entity-category.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/filters/entity-filter-toolbar.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/filters/entity-filter-toolbar.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.html","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.html"],"sourcesContent":["import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, input, signal, viewChild, ViewEncapsulation } from '@angular/core';\n\nimport { AXValueChangedEvent } from '@acorex/components/common';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTreeItemClickBaseEvent, AXTreeViewComponent, AXTreeViewModule } from '@acorex/components/tree-view';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity } from '@acorex/platform/common';\nimport { AXPEntityMasterListViewModel, AXPEntityResolver } from '@acorex/platform/layout/entity';\nimport {\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutToolbarComponent,\n} from '@acorex/platform/themes/shared';\n\n@Component({\n selector: 'axp-entity-category',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXTreeViewModule,\n AXSkeletonModule,\n AXPThemeLayoutBlockComponent,\n AXSearchBoxModule,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutToolbarComponent,\n AXTranslationModule,\n ],\n templateUrl: './entity-category.component.html',\n styleUrl: './entity-category.component.scss',\n})\nexport class AXPEntityCategoryComponent {\n protected readonly entityResolver = inject(AXPEntityResolver);\n protected readonly translate = inject(AXTranslationService);\n\n vm = input.required<AXPEntityMasterListViewModel>();\n tree = viewChild<AXTreeViewComponent>('tree');\n searchValue = input('');\n\n isLoading = signal(true);\n\n protected categoryEntityDef!: AXPEntity | null;\n protected categoryEntityQueryFunc!: Function;\n protected basicQueryEvent = {\n skip: 0,\n take: 1000,\n };\n\n protected treeItems = signal<any[]>([\n {\n expand: true,\n children: [],\n },\n ]);\n\n ngOnInit(): void {\n this.getCategories();\n }\n\n async handleCategorySearchChange(e: AXValueChangedEvent) {\n if (this.categoryEntityDef) {\n this.isLoading.set(true);\n\n const categoryInlineFilters = this.categoryEntityDef.properties.filter((p) => p.options?.filter?.inline?.enabled);\n const event = {\n ...this.basicQueryEvent,\n filter: {\n filters: [\n {\n filters: categoryInlineFilters.map((cif) => ({\n field: cif.name,\n operator: {\n type: 'contains',\n },\n value: e.value,\n })),\n logic: 'or',\n },\n {\n value: true,\n field: this.categoryEntityDef.parentKey,\n operator: {\n type: 'isEmpty',\n },\n },\n ],\n logic: 'and',\n },\n };\n const res = await this.categoryEntityQueryFunc(event);\n\n this.treeItems.update((prev) => prev.map((item: any) => ({ ...item, children: res.items })));\n this.isLoading.set(false);\n }\n }\n\n protected async getCategories() {\n this.isLoading.set(true);\n this.categoryEntityDef = await this.getCategoryEntityDef();\n this.categoryEntityQueryFunc = this.categoryEntityDef?.queries.list?.execute as Function;\n const res = await this.categoryEntityQueryFunc(this.basicQueryEvent);\n const textField = this.vm().entityDef.category?.textField || 'title';\n const valueField = this.vm().entityDef.category?.valueField || 'id';\n const updatedItems = {\n expand: true,\n [textField]: await this.translate.translateAsync('allItems'),\n [valueField]: 'all',\n children: res.items,\n };\n this.treeItems.update((prev) => prev.map((_) => updatedItems));\n this.isLoading.set(false);\n }\n\n protected async handleCollapseChanged(e: AXTreeItemClickBaseEvent) {\n debugger;\n this.tree()?.setNodeLoading(e.data.id, true);\n const event = {\n ...this.basicQueryEvent,\n filter: {\n field: this.categoryEntityDef?.parentKey,\n value: e.data.id,\n operator: {\n type: 'equal',\n },\n },\n };\n const children = await this.categoryEntityQueryFunc(event);\n this.treeItems.update((prev) =>\n prev.map((i) => ({\n ...i,\n children: prev[0].children.map((ti: any) => (ti.id === e.data.id ? { ...ti, children: children.items } : ti)),\n }))\n );\n\n this.tree()?.setNodeLoading(e.data.id, false);\n }\n\n protected async getCategoryEntityDef() {\n const [module, entity] = this.vm().entityDef.category?.entity?.split('.') || [];\n return await this.entityResolver.get(module, entity);\n }\n protected handleNodeClick(event: AXTreeItemClickBaseEvent) {\n const filters = this.vm()\n .entityDef.category?.applyConditions?.map((f) => {\n console.log({ f });\n return event.data[f.value] !== 'all'\n ? {\n field: f.name,\n value: event.data[f.value],\n operator: f.operator,\n }\n : null;\n })\n .filter((item) => item != null);\n const viewFilters = this.vm()\n .view()\n .conditions.map((i) => ({ ...i, field: i.name }));\n console.log({ viewFilters });\n const newFilters = [...viewFilters, ...filters!];\n // this.vm().filterQueries.update((prev) => [...prev, ...filters!]);\n this.vm().dataSource.filter({\n filters: newFilters,\n logic: 'and',\n });\n this.vm().dataSource.refresh();\n }\n}\n","<!-- <ax-tree-view [items]=\"treeItems()\"></ax-tree-view> -->\n\n<axp-layout-header>\n <axp-layout-title>{{ vm().entityDef.category?.title || 'category' | translate | async }}</axp-layout-title>\n <axp-layout-toolbar>\n <ax-search-box\n (onValueChanged)=\"handleCategorySearchChange($event)\"\n [delayTime]=\"300\"\n [placeholder]=\"'search.placeholder' | translate | async\"\n >\n </ax-search-box>\n </axp-layout-toolbar>\n</axp-layout-header>\n<axp-layout-content>\n @if(isLoading()){\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-3\">\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded-md\"></ax-skeleton>\n </div>\n }@else if (treeItems()[0].children.length) {\n <div class=\"ax-px-4 ax-max-h-[calc(100vh-250px)] ax-overflow-auto\">\n <ax-tree-view\n (onNodeClick)=\"handleNodeClick($event)\"\n (onCollapsedChanged)=\"handleCollapseChanged($event)\"\n [showCheckbox]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n #treeRef\n [textField]=\"vm().entityDef.category?.textField || 'title'\"\n [valueField]=\"vm().entityDef.category?.valueField || 'id'\"\n [expandedField]=\"'expand'\"\n [items]=\"treeItems()\"\n #tree\n >\n </ax-tree-view>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-justify-center\">\n <span class=\"ax-text-center\"> No Record Found! </span>\n </div>\n }\n\n <ng-template #itemTemplate let-item>\n <ax-icon class=\"fas ax-text-warning fa-folder\"></ax-icon>\n {{ item.title }}\n </ng-template>\n</axp-layout-content>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXValueChangedEvent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSettingService } from '@acorex/platform/common';\n\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { Component, effect, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { cloneDeep } from 'lodash-es';\n\n@Component({\n selector: 'axp-list-view-option-columns',\n templateUrl: './list-view-option-columns.component.html',\n imports: [\n CommonModule,\n FormsModule,\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n AXButtonModule,\n AXDecoratorModule,\n AXSwitchModule,\n AXTranslationModule,\n ],\n})\nexport class AXPListViewOptionsColumnsComponent {\n protected settings = inject(AXPSettingService);\n\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n\n @Output()\n public onClosed = new EventEmitter<void>();\n\n columnsChanged = effect(() => {\n this.vm.onColumnsChanged(this.vm.columns());\n //.map((c) => ({ visible: c.visible, name: c.name }))\n });\n\n handleVisibilityChange(e: AXValueChangedEvent<boolean>, name: string) {\n if (e.isUserInteraction) {\n this.vm.columns.update((prev) => {\n return prev.map((c: any) => {\n return c.name === name ? { ...c, visible: e.value ?? true } : c;\n });\n });\n }\n }\n\n protected drop(event: CdkDragDrop<unknown[]>) {\n const columns = cloneDeep(this.vm.columns());\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\n this.vm.columns.set(columns);\n }\n}\n","<div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.columns();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-switch\n class=\"ax-sm\"\n [ngModel]=\"item.visible\"\n (onValueChanged)=\"handleVisibilityChange($event, item.name)\"\n ></ax-switch>\n </div>\n }\n </div>\n</div>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityMasterListViewModel, AXPEntityMasterListViewSortPropViewModel } from '@acorex/platform/layout/entity';\nimport { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'axp-list-view-option-sorting',\n templateUrl: './list-view-option-sorting.component.html',\n imports: [\n AXTranslationModule,\n CommonModule,\n FormsModule,\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n AXButtonModule,\n AXImageModule,\n AXDecoratorModule,\n AXSwitchModule,\n AXSelectBoxModule,\n ],\n})\nexport class AXPListViewOptionSortingComponent {\n protected isSM = false;\n\n @Output()\n public onClosed = new EventEmitter<void>();\n\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n\n protected drop(event: CdkDragDrop<unknown[]>) {\n moveItemInArray(this.vm.sortedFields(), event.previousIndex, event.currentIndex);\n }\n\n protected changeItemSort(item: AXPEntityMasterListViewSortPropViewModel) {\n const newDirection = item.dir === 'asc' ? 'desc' : item.dir === 'desc' ? undefined : 'asc';\n\n this.vm.sortedFields.update((prev) => {\n return prev.map((field) => {\n if (field.name === item.name) {\n return { ...field, dir: newDirection };\n }\n return field;\n });\n });\n\n item.dir = newDirection;\n }\n}\n","<div class=\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\">\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-select-none\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\n <div class=\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\">\n @for(item of vm.sortedFields();track item.name) {\n <div class=\"ax-flex ax-py-1 ax-items-center ax-justify-between\" cdkDrag cdkDragBoundary=\".ax-sorted-list\">\n <div class=\"ax-flex ax-items-center ax-gap-3\" cdkDragHandle>\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move\"></ax-icon>\n <p class=\"ax-font-medium ax-text-sm\">{{ item.title | translate | async }}</p>\n </div>\n <ax-button [color]=\"'blank'\" class=\"ax-sm\" (click)=\"changeItemSort(item)\">\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'asc'\"\n class=\"fa-solid fa-arrow-up-long ax-text-neutral-400\"\n ></ax-icon>\n <ax-icon\n [class.ax-text-primary]=\"item.dir === 'desc'\"\n class=\"fa-solid fa-arrow-down-long ax-text-neutral-400\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n</div>\n","import { AXListNavigationModule } from '@acorex/cdk/list-navigation';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource, AXEvent, AXHtmlEvent, AXValueChangedEvent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTagBoxComponent, AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXCalendarService } from '@acorex/core/date-time';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { ALL_DEFAULT_OPERATORS, AXPFilterDefinition, AXPFilterQuery, AXPQueryFilter } from '@acorex/platform/common';\nimport {\n AXPLayoutBuilderModule,\n AXPLayoutContextChangeEvent,\n AXPWidgetTypesMap,\n} from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n Input,\n linkedSignal,\n QueryList,\n signal,\n untracked,\n viewChild,\n ViewChildren,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'axp-entity-filter-toolbar',\n templateUrl: './entity-filter-toolbar.component.html',\n styleUrl: '../entity-master-toolbar-view.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPopoverModule,\n AXSelectionListModule,\n AXTagBoxModule,\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXListNavigationModule,\n AXBadgeModule,\n ],\n providers: [],\n host: {\n class: 'ax-w-full',\n },\n})\nexport class AXPEntityFilterToolbarComponent {\n constructor() {}\n\n protected translate = inject(AXTranslationService);\n protected calendarService = inject(AXCalendarService);\n\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n\n protected tagBox = viewChild<AXTagBoxComponent>('tagBox');\n tagBoxInput!: any;\n\n @ViewChildren('caseItem') listItems!: QueryList<any>;\n\n protected selectedField = signal<string | null>(null);\n protected selectedFilters = linkedSignal<AXPFilterDefinition[]>(() =>\n this.convertQueriesToDefinitions(this.vm.view().conditions).map((i) => ({ ...i, readOnly: true }))\n );\n context = linkedSignal<any>(() => this.convertQueriesToContext(this.vm.view().conditions));\n\n protected activeFilter = signal<AXPFilterDefinition | null>(null);\n\n protected asyncTags = signal<any[]>([]);\n\n protected popover = viewChild<AXPopoverComponent>('popover');\n\n inputValue = signal<string>('');\n\n inlineFilters = () => {\n return this.vm.filtersDef.filter(\n (f) =>\n f.filterType.inline &&\n !this.selectedFilters().some(\n (sf) =>\n sf.field === f.field &&\n sf.operator?.type === (this.context()[sf.field]?.operation?.type || f.operator?.type)\n )\n );\n };\n\n protected getDisplayValue = async (filter: AXPFilterDefinition, val: any) => {\n if (filter.widget.type === 'select-editor' || filter.widget.type === 'select-filter') {\n const dataSource: AXDataSource = filter.widget.options?.['dataSource'];\n const textField = filter.widget.options?.['textField'];\n const valueField = filter.widget.options?.['valueField'];\n if (dataSource?.config?.byKey) {\n if (Array.isArray(val)) {\n const results: unknown[] = await Promise.all(val.map((v) => dataSource.config.byKey!(v)));\n return results.map((data) => (data as Record<string, any>)[textField]).join(', ');\n } else {\n const data = (await dataSource.config.byKey(val)) as Record<string, any>;\n return data[textField];\n }\n } else if (Array.isArray(dataSource)) {\n if (Array.isArray(val)) {\n return dataSource.map((data) => (data as Record<string, any>)[textField]).join(', ');\n } else {\n const record: any = dataSource.find((d: any) => d[valueField] === val);\n return record ? record[textField] : '';\n }\n }\n }\n return typeof val === 'object' && !Array.isArray(val)\n ? `${this.convertIfISOStringDate(val.from)} and ${this.convertIfISOStringDate(val.to)}`\n : this.convertIfISOStringDate(val);\n };\n\n protected convertIfISOStringDate = (val: string) => {\n const isISOStringDate = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/.test(val);\n if (isISOStringDate) {\n return this.calendarService.convert(val).date.toLocaleDateString();\n }\n return val;\n };\n\n convertQueriesToDefinitions(queries: AXPQueryFilter[]): AXPFilterDefinition[] {\n const properties = this.vm.properties;\n\n return queries.map((q) => {\n const property = properties.find((p) => p.name === q.name);\n\n return {\n field: q.name,\n operator: q.operator,\n value: q.value,\n title: property?.title || '',\n widget: {\n type: property?.schema.interface?.type as AXPWidgetTypesMap[keyof AXPWidgetTypesMap],\n options: property?.schema.interface?.options,\n },\n filterType: {\n inline: property?.options?.filter?.inline?.enabled || false,\n advance: property?.options?.filter?.advance?.enabled || false,\n },\n };\n });\n }\n\n convertQueriesToContext(queries: AXPQueryFilter[]): any {\n return queries.reduce((acc, q) => {\n acc[q.name] = { value: q.value, operation: q.operator };\n return acc;\n }, {} as any);\n }\n\n filterFields = () => {\n return this.vm.filtersDef.filter(\n (f) =>\n f.filterType.advance &&\n f.title.toUpperCase().includes(this.tagBox()?.inputValue()?.toUpperCase() || '') &&\n !this.selectedFilters().some(\n (sf) =>\n sf.field === f.field &&\n sf.operator?.type === (this.context()[sf.field]?.operation?.type || f.operator?.type)\n )\n );\n };\n\n ngOnInit(): void {\n this.tagBoxInput = this.tagBox()?.getHostElement().querySelector('input');\n }\n\n handleSelectField(field: AXPFilterDefinition) {\n this.activeFilter.set(field);\n // this.inputValue.set('');\n this.tagBox()?.inputValue.set('');\n }\n handleFieldKeyDown(e: KeyboardEvent, field: AXPFilterDefinition) {\n if (e.key === 'Enter') {\n this.handleSelectField(field);\n }\n }\n\n onContextChanged(e: AXPLayoutContextChangeEvent) {\n this.context.set(e.data);\n }\n\n handleApplyFilter() {\n if (this.activeFilter()) {\n this.selectedFilters.update((prev) => [...prev, this.activeFilter() as AXPFilterDefinition]);\n this.activeFilter.set(null);\n this.popover()?.close();\n }\n }\n\n handleButtonKeyDown(e: Event) {\n if (this.popover()?.isOpen && !this.activeFilter()) {\n // Find first list item and focus it\n const firstItem = document.querySelector('[axListNavigationItem]') as HTMLElement;\n if (firstItem) {\n firstItem.focus();\n e?.preventDefault();\n }\n }\n }\n\n handleKeyDown(e: AXHtmlEvent<KeyboardEvent>) {\n if (e.nativeEvent?.key === 'ArrowDown') {\n if (this.popover()?.isOpen && !this.activeFilter()) {\n // Find first list item and focus it\n const firstItem = document.querySelector('[axListNavigationItem]') as HTMLElement;\n if (firstItem) {\n firstItem.focus();\n e.nativeEvent?.preventDefault();\n }\n }\n } else {\n this.popover()?.open();\n }\n }\n\n #effect = effect(() => {\n const context = untracked(() => this.context());\n const convertedFilters: AXPFilterQuery[] = this.selectedFilters().map((f) => ({\n field: f.field,\n operator: context[f.field]?.operation,\n value: context[f.field]?.value,\n }));\n const newContext: any = {};\n convertedFilters.forEach((cf) => {\n newContext[cf.field] = {\n value: cf.value,\n operation: typeof cf.operator === 'string' ? { type: cf.operator } : cf.operator,\n };\n });\n\n this.context.set(newContext);\n\n this.vm.filterQueries.set(convertedFilters);\n\n this.vm.applyFilterAndSort();\n\n untracked(() => this.deactivateAllListItems());\n });\n\n handleSelectFilters(e: AXValueChangedEvent) {\n console.log(e);\n this.selectedFilters.update((prev) => {\n return e.value;\n });\n }\n\n protected getActiveOperator(filter: AXPFilterDefinition | null) {\n if (!filter) {\n return undefined;\n }\n\n const contextOperation = this.context()?.[filter.field]?.operation?.type;\n const operatorType = contextOperation || filter.operator?.type;\n\n return ALL_DEFAULT_OPERATORS.find((o) => o.name === operatorType)?.title;\n }\n\n handleSelectInlineFilter(filter: AXPFilterDefinition) {\n this.context.update((prev) => ({\n ...prev,\n [filter.field]: {\n value: this.tagBox()?.inputValue(),\n operation: { type: 'contains' },\n },\n }));\n // this.inputValue.set('');\n this.tagBox()?.inputValue.set('');\n this.selectedFilters.update((prev) => [...prev, filter]);\n this.popover()?.close();\n }\n\n handleInlineFilterKeyDown(e: KeyboardEvent, filter: AXPFilterDefinition) {\n if (e.key === 'Enter') {\n this.handleSelectInlineFilter(filter);\n }\n }\n\n handlePopoverClosed(e: AXEvent) {\n this.activeFilter.set(null);\n }\n\n protected deactivateAllListItems(): void {\n if (this.listItems) {\n this.listItems.forEach((item) => {\n if (item.isActive()) {\n item.isActive.set(false);\n }\n });\n }\n }\n\n #effect2 = effect(() => {\n const filters = this.selectedFilters();\n const context = this.context();\n\n Promise.all(\n filters.map(async (filter) => {\n console.log({ filter });\n const val = context[filter.field]?.value;\n const displayValue = await this.getDisplayValue(filter, val);\n return {\n ...filter,\n query: `${this.translate.translateSync(filter.title)} ${this.getActiveOperator(filter)} '${displayValue}'`,\n // readOnly: true,\n };\n })\n ).then((results) => {\n this.asyncTags.set(results);\n });\n });\n}\n","<div class=\"ax-flex ax-items-center ax-gap-2 ax-p-2\">\n <ax-button (keydown)=\"handleButtonKeyDown($event)\" (onClick)=\"popover.open()\" #filterButton [look]=\"'blank'\">\n <ax-icon class=\"far fa-bars-filter ax-cursor-pointer\"> </ax-icon>\n </ax-button>\n <ax-tag-box\n [ngModel]=\"asyncTags()\"\n (onValueChanged)=\"handleSelectFilters($event)\"\n [textField]=\"'query'\"\n [valueField]=\"'id'\"\n [look]=\"'none'\"\n [readonlyField]=\"'readOnly'\"\n (onKeyDown)=\"handleKeyDown($event)\"\n [addOnEnter]=\"false\"\n [placeholder]=\"'filter.title' | translate | async\"\n #tagBox\n ></ax-tag-box>\n</div>\n\n<ax-popover\n [offsetY]=\"activeFilter() ? -30 : 0\"\n [target]=\"tagBoxInput\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n (onClosed)=\"handlePopoverClosed($event)\"\n [adaptivityEnabled]=\"true\"\n #popover\n>\n <div class=\"md:ax-min-w-72 ax-border ax-surface ax-w-full md:ax-max-h-96 md:ax-overflow-auto\">\n <axp-widgets-container [context]=\"context()\" (onContextChanged)=\"onContextChanged($event)\">\n @if (activeFilter()) {\n <div class=\"ax-flex ax-flex-col ax-lightest-surface ax-rounded-md ax-shadow-md\">\n <ax-header class=\"ax-border-b ax-border-light ax-px-4 ax-py-2\">{{\n activeFilter()?.title! | translate | async\n }}</ax-header>\n <ax-content class=\"ax-p-4\">\n <div class=\"ax-mb-2\">\n <ax-badge [text]=\"getActiveOperator(activeFilter())!\"></ax-badge>\n </div>\n <ng-container\n axp-widget-renderer\n [node]=\"{\n type: activeFilter()?.widget?.type || 'text-editor',\n path: activeFilter()?.field,\n options: activeFilter()?.widget?.options\n }\"\n [mode]=\"'edit'\"\n >\n </ng-container>\n </ax-content>\n <ax-footer class=\"ax-border-t ax-flex ax-justify-end ax-border-light ax-w-full ax-px-4 ax-py-2\">\n <ax-button class=\"ax-xs\" [text]=\"'apply' | translate | async\" (onClick)=\"handleApplyFilter()\"></ax-button>\n </ax-footer>\n </div>\n }@else {\n <div axListNavigation #list=\"axListNavigation\" class=\"axp-list-items\">\n @if(tagBox.inputValue()){ @for(inlineFilter of inlineFilters(); track inlineFilter.field){\n <div\n axListNavigationItem\n #caseItem=\"axListNavigationItem\"\n [class.axp-state-focused]=\"caseItem.isActive()\"\n tabindex=\"0\"\n (click)=\"handleSelectInlineFilter(inlineFilter)\"\n (keydown)=\"handleInlineFilterKeyDown($event, inlineFilter)\"\n >\n {{ inlineFilter.title | translate | async }} {{ getActiveOperator(inlineFilter) }} '{{ tagBox.inputValue() }}'\n </div>\n }\n <span class=\"ax-w-full ax-border-t ax-border-light ax-my-1\"></span>\n } @for (field of filterFields(); track field.field) {\n <div\n axListNavigationItem\n #caseItem=\"axListNavigationItem\"\n [class.axp-state-focused]=\"caseItem.isActive()\"\n (click)=\"handleSelectField(field)\"\n (keydown)=\"handleFieldKeyDown($event, field)\"\n tabindex=\"0\"\n >\n <div class=\"ax-flex ax-items-end ax-gap-2\">\n <ax-icon class=\"ax-w-5\" [class]=\"'fa-light ' + field.icon\"> </ax-icon>\n {{ field.title | translate | async }}\n </div>\n </div>\n }\n </div>\n }\n </axp-widgets-container>\n </div>\n</ax-popover>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTabsComponent, AXTabsModule } from '@acorex/components/tabs';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n effect,\n Input,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'axp-entity-view-toolbar',\n templateUrl: './entity-view-toolbar.component.html',\n styleUrls: ['../entity-master-toolbar-view.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXTranslationModule, AXTextBoxModule, AXTabsModule],\n host: {\n class: 'ax-w-full',\n },\n})\nexport class AXPEntityViewToolbarComponent implements AfterViewInit {\n protected tabs = viewChild<AXTabsComponent>('tabs');\n\n constructor() {}\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n\n protected isMounted = signal(false);\n\n ngAfterViewInit(): void {\n this.isMounted.set(true);\n }\n\n #effect = effect(() => {\n if (!this.isMounted()) return;\n const views = untracked(() => this.vm.views());\n if (!views) return;\n const selectedTab = views.findIndex((v) => v.name == this.vm.view().name);\n untracked(() => {\n if (selectedTab != -1) {\n this.tabs()?.select(selectedTab);\n }\n });\n });\n\n handleActiveChange(e: any) {\n console.log(e);\n }\n}\n","<ax-tabs #tabs [look]=\"'with-line'\" class=\"ax-font-semibold\">\n @for (item of vm.views(); track item.name) {\n <ax-tab-item\n (onClick)=\"vm.setView(item.name)\"\n [key]=\"item.name\"\n [text]=\"(item.title | translate | async) || 'item.title'\"\n >\n </ax-tab-item>\n }\n</ax-tabs>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { AXPEntityMasterListViewComponent } from '../entity-master-list-view/entity-master-list-view.component';\nimport { AXPListViewOptionsColumnsComponent } from '../entity-master-list-view/list-view-option-columns/list-view-option-columns.component';\nimport { AXPListViewOptionSortingComponent } from '../entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component';\nimport { AXPEntityFilterToolbarComponent } from './filters/entity-filter-toolbar.component';\nimport { AXPEntityViewToolbarComponent } from './views/entity-view-toolbar.component';\n\n@Component({\n selector: 'axp-entity-master-toolbar-view',\n templateUrl: './entity-master-toolbar-view.component.html',\n\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPEntityFilterToolbarComponent,\n AXPEntityViewToolbarComponent,\n AXPopoverModule,\n AXPListViewOptionSortingComponent,\n AXPListViewOptionsColumnsComponent,\n ],\n host: {\n class: 'ax-w-full',\n },\n})\nexport class AXPEntityMasterToolbarViewComponent {\n protected layoutService = inject(AXPLayoutThemeService);\n protected parent = inject(AXPEntityMasterListViewComponent);\n\n @Input('viewModel')\n public vm!: AXPEntityMasterListViewModel;\n}\n","<axp-entity-view-toolbar [viewModel]=\"vm\"></axp-entity-view-toolbar>\n<div class=\"ax-flex ax-items-center ax-gap-2 ax-border-b ax-border-light w-full\">\n <axp-entity-filter-toolbar [viewModel]=\"vm\"></axp-entity-filter-toolbar>\n\n <div class=\"ax-flex ax-items-center ax-gap-1 md:ax-gap-2\">\n <ax-button [iconOnly]=\"true\" #columnButton [color]=\"'default'\">\n <i class=\"fa-light fa-table-columns\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"30\"\n [target]=\"columnButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\">\n <ax-header class=\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\">\n {{ 'entity.columns' | translate | async }}\n </ax-header>\n <div class=\"ax-py-2 ax-px-4\">\n <axp-list-view-option-columns [viewModel]=\"vm\"></axp-list-view-option-columns>\n </div>\n </div>\n </ax-popover>\n @if(vm.canSort()) {\n <ax-button [iconOnly]=\"true\" [text]=\"'Sorts'\" #sortButton [color]=\"'default'\">\n <i class=\"fa-light fa-sort-amount-up\"></i>\n </ax-button>\n <ax-popover\n [adaptivityEnabled]=\"true\"\n [offsetY]=\"10\"\n [target]=\"sortButton\"\n [openOn]=\"'toggle'\"\n [closeOn]=\"'clickOut'\"\n #popover\n >\n <div class=\"ax-lightest-surface ax-shadow-md ax-border md:ax-w-72 ax-w-full ax-rounded-md\">\n <ax-header class=\"ax-border-b ax-lighter-surface ax-rounded-t-md ax-p-4 ax-font-bold\">\n {{ 'entity.sorts' | translate | async }}\n </ax-header>\n <div class=\"ax-py-2 ax-px-4\">\n <axp-list-view-option-sorting [viewModel]=\"vm\"></axp-list-view-option-sorting>\n </div>\n </div>\n </ax-popover>\n } @if(layoutService.isSmall()){\n <ax-button (onClick)=\"parent.toggleCategoryDrawer()\" [iconOnly]=\"true\" [color]=\"'default'\">\n <i class=\"fa-light fa-bars\"></i>\n </ax-button>\n }\n </div>\n</div>\n","import { AXActionSheetModule } from '@acorex/components/action-sheet';\nimport {\n AXDataTableComponent,\n AXDataTableModule,\n AXDataTableRowDbClick,\n AXRowCommandItem,\n AXRowCommandItemClickEvent,\n onColumnSizeChangedEvent,\n} from '@acorex/components/data-table';\nimport { AXDrawerModule } from '@acorex/components/drawer';\nimport { AXPlatform } from '@acorex/core/platform';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\n\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDataPagerChangedEvent } from '@acorex/components/data-pager';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslationModule, translateSync } from '@acorex/core/translation';\nimport { AXPAuthModule } from '@acorex/platform/auth';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';\nimport {\n AXPLayoutThemeService,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutStartSideComponent,\n} from '@acorex/platform/themes/shared';\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXPActionMenuItem, AXPBreadcrumbItem, AXPExecuteCommand } from '@acorex/platform/core';\nimport { AXPBasePage, AXPBasePageComponent, AXPPageLayoutComponent } from '../../base';\nimport { AXPEntityCategoryComponent } from '../entity-category/entity-category.component';\nimport { AXPEntityMasterToolbarViewComponent } from '../entity-master-toolbar-view/entity-master-toolbar-view.component';\n\n@Component({\n templateUrl: 'entity-master-list-view.component.html',\n styleUrls: ['entity-master-list-view.component.scss'],\n selector: 'axp-entity-master-list',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n AXButtonModule,\n AXDecoratorModule,\n AXBadgeModule,\n AXDropdownModule,\n AXPopoverModule,\n AXFormModule,\n AXActionSheetModule,\n AXDrawerModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXBreadcrumbsModule,\n AXDropdownButtonModule,\n AXSearchBoxModule,\n AXDataTableModule,\n AXTranslationModule,\n DragDropModule,\n //\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXPAuthModule,\n //\n AXPEntityMasterToolbarViewComponent,\n //\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXDropdownButtonModule,\n AXPThemeLayoutStartSideComponent,\n AXPEntityCategoryComponent,\n ],\n providers: [\n {\n provide: AXPBasePage,\n useExisting: AXPEntityMasterListViewComponent,\n },\n ],\n})\nexport class AXPEntityMasterListViewComponent extends AXPBasePageComponent {\n private activeRoute = inject(ActivatedRoute);\n\n protected readonly vm = this.activeRoute.snapshot.data['vm'] as AXPEntityMasterListViewModel;\n\n //\n protected store = inject(AXPLayoutThemeService);\n //\n protected searchBarShown = signal(true);\n protected activeEndSideView = signal<'column' | 'filter' | 'sort'>('column');\n\n protected categorySearchValue = signal('');\n\n // @ViewChild('grid', { static: true}) grid: AXDataTableComponent;\n protected grid = viewChild<AXDataTableComponent>('grid');\n\n constructor(protected platform: AXPlatform) {\n super();\n effect(() => {\n if (this.grid()) {\n this.grid()!.selectedRows = this.vm.selectedItems();\n }\n });\n //\n this.vm.events$.subscribe(async (e) => {\n const refreshTargetId = e.meta?.refreshTargetId;\n if (e.action == 'refresh') {\n if (refreshTargetId) {\n this.grid()?.refreshItemChildren(refreshTargetId);\n } else {\n this.grid()?.refresh();\n }\n }\n });\n }\n\n ngAfterViewInit() {\n this.vm.setView();\n }\n\n // protected closeFiltersDrawer(e: AXDrawerComponent, collapsed: boolean) {\n // if (collapsed) {\n // e.close();\n // this.vm.discardFilters();\n // }\n // }\n\n // handleChangeSearchValue(e: AXValueChangedEvent) {\n // if (e.isUserInteraction) {\n // this.vm.applyInlineFilter(e.value);\n // }\n // }\n\n protected onColumnSizeChanged(e: onColumnSizeChangedEvent) {\n if (e.isUserInteraction && e.type === 'end') {\n this.vm.saveSettings('columnSizes', e.data);\n }\n }\n\n protected onPageChanged(e: AXDataPagerChangedEvent) {\n if (e.isUserInteraction) {\n const pageSizeChanged = e.take != this.vm.dataSource.pageSize;\n if (pageSizeChanged) {\n this.vm.saveSettings('pageSize', e.take);\n }\n }\n }\n\n protected async dropdownRowItems(rowData: any): Promise<AXRowCommandItem[]> {\n return (await this.vm.secondaryRowActions(rowData)).map((c) => ({\n icon: c.icon,\n name: c.name,\n text: translateSync(c.title),\n color: c.color,\n disabled: c.disabled,\n })) as AXRowCommandItem[];\n }\n\n private commandRowItems = computed<AXRowCommandItem[]>(() => {\n return this.vm.primaryRowActions().map((c) => {\n return {\n icon: c.icon,\n name: c.name,\n text: translateSync(c.title),\n color: c.color,\n disabled: c.disabled,\n } as AXRowCommandItem;\n });\n });\n\n protected async handleRowDbClick(e: AXDataTableRowDbClick) {\n //TODO: find a way for default action\n const item = [...this.commandRowItems(), ...(await this.dropdownRowItems(e.data))][0];\n if (item) {\n const d: AXRowCommandItemClickEvent = {\n component: e.component,\n name: item.name,\n data: e.data,\n };\n this.handleRowCommandClick(d);\n }\n }\n\n protected getDropdownRowItems = (rowData: unknown): Promise<AXRowCommandItem[]> => {\n return Promise.resolve(this.dropdownRowItems(rowData));\n };\n\n protected getCommandRowItems = (): AXRowCommandItem[] => {\n return this.commandRowItems();\n };\n\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\n this.vm.executeCommand(e.name, e.data);\n }\n\n protected async handleSelectedRowsChange(rows: unknown[]) {\n this.vm.selectedItems.set(rows);\n }\n\n protected makeResponsive<t>(value: t): t | string {\n if (this.platform.is('Mobile') || this.platform.is('SM')) {\n return '';\n } else {\n return value;\n }\n }\n\n protected toggleSideBar(sideBar?: 'column' | 'filter' | 'sort') {\n this.toggleEndSide();\n if (sideBar) {\n this.activeEndSideView.set(sideBar);\n }\n }\n\n protected toggleSearchBar() {\n this.searchBarShown.update((v) => !v);\n }\n\n protected handleResetClick(sideBar: 'filter' | 'sort' | 'column') {\n switch (sideBar) {\n case 'filter': {\n this.vm.resetFilters();\n break;\n }\n case 'sort': {\n this.vm.resetSorts();\n break;\n }\n case 'column': {\n this.vm.resetColumns();\n break;\n }\n }\n }\n\n // protected handleDiscardClick(sideBar: 'filter' | 'sort' | 'column') {\n // switch (sideBar) {\n // case 'filter': {\n // this.vm.discardFilters();\n // break;\n // }\n // case 'sort': {\n // this.vm.resetSorts();\n // break;\n // }\n // case 'column': {\n // this.vm.resetColumns();\n // break;\n // }\n // }\n // }\n\n protected handleApplyClick(sideBar: 'filter' | 'sort' | 'column') {\n this.vm.applyFilterAndSort();\n this.toggleEndSide();\n }\n\n ngOnDestroy(): void {\n this.vm.destroy();\n }\n\n toggleCategoryDrawer() {\n this.toggleStartSide();\n }\n\n override getPageTitle(): string {\n return this.vm.title();\n }\n\n override async getPageDescription(): Promise<string> {\n const description = this.vm.description();\n if (description) {\n return this.translateService.translateAsync(description);\n }\n return '';\n }\n\n override getPageBreadcrumbs(): AXPBreadcrumbItem[] {\n return this.vm.beardcrumbs();\n }\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return this.vm.primaryActions().map(\n (tr) =>\n ({\n name: tr.name,\n title: tr.title,\n icon: tr.icon,\n color: tr.color,\n disabled: tr.disabled,\n command: {\n name: tr.name,\n options: tr.options,\n metadata: tr.metadata,\n },\n } as AXPActionMenuItem)\n );\n }\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return this.vm.secondaryActions().map((tr) => ({\n name: tr.name,\n title: tr.title,\n icon: tr.icon,\n color: tr.color,\n disabled: tr.disabled,\n separated: tr.separated,\n }));\n }\n\n override async execute(command: AXPExecuteCommand): Promise<void> {\n if (command) {\n this.vm.execute(command);\n }\n }\n}\n","<axp-page-layout *translate=\"let t\">\n @if(vm.entityDef.category){\n <axp-layout-start-side>\n <axp-entity-category class=\"ax-w-80\" [vm]=\"vm\" [searchValue]=\"categorySearchValue()\"></axp-entity-category>\n </axp-layout-start-side>\n }\n <axp-page-toolbar>\n <axp-entity-master-toolbar-view [viewModel]=\"vm\"></axp-entity-master-toolbar-view>\n </axp-page-toolbar>\n <axp-page-content>\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [parentField]=\"vm.parentKey()\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n (onColumnSizeChanged)=\"onColumnSizeChanged($event)\"\n (onPageChanged)=\"onPageChanged($event)\"\n >\n @if(vm.view().indexCol === true){\n <ax-index-column fixed=\"start\" [width]=\"'80px'\" [padZero]=\"true\"></ax-index-column>\n } @if(vm.selectedScopeActionsCount()){\n <ax-select-column fixed=\"start\" [width]=\"'60px'\"></ax-select-column>\n } @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"(col.title | translate | async)!\"\n [node]=\"col.node()\"\n [customWidth]=\"col.width\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 60 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n }\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n </ax-data-table>\n </axp-page-content>\n</axp-page-layout>\n"],"names":["i3","i5","i6","i2","i4","i7","i10","i1"],"mappings":"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"}
@@ -167,7 +167,7 @@ class AXPPageLayoutComponent {
167
167
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPageLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
168
168
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPPageLayoutComponent, isStandalone: true, selector: "axp-page-layout", viewQueries: [{ propertyName: "startSideDrawer", first: true, predicate: ["startSideDrawer"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1$1.AXDrawerContainerDirective }], ngImport: i0, template: "<div\n [mode]=\"layoutService.isSmall() ? 'overlay' : 'push'\"\n transition=\"0.25\"\n axDrawerItem\n [backDrop]=\"true\"\n (onBackdropClicked)=\"startSideDrawer.hide()\"\n #startSideDrawer=\"axDrawerItem\"\n [initialState]=\"layoutService.isSmall() ? 'hide' : 'show'\"\n drawerLocation=\"left\"\n class=\"ax-z-50 ax-h-full\"\n>\n <ng-content select=\"axp-layout-start-side\"></ng-content>\n</div>\n<axp-layout-container #container>\n <axp-layout-header\n *translate=\"let t\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'axp-is-sticky'\"\n [stickyOffset]=\"50\"\n [stickyParent]=\"container.hostElement\"\n >\n @if(page?.hasBackButton() && layoutService.isSmall()) {\n <ax-button\n [look]=\"'blank'\"\n class=\"ax-sm ax-w-fit ax-ms-1\"\n color=\"secondary\"\n (click)=\"page?.onBackButtonClick()\"\n [text]=\"page?.backButton()?.title\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-chevron-left rtl:ax-rotate-180\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n <!-------- Begin Title Bar -------->\n <axp-layout-title-bar>\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-flex-col ax-transition\">\n <!-- Breadcrumbs -->\n @if(page?.hasBreadcrumbs() && !layoutService.isSmall()) {\n <ax-breadcrumbs class=\"ax-mb-1\">\n @for (item of page?.breadcrumbs(); track $index) {\n <ax-breadcrumbs-item [active]=\"$last\" (click)=\"execute(item.command!)\">\n @if(item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n {{ t(item.title) | async }}\n </ax-breadcrumbs-item>\n }\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward\"></i>\n </ng-template>\n </ax-breadcrumbs>\n }\n <div class=\"__title-container\">\n <!-- Title -->\n @if(page?.hasTitle()) {\n <axp-layout-title> {{ t(page?.title()) | async }}</axp-layout-title>\n }\n <!-- Title Actions -->\n @if(page?.hasTitleActions()) {\n <ax-button [look]=\"'blank'\" class=\"ax-sm -ax-mx-2\">\n <ax-prefix>\n <i class=\"fa-solid fa-caret-down fa-fw\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (sub of page?.titleActions(); track $index) {\n <ng-container>\n <ax-button-item\n [text]=\"(t(sub.title) | async)!\"\n [color]=\"sub.color\"\n [disabled]=\"sub.disabled\"\n (onClick)=\"handleActionClick(sub)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ sub.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(sub.break) {\n <ax-divider></ax-divider>\n }\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Description -->\n @if(page?.hasDescription()) {\n <axp-layout-description> {{ t(page?.description()) | async }}</axp-layout-description>\n }\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-------- Page Actions -------->\n @if(page?.hasActions()) {\n <axp-layout-actions class=\"ax-shrink-0\">\n <!--Primary Actions -->\n @if(page?.hasPrimaryActions()) {\n <!-- items -->\n @for (item of page?.primaryMenuItems(); track $index) {\n <ng-container *ngIf=\"item.visible != false\">\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [disabled]=\"item.disabled\"\n [text]=\"(t(item.title) | async)!\"\n [look]=\"'solid'\"\n [color]=\"item.color\"\n (onClick)=\"handleActionClick(item)\"\n >\n <ax-prefix>\n <i class=\"{{ item.icon }}\"></i>\n </ax-prefix>\n @if(item?.items) {\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (sub of item?.items; track $index) {\n <ng-container *ngIf=\"sub.visible != false\">\n <ax-button-item\n [text]=\"(t(sub.title) | async)!\"\n [color]=\"sub.color\"\n [disabled]=\"sub.disabled\"\n (onClick)=\"handleActionClick(sub)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ sub.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(sub.break) {\n <ax-divider></ax-divider>\n }\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n }\n </ax-button>\n </ng-container>\n } }\n <!-- Secondary Actions -->\n @if(page?.hasSecondaryActions()) {\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [text]=\"t('actions') | async\"\n [look]=\"layoutService.isSmall() ? 'blank' : 'solid'\"\n [color]=\"'default'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (item of page?.secondaryMenuItems(); track $index) {\n <ng-container>\n <ax-button-item\n [text]=\"(t(item.title) | async)!\"\n [color]=\"item.color\"\n [disabled]=\"item.disabled\"\n (onClick)=\"handleSecondaryActionClick(item)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if(item.break) {\n <ax-divider></ax-divider>\n }\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-layout-actions>\n }\n <!-- Finish Page Actions -->\n </axp-layout-title-bar>\n <!----- Finish Title Bar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n @if(!sticky.isSticky) { }\n <ng-content select=\"axp-page-toolbar\"></ng-content>\n <!-- Finish Navbar -->\n </axp-layout-header>\n <ng-content select=\"axp-page-content\"></ng-content>\n <ng-content select=\"axp-page-footer\"></ng-content>\n</axp-layout-container>\n", styles: ["axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem;opacity:0;animation:fadeInDown .5s ease-out forwards}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-page-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side,axp-page-layout axp-layout-end-side{display:flex;min-height:100%;min-width:16rem;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side axp-layout-header,axp-page-layout axp-layout-end-side axp-layout-header{display:flex;flex-direction:column;gap:.5rem;padding:1rem}axp-page-layout axp-layout-start-side axp-layout-header>axp-layout-title,axp-page-layout axp-layout-end-side axp-layout-header>axp-layout-title{font-size:1.125rem;line-height:1.75rem;font-weight:500}axp-page-layout axp-layout-start-side>axp-layout-content,axp-page-layout axp-layout-end-side>axp-layout-content{flex:1 1 0%}axp-page-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-page-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-page-layout>axp-layout-container>axp-layout-header.axp-is-sticky{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item{font-size:.75rem;line-height:1rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{display:flex;width:100%;align-items:center;justify-content:space-between;padding-left:1rem;padding-right:1rem}@media (min-width: 1280px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{border-width:0px}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar ax-layout-nav-button{display:flex;align-items:center;justify-content:space-between}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container{display:flex;align-items:center;gap:.75rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{width:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;line-height:1.75rem;font-weight:500;line-height:1.625}@media (min-width: 1024px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-page-layout>axp-layout-container>axp-layout-header axp-page-toolbar{margin-top:.5rem;padding-left:1rem;padding-right:1rem}axp-page-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column;padding:.75rem 1rem}axp-page-layout>axp-layout-container>axp-page-content.--scrollable{padding-bottom:1rem}axp-page-layout>axp-layout-container>axp-page-footer{border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1))}axp-page-layout>axp-layout-container>axp-page-footer:is(.ax-dark *){--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-dark-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}axp-page-layout>axp-layout-container>axp-page-footer{position:-webkit-sticky;position:sticky;bottom:0;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-page-layout>axp-layout-container>axp-page-footer.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type:
169
169
  //
170
- AXCommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i4$3.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i4$3.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i4$2.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDrawerDirectiveModule }, { kind: "directive", type: i1$1.AXDrawerItemDirective, selector: "[axDrawerItem]", inputs: ["drawerLocation", "initialState", "backDrop", "mode", "transition", "closeOnBackdropClick", "backdropColor"], outputs: ["onBackdropClicked", "onDrawerClosed"], exportAs: ["axDrawerItem"] }, { kind: "component", type:
170
+ AXCommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3$1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i4$3.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i4$3.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i4$2.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDrawerDirectiveModule }, { kind: "directive", type: i1$1.AXDrawerItemDirective, selector: "[axDrawerItem]", inputs: ["drawerLocation", "initialState", "backDrop", "mode", "transition", "closeOnBackdropClick", "backdropClass"], outputs: ["onBackdropClick", "onDrawerClosed"], exportAs: ["axDrawerItem"] }, { kind: "component", type:
171
171
  //
172
172
  AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer, axp-page-header, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-container, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutActionsComponent, selector: "axp-layout-actions" }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
173
173
  }
@@ -574,7 +574,7 @@ class AXPHorizontalMenuComponent {
574
574
  return AXPMenuBadgeHelper.getTotalCount(item, this.badgeService);
575
575
  }
576
576
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPHorizontalMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
577
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPHorizontalMenuComponent, isStandalone: true, selector: "axp-horizontal-menu", host: { classAttribute: "ax-light" }, ngImport: i0, template: "<div\n class=\"ax-w-full ax-flex ax-items-center ax-justify-between ax-gap-1 ax-bg-primary-surface ax-text-primary-on-surface ax-h-14 ax-px-4\"\n>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-logo\n [source]=\"platformConfig.logo?.light\"\n [attr.alt]=\"platformConfig.title\"\n class=\"ax-mx-auto ax-text-2xl\"\n ></axp-logo>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>\n\n<div class=\"__menu-bar\">\n <ax-menu [orientation]=\"'horizontal'\" [class.ax-dark]=\"layoutService.isDarkMode()\" [hasArrow]=\"true\">\n <ng-container\n *ngFor=\"let item of sort(menuStore.items())\"\n [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n <!-- Item Templates -->\n <ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <!-- <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title> -->\n <!-- <ax-divider></ax-divider> -->\n } @else if(item.type=='break') {\n <ax-divider></ax-divider>\n } @else {\n <ax-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick(item)\">\n @if(!item.meta?.isRoot) {\n <ax-prefix>\n <ax-icon [class]=\"item.icon\" class=\"fa-fw\"></ax-icon>\n </ax-prefix>\n }\n <ax-text> {{ item.text | translate | async }}</ax-text>\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container\n *ngFor=\"let child of sort(item.children)\"\n [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\"\n >\n </ng-container>\n </ng-container>\n <ax-suffix>\n @if(badgeVisible()) {\n <ax-badge [axp-task-badge]=\"getMenuBadge(item)()\" color=\"secondary\"></ax-badge>\n }\n </ax-suffix>\n </ax-menu-item>\n }\n </ng-template>\n </ax-menu>\n</div>\n<!-- <div class=\"__tab-bar\">\n <div class=\"axp-tabs-item axp-state-active\">\n <span class=\"ax-font-medium\">Account</span>\n <i class=\"fa-light fa-times ax-text-sm\"></i>\n </div>\n <div class=\"axp-tabs-item\">\n <span class=\"ax-font-medium\">Projects</span>\n\n </div>\n</div> -->\n", styles: [".__tab-bar{display:flex;height:3rem;width:100%;align-items:flex-end;gap:.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-darker-surface),var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-darker-surface),var(--tw-text-opacity, 1))}.__tab-bar .axp-tabs-item{display:flex;height:2.5rem;cursor:pointer;align-items:center;justify-content:space-between;gap:.5rem;border-top-left-radius:.5rem;border-top-right-radius:.5rem;padding-left:1rem;padding-right:1rem;font-size:.875rem;line-height:1.25rem;line-height:1}.__tab-bar .axp-tabs-item:hover,.__tab-bar .axp-tabs-item.axp-state-active{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}.__menu-bar{display:flex;width:100%;align-items:flex-end;gap:.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-dark-surface),var(--tw-bg-opacity, 1));padding:.375rem 1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-dark-surface),var(--tw-text-opacity, 1))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$3.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i3$2.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i3$2.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items", "hasArrow"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3$1.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: AXTranslationModule }, { kind: "pipe", type: i4$2.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "directive", type: i6.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "directive", type: AXPTaskBadgeDirective, selector: "[axp-task-badge]", inputs: ["badgeKey", "axp-task-badge"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i5.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
577
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPHorizontalMenuComponent, isStandalone: true, selector: "axp-horizontal-menu", host: { classAttribute: "ax-light" }, ngImport: i0, template: "<div\n class=\"ax-w-full ax-flex ax-items-center ax-justify-between ax-gap-1 ax-bg-primary-surface ax-text-primary-on-surface ax-h-14 ax-px-4\"\n>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-logo\n [source]=\"platformConfig.logo?.full?.dark\"\n [attr.alt]=\"platformConfig.title\"\n class=\"ax-mx-auto ax-text-2xl\"\n ></axp-logo>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>\n\n<div class=\"__menu-bar\">\n <ax-menu [orientation]=\"'horizontal'\" [class.ax-dark]=\"layoutService.isDarkMode()\" [hasArrow]=\"true\">\n <ng-container\n *ngFor=\"let item of sort(menuStore.items())\"\n [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n <!-- Item Templates -->\n <ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <!-- <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title> -->\n <!-- <ax-divider></ax-divider> -->\n } @else if(item.type=='break') {\n <ax-divider></ax-divider>\n } @else {\n <ax-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick(item)\">\n @if(!item.meta?.isRoot) {\n <ax-prefix>\n <ax-icon [class]=\"item.icon\" class=\"fa-fw\"></ax-icon>\n </ax-prefix>\n }\n <ax-text> {{ item.text | translate | async }}</ax-text>\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container\n *ngFor=\"let child of sort(item.children)\"\n [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\"\n >\n </ng-container>\n </ng-container>\n <ax-suffix>\n @if(badgeVisible()) {\n <ax-badge [axp-task-badge]=\"getMenuBadge(item)()\" color=\"secondary\"></ax-badge>\n }\n </ax-suffix>\n </ax-menu-item>\n }\n </ng-template>\n </ax-menu>\n</div>\n<!-- <div class=\"__tab-bar\">\n <div class=\"axp-tabs-item axp-state-active\">\n <span class=\"ax-font-medium\">Account</span>\n <i class=\"fa-light fa-times ax-text-sm\"></i>\n </div>\n <div class=\"axp-tabs-item\">\n <span class=\"ax-font-medium\">Projects</span>\n\n </div>\n</div> -->\n", styles: [".__tab-bar{display:flex;height:3rem;width:100%;align-items:flex-end;gap:.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-darker-surface),var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-darker-surface),var(--tw-text-opacity, 1))}.__tab-bar .axp-tabs-item{display:flex;height:2.5rem;cursor:pointer;align-items:center;justify-content:space-between;gap:.5rem;border-top-left-radius:.5rem;border-top-right-radius:.5rem;padding-left:1rem;padding-right:1rem;font-size:.875rem;line-height:1.25rem;line-height:1}.__tab-bar .axp-tabs-item:hover,.__tab-bar .axp-tabs-item.axp-state-active{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}.__menu-bar{display:flex;width:100%;align-items:flex-end;gap:.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-dark-surface),var(--tw-bg-opacity, 1));padding:.375rem 1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-dark-surface),var(--tw-text-opacity, 1))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$3.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "ngmodule", type: AXMenuModule }, { kind: "component", type: i3$2.AXMenuItemComponent, selector: "ax-menu-item", inputs: ["name", "data", "disabled", "color"], outputs: ["onClick"] }, { kind: "component", type: i3$2.AXMenuComponent, selector: "ax-menu", inputs: ["orientation", "openOn", "closeOn", "items", "hasArrow"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3$1.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: AXTranslationModule }, { kind: "pipe", type: i4$2.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "directive", type: i6.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "directive", type: AXPTaskBadgeDirective, selector: "[axp-task-badge]", inputs: ["badgeKey", "axp-task-badge"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i5.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
578
578
  }
579
579
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPHorizontalMenuComponent, decorators: [{
580
580
  type: Component,
@@ -588,7 +588,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
588
588
  AXPAuthModule,
589
589
  AXPTaskBadgeDirective,
590
590
  AXBadgeModule,
591
- ], template: "<div\n class=\"ax-w-full ax-flex ax-items-center ax-justify-between ax-gap-1 ax-bg-primary-surface ax-text-primary-on-surface ax-h-14 ax-px-4\"\n>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-logo\n [source]=\"platformConfig.logo?.light\"\n [attr.alt]=\"platformConfig.title\"\n class=\"ax-mx-auto ax-text-2xl\"\n ></axp-logo>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>\n\n<div class=\"__menu-bar\">\n <ax-menu [orientation]=\"'horizontal'\" [class.ax-dark]=\"layoutService.isDarkMode()\" [hasArrow]=\"true\">\n <ng-container\n *ngFor=\"let item of sort(menuStore.items())\"\n [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n <!-- Item Templates -->\n <ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <!-- <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title> -->\n <!-- <ax-divider></ax-divider> -->\n } @else if(item.type=='break') {\n <ax-divider></ax-divider>\n } @else {\n <ax-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick(item)\">\n @if(!item.meta?.isRoot) {\n <ax-prefix>\n <ax-icon [class]=\"item.icon\" class=\"fa-fw\"></ax-icon>\n </ax-prefix>\n }\n <ax-text> {{ item.text | translate | async }}</ax-text>\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container\n *ngFor=\"let child of sort(item.children)\"\n [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\"\n >\n </ng-container>\n </ng-container>\n <ax-suffix>\n @if(badgeVisible()) {\n <ax-badge [axp-task-badge]=\"getMenuBadge(item)()\" color=\"secondary\"></ax-badge>\n }\n </ax-suffix>\n </ax-menu-item>\n }\n </ng-template>\n </ax-menu>\n</div>\n<!-- <div class=\"__tab-bar\">\n <div class=\"axp-tabs-item axp-state-active\">\n <span class=\"ax-font-medium\">Account</span>\n <i class=\"fa-light fa-times ax-text-sm\"></i>\n </div>\n <div class=\"axp-tabs-item\">\n <span class=\"ax-font-medium\">Projects</span>\n\n </div>\n</div> -->\n", styles: [".__tab-bar{display:flex;height:3rem;width:100%;align-items:flex-end;gap:.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-darker-surface),var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-darker-surface),var(--tw-text-opacity, 1))}.__tab-bar .axp-tabs-item{display:flex;height:2.5rem;cursor:pointer;align-items:center;justify-content:space-between;gap:.5rem;border-top-left-radius:.5rem;border-top-right-radius:.5rem;padding-left:1rem;padding-right:1rem;font-size:.875rem;line-height:1.25rem;line-height:1}.__tab-bar .axp-tabs-item:hover,.__tab-bar .axp-tabs-item.axp-state-active{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}.__menu-bar{display:flex;width:100%;align-items:flex-end;gap:.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-dark-surface),var(--tw-bg-opacity, 1));padding:.375rem 1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-dark-surface),var(--tw-text-opacity, 1))}\n"] }]
591
+ ], template: "<div\n class=\"ax-w-full ax-flex ax-items-center ax-justify-between ax-gap-1 ax-bg-primary-surface ax-text-primary-on-surface ax-h-14 ax-px-4\"\n>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-logo\n [source]=\"platformConfig.logo?.full?.dark\"\n [attr.alt]=\"platformConfig.title\"\n class=\"ax-mx-auto ax-text-2xl\"\n ></axp-logo>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>\n\n<div class=\"__menu-bar\">\n <ax-menu [orientation]=\"'horizontal'\" [class.ax-dark]=\"layoutService.isDarkMode()\" [hasArrow]=\"true\">\n <ng-container\n *ngFor=\"let item of sort(menuStore.items())\"\n [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n >\n </ng-container>\n <!-- Item Templates -->\n <ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <!-- <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title> -->\n <!-- <ax-divider></ax-divider> -->\n } @else if(item.type=='break') {\n <ax-divider></ax-divider>\n } @else {\n <ax-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick(item)\">\n @if(!item.meta?.isRoot) {\n <ax-prefix>\n <ax-icon [class]=\"item.icon\" class=\"fa-fw\"></ax-icon>\n </ax-prefix>\n }\n <ax-text> {{ item.text | translate | async }}</ax-text>\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container\n *ngFor=\"let child of sort(item.children)\"\n [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\"\n >\n </ng-container>\n </ng-container>\n <ax-suffix>\n @if(badgeVisible()) {\n <ax-badge [axp-task-badge]=\"getMenuBadge(item)()\" color=\"secondary\"></ax-badge>\n }\n </ax-suffix>\n </ax-menu-item>\n }\n </ng-template>\n </ax-menu>\n</div>\n<!-- <div class=\"__tab-bar\">\n <div class=\"axp-tabs-item axp-state-active\">\n <span class=\"ax-font-medium\">Account</span>\n <i class=\"fa-light fa-times ax-text-sm\"></i>\n </div>\n <div class=\"axp-tabs-item\">\n <span class=\"ax-font-medium\">Projects</span>\n\n </div>\n</div> -->\n", styles: [".__tab-bar{display:flex;height:3rem;width:100%;align-items:flex-end;gap:.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-darker-surface),var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-darker-surface),var(--tw-text-opacity, 1))}.__tab-bar .axp-tabs-item{display:flex;height:2.5rem;cursor:pointer;align-items:center;justify-content:space-between;gap:.5rem;border-top-left-radius:.5rem;border-top-right-radius:.5rem;padding-left:1rem;padding-right:1rem;font-size:.875rem;line-height:1.25rem;line-height:1}.__tab-bar .axp-tabs-item:hover,.__tab-bar .axp-tabs-item.axp-state-active{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}.__menu-bar{display:flex;width:100%;align-items:flex-end;gap:.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-dark-surface),var(--tw-bg-opacity, 1));padding:.375rem 1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-dark-surface),var(--tw-text-opacity, 1))}\n"] }]
592
592
  }] });
593
593
 
594
594
  class AXPRootHorizontalLayoutComponent {
@@ -596,11 +596,6 @@ class AXPRootHorizontalLayoutComponent {
596
596
  this.config = inject(AXP_PLATFORM_CONFIG_TOKEN);
597
597
  this.logo = this.config.logo;
598
598
  this.store = inject(AXPLayoutThemeService);
599
- this.eventService = inject(AXPBroadcastEventService);
600
- this.router = inject(Router);
601
- this.eventService.listen(AXPSessionStatus.SignedOut).subscribe(() => {
602
- this.router.navigate(['/auth/login']);
603
- });
604
599
  }
605
600
  handleCollapsedChange(value) {
606
601
  if (value) {
@@ -638,7 +633,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
638
633
  AXPRootLayoutFooterComponent,
639
634
  AXPHorizontalMenuComponent
640
635
  ], template: "<div class=\"axp-root-layout\">\n <ax-drawer-container>\n <ax-content class=\"ax-flex ax-flex-col ax-relative ax-bg-lightest dark:ax-bg-lighter\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-horizontal-menu></axp-horizontal-menu>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\">\n <router-outlet></router-outlet>\n </div>\n </ax-content>\n </ax-drawer-container>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n</div>", styles: [".axp-root-layout{display:flex;height:100%;width:100%;flex-direction:column;justify-content:space-between}.axp-navigating-progress{position:absolute;top:0;height:.25rem;width:100%;overflow:hidden;background-color:rgba(var(--ax-sys-color-primary-200),.4)}.axp-navigating-progress>div{height:100%;width:100%;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));animation:indeterminateAnimation 1.5s infinite cubic-bezier(.65,.815,.735,.395);transform-origin:0% 50%}@keyframes indeterminateAnimation{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(50%) scaleX(.6)}to{transform:translate(100%) scaleX(.4)}}axp-dashboard-admin-header{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-surface),var(--tw-text-opacity, 1))}axp-dashboard-admin-header ax-button{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;--ax-comp-button-normal-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-hover-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-focus-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-pressed-text-color: var(--axp-on-brand-color) !important}.resize-handle{background-color:transparent!important}.resize-handle:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}\n"] }]
641
- }], ctorParameters: () => [], propDecorators: { drawer: [{
636
+ }], propDecorators: { drawer: [{
642
637
  type: ViewChild,
643
638
  args: ['drawer']
644
639
  }] } });
@@ -648,11 +643,7 @@ class AXPRootVerticalLayoutComponent {
648
643
  this.config = inject(AXP_PLATFORM_CONFIG_TOKEN);
649
644
  this.logo = this.config.logo;
650
645
  this.store = inject(AXPLayoutThemeService);
651
- this.eventService = inject(AXPBroadcastEventService);
652
646
  this.router = inject(Router);
653
- this.eventService.listen(AXPSessionStatus.SignedOut).subscribe(() => {
654
- this.router.navigate(['/auth/login']);
655
- });
656
647
  this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {
657
648
  if (this.store.isSideMenuOverlay())
658
649
  this.store.closeSideMenu();
@@ -669,7 +660,7 @@ class AXPRootVerticalLayoutComponent {
669
660
  }
670
661
  }
671
662
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootVerticalLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
672
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRootVerticalLayoutComponent, isStandalone: true, selector: "axp-root-vertical-layout", viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<div class=\"axp-root-layout\">\n <ax-drawer-container>\n <ax-drawer\n [axResizable]=\"store.isLarge()\"\n #drawer\n class=\"ax-w-56 lg:ax-w-72 ax-border-lighter ax-bg-lighter dark:ax-border-darkest dark:ax-bg-darkest\"\n [style.display]=\"store.isSideMenuOpen() ? undefined : 'none'\"\n [width]=\"store.sideMenuWidth()\"\n location=\"start\"\n [collapsed]=\"!store.isSideMenuOpen()\"\n [defaultWidth]=\"288\"\n [mode]=\"store.isSideMenuOverlay() ? 'overlay' : 'push'\"\n [dblClickAction]=\"'fit'\"\n (collapsedChange)=\"handleCollapsedChange($event)\"\n (onResizingEnded)=\"handleResizingEnded($event)\"\n (onResizingDblClick)=\"handleResizingEnded($event)\"\n >\n <ax-header\n class=\"ax-light ax-h-14 ax-flex ax-items-center ax-justify-center ax-bg-primary-500 ax-text-primary-on-surface ax-border-e ax-border-primary-600\"\n >\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </ax-header>\n <ax-content class=\"ax-flex ax-flex-col ax-border-e\">\n <axp-component-slot name=\"side-menu-header\"></axp-component-slot>\n <div class=\"ax-overflow-auto ax-flex-1\">\n <axp-side-menu class=\"ax-p-4 ax-block\"></axp-side-menu>\n </div>\n <axp-component-slot name=\"side-menu-footer\"></axp-component-slot>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative ax-bg-lightest dark:ax-bg-lighter\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header class=\"ax-light\"></axp-dashboard-admin-header>\n\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\">\n <router-outlet></router-outlet>\n </div>\n </ax-content>\n </ax-drawer-container>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n</div>\n", styles: [".axp-root-layout{display:flex;height:100%;width:100%;flex-direction:column;justify-content:space-between}.axp-navigating-progress{position:absolute;top:0;height:.25rem;width:100%;overflow:hidden;background-color:rgba(var(--ax-sys-color-primary-200),.4)}.axp-navigating-progress>div{height:100%;width:100%;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));animation:indeterminateAnimation 1.5s infinite cubic-bezier(.65,.815,.735,.395);transform-origin:0% 50%}@keyframes indeterminateAnimation{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(50%) scaleX(.6)}to{transform:translate(100%) scaleX(.4)}}axp-dashboard-admin-header{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-surface),var(--tw-text-opacity, 1))}axp-dashboard-admin-header ax-button{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;--ax-comp-button-normal-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-hover-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-focus-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-pressed-text-color: var(--axp-on-brand-color) !important}.resize-handle{background-color:transparent!important}.resize-handle:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$4.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.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: AXDropdownModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXSideMenuModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$3.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "minWidth", "maxWidth", "dblClickAction", "width", "defaultWidth"], outputs: ["axResizableChange", "minWidthChange", "maxWidthChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { kind: "component", type: AXPRootLayoutFooterComponent, selector: "axp-dashboard-admin-footer" }, { kind: "component", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header" }, { kind: "component", type: AXPRootLayoutMenuComponent, selector: "axp-side-menu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
663
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRootVerticalLayoutComponent, isStandalone: true, selector: "axp-root-vertical-layout", viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<div class=\"axp-root-layout\">\n <ax-drawer-container>\n <ax-drawer\n [axResizable]=\"store.isLarge()\"\n #drawer\n class=\"ax-w-56 lg:ax-w-72 ax-border-lighter ax-bg-lighter dark:ax-border-darkest dark:ax-bg-darkest\"\n [style.display]=\"store.isSideMenuOpen() ? undefined : 'none'\"\n [width]=\"store.sideMenuWidth()\"\n location=\"start\"\n [collapsed]=\"!store.isSideMenuOpen()\"\n [defaultWidth]=\"288\"\n [mode]=\"store.isSideMenuOverlay() ? 'overlay' : 'push'\"\n [dblClickAction]=\"'fit'\"\n (collapsedChange)=\"handleCollapsedChange($event)\"\n (onResizingEnded)=\"handleResizingEnded($event)\"\n (onResizingDblClick)=\"handleResizingEnded($event)\"\n >\n <ax-header\n class=\"ax-light ax-h-14 ax-flex ax-items-center ax-justify-center ax-bg-primary-500 ax-text-primary-on-surface ax-border-e ax-border-primary-600\"\n >\n <axp-logo [source]=\"logo?.full?.dark\"></axp-logo>\n </ax-header>\n <ax-content class=\"ax-flex ax-flex-col ax-border-e\">\n <axp-component-slot name=\"side-menu-header\"></axp-component-slot>\n <div class=\"ax-overflow-auto ax-flex-1\">\n <axp-side-menu class=\"ax-p-4 ax-block\"></axp-side-menu>\n </div>\n <axp-component-slot name=\"side-menu-footer\"></axp-component-slot>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative ax-bg-lightest dark:ax-bg-lighter\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header class=\"ax-light\"></axp-dashboard-admin-header>\n\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\">\n <router-outlet></router-outlet>\n </div>\n </ax-content>\n </ax-drawer-container>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n</div>\n", styles: [".axp-root-layout{display:flex;height:100%;width:100%;flex-direction:column;justify-content:space-between}.axp-navigating-progress{position:absolute;top:0;height:.25rem;width:100%;overflow:hidden;background-color:rgba(var(--ax-sys-color-primary-200),.4)}.axp-navigating-progress>div{height:100%;width:100%;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));animation:indeterminateAnimation 1.5s infinite cubic-bezier(.65,.815,.735,.395);transform-origin:0% 50%}@keyframes indeterminateAnimation{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(50%) scaleX(.6)}to{transform:translate(100%) scaleX(.4)}}axp-dashboard-admin-header{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-surface),var(--tw-text-opacity, 1))}axp-dashboard-admin-header ax-button{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;--ax-comp-button-normal-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-hover-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-focus-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-pressed-text-color: var(--axp-on-brand-color) !important}.resize-handle{background-color:transparent!important}.resize-handle:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$4.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3$1.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: AXDropdownModule }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXSideMenuModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "ngmodule", type: AXPComponentSlotModule }, { kind: "directive", type: i1$3.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "minWidth", "maxWidth", "dblClickAction", "width", "defaultWidth"], outputs: ["axResizableChange", "minWidthChange", "maxWidthChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { kind: "component", type: AXPRootLayoutFooterComponent, selector: "axp-dashboard-admin-footer" }, { kind: "component", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header" }, { kind: "component", type: AXPRootLayoutMenuComponent, selector: "axp-side-menu" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
673
664
  }
674
665
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootVerticalLayoutComponent, decorators: [{
675
666
  type: Component,
@@ -696,7 +687,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
696
687
  AXPRootLayoutFooterComponent,
697
688
  AXPRootLayoutHeaderComponent,
698
689
  AXPRootLayoutMenuComponent,
699
- ], template: "<div class=\"axp-root-layout\">\n <ax-drawer-container>\n <ax-drawer\n [axResizable]=\"store.isLarge()\"\n #drawer\n class=\"ax-w-56 lg:ax-w-72 ax-border-lighter ax-bg-lighter dark:ax-border-darkest dark:ax-bg-darkest\"\n [style.display]=\"store.isSideMenuOpen() ? undefined : 'none'\"\n [width]=\"store.sideMenuWidth()\"\n location=\"start\"\n [collapsed]=\"!store.isSideMenuOpen()\"\n [defaultWidth]=\"288\"\n [mode]=\"store.isSideMenuOverlay() ? 'overlay' : 'push'\"\n [dblClickAction]=\"'fit'\"\n (collapsedChange)=\"handleCollapsedChange($event)\"\n (onResizingEnded)=\"handleResizingEnded($event)\"\n (onResizingDblClick)=\"handleResizingEnded($event)\"\n >\n <ax-header\n class=\"ax-light ax-h-14 ax-flex ax-items-center ax-justify-center ax-bg-primary-500 ax-text-primary-on-surface ax-border-e ax-border-primary-600\"\n >\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </ax-header>\n <ax-content class=\"ax-flex ax-flex-col ax-border-e\">\n <axp-component-slot name=\"side-menu-header\"></axp-component-slot>\n <div class=\"ax-overflow-auto ax-flex-1\">\n <axp-side-menu class=\"ax-p-4 ax-block\"></axp-side-menu>\n </div>\n <axp-component-slot name=\"side-menu-footer\"></axp-component-slot>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative ax-bg-lightest dark:ax-bg-lighter\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header class=\"ax-light\"></axp-dashboard-admin-header>\n\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\">\n <router-outlet></router-outlet>\n </div>\n </ax-content>\n </ax-drawer-container>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n</div>\n", styles: [".axp-root-layout{display:flex;height:100%;width:100%;flex-direction:column;justify-content:space-between}.axp-navigating-progress{position:absolute;top:0;height:.25rem;width:100%;overflow:hidden;background-color:rgba(var(--ax-sys-color-primary-200),.4)}.axp-navigating-progress>div{height:100%;width:100%;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));animation:indeterminateAnimation 1.5s infinite cubic-bezier(.65,.815,.735,.395);transform-origin:0% 50%}@keyframes indeterminateAnimation{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(50%) scaleX(.6)}to{transform:translate(100%) scaleX(.4)}}axp-dashboard-admin-header{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-surface),var(--tw-text-opacity, 1))}axp-dashboard-admin-header ax-button{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;--ax-comp-button-normal-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-hover-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-focus-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-pressed-text-color: var(--axp-on-brand-color) !important}.resize-handle{background-color:transparent!important}.resize-handle:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}\n"] }]
690
+ ], template: "<div class=\"axp-root-layout\">\n <ax-drawer-container>\n <ax-drawer\n [axResizable]=\"store.isLarge()\"\n #drawer\n class=\"ax-w-56 lg:ax-w-72 ax-border-lighter ax-bg-lighter dark:ax-border-darkest dark:ax-bg-darkest\"\n [style.display]=\"store.isSideMenuOpen() ? undefined : 'none'\"\n [width]=\"store.sideMenuWidth()\"\n location=\"start\"\n [collapsed]=\"!store.isSideMenuOpen()\"\n [defaultWidth]=\"288\"\n [mode]=\"store.isSideMenuOverlay() ? 'overlay' : 'push'\"\n [dblClickAction]=\"'fit'\"\n (collapsedChange)=\"handleCollapsedChange($event)\"\n (onResizingEnded)=\"handleResizingEnded($event)\"\n (onResizingDblClick)=\"handleResizingEnded($event)\"\n >\n <ax-header\n class=\"ax-light ax-h-14 ax-flex ax-items-center ax-justify-center ax-bg-primary-500 ax-text-primary-on-surface ax-border-e ax-border-primary-600\"\n >\n <axp-logo [source]=\"logo?.full?.dark\"></axp-logo>\n </ax-header>\n <ax-content class=\"ax-flex ax-flex-col ax-border-e\">\n <axp-component-slot name=\"side-menu-header\"></axp-component-slot>\n <div class=\"ax-overflow-auto ax-flex-1\">\n <axp-side-menu class=\"ax-p-4 ax-block\"></axp-side-menu>\n </div>\n <axp-component-slot name=\"side-menu-footer\"></axp-component-slot>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative ax-bg-lightest dark:ax-bg-lighter\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header class=\"ax-light\"></axp-dashboard-admin-header>\n\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\">\n <router-outlet></router-outlet>\n </div>\n </ax-content>\n </ax-drawer-container>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n</div>\n", styles: [".axp-root-layout{display:flex;height:100%;width:100%;flex-direction:column;justify-content:space-between}.axp-navigating-progress{position:absolute;top:0;height:.25rem;width:100%;overflow:hidden;background-color:rgba(var(--ax-sys-color-primary-200),.4)}.axp-navigating-progress>div{height:100%;width:100%;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));animation:indeterminateAnimation 1.5s infinite cubic-bezier(.65,.815,.735,.395);transform-origin:0% 50%}@keyframes indeterminateAnimation{0%{transform:translate(-100%) scaleX(.2)}50%{transform:translate(50%) scaleX(.6)}to{transform:translate(100%) scaleX(.4)}}axp-dashboard-admin-header{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-primary-surface),var(--tw-text-opacity, 1))}axp-dashboard-admin-header ax-button{--ax-comp-button-normal-bg-color: 0, 0, 0, 0 !important;--ax-comp-button-border-width: 0 !important;--ax-comp-button-normal-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-hover-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-focus-text-color: var(--axp-on-brand-color) !important;--ax-comp-button-pressed-text-color: var(--axp-on-brand-color) !important}.resize-handle{background-color:transparent!important}.resize-handle:hover{background-color:rgba(var(--ax-sys-color-primary-surface))!important}\n"] }]
700
691
  }], ctorParameters: () => [], propDecorators: { drawer: [{
701
692
  type: ViewChild,
702
693
  args: ['drawer']
@@ -707,9 +698,10 @@ class AXPRootLayoutComponent {
707
698
  this.layout = inject(AXPLayoutThemeService);
708
699
  this.menuStore = inject(AXPMenuService);
709
700
  this.router = inject(Router);
701
+ this.eventService = inject(AXPBroadcastEventService);
710
702
  this.sessionService = inject(AXPSessionService);
711
- this.homePageService = inject(AXPHomePageService);
712
703
  this.unsubscriber = inject(AXUnsubscriber);
704
+ this.homePageService = inject(AXPHomePageService);
713
705
  }
714
706
  ngOnInit() {
715
707
  // Select the menu item based on the current route when the page loads
@@ -718,11 +710,17 @@ class AXPRootLayoutComponent {
718
710
  this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event) => {
719
711
  this.menuStore.selectMenuItemByRoute(event.urlAfterRedirects);
720
712
  });
713
+ this.eventService.listen(AXPSessionStatus.SignedOut).subscribe(() => {
714
+ console.log('signed out in root layout');
715
+ this.router.navigate(['/auth/login']);
716
+ });
721
717
  //
722
- this.sessionService.status$.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async (c) => {
718
+ this.sessionService.status$
719
+ .pipe(this.unsubscriber.takeUntilDestroy)
720
+ .subscribe(async (c) => {
723
721
  const keys = [AXPSessionStatus.SignedOut, AXPSessionStatus.Unauthenticated, AXPSessionStatus.Expired];
724
722
  if (keys.includes(c)) {
725
- this.router.navigate([this.homePageService.getCurrent().path]);
723
+ this.router.navigate(['/auth/login']);
726
724
  }
727
725
  });
728
726
  }
@@ -1018,7 +1016,7 @@ class AXPDefaultThemeModule {
1018
1016
  ///
1019
1017
  modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-DzHZdi2R.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
1020
1018
  //
1021
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs').then((c) => c.AXPEntityMasterListViewComponent),
1019
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs').then((c) => c.AXPEntityMasterListViewComponent),
1022
1020
  },
1023
1021
  },
1024
1022
  };
@@ -1063,7 +1061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1063
1061
  ///
1064
1062
  modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-DzHZdi2R.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
1065
1063
  //
1066
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-CuyWAi6X.mjs').then((c) => c.AXPEntityMasterListViewComponent),
1064
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-Ol8haGqF.mjs').then((c) => c.AXPEntityMasterListViewComponent),
1067
1065
  },
1068
1066
  },
1069
1067
  };