@acorex/platform 18.2.3 → 18.2.4

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 (66) hide show
  1. package/esm2022/common/lib/layout/sticky.directive.mjs +15 -11
  2. package/esm2022/layout/builder/lib/builder/widget-column-renderer.mjs +22 -11
  3. package/esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.mjs +27 -32
  4. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +33 -8
  5. package/esm2022/layout/entity/lib/entity.module.mjs +1 -17
  6. package/esm2022/layout/entity/lib/index.mjs +5 -4
  7. package/esm2022/layout/setting/lib/convert-setting-data.mjs +59 -0
  8. package/esm2022/layout/setting/lib/setting.viewmodel.mjs +123 -41
  9. package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +3 -3
  10. package/esm2022/themes/default/lib/default.module.mjs +83 -39
  11. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +3 -3
  12. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +18 -18
  13. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +18 -8
  14. package/esm2022/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.mjs +1 -1
  15. package/esm2022/themes/default/lib/layouts/setting-layout/index.mjs +3 -3
  16. package/esm2022/themes/default/lib/layouts/setting-layout/setting-menu/setting-menu.component.mjs +28 -0
  17. package/esm2022/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.mjs +42 -0
  18. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.mjs +2 -2
  19. package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.mjs +3 -2
  20. package/esm2022/workflow/lib/workflow.service.mjs +1 -1
  21. package/fesm2022/acorex-platform-common.mjs +13 -9
  22. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-builder.mjs +18 -7
  24. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-layout-designer.mjs +25 -30
  26. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-entity.mjs +842 -833
  28. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-layout-setting.mjs +180 -40
  30. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  32. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs → acorex-platform-themes-default-entity-master-create-view.component-Bs6fn6z2.mjs} +3 -3
  33. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-Bs6fn6z2.mjs.map} +1 -1
  34. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs → acorex-platform-themes-default-entity-master-list-view.component-DPHXeucj.mjs} +39 -30
  35. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DPHXeucj.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs → acorex-platform-themes-default-entity-master-modify-view.component-CWrpcOC2.mjs} +3 -3
  37. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-CWrpcOC2.mjs.map} +1 -1
  38. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs → acorex-platform-themes-default-entity-master-single-view.component-DHfe0Qtu.mjs} +10 -10
  39. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-DHfe0Qtu.mjs.map} +1 -1
  40. package/fesm2022/acorex-platform-themes-default.mjs +153 -257
  41. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  42. package/fesm2022/acorex-platform-widgets.mjs +3 -2
  43. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  44. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  45. package/layout/builder/lib/builder/widget-column-renderer.d.ts +1 -1
  46. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +6 -2
  47. package/layout/entity/lib/index.d.ts +4 -3
  48. package/layout/setting/README.md +2 -3
  49. package/{themes/default/lib/layouts/setting-layout → layout/setting/lib}/convert-setting-data.d.ts +6 -6
  50. package/layout/setting/lib/setting.viewmodel.d.ts +35 -9
  51. package/package.json +7 -7
  52. package/themes/default/lib/default.module.d.ts +3 -4
  53. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +3 -0
  54. package/themes/default/lib/layouts/setting-layout/index.d.ts +2 -2
  55. package/themes/default/lib/layouts/setting-layout/setting-menu/setting-menu.component.d.ts +12 -0
  56. package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +7 -0
  57. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +1 -2
  58. package/workflow/lib/workflow.service.d.ts +1 -1
  59. package/esm2022/themes/default/lib/layout.routes.mjs +0 -20
  60. package/esm2022/themes/default/lib/layouts/setting-layout/convert-setting-data.mjs +0 -49
  61. package/esm2022/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.mjs +0 -104
  62. package/esm2022/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.mjs +0 -44
  63. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs.map +0 -1
  64. package/themes/default/lib/layout.routes.d.ts +0 -2
  65. package/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.d.ts +0 -24
  66. package/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.d.ts +0 -20
@@ -1,10 +1,11 @@
1
- import * as i0 from '@angular/core';
2
- import { ViewEncapsulation, Component, inject, ViewChild, NgModule, computed, effect, Input, ChangeDetectionStrategy, viewChild, signal, afterNextRender } from '@angular/core';
3
- import * as i1$2 from '@angular/router';
4
- import { Router, NavigationEnd, RouterModule, RouteReuseStrategy, ActivatedRoute, RouterOutlet, RouterLink } from '@angular/router';
5
1
  import * as i1 from '@acorex/platform/common';
