@acorex/platform 19.1.0 → 19.1.2

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 (48) hide show
  1. package/common/lib/app/application.types.d.ts +4 -1
  2. package/common/lib/settings/settings.types.d.ts +1 -0
  3. package/fesm2022/acorex-platform-common.mjs +1 -1
  4. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-layout-builder.mjs +9 -2
  6. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-entity.mjs +127 -115
  8. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-setting.mjs +2 -2
  10. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  11. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-CJ_HVKX-.mjs → acorex-platform-themes-default-entity-master-create-view.component-B13KvLX4.mjs} +3 -3
  12. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-CJ_HVKX-.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-B13KvLX4.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CeBk_nxz.mjs → acorex-platform-themes-default-entity-master-list-view.component-B6MXHPWi.mjs} +12 -12
  14. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-CeBk_nxz.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-B6MXHPWi.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DveB-N1Z.mjs → acorex-platform-themes-default-entity-master-modify-view.component-tKCGSRQT.mjs} +3 -3
  16. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DveB-N1Z.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-tKCGSRQT.mjs.map} +1 -1
  17. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-q_DOP0cT.mjs → acorex-platform-themes-default-entity-master-single-view.component-CHvC0IAV.mjs} +8 -8
  18. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-q_DOP0cT.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-CHvC0IAV.mjs.map} +1 -1
  19. package/fesm2022/acorex-platform-themes-default.mjs +89 -66
  20. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-themes-shared.mjs +99 -6
  22. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  23. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-B_Gec5Qf.mjs → acorex-platform-widgets-checkbox-widget-designer.component-juhKoygA.mjs} +3 -3
  24. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-juhKoygA.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-widgets.mjs +168 -79
  26. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  27. package/layout/builder/lib/builder/widget.types.d.ts +1 -0
  28. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +3 -3
  29. package/layout/entity/lib/entity.viewmodel.d.ts +1 -0
  30. package/layout/setting/lib/setting.viewmodel.d.ts +1 -1
  31. package/package.json +9 -9
  32. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +47 -2
  33. package/themes/default/lib/layouts/setting-layout/index.d.ts +0 -1
  34. package/themes/default/lib/layouts/setting-layout/setting-page/setting-page.component.d.ts +6 -0
  35. package/themes/shared/lib/components/layout-elements/index.d.ts +2 -0
  36. package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +1 -1
  37. package/themes/shared/lib/components/layout-elements/layout-page-actions.component.d.ts +20 -0
  38. package/themes/shared/lib/components/layout-elements/layout-page-side.component.d.ts +5 -0
  39. package/widgets/lib/properties/layout.props.d.ts +2 -0
  40. package/widgets/lib/widgets/index.d.ts +1 -0
  41. package/widgets/lib/widgets/property-editors/border/border-widget-editor.component.d.ts +11 -0
  42. package/widgets/lib/widgets/property-editors/border/border-widget-type.d.ts +18 -0
  43. package/widgets/lib/widgets/property-editors/border/border-widget.config.d.ts +7 -0
  44. package/widgets/lib/widgets/property-editors/border/index.d.ts +2 -0
  45. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-editor.component.d.ts +2 -3
  46. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-type.d.ts +3 -3
  47. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-B_Gec5Qf.mjs.map +0 -1
  48. package/themes/default/lib/layouts/setting-layout/setting-menu/setting-menu.component.d.ts +0 -10
@@ -1,42 +1,42 @@
1
- import * as i4 from '@acorex/components/button';
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule, AsyncPipe } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, contentChild, Component, ViewEncapsulation, ChangeDetectionStrategy, computed, effect, Input, ViewChild, NgModule, Injector, afterNextRender } from '@angular/core';
5
+ import * as i7$2 from '@acorex/components/breadcrumbs';
6
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
7
+ import * as i4$1 from '@acorex/components/button';
2
8
  import { AXButtonModule } from '@acorex/components/button';
3
9
  import { AXCommonModule } from '@acorex/components/common';
4
10
  import * as i3 from '@acorex/components/decorators';
5
11
  import { AXDecoratorModule } from '@acorex/components/decorators';
