@acorex/platform 20.0.6 → 20.0.8
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/auth/index.d.ts +37 -32
- package/common/index.d.ts +2 -2
- package/core/index.d.ts +4 -0
- package/domain/index.d.ts +2034 -2
- package/fesm2022/acorex-platform-auth.mjs +57 -21
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +92 -92
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +54 -42
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +3320 -7
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +172 -168
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +103 -83
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +72 -72
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +94 -96
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +340 -104
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +45 -43
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-create-entity-view.component-BxYe1IlE.mjs → acorex-platform-themes-default-create-entity-view.component-DyVB3PZT.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-create-entity-view.component-BxYe1IlE.mjs.map → acorex-platform-themes-default-create-entity-view.component-DyVB3PZT.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-CzSqhYfE.mjs → acorex-platform-themes-default-entity-master-create-view.component-CsWVOu-r.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-CzSqhYfE.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-CsWVOu-r.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-BxdQ5JWS.mjs → acorex-platform-themes-default-entity-master-list-view.component-DgyzWR29.mjs} +20 -20
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DgyzWR29.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-12xcM8FJ.mjs → acorex-platform-themes-default-entity-master-modify-view.component-gJap_TBH.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-12xcM8FJ.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-gJap_TBH.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component--tn_1mKA.mjs → acorex-platform-themes-default-entity-master-single-view.component-BUNm9JV5.mjs} +7 -7
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component--tn_1mKA.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-BUNm9JV5.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-401.component-8QfQ3hNo.mjs → acorex-platform-themes-default-error-401.component-DP3msj3d.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-401.component-8QfQ3hNo.mjs.map → acorex-platform-themes-default-error-401.component-DP3msj3d.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-404.component-D9npA9_W.mjs → acorex-platform-themes-default-error-404.component-uvBHGbHY.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-404.component-D9npA9_W.mjs.map → acorex-platform-themes-default-error-404.component-uvBHGbHY.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BQpVnLzt.mjs → acorex-platform-themes-default-error-offline.component-CdXIik4U.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BQpVnLzt.mjs.map → acorex-platform-themes-default-error-offline.component-CdXIik4U.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +469 -51
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +22 -23
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BIZkWv8q.mjs → acorex-platform-widgets-button-widget-designer.component-CgUkYMwV.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BIZkWv8q.mjs.map → acorex-platform-widgets-button-widget-designer.component-CgUkYMwV.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-MjSzOXIJ.mjs → acorex-platform-widgets-checkbox-widget-column.component-Dn0U56O7.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-MjSzOXIJ.mjs.map → acorex-platform-widgets-checkbox-widget-column.component-Dn0U56O7.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-BuU7nJ6u.mjs → acorex-platform-widgets-checkbox-widget-designer.component-BD0-kCi0.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-BuU7nJ6u.mjs.map → acorex-platform-widgets-checkbox-widget-designer.component-BD0-kCi0.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-BgrIeNW0.mjs → acorex-platform-widgets-checkbox-widget-view.component-CzCWGDil.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-BgrIeNW0.mjs.map → acorex-platform-widgets-checkbox-widget-view.component-CzCWGDil.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-BTxAgvMQ.mjs → acorex-platform-widgets-color-box-widget-designer.component-BSRAHIPQ.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-BTxAgvMQ.mjs.map → acorex-platform-widgets-color-box-widget-designer.component-BSRAHIPQ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-DCUfKMJ6.mjs → acorex-platform-widgets-contact-widget-filter.component-CtCAgeH9.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-DCUfKMJ6.mjs.map → acorex-platform-widgets-contact-widget-filter.component-CtCAgeH9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-yqqPJMg2.mjs → acorex-platform-widgets-file-list-popup.component-hyJf0xT2.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-yqqPJMg2.mjs.map → acorex-platform-widgets-file-list-popup.component-hyJf0xT2.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets-file-rename-popup.component-BSm6Qew2.mjs +211 -0
- package/fesm2022/acorex-platform-widgets-file-rename-popup.component-BSm6Qew2.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-Dwts3at7.mjs → acorex-platform-widgets-page-widget-designer.component-Dlu4Tkou.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-Dwts3at7.mjs.map → acorex-platform-widgets-page-widget-designer.component-Dlu4Tkou.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-Bk20MsqK.mjs → acorex-platform-widgets-rich-text-popup.component-DB2IMaLw.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-Bk20MsqK.mjs.map → acorex-platform-widgets-rich-text-popup.component-DB2IMaLw.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-2srL34Aq.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-CBOUSkL4.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-2srL34Aq.mjs.map → acorex-platform-widgets-tabular-data-edit-popup.component-CBOUSkL4.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-D9654sA3.mjs → acorex-platform-widgets-tabular-data-view-popup.component-Dl5U2HFR.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-D9654sA3.mjs.map → acorex-platform-widgets-tabular-data-view-popup.component-Dl5U2HFR.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-C1VgsL1j.mjs → acorex-platform-widgets-text-block-widget-designer.component-CG_2APU3.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-C1VgsL1j.mjs.map → acorex-platform-widgets-text-block-widget-designer.component-CG_2APU3.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +884 -677
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +25 -25
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/index.d.ts +17 -10
- package/layout/components/index.d.ts +3 -0
- package/layout/views/index.d.ts +83 -24
- package/package.json +1 -1
- package/widgets/index.d.ts +15 -7
- package/domain/README.md +0 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BxdQ5JWS.mjs.map +0 -1
|
@@ -13,12 +13,12 @@ import * as i5 from '@acorex/components/dropdown';
|
|
|
13
13
|
import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
14
14
|
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
|
15
15
|
import * as i8 from '@acorex/platform/layout/components';
|
|
16
|
-
import { AXPComponentSlotModule, AXPThemeLayoutBlockComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutContainerComponent } from '@acorex/platform/layout/components';
|
|
16
|
+
import { AXPComponentSlotModule, AXPThemeLayoutBlockComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutStartSideComponent } from '@acorex/platform/layout/components';
|
|
17
17
|
import { AXPStickyDirective, AXPHomePageService } from '@acorex/platform/common';
|
|
18
18
|
import * as i1 from '@acorex/cdk/drawer';
|
|
19
19
|
import { AXDrawerDirectiveModule, AXDrawerContainerDirective } from '@acorex/cdk/drawer';
|
|
20
20
|
import { AXDrawerModule } from '@acorex/components/drawer';
|
|
21
|
-
import * as
|
|
21
|
+
import * as i4$1 from '@acorex/core/translation';
|
|
22
22
|
import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
|
|
23
23
|
import { AXPLayoutThemeService } from '@acorex/platform/themes/shared';
|
|
24
24
|
import { AXPWorkflowService } from '@acorex/platform/workflow';
|
|
@@ -29,17 +29,20 @@ import { AXPSessionService } from '@acorex/platform/auth';
|
|
|
29
29
|
import { isNil, isEmpty, isEqual, cloneDeep } from 'lodash-es';
|
|
30
30
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
31
31
|
import { cleanDeep, getSmart, AXPExpressionEvaluatorService } from '@acorex/platform/core';
|
|
32
|
-
import * as
|
|
32
|
+
import * as i7 from '@acorex/platform/layout/builder';
|
|
33
33
|
import { AXPPageStatus, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
|
34
|
+
import { Router, ActivatedRoute } from '@angular/router';
|
|
34
35
|
import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
|
|
35
|
-
import {
|
|
36
|
+
import { AXBadgeModule } from '@acorex/components/badge';
|
|
36
37
|
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
|
37
|
-
import * as i4$1 from '@acorex/components/loading';
|
|
38
38
|
import { AXLoadingModule } from '@acorex/components/loading';
|
|
39
|
-
import {
|
|
39
|
+
import { AXMenuModule } from '@acorex/components/menu';
|
|
40
40
|
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
41
|
-
import { AXFileModule } from '@acorex/core/file';
|
|
42
41
|
import { AXDateTimeModule } from '@acorex/core/date-time';
|
|
42
|
+
import { AXFileModule } from '@acorex/core/file';
|
|
43
|
+
import { AXResizableDirective } from '@acorex/cdk/resizable';
|
|
44
|
+
import * as i6$1 from '@acorex/components/tabs';
|
|
45
|
+
import { AXTabsModule } from '@acorex/components/tabs';
|
|
43
46
|
|
|
44
47
|
class AXPPageLayoutBase {
|
|
45
48
|
}
|
|
@@ -104,14 +107,14 @@ class AXPPageLayoutComponent {
|
|
|
104
107
|
event.stopPropagation();
|
|
105
108
|
this.startSideDrawer()?.hide();
|
|
106
109
|
}
|
|
107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.
|
|
108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: AXPPageLayoutComponent, isStandalone: true, selector: "axp-page-layout", providers: [], viewQueries: [{ propertyName: "startSideDrawer", first: true, predicate: ["startSideDrawer"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.AXDrawerContainerDirective }], ngImport: i0, template: "<div\n [mode]=\"layoutService.isSmall() ? 'overlay' : 'push'\"\n [transition]=\"250\"\n axDrawerItem\n [backDrop]=\"true\"\n (onBackdropClick)=\"handleBackdropClick($event)\"\n #startSideDrawer=\"axDrawerItem\"\n [backdropClass]=\"'ax-bg-darkest/75'\"\n [collapsed]=\"layoutService.isSmall()\"\n drawerLocation=\"start\"\n class=\"ax-z-50 ax-h-full\"\n>\n <ng-content select=\"axp-layout-start-side\"></ng-content>\n</div>\n<axp-layout-container id=\"axp-page-layout\" #container>\n <axp-layout-header\n *translate=\"let t\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'axp-is-sticky'\"\n [stickyOffset]=\"50\"\n [stickyParent]=\"container.hostElement\"\n >\n @if (page?.hasBackButton() && layoutService.isSmall()) {\n <ax-button\n [look]=\"'blank'\"\n class=\"ax-sm ax-w-fit ax-ms-1\"\n color=\"secondary\"\n (click)=\"page?.onBackButtonClick()\"\n [text]=\"page?.backButton()?.title\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-chevron-left rtl:ax-rotate-180\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n <!-------- Begin Title Bar -------->\n <axp-layout-title-bar>\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-flex-col ax-transition\">\n <!-- Breadcrumbs -->\n @if (page?.hasBreadcrumbs() && !layoutService.isSmall()) {\n <ax-breadcrumbs class=\"ax-mb-1\">\n @for (item of page?.breadcrumbs(); track $index) {\n <ax-breadcrumbs-item [active]=\"$last\" (click)=\"item.command ? execute(item.command) : null\">\n @if (item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n {{ t(item.title) | async }}\n </ax-breadcrumbs-item>\n }\n <ng-template #divider>\n <i class=\"fa-regular fa-chevron-right rtl:ax-rotate-180 fa-sm\"></i>\n </ng-template>\n </ax-breadcrumbs>\n }\n <div class=\"__title-container\">\n <!-- Title -->\n @if (page?.hasTitle()) {\n <axp-layout-title> {{ t(page?.title()) | async }}</axp-layout-title>\n }\n <!-- Title Actions -->\n @if (page?.hasTitleActions()) {\n <ax-button [look]=\"'blank'\" class=\"ax-sm -ax-mx-2\">\n <ax-prefix>\n <i class=\"fa-solid fa-caret-down fa-fw\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (sub of page?.titleActions(); track $index) {\n <ng-container>\n <ax-button-item\n [text]=\"(t(sub.title) | async)!\"\n [color]=\"sub.color\"\n [disabled]=\"sub.disabled\"\n (onClick)=\"handleActionClick(sub)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ sub.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (sub.break) {\n <ax-divider></ax-divider>\n }\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Description -->\n @if (page?.hasDescription()) {\n <axp-layout-description> {{ t(page?.description()) | async }}</axp-layout-description>\n }\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-------- Page Actions -------->\n\n <axp-layout-actions class=\"ax-shrink-0\">\n <axp-component-slot name=\"page-header-actions\"></axp-component-slot>\n <!--Primary Actions -->\n @if (page?.hasPrimaryActions()) {\n <!-- items -->\n @for (item of page?.primaryMenuItems(); track $index) {\n @if (item.visible != false) {\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [disabled]=\"item.disabled\"\n [text]=\"(t(item.title) | async)!\"\n [look]=\"'solid'\"\n [color]=\"item.color\"\n (onClick)=\"handleActionClick(item)\"\n >\n <ax-prefix>\n <i class=\"{{ item.icon }}\"></i>\n </ax-prefix>\n @if (item?.items) {\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (sub of item?.items; track $index) {\n @if (sub.visible != false) {\n <ax-button-item\n [text]=\"(t(sub.title) | async)!\"\n [color]=\"sub.color\"\n [disabled]=\"sub.disabled\"\n (onClick)=\"handleActionClick(sub)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ sub.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (sub.break) {\n <ax-divider></ax-divider>\n }\n }\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n }\n </ax-button>\n }\n }\n }\n <!-- Secondary Actions -->\n @if (page?.hasSecondaryActions()) {\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [text]=\"t('actions') | async\"\n [look]=\"layoutService.isSmall() ? 'blank' : 'solid'\"\n [color]=\"'default'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (item of page?.secondaryMenuItems(); track $index) {\n @if (item.visible != false) {\n <ax-button-item\n [text]=\"(t(item.title) | async)!\"\n [color]=\"item.color\"\n [disabled]=\"item.disabled\"\n (onClick)=\"handleSecondaryActionClick(item)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-layout-actions>\n <!-- Finish Page Actions -->\n </axp-layout-title-bar>\n <!----- Finish Title Bar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n @if (!sticky.isSticky) {}\n <ng-content select=\"axp-page-toolbar\"></ng-content>\n <!-- Finish Navbar -->\n </axp-layout-header>\n <ng-content select=\"axp-page-content\"></ng-content>\n\n <axp-page-footer-container\n [ngStyle]=\"{ display: tt.isEmpty() && prefixSlot.isEmpty() && suffixSlot.isEmpty() ? 'none' : 'block' }\"\n >\n <axp-layout-container #tt>\n <ng-content select=\"axp-page-footer\"></ng-content>\n </axp-layout-container>\n <axp-page-footer>\n <axp-layout-prefix>\n <axp-component-slot name=\"page-footer-start\" #prefixSlot=\"slot\"></axp-component-slot>\n </axp-layout-prefix>\n <axp-layout-suffix>\n <axp-component-slot name=\"page-footer-end\" #suffixSlot=\"slot\"></axp-component-slot>\n </axp-layout-suffix>\n </axp-page-footer>\n </axp-page-footer-container>\n</axp-layout-container>\n", styles: ["axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-layout-sections axp-layout-section:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-layout-sections axp-layout-section>axp-layout-footer:is(.ax-dark *),axp-layout-sections axp-layout-section>axp-layout-header:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem;opacity:0;animation:fadeInDown .5s ease-out forwards}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-page-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side,axp-page-layout axp-layout-end-side{display:flex;min-height:100%;min-width:16rem;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side axp-layout-header,axp-page-layout axp-layout-end-side axp-layout-header{display:flex;flex-direction:column;gap:.5rem;padding:1rem}axp-page-layout axp-layout-start-side axp-layout-header>axp-layout-title,axp-page-layout axp-layout-end-side axp-layout-header>axp-layout-title{font-size:1.125rem;line-height:1.75rem;font-weight:500}axp-page-layout axp-layout-start-side>axp-layout-content,axp-page-layout axp-layout-end-side>axp-layout-content{flex:1 1 0%}axp-page-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-page-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-page-layout>axp-layout-container>axp-layout-header.axp-is-sticky{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item{font-size:.75rem;line-height:1rem}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item.ax-state-active .ax-breadcrumb-item-content{cursor:default;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1));opacity:.75}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{display:flex;width:100%;align-items:center;justify-content:space-between;padding-left:1rem;padding-right:1rem}@media (min-width: 1280px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{border-width:0px}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar ax-layout-nav-button{display:flex;align-items:center;justify-content:space-between}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container{display:flex;align-items:center;gap:.75rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{width:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;line-height:1.75rem;font-weight:500;line-height:1.625}@media (min-width: 1024px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-page-layout>axp-layout-container>axp-layout-header axp-page-toolbar{margin-top:.5rem;padding-left:1rem;padding-right:1rem}axp-page-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column;padding:.75rem 1rem}axp-page-layout>axp-layout-container>axp-page-content.--scrollable{padding-bottom:1rem}axp-page-layout>axp-layout-container>axp-page-footer-container{border-top-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container{position:-webkit-sticky;position:sticky;bottom:0;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-page-layout>axp-layout-container>axp-page-footer-container.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type:
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPPageLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
111
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AXPPageLayoutComponent, isStandalone: true, selector: "axp-page-layout", providers: [], viewQueries: [{ propertyName: "startSideDrawer", first: true, predicate: ["startSideDrawer"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.AXDrawerContainerDirective }], ngImport: i0, template: "<div\n [mode]=\"layoutService.isSmall() ? 'overlay' : 'push'\"\n [transition]=\"250\"\n axDrawerItem\n [backDrop]=\"true\"\n (onBackdropClick)=\"handleBackdropClick($event)\"\n #startSideDrawer=\"axDrawerItem\"\n [backdropClass]=\"'ax-bg-darkest/75'\"\n [collapsed]=\"layoutService.isSmall()\"\n drawerLocation=\"start\"\n class=\"ax-z-50 ax-h-full\"\n>\n <ng-content select=\"axp-layout-start-side\"></ng-content>\n</div>\n<axp-layout-container id=\"axp-page-layout\" #container>\n <axp-layout-header\n *translate=\"let t\"\n #sticky=\"axpSticky\"\n [axpSticky]=\"'axp-is-sticky'\"\n [stickyOffset]=\"50\"\n [stickyParent]=\"container.hostElement\"\n >\n @if (page?.hasBackButton() && layoutService.isSmall()) {\n <ax-button\n [look]=\"'blank'\"\n class=\"ax-sm ax-w-fit ax-ms-1\"\n color=\"secondary\"\n (click)=\"page?.onBackButtonClick()\"\n [text]=\"page?.backButton()?.title\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-chevron-left rtl:ax-rotate-180\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n <!-------- Begin Title Bar -------->\n <axp-layout-title-bar>\n <!-------- Begin Title -------->\n <div class=\"ax-flex ax-flex-col ax-transition\">\n <!-- Breadcrumbs -->\n @if (page?.hasBreadcrumbs() && !layoutService.isSmall()) {\n <ax-breadcrumbs class=\"ax-mb-1\">\n @for (item of page?.breadcrumbs(); track $index) {\n <ax-breadcrumbs-item [active]=\"$last\" (click)=\"item.command ? execute(item.command) : null\">\n @if (item.icon) {\n <i [class]=\"item.icon\"></i>\n }\n {{ t(item.title) | async }}\n </ax-breadcrumbs-item>\n }\n <ng-template #divider>\n <i class=\"fa-regular fa-chevron-right rtl:ax-rotate-180 fa-sm\"></i>\n </ng-template>\n </ax-breadcrumbs>\n }\n <div class=\"__title-container\">\n <!-- Title -->\n @if (page?.hasTitle()) {\n <axp-layout-title> {{ t(page?.title()) | async }}</axp-layout-title>\n }\n <!-- Title Actions -->\n @if (page?.hasTitleActions()) {\n <ax-button [look]=\"'blank'\" class=\"ax-sm -ax-mx-2\">\n <ax-prefix>\n <i class=\"fa-solid fa-caret-down fa-fw\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (sub of page?.titleActions(); track $index) {\n <ng-container>\n <ax-button-item\n [text]=\"(t(sub.title) | async)!\"\n [color]=\"sub.color\"\n [disabled]=\"sub.disabled\"\n (onClick)=\"handleActionClick(sub)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ sub.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (sub.break) {\n <ax-divider></ax-divider>\n }\n </ng-container>\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </div>\n <!-- Description -->\n @if (page?.hasDescription()) {\n <axp-layout-description> {{ t(page?.description()) | async }}</axp-layout-description>\n }\n </div>\n <!-------- Finish Title -------->\n <!--------------------------------------------------------------->\n <!-------- Page Actions -------->\n\n <axp-layout-actions class=\"ax-shrink-0\">\n <axp-component-slot name=\"page-header-actions\"></axp-component-slot>\n <!--Primary Actions -->\n @if (page?.hasPrimaryActions()) {\n <!-- items -->\n @for (item of page?.primaryMenuItems(); track $index) {\n @if (item.visible != false) {\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [disabled]=\"item.disabled\"\n [text]=\"(t(item.title) | async)!\"\n [look]=\"'solid'\"\n [color]=\"item.color\"\n (onClick)=\"handleActionClick(item)\"\n >\n <ax-prefix>\n <i class=\"{{ item.icon }}\"></i>\n </ax-prefix>\n @if (item?.items) {\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (sub of item?.items; track $index) {\n @if (sub.visible != false) {\n <ax-button-item\n [text]=\"(t(sub.title) | async)!\"\n [color]=\"sub.color\"\n [disabled]=\"sub.disabled\"\n (onClick)=\"handleActionClick(sub)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ sub.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (sub.break) {\n <ax-divider></ax-divider>\n }\n }\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n }\n </ax-button>\n }\n }\n }\n <!-- Secondary Actions -->\n @if (page?.hasSecondaryActions()) {\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [text]=\"t('actions') | async\"\n [look]=\"layoutService.isSmall() ? 'blank' : 'solid'\"\n [color]=\"'default'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (item of page?.secondaryMenuItems(); track $index) {\n @if (item.visible != false) {\n <ax-button-item\n [text]=\"(t(item.title) | async)!\"\n [color]=\"item.color\"\n [disabled]=\"item.disabled\"\n (onClick)=\"handleSecondaryActionClick(item)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n </axp-layout-actions>\n <!-- Finish Page Actions -->\n </axp-layout-title-bar>\n <!----- Finish Title Bar ----->\n <!--------------------------------------------------------------->\n <!-- Begin Navbar -->\n @if (!sticky.isSticky) {}\n <ng-content select=\"axp-page-toolbar\"></ng-content>\n <!-- Finish Navbar -->\n </axp-layout-header>\n <ng-content select=\"axp-page-content\"></ng-content>\n\n <axp-page-footer-container\n [ngStyle]=\"{ display: tt.isEmpty() && prefixSlot.isEmpty() && suffixSlot.isEmpty() ? 'none' : 'block' }\"\n >\n <axp-layout-container #tt>\n <ng-content select=\"axp-page-footer\"></ng-content>\n </axp-layout-container>\n <axp-page-footer>\n <axp-layout-prefix>\n <axp-component-slot name=\"page-footer-start\" #prefixSlot=\"slot\"></axp-component-slot>\n </axp-layout-prefix>\n <axp-layout-suffix>\n <axp-component-slot name=\"page-footer-end\" #suffixSlot=\"slot\"></axp-component-slot>\n </axp-layout-suffix>\n </axp-page-footer>\n </axp-page-footer-container>\n</axp-layout-container>\n", styles: ["axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-layout-sections axp-layout-section:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-layout-sections axp-layout-section>axp-layout-footer:is(.ax-dark *),axp-layout-sections axp-layout-section>axp-layout-header:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem;opacity:0;animation:fadeInDown .5s ease-out forwards}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-page-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side,axp-page-layout axp-layout-end-side{display:flex;min-height:100%;min-width:16rem;flex-direction:column;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout axp-layout-start-side axp-layout-header,axp-page-layout axp-layout-end-side axp-layout-header{display:flex;flex-direction:column;gap:.5rem;padding:1rem}axp-page-layout axp-layout-start-side axp-layout-header>axp-layout-title,axp-page-layout axp-layout-end-side axp-layout-header>axp-layout-title{font-size:1.125rem;line-height:1.75rem;font-weight:500}axp-page-layout axp-layout-start-side>axp-layout-content,axp-page-layout axp-layout-end-side>axp-layout-content{flex:1 1 0%}axp-page-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-layout-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-page-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-page-layout>axp-layout-container>axp-layout-header.axp-is-sticky{--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item{font-size:.75rem;line-height:1rem}axp-page-layout>axp-layout-container>axp-layout-header ax-breadcrumbs ax-breadcrumbs-item.ax-state-active .ax-breadcrumb-item-content{cursor:default;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1));opacity:.75}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{display:flex;width:100%;align-items:center;justify-content:space-between;padding-left:1rem;padding-right:1rem}@media (min-width: 1280px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar{border-width:0px}}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar ax-layout-nav-button{display:flex;align-items:center;justify-content:space-between}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container{display:flex;align-items:center;gap:.75rem}axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{width:fit-content;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.25rem;line-height:1.75rem;font-weight:500;line-height:1.625}@media (min-width: 1024px){axp-page-layout>axp-layout-container>axp-layout-header axp-layout-title-bar .__title-container axp-layout-title{font-size:1.5rem;line-height:2rem}}axp-page-layout>axp-layout-container>axp-layout-header axp-page-toolbar{margin-top:.5rem;padding-left:1rem;padding-right:1rem}axp-page-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column;padding:.75rem 1rem}axp-page-layout>axp-layout-container>axp-page-content.--scrollable{padding-bottom:1rem}axp-page-layout>axp-layout-container>axp-page-footer-container{border-top-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-page-layout>axp-layout-container>axp-page-footer-container{position:-webkit-sticky;position:sticky;bottom:0;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-page-layout>axp-layout-container>axp-page-footer-container.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type:
|
|
109
112
|
//
|
|
110
|
-
AXCommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i4.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i4.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i5.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i6.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i6.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type:
|
|
113
|
+
AXCommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i4.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i4.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i5.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i6.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i6.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i4$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDrawerDirectiveModule }, { kind: "directive", type: i1.AXDrawerItemDirective, selector: "[axDrawerItem]", inputs: ["location", "collapsed", "backDrop", "mode", "transition", "closeOnBackdropClick", "backdropClass"], outputs: ["collapseStateChanged", "locationChange", "collapsedChange", "backDropChange", "modeChange", "transitionChange", "closeOnBackdropClickChange", "backdropClassChange", "onBackdropClick"], exportAs: ["axDrawerItem"] }, { kind: "ngmodule", type:
|
|
111
114
|
//
|
|
112
115
|
AXPComponentSlotModule }, { kind: "directive", type: i8.AXPComponentSlotDirective, selector: "axp-component-slot", inputs: ["name", "host", "context"], exportAs: ["slot"] }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutActionsComponent, selector: "axp-layout-actions" }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }, { kind: "directive", type: AXPStickyDirective, selector: "[axpSticky]", inputs: ["axpSticky", "stickyOffset", "stickyParent", "stickyTarget"], outputs: ["isStickyChange"], exportAs: ["axpSticky"] }, { kind: "component", type: AXPThemeLayoutContainerComponent, selector: "axp-layout-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
113
116
|
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPPageLayoutComponent, decorators: [{
|
|
115
118
|
type: Component,
|
|
116
119
|
args: [{ standalone: true, imports: [
|
|
117
120
|
CommonModule,
|
|
@@ -272,10 +275,10 @@ class AXPPageLayoutBaseComponent {
|
|
|
272
275
|
this.layout();
|
|
273
276
|
}
|
|
274
277
|
onBackButtonClick() { }
|
|
275
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.
|
|
276
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.
|
|
278
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPPageLayoutBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
279
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: AXPPageLayoutBaseComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "layout", first: true, predicate: AXPPageLayoutComponent, descendants: true, isSignal: true }], ngImport: i0, template: '', isInline: true }); }
|
|
277
280
|
}
|
|
278
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.
|
|
281
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPPageLayoutBaseComponent, decorators: [{
|
|
279
282
|
type: Component,
|
|
280
283
|
args: [{
|
|
281
284
|
standalone: true,
|
|
@@ -323,14 +326,14 @@ class AXPPopupLayoutComponent {
|
|
|
323
326
|
e.component.hide();
|
|
324
327
|
return false;
|
|
325
328
|
}
|
|
326
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.
|
|
327
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.
|
|
329
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPPopupLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
330
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AXPPopupLayoutComponent, isStandalone: true, selector: "axp-popup-layout", ngImport: i0, template: "<axp-layout-container id=\"axp-popup-layout\" #container>\n <ng-content select=\"axp-page-content\"></ng-content>\n <axp-page-footer *translate=\"let t\">\n <ax-prefix> </ax-prefix>\n @if(popup.hasPrimaryActions()) {\n <ax-suffix>\n @for(item of popup.primaryMenuItems(); track $index) {\n <ax-button\n [text]=\"(t(item.title) | async)!\"\n [look]=\"'solid'\"\n [color]=\"item.color\"\n (onClick)=\"handleActionClick(item)\"\n >\n <ax-prefix>\n <i class=\"{{ item.icon }}\"></i>\n </ax-prefix>\n </ax-button>\n }\n </ax-suffix>\n }\n </axp-page-footer>\n</axp-layout-container>\n", styles: ["axp-layout-title{display:block;width:100%;font-weight:600}axp-layout-description{display:block;width:100%;font-size:.875rem;line-height:1.25rem;opacity:.65}axp-layout-actions{display:flex;align-items:center;gap:.75rem}axp-layout-actions axp-layout-actions-primary{display:flex;align-items:center;gap:.75rem}axp-layout-footer,axp-layout-toolbar,axp-layout-header,axp-page-header,axp-page-footer,axp-page-toolbar{display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-prefix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-prefix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-prefix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-prefix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-prefix,axp-page-toolbar>axp-layout-suffix{display:flex;flex-direction:row;align-items:center;gap:.5rem}axp-layout-footer>axp-layout-prefix,axp-layout-toolbar>axp-layout-prefix,axp-layout-header>axp-layout-prefix,axp-page-header>axp-layout-prefix,axp-page-footer>axp-layout-prefix,axp-page-toolbar>axp-layout-prefix{order:-9999}axp-layout-footer>axp-layout-suffix,axp-layout-toolbar>axp-layout-suffix,axp-layout-header>axp-layout-suffix,axp-page-header>axp-layout-suffix,axp-page-footer>axp-layout-suffix,axp-page-toolbar>axp-layout-suffix{order:9999;margin-inline-start:auto}axp-layout-list{display:flex;flex-direction:column}axp-layout-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed}axp-layout-list:focus{outline:none}axp-layout-list-group{display:flex;flex-direction:column;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-group>axp-layout-title{padding-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}axp-layout-list-group>axp-layout-header{display:flex;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}axp-layout-list-item{margin-top:.25rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem;font-size:.875rem;line-height:1.25rem}axp-layout-list-item:focus{outline:none}axp-layout-list-item.axp-state-focused,axp-layout-list-item:hover{cursor:pointer;border-radius:.25rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-list-item>axp-layout-prefix{margin-inline-end:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-list-item>axp-layout-content{flex:1 1 0%}axp-layout-list-item>axp-layout-content axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-list-item>axp-layout-suffix{margin-inline-start:auto;display:flex;flex-direction:row;gap:.5rem}axp-layout-sections{display:flex;flex-direction:column;gap:1rem}axp-layout-sections axp-layout-section{display:block;border-radius:.375rem;border-width:1px;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-layout-sections axp-layout-section:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding:.5rem 1rem}@media (min-width: 1280px){axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-layout-sections axp-layout-section>axp-layout-footer,axp-layout-sections axp-layout-section>axp-layout-header{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-layout-sections axp-layout-section>axp-layout-footer:is(.ax-dark *),axp-layout-sections axp-layout-section>axp-layout-header:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axp-layout-sections axp-layout-section>axp-layout-header{display:flex;flex-direction:column;gap:0px;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom-width:1px}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-title{font-weight:700;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-on-lightest-surface),var(--tw-text-opacity, 1))}axp-layout-sections axp-layout-section>axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.875rem;line-height:1.25rem}axp-layout-sections axp-layout-section>axp-layout-footer{display:flex;align-items:center;justify-content:space-between;border-bottom-right-radius:.375rem;border-bottom-left-radius:.375rem;border-top-width:1px;padding:1rem;opacity:0;animation:fadeInDown .5s ease-out forwards}axp-layout-sections axp-layout-section>axp-layout-footer>axp-layout-suffix{margin-inline-start:auto;display:flex;gap:.5rem}@keyframes fadeInDown{0%{opacity:0}to{opacity:1}}axp-popup-layout{display:flex;width:100%;height:100%;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:auto;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}axp-popup-layout>axp-layout-container>axp-layout-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:0px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1));padding-top:.5rem;padding-bottom:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width: 768px){axp-popup-layout>axp-layout-container>axp-layout-header{padding-top:1rem;padding-bottom:1rem}}axp-popup-layout>axp-layout-container>axp-page-content{display:flex;width:100%;flex:1 1 0%;flex-direction:column}axp-popup-layout>axp-layout-container>axp-page-footer{border-top-width:1px;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lightest-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer:is(.ax-dark *){--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-border-dark-surface),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-dark-surface),var(--tw-bg-opacity, 1))}axp-popup-layout>axp-layout-container>axp-page-footer{position:-webkit-sticky;position:sticky;bottom:0;padding:.75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}axp-popup-layout>axp-layout-container>axp-page-footer.--animated{animation:1s both ax-fadeInUp;transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type:
|
|
328
331
|
//
|
|
329
|
-
AXCommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type:
|
|
332
|
+
AXCommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i4$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "ngmodule", type: AXDrawerDirectiveModule }, { kind: "component", type:
|
|
330
333
|
//
|
|
331
334
|
AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutContainerComponent, selector: "axp-layout-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
332
335
|
}
|
|
333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.
|
|
336
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPPopupLayoutComponent, decorators: [{
|
|
334
337
|
type: Component,
|
|
335
338
|
args: [{ standalone: true, imports: [
|
|
336
339
|
CommonModule,
|
|
@@ -428,10 +431,10 @@ class AXPPopupLayoutBaseComponent extends AXBasePageComponent {
|
|
|
428
431
|
//#endregion
|
|
429
432
|
//#region ---------------- Handle Commands ----------------
|
|
430
433
|
execute(command) { }
|
|
431
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.
|
|
432
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.
|
|
434
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPPopupLayoutBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
435
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: AXPPopupLayoutBaseComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "layout", first: true, predicate: AXPPopupLayoutComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
433
436
|
}
|
|
434
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.
|
|
437
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPPopupLayoutBaseComponent, decorators: [{
|
|
435
438
|
type: Component,
|
|
436
439
|
args: [{
|
|
437
440
|
standalone: true,
|
|
@@ -446,84 +449,207 @@ const AXPLayoutDetailsViewViewModel = signalStore(withState(() => {
|
|
|
446
449
|
context: {},
|
|
447
450
|
scope: null,
|
|
448
451
|
status: AXPPageStatus.Processing,
|
|
452
|
+
currentPage: null,
|
|
453
|
+
currentTab: null,
|
|
449
454
|
};
|
|
450
455
|
return state;
|
|
451
|
-
}), withComputed((store) => ({
|
|
456
|
+
}), withComputed((store, layout = inject(AXPLayoutThemeService)) => ({
|
|
452
457
|
icon: computed(() => store.adapter()?.icon ?? null),
|
|
453
|
-
content: computed(() => store.adapter()?.content ?? []),
|
|
458
|
+
content: computed(() => store.adapter()?.pages[0]?.content ?? []),
|
|
459
|
+
//
|
|
460
|
+
showPages: computed(() => !store.currentPage() && !layout.isLarge()),
|
|
461
|
+
isLarge: computed(() => layout.isLarge()),
|
|
454
462
|
//
|
|
455
463
|
isBusy: computed(() => store.status() == AXPPageStatus.Processing),
|
|
456
464
|
isSaving: computed(() => store.status() == AXPPageStatus.Submitting),
|
|
457
465
|
isDirty: computed(() => !isEqual(store.context(), store.previousContext())),
|
|
458
466
|
isLoaded: computed(() => store.adapter() != null),
|
|
459
|
-
})), withMethods((store, evaluatorService = inject(AXPExpressionEvaluatorService)) =>
|
|
460
|
-
//
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
467
|
+
})), withMethods((store, evaluatorService = inject(AXPExpressionEvaluatorService), router = inject(Router), route = inject(ActivatedRoute), layout = inject(AXPLayoutThemeService)) => {
|
|
468
|
+
// Create an effect to handle route changes
|
|
469
|
+
effect(() => {
|
|
470
|
+
if (store.adapter()) {
|
|
471
|
+
route.queryParams.subscribe((params) => {
|
|
472
|
+
const pageId = params['page'];
|
|
473
|
+
const adapter = store.adapter();
|
|
474
|
+
if (adapter) {
|
|
475
|
+
// Find current page from query param or conditionally default to first page
|
|
476
|
+
let currentPage = null;
|
|
477
|
+
if (pageId) {
|
|
478
|
+
const foundPage = adapter.pages.find((p) => p.id === pageId);
|
|
479
|
+
if (foundPage) {
|
|
480
|
+
currentPage = foundPage;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
else {
|
|
484
|
+
// Only auto-select first page if layout is large
|
|
485
|
+
if (layout.isLarge() || adapter.pages.length == 1) {
|
|
486
|
+
currentPage = adapter.pages[0];
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
// Set current tab to first tab of the current page (internal state only)
|
|
490
|
+
let currentTab = currentPage?.tabs?.[0] ?? null;
|
|
491
|
+
// Only update if there's a change
|
|
492
|
+
if (store.currentPage()?.id !== currentPage?.id) {
|
|
493
|
+
patchState(store, {
|
|
494
|
+
currentPage,
|
|
495
|
+
currentTab,
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
});
|
|
502
|
+
return {
|
|
503
|
+
async load(adapter) {
|
|
504
|
+
patchState(store, { adapter });
|
|
505
|
+
//
|
|
506
|
+
const scope = {
|
|
507
|
+
context: {
|
|
508
|
+
eval: (path) => {
|
|
509
|
+
return getSmart(store.context(), path);
|
|
510
|
+
},
|
|
511
|
+
isDirty: () => store.isDirty(),
|
|
468
512
|
},
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
//
|
|
473
|
-
patchState(store, {
|
|
474
|
-
status: AXPPageStatus.Processing,
|
|
475
|
-
});
|
|
476
|
-
const loadResult = await adapter.load({});
|
|
477
|
-
const context = loadResult.result?.items?.[0] ?? {};
|
|
478
|
-
patchState(store, {
|
|
479
|
-
previousContext: cloneDeep(context),
|
|
480
|
-
context: cloneDeep(context),
|
|
481
|
-
status: AXPPageStatus.Rendered,
|
|
482
|
-
});
|
|
483
|
-
},
|
|
484
|
-
// Set Context
|
|
485
|
-
updateContext(context) {
|
|
486
|
-
patchState(store, {
|
|
487
|
-
context: cleanDeep(context),
|
|
488
|
-
});
|
|
489
|
-
},
|
|
490
|
-
async title() {
|
|
491
|
-
const raw = store.adapter()?.title;
|
|
492
|
-
const processed = await evaluatorService.evaluate(raw, store.scope());
|
|
493
|
-
return processed;
|
|
494
|
-
},
|
|
495
|
-
async description() {
|
|
496
|
-
const raw = store.adapter()?.description;
|
|
497
|
-
const processed = await evaluatorService.evaluate(raw, store.scope());
|
|
498
|
-
return processed;
|
|
499
|
-
},
|
|
500
|
-
// Process Actions
|
|
501
|
-
async primaryActions() {
|
|
502
|
-
const raw = store.adapter()?.actions?.filter((a) => a.priority == 'primary') ?? [];
|
|
503
|
-
const processed = await evaluatorService.evaluate(raw, store.scope());
|
|
504
|
-
return processed;
|
|
505
|
-
},
|
|
506
|
-
// Secondary Actions
|
|
507
|
-
async secondaryActions() {
|
|
508
|
-
const raw = store.adapter()?.actions?.filter((a) => a.priority == 'secondary') ?? [];
|
|
509
|
-
const processed = await evaluatorService.evaluate(raw, store.scope());
|
|
510
|
-
return processed;
|
|
511
|
-
},
|
|
512
|
-
//
|
|
513
|
-
async discard() {
|
|
514
|
-
patchState(store, {
|
|
515
|
-
context: cloneDeep(store.previousContext()),
|
|
516
|
-
});
|
|
517
|
-
},
|
|
518
|
-
async save() {
|
|
519
|
-
const result = await store.adapter()?.save?.(store.context());
|
|
520
|
-
if (result?.success) {
|
|
513
|
+
};
|
|
514
|
+
patchState(store, { scope });
|
|
515
|
+
//
|
|
521
516
|
patchState(store, {
|
|
522
|
-
|
|
517
|
+
status: AXPPageStatus.Processing,
|
|
523
518
|
});
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
519
|
+
const loadResult = await adapter.pages[0].load({});
|
|
520
|
+
const context = loadResult.result?.items?.[0] ?? {};
|
|
521
|
+
// Get query params
|
|
522
|
+
const queryParams = router.routerState.snapshot.root.queryParams;
|
|
523
|
+
const pageId = queryParams['page'];
|
|
524
|
+
// Find current page from query param or conditionally default to first page
|
|
525
|
+
let currentPage = null;
|
|
526
|
+
if (pageId) {
|
|
527
|
+
const foundPage = adapter.pages.find((p) => p.id === pageId);
|
|
528
|
+
if (foundPage) {
|
|
529
|
+
currentPage = foundPage;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
else {
|
|
533
|
+
// Only auto-select first page if layout is large
|
|
534
|
+
if (layout.isLarge() || adapter.pages.length == 1) {
|
|
535
|
+
currentPage = adapter.pages[0];
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
// Set current tab to first tab of the current page (internal state only)
|
|
539
|
+
let currentTab = currentPage?.tabs?.[0] ?? null;
|
|
540
|
+
patchState(store, {
|
|
541
|
+
previousContext: cloneDeep(context),
|
|
542
|
+
context: cloneDeep(context),
|
|
543
|
+
status: AXPPageStatus.Rendered,
|
|
544
|
+
currentPage,
|
|
545
|
+
currentTab,
|
|
546
|
+
});
|
|
547
|
+
// Update URL if needed (if no page query param was present and layout is large)
|
|
548
|
+
if (!pageId && (layout.isLarge() || adapter.pages.length == 1) && currentPage) {
|
|
549
|
+
router.navigate([], {
|
|
550
|
+
queryParams: {
|
|
551
|
+
page: currentPage.id,
|
|
552
|
+
},
|
|
553
|
+
queryParamsHandling: 'merge',
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
},
|
|
557
|
+
updateContext(context) {
|
|
558
|
+
patchState(store, {
|
|
559
|
+
context: cleanDeep(context),
|
|
560
|
+
});
|
|
561
|
+
},
|
|
562
|
+
//Current Page
|
|
563
|
+
async currentPageTitle() {
|
|
564
|
+
const raw = store.currentPage()?.title;
|
|
565
|
+
const processed = await evaluatorService.evaluate(raw, store.scope());
|
|
566
|
+
return processed;
|
|
567
|
+
},
|
|
568
|
+
async currentPageDescription() {
|
|
569
|
+
const raw = store.currentPage()?.description;
|
|
570
|
+
const processed = await evaluatorService.evaluate(raw, store.scope());
|
|
571
|
+
return processed;
|
|
572
|
+
},
|
|
573
|
+
async currentPagePrimaryActions() {
|
|
574
|
+
const raw = store.currentPage()?.actions?.filter((a) => a.priority == 'primary') ?? [];
|
|
575
|
+
const processed = await evaluatorService.evaluate(raw, store.scope());
|
|
576
|
+
return processed;
|
|
577
|
+
},
|
|
578
|
+
async currentPageSecondaryActions() {
|
|
579
|
+
const raw = store.currentPage()?.actions?.filter((a) => a.priority == 'secondary') ?? [];
|
|
580
|
+
const processed = await evaluatorService.evaluate(raw, store.scope());
|
|
581
|
+
return processed;
|
|
582
|
+
},
|
|
583
|
+
currentPageContent() {
|
|
584
|
+
const content = store.currentPage()?.content;
|
|
585
|
+
return content;
|
|
586
|
+
},
|
|
587
|
+
currentPageTabs() {
|
|
588
|
+
return store.currentPage()?.tabs?.filter((tab) => tab.visible !== false);
|
|
589
|
+
},
|
|
590
|
+
setCurrentPage(page) {
|
|
591
|
+
if (page) {
|
|
592
|
+
const firstTab = page.tabs?.[0] ?? null;
|
|
593
|
+
patchState(store, {
|
|
594
|
+
currentPage: page,
|
|
595
|
+
currentTab: firstTab,
|
|
596
|
+
});
|
|
597
|
+
router.navigate([], {
|
|
598
|
+
queryParams: {
|
|
599
|
+
page: page.id,
|
|
600
|
+
},
|
|
601
|
+
queryParamsHandling: 'merge',
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
else {
|
|
605
|
+
patchState(store, {
|
|
606
|
+
currentPage: null,
|
|
607
|
+
currentTab: null,
|
|
608
|
+
});
|
|
609
|
+
// Remove page query parameter
|
|
610
|
+
const currentParams = { ...route.snapshot.queryParams };
|
|
611
|
+
delete currentParams['page'];
|
|
612
|
+
router.navigate([], {
|
|
613
|
+
queryParams: currentParams,
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
},
|
|
617
|
+
//Current Tab
|
|
618
|
+
setCurrentTab(tab) {
|
|
619
|
+
patchState(store, {
|
|
620
|
+
currentTab: tab,
|
|
621
|
+
});
|
|
622
|
+
},
|
|
623
|
+
getCurrentTabContent() {
|
|
624
|
+
return store.currentTab()?.content ?? [];
|
|
625
|
+
},
|
|
626
|
+
async title() {
|
|
627
|
+
return store.adapter()?.title;
|
|
628
|
+
},
|
|
629
|
+
async description() {
|
|
630
|
+
return store.adapter()?.description;
|
|
631
|
+
},
|
|
632
|
+
async primaryActions() {
|
|
633
|
+
return store.adapter()?.actions?.filter((a) => a.priority == 'primary') ?? [];
|
|
634
|
+
},
|
|
635
|
+
async secondaryActions() {
|
|
636
|
+
return store.adapter()?.actions?.filter((a) => a.priority == 'secondary') ?? [];
|
|
637
|
+
},
|
|
638
|
+
async discard() {
|
|
639
|
+
patchState(store, {
|
|
640
|
+
context: cloneDeep(store.previousContext()),
|
|
641
|
+
});
|
|
642
|
+
},
|
|
643
|
+
async save() {
|
|
644
|
+
//const result = await store.adapter()?.save?.(store.context());
|
|
645
|
+
// if (result?.success) {
|
|
646
|
+
// patchState(store, {
|
|
647
|
+
// previousContext: cloneDeep(store.context()),
|
|
648
|
+
// });
|
|
649
|
+
// }
|
|
650
|
+
},
|
|
651
|
+
};
|
|
652
|
+
}));
|
|
527
653
|
|
|
528
654
|
class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent {
|
|
529
655
|
constructor() {
|
|
@@ -531,48 +657,151 @@ class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent {
|
|
|
531
657
|
this.adapter = input.required();
|
|
532
658
|
//
|
|
533
659
|
this.vm = inject(AXPLayoutDetailsViewViewModel);
|
|
660
|
+
this.footerPrimaryActions = signal([]);
|
|
661
|
+
this.footerSecondaryActions = signal([]);
|
|
662
|
+
this.footerActions = computed(() => [...this.footerPrimaryActions(), ...this.footerSecondaryActions()]);
|
|
663
|
+
this.hasVisibleFooterPrimaryActions = computed(() => {
|
|
664
|
+
const primaryFooterActions = this.footerPrimaryActions();
|
|
665
|
+
return primaryFooterActions.some((action) => action.visible != false);
|
|
666
|
+
});
|
|
667
|
+
this.hasVisibleFooterSecondaryActions = computed(() => {
|
|
668
|
+
const secondaryFooterActions = this.footerSecondaryActions();
|
|
669
|
+
return secondaryFooterActions.some((action) => action.visible != false);
|
|
670
|
+
});
|
|
671
|
+
this.#FooterActionsEffect = effect(async () => {
|
|
672
|
+
this.updateTrigger();
|
|
673
|
+
const footerPrimaryActions = await this.getFooterPrimaryActions();
|
|
674
|
+
const footerSecondaryActions = await this.getFooterSecondaryActions();
|
|
675
|
+
this.footerPrimaryActions.set(footerPrimaryActions);
|
|
676
|
+
this.footerSecondaryActions.set(footerSecondaryActions);
|
|
677
|
+
});
|
|
534
678
|
}
|
|
535
679
|
async ngOnInit() {
|
|
536
680
|
await super.ngOnInit();
|
|
537
681
|
//
|
|
538
682
|
await this.vm.load(this.adapter());
|
|
539
683
|
}
|
|
540
|
-
ngOnDestroy() {
|
|
541
|
-
|
|
684
|
+
ngOnDestroy() { }
|
|
685
|
+
#FooterActionsEffect;
|
|
542
686
|
handleOnContextChanged(e) {
|
|
543
687
|
this.vm.updateContext(e.data);
|
|
544
688
|
this.recompute();
|
|
545
689
|
}
|
|
690
|
+
handleSelectPage(page) {
|
|
691
|
+
this.vm.setCurrentPage(page);
|
|
692
|
+
}
|
|
693
|
+
async getAllPrimaryActions() {
|
|
694
|
+
if (!this.vm.showPages()) {
|
|
695
|
+
const [primaryActions, pagePrimaryActions] = await Promise.all([
|
|
696
|
+
this.vm.primaryActions(),
|
|
697
|
+
this.vm.currentPagePrimaryActions(),
|
|
698
|
+
]);
|
|
699
|
+
return [...primaryActions, ...pagePrimaryActions];
|
|
700
|
+
}
|
|
701
|
+
else {
|
|
702
|
+
return [];
|
|
703
|
+
}
|
|
704
|
+
}
|
|
546
705
|
async getPrimaryMenuItems() {
|
|
547
|
-
return this.
|
|
706
|
+
return (await this.getAllPrimaryActions()).filter((item) => item.zone == 'header');
|
|
707
|
+
}
|
|
708
|
+
async getFooterPrimaryActions() {
|
|
709
|
+
return (await this.getAllPrimaryActions()).filter((item) => item.zone == 'footer');
|
|
710
|
+
}
|
|
711
|
+
async getAllSecondaryActions() {
|
|
712
|
+
if (!this.vm.showPages()) {
|
|
713
|
+
const [secondaryActions, pageSecondaryActions] = await Promise.all([
|
|
714
|
+
this.vm.secondaryActions(),
|
|
715
|
+
this.vm.currentPageSecondaryActions(),
|
|
716
|
+
]);
|
|
717
|
+
return [...secondaryActions, ...pageSecondaryActions];
|
|
718
|
+
}
|
|
719
|
+
else {
|
|
720
|
+
return [];
|
|
721
|
+
}
|
|
548
722
|
}
|
|
549
723
|
async getSecondaryMenuItems() {
|
|
550
|
-
return this.
|
|
724
|
+
return (await this.getAllSecondaryActions()).filter((item) => item.zone == 'header');
|
|
725
|
+
}
|
|
726
|
+
async getFooterSecondaryActions() {
|
|
727
|
+
return (await this.getAllSecondaryActions()).filter((item) => item.zone == 'footer');
|
|
551
728
|
}
|
|
552
729
|
async getPageTitle() {
|
|
553
|
-
|
|
730
|
+
if (this.vm.showPages()) {
|
|
731
|
+
return (await this.vm.title()) || '';
|
|
732
|
+
}
|
|
733
|
+
else {
|
|
734
|
+
return await this.vm.currentPageTitle();
|
|
735
|
+
}
|
|
554
736
|
}
|
|
555
737
|
async getPageDescription() {
|
|
556
|
-
|
|
738
|
+
if (this.vm.showPages()) {
|
|
739
|
+
return (await this.vm.description()) || '';
|
|
740
|
+
}
|
|
741
|
+
else {
|
|
742
|
+
return await this.vm.currentPageDescription();
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
async getBackButton() {
|
|
746
|
+
if (!this.vm.showPages() && this.vm.adapter()?.pages?.length > 1) {
|
|
747
|
+
return {
|
|
748
|
+
title: this.vm.adapter()?.title ?? '',
|
|
749
|
+
};
|
|
750
|
+
}
|
|
751
|
+
else {
|
|
752
|
+
return null;
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
onBackButtonClick() {
|
|
756
|
+
this.vm.setCurrentPage(null);
|
|
757
|
+
}
|
|
758
|
+
//#region ---- Command Execution ----
|
|
759
|
+
async execute(command) {
|
|
760
|
+
if (!this.vm.adapter()) {
|
|
761
|
+
return;
|
|
762
|
+
}
|
|
763
|
+
// Get all actions
|
|
764
|
+
const [adapterPrimaryActions, adapterSecondaryActions, pagePrimaryActions, pageSecondaryActions] = await Promise.all([
|
|
765
|
+
this.vm.primaryActions(),
|
|
766
|
+
this.vm.secondaryActions(),
|
|
767
|
+
this.vm.currentPagePrimaryActions(),
|
|
768
|
+
this.vm.currentPageSecondaryActions(),
|
|
769
|
+
]);
|
|
770
|
+
// Combine adapter actions (primary + secondary)
|
|
771
|
+
const adapterActions = [...adapterPrimaryActions, ...adapterSecondaryActions];
|
|
772
|
+
// Combine current page actions (primary + secondary)
|
|
773
|
+
const pageActions = [...pagePrimaryActions, ...pageSecondaryActions];
|
|
774
|
+
// Helper function to check if command exists in actions
|
|
775
|
+
const commandExistsInActions = (actions, commandName) => {
|
|
776
|
+
return actions.some((action) => action.command?.name === commandName);
|
|
777
|
+
};
|
|
778
|
+
// Check if command exists in adapter actions first
|
|
779
|
+
if (commandExistsInActions(adapterActions, command.name)) {
|
|
780
|
+
await this.vm.adapter()?.execute?.(command, this.vm.context());
|
|
781
|
+
}
|
|
782
|
+
// Check if command exists in current page actions
|
|
783
|
+
else if (commandExistsInActions(pageActions, command.name)) {
|
|
784
|
+
await this.vm.currentPage()?.execute?.(command, this.vm.context());
|
|
785
|
+
}
|
|
557
786
|
}
|
|
558
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.
|
|
559
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.
|
|
787
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPLayoutDetailsViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
788
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AXPLayoutDetailsViewComponent, isStandalone: true, selector: "axp-layout-details-view", inputs: { adapter: { classPropertyName: "adapter", publicName: "adapter", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
|
|
560
789
|
{
|
|
561
790
|
provide: AXPPageLayoutBase,
|
|
562
791
|
useExisting: AXPLayoutDetailsViewComponent,
|
|
563
792
|
},
|
|
564
|
-
AXPLayoutDetailsViewViewModel
|
|
565
|
-
], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <!-- Content Section -->\n <axp-page-content class=\"ax-overflow-auto ax-flex ax-flex-row ax-gap-4\">\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleOnContextChanged($event)\">\n
|
|
793
|
+
AXPLayoutDetailsViewViewModel,
|
|
794
|
+
], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n @if (vm.adapter()?.pages?.length! > 1 && vm.isLarge()) {\n <axp-layout-start-side [axResizable]=\"true\">\n <axp-layout-header>\n <axp-layout-title>{{ t(vm.adapter()?.title) | async }}</axp-layout-title>\n <axp-layout-description>{{ t(vm.adapter()?.description) | async }}</axp-layout-description>\n </axp-layout-header>\n <axp-layout-content>\n <ax-tabs class=\"axp-vertical-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (item of vm.adapter()?.pages; track $index) {\n <ax-tab-item [text]=\"item.title\" (onClick)=\"handleSelectPage(item)\" [active]=\"vm.currentPage() == item\">\n <ax-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-tab-item>\n }\n </ax-tabs>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n <!-- Content Section -->\n <axp-page-content class=\"ax-overflow-auto ax-flex ax-flex-row ax-gap-4\">\n @if (vm.showPages()) {\n <axp-layout-list class=\"ax-w-full\">\n @for (item of vm.adapter()?.pages; track $index) {\n <axp-layout-list-item (click)=\"handleSelectPage(item)\">\n <axp-layout-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\" class=\"ax-text-gray-500\"></ax-icon>\n </axp-layout-prefix>\n <axp-layout-content>\n <a class=\"ax-font-semibold\">{{ item.title | translate | async }}</a>\n </axp-layout-content>\n <axp-layout-suffix>\n <ax-icon icon=\" far fa-chevron-right\" class=\"ax-text-gray-400\"></ax-icon>\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list>\n } @else {\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleOnContextChanged($event)\">\n <div class=\"ax-flex ax-flex-col ax-w-full ax-gap-4\">\n @for (content of vm.currentPageContent(); track $index) {\n <ng-container axp-widget-renderer [node]=\"content\" [mode]=\"content.mode ?? 'view'\"></ng-container>\n }\n @if (vm.currentPage()?.tabs?.length) {\n <div class=\"axp-horizontal-tabs\">\n <ax-tabs [location]=\"'bottom'\" [fitParent]=\"false\" look=\"with-line\">\n @for (tab of vm.currentPageTabs(); track $index) {\n <ax-tab-item (onClick)=\"vm.setCurrentTab(tab)\" [text]=\"tab.title\" [active]=\"vm.currentTab() == tab\">\n <ax-prefix>\n <ax-icon icon=\"far ${{ tab.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-tab-item>\n }\n </ax-tabs>\n <div [class]=\"'content'\">\n @for (content of vm.getCurrentTabContent(); track $index) {\n <ng-container axp-widget-renderer [node]=\"content\" [mode]=\"content.mode ?? 'view'\"> </ng-container>\n }\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n }\n </axp-page-content>\n\n <!-- Footer Section -->\n @if (hasVisibleFooterPrimaryActions() || hasVisibleFooterSecondaryActions()) {\n <axp-page-footer class=\"--animated\">\n <axp-layout-suffix>\n <!-- secondary footer actions -->\n @if (hasVisibleFooterSecondaryActions()) {\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [text]=\"t('actions') | async\"\n [look]=\"layoutService.isSmall() ? 'blank' : 'solid'\"\n [color]=\"'default'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (action of footerSecondaryActions(); track $index) {\n @if (action.visible != false) {\n <ax-button-item\n [text]=\"(t(action.title) | async)!\"\n [color]=\"action.color\"\n [disabled]=\"action.disabled\"\n (onClick)=\"execute(action.command!)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ action.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (action.break) {\n <ax-divider></ax-divider>\n }\n }\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n @if (hasVisibleFooterPrimaryActions()) {\n @for (action of footerPrimaryActions(); track $index) {\n @if (action.visible != false) {\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [disabled]=\"action.disabled\"\n [text]=\"(t(action.title) | async)!\"\n [look]=\"'solid'\"\n [color]=\"action.color\"\n (onClick)=\"execute(action.command!)\"\n >\n <ax-prefix>\n <i class=\"{{ action.icon }}\"></i>\n </ax-prefix>\n @if (action?.items) {\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (sub of action?.items; track $index) {\n @if (sub.visible != false) {\n <ax-button-item\n [text]=\"(t(sub.title) | async)!\"\n [color]=\"sub.color\"\n [disabled]=\"sub.disabled\"\n (onClick)=\"execute(sub.command!)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ sub.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (sub.break) {\n <ax-divider></ax-divider>\n }\n }\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n }\n </ax-button>\n }\n }\n }\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>\n", styles: ["axp-layout-details-view .axp-vertical-tabs{--ax-comp-tabs-default-border-radius: 0}axp-layout-details-view .axp-vertical-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}axp-layout-details-view .axp-horizontal-tabs{display:flex;width:100%;flex-direction:column}axp-layout-details-view .axp-horizontal-tabs .content{margin-top:1rem;display:block;width:100%}axp-layout-details-view axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}axp-layout-details-view axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-details-view axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
566
795
|
// Angular
|
|
567
796
|
CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type:
|
|
568
797
|
// ACoreX
|
|
569
|
-
AXMenuModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "
|
|
798
|
+
AXMenuModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i6.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i6.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i5.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i4$1.AXTranslatorPipe, name: "translate" }, { kind: "directive", type: i4$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXFileModule }, { kind: "ngmodule", type: AXDateTimeModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i6$1.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i6$1.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: AXResizableDirective, selector: "[axResizable]", inputs: ["axResizable", "minWidth", "maxWidth", "dblClickAction", "width", "defaultWidth"], outputs: ["axResizableChange", "minWidthChange", "maxWidthChange", "dblClickActionChange", "widthChange", "defaultWidthChange", "onResizingStarted", "onResizingEnded", "onResizingDblClick"] }, { kind: "component", type:
|
|
570
799
|
//
|
|
571
|
-
AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type:
|
|
800
|
+
AXPThemeLayoutListComponent, selector: "axp-layout-list" }, { kind: "component", type: AXPThemeLayoutListItemComponent, selector: "axp-layout-list-item" }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i7.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i7.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged"], exportAs: ["widgetRenderer"] }, { kind: "component", type: AXPThemeLayoutStartSideComponent, selector: "axp-layout-page-start-side, axp-layout-start-side" }, { kind: "component", type: AXPThemeLayoutHeaderComponent, selector: "axp-layout-header" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
572
801
|
}
|
|
573
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.
|
|
802
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AXPLayoutDetailsViewComponent, decorators: [{
|
|
574
803
|
type: Component,
|
|
575
|
-
args: [{ imports: [
|
|
804
|
+
args: [{ selector: 'axp-layout-details-view', imports: [
|
|
576
805
|
// Angular
|
|
577
806
|
CommonModule,
|
|
578
807
|
// ACoreX
|
|
@@ -590,17 +819,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
|
|
|
590
819
|
AXFormatModule,
|
|
591
820
|
AXFileModule,
|
|
592
821
|
AXDateTimeModule,
|
|
822
|
+
AXSearchBoxModule,
|
|
823
|
+
AXTabsModule,
|
|
824
|
+
AXResizableDirective,
|
|
593
825
|
//
|
|
826
|
+
AXPThemeLayoutListComponent,
|
|
827
|
+
AXPThemeLayoutListItemComponent,
|
|
594
828
|
AXPPageLayoutComponent,
|
|
595
829
|
AXPThemeLayoutBlockComponent,
|
|
596
830
|
AXPLayoutBuilderModule,
|
|
831
|
+
AXPThemeLayoutStartSideComponent,
|
|
832
|
+
AXPThemeLayoutHeaderComponent,
|
|
597
833
|
], encapsulation: ViewEncapsulation.None, providers: [
|
|
598
834
|
{
|
|
599
835
|
provide: AXPPageLayoutBase,
|
|
600
836
|
useExisting: AXPLayoutDetailsViewComponent,
|
|
601
837
|
},
|
|
602
|
-
AXPLayoutDetailsViewViewModel
|
|
603
|
-
], template: "<axp-page-layout *translate=\"let t\">\n <!-- Content Section -->\n <axp-page-content class=\"ax-overflow-auto ax-flex ax-flex-row ax-gap-4\">\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleOnContextChanged($event)\">\n
|
|
838
|
+
AXPLayoutDetailsViewViewModel,
|
|
839
|
+
], template: "<axp-page-layout *translate=\"let t\">\n @if (vm.adapter()?.pages?.length! > 1 && vm.isLarge()) {\n <axp-layout-start-side [axResizable]=\"true\">\n <axp-layout-header>\n <axp-layout-title>{{ t(vm.adapter()?.title) | async }}</axp-layout-title>\n <axp-layout-description>{{ t(vm.adapter()?.description) | async }}</axp-layout-description>\n </axp-layout-header>\n <axp-layout-content>\n <ax-tabs class=\"axp-vertical-tabs\" [look]=\"'with-line-color'\" [location]=\"'end'\" [fitParent]=\"true\">\n @for (item of vm.adapter()?.pages; track $index) {\n <ax-tab-item [text]=\"item.title\" (onClick)=\"handleSelectPage(item)\" [active]=\"vm.currentPage() == item\">\n <ax-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-tab-item>\n }\n </ax-tabs>\n </axp-layout-content>\n </axp-layout-start-side>\n }\n <!-- Content Section -->\n <axp-page-content class=\"ax-overflow-auto ax-flex ax-flex-row ax-gap-4\">\n @if (vm.showPages()) {\n <axp-layout-list class=\"ax-w-full\">\n @for (item of vm.adapter()?.pages; track $index) {\n <axp-layout-list-item (click)=\"handleSelectPage(item)\">\n <axp-layout-prefix>\n <ax-icon icon=\"far ${{ item.icon }}\" class=\"ax-text-gray-500\"></ax-icon>\n </axp-layout-prefix>\n <axp-layout-content>\n <a class=\"ax-font-semibold\">{{ item.title | translate | async }}</a>\n </axp-layout-content>\n <axp-layout-suffix>\n <ax-icon icon=\" far fa-chevron-right\" class=\"ax-text-gray-400\"></ax-icon>\n </axp-layout-suffix>\n </axp-layout-list-item>\n }\n </axp-layout-list>\n } @else {\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleOnContextChanged($event)\">\n <div class=\"ax-flex ax-flex-col ax-w-full ax-gap-4\">\n @for (content of vm.currentPageContent(); track $index) {\n <ng-container axp-widget-renderer [node]=\"content\" [mode]=\"content.mode ?? 'view'\"></ng-container>\n }\n @if (vm.currentPage()?.tabs?.length) {\n <div class=\"axp-horizontal-tabs\">\n <ax-tabs [location]=\"'bottom'\" [fitParent]=\"false\" look=\"with-line\">\n @for (tab of vm.currentPageTabs(); track $index) {\n <ax-tab-item (onClick)=\"vm.setCurrentTab(tab)\" [text]=\"tab.title\" [active]=\"vm.currentTab() == tab\">\n <ax-prefix>\n <ax-icon icon=\"far ${{ tab.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-tab-item>\n }\n </ax-tabs>\n <div [class]=\"'content'\">\n @for (content of vm.getCurrentTabContent(); track $index) {\n <ng-container axp-widget-renderer [node]=\"content\" [mode]=\"content.mode ?? 'view'\"> </ng-container>\n }\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n }\n </axp-page-content>\n\n <!-- Footer Section -->\n @if (hasVisibleFooterPrimaryActions() || hasVisibleFooterSecondaryActions()) {\n <axp-page-footer class=\"--animated\">\n <axp-layout-suffix>\n <!-- secondary footer actions -->\n @if (hasVisibleFooterSecondaryActions()) {\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [text]=\"t('actions') | async\"\n [look]=\"layoutService.isSmall() ? 'blank' : 'solid'\"\n [color]=\"'default'\"\n >\n <ax-prefix>\n <i class=\"fa-solid fa-ellipsis-vertical\"></i>\n </ax-prefix>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (action of footerSecondaryActions(); track $index) {\n @if (action.visible != false) {\n <ax-button-item\n [text]=\"(t(action.title) | async)!\"\n [color]=\"action.color\"\n [disabled]=\"action.disabled\"\n (onClick)=\"execute(action.command!)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ action.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (action.break) {\n <ax-divider></ax-divider>\n }\n }\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n }\n @if (hasVisibleFooterPrimaryActions()) {\n @for (action of footerPrimaryActions(); track $index) {\n @if (action.visible != false) {\n <ax-button\n [class.ax-sm]=\"layoutService.isSmall()\"\n [iconOnly]=\"layoutService.isSmall()\"\n [disabled]=\"action.disabled\"\n [text]=\"(t(action.title) | async)!\"\n [look]=\"'solid'\"\n [color]=\"action.color\"\n (onClick)=\"execute(action.command!)\"\n >\n <ax-prefix>\n <i class=\"{{ action.icon }}\"></i>\n </ax-prefix>\n @if (action?.items) {\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n @for (sub of action?.items; track $index) {\n @if (sub.visible != false) {\n <ax-button-item\n [text]=\"(t(sub.title) | async)!\"\n [color]=\"sub.color\"\n [disabled]=\"sub.disabled\"\n (onClick)=\"execute(sub.command!)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light {{ sub.icon }}\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n @if (sub.break) {\n <ax-divider></ax-divider>\n }\n }\n }\n </ax-button-item-list>\n </ax-dropdown-panel>\n }\n </ax-button>\n }\n }\n }\n </axp-layout-suffix>\n </axp-page-footer>\n }\n</axp-page-layout>\n", styles: ["axp-layout-details-view .axp-vertical-tabs{--ax-comp-tabs-default-border-radius: 0}axp-layout-details-view .axp-vertical-tabs ax-tab-item{margin-top:0!important;margin-bottom:0!important;padding-top:.75rem!important;padding-bottom:.75rem!important;font-weight:600!important}axp-layout-details-view .axp-horizontal-tabs{display:flex;width:100%;flex-direction:column}axp-layout-details-view .axp-horizontal-tabs .content{margin-top:1rem;display:block;width:100%}axp-layout-details-view axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}axp-layout-details-view axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){axp-layout-details-view axp-layout-section axp-layout-content .--item-container{padding-left:2.5rem;padding-right:2.5rem}}axp-layout-details-view axp-layout-section axp-layout-content .--item-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}axp-layout-details-view axp-layout-section axp-layout-content .--item-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}axp-layout-details-view axp-layout-start-side{border-inline-end-width:1px;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}\n"] }]
|
|
604
840
|
}] });
|
|
605
841
|
|
|
606
842
|
/**
|