6
- import { AXPMenuService, AXP_PLATFORM_CONFIG_TOKEN, AXPLogoComponent, AXPComponentSlotModule, AXPCommonModule, AXPStickyDirective, AXPGridLayoutDirective, AXPSettingDefinitionProviderService } from '@acorex/platform/common';
2
+ import { AXPMenuService, AXP_PLATFORM_CONFIG_TOKEN, AXPLogoComponent, AXPComponentSlotModule, AXPStickyDirective, AXPCommonModule, AXPGridLayoutDirective } from '@acorex/platform/common';
3
+ import { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';
7
4
  import { AXPLayoutThemeService, AXPThemesSharedModule } from '@acorex/platform/themes/shared';
5
+ import * as i0 from '@angular/core';
6
+ import { ViewEncapsulation, Component, inject, ViewChild, NgModule, viewChild, afterNextRender, ChangeDetectionStrategy, computed, effect, Input } from '@angular/core';
7
+ import * as i1$2 from '@angular/router';
8
+ import { Router, NavigationEnd, RouterModule, ActivatedRoute, RouterOutlet, RouterLink, RouteReuseStrategy, ROUTES } from '@angular/router';
8
9
  import * as i1$1 from '@angular/common';
9
10
  import { CommonModule, AsyncPipe } from '@angular/common';
10
11
  import { filter, Subject, takeUntil } from 'rxjs';
@@ -15,64 +16,62 @@ import * as i3 from '@acorex/components/side-menu';
15
16
  import { AXSideMenuModule } from '@acorex/components/side-menu';
16
17
  import * as i4 from '@acorex/platform/auth';
17
18
  import { AXPAuthModule } from '@acorex/platform/auth';
18
- import * as i10 from '@acorex/core/translation';
19
+ import * as i5 from '@acorex/core/translation';
19
20
  import { AXTranslationModule } from '@acorex/core/translation';
20
21
  import * as i3$1 from '@acorex/components/drawer';
21
22
  import { AXDrawerModule } from '@acorex/components/drawer';
22
- import * as i5 from '@acorex/components/loading';
23
+ import * as i5$1 from '@acorex/components/loading';
23
24
  import { AXLoadingModule } from '@acorex/components/loading';
24
25
  import { AXAvatarModule } from '@acorex/components/avatar';
25
26
  import { AXBadgeModule } from '@acorex/components/badge';
26
27
  import * as i4$1 from '@acorex/components/button';
27
28
  import { AXButtonModule } from '@acorex/components/button';
28
- import * as i6 from '@acorex/components/dropdown';
29
+ import * as i6$1 from '@acorex/components/dropdown';
29
30
  import { AXDropdownModule } from '@acorex/components/dropdown';
30
31
  import { AXImageModule } from '@acorex/components/image';
31
32
  import { AXPopoverModule } from '@acorex/components/popover';
32
33
  import { AXTabsModule } from '@acorex/components/tabs';
33
- import { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';
34
+ import * as i3$2 from '@acorex/components/tree-view';
35
+ import { AXTreeViewModule } from '@acorex/components/tree-view';
36
+ import { AXPSettingsViewModel } from '@acorex/platform/layout/setting';
37
+ import * as i3$3 from '@acorex/components/breadcrumbs';
38
+ import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
39
+ import * as i6 from '@acorex/components/search-box';
40
+ import { AXSearchBoxModule } from '@acorex/components/search-box';
41
+ import * as i9 from '@acorex/platform/layout/builder';
42
+ import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
34
43
  import * as i1$3 from '@acorex/components/action-sheet';
35
44
  import { AXActionSheetModule } from '@acorex/components/action-sheet';
36
- import * as i2$2 from '@acorex/components/breadcrumbs';
37
- import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
38
45
  import * as i8 from '@acorex/components/data-table';
39
46
  import { AXDataTableModule } from '@acorex/components/data-table';
40
47
  import { AXDialogModule } from '@acorex/components/dialog';
41
48
  import { AXFormModule } from '@acorex/components/form';
42
- import * as i7 from '@acorex/components/search-box';
43
- import { AXSearchBoxModule } from '@acorex/components/search-box';
44
49
  import { AXTooltipModule } from '@acorex/components/tooltip';
45
50
  import * as i2$1 from '@acorex/core/utils';
46
51
  import { AXUnsubscriber } from '@acorex/core/utils';
47
- import * as i9 from '@acorex/platform/layout/builder';
48
- import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
49
52
  import { AXPEntityDeletedEvent, AXPEntityCreateEvent } from '@acorex/platform/layouts';
50
53
  import { AXPWidgetsModule } from '@acorex/platform/widgets';
51
54
  import { AXPWorkflowService, ofType } from '@acorex/platform/workflow';
52
55
  import { FormsModule } from '@angular/forms';
53
- import * as i3$2 from '@acorex/components/tree-view';
54
- import { AXTreeViewModule } from '@acorex/components/tree-view';
55
- import { AXToastService } from '@acorex/components/toast';
56
56
 
57
- const routes = [
58
- {
59
- path: 'error',
60
- children: [
61
- {
62
- path: 'offline',
63
- loadComponent: () => import('./acorex-platform-themes-default-error-offline.component-B6wSkMdd.mjs').then(c => c.AXPErrorOfflineComponent),
64
- },
65
- {
66
- path: '404',
67
- loadComponent: () => import('./acorex-platform-themes-default-error-404.component-DSY_D3Iq.mjs').then(c => c.AXPError404Component),
68
- },
69
- {
70
- path: '401',
71
- loadComponent: () => import('./acorex-platform-themes-default-error-401.component-D5QQ2HAv.mjs').then(c => c.AXPError401Component),
72
- },
73
- ]
74
- },
75
- ];
57
+ class AXPEntityReuseStrategy {
58
+ shouldDetach(route) {
59
+ return false;
60
+ }
61
+ store(route, detachedTree) { }
62
+ shouldAttach(route) {
63
+ return false;
64
+ }
65
+ retrieve(route) {
66
+ return null;
67
+ }
68
+ shouldReuseRoute(future, curr) {
69
+ if (future.data && future.data['reuse'] === false) {
70
+ return false;
71
+ }
72
+ return future.routeConfig === curr.routeConfig;
73
+ }
74
+ }
76
75
 
77
76
  class AXPRootLayoutFooterComponent {
78
77
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -128,7 +127,7 @@ class AXPRootLayoutMenuComponent {
128
127
  return sortBy(items, [c => c.priority ?? 0, c => c.text]);
129
128
  }
130
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu", ngImport: i0, template: "<ax-side-menu>\n <ng-container *ngFor=\"let item of sort(menuStore.items())\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-container>\n</ax-side-menu>\n\n<ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title>\n } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick( item)\"\n [active]=\"item ===menuStore.selectedMenuItem().item\" [isCollapsed]=\"!menuStore.isItemOpen(item)\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text | translate | async }}\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container *ngFor=\"let child of sort(item.children)\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXSideMenuComponent, selector: "ax-side-menu" }, { kind: "component", type: i3.AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "color", "isLoading", "text", "isCollapsed", "active"], outputs: ["isLoadingChange", "textChange", "isCollapsedChange", "activeChange", "onClick"] }, { kind: "directive", type: i4.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }] }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu", ngImport: i0, template: "<ax-side-menu>\n <ng-container *ngFor=\"let item of sort(menuStore.items())\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: item }\">\n </ng-container>\n</ax-side-menu>\n\n<ng-template #recursiveMenu let-item=\"item\">\n @if(item.type=='group') {\n <ax-title *permission=\"item.data?.requiredPermission\">{{ item.text | translate | async }}</ax-title>\n } @else {\n <ax-side-menu-item *permission=\"item.data?.requiredPermission\" (onClick)=\"onMenuItemClick( item)\"\n [active]=\"item ===menuStore.selectedMenuItem().item\" [isCollapsed]=\"!menuStore.isItemOpen(item)\">\n <ax-prefix>\n <ax-icon [class]=\"item.icon\"></ax-icon>\n </ax-prefix>\n {{ item.text | translate | async }}\n <ng-container *ngIf=\"item.children?.length\">\n <ng-container *ngFor=\"let child of sort(item.children)\" [ngTemplateOutlet]=\"recursiveMenu\"\n [ngTemplateOutletContext]=\"{ item: child }\">\n </ng-container>\n </ng-container>\n </ax-side-menu-item>\n }\n</ng-template>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3.AXSideMenuComponent, selector: "ax-side-menu" }, { kind: "component", type: i3.AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "color", "isLoading", "text", "isCollapsed", "active", "href", "routerLink", "routerLinkActive", "routerLinkActiveOptions", "target"], outputs: ["isLoadingChange", "textChange", "isCollapsedChange", "activeChange", "onClick"] }, { kind: "directive", type: i4.AXPPermissionDirective, selector: "[permission]", inputs: ["permission", "permissionElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }] }); }
132
131
  }