6
12
  import * as i2 from '@acorex/components/drawer';
7
13
  import { AXDrawerModule } from '@acorex/components/drawer';
8
- import * as i6 from '@acorex/components/dropdown';
14
+ import * as i4 from '@acorex/components/dropdown';
9
15
  import { AXDropdownModule } from '@acorex/components/dropdown';
10
16
  import * as i7$1 from '@acorex/components/dropdown-button';
11
17
  import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
12
18
  import * as i1$2 from '@acorex/platform/common';
13
19
  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';
20
+ import { AXPLayoutThemeService, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPageSideComponent, AXPThemeLayoutPageActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemesSharedModule } from '@acorex/platform/themes/shared';
19
21
  import * as i1$1 from '@acorex/components/action-sheet';
20
22
  import { AXActionSheetModule } from '@acorex/components/action-sheet';
21
23
  import { AXBadgeModule } from '@acorex/components/badge';
22
- import * as i4$2 from '@acorex/components/breadcrumbs';
23
- import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
24
24
  import * as i11 from '@acorex/components/data-table';
25
25
  import { AXDataTableModule } from '@acorex/components/data-table';
26
26
  import { AXDialogModule } from '@acorex/components/dialog';
27
27
  import { AXFormModule } from '@acorex/components/form';
28
- import * as i5 from '@acorex/components/loading';
28
+ import * as i5$1 from '@acorex/components/loading';
29
29
  import { AXLoadingModule } from '@acorex/components/loading';
30
30
  import { AXPopoverModule } from '@acorex/components/popover';
31
31
  import * as i7 from '@acorex/components/search-box';
32
32
  import { AXSearchBoxModule } from '@acorex/components/search-box';
33
33
  import { AXTabsModule } from '@acorex/components/tabs';
34
34
  import { AXTooltipModule } from '@acorex/components/tooltip';
35
- import * as i10 from '@acorex/core/translation';
35
+ import * as i5 from '@acorex/core/translation';
36
36
  import { AXTranslationModule } from '@acorex/core/translation';
37
37
  import * as i2$1 from '@acorex/core/utils';
38
38
  import { AXUnsubscriber } from '@acorex/core/utils';
39
- import * as i4$1 from '@acorex/platform/auth';
39
+ import * as i4$2 from '@acorex/platform/auth';
40
40
  import { AXPAuthModule } from '@acorex/platform/auth';
41
41
  import * as i9 from '@acorex/platform/layout/builder';
42
42
  import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
