@acorex/platform 19.0.0 → 19.1.0

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 (96) hide show
  1. package/common/lib/app/application.types.d.ts +1 -0
  2. package/common/lib/common.module.d.ts +2 -2
  3. package/common/lib/layout/sticky.directive.d.ts +5 -1
  4. package/common/lib/settings/index.d.ts +1 -0
  5. package/common/lib/settings/setting-definition.provider.d.ts +7 -8
  6. package/common/lib/settings/setting.builder.d.ts +45 -0
  7. package/common/lib/settings/settings.provider.d.ts +3 -2
  8. package/common/lib/settings/settings.service.d.ts +9 -5
  9. package/common/lib/settings/settings.types.d.ts +15 -25
  10. package/common/lib/store/common.effects.d.ts +2 -2
  11. package/fesm2022/acorex-platform-common.mjs +255 -190
  12. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-builder.mjs +82 -25
  14. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-designer.mjs +12 -10
  16. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-entity.mjs +23 -6
  18. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-setting.mjs +134 -118
  20. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layouts.mjs +1 -1
  22. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  23. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Bw-rbKbL.mjs → acorex-platform-themes-default-entity-master-create-view.component-CJ_HVKX-.mjs} +4 -4
  24. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Bw-rbKbL.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-CJ_HVKX-.mjs.map} +1 -1
  25. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CeBk_nxz.mjs +305 -0
  26. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CeBk_nxz.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DoeGBemE.mjs → acorex-platform-themes-default-entity-master-modify-view.component-DveB-N1Z.mjs} +5 -5
  28. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DoeGBemE.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-DveB-N1Z.mjs.map} +1 -1
  29. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-D8UjpvuI.mjs → acorex-platform-themes-default-entity-master-single-view.component-q_DOP0cT.mjs} +12 -12
  30. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-D8UjpvuI.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-q_DOP0cT.mjs.map} +1 -1
  31. package/fesm2022/acorex-platform-themes-default.mjs +233 -193
  32. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  33. package/fesm2022/acorex-platform-themes-shared.mjs +182 -23
  34. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  35. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-RCi5IJOR.mjs → acorex-platform-widgets-checkbox-widget-designer.component-B_Gec5Qf.mjs} +4 -4
  36. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-RCi5IJOR.mjs.map → acorex-platform-widgets-checkbox-widget-designer.component-B_Gec5Qf.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-CWhbgmDV.mjs → acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs} +4 -4
  38. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DGNcuRbs.mjs → acorex-platform-widgets-page-widget-designer.component-CITselce.mjs} +5 -5
  40. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-CITselce.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-widgets.mjs +280 -127
  42. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  43. package/layout/builder/lib/builder/widget-column-renderer.d.ts +5 -1
  44. package/layout/builder/lib/builder/widget-renderer.component.directive.d.ts +6 -1
  45. package/layout/builder/lib/builder/widget.types.d.ts +14 -9
  46. package/layout/designer/lib/preview/preview.component.d.ts +2 -2
  47. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +1 -0
  48. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +1 -0
  49. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +1 -0
  50. package/layout/setting/lib/setting.viewmodel.d.ts +19 -19
  51. package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +1 -0
  52. package/package.json +16 -16
  53. package/themes/default/index.d.ts +2 -1
  54. package/themes/default/lib/layouts/base/index.d.ts +1 -0
  55. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +7 -0
  56. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +1 -0
  57. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +1 -0
  58. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +2 -2
  59. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +1 -0
  60. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +1 -0
  61. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +1 -0
  62. package/themes/default/lib/layouts/setting-layout/setting-menu/setting-menu.component.d.ts +0 -2
  63. package/themes/default/lib/layouts/setting-layout/setting-page/setting-page.component.d.ts +5 -0
  64. package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +3 -1
  65. package/themes/shared/index.d.ts +1 -0
  66. package/themes/shared/lib/components/layout-elements/index.d.ts +2 -0
  67. package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +5 -0
  68. package/themes/shared/lib/components/layout-elements/layout-page-header.component.d.ts +11 -0
  69. package/themes/shared/lib/components/theme-slot.component.d.ts +1 -0
  70. package/themes/shared/lib/services/theme.service.d.ts +1 -0
  71. package/themes/shared/lib/setting.keys.d.ts +4 -0
  72. package/themes/shared/lib/setting.provider.d.ts +4 -0
  73. package/widgets/lib/properties/layout.props.d.ts +1 -0
  74. package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +1 -1
  75. package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +1 -1
  76. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +0 -3
  77. package/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.d.ts +4 -6
  78. package/widgets/lib/widgets/editors/password/password-box-widget-view.component.d.ts +1 -1
  79. package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +4 -0
  80. package/widgets/lib/widgets/index.d.ts +1 -0
  81. package/widgets/lib/widgets/layout/block/block-widget-designer.component.d.ts +2 -2
  82. package/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.d.ts +2 -2
  83. package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +2 -2
  84. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.d.ts +2 -2
  85. package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +2 -2
  86. package/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.d.ts +2 -2
  87. package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +2 -2
  88. package/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.d.ts +2 -2
  89. package/widgets/lib/widgets/property-editors/spacing/index.d.ts +3 -0
  90. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-editor.component.d.ts +13 -0
  91. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-type.d.ts +10 -0
  92. package/widgets/lib/widgets/property-editors/spacing/spacing-widget.config.d.ts +7 -0
  93. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DJYTC375.mjs +0 -305
  94. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DJYTC375.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CWhbgmDV.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DGNcuRbs.mjs.map +0 -1