133
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutMenuComponent, decorators: [{
134
133
  type: Component,
@@ -148,7 +147,7 @@ class AXPRootLayoutComponent {
148
147
  ;
149
148
  }
150
149
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPRootLayoutComponent, selector: "ng-component", viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!store.isSideMenuOpen()\"\n [mode]=\"store.isSmall() ? 'overlay' : 'push'\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-72 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <nav class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <axp-root-menu></axp-root-menu>\n </nav>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"store.isOverlayLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "directive", type: i5.AXLoadingDirective, selector: "[axIsLoading]", inputs: ["axIsLoading"] }, { kind: "component", type: i1.AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "component", type: AXPRootLayoutFooterComponent, selector: "axp-dashboard-admin-footer" }, { kind: "component", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header" }, { kind: "component", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu" }], encapsulation: i0.ViewEncapsulation.None }); }
150
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPRootLayoutComponent, selector: "ng-component", viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<ax-drawer-container>\n <ax-drawer #drawer location=\"start\" [collapsed]=\"!store.isSideMenuOpen()\"\n [mode]=\"store.isSmall() ? 'overlay' : 'push'\" (collapsedChange)=\"handleCollapsedChange($event)\">\n <ax-content\n class=\"ax-w-72 ax-h-full ax-flex ax-flex-col ax-bg-secondary-600 dark:ax-bg-surface ax-text-primary-fore ax-border-e ax-border-primary-700 dark:ax-border-default\">\n <header class=\"ax-px-7 ax-h-16 ax-flex ax-items-center ax-border-b ax-border-white/10\">\n <axp-logo [source]=\"logo?.light\"></axp-logo>\n </header>\n <nav class=\"ax-px-2 ax-py-4 ax-overflow-y-auto ax-flex-1 ax-h-full\">\n <axp-root-menu></axp-root-menu>\n </nav>\n </ax-content>\n </ax-drawer>\n <ax-content class=\"ax-flex ax-flex-col ax-relative\">\n @if(store.isNavigationLoading()) {\n <div class=\"axp-navigating-progress\">\n <div></div>\n </div>\n }\n <axp-dashboard-admin-header></axp-dashboard-admin-header>\n <div class=\"ax-flex-1 ax-overflow-auto ax-relative\" [axIsLoading]=\"store.isOverlayLoading()\">\n <router-outlet></router-outlet>\n </div>\n <axp-dashboard-admin-footer></axp-dashboard-admin-footer>\n </ax-content>\n</ax-drawer-container>", dependencies: [{ kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "directive", type: i5$1.AXLoadingDirective, selector: "[axIsLoading]", inputs: ["axIsLoading"] }, { kind: "component", type: i1.AXPLogoComponent, selector: "axp-logo", inputs: ["source"] }, { kind: "component", type: AXPRootLayoutFooterComponent, selector: "axp-dashboard-admin-footer" }, { kind: "component", type: AXPRootLayoutHeaderComponent, selector: "axp-dashboard-admin-header" }, { kind: "component", type: AXPRootLayoutMenuComponent, selector: "axp-root-menu" }], encapsulation: i0.ViewEncapsulation.None }); }
152
151
  }
153
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPRootLayoutComponent, decorators: [{
154
153
  type: Component,
@@ -235,28 +234,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
235
234
  }]
236
235
  }] });
237
236
 