@@ -44,41 +44,52 @@ import { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';
44
44
  import { AXPEntityDeletedEvent, AXPEntityCreateEvent } from '@acorex/platform/layouts';
45
45
  import { AXPWidgetsModule } from '@acorex/platform/widgets';
46
46
  import { AXPWorkflowService, ofType } from '@acorex/platform/workflow';
47
- import * as i10$1 from '@angular/forms';
47
+ import * as i2$2 from '@angular/forms';
48
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';
49
+ import * as i3$2 from '@angular/router';
50
+ import { RouterModule, Router, NavigationEnd, RouterLink, ActivatedRoute, RouteReuseStrategy, ROUTES } from '@angular/router';
51
51
  import { Subject, takeUntil, filter } from 'rxjs';
52
52
  import { sortBy } from 'lodash-es';
53
53
  import * as i3$1 from '@acorex/components/side-menu';
54
54
  import { AXSideMenuModule } from '@acorex/components/side-menu';
55
55
  import { AXAvatarModule } from '@acorex/components/avatar';
56
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
57
  import { AXPSettingsViewModel } from '@acorex/platform/layout/setting';
58
+ import * as i6 from '@acorex/components/tree-view';
59
+ import { AXTreeViewModule } from '@acorex/components/tree-view';
60
60
 
61
61
  class AXPSimplePageLayout {
62
62
  constructor() {
63
+ this.layoutService = inject(AXPLayoutThemeService);
63
64
  this.headerLayout = contentChild(AXPThemeLayoutPageHeaderComponent);
65
+ this.pageSideLayout = contentChild(AXPThemeLayoutPageSideComponent);
66
+ this.pageActionsLayout = contentChild(AXPThemeLayoutPageActionsComponent);
64
67
  }
65
68
  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 }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.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 }, { propertyName: "pageSideLayout", first: true, predicate: AXPThemeLayoutPageSideComponent, descendants: true, isSignal: true }, { propertyName: "pageActionsLayout", first: true, predicate: AXPThemeLayoutPageActionsComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #side>\n <ng-content select=\"axp-page-side\"></ng-content>\n</ng-template>\n<ng-template>\n <ng-content select=\"axp-page-header\"></ng-content>\n</ng-template>\n<ax-drawer-container>\n @if(pageSideLayout())\n {\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content>\n <ng-container *ngTemplateOutlet=\"side\"></ng-container>\n </ax-content>\n </ax-drawer>\n }\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\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 @if(!sticky.isSticky)\n {\n <ng-container *ngTemplateOutlet=\"headerLayout()?.description()!\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"headerLayout()?.breadcrumbs()!\"></ng-container>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n @if(pageActionsLayout())\n {\n <axp-page-actions>\n <!-- Primary Actions -->\n @if(pageActionsLayout()?.hasPrimary())\n {\n <ng-container *ngTemplateOutlet=\"pageActionsLayout()?.primaryTemplate()!\"></ng-container>\n }\n <!-- Secondary Actions -->\n @if(pageActionsLayout()?.hasSecondary())\n {\n <ax-button [text]=\"layoutService.isSmall() ? null : 'Actions'\" 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 <ng-container\n *ngTemplateOutlet=\"pageActionsLayout()?.secondaryTemplate()!\"></ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-page-actions>\n }\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n @if(!sticky.isSticky)\n {\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navbar()!\"></ng-container>\n }\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 ax-drawer{display:flex;flex-direction:column;align-items:center;border-right-width:1px;padding:1.5rem}axp-layout-simple-page ax-drawer axp-page-side-title{display:block;padding-bottom:1rem;font-size:1.25rem;line-height:1.75rem;font-weight:700}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-navbar{margin-top:1rem;display:flex;justify-content:space-between}axp-layout-simple-page axp-page-body axp-page-header axp-page-navbar ax-suffix,axp-layout-simple-page axp-page-body axp-page-header axp-page-navbar ax-prefix{display:flex;gap:.5rem}axp-layout-simple-page axp-page-body axp-page-header axp-page-navbar ax-suffix{margin-inline-start:auto;justify-self:end}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-400),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-header ax-breadcrumbs{display:none;flex-wrap:wrap}axp-layout-simple-page axp-page-body axp-page-header ax-breadcrumbs>*{font-weight:400;--tw-text-opacity: 1;color:rgba(var(--ax-color-neutral-400),var(--tw-text-opacity, 1))}@media (min-width: 768px){axp-layout-simple-page axp-page-body axp-page-header ax-breadcrumbs{display:block}}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:
70
+ //
71
+ 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: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-body, axp-page-title, axp-page-description, axp-page-navbar, axp-page-breadcrumbs, axp-page-side-title " }, { kind: "component", type: AXPThemeLayoutPageHeaderComponent, selector: "axp-page-header" }, { kind: "component", type: AXPThemeLayoutPageActionsComponent, selector: "axp-page-actions" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "directive", type:
72
+ //
73
+ AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
67
74
  }