@@ -1,82 +1,206 @@
1
- import * as i1 from '@acorex/platform/common';
2
- import { AXPMenuService, AXP_PLATFORM_CONFIG_TOKEN, AXPLogoComponent, AXPComponentSlotModule, AXPStickyDirective, AXPCommonModule } from '@acorex/platform/common';
3
- import { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';
4
- import { AXPLayoutThemeService, AXPThemesSharedModule } from '@acorex/platform/themes/shared';
5
- import * as i0 from '@angular/core';
6
- import { Component, ViewEncapsulation, inject, ViewChild, NgModule, viewChild, afterNextRender, ChangeDetectionStrategy, computed, effect, Input } from '@angular/core';
7
- import * as i1$2 from '@angular/router';
8
- import { Router, NavigationEnd, RouterModule, ActivatedRoute, RouterOutlet, RouterLink, RouteReuseStrategy, ROUTES } from '@angular/router';
9
- import * as i1$1 from '@angular/common';
10
- import { CommonModule, AsyncPipe } from '@angular/common';
11
- import { filter, Subject, takeUntil } from 'rxjs';
12
- import { sortBy } from 'lodash-es';
13
- import * as i2 from '@acorex/components/decorators';
1
+ import * as i4 from '@acorex/components/button';
2
+ import { AXButtonModule } from '@acorex/components/button';
3
+ import { AXCommonModule } from '@acorex/components/common';
4
+ import * as i3 from '@acorex/components/decorators';
14
5
  import { AXDecoratorModule } from '@acorex/components/decorators';
15
- import * as i3 from '@acorex/components/side-menu';
16
- import { AXSideMenuModule } from '@acorex/components/side-menu';
17
- import * as i4 from '@acorex/platform/auth';
18
- import { AXPAuthModule } from '@acorex/platform/auth';
19
- import * as i5 from '@acorex/core/translation';
20
- import { AXTranslationModule } from '@acorex/core/translation';
21
- import * as i3$1 from '@acorex/components/drawer';
6
+ import * as i2 from '@acorex/components/drawer';
22
7
  import { AXDrawerModule } from '@acorex/components/drawer';
23
- import * as i5$1 from '@acorex/components/loading';
24
- import { AXLoadingModule } from '@acorex/components/loading';
25
- import { AXAvatarModule } from '@acorex/components/avatar';
26
- import { AXBadgeModule } from '@acorex/components/badge';
27
- import * as i4$1 from '@acorex/components/button';
28
- import { AXButtonModule } from '@acorex/components/button';
29
- import * as i6$1 from '@acorex/components/dropdown';
8
+ import * as i6 from '@acorex/components/dropdown';
30
9
  import { AXDropdownModule } from '@acorex/components/dropdown';
31
- import { AXImageModule } from '@acorex/components/image';
32
- import { AXPopoverModule } from '@acorex/components/popover';
33
- import { AXTabsModule } from '@acorex/components/tabs';
34
- import * as i3$2 from '@acorex/components/tree-view';
35
- import { AXTreeViewModule } from '@acorex/components/tree-view';
36
- import { AXPSettingsViewModel } from '@acorex/platform/layout/setting';
37
- import * as i3$3 from '@acorex/components/breadcrumbs';
38
- import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
39
- import * as i6 from '@acorex/components/search-box';
40
- import { AXSearchBoxModule } from '@acorex/components/search-box';
41
- import * as i9 from '@acorex/platform/layout/builder';
42
- import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
43
- import * as i7 from '@angular/forms';
44
- import { FormsModule } from '@angular/forms';
45
- import * as i1$3 from '@acorex/components/action-sheet';
10
+ import * as i7$1 from '@acorex/components/dropdown-button';
11
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
12
+ import * as i1$2 from '@acorex/platform/common';
13
+ import { AXPStickyDirective, AXPMenuService, AXP_PLATFORM_CONFIG_TOKEN, AXPLogoComponent, AXPComponentSlotModule, AXPCommonModule } from '@acorex/platform/common';
14
+ import { AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutBlockComponent, AXPLayoutThemeService, AXPThemesSharedModule } from '@acorex/platform/themes/shared';
15
+ import * as i1 from '@angular/common';
16
+ import { CommonModule, AsyncPipe } from '@angular/common';
17
+ import * as i0 from '@angular/core';
18
+ import { contentChild, Component, ViewEncapsulation, ChangeDetectionStrategy, inject, computed, effect, Input, ViewChild, NgModule, afterNextRender, Injector } from '@angular/core';
19
+ import * as i1$1 from '@acorex/components/action-sheet';
46
20
  import { AXActionSheetModule } from '@acorex/components/action-sheet';
21
+ import { AXBadgeModule } from '@acorex/components/badge';
22
+ import * as i4$2 from '@acorex/components/breadcrumbs';
23
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
47
24
  import * as i11 from '@acorex/components/data-table';
48
25
  import { AXDataTableModule } from '@acorex/components/data-table';
49
26
  import { AXDialogModule } from '@acorex/components/dialog';
50
27
  import { AXFormModule } from '@acorex/components/form';
28
+ import * as i5 from '@acorex/components/loading';
29
+ import { AXLoadingModule } from '@acorex/components/loading';
30
+ import { AXPopoverModule } from '@acorex/components/popover';
31
+ import * as i7 from '@acorex/components/search-box';
32
+ import { AXSearchBoxModule } from '@acorex/components/search-box';
33
+ import { AXTabsModule } from '@acorex/components/tabs';
51
34
  import { AXTooltipModule } from '@acorex/components/tooltip';
35
+ import * as i10 from '@acorex/core/translation';
36
+ import { AXTranslationModule } from '@acorex/core/translation';
52
37
  import * as i2$1 from '@acorex/core/utils';
53
38
  import { AXUnsubscriber } from '@acorex/core/utils';
39
+ import * as i4$1 from '@acorex/platform/auth';
40
+ import { AXPAuthModule } from '@acorex/platform/auth';
41
+ import * as i9 from '@acorex/platform/layout/builder';
42
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
43
+ import { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';
54
44
  import { AXPEntityDeletedEvent, AXPEntityCreateEvent } from '@acorex/platform/layouts';
55
45
  import { AXPWidgetsModule } from '@acorex/platform/widgets';
56
46
  import { AXPWorkflowService, ofType } from '@acorex/platform/workflow';
47
+ import * as i10$1 from '@angular/forms';
48
+ import { FormsModule } from '@angular/forms';
49
+ import * as i1$3 from '@angular/router';
50
+ import { RouterModule, Router, NavigationEnd, ActivatedRoute, RouterOutlet, RouterLink, RouteReuseStrategy, ROUTES } from '@angular/router';
51
+ import { Subject, takeUntil, filter } from 'rxjs';
52
+ import { sortBy } from 'lodash-es';
53
+ import * as i3$1 from '@acorex/components/side-menu';
54
+ import { AXSideMenuModule } from '@acorex/components/side-menu';
55
+ import { AXAvatarModule } from '@acorex/components/avatar';
56
+ import { AXImageModule } from '@acorex/components/image';
57
+ import * as i3$2 from '@acorex/components/tree-view';
58
+ import { AXTreeViewModule } from '@acorex/components/tree-view';
59
+ import { AXPSettingsViewModel } from '@acorex/platform/layout/setting';
57
60
 
58
- class AXPEntityReuseStrategy {
59
- shouldDetach(route) {
60
- return false;
61
+ class AXPSimplePageLayout {
62
+ constructor() {
63
+ this.headerLayout = contentChild(AXPThemeLayoutPageHeaderComponent);
61
64
  }
62
- store(route, detachedTree) { }
63
- shouldAttach(route) {
64
- return false;
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSimplePageLayout, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPSimplePageLayout, isStandalone: true, selector: "axp-layout-simple-page", queries: [{ propertyName: "headerLayout", first: true, predicate: AXPThemeLayoutPageHeaderComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <ng-content select=\"axp-page-side\"></ng-content>\n </ax-content>\n </ax-drawer>\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <axp-page-body>\n <axp-page-header #sticky=\"axpSticky\" [axpSticky]=\"'axp-is-sticky'\" [stickyOffset]=\"30\"\n [stickyParent]=\"content.getHostElement()\">\n <ng-template>\n <ng-content select=\"axp-page-header\"></ng-content>\n </ng-template>\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.title()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"headerLayout()?.description()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"headerLayout()?.breadcrumbs()!\"></ng-container>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <ng-container *ngTemplateOutlet=\"headerLayout()?.actions()!\"></ng-container>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navbar()!\"></ng-container>\n <!-- Finish Navbar -->\n </axp-page-header>\n <ng-content select=\"axp-page-content\"></ng-content>\n </axp-page-body>\n </ax-content>\n</ax-drawer-container>", styles: ["axp-layout-simple-page axp-page-body{display:flex;min-height:100%;flex-direction:column;gap:1rem;border-bottom-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;padding-bottom:1rem}@media (min-width: 768px){axp-layout-simple-page axp-page-body{border-width:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-background-default),var(--tw-bg-opacity, 1));padding-left:1.5rem;padding-right:1.5rem}}axp-layout-simple-page axp-page-body axp-page-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;padding-top:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}axp-layout-simple-page axp-page-body axp-page-header.axp-is-sticky{margin-left:-1.5rem;margin-right:-1.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));padding:.75rem 1.5rem;--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-layout-simple-page axp-page-body axp-page-header axp-page-title{font-size:1.25rem;line-height:1.75rem;font-weight:700}@media (min-width: 768px){axp-layout-simple-page axp-page-body axp-page-header axp-page-title{font-size:1.5rem;line-height:2rem}}axp-layout-simple-page axp-page-body axp-page-header axp-page-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgba(var(--ax-color-neutral-600),var(--tw-text-opacity, 1))}axp-layout-simple-page axp-page-body axp-page-header axp-page-actions{display:flex;align-items:center;gap:.75rem}axp-layout-simple-page axp-page-body axp-page-content{height:100%;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXCommonModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-body, axp-page-title, axp-page-description, axp-page-actions, axp-page-navbar, axp-page-side, axp-page-breadcrumbs " }, { kind: "component", type: AXPThemeLayoutPageHeaderComponent, selector: "axp-page-header" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSimplePageLayout, decorators: [{
69
+ type: Component,
70
+ args: [{ standalone: true, imports: [
71
+ CommonModule,
72
+ AXCommonModule,
73
+ AXDrawerModule,
74
+ AXDecoratorModule,
75
+ AXPStickyDirective,
76
+ AXDropdownButtonModule,
77
+ AXDropdownModule,
78
+ AXButtonModule,
79
+ AXPThemeLayoutBlockComponent,
80
+ AXPThemeLayoutPageHeaderComponent
81
+ ], selector: 'axp-layout-simple-page', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content class=\"ax-border-e ax-p-6 ax-w-64\">\n <ng-content select=\"axp-page-side\"></ng-content>\n </ax-content>\n </ax-drawer>\n <ax-content #content class=\"ax-overflow-x-hidden\">\n <axp-page-body>\n <axp-page-header #sticky=\"axpSticky\" [axpSticky]=\"'axp-is-sticky'\" [stickyOffset]=\"30\"\n [stickyParent]=\"content.getHostElement()\">\n <ng-template>\n <ng-content select=\"axp-page-header\"></ng-content>\n </ng-template>\n <!-------- Begin Toolbar -------->\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-gap-1 ax-items-center\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <ng-container *ngTemplateOutlet=\"headerLayout()?.title()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"headerLayout()?.description()!\"></ng-container>\n <ng-container *ngTemplateOutlet=\"headerLayout()?.breadcrumbs()!\"></ng-container>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n <ng-container *ngTemplateOutlet=\"headerLayout()?.actions()!\"></ng-container>\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navbar()!\"></ng-container>\n <!-- Finish Navbar -->\n </axp-page-header>\n <ng-content select=\"axp-page-content\"></ng-content>\n </axp-page-body>\n </ax-content>\n</ax-drawer-container>", styles: ["axp-layout-simple-page axp-page-body{display:flex;min-height:100%;flex-direction:column;gap:1rem;border-bottom-width:1px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));padding-left:1rem;padding-right:1rem;padding-bottom:1rem}@media (min-width: 768px){axp-layout-simple-page axp-page-body{border-width:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-background-default),var(--tw-bg-opacity, 1));padding-left:1.5rem;padding-right:1.5rem}}axp-layout-simple-page axp-page-body axp-page-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;padding-top:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}axp-layout-simple-page axp-page-body axp-page-header.axp-is-sticky{margin-left:-1.5rem;margin-right:-1.5rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity, 1));padding:.75rem 1.5rem;--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-layout-simple-page axp-page-body axp-page-header axp-page-title{font-size:1.25rem;line-height:1.75rem;font-weight:700}@media (min-width: 768px){axp-layout-simple-page axp-page-body axp-page-header axp-page-title{font-size:1.5rem;line-height:2rem}}axp-layout-simple-page axp-page-body axp-page-header axp-page-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgba(var(--ax-color-neutral-600),var(--tw-text-opacity, 1))}axp-layout-simple-page axp-page-body axp-page-header axp-page-actions{display:flex;align-items:center;gap:.75rem}axp-layout-simple-page axp-page-body axp-page-content{height:100%;overflow:auto}\n"] }]
82
+ }] });
83
+
84
+ class AXPEntityDetailListViewComponent {
85
+ constructor(actionSheetService, unsubscriber) {
86
+ this.actionSheetService = actionSheetService;
87
+ this.unsubscriber = unsubscriber;
88
+ this.workflow = inject(AXPWorkflowService);
89
+ this.store = inject(AXPLayoutThemeService);
90
+ this.destroyed = new Subject();
91
+ this.dropdownRowItems = computed(() => {
92
+ return this.vm.secondaryRowActions().map((c) => ({
93
+ icon: c.icon,
94
+ name: c.name,
95
+ text: c.title,
96
+ color: c.color,
97
+ }));
98
+ });
99
+ this.commandRowItems = computed(() => {
100
+ return this.vm.primaryRowActions().map((c) => {
101
+ return {
102
+ icon: c.icon,
103
+ name: c.name,
104
+ text: c.title,
105
+ color: c.color,
106
+ };
107
+ });
108
+ });
109
+ this.getCommandRowItems = () => {
110
+ return this.commandRowItems();
111
+ };
112
+ this.getDropdownRowItems = (rowData) => {
113
+ return Promise.resolve(this.dropdownRowItems());
114
+ };
115
+ effect(() => {
116
+ this.grid.selectedRows = this.vm.selectedItems();
117
+ });
118
+ this.subscribeActionEvents();
65
119
  }
66
- retrieve(route) {
67
- return null;
120
+ handleChangeSearchValue(e) {
121
+ if (e.isUserInteraction) {
122
+ this.vm.applyInlineFilter(e.value);
123
+ }
68
124
  }
69
- shouldReuseRoute(future, curr) {
70
- if (future.data && future.data['reuse'] === false) {
71
- return false;
125
+ subscribeActionEvents() {
126
+ this.workflow.events$
127
+ .pipe(ofType(AXPEntityDeletedEvent, AXPEntityCreateEvent))
128
+ .pipe(takeUntil(this.destroyed))
129
+ .subscribe((event) => {
130
+ console.log(event);
131
+ this.grid.refresh();
132
+ });
133
+ }
134
+ ngAfterViewInit() {
135
+ // this.grid.refresh();
136
+ }
137
+ handleRowDbClick(e) {
138
+ const item = this.dropdownRowItems()?.[0];
139
+ if (item) {
140
+ const d = {
141
+ component: e.component,
142
+ name: item.name,
143
+ data: e.data,
144
+ };
145
+ this.handleRowCommandClick(d);
72
146
  }
73
- return future.routeConfig === curr.routeConfig;
74
147
  }
148
+ async handleSelectedRowsChange(rows) {
149
+ this.vm.selectedItems.set(rows);
150
+ }
151
+ async handleRowCommandClick(e) {
152
+ this.vm.executeCommand(e.name, e.data);
153
+ }
154
+ destroy() {
155
+ this.destroyed.next();
156
+ this.destroyed.complete();
157
+ }
158
+ ngOnDestroy() {
159
+ this.destroy();
160
+ }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityDetailListViewComponent, deps: [{ token: i1$1.AXActionSheetService }, { token: i2$1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
162
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPEntityDetailListViewComponent, isStandalone: true, selector: "axp-entity-detail-list-view", inputs: { vm: ["viewModel", "vm"] }, providers: [AXUnsubscriber], viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span\n (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >{{ 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span\n >\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !store.isSmall()) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"(tr.title | translate | async)!\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [caption]=\"col.title | translate | async\"\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\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 } @if(dropdownRowItems().length){\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i11.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "parentField", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged"] }, { kind: "component", type: i11.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i11.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i11.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type:
163
+ //
164
+ AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "expandHandler", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
75
165
  }
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityDetailListViewComponent, decorators: [{
167
+ type: Component,
168
+ args: [{ selector: 'axp-entity-detail-list-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], imports: [
169
+ CommonModule,
170
+ FormsModule,
171
+ RouterModule,
172
+ AXButtonModule,
173
+ AXDecoratorModule,
174
+ AXBadgeModule,
175
+ AXDropdownModule,
176
+ AXPopoverModule,
177
+ AXFormModule,
178
+ AXActionSheetModule,
179
+ AXDrawerModule,
180
+ AXDialogModule,
181
+ AXLoadingModule,
182
+ AXTabsModule,
183
+ AXTooltipModule,
184
+ AXBreadcrumbsModule,
185
+ AXSearchBoxModule,
186
+ AXDataTableModule,
187
+ //
188
+ AXPLayoutBuilderModule,
189
+ AXPWidgetsModule,
190
+ AXPAuthModule,
191
+ AXTranslationModule,
192
+ ], template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span\n (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >{{ 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span\n >\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !store.isSmall()) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"(tr.title | translate | async)!\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [caption]=\"col.title | translate | async\"\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\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 } @if(dropdownRowItems().length){\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>\n" }]
193
+ }], ctorParameters: () => [{ type: i1$1.AXActionSheetService }, { type: i2$1.AXUnsubscriber }], propDecorators: { vm: [{
194
+ type: Input,
195
+ args: ['viewModel']
196
+ }], grid: [{
197
+ type: ViewChild,
198
+ args: ['grid', { static: true }]
199
+ }] } });
76
200
 
77
201
  class AXPRootLayoutFooterComponent {
78
202
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPRootLayoutFooterComponent, isStandalone: false, selector: "axp-dashboard-admin-footer", host: { classAttribute: "ax-h-10 ax-flex ax-item-center ax-justify-between ax-bg-surface ax-px-6 ax-border-t" }, providers: [], ngImport: i0, template: "<div class=\"ax-flex ax-items-center ax-justify-start ax-gap-1\">\n <axp-component-slot name=\"footer-start\"></axp-component-slot>\n</div>\n<div class=\"ax-flex ax-items-center ax-justify-end ax-gap-1\">\n <axp-component-slot name=\"footer-end\"></axp-component-slot>\n</div>", dependencies: [{ kind: "directive", type: i1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None }); }
203
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPRootLayoutFooterComponent, isStandalone: false, selector: "axp-dashboard-admin-footer", host: { classAttribute: "ax-h-10 ax-flex ax-item-center ax-justify-between ax-bg-surface ax-px-6 ax-border-t" }, providers: [], ngImport: i0, template: "<div class=\"ax-flex ax-items-center ax-justify-start ax-gap-1\">\n <axp-component-slot name=\"footer-start\"></axp-component-slot>\n</div>\n<div class=\"ax-flex ax-items-center ax-justify-end ax-gap-1\">\n <axp-component-slot name=\"footer-end\"></axp-component-slot>\n</div>", dependencies: [{ kind: "directive", type: i1$2.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None }); }
80
204
  }
81
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutFooterComponent, decorators: [{
82
206
  type: Component,
@@ -97,7 +221,7 @@ class AXPRootLayoutHeaderComponent {
97
221
  this.router.navigate(['/']);
98
222
  }
99
223
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPRootLayoutHeaderComponent, isStandalone: false, selector: "axp-dashboard-admin-header", host: { classAttribute: "ax-h-16 ax-flex ax-justify-between ax-px-4 md:ax-px-0 md:ax-pe-6 ax-py-4 ax-bg-surface ax-border-b" }, ngImport: i0, template: "<div class=\"ax-w-full ax-flex ax-justify-between\">\n <div class=\"ax-flex ax-items-center md:ax-hidden\">\n <i class=\"fa-solid fa-bars ax-text-lg ax-me-3\" (click)=\"menuClick()\"></i>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <div\n class=\"ax-hidden md:ax-flex ax-items-center ax-justify-center ax-w-8 ax-h-8 ax-bg-on-surface ax-rounded ax-rounded-s-none ax-me-8 ax-cursor-pointer\"\n (click)=\"menuClick()\">\n <i class=\"fa-solid fa-chevrons-left ax-text-sm\" [ngClass]=\"{ 'ax-rotate-180': !store.isSideMenuOpen() }\"> </i>\n </div>\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>", styles: [".profile-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.profile-menus ul:last-child{border-width:0px}.profile-menus ul li{display:flex;cursor:pointer;border-radius:.375rem;padding:.5rem}.profile-menus ul li:last-child{margin-bottom:.5rem}.profile-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.profile-menus ul li:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.profile-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None }); }
224
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPRootLayoutHeaderComponent, isStandalone: false, selector: "axp-dashboard-admin-header", host: { classAttribute: "ax-h-16 ax-flex ax-justify-between ax-px-4 md:ax-px-0 md:ax-pe-6 ax-py-4 ax-bg-surface ax-border-b" }, ngImport: i0, template: "<div class=\"ax-w-full ax-flex ax-justify-between\">\n <div class=\"ax-flex ax-items-center md:ax-hidden\">\n <i class=\"fa-solid fa-bars ax-text-lg ax-me-3\" (click)=\"menuClick()\"></i>\n </div>\n <div class=\"ax-flex ax-items-center\">\n <div\n class=\"ax-hidden md:ax-flex ax-items-center ax-justify-center ax-w-8 ax-h-8 ax-bg-on-surface ax-rounded ax-rounded-s-none ax-me-8 ax-cursor-pointer\"\n (click)=\"menuClick()\">\n <i class=\"fa-solid fa-chevrons-left ax-text-sm\" [ngClass]=\"{ 'ax-rotate-180': !store.isSideMenuOpen() }\"> </i>\n </div>\n <axp-component-slot name=\"header-start\"></axp-component-slot>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-1\">\n <axp-component-slot name=\"header-end\"></axp-component-slot>\n </div>\n</div>", styles: [".profile-menus ul{margin-top:.5rem;border-bottom-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-color-border-default),var(--tw-border-opacity, 1));padding-left:.5rem;padding-right:.5rem}.profile-menus ul:last-child{border-width:0px}.profile-menus ul li{display:flex;cursor:pointer;border-radius:.375rem;padding:.5rem}.profile-menus ul li:last-child{margin-bottom:.5rem}.profile-menus ul li:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.profile-menus ul li:hover:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.profile-menus ul li i{margin-inline-end:.75rem;display:grid;height:1.5rem;width:1.5rem;place-items:center;font-size:1.25rem;line-height:1.75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name"] }], encapsulation: i0.ViewEncapsulation.None }); }
101
225
  }
102
226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutHeaderComponent, decorators: [{
103
227
  type: Component,
@@ -128,7 +252,7 @@ class AXPRootLayoutMenuComponent {
128
252
  return sortBy(items, [c => c.priority ?? 0, c => c.text]);
129
253
  }
130
254
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRootLayoutMenuComponent, isStandalone: false, selector: "axp-root-menu", ngImport: i0, template: "<ax-side-menu>\n <ng-container *ngFor=\"let item of sort(menuStore.items())\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-container>\n</ax-side-menu>\n\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 } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick( item)\"\n [active]=\"item ===menuStore.selectedMenuItem().item\" [isCollapsed]=\"!menuStore.isItemOpen(item)\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text | translate | async }}\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container *ngFor=\"let child of sort(item.children)\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXSideMenuComponent, selector: "ax-side-menu" }, { kind: "component", type: i3.AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "color", "isLoading", "text", "isCollapsed", "active", "href", "routerLink", "routerLinkActive", "routerLinkActiveOptions", "target"], outputs: ["isLoadingChange", "textChange", "isCollapsedChange", "activeChange", "onClick"] }, { kind: "directive", type: i4.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }] }); }
255
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRootLayoutMenuComponent, isStandalone: false, selector: "axp-root-menu", ngImport: i0, template: "<ax-side-menu>\n <ng-container *ngFor=\"let item of sort(menuStore.items())\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-container>\n</ax-side-menu>\n\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 } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick( item)\"\n [active]=\"item ===menuStore.selectedMenuItem().item\" [isCollapsed]=\"!menuStore.isItemOpen(item)\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text | translate | async }}\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container *ngFor=\"let child of sort(item.children)\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n</ng-template>", styles: [""], dependencies: [{ 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: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3$1.AXSideMenuComponent, selector: "ax-side-menu" }, { kind: "component", type: i3$1.AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "color", "isLoading", "text", "isCollapsed", "active", "href", "routerLink", "routerLinkActive", "routerLinkActiveOptions", "target"], outputs: ["isLoadingChange", "textChange", "isCollapsedChange", "activeChange", "onClick"] }, { kind: "directive", type: i4$1.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }] }); }
132
256
  }
133
257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutMenuComponent, decorators: [{
134
258
  type: Component,
@@ -148,7 +272,7 @@ class AXPRootLayoutComponent {
148
272
  ;
149
273
  }
150
274
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRootLayoutComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!store.isSideMenuOpen()\"\n [mode]=\"store.isSmall() ? 'overlay' : 'push'\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-72 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <nav class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <axp-root-menu></axp-root-menu>\n </nav>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"store.isOverlayLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "directive", type: i5$1.AXLoadingDirective, selector: "[axIsLoading]", inputs: ["axIsLoading"] }, { kind: "component", type: i1.AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "component", type: AXPRootLayoutFooterComponent, selector: "axp-dashboard-admin-footer" }, { kind: "component", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header" }, { kind: "component", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu" }], encapsulation: i0.ViewEncapsulation.None }); }
275
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPRootLayoutComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!store.isSideMenuOpen()\"\n [mode]=\"store.isSmall() ? 'overlay' : 'push'\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-72 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <nav class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <axp-root-menu></axp-root-menu>\n </nav>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"store.isOverlayLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "directive", type: i1$3.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "directive", type: i5.AXLoadingDirective, selector: "[axIsLoading]", inputs: ["axIsLoading"] }, { kind: "component", type: i1$2.AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "component", type: AXPRootLayoutFooterComponent, selector: "axp-dashboard-admin-footer" }, { kind: "component", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header" }, { kind: "component", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu" }], encapsulation: i0.ViewEncapsulation.None }); }
152
276
  }