238
- class AXPEntityReuseStrategy {
239
- shouldDetach(route) {
240
- return false;
241
- }
242
- store(route, detachedTree) { }
243
- shouldAttach(route) {
244
- return false;
245
- }
246
- retrieve(route) {
247
- return null;
237
+ class AXPSettingsMenuComponent {
238
+ constructor() {
239
+ this.settings = inject(AXPSettingsViewModel);
240
+ this.activatedRoute = inject(ActivatedRoute);
241
+ this.tree = viewChild('tree');
242
+ afterNextRender(() => {
243
+ this.settings.initializeService(this.activatedRoute);
244
+ });
248
245
  }
249
- shouldReuseRoute(future, curr) {
250
- if (future.data && future.data['reuse'] === false) {
251
- return false;
252
- }
253
- return future.routeConfig === curr.routeConfig;
246
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
247
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: AXPSettingsMenuComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container class=\"ax-w-full md:ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer\n #drawer\n location=\"start\"\n mode=\"push\"\n class=\"ax-w-full ax-max-w-full md:ax-w-auto\"\n [collapsed]=\"settings.isMobile() && !!settings.activatedGroup()\"\n >\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Settings</p>\n <ax-tree-view\n #tree\n (onNodeClick)=\"settings.onChooseGroup($event)\"\n [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\"\n [items]=\"settings.formattedData()\"\n ></ax-tree-view>\n </ax-content>\n </ax-drawer>\n\n <ax-content [class.ax-hidden]=\"settings.isMobile() && !settings.activatedGroup()\">\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n", dependencies: [{ kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "component", type: i3$2.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "selectable", "selectionMode", "selectionBehavior", "showActiveNode", "valueField", "textField", "visibleField", "disableField", "hasChildField", "iconField"], outputs: ["onSelectionChange", "onItemClick", "onNodeClick", "onNodeExpandClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
248
+ }
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsMenuComponent, decorators: [{
250
+ type: Component,
251
+ args: [{ standalone: true, imports: [AXDrawerModule, CommonModule, RouterOutlet, AXDecoratorModule, AXTreeViewModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container class=\"ax-w-full md:ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer\n #drawer\n location=\"start\"\n mode=\"push\"\n class=\"ax-w-full ax-max-w-full md:ax-w-auto\"\n [collapsed]=\"settings.isMobile() && !!settings.activatedGroup()\"\n >\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Settings</p>\n <ax-tree-view\n #tree\n (onNodeClick)=\"settings.onChooseGroup($event)\"\n [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\"\n [items]=\"settings.formattedData()\"\n ></ax-tree-view>\n </ax-content>\n </ax-drawer>\n\n <ax-content [class.ax-hidden]=\"settings.isMobile() && !settings.activatedGroup()\">\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n" }]
252
+ }], ctorParameters: () => [] });
253
+
254
+ class AXPSettingsViewComponent {
255
+ constructor() {
256
+ this.settings = inject(AXPSettingsViewModel);
254
257
  }
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
259
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPSettingsViewComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "ax-w-full" }, ngImport: i0, template: "<div #content class=\"ax-overflow-auto ax-h-full\">\n <div\n class=\"ax-flex ax-flex-col ax-px-6 ax-pt-6 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-py-3 ax-shadow-xl'\"\n [stickyOffset]=\"12\"\n [stickyParent]=\"content\"\n >\n <div class=\"ax-flex ax-justify-between ax-items-center ax-flex-wrap ax-gap-4 ax-pt-4 ax-overflow-x-auto\">\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 <div class=\"md:ax-block ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <ax-button class=\"ax-block md:ax-hidden\" color=\"ghost\" [routerLink]=\"settings.fullRoute\">\n <ax-icon> <i class=\"fa-solid fa-chevron-left\"></i></ax-icon\n ></ax-button>\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">\n {{ settings.dataDetails()?.breadcrumb?.[0]?.title }}\n </div>\n </div>\n @if(false) {\n <div class=\"ax-text-sm ax-text-neutral-600\">description</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400 ax-flex-wrap ax-hidden md:ax-block\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item [active]=\"false\" [routerLink]=\"settings.fullRoute\">\n <i class=\"ax-me-2 ax-text-xs fa-home fa-solid\"></i>Home</ax-breadcrumbs-item\n >\n @for(b of settings.dataDetails()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"settings.fullRoute + b.name\"\n >\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <div class=\"ax-pr-1 ax-w-full md:ax-w-96 md:ax-shrink\">\n <ax-search-box>\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n </div>\n </div>\n\n <axp-widgets-container [context]=\"settings.context()\" (contextChange)=\"settings.setContext($event)\">\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md\">\n @if(settings.dataDetails()?.sections){ @for(i of settings.dataDetails()?.sections; track i.name){\n <div class=\"ax-flex ax-py-4 ax-gap-2 ax-justify-start ax-items-center\">\n <p class=\"ax-font-bold ax-text-xl\">{{ i.title }}</p>\n <p class=\"ax-grow ax-h-[1px] ax-bg-neutral-200 ax-mt-1\"></p>\n </div>\n\n @for(j of i.settings; track j.name){\n <div class=\"ax-py-3 ax-w-2/3\">\n <p class=\"ax-font-medium ax-pb-1\">{{ j.title }}</p>\n <p class=\"ax-text-neutral-400\">{{ j.description }}</p>\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n } }\n <div class=\"ax-w-full ax-gap-3 ax-px-1 ax-pb-4 ax-pt-6 ax-flex ax-justify-end ax-items-center ax-flex-wrap\">\n <ax-button\n [disabled]=\"!settings.canCancel()\"\n (onClick)=\"settings.onCancelSettings()\"\n [text]=\"'cancel' | translate | async\"\n ></ax-button>\n <ax-button\n [disabled]=\"!settings.canSave()\"\n (onClick)=\"settings.onSaveSettings()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n }@else {\n <div class=\"ax-p-3\">\n @for(group of settings.dataDetails()?.childGroups; track $index){\n <div class=\"ax-p-4\">\n <a\n [routerLink]=\"settings.fullRoute + group.name\"\n class=\"ax-text-primary-500 dark:ax-text-primary-200 ax-underline ax-font-bold ax-text-xl\"\n >{{ group.title }}</a\n >\n </div>\n }\n </div>\n }\n </div></axp-widgets-container\n >\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "directive", type: i9.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i3$3.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i3$3.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
255
260
  }
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsViewComponent, decorators: [{
262
+ type: Component,
263
+ args: [{ standalone: true, imports: [
264
+ AXPLayoutBuilderModule,
265
+ AXDecoratorModule,
266
+ AXBreadcrumbsModule,
267
+ RouterLink,
268
+ AXButtonModule,
269
+ AXTranslationModule,
270
+ AsyncPipe,
271
+ AXPStickyDirective,
272
+ AXSearchBoxModule,
273
+ ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
274
+ class: 'ax-w-full',
275
+ }, template: "<div #content class=\"ax-overflow-auto ax-h-full\">\n <div\n class=\"ax-flex ax-flex-col ax-px-6 ax-pt-6 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-py-3 ax-shadow-xl'\"\n [stickyOffset]=\"12\"\n [stickyParent]=\"content\"\n >\n <div class=\"ax-flex ax-justify-between ax-items-center ax-flex-wrap ax-gap-4 ax-pt-4 ax-overflow-x-auto\">\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 <div class=\"md:ax-block ax-flex ax-justify-start ax-items-center ax-gap-4\">\n <ax-button class=\"ax-block md:ax-hidden\" color=\"ghost\" [routerLink]=\"settings.fullRoute\">\n <ax-icon> <i class=\"fa-solid fa-chevron-left\"></i></ax-icon\n ></ax-button>\n <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">\n {{ settings.dataDetails()?.breadcrumb?.[0]?.title }}\n </div>\n </div>\n @if(false) {\n <div class=\"ax-text-sm ax-text-neutral-600\">description</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400 ax-flex-wrap ax-hidden md:ax-block\">\n <ng-template #divider>\n <i class=\"fa-solid fa-chevron-right ax-text-xs ax-mx-2\"></i>\n </ng-template>\n <ax-breadcrumbs-item [active]=\"false\" [routerLink]=\"settings.fullRoute\">\n <i class=\"ax-me-2 ax-text-xs fa-home fa-solid\"></i>Home</ax-breadcrumbs-item\n >\n @for(b of settings.dataDetails()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [routerLink]=\"settings.fullRoute + b.name\"\n >\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n <div class=\"ax-pr-1 ax-w-full md:ax-w-96 md:ax-shrink\">\n <ax-search-box>\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n </div>\n </div>\n\n <axp-widgets-container [context]=\"settings.context()\" (contextChange)=\"settings.setContext($event)\">\n <div class=\"ax-bg-surface ax-m-6 ax-px-4 ax-border ax-rounded-md\">\n @if(settings.dataDetails()?.sections){ @for(i of settings.dataDetails()?.sections; track i.name){\n <div class=\"ax-flex ax-py-4 ax-gap-2 ax-justify-start ax-items-center\">\n <p class=\"ax-font-bold ax-text-xl\">{{ i.title }}</p>\n <p class=\"ax-grow ax-h-[1px] ax-bg-neutral-200 ax-mt-1\"></p>\n </div>\n\n @for(j of i.settings; track j.name){\n <div class=\"ax-py-3 ax-w-2/3\">\n <p class=\"ax-font-medium ax-pb-1\">{{ j.title }}</p>\n <p class=\"ax-text-neutral-400\">{{ j.description }}</p>\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n } }\n <div class=\"ax-w-full ax-gap-3 ax-px-1 ax-pb-4 ax-pt-6 ax-flex ax-justify-end ax-items-center ax-flex-wrap\">\n <ax-button\n [disabled]=\"!settings.canCancel()\"\n (onClick)=\"settings.onCancelSettings()\"\n [text]=\"'cancel' | translate | async\"\n ></ax-button>\n <ax-button\n [disabled]=\"!settings.canSave()\"\n (onClick)=\"settings.onSaveSettings()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n }@else {\n <div class=\"ax-p-3\">\n @for(group of settings.dataDetails()?.childGroups; track $index){\n <div class=\"ax-p-4\">\n <a\n [routerLink]=\"settings.fullRoute + group.name\"\n class=\"ax-text-primary-500 dark:ax-text-primary-200 ax-underline ax-font-bold ax-text-xl\"\n >{{ group.title }}</a\n >\n </div>\n }\n </div>\n }\n </div></axp-widgets-container\n >\n</div>\n" }]
276
+ }] });
256
277
 
278
+ function routesFacory() {
279
+ const config = inject(AXP_ENTITY_CONFIG_TOKEN);
280
+ let routes = [
281
+ {
282
+ path: ':app/settings',
283
+ component: config.viewers.root(),
284
+ children: [
285
+ {
286
+ path: '',
287
+ component: AXPSettingsMenuComponent,
288
+ data: { reuse: true },
289
+ children: [
290
+ {
291
+ path: ':group',
292
+ component: AXPSettingsViewComponent,
293
+ },
294
+ ],
295
+ },
296
+ ],
297
+ },
298
+ {
299
+ path: 'error',
300
+ children: [
301
+ {
302
+ path: 'offline',
303
+ loadComponent: () => import('./acorex-platform-themes-default-error-offline.component-B6wSkMdd.mjs').then((c) => c.AXPErrorOfflineComponent),
304
+ },
305
+ {
306
+ path: '404',
307
+ loadComponent: () => import('./acorex-platform-themes-default-error-404.component-DSY_D3Iq.mjs').then((c) => c.AXPError404Component),
308
+ },
309
+ {
310
+ path: '401',
311
+ loadComponent: () => import('./acorex-platform-themes-default-error-401.component-D5QQ2HAv.mjs').then((c) => c.AXPError401Component),
312
+ },
313
+ ],
314
+ },
315
+ ];
316
+ return routes;
317
+ }
257
318
  class AXPDefaultThemeModule {
258
319
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDefaultThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
259
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPDefaultThemeModule, imports: [i1$2.RouterModule, AXPCommonModule,
320
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: AXPDefaultThemeModule, imports: [
321
+ // RouterModule.forChild(routes),
322
+ AXPCommonModule,
260
323
  AXPThemesSharedModule] }); }
261
324
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPDefaultThemeModule, providers: [
262
325
  {
@@ -265,23 +328,25 @@ class AXPDefaultThemeModule {
265
328
  viewers: {
266
329
  root: () => AXPRootLayoutComponent,
267
330
  master: {
268
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs')
269
- .then(c => c.AXPEntityMasterSingleViewComponent),
331
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-DHfe0Qtu.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
270
332
  ///
271
- create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs')
272
- .then(c => c.AXPEntityMasterCreateViewComponent),
333
+ create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-Bs6fn6z2.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
273
334
  ///
274
- modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs')
275
- .then(c => c.AXPEntityMasterModifyViewComponent),
335
+ modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-CWrpcOC2.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
276
336
  //
277
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs')
278
- .then(c => c.AXPEntityMasterListViewComponent)
279
- }
280
- }
281
- }
337
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-DPHXeucj.mjs').then((c) => c.AXPEntityMasterListViewComponent),
338
+ },
339
+ },
340
+ },
282
341
  },