68
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSimplePageLayout, decorators: [{
69
76
  type: Component,
70
77
  args: [{ standalone: true, imports: [
71
78
  CommonModule,
79
+ //
72
80
  AXCommonModule,
73
81
  AXDrawerModule,
74
82
  AXDecoratorModule,
75
- AXPStickyDirective,
76
83
  AXDropdownButtonModule,
77
84
  AXDropdownModule,
78
85
  AXButtonModule,
79
86
  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"] }]
87
+ AXPThemeLayoutPageHeaderComponent,
88
+ AXPThemeLayoutPageActionsComponent,
89
+ AXBreadcrumbsModule,
90
+ //
91
+ AXPStickyDirective,
92
+ ], selector: 'axp-layout-simple-page', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #side>\n <ng-content select=\"axp-page-side\"></ng-content>\n</ng-template>\n<ng-template>\n <ng-content select=\"axp-page-header\"></ng-content>\n</ng-template>\n<ax-drawer-container>\n @if(pageSideLayout())\n {\n <ax-drawer #drawer location=\"start\" [collapsed]=\"false\" [mode]=\"'push'\">\n <ax-content>\n <ng-container *ngTemplateOutlet=\"side\"></ng-container>\n </ax-content>\n </ax-drawer>\n }\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\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 @if(!sticky.isSticky)\n {\n <ng-container *ngTemplateOutlet=\"headerLayout()?.description()!\"></ng-container>\n }\n <ng-container *ngTemplateOutlet=\"headerLayout()?.breadcrumbs()!\"></ng-container>\n </div>\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-- Begin Action Menu -->\n @if(pageActionsLayout())\n {\n <axp-page-actions>\n <!-- Primary Actions -->\n @if(pageActionsLayout()?.hasPrimary())\n {\n <ng-container *ngTemplateOutlet=\"pageActionsLayout()?.primaryTemplate()!\"></ng-container>\n }\n <!-- Secondary Actions -->\n @if(pageActionsLayout()?.hasSecondary())\n {\n <ax-button [text]=\"layoutService.isSmall() ? null : 'Actions'\" 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 <ng-container\n *ngTemplateOutlet=\"pageActionsLayout()?.secondaryTemplate()!\"></ng-container>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-page-actions>\n }\n <!-- Finish Action Menu -->\n </div>\n <!----- Finish Toolbar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n @if(!sticky.isSticky)\n {\n <ng-container *ngTemplateOutlet=\"headerLayout()?.navbar()!\"></ng-container>\n }\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 ax-drawer{display:flex;flex-direction:column;align-items:center;border-right-width:1px;padding:1.5rem}axp-layout-simple-page ax-drawer axp-page-side-title{display:block;padding-bottom:1rem;font-size:1.25rem;line-height:1.75rem;font-weight:700}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-navbar{margin-top:1rem;display:flex;justify-content:space-between}axp-layout-simple-page axp-page-body axp-page-header axp-page-navbar ax-suffix,axp-layout-simple-page axp-page-body axp-page-header axp-page-navbar ax-prefix{display:flex;gap:.5rem}axp-layout-simple-page axp-page-body axp-page-header axp-page-navbar ax-suffix{margin-inline-start:auto;justify-self:end}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-400),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-header ax-breadcrumbs{display:none;flex-wrap:wrap}axp-layout-simple-page axp-page-body axp-page-header ax-breadcrumbs>*{font-weight:400;--tw-text-opacity: 1;color:rgba(var(--ax-color-neutral-400),var(--tw-text-opacity, 1))}@media (min-width: 768px){axp-layout-simple-page axp-page-body axp-page-header ax-breadcrumbs{display:block}}axp-layout-simple-page axp-page-body axp-page-content{height:100%;overflow:auto}\n"] }]
82
93
  }] });
83
94
 
84
95
  class AXPEntityDetailListViewComponent {
@@ -159,9 +170,9 @@ class AXPEntityDetailListViewComponent {
159
170
  this.destroy();
160
171
  }
161
172
  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:
173
+ 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 [parentField]=\"vm.parentKey()\"\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$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: 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: i4.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
174
  //
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 }); }
175
+ 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: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
165
176
  }
166
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityDetailListViewComponent, decorators: [{
167
178
  type: Component,
@@ -189,7 +200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
189
200
  AXPWidgetsModule,
190
201
  AXPAuthModule,
191
202
  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" }]
203
+ ], 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 [parentField]=\"vm.parentKey()\"\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
204
  }], ctorParameters: () => [{ type: i1$1.AXActionSheetService }, { type: i2$1.AXUnsubscriber }], propDecorators: { vm: [{
194
205
  type: Input,
195
206
  args: ['viewModel']
@@ -252,7 +263,7 @@ class AXPRootLayoutMenuComponent {
252
263
  return sortBy(items, [c => c.priority ?? 0, c => c.text]);
253
264
  }
254
265
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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" }] }); }
266
+ 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$2.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }] }); }
256
267
  }
