@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.
- package/esm2022/common/lib/layout/sticky.directive.mjs +15 -11
- package/esm2022/layout/builder/lib/builder/widget-column-renderer.mjs +22 -11
- package/esm2022/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.mjs +27 -32
- package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +33 -8
- package/esm2022/layout/entity/lib/entity.module.mjs +1 -17
- package/esm2022/layout/entity/lib/index.mjs +5 -4
- package/esm2022/layout/setting/lib/convert-setting-data.mjs +59 -0
- package/esm2022/layout/setting/lib/setting.viewmodel.mjs +123 -41
- package/esm2022/layouts/lib/admin/entity-layout/entity-list-view/entity-list-view.component.mjs +3 -3
- package/esm2022/themes/default/lib/default.module.mjs +83 -39
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +18 -18
- package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.mjs +18 -8
- package/esm2022/themes/default/lib/layouts/root-layout/components/menu/root-menu.component.mjs +1 -1
- package/esm2022/themes/default/lib/layouts/setting-layout/index.mjs +3 -3
- package/esm2022/themes/default/lib/layouts/setting-layout/setting-menu/setting-menu.component.mjs +28 -0
- package/esm2022/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.mjs +42 -0
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.mjs +2 -2
- package/esm2022/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.mjs +3 -2
- package/esm2022/workflow/lib/workflow.service.mjs +1 -1
- package/fesm2022/acorex-platform-common.mjs +13 -9
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +18 -7
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +25 -30
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +842 -833
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-setting.mjs +180 -40
- package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
- package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
- 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
- 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
- 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
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DPHXeucj.mjs.map +1 -0
- 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
- 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
- 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
- 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
- package/fesm2022/acorex-platform-themes-default.mjs +153 -257
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +3 -2
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/lib/builder/widget-column-renderer.d.ts +1 -1
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +6 -2
- package/layout/entity/lib/index.d.ts +4 -3
- package/layout/setting/README.md +2 -3
- package/{themes/default/lib/layouts/setting-layout → layout/setting/lib}/convert-setting-data.d.ts +6 -6
- package/layout/setting/lib/setting.viewmodel.d.ts +35 -9
- package/package.json +7 -7
- package/themes/default/lib/default.module.d.ts +3 -4
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +3 -0
- package/themes/default/lib/layouts/setting-layout/index.d.ts +2 -2
- package/themes/default/lib/layouts/setting-layout/setting-menu/setting-menu.component.d.ts +12 -0
- package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +7 -0
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +1 -2
- package/workflow/lib/workflow.service.d.ts +1 -1
- package/esm2022/themes/default/lib/layout.routes.mjs +0 -20
- package/esm2022/themes/default/lib/layouts/setting-layout/convert-setting-data.mjs +0 -49
- package/esm2022/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.mjs +0 -104
- package/esm2022/themes/default/lib/layouts/setting-layout/setting-view/setting-menu.component.mjs +0 -44
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C6zgLyry.mjs.map +0 -1
- package/themes/default/lib/layout.routes.d.ts +0 -2
- package/themes/default/lib/layouts/setting-layout/setting-preview/setting-preview.component.d.ts +0 -24
- 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,
|
|
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
|
|
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
|
|
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
|
-
|
|
58
|
-
{
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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:
|
|
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
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
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
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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: [
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
278
|
-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
315
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
|
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,
|
|
514
|
+
export { AXPAdminRootLayoutModule, AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPSettingsMenuComponent, AXPSettingsViewComponent };
|
|
619
515
|
//# sourceMappingURL=acorex-platform-themes-default.mjs.map
|