283
- { provide: RouteReuseStrategy, useClass: AXPEntityReuseStrategy }
284
- ], imports: [RouterModule.forChild(routes),
342
+ { provide: RouteReuseStrategy, useClass: AXPEntityReuseStrategy },
343
+ {
344
+ provide: ROUTES,
345
+ multi: true,
346
+ useFactory: routesFacory,
347
+ },
348
+ ], imports: [
349
+ // RouterModule.forChild(routes),
285
350
  AXPCommonModule,
286
351
  AXPThemesSharedModule] }); }
287
352
  }
@@ -289,9 +354,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
289
354
  type: NgModule,
290
355
  args: [{
291
356
  imports: [
292
- RouterModule.forChild(routes),
357
+ // RouterModule.forChild(routes),
293
358
  AXPCommonModule,
294
- AXPThemesSharedModule
359
+ AXPThemesSharedModule,
295
360
  ],
296
361
  exports: [],
297
362
  declarations: [],
@@ -302,23 +367,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
302
367
  viewers: {
303
368
  root: () => AXPRootLayoutComponent,
304
369
  master: {
305
- single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-DNXWb6ij.mjs')
306
- .then(c => c.AXPEntityMasterSingleViewComponent),
370
+ single: () => import('./acorex-platform-themes-default-entity-master-single-view.component-DHfe0Qtu.mjs').then((c) => c.AXPEntityMasterSingleViewComponent),
307
371
  ///
308
- create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-CJY8R3sa.mjs')
309
- .then(c => c.AXPEntityMasterCreateViewComponent),
372
+ create: () => import('./acorex-platform-themes-default-entity-master-create-view.component-Bs6fn6z2.mjs').then((c) => c.AXPEntityMasterCreateViewComponent),
310
373
  ///
311
- modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-wPZPhMgy.mjs')
312
- .then(c => c.AXPEntityMasterModifyViewComponent),
374
+ modify: () => import('./acorex-platform-themes-default-entity-master-modify-view.component-CWrpcOC2.mjs').then((c) => c.AXPEntityMasterModifyViewComponent),
313
375
  //
314
- list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs')
315
- .then(c => c.AXPEntityMasterListViewComponent)
316
- }
317
- }
318
- }
376
+ list: () => import('./acorex-platform-themes-default-entity-master-list-view.component-DPHXeucj.mjs').then((c) => c.AXPEntityMasterListViewComponent),
377
+ },
378
+ },
379
+ },
380
+ },
381
+ { provide: RouteReuseStrategy, useClass: AXPEntityReuseStrategy },
382
+ {
383
+ provide: ROUTES,
384
+ multi: true,
385
+ useFactory: routesFacory,
319
386
  },
320
- { provide: RouteReuseStrategy, useClass: AXPEntityReuseStrategy }
321
- ]
387
+ ],
322
388
  }]
323
389
  }] });
324
390
 
@@ -400,9 +466,9 @@ class AXPEntityDetailListViewComponent {
400
466
  this.destroy();
401
467
  }
