@acorex/platform 19.0.1 → 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 +95 -76
- 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 +14 -14
- 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,20 +1,119 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, viewChild, computed, inject, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
1
5
|
import * as i2 from '@acorex/components/button';
|
|
2
6
|
import { AXButtonModule } from '@acorex/components/button';
|
|
3
7
|
import * as i3 from '@acorex/components/decorators';
|
|
4
8
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
5
9
|
import * as i4 from '@acorex/components/dropdown';
|
|
6
10
|
import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
7
|
-
import * as i1 from '@angular/common';
|
|
8
|
-
import { CommonModule } from '@angular/common';
|
|
9
|
-
import * as i0 from '@angular/core';
|
|
10
|
-
import { computed, inject, Component, NgModule } from '@angular/core';
|
|
11
11
|
import * as i1$1 from '@acorex/platform/common';
|
|
12
|
-
import {
|
|
12
|
+
import { AXPSettingValueProviderService, AXP_SETTING_DEFINITION_PROVIDER, AXPComponentSlotModule } from '@acorex/platform/common';
|
|
13
13
|
import { signalStore, withState, withComputed, withMethods, patchState, withHooks } from '@ngrx/signals';
|
|
14
14
|
import { timer } from 'rxjs';
|
|
15
15
|
import * as i5 from '@acorex/core/translation';
|
|
16
16
|
import { AXTranslationModule } from '@acorex/core/translation';
|
|
17
17
|
|
|
18
|
+
class AXPThemeLayoutBlockComponent {
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutBlockComponent, isStandalone: true, selector: "\n axp-page-content, \n axp-page-body,\n axp-page-title, \n axp-page-description, \n axp-page-actions,\n axp-page-navbar,\n axp-page-side, \n axp-page-breadcrumbs\n ", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutBlockComponent, decorators: [{
|
|
23
|
+
type: Component,
|
|
24
|
+
args: [{
|
|
25
|
+
standalone: true,
|
|
26
|
+
selector: `
|
|
27
|
+
axp-page-content,
|
|
28
|
+
axp-page-body,
|
|
29
|
+
axp-page-title,
|
|
30
|
+
axp-page-description,
|
|
31
|
+
axp-page-actions,
|
|
32
|
+
axp-page-navbar,
|
|
33
|
+
axp-page-side,
|
|
34
|
+
axp-page-breadcrumbs
|
|
35
|
+
`,
|
|
36
|
+
template: '<ng-content></ng-content>',
|
|
37
|
+
encapsulation: ViewEncapsulation.None,
|
|
38
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
39
|
+
}]
|
|
40
|
+
}] });
|
|
41
|
+
|
|
42
|
+
class AXPThemeLayoutPageHeaderComponent {
|
|
43
|
+
constructor() {
|
|
44
|
+
this.title = viewChild('title');
|
|
45
|
+
this.description = viewChild('description');
|
|
46
|
+
this.actions = viewChild('actions');
|
|
47
|
+
this.navbar = viewChild('navbar');
|
|
48
|
+
this.breadcrumbs = viewChild('breadcrumbs');
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPThemeLayoutPageHeaderComponent, isStandalone: true, selector: "axp-page-header", viewQueries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true, isSignal: true }, { propertyName: "description", first: true, predicate: ["description"], descendants: true, isSignal: true }, { propertyName: "actions", first: true, predicate: ["actions"], descendants: true, isSignal: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true, isSignal: true }, { propertyName: "breadcrumbs", first: true, predicate: ["breadcrumbs"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
52
|
+
|
|
53
|
+
<ng-template #breadcrumbs>
|
|
54
|
+
<ng-content select="axp-page-breadcrumbs"></ng-content>
|
|
55
|
+
</ng-template>
|
|
56
|
+
|
|
57
|
+
<ng-template #navbar>
|
|
58
|
+
<ng-content select="axp-page-navbar"></ng-content>
|
|
59
|
+
</ng-template>
|
|
60
|
+
|
|
61
|
+
<ng-template #actions>
|
|
62
|
+
<ng-content select="axp-page-actions"></ng-content>
|
|
63
|
+
</ng-template>
|
|
64
|
+
|
|
65
|
+
<ng-template #description>
|
|
66
|
+
<ng-content select="axp-page-description"></ng-content>
|
|
67
|
+
</ng-template>
|
|
68
|
+
|
|
69
|
+
<ng-template #title>
|
|
70
|
+
<ng-content select="axp-page-title"></ng-content>
|
|
71
|
+
</ng-template>
|
|
72
|
+
|
|
73
|
+
<ng-content></ng-content>
|
|
74
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
75
|
+
}
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, decorators: [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{
|
|
79
|
+
imports: [CommonModule],
|
|
80
|
+
standalone: true,
|
|
81
|
+
selector: 'axp-page-header',
|
|
82
|
+
template: `
|
|
83
|
+
|
|
84
|
+
<ng-template #breadcrumbs>
|
|
85
|
+
<ng-content select="axp-page-breadcrumbs"></ng-content>
|
|
86
|
+
</ng-template>
|
|
87
|
+
|
|
88
|
+
<ng-template #navbar>
|
|
89
|
+
<ng-content select="axp-page-navbar"></ng-content>
|
|
90
|
+
</ng-template>
|
|
91
|
+
|
|
92
|
+
<ng-template #actions>
|
|
93
|
+
<ng-content select="axp-page-actions"></ng-content>
|
|
94
|
+
</ng-template>
|
|
95
|
+
|
|
96
|
+
<ng-template #description>
|
|
97
|
+
<ng-content select="axp-page-description"></ng-content>
|
|
98
|
+
</ng-template>
|
|
99
|
+
|
|
100
|
+
<ng-template #title>
|
|
101
|
+
<ng-content select="axp-page-title"></ng-content>
|
|
102
|
+
</ng-template>
|
|
103
|
+
|
|
104
|
+
<ng-content></ng-content>
|
|
105
|
+
`,
|
|
106
|
+
encapsulation: ViewEncapsulation.None,
|
|
107
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
108
|
+
}]
|
|
109
|
+
}] });
|
|
110
|
+
|
|
111
|
+
var AXPThemeLayoutSetting;
|
|
112
|
+
(function (AXPThemeLayoutSetting) {
|
|
113
|
+
AXPThemeLayoutSetting["ThemeVariant"] = "layout:theme:variant";
|
|
114
|
+
AXPThemeLayoutSetting["ThemeSideMenu"] = "layout:theme:sidemenu";
|
|
115
|
+
})(AXPThemeLayoutSetting || (AXPThemeLayoutSetting = {}));
|
|
116
|
+
|
|
18
117
|
// Theme Enum
|
|
19
118
|
var AXPThemeVariant;
|
|
20
119
|
(function (AXPThemeVariant) {
|
|
@@ -42,8 +141,6 @@ var AXPSideMenuState;
|
|
|
42
141
|
AXPSideMenuState["Opened"] = "opened";
|
|
43
142
|
AXPSideMenuState["Closed"] = "closed";
|
|
44
143
|
})(AXPSideMenuState || (AXPSideMenuState = {}));
|
|
45
|
-
const THEME_VARIANT_KEY = 'layout:theme:variant';
|
|
46
|
-
const THEME_SIDEMENU_STATE_KEY = 'layout:theme:sidemenu';
|
|
47
144
|
// ThemeStore - Manages theme settings, system changes, and loading states
|
|
48
145
|
const AXPLayoutThemeService = signalStore({ providedIn: 'root' },
|
|
49
146
|
// Initial State
|
|
@@ -109,7 +206,15 @@ withComputed(({ currentTheme, systemTheme, screenSize, deviceType, isTouchDevice
|
|
|
109
206
|
isNavigationLoading: computed(() => navigationLoading()),
|
|
110
207
|
})),
|
|
111
208
|
// Methods for State Management
|
|
112
|
-
withMethods((store, settingService = inject(
|
|
209
|
+
withMethods((store, settingService = inject(AXPSettingValueProviderService)) => {
|
|
210
|
+
const applySettings = async () => {
|
|
211
|
+
// Initialize theme and side menu setting from storage
|
|
212
|
+
const settingTheme = (await settingService.get(AXPThemeLayoutSetting.ThemeVariant)) ?? AXPThemeVariant.Light;
|
|
213
|
+
patchState(store, { currentTheme: settingTheme });
|
|
214
|
+
const settingSideMenu = (await settingService.get(AXPThemeLayoutSetting.ThemeSideMenu)) ?? store.sideMenuState();
|
|
215
|
+
patchState(store, { sideMenuState: settingSideMenu });
|
|
216
|
+
updateHtmlClass(store.isDarkMode());
|
|
217
|
+
};
|
|
113
218
|
// Update HTML class based on theme
|
|
114
219
|
const updateHtmlClass = (dark) => {
|
|
115
220
|
const html = document.getElementsByTagName('html')[0];
|
|
@@ -132,33 +237,39 @@ withMethods((store, settingService = inject(AXPSettingsService)) => {
|
|
|
132
237
|
patchState(store, { screenSize: newScreenSize });
|
|
133
238
|
if (store.sideMenuState() !== AXPSideMenuState.Closed) {
|
|
134
239
|
patchState(store, { sideMenuState: newScreenSize === AXPScreenSize.Small ? AXPSideMenuState.Closed : AXPSideMenuState.Opened });
|
|
135
|
-
settingService.set(
|
|
240
|
+
settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, store.sideMenuState());
|
|
136
241
|
}
|
|
137
242
|
}
|
|
138
243
|
};
|
|
244
|
+
//
|
|
245
|
+
settingService.onChanged.subscribe((setting) => {
|
|
246
|
+
if (setting.keys.includes(AXPThemeLayoutSetting.ThemeVariant)) {
|
|
247
|
+
applySettings();
|
|
248
|
+
}
|
|
249
|
+
});
|
|
139
250
|
const minimumDisplayTime = 500; // milliseconds
|
|
140
251
|
return {
|
|
141
252
|
// Change theme and update HTML class
|
|
142
253
|
changeTheme(theme) {
|
|
143
|
-
settingService.set(
|
|
254
|
+
settingService.set(AXPThemeLayoutSetting.ThemeVariant, theme);
|
|
144
255
|
patchState(store, { currentTheme: theme });
|
|
145
256
|
updateHtmlClass(store.isDarkMode());
|
|
146
257
|
},
|
|
147
258
|
// Open side menu
|
|
148
259
|
openSideMenu() {
|
|
149
260
|
patchState(store, { sideMenuState: AXPSideMenuState.Opened });
|
|
150
|
-
settingService.set(
|
|
261
|
+
settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, AXPSideMenuState.Opened);
|
|
151
262
|
},
|
|
152
263
|
// Close side menu
|
|
153
264
|
closeSideMenu() {
|
|
154
265
|
patchState(store, { sideMenuState: AXPSideMenuState.Closed });
|
|
155
|
-
settingService.set(
|
|
266
|
+
settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, AXPSideMenuState.Closed);
|
|
156
267
|
},
|
|
157
268
|
// Toggle side menu state
|
|
158
269
|
toggleSideMenu() {
|
|
159
270
|
const newSideMenuState = store.sideMenuState() === AXPSideMenuState.Opened ? AXPSideMenuState.Closed : AXPSideMenuState.Opened;
|
|
160
271
|
patchState(store, { sideMenuState: newSideMenuState });
|
|
161
|
-
settingService.set(
|
|
272
|
+
settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, newSideMenuState);
|
|
162
273
|
},
|
|
163
274
|
// Set navigation loading state with a task counter
|
|
164
275
|
setNavigationLoading(value) {
|
|
@@ -229,18 +340,16 @@ withMethods((store, settingService = inject(AXPSettingsService)) => {
|
|
|
229
340
|
_removeResizeListener(listener) {
|
|
230
341
|
window.removeEventListener('resize', listener);
|
|
231
342
|
},
|
|
343
|
+
async loadSettings() {
|
|
344
|
+
applySettings();
|
|
345
|
+
}
|
|
232
346
|
};
|
|
233
347
|
}),
|
|
234
348
|
// Lifecycle Hooks
|
|
235
|
-
withHooks((store
|
|
349
|
+
withHooks((store) => ({
|
|
236
350
|
onInit() {
|
|
237
|
-
// Initialize theme and side menu setting from storage
|
|
238
351
|
(async () => {
|
|
239
|
-
|
|
240
|
-
patchState(store, { currentTheme: settingTheme });
|
|
241
|
-
const settingSideMenu = (await settingService.get(THEME_SIDEMENU_STATE_KEY)) ?? store.sideMenuState();
|
|
242
|
-
patchState(store, { sideMenuState: settingSideMenu });
|
|
243
|
-
store._applyCurrentTheme();
|
|
352
|
+
store.loadSettings();
|
|
244
353
|
})();
|
|
245
354
|
// Set up event listener for system theme changes
|
|
246
355
|
const listener = store._setupSystemColorListener();
|
|
@@ -363,11 +472,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
363
472
|
}]
|
|
364
473
|
}] });
|
|
365
474
|
|
|
475
|
+
class AXPThemeSettingProvider {
|
|
476
|
+
async provide(context) {
|
|
477
|
+
context.addGroup('common-settings', 'General Settings', 'General application settings.', 'fa-solid fa-gear-complex')
|
|
478
|
+
// General Settings Section
|
|
479
|
+
.addSection('general', 'General', 'General configurations for the application.')
|
|
480
|
+
.endSection()
|
|
481
|
+
.endGroup();
|
|
482
|
+
//
|
|
483
|
+
context
|
|
484
|
+
.group('common-settings')
|
|
485
|
+
?.section('general')
|
|
486
|
+
?.addSetting({
|
|
487
|
+
key: AXPThemeLayoutSetting.ThemeVariant,
|
|
488
|
+
title: 'Default Theme',
|
|
489
|
+
scope: 'G',
|
|
490
|
+
defaultValue: AXPThemeVariant.Light,
|
|
491
|
+
valueTransforms: {
|
|
492
|
+
getter: (value) => {
|
|
493
|
+
return typeof value == 'object' ? value['id'] : value;
|
|
494
|
+
},
|
|
495
|
+
setter: (value) => {
|
|
496
|
+
return typeof value == 'object' ? value['id'] : value;
|
|
497
|
+
}
|
|
498
|
+
},
|
|
499
|
+
widget: {
|
|
500
|
+
type: 'select-editor',
|
|
501
|
+
options: {
|
|
502
|
+
dataSource: Object.entries(AXPThemeVariant).map(([key, value]) => ({
|
|
503
|
+
id: value,
|
|
504
|
+
title: key.charAt(0).toUpperCase() + key.slice(1).toLowerCase(),
|
|
505
|
+
})),
|
|
506
|
+
},
|
|
507
|
+
},
|
|
508
|
+
description: 'Select the default theme for the application.',
|
|
509
|
+
});
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
|
|
366
513
|
class AXPThemesSharedModule {
|
|
367
514
|
constructor() { }
|
|
368
515
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
369
516
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule, imports: [i1$1.AXPComponentSlotModule] }); }
|
|
370
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule,
|
|
517
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule, providers: [
|
|
518
|
+
{
|
|
519
|
+
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
520
|
+
useClass: AXPThemeSettingProvider,
|
|
521
|
+
multi: true
|
|
522
|
+
}
|
|
523
|
+
], imports: [AXPComponentSlotModule.forRoot({
|
|
371
524
|
'header-end': [
|
|
372
525
|
{
|
|
373
526
|
priority: 50,
|
|
@@ -393,7 +546,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
393
546
|
],
|
|
394
547
|
exports: [],
|
|
395
548
|
declarations: [],
|
|
396
|
-
providers: [
|
|
549
|
+
providers: [
|
|
550
|
+
{
|
|
551
|
+
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
552
|
+
useClass: AXPThemeSettingProvider,
|
|
553
|
+
multi: true
|
|
554
|
+
}
|
|
555
|
+
],
|
|
397
556
|
}]
|
|
398
557
|
}], ctorParameters: () => [] });
|
|
399
558
|
|
|
@@ -401,5 +560,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
401
560
|
* Generated bundle index. Do not edit.
|
|
402
561
|
*/
|
|
403
562
|
|
|
404
|
-
export { AXPDeviceType, AXPLayoutThemeService, AXPScreenSize, AXPSideMenuState, AXPThemeSlotComponent, AXPThemeVariant, AXPThemesSharedModule };
|
|
563
|
+
export { AXPDeviceType, AXPLayoutThemeService, AXPScreenSize, AXPSideMenuState, AXPThemeLayoutBlockComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeSlotComponent, AXPThemeVariant, AXPThemesSharedModule };
|
|
405
564
|
//# sourceMappingURL=acorex-platform-themes-shared.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-themes-shared.mjs","sources":["../../../../libs/platform/themes/shared/src/lib/services/theme.service.ts","../../../../libs/platform/themes/shared/src/lib/components/theme-slot.component.ts","../../../../libs/platform/themes/shared/src/lib/shared.module.ts","../../../../libs/platform/themes/shared/src/acorex-platform-themes-shared.ts"],"sourcesContent":["import { AXPSettingsService } from '@acorex/platform/common';\nimport { computed, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { timer } from 'rxjs';\n\n// Theme Enum\nexport enum AXPThemeVariant {\n Light = 'light',\n Dark = 'dark',\n System = 'system',\n}\n\n// Screen Size Enum\nexport enum AXPScreenSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\n// Device Type Enum\nexport enum AXPDeviceType {\n Mobile = 'mobile',\n Tablet = 'tablet',\n Desktop = 'desktop',\n}\n\n// Side Menu State Enum\nexport enum AXPSideMenuState {\n Opened = 'opened',\n Closed = 'closed',\n}\n\nconst THEME_VARIANT_KEY = 'layout:theme:variant';\nconst THEME_SIDEMENU_STATE_KEY = 'layout:theme:sidemenu';\n\n// ThemeStore - Manages theme settings, system changes, and loading states\nexport const AXPLayoutThemeService = signalStore(\n { providedIn: 'root' },\n\n // Initial State\n withState(() => {\n const initialTheme = AXPThemeVariant.System;\n const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n\n // Helper function to get the initial screen size\n const getScreenSize = (): AXPScreenSize => {\n const width = window.innerWidth;\n if (width <= 600) return AXPScreenSize.Small;\n if (width <= 1024) return AXPScreenSize.Medium;\n return AXPScreenSize.Large;\n };\n\n // Helper function to determine device type\n const getDeviceType = (): AXPDeviceType => {\n const userAgent = navigator.userAgent.toLowerCase();\n if (/mobile|android|iphone|ipad/.test(userAgent)) {\n return AXPDeviceType.Mobile;\n } else if (/tablet/.test(userAgent)) {\n return AXPDeviceType.Tablet;\n }\n return AXPDeviceType.Desktop;\n };\n\n // Helper function to determine if the device supports touch\n const isTouchDevice = (): boolean => {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n };\n\n const state = {\n currentTheme: initialTheme,\n systemTheme: (systemPrefersDark ? AXPThemeVariant.Dark : AXPThemeVariant.Light) as AXPThemeVariant,\n screenSize: getScreenSize(),\n deviceType: getDeviceType(),\n isTouchDevice: isTouchDevice(),\n overlayLoading: false,\n navigationLoading: false,\n overlayLoadingTaskCount: 0,\n navigationLoadingTaskCount: 0,\n sideMenuState: (getScreenSize() === AXPScreenSize.Large ? AXPSideMenuState.Opened : AXPSideMenuState.Closed) as AXPSideMenuState,\n _listener: null as ((e: MediaQueryListEvent) => void) | null,\n _resizeListener: null as (() => void) | null,\n };\n\n return state;\n }),\n\n // Computed Signals\n withComputed(({ currentTheme, systemTheme, screenSize, deviceType, isTouchDevice, sideMenuState, overlayLoading, navigationLoading }) => ({\n isDarkMode: computed(\n () =>\n currentTheme() === AXPThemeVariant.Dark ||\n (currentTheme() === AXPThemeVariant.System && systemTheme() === AXPThemeVariant.Dark)\n ),\n isLightMode: computed(\n () =>\n currentTheme() === AXPThemeVariant.Light ||\n (currentTheme() === AXPThemeVariant.System && systemTheme() === AXPThemeVariant.Light)\n ),\n isSystemMode: computed(() => currentTheme() === AXPThemeVariant.System),\n isSideMenuOpen: computed(() => sideMenuState() === AXPSideMenuState.Opened),\n isSmall: computed(() => screenSize() === AXPScreenSize.Small),\n isMedium: computed(() => screenSize() === AXPScreenSize.Medium),\n isLarge: computed(() => screenSize() === AXPScreenSize.Large),\n isMobileDevice: computed(() => deviceType() === AXPDeviceType.Mobile),\n isTabletDevice: computed(() => deviceType() === AXPDeviceType.Tablet),\n isDesktopDevice: computed(() => deviceType() === AXPDeviceType.Desktop),\n isTouchScreen: computed(() => isTouchDevice()),\n isOverlayLoading: computed(() => overlayLoading()),\n isNavigationLoading: computed(() => navigationLoading()),\n })),\n\n // Methods for State Management\n withMethods((store, settingService = inject(AXPSettingsService)) => {\n // Update HTML class based on theme\n const updateHtmlClass = (dark: boolean) => {\n const html = document.getElementsByTagName('html')[0];\n dark ? html.classList.add('ax-dark') : html.classList.remove('ax-dark');\n };\n\n // Update screen size based on window width\n const updateScreenSize = () => {\n const width = window.innerWidth;\n let newScreenSize: AXPScreenSize;\n\n if (width <= 600) {\n newScreenSize = AXPScreenSize.Small;\n } else if (width <= 1024) {\n newScreenSize = AXPScreenSize.Medium;\n } else {\n newScreenSize = AXPScreenSize.Large;\n }\n\n if (newScreenSize !== store.screenSize()) {\n patchState(store, { screenSize: newScreenSize });\n if (store.sideMenuState() !== AXPSideMenuState.Closed) {\n patchState(store, { sideMenuState: newScreenSize === AXPScreenSize.Small ? AXPSideMenuState.Closed : AXPSideMenuState.Opened });\n settingService.set(THEME_SIDEMENU_STATE_KEY, store.sideMenuState());\n }\n }\n };\n\n const minimumDisplayTime = 500; // milliseconds\n\n return {\n // Change theme and update HTML class\n changeTheme(theme: AXPThemeVariant) {\n settingService.set(THEME_VARIANT_KEY, theme);\n patchState(store, { currentTheme: theme });\n updateHtmlClass(store.isDarkMode());\n },\n\n // Open side menu\n openSideMenu() {\n patchState(store, { sideMenuState: AXPSideMenuState.Opened });\n settingService.set(THEME_SIDEMENU_STATE_KEY, AXPSideMenuState.Opened);\n },\n\n // Close side menu\n closeSideMenu() {\n patchState(store, { sideMenuState: AXPSideMenuState.Closed });\n settingService.set(THEME_SIDEMENU_STATE_KEY, AXPSideMenuState.Closed);\n },\n\n // Toggle side menu state\n toggleSideMenu() {\n const newSideMenuState = store.sideMenuState() === AXPSideMenuState.Opened ? AXPSideMenuState.Closed : AXPSideMenuState.Opened;\n patchState(store, { sideMenuState: newSideMenuState });\n settingService.set(THEME_SIDEMENU_STATE_KEY, newSideMenuState);\n },\n\n // Set navigation loading state with a task counter\n setNavigationLoading(value: boolean) {\n if (value) {\n patchState(store, { navigationLoadingTaskCount: store.navigationLoadingTaskCount() + 1 });\n patchState(store, { navigationLoading: true });\n } else {\n if (store.navigationLoadingTaskCount() > 0) {\n patchState(store, { navigationLoadingTaskCount: store.navigationLoadingTaskCount() - 1 });\n }\n if (store.navigationLoadingTaskCount() === 0) {\n timer(minimumDisplayTime).subscribe(() => {\n if (store.navigationLoadingTaskCount() === 0) {\n patchState(store, { navigationLoading: false });\n }\n });\n }\n }\n },\n\n // Set overlay loading state with a task counter\n setOverlayLoading(value: boolean) {\n if (value) {\n patchState(store, { overlayLoadingTaskCount: store.overlayLoadingTaskCount() + 1 });\n patchState(store, { overlayLoading: true });\n } else {\n if (store.overlayLoadingTaskCount() > 0) {\n patchState(store, { overlayLoadingTaskCount: store.overlayLoadingTaskCount() - 1 });\n }\n if (store.overlayLoadingTaskCount() === 0) {\n timer(minimumDisplayTime).subscribe(() => {\n if (store.overlayLoadingTaskCount() === 0) {\n patchState(store, { overlayLoading: false });\n }\n });\n }\n }\n },\n\n // Apply the current theme to the HTML class\n _applyCurrentTheme() {\n updateHtmlClass(store.isDarkMode());\n },\n\n // Set up event listener for system theme changes\n _setupSystemColorListener() {\n const mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n const listener = (e: MediaQueryListEvent) => {\n patchState(store, { systemTheme: e.matches ? AXPThemeVariant.Dark : AXPThemeVariant.Light });\n updateHtmlClass(store.isDarkMode());\n };\n mediaQueryList.addEventListener('change', listener);\n return listener;\n },\n\n // Remove event listener for system theme changes\n _removeSystemColorListener(listener: (e: MediaQueryListEvent) => void) {\n const mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n mediaQueryList.removeEventListener('change', listener);\n },\n\n // Set up event listener for window resize\n _setupResizeListener() {\n const listener = () => {\n updateScreenSize();\n };\n window.addEventListener('resize', listener);\n return listener;\n },\n\n // Remove event listener for window resize\n _removeResizeListener(listener: () => void) {\n window.removeEventListener('resize', listener);\n },\n };\n }),\n\n // Lifecycle Hooks\n withHooks((store, settingService = inject(AXPSettingsService)) => ({\n onInit() {\n // Initialize theme and side menu setting from storage\n (async () => {\n const settingTheme = ((await settingService.get(THEME_VARIANT_KEY)) as AXPThemeVariant) ?? AXPThemeVariant.System;\n patchState(store, { currentTheme: settingTheme });\n const settingSideMenu = ((await settingService.get(THEME_SIDEMENU_STATE_KEY)) as AXPSideMenuState) ?? store.sideMenuState();\n patchState(store, { sideMenuState: settingSideMenu });\n store._applyCurrentTheme();\n })();\n\n // Set up event listener for system theme changes\n const listener = store._setupSystemColorListener();\n patchState(store, { _listener: listener });\n\n // Set up event listener for window resize\n const resizeListener = store._setupResizeListener();\n patchState(store, { _resizeListener: resizeListener });\n },\n\n onDestroy() {\n // Clean up event listeners when store is destroyed\n const { _listener: listener, _resizeListener: resizeListener } = store;\n if (listener) {\n store._removeSystemColorListener(listener);\n }\n if (resizeListener) {\n store._removeResizeListener(resizeListener);\n }\n },\n }))\n);\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { AXPLayoutThemeService, AXPThemeVariant } from '../services/theme.service';\nimport { AXTranslationModule } from '@acorex/core/translation';\n\n@Component({\n template: `\n <ax-button look=\"blank\">\n <ax-icon\n class=\"fa-regular \"\n [ngClass]=\"{\n 'fa-desktop':store.isSystemMode(),\n 'fa-moon':!store.isSystemMode() && store.isDarkMode(),\n 'fa-brightness':!store.isSystemMode() && !store.isDarkMode(),\n }\"\n >\n </ax-icon>\n <ax-dropdown-panel *translate=\"let t\">\n <ax-button-item-list>\n <ax-button-item\n (onClick)=\"store.changeTheme(variants.Light)\"\n [text]=\"(t('theme.light') | async)!\"\n [selected]=\"!store.isSystemMode() && !store.isDarkMode()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-brightness\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item\n (onClick)=\"store.changeTheme(variants.Dark)\"\n [text]=\"(t('theme.dark') | async)!\"\n [selected]=\"!store.isSystemMode() && store.isDarkMode()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-moon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item\n (onClick)=\"store.changeTheme(variants.System)\"\n [text]=\"(t('theme.system') | async)!\"\n [selected]=\"store.isSystemMode()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-desktop\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n `,\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule]\n})\nexport class AXPThemeSlotComponent {\n protected store = inject(AXPLayoutThemeService);\n\n protected variants = AXPThemeVariant;\n}\n","import { AXPComponentSlotModule } from '@acorex/platform/common';\nimport { NgModule } from '@angular/core';\nimport { AXPThemeSlotComponent } from './components/theme-slot.component';\n@NgModule({\n imports: [\n AXPComponentSlotModule.forRoot({\n 'header-end': [\n {\n priority: 50,\n name: 'theme',\n component: AXPThemeSlotComponent,\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [],\n})\nexport class AXPThemesSharedModule {\n constructor() {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-themes-shared.mjs","sources":["../../../../libs/platform/themes/shared/src/lib/components/layout-elements/layout-blocks.component.ts","../../../../libs/platform/themes/shared/src/lib/components/layout-elements/layout-page-header.component.ts","../../../../libs/platform/themes/shared/src/lib/setting.keys.ts","../../../../libs/platform/themes/shared/src/lib/services/theme.service.ts","../../../../libs/platform/themes/shared/src/lib/components/theme-slot.component.ts","../../../../libs/platform/themes/shared/src/lib/setting.provider.ts","../../../../libs/platform/themes/shared/src/lib/shared.module.ts","../../../../libs/platform/themes/shared/src/acorex-platform-themes-shared.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: `\n axp-page-content, \n axp-page-body,\n axp-page-title, \n axp-page-description, \n axp-page-actions,\n axp-page-navbar,\n axp-page-side, \n axp-page-breadcrumbs\n `,\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class AXPThemeLayoutBlockComponent {\n}","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\n\n@Component({\n imports: [CommonModule],\n standalone: true,\n selector: 'axp-page-header',\n template: `\n\n <ng-template #breadcrumbs>\n <ng-content select=\"axp-page-breadcrumbs\"></ng-content>\n </ng-template>\n\n <ng-template #navbar>\n <ng-content select=\"axp-page-navbar\"></ng-content>\n </ng-template>\n\n <ng-template #actions>\n <ng-content select=\"axp-page-actions\"></ng-content>\n </ng-template>\n\n <ng-template #description>\n <ng-content select=\"axp-page-description\"></ng-content>\n </ng-template>\n\n <ng-template #title>\n <ng-content select=\"axp-page-title\"></ng-content>\n </ng-template>\n \n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class AXPThemeLayoutPageHeaderComponent {\n\n public readonly title = viewChild<TemplateRef<any>>('title');\n public readonly description = viewChild<TemplateRef<any>>('description');\n public readonly actions = viewChild<TemplateRef<any>>('actions');\n public readonly navbar = viewChild<TemplateRef<any>>('navbar');\n public readonly breadcrumbs = viewChild<TemplateRef<any>>('breadcrumbs');\n\n}","export enum AXPThemeLayoutSetting {\n ThemeVariant = 'layout:theme:variant',\n ThemeSideMenu = 'layout:theme:sidemenu',\n}","import { AXPSettingValueProviderService } from '@acorex/platform/common';\nimport { computed, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { timer } from 'rxjs';\nimport { AXPThemeLayoutSetting } from '../setting.keys';\n\n// Theme Enum\nexport enum AXPThemeVariant {\n Light = 'light',\n Dark = 'dark',\n System = 'system',\n}\n\n// Screen Size Enum\nexport enum AXPScreenSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\n// Device Type Enum\nexport enum AXPDeviceType {\n Mobile = 'mobile',\n Tablet = 'tablet',\n Desktop = 'desktop',\n}\n\n// Side Menu State Enum\nexport enum AXPSideMenuState {\n Opened = 'opened',\n Closed = 'closed',\n}\n\n\n// ThemeStore - Manages theme settings, system changes, and loading states\nexport const AXPLayoutThemeService = signalStore(\n { providedIn: 'root' },\n\n // Initial State\n withState(() => {\n const initialTheme = AXPThemeVariant.System;\n const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;\n\n // Helper function to get the initial screen size\n const getScreenSize = (): AXPScreenSize => {\n const width = window.innerWidth;\n if (width <= 600) return AXPScreenSize.Small;\n if (width <= 1024) return AXPScreenSize.Medium;\n return AXPScreenSize.Large;\n };\n\n // Helper function to determine device type\n const getDeviceType = (): AXPDeviceType => {\n const userAgent = navigator.userAgent.toLowerCase();\n if (/mobile|android|iphone|ipad/.test(userAgent)) {\n return AXPDeviceType.Mobile;\n } else if (/tablet/.test(userAgent)) {\n return AXPDeviceType.Tablet;\n }\n return AXPDeviceType.Desktop;\n };\n\n // Helper function to determine if the device supports touch\n const isTouchDevice = (): boolean => {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n };\n\n const state = {\n currentTheme: initialTheme,\n systemTheme: (systemPrefersDark ? AXPThemeVariant.Dark : AXPThemeVariant.Light) as AXPThemeVariant,\n screenSize: getScreenSize(),\n deviceType: getDeviceType(),\n isTouchDevice: isTouchDevice(),\n overlayLoading: false,\n navigationLoading: false,\n overlayLoadingTaskCount: 0,\n navigationLoadingTaskCount: 0,\n sideMenuState: (getScreenSize() === AXPScreenSize.Large ? AXPSideMenuState.Opened : AXPSideMenuState.Closed) as AXPSideMenuState,\n _listener: null as ((e: MediaQueryListEvent) => void) | null,\n _resizeListener: null as (() => void) | null,\n };\n\n return state;\n }),\n\n // Computed Signals\n withComputed(({ currentTheme, systemTheme, screenSize, deviceType, isTouchDevice, sideMenuState, overlayLoading, navigationLoading }) => ({\n isDarkMode: computed(\n () =>\n currentTheme() === AXPThemeVariant.Dark ||\n (currentTheme() === AXPThemeVariant.System && systemTheme() === AXPThemeVariant.Dark)\n ),\n isLightMode: computed(\n () =>\n currentTheme() === AXPThemeVariant.Light ||\n (currentTheme() === AXPThemeVariant.System && systemTheme() === AXPThemeVariant.Light)\n ),\n isSystemMode: computed(() => currentTheme() === AXPThemeVariant.System),\n isSideMenuOpen: computed(() => sideMenuState() === AXPSideMenuState.Opened),\n isSmall: computed(() => screenSize() === AXPScreenSize.Small),\n isMedium: computed(() => screenSize() === AXPScreenSize.Medium),\n isLarge: computed(() => screenSize() === AXPScreenSize.Large),\n isMobileDevice: computed(() => deviceType() === AXPDeviceType.Mobile),\n isTabletDevice: computed(() => deviceType() === AXPDeviceType.Tablet),\n isDesktopDevice: computed(() => deviceType() === AXPDeviceType.Desktop),\n isTouchScreen: computed(() => isTouchDevice()),\n isOverlayLoading: computed(() => overlayLoading()),\n isNavigationLoading: computed(() => navigationLoading()),\n })),\n\n // Methods for State Management\n withMethods((store, settingService = inject(AXPSettingValueProviderService)) => {\n\n const applySettings = async () => {\n // Initialize theme and side menu setting from storage\n const settingTheme = ((await settingService.get(AXPThemeLayoutSetting.ThemeVariant)) as AXPThemeVariant) ?? AXPThemeVariant.Light;\n patchState(store, { currentTheme: settingTheme });\n const settingSideMenu = ((await settingService.get(AXPThemeLayoutSetting.ThemeSideMenu)) as AXPSideMenuState) ?? store.sideMenuState();\n patchState(store, { sideMenuState: settingSideMenu });\n updateHtmlClass(store.isDarkMode());\n\n }\n\n // Update HTML class based on theme\n const updateHtmlClass = (dark: boolean) => {\n const html = document.getElementsByTagName('html')[0];\n dark ? html.classList.add('ax-dark') : html.classList.remove('ax-dark');\n };\n\n // Update screen size based on window width\n const updateScreenSize = () => {\n const width = window.innerWidth;\n let newScreenSize: AXPScreenSize;\n\n if (width <= 600) {\n newScreenSize = AXPScreenSize.Small;\n } else if (width <= 1024) {\n newScreenSize = AXPScreenSize.Medium;\n } else {\n newScreenSize = AXPScreenSize.Large;\n }\n\n if (newScreenSize !== store.screenSize()) {\n patchState(store, { screenSize: newScreenSize });\n if (store.sideMenuState() !== AXPSideMenuState.Closed) {\n patchState(store, { sideMenuState: newScreenSize === AXPScreenSize.Small ? AXPSideMenuState.Closed : AXPSideMenuState.Opened });\n settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, store.sideMenuState());\n }\n }\n };\n\n //\n settingService.onChanged.subscribe((setting) => {\n if (setting.keys.includes(AXPThemeLayoutSetting.ThemeVariant)) {\n applySettings();\n }\n });\n\n const minimumDisplayTime = 500; // milliseconds\n\n return {\n // Change theme and update HTML class\n changeTheme(theme: AXPThemeVariant) {\n settingService.set(AXPThemeLayoutSetting.ThemeVariant, theme);\n patchState(store, { currentTheme: theme });\n updateHtmlClass(store.isDarkMode());\n },\n\n // Open side menu\n openSideMenu() {\n patchState(store, { sideMenuState: AXPSideMenuState.Opened });\n settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, AXPSideMenuState.Opened);\n },\n\n // Close side menu\n closeSideMenu() {\n patchState(store, { sideMenuState: AXPSideMenuState.Closed });\n settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, AXPSideMenuState.Closed);\n },\n\n // Toggle side menu state\n toggleSideMenu() {\n const newSideMenuState = store.sideMenuState() === AXPSideMenuState.Opened ? AXPSideMenuState.Closed : AXPSideMenuState.Opened;\n patchState(store, { sideMenuState: newSideMenuState });\n settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, newSideMenuState);\n },\n\n // Set navigation loading state with a task counter\n setNavigationLoading(value: boolean) {\n if (value) {\n patchState(store, { navigationLoadingTaskCount: store.navigationLoadingTaskCount() + 1 });\n patchState(store, { navigationLoading: true });\n } else {\n if (store.navigationLoadingTaskCount() > 0) {\n patchState(store, { navigationLoadingTaskCount: store.navigationLoadingTaskCount() - 1 });\n }\n if (store.navigationLoadingTaskCount() === 0) {\n timer(minimumDisplayTime).subscribe(() => {\n if (store.navigationLoadingTaskCount() === 0) {\n patchState(store, { navigationLoading: false });\n }\n });\n }\n }\n },\n\n // Set overlay loading state with a task counter\n setOverlayLoading(value: boolean) {\n if (value) {\n patchState(store, { overlayLoadingTaskCount: store.overlayLoadingTaskCount() + 1 });\n patchState(store, { overlayLoading: true });\n } else {\n if (store.overlayLoadingTaskCount() > 0) {\n patchState(store, { overlayLoadingTaskCount: store.overlayLoadingTaskCount() - 1 });\n }\n if (store.overlayLoadingTaskCount() === 0) {\n timer(minimumDisplayTime).subscribe(() => {\n if (store.overlayLoadingTaskCount() === 0) {\n patchState(store, { overlayLoading: false });\n }\n });\n }\n }\n },\n\n // Apply the current theme to the HTML class\n _applyCurrentTheme() {\n updateHtmlClass(store.isDarkMode());\n },\n\n // Set up event listener for system theme changes\n _setupSystemColorListener() {\n const mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n const listener = (e: MediaQueryListEvent) => {\n patchState(store, { systemTheme: e.matches ? AXPThemeVariant.Dark : AXPThemeVariant.Light });\n updateHtmlClass(store.isDarkMode());\n };\n mediaQueryList.addEventListener('change', listener);\n return listener;\n },\n\n // Remove event listener for system theme changes\n _removeSystemColorListener(listener: (e: MediaQueryListEvent) => void) {\n const mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n mediaQueryList.removeEventListener('change', listener);\n },\n\n // Set up event listener for window resize\n _setupResizeListener() {\n const listener = () => {\n updateScreenSize();\n };\n window.addEventListener('resize', listener);\n return listener;\n },\n\n // Remove event listener for window resize\n _removeResizeListener(listener: () => void) {\n window.removeEventListener('resize', listener);\n },\n async loadSettings() {\n applySettings();\n }\n };\n }),\n\n // Lifecycle Hooks\n withHooks((store) => ({\n onInit() {\n (async () => {\n store.loadSettings()\n })()\n // Set up event listener for system theme changes\n const listener = store._setupSystemColorListener();\n patchState(store, { _listener: listener });\n\n // Set up event listener for window resize\n const resizeListener = store._setupResizeListener();\n patchState(store, { _resizeListener: resizeListener });\n },\n\n onDestroy() {\n // Clean up event listeners when store is destroyed\n const { _listener: listener, _resizeListener: resizeListener } = store;\n if (listener) {\n store._removeSystemColorListener(listener);\n }\n if (resizeListener) {\n store._removeResizeListener(resizeListener);\n }\n },\n }))\n);\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { AXPLayoutThemeService, AXPThemeVariant } from '../services/theme.service';\nimport { AXTranslationModule } from '@acorex/core/translation';\n\n@Component({\n template: `\n <ax-button look=\"blank\">\n <ax-icon\n class=\"fa-regular \"\n [ngClass]=\"{\n 'fa-desktop':store.isSystemMode(),\n 'fa-moon':!store.isSystemMode() && store.isDarkMode(),\n 'fa-brightness':!store.isSystemMode() && !store.isDarkMode(),\n }\"\n >\n </ax-icon>\n <ax-dropdown-panel *translate=\"let t\">\n <ax-button-item-list>\n <ax-button-item\n (onClick)=\"store.changeTheme(variants.Light)\"\n [text]=\"(t('theme.light') | async)!\"\n [selected]=\"!store.isSystemMode() && !store.isDarkMode()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-brightness\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item\n (onClick)=\"store.changeTheme(variants.Dark)\"\n [text]=\"(t('theme.dark') | async)!\"\n [selected]=\"!store.isSystemMode() && store.isDarkMode()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-moon\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item\n (onClick)=\"store.changeTheme(variants.System)\"\n [text]=\"(t('theme.system') | async)!\"\n [selected]=\"store.isSystemMode()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-desktop\"> </ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n `,\n imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule]\n})\nexport class AXPThemeSlotComponent {\n protected store = inject(AXPLayoutThemeService);\n\n protected variants = AXPThemeVariant;\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\nimport { AXPThemeVariant } from './services/theme.service';\nimport { AXPThemeLayoutSetting } from './setting.keys';\n\nexport class AXPThemeSettingProvider implements AXPSettingDefinitionProvider {\n\n\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n context.addGroup('common-settings', 'General Settings', 'General application settings.', 'fa-solid fa-gear-complex')\n // General Settings Section\n .addSection('general', 'General', 'General configurations for the application.')\n .endSection()\n .endGroup();\n //\n context\n .group('common-settings')\n ?.section('general')\n ?.addSetting({\n key: AXPThemeLayoutSetting.ThemeVariant,\n title: 'Default Theme',\n scope: 'G',\n defaultValue: AXPThemeVariant.Light,\n valueTransforms: {\n getter: (value: any) => {\n return typeof value == 'object' ? value['id'] : value;\n },\n setter: (value: any) => {\n return typeof value == 'object' ? value['id'] : value;\n }\n },\n widget: {\n type: 'select-editor',\n options: {\n\n dataSource: Object.entries(AXPThemeVariant).map(([key, value]) => ({\n id: value,\n title: key.charAt(0).toUpperCase() + key.slice(1).toLowerCase(),\n })),\n },\n },\n description: 'Select the default theme for the application.',\n })\n }\n}\n","import { AXP_SETTING_DEFINITION_PROVIDER, AXPComponentSlotModule } from '@acorex/platform/common';\nimport { NgModule } from '@angular/core';\nimport { AXPThemeSlotComponent } from './components/theme-slot.component';\nimport { AXPThemeSettingProvider } from './setting.provider';\n@NgModule({\n imports: [\n AXPComponentSlotModule.forRoot({\n 'header-end': [\n {\n priority: 50,\n name: 'theme',\n component: AXPThemeSlotComponent,\n },\n ],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXPThemeSettingProvider,\n multi: true\n }\n ],\n})\nexport class AXPThemesSharedModule {\n constructor() { }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ import { AXCheckBoxModule } from '@acorex/components/check-box';
|
|
|
3
3
|
import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
5
|
import { computed, Component, ChangeDetectionStrategy, HostBinding } from '@angular/core';
|
|
6
|
-
import * as
|
|
6
|
+
import * as i2 from '@angular/forms';
|
|
7
7
|
import { FormsModule } from '@angular/forms';
|
|
8
8
|
import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
9
|
-
import * as
|
|
9
|
+
import * as i4 from '@acorex/components/label';
|
|
10
10
|
import { AXLabelModule } from '@acorex/components/label';
|
|
11
11
|
|
|
12
12
|
class AXPCheckBoxWidgetDesignerComponent extends AXPWidgetComponent {
|
|
@@ -30,7 +30,7 @@ class AXPCheckBoxWidgetDesignerComponent extends AXPWidgetComponent {
|
|
|
30
30
|
<ax-label>{{label()}}</ax-label>
|
|
31
31
|
}
|
|
32
32
|
</ax-check-box>
|
|
33
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type:
|
|
33
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i1.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "checked", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i4.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34
34
|
}
|
|
35
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCheckBoxWidgetDesignerComponent, decorators: [{
|
|
36
36
|
type: Component,
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
53
53
|
}] } });
|
|
54
54
|
|
|
55
55
|
export { AXPCheckBoxWidgetDesignerComponent };
|
|
56
|
-
//# sourceMappingURL=acorex-platform-widgets-checkbox-widget-designer.component-
|
|
56
|
+
//# sourceMappingURL=acorex-platform-widgets-checkbox-widget-designer.component-B_Gec5Qf.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-widgets-checkbox-widget-designer.component-
|
|
1
|
+
{"version":3,"file":"acorex-platform-widgets-checkbox-widget-designer.component-B_Gec5Qf.mjs","sources":["../../../../libs/platform/widgets/src/lib/widgets/editors/checkbox/checkbox-widget-designer.component.ts"],"sourcesContent":["import { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPWidgetComponent } from '@acorex/platform/layout/builder';\nimport { AXLabelModule } from '@acorex/components/label';\n\n@Component({\n selector: 'axp-checkbox-widget',\n template: `\n <ax-check-box [ngModel]=\"this.getValue()\" [disabled]=\"disabled()\" [readonly]=\"readonly()\"> \n @if(label())\n {\n <ax-label>{{label()}}</ax-label>\n }\n </ax-check-box>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXCheckBoxModule, FormsModule, AXLabelModule]\n})\nexport class AXPCheckBoxWidgetDesignerComponent extends AXPWidgetComponent<boolean | null> {\n\n protected disabled = computed<boolean>(() => this.options()[\"disabled\"] as boolean);\n protected readonly = computed<boolean>(() => this.options()[\"readonly\"] as boolean);\n protected label = computed<string>(() => this.options()[\"label\"] as string);\n\n\n @HostBinding('class')\n private get __class(): string {\n const cls: any = {};\n //\n cls['ax-inline-block'] = true;\n return cls;\n }\n\n}\n"],"names":["i3"],"mappings":";;;;;;;;;;;AAoBM,MAAO,kCAAmC,SAAQ,kBAAkC,CAAA;AAb1F,IAAA,WAAA,GAAA;;AAeY,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAU,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAY,CAAC;AACzE,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAU,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAY,CAAC;AACzE,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAS,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAW,CAAC;AAW5E;AARC,IAAA,IACY,OAAO,GAAA;QACjB,MAAM,GAAG,GAAQ,EAAE;;AAEnB,QAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI;AAC7B,QAAA,OAAO,GAAG;;8GAZD,kCAAkC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,EAXjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;AAOX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEW,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,8VAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAE3D,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAb9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;;;;;;;AAOX,EAAA,CAAA;oBACC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa;AACvE,iBAAA;8BASa,OAAO,EAAA,CAAA;sBADlB,WAAW;uBAAC,OAAO;;;;;"}
|
|
@@ -2,9 +2,9 @@ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { computed, Component, ChangeDetectionStrategy, HostBinding } from '@angular/core';
|
|
5
|
-
import * as
|
|
5
|
+
import * as i2 from '@angular/forms';
|
|
6
6
|
import { FormsModule } from '@angular/forms';
|
|
7
|
-
import * as i2 from '@acorex/components/color-box';
|
|
7
|
+
import * as i2$1 from '@acorex/components/color-box';
|
|
8
8
|
import { AXColorBoxModule } from '@acorex/components/color-box';
|
|
9
9
|
import * as i3 from '@acorex/components/decorators';
|
|
10
10
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
@@ -31,7 +31,7 @@ class AXPColorBoxWidgetDesignerComponent extends AXPWidgetComponent {
|
|
|
31
31
|
<ax-clear-button></ax-clear-button>
|
|
32
32
|
}
|
|
33
33
|
</ax-color-box>
|
|
34
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type:
|
|
34
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXColorBoxModule }, { kind: "component", type: i2$1.AXColorBoxComponent, selector: "ax-color-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXFormModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
35
|
}
|
|
36
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPColorBoxWidgetDesignerComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
53
53
|
}] } });
|
|
54
54
|
|
|
55
55
|
export { AXPColorBoxWidgetDesignerComponent };
|
|
56
|
-
//# sourceMappingURL=acorex-platform-widgets-color-box-widget-designer.component-
|
|
56
|
+
//# sourceMappingURL=acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs","sources":["../../../../libs/platform/widgets/src/lib/widgets/editors/color/color-box-widget-designer.component.ts"],"sourcesContent":["import { AXPWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXColorBoxModule } from '@acorex/components/color-box'\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\n\n@Component({\n selector: 'axp-color-box-widget',\n template: `\n <ax-color-box [disabled]=\"disabled()\" [readonly]=\"readonly()\" [ngModel]=\"getValue()\" [placeholder]=\"placeholder()\" >\n @if(hasClearButton()){\n <ax-clear-button></ax-clear-button>\n } \n </ax-color-box>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, FormsModule, AXColorBoxModule, AXDecoratorModule, AXFormModule]\n})\nexport class AXPColorBoxWidgetDesignerComponent extends AXPWidgetComponent<string> {\n\n protected placeholder = computed<string>(() => this.options()[\"placeholder\"] as string);\n protected disabled = computed<boolean>(() => this.options()[\"disabled\"] as boolean);\n protected readonly = computed<boolean>(() => this.options()[\"readonly\"] as boolean);\n protected hasClearButton = computed<boolean>(() => this.options()['hasClearButton'] as boolean);\n\n\n @HostBinding('class')\n private get __class(): string {\n const cls: any = {};\n cls[`ax-block`] = true;\n cls[`ax-flex-1`] = true;\n return cls;\n }\n}"],"names":["i1","i2"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { AXButtonModule } from '@acorex/components/button';
|
|
2
2
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
|
3
|
-
import {
|
|
3
|
+
import { AXPWidgetComponent, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
|
4
4
|
import { AXPDesignerService, AXPWidgetDesignerRendererDirective, AXPDesignerAddWidgetLineButtonComponent } from '@acorex/platform/layout/designer';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
7
|
import { inject, computed, Component, ChangeDetectionStrategy, ViewEncapsulation, HostBinding } from '@angular/core';
|
|
8
8
|
|
|
9
|
-
class AXPPageWidgetDesignerComponent extends
|
|
9
|
+
class AXPPageWidgetDesignerComponent extends AXPWidgetComponent {
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments);
|
|
12
12
|
this.designerService = inject(AXPDesignerService);
|
|
@@ -46,7 +46,7 @@ class AXPPageWidgetDesignerComponent extends AXPContainerWidgetComponent {
|
|
|
46
46
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPageWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
47
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPPageWidgetDesignerComponent, isStandalone: true, selector: "axp-page-widget", host: { properties: { "style": "this.__style", "class": "this.__class" } }, providers: [
|
|
48
48
|
{
|
|
49
|
-
provide:
|
|
49
|
+
provide: AXPWidgetComponent,
|
|
50
50
|
useExisting: AXPPageWidgetDesignerComponent,
|
|
51
51
|
},
|
|
52
52
|
], usesInheritance: true, ngImport: i0, template: `
|
|
@@ -144,7 +144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
144
144
|
],
|
|
145
145
|
providers: [
|
|
146
146
|
{
|
|
147
|
-
provide:
|
|
147
|
+
provide: AXPWidgetComponent,
|
|
148
148
|
useExisting: AXPPageWidgetDesignerComponent,
|
|
149
149
|
},
|
|
150
150
|
],
|
|
@@ -158,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
158
158
|
}] } });
|
|
159
159
|
|
|
160
160
|
export { AXPPageWidgetDesignerComponent };
|
|
161
|
-
//# sourceMappingURL=acorex-platform-widgets-page-widget-designer.component-
|
|
161
|
+
//# sourceMappingURL=acorex-platform-widgets-page-widget-designer.component-CITselce.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-widgets-page-widget-designer.component-CITselce.mjs","sources":["../../../../libs/platform/widgets/src/lib/widgets/layout/page/page-widget-designer.component.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPWidgetComponent, AXPLayoutBuilderModule, AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport {\n AXPDesignerAddWidgetLineButtonComponent,\n AXPDesignerService,\n AXPWidgetDesignerRendererDirective,\n} from '@acorex/platform/layout/designer';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, HostBinding, inject, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'axp-page-widget',\n template: `\n @if(hasHeader()) { @if(headerNodes().length) {\n <header class=\"axp-page-widget-header\">\n @for (node of headerNodes(); track $index) {\n <ng-container\n axp-widget-designer-renderer\n [node]=\"node\"\n [parentNode]=\"this\"\n [mode]=\"mode\"\n [locked]=\"this.locked\"\n ></ng-container>\n }\n </header>\n } @else {\n <axp-designer-add-widget-line-button\n [text]=\"'Page Header'\"\n (onClick)=\"handleAddHeader()\"\n ></axp-designer-add-widget-line-button>\n } } @for (node of onlyChildren(); track $index) {\n <ng-container axp-widget-designer-renderer [node]=\"node\" [parentNode]=\"this\" [mode]=\"mode\"></ng-container>\n }\n <!-- <axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button> -->\n <axp-designer-add-widget-line-button\n [text]=\"'Add Element'\"\n (onClick)=\"handleAddElement()\"\n ></axp-designer-add-widget-line-button>\n @if(hasFooter()) { @if(footerNodes().length) {\n <footer class=\"axp-page-widget-footer\">\n @for (node of footerNodes(); track $index) {\n <ng-container axp-widget-designer-renderer [node]=\"node\" [parentNode]=\"this\" [mode]=\"mode\"></ng-container>\n }\n </footer>\n } @else {\n <axp-designer-add-widget-line-button\n [text]=\"'Page Footer'\"\n (onClick)=\"handleAddFooter()\"\n ></axp-designer-add-widget-line-button>\n } }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n CommonModule,\n AXPLayoutBuilderModule,\n AXButtonModule,\n AXDecoratorModule,\n AXPWidgetDesignerRendererDirective,\n AXPDesignerAddWidgetLineButtonComponent,\n ],\n providers: [\n {\n provide: AXPWidgetComponent,\n useExisting: AXPPageWidgetDesignerComponent,\n },\n ],\n})\nexport class AXPPageWidgetDesignerComponent extends AXPWidgetComponent<void> {\n protected designerService = inject(AXPDesignerService);\n\n protected backgroundColor = computed<string>(() => this.options()['backgroundColor'] as string);\n\n protected theme = computed<string>(() => (this.options()['theme']?.id as string) ?? 'default');\n protected hasHeader = computed<boolean>(() => this.options()['hasHeader']);\n protected hasFooter = computed<boolean>(() => this.options()['hasFooter']);\n\n protected onlyChildren = computed<AXPWidgetNode[]>(() =>\n this.children().filter((c) => !c.meta?.['footer'] && !c.meta?.['header'])\n );\n protected headerNodes = computed<AXPWidgetNode[]>(() => this.children().filter((c) => c.meta?.['header']) ?? []);\n protected footerNodes = computed<AXPWidgetNode[]>(() => this.children().filter((c) => c.meta?.['footer']) ?? []);\n\n protected async handleAddHeader() {\n const widgets = await this.designerService.showPicker(this.node);\n widgets.forEach((c) => (c.meta = { header: true }));\n }\n\n protected async handleAddFooter() {\n const widgets = await this.designerService.showPicker(this.node);\n widgets.forEach((c) => (c.meta = { footer: true }));\n }\n\n protected async handleAddElement() {\n await this.designerService.showPicker(this.node);\n }\n\n @HostBinding('style')\n private get __style(): any {\n return {\n 'background-color': this.backgroundColor(),\n };\n }\n\n @HostBinding('class')\n private get __class(): any {\n return {\n 'ax-widget-container': true,\n 'ax-dark': this.theme() == 'dark',\n 'ax-light': this.theme() == 'light',\n 'ax-block': true,\n 'ax-w-full': true,\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAqEM,MAAO,8BAA+B,SAAQ,kBAAwB,CAAA;AA1D5E,IAAA,WAAA,GAAA;;AA2DY,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAE5C,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAS,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAW,CAAC;AAErF,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAS,MAAO,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAa,IAAI,SAAS,CAAC;AACpF,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAU,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;AAChE,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAU,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;AAEhE,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAkB,MACjD,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAC1E;AACS,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAkB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AACtG,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAkB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;AAiCjH;AA/BW,IAAA,MAAM,eAAe,GAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAChE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;;AAG3C,IAAA,MAAM,eAAe,GAAA;AAC7B,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAChE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;;AAG3C,IAAA,MAAM,gBAAgB,GAAA;QAC9B,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGlD,IAAA,IACY,OAAO,GAAA;QACjB,OAAO;AACL,YAAA,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE;SAC3C;;AAGH,IAAA,IACY,OAAO,GAAA;QACjB,OAAO;AACL,YAAA,qBAAqB,EAAE,IAAI;AAC3B,YAAA,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,MAAM;AACjC,YAAA,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,OAAO;AACnC,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,WAAW,EAAE,IAAI;SAClB;;8GA5CQ,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAP9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,8BAA8B;AAC5C,aAAA;SACF,EAtDS,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCT,EAIC,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,sBAAsB,EACtB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,8BACd,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,kCAAkC,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClC,uCAAuC,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAS9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBA1D1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,sBAAsB;wBACtB,cAAc;wBACd,iBAAiB;wBACjB,kCAAkC;wBAClC,uCAAuC;AACxC,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAgC,8BAAA;AAC5C,yBAAA;AACF,qBAAA;AACF,iBAAA;8BA+Ba,OAAO,EAAA,CAAA;sBADlB,WAAW;uBAAC,OAAO;gBAQR,OAAO,EAAA,CAAA;sBADlB,WAAW;uBAAC,OAAO;;;;;"}
|