257
268
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutMenuComponent, decorators: [{
258
269
  type: Component,
@@ -272,7 +283,7 @@ class AXPRootLayoutComponent {
272
283
  ;
273
284
  }
274
285
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
286
+ 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: i3$2.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$1.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 }); }
276
287
  }
277
288
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPRootLayoutComponent, decorators: [{
278
289
  type: Component,
@@ -359,29 +370,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
359
370
  }]
360
371
  }] });
361
372
 
362
- class AXPSettingsMenuComponent {
363
- constructor() {
364
- this.settings = inject(AXPSettingsViewModel);
365
- this.activatedRoute = inject(ActivatedRoute);
366
- afterNextRender(async () => {
367
- await this.settings.initializeService(this.activatedRoute);
368
- });
369
- }
370
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
372
- }
373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsMenuComponent, decorators: [{
374
- type: Component,
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>" }]
376
- }], ctorParameters: () => [] });
377
-
378
373
  class AXPSettingsViewComponent {
379
374
  constructor() {
380
375
  this.vm = inject(AXPSettingsViewModel);
381
376
  this.injector = inject(Injector);
382
377
  }
383
378
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
379
+ 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: "<axp-widgets-container [context]=\"vm.context()\" (onChanged)=\"vm.handleContextChanged($event)\">\n @if(vm.search() && vm.searchResult()!.length>0){\n\n @for(group of vm.searchResult(); track group.name)\n {\n <p class=\"ax-text-lg md:ax-text-xl ax-font-semibold 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\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\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\n }\n @else\n {\n <div class=\"ax-bg-surface 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-px-4 ax-border ax-rounded-md ax-shadow-sm ax-mb-6\">\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\" [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>", 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: "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: "component", type: i4$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXSearchBoxModule }, { 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$1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
385
380
  }
386
381
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingsViewComponent, decorators: [{
387
382
  type: Component,
@@ -394,14 +389,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
394
389
  AXButtonModule,
395
390
  AXTranslationModule,
396
391
  AsyncPipe,
397
- AXPStickyDirective,
398
392
  AXSearchBoxModule,
399
393
  AXDropdownButtonModule,
400
394
  AXLoadingModule,
401
395
  FormsModule
402
396
  ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
403
397
  class: 'ax-w-full',
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>" }]
398
+ }, template: "<axp-widgets-container [context]=\"vm.context()\" (onChanged)=\"vm.handleContextChanged($event)\">\n @if(vm.search() && vm.searchResult()!.length>0){\n\n @for(group of vm.searchResult(); track group.name)\n {\n <p class=\"ax-text-lg md:ax-text-xl ax-font-semibold 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\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\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\n }\n @else\n {\n <div class=\"ax-bg-surface 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-px-4 ax-border ax-rounded-md ax-shadow-sm ax-mb-6\">\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\" [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>" }]
405
399
  }] });
406
400
 
407
401
  class AXPEntityReuseStrategy {
@@ -423,6 +417,46 @@ class AXPEntityReuseStrategy {
423
417
  }
424
418
  }
425
419
 