402
468
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityDetailListViewComponent, deps: [{ token: i1$3.AXActionSheetService }, { token: i2$1.AXUnsubscriber }], target: i0.ɵɵFactoryTarget.Component }); }
403
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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 }], 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 (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 </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)\"><ax-clear-button></ax-clear-button></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 [text]=\"(tr.title | translate | async)!\" class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\">\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 #grid [showFooter]=\"false\" class=\"ax-flex-1\" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\" (onRowDbClick)=\"handleRowDbClick($event)\">\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 [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\n <ax-command-column fixed=\"end\" [width]=\"getCommandRowItems().length * 60 + 'px'\" [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n\n } @if(dropdownRowItems().length){\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6.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: i8.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i8.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i8.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i8.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type:
469
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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 }], ngImport: i0, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span\n (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >{{ 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span\n >\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !store.isSmall()) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"(tr.title | translate | async)!\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 60 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n\n } @if(dropdownRowItems().length){\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i4$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i6$1.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXActionSheetModule }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDialogModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i6.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i8.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "rowTemplate", "emptyTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged"] }, { kind: "component", type: i8.AXRowSelectColumnComponent, selector: "ax-select-column", inputs: ["width", "caption", "fixed"] }, { kind: "component", type: i8.AXRowCommandColumnComponent, selector: "ax-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "component", type: i8.AXRowDropdownCommandColumnComponent, selector: "ax-dropdown-command-column", inputs: ["width", "caption", "fixed", "footerTemplate", "items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type:
404
470
  //
405
- AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
471
+ AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetColumnRendererComponent, selector: "axp-widget-column-renderer", inputs: ["caption", "node", "footerTemplate", "cellTemplate", "headerTemplate"] }, { kind: "ngmodule", type: AXPWidgetsModule }, { kind: "ngmodule", type: AXPAuthModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
406
472
  }
407
473
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPEntityDetailListViewComponent, decorators: [{
408
474
  type: Component,
@@ -432,7 +498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
432
498
  AXPGridLayoutDirective,
433
499
  AXPAuthModule,
434
500
  AXTranslationModule,
435
- ], standalone: true, 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 (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 </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)\"><ax-clear-button></ax-clear-button></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 [text]=\"(tr.title | translate | async)!\" class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\">\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 #grid [showFooter]=\"false\" class=\"ax-flex-1\" [paging]=\"true\" [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\" [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\" (onRowDbClick)=\"handleRowDbClick($event)\">\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 [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\n <ax-command-column fixed=\"end\" [width]=\"getCommandRowItems().length * 60 + 'px'\" [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-command-column>\n\n } @if(dropdownRowItems().length){\n <ax-dropdown-command-column fixed=\"end\" [width]=\"'60px'\" [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>" }]
501
+ ], standalone: true, template: "<div class=\"ax-flex ax-p-2\">\n <div class=\"ax-flex ax-flex-col ax-items-end ax-gap-3 ax-flex-1 ax-overflow-auto ax-min-h-72\">\n <div class=\"ax-flex ax-justify-between ax-items-center ax-w-full\">\n <div class=\"ax-flex ax-justify-between ax-items-center\">\n <div class=\"ax-flex ax-justify-start ax-items-center ax-gap-4\">\n @if(vm.hasSelectedItems()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">\n {{ vm.selectedItems().length }} {{ 't(\"itemsSelected\", { scope: \"common\" })' | translate | async }}\n </span>\n <span\n (click)=\"vm.clearSelection()\"\n class=\"ax-text-sm ax-text-primary dark:ax-text-primary-300 ax-underline ax-cursor-pointer\"\n >{{ 't(\"unselect\", { scope: \"common\" })' | translate | async }}</span\n >\n </div>\n\n } @else { @if(vm.hasInlineFilters() && !store.isSmall()) {\n <div class=\"ax-w-72\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n } }\n </div>\n </div>\n <div class=\"ax-flex ax-items-center ax-gap-3\">\n @for(tr of vm.primaryActions();track $index) {\n <ax-button [text]=\"(tr.title | translate | async)!\" [color]=\"tr.color\" (onClick)=\"vm.executeCommand(tr.name)\">\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button>\n } @if(vm.secondaryActions().length) {\n <ax-button [text]=\"store.isSmall() ? null : ('actions' | translate | async)\" color=\"ghost\">\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n @for(tr of vm.secondaryActions();track $index) {\n <ng-container>\n @if(tr.separated && !$first) {\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [text]=\"(tr.title | translate | async)!\"\n class=\"ax-font-semibold ax-text-{{ tr.color }}\"\n (onClick)=\"vm.executeCommand(tr.name)\"\n >\n <ax-prefix>\n <ax-icon [icon]=\"tr.icon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n </div>\n\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-flex-1\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n @for(col of vm.columns();track col.name) { @if(col.visible) {\n <axp-widget-column-renderer\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n } } @if(getCommandRowItems().length){\n\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems().length * 60 + 'px'\"\n [items]=\"getCommandRowItems()\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n\n } @if(dropdownRowItems().length){\n <ax-dropdown-command-column\n fixed=\"end\"\n [width]=\"'60px'\"\n [items]=\"getDropdownRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-dropdown-command-column>\n }\n </ax-data-table>\n </div>\n</div>\n" }]
436
502
  }], ctorParameters: () => [{ type: i1$3.AXActionSheetService }, { type: i2$1.AXUnsubscriber }], propDecorators: { vm: [{
437
503
  type: Input,
438
504
  args: ['viewModel']
@@ -441,179 +507,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
441
507
  args: ['grid']
442
508
  }] } });
443
509
 