153
277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutComponent, decorators: [{
154
278
  type: Component,
@@ -239,29 +363,30 @@ class AXPSettingsMenuComponent {
239
363
  constructor() {
240
364
  this.settings = inject(AXPSettingsViewModel);
241
365
  this.activatedRoute = inject(ActivatedRoute);
242
- this.tree = viewChild('tree');
243
- afterNextRender(() => {
244
- this.settings.initializeService(this.activatedRoute);
366
+ afterNextRender(async () => {
367
+ await this.settings.initializeService(this.activatedRoute);
245
368
  });
246
369
  }
247
370
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
248
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSettingsMenuComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container id=\"ax-settings\" class=\"ax-w-full md:ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer\n #drawer\n location=\"start\"\n mode=\"push\"\n class=\"ax-w-full ax-max-w-full md:ax-w-auto\"\n [collapsed]=\"settings.isMobile() && !!settings.activatedGroup()\"\n >\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Settings</p>\n <div class=\"ax-settings-menu\">\n <ax-tree-view\n #tree\n (onNodeClick)=\"settings.onChooseGroup($event)\"\n [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\"\n [items]=\"settings.formattedData()\"\n ></ax-tree-view>\n </div>\n </ax-content>\n </ax-drawer>\n\n <ax-content [class.ax-hidden]=\"settings.isMobile() && !settings.activatedGroup()\">\n @if(!settings.activatedGroup()){\n <div\n class=\"ax-bg-surface ax-flex ax-flex-col ax-justify-center ax-h-[calc(100vh-104px)] ax-items-center ax-p-10 ax-gap-10\"\n >\n <div class=\"ax-relative ax-w-32 ax-h-32 ax-animate-rotateIn\">\n <div class=\"ax-absolute ax-inset-0 ax-bg-blue-50 ax-rounded-full\"></div>\n <svg\n class=\"ax-absolute ax-inset-0 ax-w-full ax-h-full ax-text-blue-500 ax-transform ax-transition-transform ax-hover:rotate-180 ax-duration-700\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z\"\n ></path>\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"\n ></path>\n </svg>\n </div>\n\n <div class=\"ax-space-y-3 ax-text-center\">\n <h2 class=\"ax-text-2xl ax-font-bold\">No Settings Choose</h2>\n <p>Start customizing your settings by choosing one</p>\n </div>\n </div>\n }\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n", dependencies: [{ kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "component", type: i3$2.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "selectable", "selectionMode", "selectionBehavior", "showActiveNode", "valueField", "textField", "visibleField", "disableField", "hasChildField", "iconField"], outputs: ["onSelectionChange", "onItemClick", "onNodeClick", "onNodeExpandClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
371
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSettingsMenuComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<ax-drawer-container id=\"ax-settings\" class=\"ax-w-full md:ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer #drawer location=\"start\" mode=\"push\" class=\"ax-w-full ax-max-w-full md:ax-w-auto\"\n [collapsed]=\"settings.isMobile() && !!settings.activatedGroup()\">\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Workspace Settings</p>\n <div class=\"ax-settings-menu\">\n <ax-tree-view #tree (onNodeClick)=\"settings.onChooseGroup($event)\" [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\" [items]=\"settings.formattedData()\"></ax-tree-view>\n </div>\n </ax-content>\n </ax-drawer>\n\n <ax-content [class.ax-hidden]=\"settings.isMobile() && !settings.activatedGroup()\">\n @if(!settings.activatedGroup()){\n <div\n class=\"ax-bg-surface ax-flex ax-flex-col ax-justify-center ax-h-[calc(100vh-104px)] ax-items-center ax-p-10 ax-gap-10\">\n <div class=\"ax-relative ax-w-32 ax-h-32 ax-animate-rotateIn\">\n <div class=\"ax-absolute ax-inset-0 ax-bg-blue-50 ax-rounded-full\"></div>\n <svg\n class=\"ax-absolute ax-inset-0 ax-w-full ax-h-full ax-text-blue-500 ax-transform ax-transition-transform ax-hover:rotate-180 ax-duration-700\"\n fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z\">\n </path>\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\">\n </path>\n </svg>\n </div>\n\n <div class=\"ax-space-y-3 ax-text-center\">\n <h2 class=\"ax-text-2xl ax-font-bold\">No Settings Choose</h2>\n <p>Start customizing your settings by choosing one</p>\n </div>\n </div>\n }\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i2.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i2.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "component", type: i3$2.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "selectable", "selectionMode", "selectionBehavior", "showActiveNode", "valueField", "textField", "visibleField", "disableField", "hasChildField", "iconField"], outputs: ["onSelectionChange", "onItemClick", "onNodeClick", "onNodeExpandClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
249
372
  }
250
373
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsMenuComponent, decorators: [{
251
374
  type: Component,
252
- args: [{ imports: [AXDrawerModule, CommonModule, RouterOutlet, AXDecoratorModule, AXTreeViewModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container id=\"ax-settings\" class=\"ax-w-full md:ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer\n #drawer\n location=\"start\"\n mode=\"push\"\n class=\"ax-w-full ax-max-w-full md:ax-w-auto\"\n [collapsed]=\"settings.isMobile() && !!settings.activatedGroup()\"\n >\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Settings</p>\n <div class=\"ax-settings-menu\">\n <ax-tree-view\n #tree\n (onNodeClick)=\"settings.onChooseGroup($event)\"\n [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\"\n [items]=\"settings.formattedData()\"\n ></ax-tree-view>\n </div>\n </ax-content>\n </ax-drawer>\n\n <ax-content [class.ax-hidden]=\"settings.isMobile() && !settings.activatedGroup()\">\n @if(!settings.activatedGroup()){\n <div\n class=\"ax-bg-surface ax-flex ax-flex-col ax-justify-center ax-h-[calc(100vh-104px)] ax-items-center ax-p-10 ax-gap-10\"\n >\n <div class=\"ax-relative ax-w-32 ax-h-32 ax-animate-rotateIn\">\n <div class=\"ax-absolute ax-inset-0 ax-bg-blue-50 ax-rounded-full\"></div>\n <svg\n class=\"ax-absolute ax-inset-0 ax-w-full ax-h-full ax-text-blue-500 ax-transform ax-transition-transform ax-hover:rotate-180 ax-duration-700\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z\"\n ></path>\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\"\n ></path>\n </svg>\n </div>\n\n <div class=\"ax-space-y-3 ax-text-center\">\n <h2 class=\"ax-text-2xl ax-font-bold\">No Settings Choose</h2>\n <p>Start customizing your settings by choosing one</p>\n </div>\n </div>\n }\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n" }]
375
+ args: [{ imports: [AXDrawerModule, CommonModule, RouterOutlet, AXDecoratorModule, AXTreeViewModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container id=\"ax-settings\" class=\"ax-w-full md:ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer #drawer location=\"start\" mode=\"push\" class=\"ax-w-full ax-max-w-full md:ax-w-auto\"\n [collapsed]=\"settings.isMobile() && !!settings.activatedGroup()\">\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Workspace Settings</p>\n <div class=\"ax-settings-menu\">\n <ax-tree-view #tree (onNodeClick)=\"settings.onChooseGroup($event)\" [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\" [items]=\"settings.formattedData()\"></ax-tree-view>\n </div>\n </ax-content>\n </ax-drawer>\n\n <ax-content [class.ax-hidden]=\"settings.isMobile() && !settings.activatedGroup()\">\n @if(!settings.activatedGroup()){\n <div\n class=\"ax-bg-surface ax-flex ax-flex-col ax-justify-center ax-h-[calc(100vh-104px)] ax-items-center ax-p-10 ax-gap-10\">\n <div class=\"ax-relative ax-w-32 ax-h-32 ax-animate-rotateIn\">\n <div class=\"ax-absolute ax-inset-0 ax-bg-blue-50 ax-rounded-full\"></div>\n <svg\n class=\"ax-absolute ax-inset-0 ax-w-full ax-h-full ax-text-blue-500 ax-transform ax-transition-transform ax-hover:rotate-180 ax-duration-700\"\n fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z\">\n </path>\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 12a3 3 0 11-6 0 3 3 0 016 0z\">\n </path>\n </svg>\n </div>\n\n <div class=\"ax-space-y-3 ax-text-center\">\n <h2 class=\"ax-text-2xl ax-font-bold\">No Settings Choose</h2>\n <p>Start customizing your settings by choosing one</p>\n </div>\n </div>\n }\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>" }]
253
376
  }], ctorParameters: () => [] });
254
377
 
255
378
  class AXPSettingsViewComponent {
256
379
  constructor() {
257
- this.settings = inject(AXPSettingsViewModel);
380
+ this.vm = inject(AXPSettingsViewModel);
381
+ this.injector = inject(Injector);
258
382
  }
259
383
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
260
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSettingsViewComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "ax-w-full" }, ngImport: i0, template: "<div #content class=\"ax-overflow-auto ax-h-full\">\n <div\n class=\"ax-flex ax-flex-col ax-px-6 ax-pt-0 md:ax-pt-6 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-py-3 ax-shadow-xl'\"\n [stickyOffset]=\"12\"\n [stickyParent]=\"content\"\n >\n <div\n class=\"ax-flex ax-justify-between ax-items-center ax-flex-wrap md:ax-flex-nowrap ax-gap-4 ax-pt-4 ax-overflow-x-auto\"\n >\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"md:ax-block ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <ax-button class=\"ax-block md:ax-hidden\" color=\"ghost\" [routerLink]=\"settings.fullRoute\">\n <ax-icon> <i class=\"fa-solid fa-chevron-left\"></i></ax-icon\n ></ax-button>\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">\n {{ settings.dataDetails()?.breadcrumb?.[(settings.dataDetails()?.breadcrumb?.length??1)- 1]?.title }}\n </div>\n </div>\n @if(false) {\n <div class=\"ax-text-sm ax-text-neutral-600\">description</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400 ax-flex-wrap ax-hidden md:ax-block\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item [active]=\"false\" [routerLink]=\"settings.fullRoute\">\n <i class=\"ax-me-2 ax-text-xs fa-home fa-solid\"></i>Home</ax-breadcrumbs-item\n >\n @for(b of settings.dataDetails()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"settings.fullRoute + b.name\"\n >\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n <div class=\"ax-p-1 ax-w-full md:ax-w-auto md:ax-shrink\">\n <ax-search-box [delayTime]=\"250\" [(ngModel)]=\"settings.search\"> </ax-search-box>\n </div>\n </div>\n </div>\n\n <axp-widgets-container [context]=\"settings.context()\" (contextChange)=\"settings.setContext($event)\">\n @if(settings.search() && settings.searchedSettings()){\n <div class=\"ax-settings-items\">\n @for(group of settings.searchedSettings(); track group.name){\n <p class=\"ax-text-lg md:ax-text-xl ax-font-bold ax-p-6 ax-pb-3 ax-text-neutral-400\">\n {{ group.title }}\n </p>\n @for (section of group.sections; track section.name) {\n <div class=\"ax-bg-surface ax-m-6 ax-mt-3 ax-px-4 ax-border ax-rounded-md\">\n <p class=\"ax-font-bold ax-text-xl ax-py-4\">{{ section.title }}</p>\n <div>\n @for(setting of section.settings; track setting.name){\n <div class=\"ax-py-3 ax-w-full md:ax-min-w-fit md:ax-max-w-[50%] last:ax-pb-5\">\n <p class=\"ax-font-medium ax-pb-1\">{{ setting.title }}</p>\n <p class=\"ax-text-neutral-400\">{{ setting.description }}</p>\n <ng-container axp-widget-renderer [node]=\"setting.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n }\n </div>\n </div>\n } } @if(settings.searchedSettings() && settings.searchedSettings()!.length>0){\n <div class=\"ax-w-full ax-gap-3 ax-p-6 ax-pt-0 ax-flex ax-justify-end ax-items-center ax-flex-wrap\">\n <ax-button\n [disabled]=\"settings.canCancel()\"\n (onClick)=\"settings.onCancelSettings()\"\n [text]=\"'cancel' | translate | async\"\n ></ax-button>\n <ax-button\n [disabled]=\"!settings.canSave()\"\n (onClick)=\"settings.onSaveSettings()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n }\n </div>\n } @else if(settings.dataDetails()?.sections){\n <div class=\"ax-settings-items\">\n @for(i of settings.dataDetails()?.sections; track i.name){\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md\">\n <p class=\"ax-font-bold ax-text-xl ax-py-4\">{{ i.title }}</p>\n <div>\n @for(j of i.settings; track j.name){\n <div class=\"ax-py-3 ax-w-full md:ax-min-w-fit md:ax-max-w-[50%] last:ax-pb-5\">\n <p class=\"ax-font-medium ax-pb-1\">{{ j.title }}</p>\n <p class=\"ax-text-neutral-400\">{{ j.description }}</p>\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n }\n </div>\n </div>\n\n }\n <div class=\"ax-w-full ax-gap-3 ax-p-6 ax-pt-0 ax-flex ax-justify-end ax-items-center ax-flex-wrap\">\n <ax-button\n [disabled]=\"settings.canCancel()\"\n (onClick)=\"settings.onCancelSettings()\"\n [text]=\"'cancel' | translate | async\"\n ></ax-button>\n <ax-button\n [disabled]=\"!settings.canSave()\"\n (onClick)=\"settings.onSaveSettings()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n </div>\n } @else {\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md\">\n @for(group of settings.dataDetails()?.childGroups; track $index){\n <div class=\"ax-p-4\">\n <a\n [routerLink]=\"settings.fullRoute + group.name\"\n class=\"ax-text-primary-500 dark:ax-text-primary-200 ax-underline ax-font-bold ax-text-xl\"\n >{{ group.title }}</a\n >\n </div>\n }\n </div>\n }\n </axp-widgets-container>\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "directive", type: i9.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i3$3.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i3$3.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
384
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSettingsViewComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "ax-w-full" }, ngImport: i0, template: "<div #content class=\"ax-overflow-auto ax-h-full\">\n <div class=\"ax-flex ax-flex-col ax-px-6 ax-pt-0 md:ax-pt-6 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\" [axpSticky]=\"'ax-bg-surface ax-py-3 ax-shadow-xl'\" [stickyOffset]=\"0\" [stickyParent]=\"content\">\n <div\n class=\"ax-flex ax-justify-between ax-items-center ax-flex-wrap md:ax-flex-nowrap ax-gap-4 ax-pt-4 ax-overflow-x-auto\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"md:ax-block ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <ax-button class=\"ax-block md:ax-hidden\" color=\"ghost\" [routerLink]=\"vm.fullRoute\">\n <ax-icon> <i class=\"fa-solid fa-chevron-left\"></i></ax-icon></ax-button>\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">\n {{ vm.groups()?.breadcrumb?.[(vm.groups()?.breadcrumb?.length??1)- 1]?.title }}\n </div>\n </div>\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400 ax-flex-wrap ax-hidden md:ax-block\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item [active]=\"false\" [routerLink]=\"vm.fullRoute\">\n <i class=\"ax-me-2 ax-text-xs fa-home fa-solid\"></i>{{ 'home' | translate | async }}</ax-breadcrumbs-item>\n @for(b of vm.groups()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\" [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"vm.fullRoute + b.name\">\n {{ b.title | translate | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n <div class=\"ax-w-64\">\n <ax-search-box [delayTime]=\"300\" [(ngModel)]=\"vm.search\"> </ax-search-box>\n </div>\n </div>\n </div>\n\n <axp-widgets-container [context]=\"vm.context()\" (onChanged)=\"vm.handleContextChanged($event)\">\n @if(vm.search() && vm.searchResult()!.length>0){\n <div class=\"ax-settings-items\">\n @for(group of vm.searchResult(); track group.name)\n {\n <p class=\"ax-text-lg md:ax-text-xl ax-font-semibold ax-p-6 ax-pb-3 ax-text-neutral-400\">\n {{ group.title }}\n </p>\n @for (section of group.sections; track section.name)\n {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n }\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\n </div>\n }\n @else if(vm.search() && vm.searchResult()!.length===0) {\n <div class=\"ax-p-2\">\n <div\n class=\"ax-mt-3 ax-flex ax-flex-col ax-justify-center ax-h-[calc(100vh-236px)] ax-items-center ax-p-10 ax-gap-10\">\n <p class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">No Setting Found!</p>\n </div>\n </div>\n }\n @else if(vm.groups()?.sections)\n {\n <div class=\"ax-settings-items \">\n @for(section of vm.groups()?.sections; track section.name)\n {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\n </div>\n }\n @else\n {\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md\">\n @for(group of vm.groups()?.groups; track $index)\n {\n <div class=\"ax-p-4\">\n <a [routerLink]=\"vm.fullRoute + group.name\"\n class=\"ax-text-primary-500 dark:ax-text-primary-200 ax-underline ax-font-bold ax-text-xl\">{{ group.title\n }}</a>\n </div>\n }\n </div>\n }\n <ng-template #sectionTpl let-section=\"section\">\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md ax-shadow-sm\">\n <div class=\"ax-py-4\">\n <p class=\"ax-font-semibold ax-text-xl\">{{ section.title }}</p>\n @if(section.description)\n {\n <p class=\"ax-text-sm ax-text-neutral-400\">{{ section.description }}</p>\n }\n </div>\n <div class=\"ax-divide-y ax-w-full \">\n @for(j of section.settings; track j.name){\n <div class=\"ax-py-4\">\n @if(widget.options().needLabel!=false || j.description)\n {\n <p class=\"ax-font-semibold\">{{ j.title }}</p>\n }\n @if(j.description)\n {\n <p class=\"ax-text-sm ax-text-neutral-400\">{{ j.description }}</p>\n }\n <div class=\"ax-w-full md:ax-min-w-fit md:ax-max-w-[50%] lg:ax-max-w-[30%] ax-mt-4\">\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\" #widget=\"widgetRenderer\">\n </ng-container>\n </div>\n </div>\n }\n </div>\n </div>\n </ng-template>\n\n <ng-template #actions>\n <div class=\"ax-w-full ax-gap-3 ax-p-6 ax-pt-0 ax-flex ax-justify-end ax-items-center ax-flex-wrap\">\n <ax-dropdown-button [text]=\"('reset' | translate | async)!\" (onClick)=\"vm.reset()\">\n <ax-button-item-list>\n <ax-button-item [text]=\"('restore-defaults' | translate | async)!\" (onClick)=\"vm.resetToDefault()\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n <ax-button [disabled]=\"!vm.canSave()\" (onClick)=\"vm.apply()\" color=\"primary\"\n [text]=\"'apply' | translate | async\">\n @if(vm.isSaving())\n {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </div>\n </ng-template>\n\n </axp-widgets-container>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "directive", type: i9.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i4$2.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i4$2.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i7.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i7$1.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
261
385
  }
262
386
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsViewComponent, decorators: [{
263
387
  type: Component,
264
388
  args: [{ imports: [
389
+ CommonModule,
265
390
  AXPLayoutBuilderModule,
266
391
  AXDecoratorModule,
267
392
  AXBreadcrumbsModule,
@@ -271,17 +396,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
271
396
  AsyncPipe,
272
397
  AXPStickyDirective,
273
398
  AXSearchBoxModule,
399
+ AXDropdownButtonModule,
400
+ AXLoadingModule,
274
401
  FormsModule
275
402
  ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
276
403
  class: 'ax-w-full',
277
- }, template: "<div #content class=\"ax-overflow-auto ax-h-full\">\n <div\n class=\"ax-flex ax-flex-col ax-px-6 ax-pt-0 md:ax-pt-6 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-py-3 ax-shadow-xl'\"\n [stickyOffset]=\"12\"\n [stickyParent]=\"content\"\n >\n <div\n class=\"ax-flex ax-justify-between ax-items-center ax-flex-wrap md:ax-flex-nowrap ax-gap-4 ax-pt-4 ax-overflow-x-auto\"\n >\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"md:ax-block ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <ax-button class=\"ax-block md:ax-hidden\" color=\"ghost\" [routerLink]=\"settings.fullRoute\">\n <ax-icon> <i class=\"fa-solid fa-chevron-left\"></i></ax-icon\n ></ax-button>\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">\n {{ settings.dataDetails()?.breadcrumb?.[(settings.dataDetails()?.breadcrumb?.length??1)- 1]?.title }}\n </div>\n </div>\n @if(false) {\n <div class=\"ax-text-sm ax-text-neutral-600\">description</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400 ax-flex-wrap ax-hidden md:ax-block\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item [active]=\"false\" [routerLink]=\"settings.fullRoute\">\n <i class=\"ax-me-2 ax-text-xs fa-home fa-solid\"></i>Home</ax-breadcrumbs-item\n >\n @for(b of settings.dataDetails()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"settings.fullRoute + b.name\"\n >\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n <div class=\"ax-p-1 ax-w-full md:ax-w-auto md:ax-shrink\">\n <ax-search-box [delayTime]=\"250\" [(ngModel)]=\"settings.search\"> </ax-search-box>\n </div>\n </div>\n </div>\n\n <axp-widgets-container [context]=\"settings.context()\" (contextChange)=\"settings.setContext($event)\">\n @if(settings.search() && settings.searchedSettings()){\n <div class=\"ax-settings-items\">\n @for(group of settings.searchedSettings(); track group.name){\n <p class=\"ax-text-lg md:ax-text-xl ax-font-bold ax-p-6 ax-pb-3 ax-text-neutral-400\">\n {{ group.title }}\n </p>\n @for (section of group.sections; track section.name) {\n <div class=\"ax-bg-surface ax-m-6 ax-mt-3 ax-px-4 ax-border ax-rounded-md\">\n <p class=\"ax-font-bold ax-text-xl ax-py-4\">{{ section.title }}</p>\n <div>\n @for(setting of section.settings; track setting.name){\n <div class=\"ax-py-3 ax-w-full md:ax-min-w-fit md:ax-max-w-[50%] last:ax-pb-5\">\n <p class=\"ax-font-medium ax-pb-1\">{{ setting.title }}</p>\n <p class=\"ax-text-neutral-400\">{{ setting.description }}</p>\n <ng-container axp-widget-renderer [node]=\"setting.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n }\n </div>\n </div>\n } } @if(settings.searchedSettings() && settings.searchedSettings()!.length>0){\n <div class=\"ax-w-full ax-gap-3 ax-p-6 ax-pt-0 ax-flex ax-justify-end ax-items-center ax-flex-wrap\">\n <ax-button\n [disabled]=\"settings.canCancel()\"\n (onClick)=\"settings.onCancelSettings()\"\n [text]=\"'cancel' | translate | async\"\n ></ax-button>\n <ax-button\n [disabled]=\"!settings.canSave()\"\n (onClick)=\"settings.onSaveSettings()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n }\n </div>\n } @else if(settings.dataDetails()?.sections){\n <div class=\"ax-settings-items\">\n @for(i of settings.dataDetails()?.sections; track i.name){\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md\">\n <p class=\"ax-font-bold ax-text-xl ax-py-4\">{{ i.title }}</p>\n <div>\n @for(j of i.settings; track j.name){\n <div class=\"ax-py-3 ax-w-full md:ax-min-w-fit md:ax-max-w-[50%] last:ax-pb-5\">\n <p class=\"ax-font-medium ax-pb-1\">{{ j.title }}</p>\n <p class=\"ax-text-neutral-400\">{{ j.description }}</p>\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n }\n </div>\n </div>\n\n }\n <div class=\"ax-w-full ax-gap-3 ax-p-6 ax-pt-0 ax-flex ax-justify-end ax-items-center ax-flex-wrap\">\n <ax-button\n [disabled]=\"settings.canCancel()\"\n (onClick)=\"settings.onCancelSettings()\"\n [text]=\"'cancel' | translate | async\"\n ></ax-button>\n <ax-button\n [disabled]=\"!settings.canSave()\"\n (onClick)=\"settings.onSaveSettings()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n </div>\n } @else {\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md\">\n @for(group of settings.dataDetails()?.childGroups; track $index){\n <div class=\"ax-p-4\">\n <a\n [routerLink]=\"settings.fullRoute + group.name\"\n class=\"ax-text-primary-500 dark:ax-text-primary-200 ax-underline ax-font-bold ax-text-xl\"\n >{{ group.title }}</a\n >\n </div>\n }\n </div>\n }\n </axp-widgets-container>\n</div>\n" }]
404
+ }, template: "<div #content class=\"ax-overflow-auto ax-h-full\">\n <div class=\"ax-flex ax-flex-col ax-px-6 ax-pt-0 md:ax-pt-6 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\" [axpSticky]=\"'ax-bg-surface ax-py-3 ax-shadow-xl'\" [stickyOffset]=\"0\" [stickyParent]=\"content\">\n <div\n class=\"ax-flex ax-justify-between ax-items-center ax-flex-wrap md:ax-flex-nowrap ax-gap-4 ax-pt-4 ax-overflow-x-auto\">\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-transition\">\n <div class=\"md:ax-block ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <ax-button class=\"ax-block md:ax-hidden\" color=\"ghost\" [routerLink]=\"vm.fullRoute\">\n <ax-icon> <i class=\"fa-solid fa-chevron-left\"></i></ax-icon></ax-button>\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">\n {{ vm.groups()?.breadcrumb?.[(vm.groups()?.breadcrumb?.length??1)- 1]?.title }}\n </div>\n </div>\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400 ax-flex-wrap ax-hidden md:ax-block\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item [active]=\"false\" [routerLink]=\"vm.fullRoute\">\n <i class=\"ax-me-2 ax-text-xs fa-home fa-solid\"></i>{{ 'home' | translate | async }}</ax-breadcrumbs-item>\n @for(b of vm.groups()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item [active]=\"last\" [class.!ax-font-semibold]=\"last\" [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"vm.fullRoute + b.name\">\n {{ b.title | translate | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n <div class=\"ax-w-64\">\n <ax-search-box [delayTime]=\"300\" [(ngModel)]=\"vm.search\"> </ax-search-box>\n </div>\n </div>\n </div>\n\n <axp-widgets-container [context]=\"vm.context()\" (onChanged)=\"vm.handleContextChanged($event)\">\n @if(vm.search() && vm.searchResult()!.length>0){\n <div class=\"ax-settings-items\">\n @for(group of vm.searchResult(); track group.name)\n {\n <p class=\"ax-text-lg md:ax-text-xl ax-font-semibold ax-p-6 ax-pb-3 ax-text-neutral-400\">\n {{ group.title }}\n </p>\n @for (section of group.sections; track section.name)\n {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n }\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\n </div>\n }\n @else if(vm.search() && vm.searchResult()!.length===0) {\n <div class=\"ax-p-2\">\n <div\n class=\"ax-mt-3 ax-flex ax-flex-col ax-justify-center ax-h-[calc(100vh-236px)] ax-items-center ax-p-10 ax-gap-10\">\n <p class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">No Setting Found!</p>\n </div>\n </div>\n }\n @else if(vm.groups()?.sections)\n {\n <div class=\"ax-settings-items \">\n @for(section of vm.groups()?.sections; track section.name)\n {\n <ng-container [ngTemplateOutlet]=\"sectionTpl\" [ngTemplateOutletContext]=\"{ section }\"\n [ngTemplateOutletInjector]=\"injector\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\n </div>\n }\n @else\n {\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md\">\n @for(group of vm.groups()?.groups; track $index)\n {\n <div class=\"ax-p-4\">\n <a [routerLink]=\"vm.fullRoute + group.name\"\n class=\"ax-text-primary-500 dark:ax-text-primary-200 ax-underline ax-font-bold ax-text-xl\">{{ group.title\n }}</a>\n </div>\n }\n </div>\n }\n <ng-template #sectionTpl let-section=\"section\">\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md ax-shadow-sm\">\n <div class=\"ax-py-4\">\n <p class=\"ax-font-semibold ax-text-xl\">{{ section.title }}</p>\n @if(section.description)\n {\n <p class=\"ax-text-sm ax-text-neutral-400\">{{ section.description }}</p>\n }\n </div>\n <div class=\"ax-divide-y ax-w-full \">\n @for(j of section.settings; track j.name){\n <div class=\"ax-py-4\">\n @if(widget.options().needLabel!=false || j.description)\n {\n <p class=\"ax-font-semibold\">{{ j.title }}</p>\n }\n @if(j.description)\n {\n <p class=\"ax-text-sm ax-text-neutral-400\">{{ j.description }}</p>\n }\n <div class=\"ax-w-full md:ax-min-w-fit md:ax-max-w-[50%] lg:ax-max-w-[30%] ax-mt-4\">\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\" #widget=\"widgetRenderer\">\n </ng-container>\n </div>\n </div>\n }\n </div>\n </div>\n </ng-template>\n\n <ng-template #actions>\n <div class=\"ax-w-full ax-gap-3 ax-p-6 ax-pt-0 ax-flex ax-justify-end ax-items-center ax-flex-wrap\">\n <ax-dropdown-button [text]=\"('reset' | translate | async)!\" (onClick)=\"vm.reset()\">\n <ax-button-item-list>\n <ax-button-item [text]=\"('restore-defaults' | translate | async)!\" (onClick)=\"vm.resetToDefault()\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-rotate-left fa-flip-horizontal\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n <ax-button [disabled]=\"!vm.canSave()\" (onClick)=\"vm.apply()\" color=\"primary\"\n [text]=\"'apply' | translate | async\">\n @if(vm.isSaving())\n {\n <ax-loading></ax-loading>\n }\n </ax-button>\n </div>\n </ng-template>\n\n </axp-widgets-container>\n</div>" }]
278
405
  }] });
279
406
 
407
+ class AXPEntityReuseStrategy {
408
+ shouldDetach(route) {
409
+ return false;
410
+ }
411
+ store(route, detachedTree) { }
412
+ shouldAttach(route) {
413
+ return false;
414
+ }
415
+ retrieve(route) {
416
+ return null;
417
+ }
418
+ shouldReuseRoute(future, curr) {
419
+ if (future.data && future.data['reuse'] === false) {
420
+ return false;
421
+ }
422
+ return future.routeConfig === curr.routeConfig;
423
+ }
424
+ }
425
+
280
426
  function routesFacory() {
281
427
  const config = inject(AXP_ENTITY_CONFIG_TOKEN);
282
428
  let routes = [
283
429
  {
284
- path: ':app/settings',
430
+ path: ':app/settings/:scope',
285
431
  component: config.viewers.root(),
286
432
  children: [
287
433
  {
@@ -297,6 +443,17 @@ function routesFacory() {
297
443
  },
298
444
  ],
299
445
  },
446
+ // {
447
+ // path: ':app/settings/:scope',
448
+ // component: config.viewers.root(),
449
+ // children: [
450
+ // {
451
+ // path: '',
452
+ // component: AXPSettingPageComponent,
453
+ // data: { reuse: true },
454
+ // },
455
+ // ],
456
+ // },
300
457
  {
301
458
  path: 'error',
302
459
  children: [
@@ -330,13 +487,13 @@ class AXPDefaultThemeModule {
330
487
  viewers: {
331
488
  root: () => AXPRootLayoutComponent,
332
489
  master: {
333
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-D8UjpvuI.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
490
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-q_DOP0cT.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
334
491
  ///
335
- create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-Bw-rbKbL.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
492
+ create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-CJ_HVKX-.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
336
493
  ///
337
- modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-DoeGBemE.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
494
+ modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-DveB-N1Z.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
338
495
  //
339
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-DJYTC375.mjs').then((c) => c.AXPEntityMasterListViewComponent),
496
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-CeBk_nxz.mjs').then((c) => c.AXPEntityMasterListViewComponent),
340
497
  },
341
498
  },
342
499
  },
@@ -369,13 +526,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
369
526
  viewers: {
370
527
  root: () => AXPRootLayoutComponent,
371
528
  master: {
372
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-D8UjpvuI.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
529
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-q_DOP0cT.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
373
530
  ///
374
- create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-Bw-rbKbL.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
531
+ create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-CJ_HVKX-.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
375
532
  ///
376
- modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-DoeGBemE.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
533
+ modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-DveB-N1Z.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
377
534
  //
378
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-DJYTC375.mjs').then((c) => c.AXPEntityMasterListViewComponent),
535
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-CeBk_nxz.mjs').then((c) => c.AXPEntityMasterListViewComponent),
379
536
  },
380
537
  },
381
538
  },
@@ -390,126 +547,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
390
547
  }]
391
548
  }] });
