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