444
- /**
445
- * Converts a list of AXPSettingDefinitionGroup into a tree structure of AXTreeViewSchema.
446
- * This function processes groups and their nested sub-groups, recursively creating a tree.
447
- *
448
- * @param groups - Array of top-level setting groups to be converted into tree view schema.
449
- * @param parentId - The parent ID for nested groups, passed down recursively. (Optional, default is undefined)
450
- *
451
- * @returns An array of AXTreeViewSchema representing the hierarchical structure of groups.
452
- */
453
- function convertToTreeViewSchema(groups, parentId) {
454
- // Helper function to traverse and convert a single group (and its sub-groups)
455
- const traverseGroups = (group, parent) => {
456
- const currentId = group.name;
457
- // Schema for the current group
458
- const schema = {
459
- id: currentId, // Unique identifier for the group (using group name)
460
- parentId: parent, // Parent group ID, passed down recursively
461
- text: group.title, // Display title of the group
462
- tooltip: group.description, // Optional description as tooltip
463
- hasChild: group.groups.length > 0, // Whether the group has child groups
464
- isExpanded: false, // Default state for expansion (optional)
465
- childrens: group.groups.length > 0 ? [] : undefined, // Child groups array (undefined if no children)
466
- };
467
- // Recursively process nested groups (sub-groups inside the current group)
468
- group.groups.forEach((subGroup) => {
469
- const childSchema = traverseGroups(subGroup, currentId); // Create schema for sub-group
470
- schema.childrens?.push(childSchema); // Add the child schema to the parent group's children
471
- });
472
- return schema; // Return the group schema with its children (if any)
473
- };
474
- // Initialize an array to hold the top-level groups' schemas
475
- const treeViewSchemas = [];
476
- // Process each top-level group and convert it into tree view schema
477
- groups.forEach((group) => {
478
- treeViewSchemas.push(traverseGroups(group, parentId)); // Add the schema for each group
479
- });
480
- // Return the resulting hierarchical structure
481
- return treeViewSchemas;
482
- }
483
- /**
484
- * Converts nested groups into breadcrumb-like paths.
485
- * Each path represents the hierarchy of group names leading to a specific group.
486
- *
487
- * @param groups - The input array of AXPSettingDefinitionGroup.
488
- * @param basePath - The current path prefix (optional, default is an empty array).
489
- *
490
- * @returns An array of paths where each path is an array of strings representing the breadcrumb.
491
- */
492
-
493
- class AXPSettingsMenuComponent {
494
- constructor() {
495
- this.drawerComp = viewChild('drawer');
496
- this.settingService = inject(AXPSettingDefinitionProviderService);
497
- this.activatedRoute = inject(ActivatedRoute);
498
- this.router = inject(Router);
499
- this.data = signal([]);
500
- this.formattedData = computed(() => convertToTreeViewSchema(this.data()));
501
- this.activatedRoute.params.subscribe((i) => {
502
- i?.['group'];
503
- });
504
- afterNextRender(() => {
505
- this.drawerComp()?.open();
506
- });
507
- }
508
- async ngOnInit() {
509
- await this.getData();
510
- }
511
- async getData() {
512
- this.data.set(await this.settingService.items());
513
- }
514
- onClick(item) {
515
- this.router.navigate([item.data?.['id']], { relativeTo: this.activatedRoute });
516
- }
517
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
518
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPSettingsMenuComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "drawerComp", first: true, predicate: ["drawer"], descendants: true, isSignal: true }], ngImport: i0, template: "<ax-drawer-container class=\"ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer #drawer location=\"start\" mode=\"push\" [collapsed]=\"true\">\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Settings</p>\n @if(data()){\n <ax-tree-view\n (onNodeClick)=\"onClick($event)\"\n [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\"\n [items]=\"formattedData()\"\n ></ax-tree-view>\n }\n </ax-content>\n </ax-drawer>\n\n <ax-content class=\"ax-bg-light-100 dark:ax-bg-dark-500 ax-flex ax-h-full ax-w-full ax-p-3 dark:ax-border-white/30\">\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n", dependencies: [{ kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i3$1.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "closeOthers", "collapsed"], outputs: ["locationChange", "modeChange", "collapsedChange"] }, { kind: "component", type: i3$1.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "component", type: i3$2.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "selectable", "selectionMode", "selectionBehavior", "showActiveNode", "valueField", "textField", "visibleField", "disableField", "hasChildField", "iconField"], outputs: ["onSelectionChange", "onItemClick", "onNodeClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
519
- }
520
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsMenuComponent, decorators: [{
521
- type: Component,
522
- args: [{ standalone: true, imports: [AXDrawerModule, CommonModule, RouterOutlet, AXDecoratorModule, AXTreeViewModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ax-drawer-container class=\"ax-min-w-96 ax-flex ax-items-center ax-h-[100vh-104px]\">\n <ax-drawer #drawer location=\"start\" mode=\"push\" [collapsed]=\"true\">\n <ax-content class=\"ax-flex ax-min-w-[300px] ax-flex-col ax-p-6 ax-border-r\">\n <p class=\"ax-text-xl ax-font-bold ax-pb-6\">Settings</p>\n @if(data()){\n <ax-tree-view\n (onNodeClick)=\"onClick($event)\"\n [hasChildField]=\"'hasChild'\"\n [selectable]=\"false\"\n [items]=\"formattedData()\"\n ></ax-tree-view>\n }\n </ax-content>\n </ax-drawer>\n\n <ax-content class=\"ax-bg-light-100 dark:ax-bg-dark-500 ax-flex ax-h-full ax-w-full ax-p-3 dark:ax-border-white/30\">\n <router-outlet></router-outlet>\n </ax-content>\n</ax-drawer-container>\n" }]
523
- }], ctorParameters: () => [] });
524
-
525
- class AXPSettingsPreviewComponent {
526
- setContext(value) {
527
- this.context.set(value);
528
- }
529
- constructor() {
530
- this.activatedRoute = inject(ActivatedRoute);
531
- this.router = inject(Router);
532
- this.toastService = inject(AXToastService);
533
- this.settingService = inject(AXPSettingDefinitionProviderService);
534
- this.data = signal(null);
535
- this.context = signal({});
536
- this.isSaving = signal(false);
537
- this.previousContext = signal({});
538
- this.canCancel = computed(() => this.isObjectEmpty(this.context()));
539
- this.canSave = computed(() => !this.isSaving() &&
540
- !this.isObjectEmpty(this.context()) &&
541
- !this.areObjectsEqual(this.context(), this.previousContext()));
542
- this.fullRoute = this.router.url.split('/settings')[0] + '/settings/';
543
- this.eff = effect(() => console.log(this.context()));
544
- debugger;
545
- this.activatedRoute.params.subscribe((i) => {
546
- const apiData = this.settingService.findGroupDetails(i?.['group']);
547
- // console.log(apiData);
548
- this.data.set(apiData);
549
- });
550
- }
551
- isObjectEmpty(obj) {
552
- // Check if the object has any own properties
553
- return Object.keys(obj).length === 0;
554
- }
555
- areObjectsEqual(obj1, obj2) {
556
- // Check if both are not objects or are null, compare directly
557
- if (typeof obj1 !== 'object' || typeof obj2 !== 'object' || obj1 === null || obj2 === null) {
558
- return obj1 === obj2;
559
- }
560
- // Check if the keys' lengths match
561
- const keys1 = Object.keys(obj1);
562
- const keys2 = Object.keys(obj2);
563
- if (keys1.length !== keys2.length) {
564
- return false;
565
- }
566
- // Recursively compare each key and value
567
- for (const key of keys1) {
568
- const keyTyped = key;
569
- if (!obj2.hasOwnProperty(key) || !this.areObjectsEqual(obj1[keyTyped], obj2[keyTyped])) {
570
- return false;
571
- }
572
- }
573
- return true;
574
- }
575
- onCancel() {
576
- this.context.set({});
577
- }
578
- onSave() {
579
- this.previousContext.set(this.context());
580
- //call api
581
- this.isSaving.set(true);
582
- this.toastService.show({
583
- color: 'success',
584
- title: `saved successfully`,
585
- location: 'bottom-center',
586
- closeButton: true,
587
- timeOut: 3000,
588
- timeOutProgress: false,
589
- });
590
- //simulate wait until api call is responded
591
- setTimeout(() => {
592
- this.isSaving.set(false);
593
- }, 500);
594
- }
595
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
596
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXPSettingsPreviewComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "ax-w-full" }, ngImport: i0, template: "<div #content>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n [stickyParent]=\"content\"\n >\n <div class=\"ax-flex ax-justify-between ax-items-center\">\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 <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">{{ data()?.breadcrumb?.[0]?.title }}</div>\n @if(false) {\n <div class=\"ax-text-sm ax-text-neutral-600\">description</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\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]=\"fullRoute\"> Home </ax-breadcrumbs-item>\n @for(b of data()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [class.!dark:ax-text-neutral-200]=\"last\"\n [routerLink]=\"fullRoute + b.name\"\n >\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n </div>\n </div>\n <axp-widgets-container\n class=\"ax-flex ax-flex-col ax-gap-2 ax-p-4 ax-h-full ax-w-full\"\n [context]=\"context()\"\n (contextChange)=\"setContext($event)\"\n >\n <div class=\"ax-bg-surface ax-my-5 ax-border ax-rounded-xl\">\n @if(data()?.sections){ @for(i of data()?.sections; track i.name){\n <div class=\"ax-p-2 ax-w-full\">\n <div class=\"ax-py-4 ax-px-2\">\n <span class=\"ax-font-bold ax-text-xl\">{{ i.title }}</span>\n </div>\n @for(j of i.settings; track j.name){\n <div class=\"ax-p-2\">\n <p class=\"ax-text-sm ax-pb-1 ax-pl-1\">{{ j.title }}:</p>\n <div class=\"ax-max-w-[50%]\">\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"ax-w-full ax-gap-3 ax-p-4 ax-pt-6 ax-border-t ax-flex ax-justify-end ax-items-center\">\n <ax-button [disabled]=\"canCancel()\" (onClick)=\"onCancel()\" [text]=\"'cancel' | translate | async\"></ax-button>\n <ax-button\n [disabled]=\"!canSave()\"\n (onClick)=\"onSave()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n }@else {\n <div class=\"ax-p-3\">\n @for(group of data()?.childGroups; track $index){\n <div class=\"ax-p-4\">\n <a [routerLink]=\"fullRoute + group.name\" class=\"ax-text-primary-600 ax-underline ax-font-bold ax-text-xl\">{{\n group.title\n }}</a>\n </div>\n }\n </div>\n }\n </div></axp-widgets-container\n >\n</div>\n", dependencies: [{ kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i9.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "variables", "functions"], outputs: ["onChanged", "contextChange"] }, { kind: "directive", type: i9.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i2$2.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i2$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$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i10.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
597
- }
598
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXPSettingsPreviewComponent, decorators: [{
599
- type: Component,
600
- args: [{ standalone: true, imports: [
601
- AXPLayoutBuilderModule,
602
- AXDecoratorModule,
603
- AXBreadcrumbsModule,
604
- RouterLink,
605
- AXButtonModule,
606
- AXTranslationModule,
607
- AsyncPipe,
608
- AXPStickyDirective,
609
- ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
610
- class: 'ax-w-full',
611
- }, template: "<div #content>\n <div\n class=\"ax-flex ax-flex-col ax-pt-4 ax-sticky ax-top-0 ax-z-10 ax-transition-all\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'ax-bg-surface ax-px-6 ax-py-3 ax-mx-6 ax-shadow-xl'\"\n [stickyOffset]=\"30\"\n [stickyParent]=\"content\"\n >\n <div class=\"ax-flex ax-justify-between ax-items-center\">\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 <div class=\"ax-text-xl md:ax-text-2xl ax-font-bold\">{{ data()?.breadcrumb?.[0]?.title }}</div>\n @if(false) {\n <div class=\"ax-text-sm ax-text-neutral-600\">description</div>\n }\n <ax-breadcrumbs class=\"child:ax-font-normal child:ax-text-neutral-400\">\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]=\"fullRoute\"> Home </ax-breadcrumbs-item>\n @for(b of data()?.breadcrumb;track $index;let last=$last) {\n <ax-breadcrumbs-item\n [active]=\"last\"\n [class.!ax-font-semibold]=\"last\"\n [class.!ax-text-neutral-600]=\"last\"\n [class.!dark:ax-text-neutral-200]=\"last\"\n [routerLink]=\"fullRoute + b.name\"\n >\n {{ b.title }}\n </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs>\n </div>\n </div>\n </div>\n </div>\n <axp-widgets-container\n class=\"ax-flex ax-flex-col ax-gap-2 ax-p-4 ax-h-full ax-w-full\"\n [context]=\"context()\"\n (contextChange)=\"setContext($event)\"\n >\n <div class=\"ax-bg-surface ax-my-5 ax-border ax-rounded-xl\">\n @if(data()?.sections){ @for(i of data()?.sections; track i.name){\n <div class=\"ax-p-2 ax-w-full\">\n <div class=\"ax-py-4 ax-px-2\">\n <span class=\"ax-font-bold ax-text-xl\">{{ i.title }}</span>\n </div>\n @for(j of i.settings; track j.name){\n <div class=\"ax-p-2\">\n <p class=\"ax-text-sm ax-pb-1 ax-pl-1\">{{ j.title }}:</p>\n <div class=\"ax-max-w-[50%]\">\n <ng-container axp-widget-renderer [node]=\"j.widget\" [mode]=\"'edit'\"> </ng-container>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"ax-w-full ax-gap-3 ax-p-4 ax-pt-6 ax-border-t ax-flex ax-justify-end ax-items-center\">\n <ax-button [disabled]=\"canCancel()\" (onClick)=\"onCancel()\" [text]=\"'cancel' | translate | async\"></ax-button>\n <ax-button\n [disabled]=\"!canSave()\"\n (onClick)=\"onSave()\"\n color=\"primary\"\n [text]=\"'save-changes' | translate | async\"\n ></ax-button>\n </div>\n }@else {\n <div class=\"ax-p-3\">\n @for(group of data()?.childGroups; track $index){\n <div class=\"ax-p-4\">\n <a [routerLink]=\"fullRoute + group.name\" class=\"ax-text-primary-600 ax-underline ax-font-bold ax-text-xl\">{{\n group.title\n }}</a>\n </div>\n }\n </div>\n }\n </div></axp-widgets-container\n >\n</div>\n" }]
612
- }], ctorParameters: () => [] });
613
-
614
510
  /**
615
511
  * Generated bundle index. Do not edit.
616
512
  */
617
513
 
618
- export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPSettingsMenuComponent, AXPSettingsPreviewComponent };
514
+ export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPSettingsMenuComponent, AXPSettingsViewComponent };
619
515
  //# sourceMappingURL=acorex-platform-themes-default.mjs.map