420
+ class AXPSettingPageComponent {
421
+ constructor() {
422
+ this.vm = inject(AXPSettingsViewModel);
423
+ this.injector = inject(Injector);
424
+ this.activatedRoute = inject(ActivatedRoute);
425
+ afterNextRender(async () => {
426
+ await this.vm.initializeService(this.activatedRoute);
427
+ });
428
+ }
429
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
430
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPSettingPageComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<axp-layout-simple-page>\n\n <axp-page-side>\n <axp-page-side-title>\n Workspace Settings\n </axp-page-side-title>\n <ax-tree-view #tree (onNodeClick)=\"vm.handleSelectGroup($event)\" [hasChildField]=\"'hasChild'\"\n class=\"!ax-text-sm\" [selectable]=\"false\" [items]=\"vm.formattedData()\"></ax-tree-view>\n </axp-page-side>\n\n <axp-page-header>\n @let group=vm.groups()?.breadcrumb?.[(vm.groups()?.breadcrumb?.length??1)- 1];\n\n <axp-page-title>\n {{ group?.title }}\n </axp-page-title>\n\n @if(group?.description)\n {\n <axp-page-description>\n {{ group?.description }}\n </axp-page-description>\n }\n\n <axp-page-actions>\n\n <axp-page-actions-primary></axp-page-actions-primary>\n\n <axp-page-actions-secondary>\n <ax-button-item text=\"Save\">\n <ax-prefix>\n <ax-icon [icon]=\"'fa-solid fa-save'\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </axp-page-actions-secondary>\n\n </axp-page-actions>\n\n <axp-page-breadcrumbs>\n <ax-breadcrumbs>\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-1\"></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\n }}</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\"\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"vm.fullRoute + b.name\">\n {{ b.title | translate | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </axp-page-breadcrumbs>\n\n <axp-page-navbar>\n <!-- <ax-prefix></ax-prefix> -->\n <ax-suffix>\n <ax-search-box [delayTime]=\"300\" [(ngModel)]=\"vm.search\"> </ax-search-box>\n </ax-suffix>\n </axp-page-navbar>\n </axp-page-header>\n\n\n\n <axp-page-content>\n <router-outlet></router-outlet>\n </axp-page-content>\n\n</axp-layout-simple-page>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i3$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type:
431
+ //
432
+ 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: 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: AXTreeViewModule }, { kind: "component", type: i6.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "selectable", "selectionMode", "selectionBehavior", "showActiveNode", "valueField", "textField", "visibleField", "disableField", "hasChildField", "iconField"], outputs: ["onSelectionChange", "onItemClick", "onNodeClick", "onNodeExpandClick"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i7$2.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i7$2.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }, { kind: "ngmodule", type: AXButtonModule }, { 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:
433
+ //
434
+ AXPSimplePageLayout, selector: "axp-layout-simple-page" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-body, axp-page-title, axp-page-description, axp-page-navbar, axp-page-breadcrumbs, axp-page-side-title " }, { kind: "component", type: AXPThemeLayoutPageHeaderComponent, selector: "axp-page-header" }, { kind: "component", type: AXPThemeLayoutPageSideComponent, selector: "axp-page-side" }, { kind: "component", type: AXPThemeLayoutPageActionsComponent, selector: "axp-page-actions" }, { kind: "component", type: AXPThemeLayoutPagePrimaryActionsComponent, selector: "axp-page-actions-primary" }, { kind: "component", type: AXPThemeLayoutPageSecondaryActionsComponent, selector: "axp-page-actions-secondary" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
435
+ }
436
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPSettingPageComponent, decorators: [{
437
+ type: Component,
438
+ args: [{ standalone: true, imports: [
439
+ CommonModule,
440
+ FormsModule,
441
+ RouterModule,
442
+ //
443
+ AXSearchBoxModule,
444
+ AXDecoratorModule,
445
+ AXTreeViewModule,
446
+ AXBreadcrumbsModule,
447
+ AXTranslationModule,
448
+ AXButtonModule,
449
+ //
450
+ AXPSimplePageLayout,
451
+ AXPThemeLayoutBlockComponent,
452
+ AXPThemeLayoutPageHeaderComponent,
453
+ AXPThemeLayoutPageSideComponent,
454
+ AXPThemeLayoutPageActionsComponent,
455
+ AXPThemeLayoutPagePrimaryActionsComponent,
456
+ AXPThemeLayoutPageSecondaryActionsComponent,
457
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<axp-layout-simple-page>\n\n <axp-page-side>\n <axp-page-side-title>\n Workspace Settings\n </axp-page-side-title>\n <ax-tree-view #tree (onNodeClick)=\"vm.handleSelectGroup($event)\" [hasChildField]=\"'hasChild'\"\n class=\"!ax-text-sm\" [selectable]=\"false\" [items]=\"vm.formattedData()\"></ax-tree-view>\n </axp-page-side>\n\n <axp-page-header>\n @let group=vm.groups()?.breadcrumb?.[(vm.groups()?.breadcrumb?.length??1)- 1];\n\n <axp-page-title>\n {{ group?.title }}\n </axp-page-title>\n\n @if(group?.description)\n {\n <axp-page-description>\n {{ group?.description }}\n </axp-page-description>\n }\n\n <axp-page-actions>\n\n <axp-page-actions-primary></axp-page-actions-primary>\n\n <axp-page-actions-secondary>\n <ax-button-item text=\"Save\">\n <ax-prefix>\n <ax-icon [icon]=\"'fa-solid fa-save'\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </axp-page-actions-secondary>\n\n </axp-page-actions>\n\n <axp-page-breadcrumbs>\n <ax-breadcrumbs>\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-1\"></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\n }}</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\"\n [class.!ax-text-neutral-600]=\"last\" [routerLink]=\"vm.fullRoute + b.name\">\n {{ b.title | translate | async }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </axp-page-breadcrumbs>\n\n <axp-page-navbar>\n <!-- <ax-prefix></ax-prefix> -->\n <ax-suffix>\n <ax-search-box [delayTime]=\"300\" [(ngModel)]=\"vm.search\"> </ax-search-box>\n </ax-suffix>\n </axp-page-navbar>\n </axp-page-header>\n\n\n\n <axp-page-content>\n <router-outlet></router-outlet>\n </axp-page-content>\n\n</axp-layout-simple-page>" }]
458
+ }], ctorParameters: () => [] });
459
+
426
460
  function routesFacory() {
427
461
  const config = inject(AXP_ENTITY_CONFIG_TOKEN);
428
462
  let routes = [
@@ -432,7 +466,7 @@ function routesFacory() {
432
466
  children: [
433
467
  {
434
468
  path: '',
435
- component: AXPSettingsMenuComponent,
469
+ component: AXPSettingPageComponent,
436
470
  data: { reuse: true },
437
471
  children: [
438
472
  {
@@ -443,17 +477,6 @@ function routesFacory() {
443
477
  },
444
478
  ],
445
479
  },
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
- // },
457
480
  {
458
481
  path: 'error',
459
482
  children: [
@@ -487,13 +510,13 @@ class AXPDefaultThemeModule {
487
510
  viewers: {
488
511
  root: () => AXPRootLayoutComponent,
489
512
  master: {
490
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-q_DOP0cT.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
513
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-CHvC0IAV.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
491
514
  ///
492
- create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-CJ_HVKX-.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
515
+ create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-B13KvLX4.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
493
516
  ///
494
- modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-DveB-N1Z.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
517
+ modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-tKCGSRQT.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
495
518
  //
496
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-CeBk_nxz.mjs').then((c) => c.AXPEntityMasterListViewComponent),
519
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-B6MXHPWi.mjs').then((c) => c.AXPEntityMasterListViewComponent),
497
520
  },
498
521
  },
499
522
  },
@@ -526,13 +549,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
526
549
  viewers: {
527
550
  root: () => AXPRootLayoutComponent,
528
551
  master: {
529
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-q_DOP0cT.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
552
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-CHvC0IAV.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
530
553
  ///
531
- create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-CJ_HVKX-.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
554
+ create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-B13KvLX4.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
532
555
  ///
533
- modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-DveB-N1Z.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
556
+ modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-tKCGSRQT.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
534
557
  //
535
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-CeBk_nxz.mjs').then((c) => c.AXPEntityMasterListViewComponent),
558
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-B6MXHPWi.mjs').then((c) => c.AXPEntityMasterListViewComponent),
536
559
  },
537
560
  },
538
561
  },
@@ -551,5 +574,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
551
574
  * Generated bundle index. Do not edit.
552
575
  */
553
576
 
554
- export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPSettingsMenuComponent, AXPSettingsViewComponent, AXPSimplePageLayout };
577
+ export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPSettingsViewComponent, AXPSimplePageLayout };
555
578
  //# sourceMappingURL=acorex-platform-themes-default.mjs.map