392
549
 
393
- class AXPEntityDetailListViewComponent {
394
- constructor(actionSheetService, unsubscriber) {
395
- this.actionSheetService = actionSheetService;
396
- this.unsubscriber = unsubscriber;
397
- this.workflow = inject(AXPWorkflowService);
398
- this.store = inject(AXPLayoutThemeService);
399
- this.destroyed = new Subject();
400
- this.dropdownRowItems = computed(() => {
401
- return this.vm.secondaryRowActions().map((c) => ({
402
- icon: c.icon,
403
- name: c.name,
404
- text: c.title,
405
- color: c.color,
406
- }));
407
- });
408
- this.commandRowItems = computed(() => {
409
- return this.vm.primaryRowActions().map((c) => {
410
- return {
411
- icon: c.icon,
412
- name: c.name,
413
- text: c.title,
414
- color: c.color,
415
- };
416
- });
417
- });
418
- this.getCommandRowItems = () => {
419
- return this.commandRowItems();
420
- };
421
- this.getDropdownRowItems = (rowData) => {
422
- return Promise.resolve(this.dropdownRowItems());
423
- };
424
- effect(() => {
425
- this.grid.selectedRows = this.vm.selectedItems();
426
- });
427
- this.subscribeActionEvents();
428
- }
429
- handleChangeSearchValue(e) {
430
- if (e.isUserInteraction) {
431
- this.vm.applyInlineFilter(e.value);
432
- }
433
- }
434
- subscribeActionEvents() {
435
- this.workflow.events$
436
- .pipe(ofType(AXPEntityDeletedEvent, AXPEntityCreateEvent))
437
- .pipe(takeUntil(this.destroyed))
438
- .subscribe((event) => {
439
- console.log(event);
440
- this.grid.refresh();
441
- });
442
- }
443
- ngAfterViewInit() {
444
- // this.grid.refresh();
445
- }
446
- handleRowDbClick(e) {
447
- const item = this.dropdownRowItems()?.[0];
448
- if (item) {
449
- const d = {
450
- component: e.component,
451
- name: item.name,
452
- data: e.data,
453
- };
454
- this.handleRowCommandClick(d);
455
- }
456
- }
457
- async handleSelectedRowsChange(rows) {
458
- this.vm.selectedItems.set(rows);
459
- }
460
- async handleRowCommandClick(e) {
461
- this.vm.executeCommand(e.name, e.data);
462
- }
463
- destroy() {
464
- this.destroyed.next();
465
- this.destroyed.complete();
466
- }
467
- ngOnDestroy() {
468
- this.destroy();
469
- }
470
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityDetailListViewComponent, deps: [{ token: i1$3.AXActionSheetService }, { token: i2$1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
471
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPEntityDetailListViewComponent, isStandalone: true, selector: "axp-entity-detail-list-view", inputs: { vm: ["viewModel", "vm"] }, providers: [AXUnsubscriber], viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span\n (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >{{ 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span\n >\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !store.isSmall()) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"(tr.title | translate | async)!\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\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 } @if(dropdownRowItems().length){\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "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: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6$1.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i11.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i11.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i11.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i11.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type:
472
- //
473
- AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
474
- }
475
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityDetailListViewComponent, decorators: [{
476
- type: Component,
477
- args: [{ selector: 'axp-entity-detail-list-view', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXUnsubscriber], imports: [
478
- CommonModule,
479
- FormsModule,
480
- RouterModule,
481
- AXButtonModule,
482
- AXDecoratorModule,
483
- AXBadgeModule,
484
- AXDropdownModule,
485
- AXPopoverModule,
486
- AXFormModule,
487
- AXActionSheetModule,
488
- AXDrawerModule,
489
- AXDialogModule,
490
- AXLoadingModule,
491
- AXTabsModule,
492
- AXTooltipModule,
493
- AXBreadcrumbsModule,
494
- AXSearchBoxModule,
495
- AXDataTableModule,
496
- //
497
- AXPLayoutBuilderModule,
498
- AXPWidgetsModule,
499
- AXPAuthModule,
500
- AXTranslationModule,
501
- ], template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span\n (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >{{ 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span\n >\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !store.isSmall()) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"(tr.title | translate | async)!\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\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 } @if(dropdownRowItems().length){\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>\n" }]
502
- }], ctorParameters: () => [{ type: i1$3.AXActionSheetService }, { type: i2$1.AXUnsubscriber }], propDecorators: { vm: [{
503
- type: Input,
504
- args: ['viewModel']
505
- }], grid: [{
506
- type: ViewChild,
507
- args: ['grid', { static: true }]
508
- }] } });
509
-
510
550
  /**
511
551
  * Generated bundle index. Do not edit.
512
552
  */
513
553
 
514
- export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPSettingsMenuComponent, AXPSettingsViewComponent };
554
+ export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPSettingsMenuComponent, AXPSettingsViewComponent, AXPSimplePageLayout };
515
555
  //# sourceMappingURL=acorex-platform-themes-default.mjs.map