@acorex/platform 21.0.0-next.7 → 21.0.0-next.70
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/fesm2022/acorex-platform-auth.mjs +281 -23
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs +163 -0
- package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +1370 -276
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +1185 -514
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +557 -826
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +832 -189
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +6309 -1956
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +456 -204
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs +371 -0
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs +100 -0
- package/fesm2022/acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity.mjs +22488 -10232
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +564 -170
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +2084 -481
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +116 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs} +5 -5
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +10326 -7981
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +8 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +391 -166
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs} +21 -28
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +2283 -83
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs} +52 -33
- package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +86 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +767 -609
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +978 -238
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/package.json +40 -38
- package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +241 -4
- package/{common/index.d.ts → types/acorex-platform-common.d.ts} +822 -89
- package/{core/index.d.ts → types/acorex-platform-core.d.ts} +658 -133
- package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
- package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +194 -49
- package/types/acorex-platform-layout-components.d.ts +3253 -0
- package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
- package/types/acorex-platform-layout-entity.d.ts +4439 -0
- package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +179 -56
- package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +398 -127
- package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +1120 -501
- package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
- package/types/acorex-platform-runtime.d.ts +571 -0
- package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +233 -6
- package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +24 -2
- package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +620 -617
- package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs +0 -71
- package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs +0 -135
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DfJEx_bs.mjs +0 -1542
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DfJEx_bs.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs +0 -65
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs +0 -64
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
- package/layout/components/index.d.ts +0 -1669
- package/layout/entity/index.d.ts +0 -2287
- package/runtime/index.d.ts +0 -307
- /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
|
@@ -7,33 +7,29 @@ import { AXDropdownModule } from '@acorex/components/dropdown';
|
|
|
7
7
|
import * as i1 from '@angular/common';
|
|
8
8
|
import { CommonModule } from '@angular/common';
|
|
9
9
|
import * as i0 from '@angular/core';
|
|
10
|
-
import { computed, inject, Component, InjectionToken, Injectable,
|
|
10
|
+
import { computed, inject, ChangeDetectionStrategy, Component, InjectionToken, Injectable, Input, signal, effect, Injector, NgModule } from '@angular/core';
|
|
11
11
|
import { AXPSettingsService, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
|
|
12
|
-
import * as i1$
|
|
13
|
-
import { AXPScreenSize, AXPPlatformScope } from '@acorex/platform/core';
|
|
12
|
+
import * as i1$3 from '@acorex/platform/core';
|
|
13
|
+
import { AXPScreenSize, AXPPlatformScope, AXPComponentSlotModule } from '@acorex/platform/core';
|
|
14
14
|
import { HttpClient } from '@angular/common/http';
|
|
15
15
|
import { signalStore, withState, withComputed, withMethods, patchState, withHooks } from '@ngrx/signals';
|
|
16
16
|
import { timer, firstValueFrom, filter } from 'rxjs';
|
|
17
17
|
import * as i5 from '@acorex/core/translation';
|
|
18
18
|
import { AXTranslationModule } from '@acorex/core/translation';
|
|
19
|
-
import
|
|
20
|
-
import { AXPValueWidgetComponent, AXP_WIDGETS_LAYOUT_CATEGORY, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';
|
|
21
|
-
import * as i2$3 from '@acorex/platform/layout/components';
|
|
22
|
-
import { AXPComponentSlotModule } from '@acorex/platform/layout/components';
|
|
23
|
-
import * as i2$1 from '@acorex/components/form';
|
|
24
|
-
import { AXFormModule } from '@acorex/components/form';
|
|
25
|
-
import * as i4$1 from '@acorex/components/search-box';
|
|
26
|
-
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
27
|
-
import * as i1$1 from '@acorex/components/select-box';
|
|
28
|
-
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
|
29
|
-
import * as i5$1 from '@angular/forms';
|
|
30
|
-
import { FormsModule } from '@angular/forms';
|
|
31
|
-
import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex/platform/layout/widgets';
|
|
32
|
-
import { AXSelectionCdkModule } from '@acorex/cdk/selection';
|
|
19
|
+
import { AXPValueWidgetComponent, AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_WIDGETS_LAYOUT_CATEGORY, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex/platform/layout/widget-core';
|
|
33
20
|
import { AXPopupService } from '@acorex/components/popup';
|
|
34
|
-
import * as i2$
|
|
21
|
+
import * as i2$1 from '@acorex/components/button-group';
|
|
35
22
|
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
|
36
23
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
24
|
+
import * as i1$1 from '@acorex/components/search-box';
|
|
25
|
+
import { AXSearchBoxModule } from '@acorex/components/search-box';
|
|
26
|
+
import { AXSelectionCdkModule } from '@acorex/cdk/selection';
|
|
27
|
+
import * as i4$1 from '@angular/forms';
|
|
28
|
+
import { FormsModule } from '@angular/forms';
|
|
29
|
+
import * as i2$2 from '@acorex/components/form';
|
|
30
|
+
import { AXFormModule } from '@acorex/components/form';
|
|
31
|
+
import * as i1$2 from '@acorex/components/select-box';
|
|
32
|
+
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
|
37
33
|
|
|
38
34
|
var AXPThemeLayoutSetting;
|
|
39
35
|
(function (AXPThemeLayoutSetting) {
|
|
@@ -45,7 +41,9 @@ var AXPThemeLayoutSetting;
|
|
|
45
41
|
AXPThemeLayoutSetting["Mode"] = "Common:Setting:Layout.Mode";
|
|
46
42
|
AXPThemeLayoutSetting["SideMenuStatus"] = "Common:Setting:Layout.SideMenu.Status";
|
|
47
43
|
AXPThemeLayoutSetting["SideMenuWidth"] = "Common:Setting:Layout.SideMenu.Width";
|
|
44
|
+
AXPThemeLayoutSetting["SideMenuCompactWidth"] = "Common:Setting:Layout.SideMenu.CompactWidth";
|
|
48
45
|
AXPThemeLayoutSetting["MenuOrientation"] = "Common:Setting:Layout.RootMenu.Direction";
|
|
46
|
+
AXPThemeLayoutSetting["MenuVerticalMode"] = "Common:Setting:Layout.RootMenu.VerticalMode";
|
|
49
47
|
AXPThemeLayoutSetting["MenuBadgeVisible"] = "Common:Setting:Layout.RootMenu.Badge";
|
|
50
48
|
})(AXPThemeLayoutSetting || (AXPThemeLayoutSetting = {}));
|
|
51
49
|
|
|
@@ -68,7 +66,27 @@ var AXPMenuOrientation;
|
|
|
68
66
|
AXPMenuOrientation["Vertical"] = "vertical";
|
|
69
67
|
AXPMenuOrientation["Horizontal"] = "horizontal";
|
|
70
68
|
})(AXPMenuOrientation || (AXPMenuOrientation = {}));
|
|
69
|
+
// Vertical side menu display mode
|
|
70
|
+
var AXPMenuVerticalMode;
|
|
71
|
+
(function (AXPMenuVerticalMode) {
|
|
72
|
+
AXPMenuVerticalMode["Compact"] = "compact";
|
|
73
|
+
AXPMenuVerticalMode["Full"] = "full";
|
|
74
|
+
})(AXPMenuVerticalMode || (AXPMenuVerticalMode = {}));
|
|
75
|
+
const AXP_SIDE_MENU_FULL_DEFAULT_WIDTH = 300;
|
|
76
|
+
const AXP_SIDE_MENU_COMPACT_WIDTH = 80;
|
|
71
77
|
|
|
78
|
+
function normalizeMenuVerticalMode(value, fallback) {
|
|
79
|
+
if (value === AXPMenuVerticalMode.Compact || value === AXPMenuVerticalMode.Full) {
|
|
80
|
+
return value;
|
|
81
|
+
}
|
|
82
|
+
if (typeof value === 'object' && value !== null && 'id' in value) {
|
|
83
|
+
const id = value.id;
|
|
84
|
+
if (id === AXPMenuVerticalMode.Compact || id === AXPMenuVerticalMode.Full) {
|
|
85
|
+
return id;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return fallback;
|
|
89
|
+
}
|
|
72
90
|
// ThemeStore - Manages theme settings, system changes, and loading states
|
|
73
91
|
const AXPLayoutThemeService = signalStore({ providedIn: 'root' },
|
|
74
92
|
// Initial State
|
|
@@ -98,7 +116,9 @@ withState(() => {
|
|
|
98
116
|
sideMenuState: (getInitialScreenSize() === AXPScreenSize.Large
|
|
99
117
|
? AXPSideMenuState.Opened
|
|
100
118
|
: AXPSideMenuState.Closed),
|
|
101
|
-
sideMenuWidth:
|
|
119
|
+
sideMenuWidth: AXP_SIDE_MENU_FULL_DEFAULT_WIDTH,
|
|
120
|
+
sideMenuCompactWidth: AXP_SIDE_MENU_COMPACT_WIDTH,
|
|
121
|
+
menuVerticalMode: AXPMenuVerticalMode.Full,
|
|
102
122
|
menuOrientation: 'vertical',
|
|
103
123
|
_listener: null,
|
|
104
124
|
isPrinting: false,
|
|
@@ -106,7 +126,7 @@ withState(() => {
|
|
|
106
126
|
return state;
|
|
107
127
|
}),
|
|
108
128
|
// Computed Signals
|
|
109
|
-
withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, sideMenuState, overlayLoading, navigationLoading, menuOrientation, isPrinting, }) => ({
|
|
129
|
+
withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, sideMenuState, overlayLoading, navigationLoading, menuOrientation, menuVerticalMode, sideMenuWidth, sideMenuCompactWidth, isPrinting, }) => ({
|
|
110
130
|
isDarkMode: computed(() => {
|
|
111
131
|
if (isPrinting()) {
|
|
112
132
|
return false;
|
|
@@ -121,6 +141,9 @@ withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, sideMen
|
|
|
121
141
|
isOverlayLoading: computed(() => overlayLoading()),
|
|
122
142
|
isNavigationLoading: computed(() => navigationLoading()),
|
|
123
143
|
isMenuHorizontal: computed(() => menuOrientation() === AXPMenuOrientation.Horizontal),
|
|
144
|
+
sideMenuDrawerWidth: computed(() => normalizeMenuVerticalMode(menuVerticalMode(), AXPMenuVerticalMode.Full) === AXPMenuVerticalMode.Compact
|
|
145
|
+
? sideMenuCompactWidth()
|
|
146
|
+
: sideMenuWidth()),
|
|
124
147
|
})),
|
|
125
148
|
// Methods for State Management
|
|
126
149
|
withMethods((store, http = inject(HttpClient), settingsService = inject(AXPSettingsService)) => {
|
|
@@ -139,12 +162,19 @@ withMethods((store, http = inject(HttpClient), settingsService = inject(AXPSetti
|
|
|
139
162
|
store.menuOrientation();
|
|
140
163
|
patchState(store, { menuOrientation: settingMenuOrientation });
|
|
141
164
|
//
|
|
165
|
+
const settingMenuVerticalMode = normalizeMenuVerticalMode(await settingsService.get(AXPThemeLayoutSetting.MenuVerticalMode), store.menuVerticalMode());
|
|
166
|
+
patchState(store, { menuVerticalMode: settingMenuVerticalMode });
|
|
167
|
+
//
|
|
142
168
|
const fontFamily = await settingsService.get(AXPThemeLayoutSetting.Font);
|
|
143
169
|
const fontSize = await settingsService.get(AXPThemeLayoutSetting.FontSize);
|
|
144
170
|
patchState(store, { font: { family: fontFamily, size: fontSize } });
|
|
145
171
|
//
|
|
146
|
-
const sideMenuWidth = await settingsService.get(AXPThemeLayoutSetting.SideMenuWidth);
|
|
172
|
+
const sideMenuWidth = (await settingsService.get(AXPThemeLayoutSetting.SideMenuWidth)) ?? store.sideMenuWidth();
|
|
147
173
|
patchState(store, { sideMenuWidth });
|
|
174
|
+
//
|
|
175
|
+
const sideMenuCompactWidth = (await settingsService.get(AXPThemeLayoutSetting.SideMenuCompactWidth)) ??
|
|
176
|
+
store.sideMenuCompactWidth();
|
|
177
|
+
patchState(store, { sideMenuCompactWidth });
|
|
148
178
|
await _updateHtmlClass();
|
|
149
179
|
};
|
|
150
180
|
// Update HTML class based on theme
|
|
@@ -260,11 +290,27 @@ withMethods((store, http = inject(HttpClient), settingsService = inject(AXPSetti
|
|
|
260
290
|
patchState(store, { sideMenuState: AXPSideMenuState.Closed });
|
|
261
291
|
settingsService.scope(AXPPlatformScope.User).set(AXPThemeLayoutSetting.SideMenuStatus, AXPSideMenuState.Closed);
|
|
262
292
|
},
|
|
263
|
-
// Set side menu width
|
|
293
|
+
// Set side menu width in full vertical mode
|
|
264
294
|
setSideMenuWidth(width) {
|
|
265
295
|
patchState(store, { sideMenuWidth: width });
|
|
266
296
|
settingsService.scope(AXPPlatformScope.User).set(AXPThemeLayoutSetting.SideMenuWidth, width);
|
|
267
297
|
},
|
|
298
|
+
// Set side menu width in compact vertical mode
|
|
299
|
+
setSideMenuCompactWidth(width) {
|
|
300
|
+
patchState(store, { sideMenuCompactWidth: width });
|
|
301
|
+
settingsService.scope(AXPPlatformScope.User).set(AXPThemeLayoutSetting.SideMenuCompactWidth, width);
|
|
302
|
+
},
|
|
303
|
+
// Persist drawer width for the active vertical menu mode
|
|
304
|
+
setSideMenuDrawerWidth(width) {
|
|
305
|
+
if (normalizeMenuVerticalMode(store.menuVerticalMode(), AXPMenuVerticalMode.Full) === AXPMenuVerticalMode.Compact) {
|
|
306
|
+
patchState(store, { sideMenuCompactWidth: width });
|
|
307
|
+
settingsService.scope(AXPPlatformScope.User).set(AXPThemeLayoutSetting.SideMenuCompactWidth, width);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
patchState(store, { sideMenuWidth: width });
|
|
311
|
+
settingsService.scope(AXPPlatformScope.User).set(AXPThemeLayoutSetting.SideMenuWidth, width);
|
|
312
|
+
}
|
|
313
|
+
},
|
|
268
314
|
// Toggle side menu state
|
|
269
315
|
toggleSideMenu() {
|
|
270
316
|
const newSideMenuState = store.sideMenuState() === AXPSideMenuState.Opened ? AXPSideMenuState.Closed : AXPSideMenuState.Opened;
|
|
@@ -305,9 +351,21 @@ withMethods((store, http = inject(HttpClient), settingsService = inject(AXPSetti
|
|
|
305
351
|
withHooks((store, settingsService = inject(AXPSettingsService)) => ({
|
|
306
352
|
onInit() {
|
|
307
353
|
//
|
|
308
|
-
settingsService.onChanged
|
|
354
|
+
settingsService.onChanged
|
|
355
|
+
.pipe(filter((c) => [AXPPlatformScope.Platform, AXPPlatformScope.Tenant, AXPPlatformScope.User].includes(c.scope)))
|
|
356
|
+
.subscribe(async (changes) => {
|
|
309
357
|
const keys = Object.values(AXPThemeLayoutSetting);
|
|
310
|
-
if (changes.keys.some((key) => keys.includes(key))) {
|
|
358
|
+
if (!changes.keys.some((key) => keys.includes(key))) {
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
if (changes.keys.includes(AXPThemeLayoutSetting.MenuVerticalMode)) {
|
|
362
|
+
patchState(store, {
|
|
363
|
+
menuVerticalMode: normalizeMenuVerticalMode(changes.values[AXPThemeLayoutSetting.MenuVerticalMode], store.menuVerticalMode()),
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
const shouldReloadSettings = changes.keys.some((key) => keys.includes(key) &&
|
|
367
|
+
key !== AXPThemeLayoutSetting.MenuVerticalMode);
|
|
368
|
+
if (shouldReloadSettings) {
|
|
311
369
|
await store['loadSettings']();
|
|
312
370
|
}
|
|
313
371
|
});
|
|
@@ -341,8 +399,8 @@ class AXPThemeSlotComponent {
|
|
|
341
399
|
this.store = inject(AXPLayoutThemeService);
|
|
342
400
|
this.variants = AXPThemeMode;
|
|
343
401
|
}
|
|
344
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
345
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
402
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemeSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
403
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: AXPThemeSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
346
404
|
<ax-button color="primary">
|
|
347
405
|
<ax-icon
|
|
348
406
|
class="fa-regular "
|
|
@@ -385,9 +443,9 @@ class AXPThemeSlotComponent {
|
|
|
385
443
|
</ax-button-item-list>
|
|
386
444
|
</ax-dropdown-panel>
|
|
387
445
|
</ax-button>
|
|
388
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }] }); }
|
|
446
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i5.AXTranslatorDirective, selector: "[translate]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
389
447
|
}
|
|
390
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
448
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemeSlotComponent, decorators: [{
|
|
391
449
|
type: Component,
|
|
392
450
|
args: [{
|
|
393
451
|
template: `
|
|
@@ -434,7 +492,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
434
492
|
</ax-dropdown-panel>
|
|
435
493
|
</ax-button>
|
|
436
494
|
`,
|
|
437
|
-
imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule]
|
|
495
|
+
imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule],
|
|
496
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
438
497
|
}]
|
|
439
498
|
}] });
|
|
440
499
|
|
|
@@ -467,529 +526,155 @@ class AXPThemePaletteProviderDefault {
|
|
|
467
526
|
}
|
|
468
527
|
}
|
|
469
528
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
// ,'default'
|
|
487
|
-
];
|
|
488
|
-
for (const style of styles) {
|
|
489
|
-
for (const variant of variants) {
|
|
490
|
-
let name;
|
|
491
|
-
let colorClass;
|
|
492
|
-
// if (variant === 'default') {
|
|
493
|
-
// name = `${style}-${variant}`;
|
|
494
|
-
// colorClass = `ax-text-${style}-${variant}`;
|
|
495
|
-
// } else {
|
|
496
|
-
name = `${style}-${variant}`;
|
|
497
|
-
colorClass = `ax-text-${style}-on-${variant}`;
|
|
498
|
-
// }
|
|
499
|
-
colors.push({
|
|
500
|
-
title: titleCase(variant === 'surface' ? style : titleCase(name)),
|
|
501
|
-
name: name,
|
|
502
|
-
color: colorClass,
|
|
503
|
-
background: `ax-bg-${name}`,
|
|
504
|
-
border: `ax-border-${name}`,
|
|
505
|
-
});
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
return colors;
|
|
529
|
+
//#region ---- Injection Tokens ----
|
|
530
|
+
/**
|
|
531
|
+
* Injection token for icon providers.
|
|
532
|
+
* Use multi: true to register multiple providers.
|
|
533
|
+
*/
|
|
534
|
+
const AXP_ICON_PROVIDER = new InjectionToken('AXP_ICON_PROVIDER');
|
|
535
|
+
/**
|
|
536
|
+
* Injection token for icon style providers.
|
|
537
|
+
* Use multi: true to register multiple providers.
|
|
538
|
+
*/
|
|
539
|
+
const AXP_ICON_STYLE_PROVIDER = new InjectionToken('AXP_ICON_STYLE_PROVIDER');
|
|
540
|
+
//#endregion
|
|
541
|
+
|
|
542
|
+
//#endregion
|
|
543
|
+
//#region ---- Abstract Providers ----
|
|
544
|
+
class AXPIconProvider {
|
|
509
545
|
}
|
|
510
|
-
|
|
511
|
-
class AXPColorProviderDefault extends AXPColorProvider {
|
|
512
|
-
async provide() {
|
|
513
|
-
return DEFAULT_COLORS;
|
|
514
|
-
}
|
|
546
|
+
class AXPIconStyleProvider {
|
|
515
547
|
}
|
|
516
|
-
|
|
517
|
-
|
|
548
|
+
//#endregion
|
|
549
|
+
//#region ---- Service ----
|
|
550
|
+
class AXPIconChooserService {
|
|
518
551
|
constructor() {
|
|
519
|
-
|
|
520
|
-
this.
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
}
|
|
525
|
-
const providers = Array.isArray(injected) ? injected : [injected];
|
|
526
|
-
return [...providers, this.defaultProvider];
|
|
527
|
-
})();
|
|
528
|
-
this.cache = null;
|
|
552
|
+
//#region ---- Properties ----
|
|
553
|
+
this.iconProviders = inject(AXP_ICON_PROVIDER, { optional: true }) ?? [];
|
|
554
|
+
this.styleProviders = inject(AXP_ICON_STYLE_PROVIDER, { optional: true }) ?? [];
|
|
555
|
+
this.iconsCache = null;
|
|
556
|
+
this.stylesCache = null;
|
|
529
557
|
}
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
558
|
+
//#endregion
|
|
559
|
+
//#region ---- Public Methods ----
|
|
560
|
+
/**
|
|
561
|
+
* Get all available icon styles from registered providers.
|
|
562
|
+
* Results are cached after first call.
|
|
563
|
+
*/
|
|
564
|
+
async getStyles() {
|
|
565
|
+
if (this.stylesCache) {
|
|
566
|
+
return this.stylesCache;
|
|
567
|
+
}
|
|
568
|
+
const allStyles = [];
|
|
569
|
+
for (const provider of this.styleProviders) {
|
|
570
|
+
const result = await provider.provide();
|
|
571
|
+
allStyles.push(...result);
|
|
572
|
+
}
|
|
573
|
+
// Remove duplicates based on style name
|
|
574
|
+
const uniqueStyles = allStyles.filter((style, index, self) => index === self.findIndex((s) => s.name === style.name));
|
|
575
|
+
this.stylesCache = uniqueStyles;
|
|
576
|
+
return uniqueStyles;
|
|
577
|
+
}
|
|
578
|
+
/**
|
|
579
|
+
* Get all available icons from registered providers.
|
|
580
|
+
* Icons from multiple providers are merged, with duplicates removed.
|
|
581
|
+
* Results are cached after first call.
|
|
582
|
+
*/
|
|
583
|
+
async getIcons() {
|
|
584
|
+
if (this.iconsCache) {
|
|
585
|
+
return this.iconsCache;
|
|
533
586
|
}
|
|
534
|
-
const
|
|
535
|
-
for (const
|
|
536
|
-
const result = await
|
|
537
|
-
|
|
587
|
+
const allIcons = [];
|
|
588
|
+
for (const provider of this.iconProviders) {
|
|
589
|
+
const result = await provider.provide();
|
|
590
|
+
allIcons.push(...result);
|
|
538
591
|
}
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
592
|
+
// Remove duplicates based on icon name, keeping first occurrence
|
|
593
|
+
const uniqueIcons = allIcons.filter((icon, index, self) => index === self.findIndex((i) => i.name === icon.name));
|
|
594
|
+
this.iconsCache = uniqueIcons;
|
|
595
|
+
return uniqueIcons;
|
|
542
596
|
}
|
|
543
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
544
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
597
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
598
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserService, providedIn: 'root' }); }
|
|
545
599
|
}
|
|
546
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
600
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserService, decorators: [{
|
|
547
601
|
type: Injectable,
|
|
548
|
-
args: [{
|
|
549
|
-
providedIn: 'root',
|
|
550
|
-
}]
|
|
602
|
+
args: [{ providedIn: 'root' }]
|
|
551
603
|
}] });
|
|
552
604
|
|
|
553
|
-
class
|
|
605
|
+
class AXPIconChooserPopupComponent extends AXBasePageComponent {
|
|
554
606
|
constructor() {
|
|
555
607
|
super(...arguments);
|
|
556
|
-
this.
|
|
557
|
-
this.
|
|
558
|
-
this.
|
|
559
|
-
this.
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
}
|
|
572
|
-
// Otherwise value is an object
|
|
573
|
-
return value.name;
|
|
574
|
-
}, ...(ngDevMode ? [{ debugName: "selectedColor" }] : []));
|
|
608
|
+
this.icons = [];
|
|
609
|
+
this.filteredIcons = [];
|
|
610
|
+
this.searchQuery = '';
|
|
611
|
+
this.viewModes = [
|
|
612
|
+
{ value: 'square', text: '@general:widgets.icon-chooser.view-mode.square', icon: 'fa-solid fa-border-all' },
|
|
613
|
+
{
|
|
614
|
+
value: 'rectangle',
|
|
615
|
+
text: '@general:widgets.icon-chooser.view-mode.rectangle',
|
|
616
|
+
icon: 'fa-solid fa-list',
|
|
617
|
+
},
|
|
618
|
+
];
|
|
619
|
+
this.selectedViewMode = 'square';
|
|
620
|
+
this.iconTypes = [];
|
|
621
|
+
this.selectedIconType = 'fa-solid';
|
|
622
|
+
this.popupService = inject(AXPIconChooserService);
|
|
575
623
|
}
|
|
576
624
|
async ngOnInit() {
|
|
577
|
-
|
|
578
|
-
this.
|
|
579
|
-
|
|
625
|
+
this.iconTypes = await this.popupService.getStyles();
|
|
626
|
+
this.icons = await this.popupService.getIcons();
|
|
627
|
+
this.applyFilters();
|
|
628
|
+
this.cdr.detectChanges();
|
|
580
629
|
}
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
this.setValue(undefined);
|
|
585
|
-
return;
|
|
586
|
-
}
|
|
587
|
-
const color = event.component.selectedItems[0];
|
|
588
|
-
// Always store as ordered string: "color background border"
|
|
589
|
-
const stringValue = `${color.color} ${color.background} ${color.border}`;
|
|
590
|
-
this.setValue(stringValue);
|
|
591
|
-
}
|
|
630
|
+
handleSearch(event) {
|
|
631
|
+
this.searchQuery = event.value?.toLowerCase();
|
|
632
|
+
this.applyFilters();
|
|
592
633
|
}
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
634
|
+
handleViewModeChange(mode) {
|
|
635
|
+
this.selectedViewMode = mode.value;
|
|
636
|
+
}
|
|
637
|
+
handleIconTypeChange(type) {
|
|
638
|
+
this.selectedIconType = type.name;
|
|
639
|
+
this.applyFilters();
|
|
640
|
+
}
|
|
641
|
+
applyFilters() {
|
|
642
|
+
let result = this.icons;
|
|
643
|
+
if (this.searchQuery) {
|
|
644
|
+
result = result.filter((icon) => icon.label.toLowerCase().includes(this.searchQuery) ||
|
|
645
|
+
icon.tags?.some((tag) => tag.toLowerCase().includes(this.searchQuery)));
|
|
597
646
|
}
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
647
|
+
result = result.filter((icon) => {
|
|
648
|
+
if (!icon.supportedStyle || icon.supportedStyle.length === 0) {
|
|
649
|
+
return true;
|
|
650
|
+
}
|
|
651
|
+
return icon.supportedStyle.includes(this.selectedIconType);
|
|
652
|
+
});
|
|
653
|
+
this.filteredIcons = result;
|
|
601
654
|
}
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
</div>
|
|
626
|
-
</ng-template>
|
|
627
|
-
<ax-search-box look="fill"></ax-search-box>
|
|
628
|
-
<ax-validation-rule message="field can't be empty" rule="required"></ax-validation-rule>
|
|
629
|
-
</ax-select-box>
|
|
630
|
-
</ax-form-field>
|
|
631
|
-
</ax-form>
|
|
632
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1$1.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2$1.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i2$1.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i2$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i4$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
633
|
-
}
|
|
634
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPColorChooserWidgetEditComponent, decorators: [{
|
|
635
|
-
type: Component,
|
|
636
|
-
args: [{
|
|
637
|
-
selector: 'ax-color-chooser-widget',
|
|
638
|
-
template: `
|
|
639
|
-
<ax-form [messageStyle]="'float'" [updateOn]="'change'">
|
|
640
|
-
<ax-form-field>
|
|
641
|
-
<ax-select-box
|
|
642
|
-
[dataSource]="colors()"
|
|
643
|
-
textField="title"
|
|
644
|
-
valueField="name"
|
|
645
|
-
[placeholder]="placeholder()"
|
|
646
|
-
[itemTemplate]="customItemTemplate"
|
|
647
|
-
[ngModel]="selectedColor()"
|
|
648
|
-
(onValueChanged)="handleValueChange($event)"
|
|
649
|
-
[selectedTemplate]="customItemTemplate"
|
|
650
|
-
>
|
|
651
|
-
<ng-template #customItemTemplate let-item>
|
|
652
|
-
<div class="ax-flex ax-items-center ax-gap-2 ax-p-2">
|
|
653
|
-
<div
|
|
654
|
-
class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-dashed ax-border-black dark:ax-border-white"
|
|
655
|
-
[ngClass]="item.data.background"
|
|
656
|
-
>
|
|
657
|
-
<span [ngClass]="item.data.color">Aa</span>
|
|
658
|
-
</div>
|
|
659
|
-
<span>{{ item.data.title }}</span>
|
|
660
|
-
</div>
|
|
661
|
-
</ng-template>
|
|
662
|
-
<ax-search-box look="fill"></ax-search-box>
|
|
663
|
-
<ax-validation-rule message="field can't be empty" rule="required"></ax-validation-rule>
|
|
664
|
-
</ax-select-box>
|
|
665
|
-
</ax-form-field>
|
|
666
|
-
</ax-form>
|
|
667
|
-
`,
|
|
668
|
-
imports: [AXSelectBoxModule, AXFormModule, CommonModule, AXSearchBoxModule, AXButtonModule, FormsModule],
|
|
669
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
670
|
-
}]
|
|
671
|
-
}] });
|
|
672
|
-
|
|
673
|
-
var themeColorChooserEdit_component = /*#__PURE__*/Object.freeze({
|
|
674
|
-
__proto__: null,
|
|
675
|
-
AXPColorChooserWidgetEditComponent: AXPColorChooserWidgetEditComponent
|
|
676
|
-
});
|
|
677
|
-
|
|
678
|
-
const AXPThemeColorChooserWidgetConfig = {
|
|
679
|
-
name: 'theme-color-chooser',
|
|
680
|
-
title: 'Theme Color Chooser',
|
|
681
|
-
icon: 'fa-solid fa-palette',
|
|
682
|
-
type: 'editor',
|
|
683
|
-
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
684
|
-
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
685
|
-
components: {
|
|
686
|
-
edit: {
|
|
687
|
-
component: () => Promise.resolve().then(function () { return themeColorChooserEdit_component; }).then((c) => c.AXPColorChooserWidgetEditComponent),
|
|
688
|
-
},
|
|
689
|
-
column: {
|
|
690
|
-
component: () => import('./acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs').then((c) => c.AXPColorChooserWidgetColumnComponent),
|
|
691
|
-
},
|
|
692
|
-
view: {
|
|
693
|
-
component: () => import('./acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs').then((c) => c.AXPColorChooserWidgetViewComponent),
|
|
694
|
-
},
|
|
695
|
-
},
|
|
696
|
-
};
|
|
697
|
-
|
|
698
|
-
class AXPFontSizeChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
699
|
-
constructor() {
|
|
700
|
-
super(...arguments);
|
|
701
|
-
this.sizes = signal(['small', 'medium', 'large', 'x-large'], ...(ngDevMode ? [{ debugName: "sizes" }] : []));
|
|
702
|
-
this.selectedSize = signal(null, ...(ngDevMode ? [{ debugName: "selectedSize" }] : []));
|
|
703
|
-
this.#eff = effect(() => {
|
|
704
|
-
if (this.getValue()) {
|
|
705
|
-
this.selectedSize.set(this.sizes().find((s) => s === this.getValue()) ?? this.sizes()[0]);
|
|
706
|
-
}
|
|
707
|
-
}, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
|
|
708
|
-
}
|
|
709
|
-
#eff;
|
|
710
|
-
onSizeClick(size) {
|
|
711
|
-
this.setValue(size);
|
|
712
|
-
}
|
|
713
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPFontSizeChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
714
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: AXPFontSizeChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
715
|
-
@for (size of sizes(); track size) {
|
|
716
|
-
<div (click)="onSizeClick(size)" [style.font-size]="size" [class.--selected]="size === selectedSize()">
|
|
717
|
-
<div>
|
|
718
|
-
<span>{{ '@layout:terms.font-sizes.' + size | translate | async }}</span>
|
|
719
|
-
</div>
|
|
720
|
-
</div>
|
|
721
|
-
}
|
|
722
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
723
|
-
}
|
|
724
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPFontSizeChooserWidgetComponent, decorators: [{
|
|
725
|
-
type: Component,
|
|
726
|
-
args: [{ template: `
|
|
727
|
-
@for (size of sizes(); track size) {
|
|
728
|
-
<div (click)="onSizeClick(size)" [style.font-size]="size" [class.--selected]="size === selectedSize()">
|
|
729
|
-
<div>
|
|
730
|
-
<span>{{ '@layout:terms.font-sizes.' + size | translate | async }}</span>
|
|
731
|
-
</div>
|
|
732
|
-
</div>
|
|
733
|
-
}
|
|
734
|
-
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, AXSelectionCdkModule, AXTranslationModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"] }]
|
|
735
|
-
}] });
|
|
736
|
-
|
|
737
|
-
var fontSizeChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
738
|
-
__proto__: null,
|
|
739
|
-
AXPFontSizeChooserWidgetComponent: AXPFontSizeChooserWidgetComponent
|
|
740
|
-
});
|
|
741
|
-
|
|
742
|
-
const AXPFontSizeChooserWidget = {
|
|
743
|
-
name: "font-size-chooser",
|
|
744
|
-
title: "Font Size Chooser",
|
|
745
|
-
icon: "fa-light fa-text-size",
|
|
746
|
-
type: 'editor',
|
|
747
|
-
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
748
|
-
properties: [
|
|
749
|
-
AXP_NAME_PROPERTY,
|
|
750
|
-
AXP_DATA_PATH_PROPERTY,
|
|
751
|
-
AXP_DISABLED_PROPERTY,
|
|
752
|
-
],
|
|
753
|
-
components: {
|
|
754
|
-
edit: {
|
|
755
|
-
component: () => Promise.resolve().then(function () { return fontSizeChooserWidget_component; }).then((c) => c.AXPFontSizeChooserWidgetComponent),
|
|
756
|
-
},
|
|
757
|
-
}
|
|
758
|
-
};
|
|
759
|
-
|
|
760
|
-
class AXPFontStyleChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
761
|
-
constructor() {
|
|
762
|
-
super(...arguments);
|
|
763
|
-
this.fonts = signal([
|
|
764
|
-
{ id: 'system-ui', title: 'Default' },
|
|
765
|
-
{ id: 'serif', title: 'Serif' },
|
|
766
|
-
{ id: 'sans-serif', title: 'Sans-serif' },
|
|
767
|
-
{ id: 'monospace', title: 'Monospace' },
|
|
768
|
-
{ id: 'arial', title: 'Arial' },
|
|
769
|
-
{ id: 'verdana', title: 'Verdana' },
|
|
770
|
-
{ id: 'tahoma', title: 'Tahoma' },
|
|
771
|
-
{ id: 'times-new-roman', title: 'Times New Roman' },
|
|
772
|
-
{ id: 'georgia', title: 'Georgia' },
|
|
773
|
-
{ id: 'helvetica', title: 'Helvetica' },
|
|
774
|
-
{ id: 'calibri', title: 'Calibri' },
|
|
775
|
-
{ id: 'cursive', title: 'Cursive' },
|
|
776
|
-
{ id: 'vazirmatn', title: 'Vazir وزیر' },
|
|
777
|
-
], ...(ngDevMode ? [{ debugName: "fonts" }] : []));
|
|
778
|
-
this.selectedFont = signal(null, ...(ngDevMode ? [{ debugName: "selectedFont" }] : []));
|
|
779
|
-
this.#eff = effect(() => {
|
|
780
|
-
if (this.getValue()) {
|
|
781
|
-
this.selectedFont.set(this.fonts().find((f) => f.id === this.getValue()) ?? this.fonts()[0]);
|
|
782
|
-
}
|
|
783
|
-
}, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
|
|
784
|
-
}
|
|
785
|
-
#eff;
|
|
786
|
-
onFontClick(font) {
|
|
787
|
-
this.setValue(font.id);
|
|
788
|
-
}
|
|
789
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
790
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: AXPFontStyleChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
791
|
-
@for (font of fonts(); track font.id) {
|
|
792
|
-
<div
|
|
793
|
-
(click)="onFontClick(font)"
|
|
794
|
-
[class.--selected]="font.id === selectedFont()?.id"
|
|
795
|
-
[style.font-family]="font.id"
|
|
796
|
-
>
|
|
797
|
-
<div>
|
|
798
|
-
<span>{{ font.title }}</span>
|
|
799
|
-
</div>
|
|
800
|
-
</div>
|
|
801
|
-
}
|
|
802
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
803
|
-
}
|
|
804
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, decorators: [{
|
|
805
|
-
type: Component,
|
|
806
|
-
args: [{ template: `
|
|
807
|
-
@for (font of fonts(); track font.id) {
|
|
808
|
-
<div
|
|
809
|
-
(click)="onFontClick(font)"
|
|
810
|
-
[class.--selected]="font.id === selectedFont()?.id"
|
|
811
|
-
[style.font-family]="font.id"
|
|
812
|
-
>
|
|
813
|
-
<div>
|
|
814
|
-
<span>{{ font.title }}</span>
|
|
815
|
-
</div>
|
|
816
|
-
</div>
|
|
817
|
-
}
|
|
818
|
-
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, AXSelectionCdkModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"] }]
|
|
819
|
-
}] });
|
|
820
|
-
|
|
821
|
-
var fontStyleChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
822
|
-
__proto__: null,
|
|
823
|
-
AXPFontStyleChooserWidgetComponent: AXPFontStyleChooserWidgetComponent
|
|
824
|
-
});
|
|
825
|
-
|
|
826
|
-
const AXPFontStyleChooserWidget = {
|
|
827
|
-
name: "font-style-chooser",
|
|
828
|
-
title: "Font Style Chooser",
|
|
829
|
-
icon: "fa-light fa-font",
|
|
830
|
-
type: 'editor',
|
|
831
|
-
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
832
|
-
properties: [
|
|
833
|
-
AXP_NAME_PROPERTY,
|
|
834
|
-
AXP_DATA_PATH_PROPERTY,
|
|
835
|
-
AXP_DISABLED_PROPERTY,
|
|
836
|
-
],
|
|
837
|
-
components: {
|
|
838
|
-
edit: {
|
|
839
|
-
component: () => Promise.resolve().then(function () { return fontStyleChooserWidget_component; }).then((c) => c.AXPFontStyleChooserWidgetComponent),
|
|
840
|
-
},
|
|
841
|
-
}
|
|
842
|
-
};
|
|
843
|
-
|
|
844
|
-
//#region ---- Injection Tokens ----
|
|
845
|
-
/**
|
|
846
|
-
* Injection token for icon providers.
|
|
847
|
-
* Use multi: true to register multiple providers.
|
|
848
|
-
*/
|
|
849
|
-
const AXP_ICON_PROVIDER = new InjectionToken('AXP_ICON_PROVIDER');
|
|
850
|
-
/**
|
|
851
|
-
* Injection token for icon style providers.
|
|
852
|
-
* Use multi: true to register multiple providers.
|
|
853
|
-
*/
|
|
854
|
-
const AXP_ICON_STYLE_PROVIDER = new InjectionToken('AXP_ICON_STYLE_PROVIDER');
|
|
855
|
-
//#endregion
|
|
856
|
-
|
|
857
|
-
//#endregion
|
|
858
|
-
//#region ---- Abstract Providers ----
|
|
859
|
-
class AXPIconProvider {
|
|
860
|
-
}
|
|
861
|
-
class AXPIconStyleProvider {
|
|
862
|
-
}
|
|
863
|
-
//#endregion
|
|
864
|
-
//#region ---- Service ----
|
|
865
|
-
class AXPIconChooserService {
|
|
866
|
-
constructor() {
|
|
867
|
-
//#region ---- Properties ----
|
|
868
|
-
this.iconProviders = inject(AXP_ICON_PROVIDER, { optional: true }) ?? [];
|
|
869
|
-
this.styleProviders = inject(AXP_ICON_STYLE_PROVIDER, { optional: true }) ?? [];
|
|
870
|
-
this.iconsCache = null;
|
|
871
|
-
this.stylesCache = null;
|
|
872
|
-
}
|
|
873
|
-
//#endregion
|
|
874
|
-
//#region ---- Public Methods ----
|
|
875
|
-
/**
|
|
876
|
-
* Get all available icon styles from registered providers.
|
|
877
|
-
* Results are cached after first call.
|
|
878
|
-
*/
|
|
879
|
-
async getStyles() {
|
|
880
|
-
if (this.stylesCache) {
|
|
881
|
-
return this.stylesCache;
|
|
882
|
-
}
|
|
883
|
-
const allStyles = [];
|
|
884
|
-
for (const provider of this.styleProviders) {
|
|
885
|
-
const result = await provider.provide();
|
|
886
|
-
allStyles.push(...result);
|
|
887
|
-
}
|
|
888
|
-
// Remove duplicates based on style name
|
|
889
|
-
const uniqueStyles = allStyles.filter((style, index, self) => index === self.findIndex((s) => s.name === style.name));
|
|
890
|
-
this.stylesCache = uniqueStyles;
|
|
891
|
-
return uniqueStyles;
|
|
892
|
-
}
|
|
893
|
-
/**
|
|
894
|
-
* Get all available icons from registered providers.
|
|
895
|
-
* Icons from multiple providers are merged, with duplicates removed.
|
|
896
|
-
* Results are cached after first call.
|
|
897
|
-
*/
|
|
898
|
-
async getIcons() {
|
|
899
|
-
if (this.iconsCache) {
|
|
900
|
-
return this.iconsCache;
|
|
901
|
-
}
|
|
902
|
-
const allIcons = [];
|
|
903
|
-
for (const provider of this.iconProviders) {
|
|
904
|
-
const result = await provider.provide();
|
|
905
|
-
allIcons.push(...result);
|
|
906
|
-
}
|
|
907
|
-
// Remove duplicates based on icon name, keeping first occurrence
|
|
908
|
-
const uniqueIcons = allIcons.filter((icon, index, self) => index === self.findIndex((i) => i.name === icon.name));
|
|
909
|
-
this.iconsCache = uniqueIcons;
|
|
910
|
-
return uniqueIcons;
|
|
911
|
-
}
|
|
912
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPIconChooserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
913
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPIconChooserService, providedIn: 'root' }); }
|
|
914
|
-
}
|
|
915
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPIconChooserService, decorators: [{
|
|
916
|
-
type: Injectable,
|
|
917
|
-
args: [{ providedIn: 'root' }]
|
|
918
|
-
}] });
|
|
919
|
-
|
|
920
|
-
class AXPIconChooserPopupComponent extends AXBasePageComponent {
|
|
921
|
-
constructor() {
|
|
922
|
-
super(...arguments);
|
|
923
|
-
this.icons = [];
|
|
924
|
-
this.filteredIcons = [];
|
|
925
|
-
this.searchQuery = '';
|
|
926
|
-
this.viewModes = [
|
|
927
|
-
{ value: 'square', text: '@general:widgets.icon-chooser.view-mode.square', icon: 'fa-solid fa-border-all' },
|
|
928
|
-
{
|
|
929
|
-
value: 'rectangle',
|
|
930
|
-
text: '@general:widgets.icon-chooser.view-mode.rectangle',
|
|
931
|
-
icon: 'fa-solid fa-list',
|
|
932
|
-
},
|
|
933
|
-
];
|
|
934
|
-
this.selectedViewMode = 'square';
|
|
935
|
-
this.iconTypes = [];
|
|
936
|
-
this.selectedIconType = 'fa-solid';
|
|
937
|
-
this.popupService = inject(AXPIconChooserService);
|
|
938
|
-
}
|
|
939
|
-
async ngOnInit() {
|
|
940
|
-
this.iconTypes = await this.popupService.getStyles();
|
|
941
|
-
this.icons = await this.popupService.getIcons();
|
|
942
|
-
this.applyFilters();
|
|
943
|
-
this.cdr.detectChanges();
|
|
944
|
-
}
|
|
945
|
-
handleSearch(event) {
|
|
946
|
-
this.searchQuery = event.value?.toLowerCase();
|
|
947
|
-
this.applyFilters();
|
|
948
|
-
}
|
|
949
|
-
handleViewModeChange(mode) {
|
|
950
|
-
this.selectedViewMode = mode.value;
|
|
951
|
-
}
|
|
952
|
-
handleIconTypeChange(type) {
|
|
953
|
-
this.selectedIconType = type.name;
|
|
954
|
-
this.applyFilters();
|
|
955
|
-
}
|
|
956
|
-
applyFilters() {
|
|
957
|
-
let result = this.icons;
|
|
958
|
-
if (this.searchQuery) {
|
|
959
|
-
result = result.filter((icon) => icon.label.toLowerCase().includes(this.searchQuery) ||
|
|
960
|
-
icon.tags?.some((tag) => tag.toLowerCase().includes(this.searchQuery)));
|
|
961
|
-
}
|
|
962
|
-
result = result.filter((icon) => {
|
|
963
|
-
if (!icon.supportedStyle || icon.supportedStyle.length === 0) {
|
|
964
|
-
return true;
|
|
965
|
-
}
|
|
966
|
-
return icon.supportedStyle.includes(this.selectedIconType);
|
|
967
|
-
});
|
|
968
|
-
this.filteredIcons = result;
|
|
969
|
-
}
|
|
970
|
-
selectIcon(icon) {
|
|
971
|
-
this.close({
|
|
972
|
-
label: icon.label,
|
|
973
|
-
styleClass: this.selectedIconType,
|
|
974
|
-
iconClass: `fa-${icon.name}`,
|
|
975
|
-
});
|
|
976
|
-
}
|
|
977
|
-
getIconClass(icon) {
|
|
978
|
-
return `${this.selectedIconType} fa-${icon.name}`;
|
|
979
|
-
}
|
|
980
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPIconChooserPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
981
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: AXPIconChooserPopupComponent, isStandalone: true, selector: "ng-component", inputs: { value: "value" }, usesInheritance: true, ngImport: i0, template: `
|
|
982
|
-
<div class="ax-flex ax-flex-col ax-h-full ax-bg-lightest">
|
|
983
|
-
<!-- Fixed Header Section -->
|
|
984
|
-
<div class="ax-sticky ax-top-0 ax-z-10 ax-bg-lightest ax-border-b ax-p-4 ax-gap-4 ax-flex ax-flex-col">
|
|
985
|
-
<!-- Search Bar -->
|
|
986
|
-
<div class="ax-flex ax-justify-center">
|
|
987
|
-
<ax-search-box
|
|
988
|
-
class="ax-w-full"
|
|
989
|
-
(onValueChanged)="handleSearch($event)"
|
|
990
|
-
[placeholder]="'@general:widgets.icon-chooser.search-placeholder' | translate | async"
|
|
991
|
-
></ax-search-box>
|
|
992
|
-
</div>
|
|
655
|
+
selectIcon(icon) {
|
|
656
|
+
this.close({
|
|
657
|
+
label: icon.label,
|
|
658
|
+
styleClass: this.selectedIconType,
|
|
659
|
+
iconClass: `fa-${icon.name}`,
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
getIconClass(icon) {
|
|
663
|
+
return `${this.selectedIconType} fa-${icon.name}`;
|
|
664
|
+
}
|
|
665
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
666
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPIconChooserPopupComponent, isStandalone: true, selector: "ng-component", inputs: { value: "value" }, usesInheritance: true, ngImport: i0, template: `
|
|
667
|
+
<div class="ax-flex ax-flex-col ax-h-full ax-bg-lightest">
|
|
668
|
+
<!-- Fixed Header Section -->
|
|
669
|
+
<div class="ax-sticky ax-top-0 ax-z-10 ax-bg-lightest ax-border-b ax-p-4 ax-gap-4 ax-flex ax-flex-col">
|
|
670
|
+
<!-- Search Bar -->
|
|
671
|
+
<div class="ax-flex ax-justify-center">
|
|
672
|
+
<ax-search-box
|
|
673
|
+
class="ax-w-full"
|
|
674
|
+
(onValueChanged)="handleSearch($event)"
|
|
675
|
+
[placeholder]="'@general:widgets.icon-chooser.search-placeholder' | translate | async"
|
|
676
|
+
></ax-search-box>
|
|
677
|
+
</div>
|
|
993
678
|
|
|
994
679
|
<!-- Controls Row -->
|
|
995
680
|
<div class="ax-flex ax-justify-between ax-items-center ax-flex-wrap ax-gap-2">
|
|
@@ -1053,9 +738,9 @@ class AXPIconChooserPopupComponent extends AXBasePageComponent {
|
|
|
1053
738
|
</div>
|
|
1054
739
|
</div>
|
|
1055
740
|
</div>
|
|
1056
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type:
|
|
741
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i1$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "component", type: i2$1.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "color", "look", "fitParent", "selection"], outputs: ["onBlur", "onFocus", "lookChange", "colorChange", "disabledChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: i2$1.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1057
742
|
}
|
|
1058
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
743
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserPopupComponent, decorators: [{
|
|
1059
744
|
type: Component,
|
|
1060
745
|
args: [{
|
|
1061
746
|
template: `
|
|
@@ -1160,7 +845,7 @@ class AXPIconChooserWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
1160
845
|
}
|
|
1161
846
|
}
|
|
1162
847
|
return value;
|
|
1163
|
-
}, ...(ngDevMode ? [{ debugName: "computedValue" }] : []));
|
|
848
|
+
}, ...(ngDevMode ? [{ debugName: "computedValue" }] : /* istanbul ignore next */ []));
|
|
1164
849
|
}
|
|
1165
850
|
async openPopup() {
|
|
1166
851
|
const result = await this.popupService.open(AXPIconChooserPopupComponent, {
|
|
@@ -1185,8 +870,8 @@ class AXPIconChooserWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
1185
870
|
editIcon() {
|
|
1186
871
|
this.openPopup();
|
|
1187
872
|
}
|
|
1188
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1189
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
873
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
874
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPIconChooserWidgetEditComponent, isStandalone: true, selector: "ax-icon-chooser-edit", usesInheritance: true, ngImport: i0, template: `
|
|
1190
875
|
<div
|
|
1191
876
|
class="ax-grid ax-grid-cols-[6rem_auto] ax-items-center ax-rounded-md ax-text-3xl ax-w-fit"
|
|
1192
877
|
[class.ax-border]="getValue()"
|
|
@@ -1217,7 +902,7 @@ class AXPIconChooserWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
1217
902
|
</div>
|
|
1218
903
|
`, isInline: true, styles: [".icon-container{background-color:rgba(var(--ax-sys-color-primary-300),10%);background-image:linear-gradient(135deg,rgba(var(--ax-sys-color-primary-300),50%) 10%,transparent 0,transparent 50%,rgba(var(--ax-sys-color-primary-300),50%) 0,rgba(var(--ax-sys-color-primary-300),50%) 60%,transparent 0,transparent);background-size:7.5px 7.5px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1219
904
|
}
|
|
1220
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
905
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIconChooserWidgetEditComponent, decorators: [{
|
|
1221
906
|
type: Component,
|
|
1222
907
|
args: [{ selector: 'ax-icon-chooser-edit', template: `
|
|
1223
908
|
<div
|
|
@@ -1259,7 +944,7 @@ var iconChooserEdit_component = /*#__PURE__*/Object.freeze({
|
|
|
1259
944
|
const AXPIconChooserWidget = {
|
|
1260
945
|
name: 'icon-chooser',
|
|
1261
946
|
title: 'Icon Chooser',
|
|
1262
|
-
icon: 'fa-
|
|
947
|
+
icon: 'fa-light fa-icons',
|
|
1263
948
|
type: 'editor',
|
|
1264
949
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
1265
950
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
@@ -1268,10 +953,10 @@ const AXPIconChooserWidget = {
|
|
|
1268
953
|
component: () => Promise.resolve().then(function () { return iconChooserEdit_component; }).then((c) => c.AXPIconChooserWidgetEditComponent),
|
|
1269
954
|
},
|
|
1270
955
|
column: {
|
|
1271
|
-
component: () => import('./acorex-platform-themes-shared-icon-chooser-column.component-
|
|
956
|
+
component: () => import('./acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs').then((c) => c.AXPIconChooserWidgetColumnComponent),
|
|
1272
957
|
},
|
|
1273
958
|
view: {
|
|
1274
|
-
component: () => import('./acorex-platform-themes-shared-icon-chooser-view.component-
|
|
959
|
+
component: () => import('./acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs').then((c) => c.AXPIconChooserWidgetViewComponent),
|
|
1275
960
|
},
|
|
1276
961
|
},
|
|
1277
962
|
};
|
|
@@ -1814,50 +1499,207 @@ function provideCustomIconStyleProvider(providerClass) {
|
|
|
1814
1499
|
multi: true,
|
|
1815
1500
|
};
|
|
1816
1501
|
}
|
|
1817
|
-
//#endregion
|
|
1502
|
+
//#endregion
|
|
1503
|
+
|
|
1504
|
+
class AXPFontSizeChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
1505
|
+
constructor() {
|
|
1506
|
+
super(...arguments);
|
|
1507
|
+
this.sizes = signal(['small', 'medium', 'large', 'x-large'], ...(ngDevMode ? [{ debugName: "sizes" }] : /* istanbul ignore next */ []));
|
|
1508
|
+
this.selectedSize = signal(null, ...(ngDevMode ? [{ debugName: "selectedSize" }] : /* istanbul ignore next */ []));
|
|
1509
|
+
this.#eff = effect(() => {
|
|
1510
|
+
if (this.getValue()) {
|
|
1511
|
+
this.selectedSize.set(this.sizes().find((s) => s === this.getValue()) ?? this.sizes()[0]);
|
|
1512
|
+
}
|
|
1513
|
+
}, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
|
|
1514
|
+
}
|
|
1515
|
+
#eff;
|
|
1516
|
+
onSizeClick(size) {
|
|
1517
|
+
this.setValue(size);
|
|
1518
|
+
}
|
|
1519
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFontSizeChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1520
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPFontSizeChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
1521
|
+
@for (size of sizes(); track size) {
|
|
1522
|
+
<div (click)="onSizeClick(size)" [style.font-size]="size" [class.--selected]="size === selectedSize()">
|
|
1523
|
+
<div>
|
|
1524
|
+
<span>{{ '@layout:terms.font-sizes.' + size | translate | async }}</span>
|
|
1525
|
+
</div>
|
|
1526
|
+
</div>
|
|
1527
|
+
}
|
|
1528
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1529
|
+
}
|
|
1530
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFontSizeChooserWidgetComponent, decorators: [{
|
|
1531
|
+
type: Component,
|
|
1532
|
+
args: [{ template: `
|
|
1533
|
+
@for (size of sizes(); track size) {
|
|
1534
|
+
<div (click)="onSizeClick(size)" [style.font-size]="size" [class.--selected]="size === selectedSize()">
|
|
1535
|
+
<div>
|
|
1536
|
+
<span>{{ '@layout:terms.font-sizes.' + size | translate | async }}</span>
|
|
1537
|
+
</div>
|
|
1538
|
+
</div>
|
|
1539
|
+
}
|
|
1540
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, AXSelectionCdkModule, AXTranslationModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"] }]
|
|
1541
|
+
}] });
|
|
1542
|
+
|
|
1543
|
+
var fontSizeChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
1544
|
+
__proto__: null,
|
|
1545
|
+
AXPFontSizeChooserWidgetComponent: AXPFontSizeChooserWidgetComponent
|
|
1546
|
+
});
|
|
1547
|
+
|
|
1548
|
+
const AXPFontSizeChooserWidget = {
|
|
1549
|
+
name: "font-size-chooser",
|
|
1550
|
+
title: "Font Size Chooser",
|
|
1551
|
+
icon: "fa-light fa-text-size",
|
|
1552
|
+
type: 'editor',
|
|
1553
|
+
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
1554
|
+
properties: [
|
|
1555
|
+
AXP_NAME_PROPERTY,
|
|
1556
|
+
AXP_DATA_PATH_PROPERTY,
|
|
1557
|
+
AXP_DISABLED_PROPERTY,
|
|
1558
|
+
],
|
|
1559
|
+
components: {
|
|
1560
|
+
edit: {
|
|
1561
|
+
component: () => Promise.resolve().then(function () { return fontSizeChooserWidget_component; }).then((c) => c.AXPFontSizeChooserWidgetComponent),
|
|
1562
|
+
},
|
|
1563
|
+
}
|
|
1564
|
+
};
|
|
1565
|
+
|
|
1566
|
+
class AXPFontStyleChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
1567
|
+
constructor() {
|
|
1568
|
+
super(...arguments);
|
|
1569
|
+
this.fonts = signal([
|
|
1570
|
+
{ id: 'system-ui', title: 'Default' },
|
|
1571
|
+
{ id: 'serif', title: 'Serif' },
|
|
1572
|
+
{ id: 'sans-serif', title: 'Sans-serif' },
|
|
1573
|
+
{ id: 'monospace', title: 'Monospace' },
|
|
1574
|
+
{ id: 'arial', title: 'Arial' },
|
|
1575
|
+
{ id: 'verdana', title: 'Verdana' },
|
|
1576
|
+
{ id: 'tahoma', title: 'Tahoma' },
|
|
1577
|
+
{ id: 'times-new-roman', title: 'Times New Roman' },
|
|
1578
|
+
{ id: 'georgia', title: 'Georgia' },
|
|
1579
|
+
{ id: 'helvetica', title: 'Helvetica' },
|
|
1580
|
+
{ id: 'calibri', title: 'Calibri' },
|
|
1581
|
+
{ id: 'cursive', title: 'Cursive' },
|
|
1582
|
+
{ id: 'vazirmatn', title: 'Vazir وزیر' },
|
|
1583
|
+
], ...(ngDevMode ? [{ debugName: "fonts" }] : /* istanbul ignore next */ []));
|
|
1584
|
+
this.selectedFont = signal(null, ...(ngDevMode ? [{ debugName: "selectedFont" }] : /* istanbul ignore next */ []));
|
|
1585
|
+
this.#eff = effect(() => {
|
|
1586
|
+
if (this.getValue()) {
|
|
1587
|
+
this.selectedFont.set(this.fonts().find((f) => f.id === this.getValue()) ?? this.fonts()[0]);
|
|
1588
|
+
}
|
|
1589
|
+
}, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
|
|
1590
|
+
}
|
|
1591
|
+
#eff;
|
|
1592
|
+
onFontClick(font) {
|
|
1593
|
+
this.setValue(font.id);
|
|
1594
|
+
}
|
|
1595
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1596
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPFontStyleChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
1597
|
+
@for (font of fonts(); track font.id) {
|
|
1598
|
+
<div
|
|
1599
|
+
(click)="onFontClick(font)"
|
|
1600
|
+
[class.--selected]="font.id === selectedFont()?.id"
|
|
1601
|
+
[style.font-family]="font.id"
|
|
1602
|
+
>
|
|
1603
|
+
<div>
|
|
1604
|
+
<span>{{ font.title }}</span>
|
|
1605
|
+
</div>
|
|
1606
|
+
</div>
|
|
1607
|
+
}
|
|
1608
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1609
|
+
}
|
|
1610
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, decorators: [{
|
|
1611
|
+
type: Component,
|
|
1612
|
+
args: [{ template: `
|
|
1613
|
+
@for (font of fonts(); track font.id) {
|
|
1614
|
+
<div
|
|
1615
|
+
(click)="onFontClick(font)"
|
|
1616
|
+
[class.--selected]="font.id === selectedFont()?.id"
|
|
1617
|
+
[style.font-family]="font.id"
|
|
1618
|
+
>
|
|
1619
|
+
<div>
|
|
1620
|
+
<span>{{ font.title }}</span>
|
|
1621
|
+
</div>
|
|
1622
|
+
</div>
|
|
1623
|
+
}
|
|
1624
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, AXSelectionCdkModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}\n"] }]
|
|
1625
|
+
}] });
|
|
1626
|
+
|
|
1627
|
+
var fontStyleChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
1628
|
+
__proto__: null,
|
|
1629
|
+
AXPFontStyleChooserWidgetComponent: AXPFontStyleChooserWidgetComponent
|
|
1630
|
+
});
|
|
1631
|
+
|
|
1632
|
+
const AXPFontStyleChooserWidget = {
|
|
1633
|
+
name: "font-style-chooser",
|
|
1634
|
+
title: "Font Style Chooser",
|
|
1635
|
+
icon: "fa-light fa-font",
|
|
1636
|
+
type: 'editor',
|
|
1637
|
+
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
1638
|
+
properties: [
|
|
1639
|
+
AXP_NAME_PROPERTY,
|
|
1640
|
+
AXP_DATA_PATH_PROPERTY,
|
|
1641
|
+
AXP_DISABLED_PROPERTY,
|
|
1642
|
+
],
|
|
1643
|
+
components: {
|
|
1644
|
+
edit: {
|
|
1645
|
+
component: () => Promise.resolve().then(function () { return fontStyleChooserWidget_component; }).then((c) => c.AXPFontStyleChooserWidgetComponent),
|
|
1646
|
+
},
|
|
1647
|
+
}
|
|
1648
|
+
};
|
|
1818
1649
|
|
|
1819
1650
|
class AXPMenuOrientationChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
1820
1651
|
constructor() {
|
|
1821
1652
|
super(...arguments);
|
|
1822
|
-
this.orientations =
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1653
|
+
this.orientations = computed(() => this.options()['chooser'] === 'vertical-mode'
|
|
1654
|
+
? [
|
|
1655
|
+
{ id: 'compact', image: '/assets/images/menu-mode/compact.svg' },
|
|
1656
|
+
{ id: 'full', image: '/assets/images/menu-mode/full.svg' },
|
|
1657
|
+
]
|
|
1658
|
+
: [
|
|
1659
|
+
{ id: 'vertical', icon: 'fa-regular fa-square-ellipsis-vertical' },
|
|
1660
|
+
{ id: 'horizontal', icon: 'fa-regular fa-square-ellipsis' },
|
|
1661
|
+
], ...(ngDevMode ? [{ debugName: "orientations" }] : /* istanbul ignore next */ []));
|
|
1662
|
+
this.selectedOrientation = signal(null, ...(ngDevMode ? [{ debugName: "selectedOrientation" }] : /* istanbul ignore next */ []));
|
|
1827
1663
|
this.#eff = effect(() => {
|
|
1828
|
-
|
|
1829
|
-
|
|
1664
|
+
const options = this.orientations();
|
|
1665
|
+
const value = this.getValue();
|
|
1666
|
+
if (value) {
|
|
1667
|
+
this.selectedOrientation.set(options.find((o) => o.id === value) ?? options[0]);
|
|
1830
1668
|
}
|
|
1831
|
-
}, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
|
|
1669
|
+
}, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
|
|
1832
1670
|
}
|
|
1833
1671
|
#eff;
|
|
1834
1672
|
onOrientationClick(orientation) {
|
|
1835
1673
|
this.setValue(orientation.id);
|
|
1836
1674
|
}
|
|
1837
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1838
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1675
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuOrientationChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1676
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPMenuOrientationChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
1839
1677
|
@for (orientation of orientations(); track orientation.id) {
|
|
1840
1678
|
<div (click)="onOrientationClick(orientation)" [class.--selected]="orientation.id === selectedOrientation()?.id">
|
|
1841
|
-
|
|
1679
|
+
@if (orientation.image) {
|
|
1680
|
+
<img [src]="orientation.image" alt="" />
|
|
1681
|
+
} @else {
|
|
1842
1682
|
<i [class]="orientation.icon"></i>
|
|
1843
|
-
|
|
1844
|
-
|
|
1683
|
+
<span>{{ '@layout:terms.menu-modes.' + orientation.id | translate | async }}</span>
|
|
1684
|
+
}
|
|
1845
1685
|
</div>
|
|
1846
1686
|
}
|
|
1847
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{padding-top:.25rem!important;padding-bottom:.25rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1687
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>div img{height:2rem;width:auto}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{padding-top:.25rem!important;padding-bottom:.25rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1848
1688
|
}
|
|
1849
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPMenuOrientationChooserWidgetComponent, decorators: [{
|
|
1850
1690
|
type: Component,
|
|
1851
1691
|
args: [{ template: `
|
|
1852
1692
|
@for (orientation of orientations(); track orientation.id) {
|
|
1853
1693
|
<div (click)="onOrientationClick(orientation)" [class.--selected]="orientation.id === selectedOrientation()?.id">
|
|
1854
|
-
|
|
1694
|
+
@if (orientation.image) {
|
|
1695
|
+
<img [src]="orientation.image" alt="" />
|
|
1696
|
+
} @else {
|
|
1855
1697
|
<i [class]="orientation.icon"></i>
|
|
1856
|
-
|
|
1857
|
-
|
|
1698
|
+
<span>{{ '@layout:terms.menu-modes.' + orientation.id | translate | async }}</span>
|
|
1699
|
+
}
|
|
1858
1700
|
</div>
|
|
1859
1701
|
}
|
|
1860
|
-
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, AXSelectionCdkModule, AXTranslationModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{padding-top:.25rem!important;padding-bottom:.25rem!important}\n"] }]
|
|
1702
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, FormsModule, AXSelectionCdkModule, AXTranslationModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>div img{height:2rem;width:auto}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{padding-top:.25rem!important;padding-bottom:.25rem!important}\n"] }]
|
|
1861
1703
|
}] });
|
|
1862
1704
|
|
|
1863
1705
|
var menuOrientationChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
@@ -1883,6 +1725,318 @@ const AXPMenuOrientationChooserWidget = {
|
|
|
1883
1725
|
}
|
|
1884
1726
|
};
|
|
1885
1727
|
|
|
1728
|
+
//#endregion
|
|
1729
|
+
//#region ---- Color utilities ----
|
|
1730
|
+
function hexToRgb(hex) {
|
|
1731
|
+
const normalized = hex.trim().replace(/^#/, '');
|
|
1732
|
+
const full = normalized.length === 3
|
|
1733
|
+
? normalized
|
|
1734
|
+
.split('')
|
|
1735
|
+
.map((c) => c + c)
|
|
1736
|
+
.join('')
|
|
1737
|
+
: normalized;
|
|
1738
|
+
return [
|
|
1739
|
+
parseInt(full.slice(0, 2), 16),
|
|
1740
|
+
parseInt(full.slice(2, 4), 16),
|
|
1741
|
+
parseInt(full.slice(4, 6), 16),
|
|
1742
|
+
];
|
|
1743
|
+
}
|
|
1744
|
+
function relativeLuminance(hex) {
|
|
1745
|
+
const [r, g, b] = hexToRgb(hex).map((c) => {
|
|
1746
|
+
const s = c / 255;
|
|
1747
|
+
return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);
|
|
1748
|
+
});
|
|
1749
|
+
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
1750
|
+
}
|
|
1751
|
+
function contrastForeground(backgroundHex) {
|
|
1752
|
+
return relativeLuminance(backgroundHex) > 0.55 ? '#171717' : '#ffffff';
|
|
1753
|
+
}
|
|
1754
|
+
function titleCase(str) {
|
|
1755
|
+
return str.replace(/-/g, ' ').replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.slice(1).toLowerCase());
|
|
1756
|
+
}
|
|
1757
|
+
//#endregion
|
|
1758
|
+
//#region ---- Surface variants (palette-synchronized) ----
|
|
1759
|
+
/**
|
|
1760
|
+
* Seven tonal steps per semantic color. Backgrounds are mixed in RGB using the **same palette’s**
|
|
1761
|
+
* canvas `light` and `dark` as poles so swatches stay aligned with `AXPThemePaletteProvider` data.
|
|
1762
|
+
*/
|
|
1763
|
+
const SURFACE_VARIANTS = ['lightest', 'lighter', 'light', 'surface', 'dark', 'darker', 'darkest'];
|
|
1764
|
+
function styleTitlePrefix(style) {
|
|
1765
|
+
const accentMatch = /^accent(\d+)$/.exec(style);
|
|
1766
|
+
if (accentMatch) {
|
|
1767
|
+
return `Accent ${accentMatch[1]}`;
|
|
1768
|
+
}
|
|
1769
|
+
return titleCase(style);
|
|
1770
|
+
}
|
|
1771
|
+
function surfaceVariantTitle(style, variant) {
|
|
1772
|
+
if (variant === 'surface') {
|
|
1773
|
+
return styleTitlePrefix(style);
|
|
1774
|
+
}
|
|
1775
|
+
return `${styleTitlePrefix(style)} ${titleCase(variant)}`;
|
|
1776
|
+
}
|
|
1777
|
+
/** Tailwind utility triplet stored by theme-color-chooser and outcome display rules. */
|
|
1778
|
+
function buildThemeSurfaceColorTriplet(styleKey, variant) {
|
|
1779
|
+
return {
|
|
1780
|
+
color: `ax-text-${styleKey}-on-${variant}`,
|
|
1781
|
+
background: `ax-bg-${styleKey}-${variant}`,
|
|
1782
|
+
border: `ax-border-${styleKey}-${variant}`,
|
|
1783
|
+
};
|
|
1784
|
+
}
|
|
1785
|
+
/** Ordered `"foreground background border"` string for theme-color-chooser values. */
|
|
1786
|
+
function buildThemeSurfaceColorValue(styleKey, variant = 'lightest') {
|
|
1787
|
+
const triplet = buildThemeSurfaceColorTriplet(styleKey, variant);
|
|
1788
|
+
return `${triplet.color} ${triplet.background} ${triplet.border}`;
|
|
1789
|
+
}
|
|
1790
|
+
function pushVariantScale(entries, styleKey, _baseHex, _canvas) {
|
|
1791
|
+
for (const variant of SURFACE_VARIANTS) {
|
|
1792
|
+
const name = `${styleKey}-${variant}`;
|
|
1793
|
+
entries.push({
|
|
1794
|
+
title: surfaceVariantTitle(styleKey, variant),
|
|
1795
|
+
name,
|
|
1796
|
+
...buildThemeSurfaceColorTriplet(styleKey, variant),
|
|
1797
|
+
});
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
function pushFlatSwatch(entries, title, name, hex) {
|
|
1801
|
+
const color = contrastForeground(hex);
|
|
1802
|
+
entries.push({ title, name, color, background: hex, border: hex });
|
|
1803
|
+
}
|
|
1804
|
+
/**
|
|
1805
|
+
* Builds the full chooser list from a single `AXPThemePalette` (colors object only).
|
|
1806
|
+
*/
|
|
1807
|
+
function buildColorsFromThemePalette(palette) {
|
|
1808
|
+
const colors = palette.colors;
|
|
1809
|
+
const canvas = { light: colors.light, dark: colors.dark };
|
|
1810
|
+
const entries = [];
|
|
1811
|
+
const core = ['primary', 'secondary', 'success', 'warning', 'danger'];
|
|
1812
|
+
for (const key of core) {
|
|
1813
|
+
pushVariantScale(entries, key, colors[key], canvas);
|
|
1814
|
+
}
|
|
1815
|
+
const neutral = colors.neutral;
|
|
1816
|
+
if (neutral) {
|
|
1817
|
+
pushVariantScale(entries, 'neutral', neutral, canvas);
|
|
1818
|
+
}
|
|
1819
|
+
colors.accents.forEach((hex, index) => {
|
|
1820
|
+
pushVariantScale(entries, `accent${index + 1}`, hex, canvas);
|
|
1821
|
+
});
|
|
1822
|
+
pushFlatSwatch(entries, 'Canvas Light', 'canvas-light', colors.light);
|
|
1823
|
+
pushFlatSwatch(entries, 'Canvas Dark', 'canvas-dark', colors.dark);
|
|
1824
|
+
return entries;
|
|
1825
|
+
}
|
|
1826
|
+
//#endregion
|
|
1827
|
+
//#region ---- Service ----
|
|
1828
|
+
class AXPColorChooserService {
|
|
1829
|
+
constructor() {
|
|
1830
|
+
this.themeStore = inject(AXPLayoutThemeService);
|
|
1831
|
+
this.palettePromise = inject(AXP_THEME_PALETTE_PROVIDER);
|
|
1832
|
+
this.cacheKey = null;
|
|
1833
|
+
this.cache = null;
|
|
1834
|
+
}
|
|
1835
|
+
async getColors() {
|
|
1836
|
+
const paletteName = this.themeStore.currentPalette();
|
|
1837
|
+
if (this.cache && this.cacheKey === paletteName) {
|
|
1838
|
+
return this.cache;
|
|
1839
|
+
}
|
|
1840
|
+
const provider = await this.palettePromise;
|
|
1841
|
+
const list = await provider.getList();
|
|
1842
|
+
const palette = list.find((p) => p.name === paletteName) ?? list.find((p) => p.name === 'default') ?? list[0] ?? null;
|
|
1843
|
+
const colors = palette ? buildColorsFromThemePalette(palette) : [];
|
|
1844
|
+
this.cacheKey = paletteName;
|
|
1845
|
+
this.cache = colors;
|
|
1846
|
+
return colors;
|
|
1847
|
+
}
|
|
1848
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1849
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserService, providedIn: 'root' }); }
|
|
1850
|
+
}
|
|
1851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserService, decorators: [{
|
|
1852
|
+
type: Injectable,
|
|
1853
|
+
args: [{
|
|
1854
|
+
providedIn: 'root',
|
|
1855
|
+
}]
|
|
1856
|
+
}] });
|
|
1857
|
+
|
|
1858
|
+
class AXPColorChooserWidgetEditComponent extends AXPValueWidgetComponent {
|
|
1859
|
+
constructor() {
|
|
1860
|
+
super(...arguments);
|
|
1861
|
+
this.colorService = inject(AXPColorChooserService);
|
|
1862
|
+
this.colors = signal([], ...(ngDevMode ? [{ debugName: "colors" }] : /* istanbul ignore next */ []));
|
|
1863
|
+
this.placeholder = computed(() => this.options()['placeholder'] ?? '', ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
1864
|
+
this.selectedColor = computed(() => {
|
|
1865
|
+
const value = this.getValue();
|
|
1866
|
+
const fallbackName = () => this.colors()[0]?.name;
|
|
1867
|
+
if (!value) {
|
|
1868
|
+
return fallbackName();
|
|
1869
|
+
}
|
|
1870
|
+
if (typeof value === 'string') {
|
|
1871
|
+
const parsed = this.parseStringValue(value);
|
|
1872
|
+
if (parsed) {
|
|
1873
|
+
return parsed;
|
|
1874
|
+
}
|
|
1875
|
+
return fallbackName();
|
|
1876
|
+
}
|
|
1877
|
+
return value.name;
|
|
1878
|
+
}, ...(ngDevMode ? [{ debugName: "selectedColor" }] : /* istanbul ignore next */ []));
|
|
1879
|
+
}
|
|
1880
|
+
async ngOnInit() {
|
|
1881
|
+
const allColors = await this.colorService.getColors();
|
|
1882
|
+
this.colors.set(allColors);
|
|
1883
|
+
super.ngOnInit();
|
|
1884
|
+
}
|
|
1885
|
+
handleValueChange(event) {
|
|
1886
|
+
if (event.isUserInteraction) {
|
|
1887
|
+
if (!event.value) {
|
|
1888
|
+
this.setValue(undefined);
|
|
1889
|
+
return;
|
|
1890
|
+
}
|
|
1891
|
+
const color = event.component.selectedItems[0];
|
|
1892
|
+
// Always store as ordered string: "color background border"
|
|
1893
|
+
const stringValue = `${color.color} ${color.background} ${color.border}`;
|
|
1894
|
+
this.setValue(stringValue);
|
|
1895
|
+
}
|
|
1896
|
+
}
|
|
1897
|
+
isHexSwatch(color) {
|
|
1898
|
+
return color.background.startsWith('#');
|
|
1899
|
+
}
|
|
1900
|
+
parseStringValue(value) {
|
|
1901
|
+
const parts = value.trim().split(/\s+/);
|
|
1902
|
+
if (parts.length !== 3) {
|
|
1903
|
+
return null;
|
|
1904
|
+
}
|
|
1905
|
+
const [color, background, border] = parts;
|
|
1906
|
+
const exactMatch = this.colors().find((entry) => entry.color === color && entry.background === background && entry.border === border);
|
|
1907
|
+
if (exactMatch) {
|
|
1908
|
+
return exactMatch.name;
|
|
1909
|
+
}
|
|
1910
|
+
const backgroundMatch = /^ax-bg-(.+)-(.+)$/.exec(background);
|
|
1911
|
+
if (backgroundMatch) {
|
|
1912
|
+
const name = `${backgroundMatch[1]}-${backgroundMatch[2]}`;
|
|
1913
|
+
if (this.colors().some((entry) => entry.name === name)) {
|
|
1914
|
+
return name;
|
|
1915
|
+
}
|
|
1916
|
+
}
|
|
1917
|
+
return null;
|
|
1918
|
+
}
|
|
1919
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1920
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPColorChooserWidgetEditComponent, isStandalone: true, selector: "ax-color-chooser-widget", host: { classAttribute: "ax-block ax-flex-1 ax-w-full" }, usesInheritance: true, ngImport: i0, template: `
|
|
1921
|
+
<ax-form [messageStyle]="'float'" [updateOn]="'change'">
|
|
1922
|
+
<ax-form-field>
|
|
1923
|
+
<ax-select-box
|
|
1924
|
+
[dataSource]="colors()"
|
|
1925
|
+
textField="title"
|
|
1926
|
+
valueField="name"
|
|
1927
|
+
[placeholder]="placeholder()"
|
|
1928
|
+
[itemTemplate]="customItemTemplate"
|
|
1929
|
+
[ngModel]="selectedColor()"
|
|
1930
|
+
(onValueChanged)="handleValueChange($event)"
|
|
1931
|
+
[selectedTemplate]="customItemTemplate"
|
|
1932
|
+
>
|
|
1933
|
+
<ng-template #customItemTemplate let-item>
|
|
1934
|
+
<div class="ax-flex ax-items-center ax-gap-2 ax-p-2">
|
|
1935
|
+
@if (isHexSwatch(item.data)) {
|
|
1936
|
+
<div
|
|
1937
|
+
class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-solid"
|
|
1938
|
+
[style.background-color]="item.data.background"
|
|
1939
|
+
[style.border-color]="item.data.border"
|
|
1940
|
+
[style.color]="item.data.color"
|
|
1941
|
+
>
|
|
1942
|
+
<span>Aa</span>
|
|
1943
|
+
</div>
|
|
1944
|
+
} @else {
|
|
1945
|
+
<div
|
|
1946
|
+
class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-dashed ax-border-black dark:ax-border-white"
|
|
1947
|
+
[class]="item.data.background"
|
|
1948
|
+
>
|
|
1949
|
+
<span [class]="item.data.color">Aa</span>
|
|
1950
|
+
</div>
|
|
1951
|
+
}
|
|
1952
|
+
<span>{{ item.data.title }}</span>
|
|
1953
|
+
</div>
|
|
1954
|
+
</ng-template>
|
|
1955
|
+
<ax-search-box look="fill"></ax-search-box>
|
|
1956
|
+
<ax-validation-rule message="field can't be empty" rule="required"></ax-validation-rule>
|
|
1957
|
+
</ax-select-box>
|
|
1958
|
+
</ax-form-field>
|
|
1959
|
+
</ax-form>
|
|
1960
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i1$2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i2$2.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i2$2.AXFormComponent, selector: "ax-form", inputs: ["disabled", "readonly", "labelMode", "look", "messageStyle", "updateOn", "inUserInteractionActive"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i2$2.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i1$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1961
|
+
}
|
|
1962
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPColorChooserWidgetEditComponent, decorators: [{
|
|
1963
|
+
type: Component,
|
|
1964
|
+
args: [{
|
|
1965
|
+
selector: 'ax-color-chooser-widget',
|
|
1966
|
+
template: `
|
|
1967
|
+
<ax-form [messageStyle]="'float'" [updateOn]="'change'">
|
|
1968
|
+
<ax-form-field>
|
|
1969
|
+
<ax-select-box
|
|
1970
|
+
[dataSource]="colors()"
|
|
1971
|
+
textField="title"
|
|
1972
|
+
valueField="name"
|
|
1973
|
+
[placeholder]="placeholder()"
|
|
1974
|
+
[itemTemplate]="customItemTemplate"
|
|
1975
|
+
[ngModel]="selectedColor()"
|
|
1976
|
+
(onValueChanged)="handleValueChange($event)"
|
|
1977
|
+
[selectedTemplate]="customItemTemplate"
|
|
1978
|
+
>
|
|
1979
|
+
<ng-template #customItemTemplate let-item>
|
|
1980
|
+
<div class="ax-flex ax-items-center ax-gap-2 ax-p-2">
|
|
1981
|
+
@if (isHexSwatch(item.data)) {
|
|
1982
|
+
<div
|
|
1983
|
+
class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-solid"
|
|
1984
|
+
[style.background-color]="item.data.background"
|
|
1985
|
+
[style.border-color]="item.data.border"
|
|
1986
|
+
[style.color]="item.data.color"
|
|
1987
|
+
>
|
|
1988
|
+
<span>Aa</span>
|
|
1989
|
+
</div>
|
|
1990
|
+
} @else {
|
|
1991
|
+
<div
|
|
1992
|
+
class="ax-w-6 ax-h-6 ax-rounded ax-flex ax-items-center ax-justify-center ax-border ax-border-dashed ax-border-black dark:ax-border-white"
|
|
1993
|
+
[class]="item.data.background"
|
|
1994
|
+
>
|
|
1995
|
+
<span [class]="item.data.color">Aa</span>
|
|
1996
|
+
</div>
|
|
1997
|
+
}
|
|
1998
|
+
<span>{{ item.data.title }}</span>
|
|
1999
|
+
</div>
|
|
2000
|
+
</ng-template>
|
|
2001
|
+
<ax-search-box look="fill"></ax-search-box>
|
|
2002
|
+
<ax-validation-rule message="field can't be empty" rule="required"></ax-validation-rule>
|
|
2003
|
+
</ax-select-box>
|
|
2004
|
+
</ax-form-field>
|
|
2005
|
+
</ax-form>
|
|
2006
|
+
`,
|
|
2007
|
+
host: {
|
|
2008
|
+
class: 'ax-block ax-flex-1 ax-w-full',
|
|
2009
|
+
},
|
|
2010
|
+
imports: [AXSelectBoxModule, AXFormModule, CommonModule, AXSearchBoxModule, AXButtonModule, FormsModule],
|
|
2011
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2012
|
+
}]
|
|
2013
|
+
}] });
|
|
2014
|
+
|
|
2015
|
+
var themeColorChooserEdit_component = /*#__PURE__*/Object.freeze({
|
|
2016
|
+
__proto__: null,
|
|
2017
|
+
AXPColorChooserWidgetEditComponent: AXPColorChooserWidgetEditComponent
|
|
2018
|
+
});
|
|
2019
|
+
|
|
2020
|
+
const AXPThemeColorChooserWidgetConfig = {
|
|
2021
|
+
name: 'theme-color-chooser',
|
|
2022
|
+
title: 'Theme Color Chooser',
|
|
2023
|
+
icon: 'fa-light fa-palette',
|
|
2024
|
+
type: 'editor',
|
|
2025
|
+
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
2026
|
+
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
2027
|
+
components: {
|
|
2028
|
+
edit: {
|
|
2029
|
+
component: () => Promise.resolve().then(function () { return themeColorChooserEdit_component; }).then((c) => c.AXPColorChooserWidgetEditComponent),
|
|
2030
|
+
},
|
|
2031
|
+
column: {
|
|
2032
|
+
component: () => import('./acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs').then((c) => c.AXPColorChooserWidgetColumnComponent),
|
|
2033
|
+
},
|
|
2034
|
+
view: {
|
|
2035
|
+
component: () => import('./acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs').then((c) => c.AXPColorChooserWidgetViewComponent),
|
|
2036
|
+
},
|
|
2037
|
+
},
|
|
2038
|
+
};
|
|
2039
|
+
|
|
1886
2040
|
class AXPThemeModeChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
1887
2041
|
constructor() {
|
|
1888
2042
|
super(...arguments);
|
|
@@ -1890,20 +2044,20 @@ class AXPThemeModeChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
1890
2044
|
{ id: AXPThemeMode.Light, icon: 'fa-light fa-brightness' },
|
|
1891
2045
|
{ id: AXPThemeMode.Dark, icon: 'fa-light fa-moon' },
|
|
1892
2046
|
{ id: AXPThemeMode.System, icon: 'fa-light fa-desktop' },
|
|
1893
|
-
], ...(ngDevMode ? [{ debugName: "modes" }] : []));
|
|
1894
|
-
this.selectedMode = signal(null, ...(ngDevMode ? [{ debugName: "selectedMode" }] : []));
|
|
2047
|
+
], ...(ngDevMode ? [{ debugName: "modes" }] : /* istanbul ignore next */ []));
|
|
2048
|
+
this.selectedMode = signal(null, ...(ngDevMode ? [{ debugName: "selectedMode" }] : /* istanbul ignore next */ []));
|
|
1895
2049
|
this.#eff = effect(() => {
|
|
1896
2050
|
if (this.getValue()) {
|
|
1897
2051
|
this.selectedMode.set(this.modes().find((m) => m.id === this.getValue()) ?? this.modes()[0]);
|
|
1898
2052
|
}
|
|
1899
|
-
}, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
|
|
2053
|
+
}, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
|
|
1900
2054
|
}
|
|
1901
2055
|
#eff;
|
|
1902
2056
|
onModeClick(mode) {
|
|
1903
2057
|
this.setValue(mode.id);
|
|
1904
2058
|
}
|
|
1905
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1906
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2059
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemeModeChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2060
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPThemeModeChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
1907
2061
|
@for (mode of modes(); track mode.id) {
|
|
1908
2062
|
<div (click)="onModeClick(mode)" [class.--selected]="mode.id === selectedMode()?.id">
|
|
1909
2063
|
<div>
|
|
@@ -1914,7 +2068,7 @@ class AXPThemeModeChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
1914
2068
|
}
|
|
1915
2069
|
`, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{padding-top:.25rem!important;padding-bottom:.25rem!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1916
2070
|
}
|
|
1917
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2071
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemeModeChooserWidgetComponent, decorators: [{
|
|
1918
2072
|
type: Component,
|
|
1919
2073
|
args: [{ template: `
|
|
1920
2074
|
@for (mode of modes(); track mode.id) {
|
|
@@ -1936,7 +2090,7 @@ var themeModeChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
|
1936
2090
|
const AXPThemeModeChooserWidget = {
|
|
1937
2091
|
name: "theme-mode-chooser",
|
|
1938
2092
|
title: "Theme Mode Chooser",
|
|
1939
|
-
icon: "fa-
|
|
2093
|
+
icon: "fa-light fa-square",
|
|
1940
2094
|
type: 'editor',
|
|
1941
2095
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
1942
2096
|
properties: [
|
|
@@ -1955,15 +2109,15 @@ class AXPThemePaletteChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
1955
2109
|
constructor() {
|
|
1956
2110
|
super(...arguments);
|
|
1957
2111
|
this.paletteService = inject(AXP_THEME_PALETTE_PROVIDER);
|
|
1958
|
-
this.palettes = signal([], ...(ngDevMode ? [{ debugName: "palettes" }] : []));
|
|
1959
|
-
this.selectedPalette = signal(null, ...(ngDevMode ? [{ debugName: "selectedPalette" }] : []));
|
|
2112
|
+
this.palettes = signal([], ...(ngDevMode ? [{ debugName: "palettes" }] : /* istanbul ignore next */ []));
|
|
2113
|
+
this.selectedPalette = signal(null, ...(ngDevMode ? [{ debugName: "selectedPalette" }] : /* istanbul ignore next */ []));
|
|
1960
2114
|
this.#eff = effect(() => {
|
|
1961
2115
|
if (this.getValue()) {
|
|
1962
2116
|
this.selectedPalette.set(this.palettes().find((p) => p.name === this.getValue()) ??
|
|
1963
2117
|
this.palettes().find((p) => p.name === 'default') ??
|
|
1964
2118
|
this.palettes()[0]);
|
|
1965
2119
|
}
|
|
1966
|
-
}, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
|
|
2120
|
+
}, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
|
|
1967
2121
|
}
|
|
1968
2122
|
#eff;
|
|
1969
2123
|
async ngOnInit() {
|
|
@@ -1974,8 +2128,8 @@ class AXPThemePaletteChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
1974
2128
|
onPaletteClick(palette) {
|
|
1975
2129
|
this.setValue(palette.name);
|
|
1976
2130
|
}
|
|
1977
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1978
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
2131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemePaletteChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPThemePaletteChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
1979
2133
|
@for (palette of palettes(); track palette.name) {
|
|
1980
2134
|
<div (click)="onPaletteClick(palette)" [class.--selected]="palette.name === selectedPalette()?.name">
|
|
1981
2135
|
<span>{{ palette.title }}</span>
|
|
@@ -1986,9 +2140,9 @@ class AXPThemePaletteChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
1986
2140
|
</div>
|
|
1987
2141
|
</div>
|
|
1988
2142
|
}
|
|
1989
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{height:3rem;min-width:100%}@media
|
|
2143
|
+
`, isInline: true, styles: [":host{display:flex;width:100%;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{height:3rem;min-width:100%}@media(min-width:768px){:host>div{min-width:16rem}}:host>div>div{position:relative;height:100%;width:fit-content}:host>div>div div{position:absolute;height:2rem;width:2rem;border-radius:9999px;border-width:1px;border-color:#ffffff80;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionCdkModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1990
2144
|
}
|
|
1991
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemePaletteChooserWidgetComponent, decorators: [{
|
|
1992
2146
|
type: Component,
|
|
1993
2147
|
args: [{ template: `
|
|
1994
2148
|
@for (palette of palettes(); track palette.name) {
|
|
@@ -2001,7 +2155,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
2001
2155
|
</div>
|
|
2002
2156
|
</div>
|
|
2003
2157
|
}
|
|
2004
|
-
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, AXSelectionCdkModule], styles: [":host{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{height:3rem;min-width:100%}@media
|
|
2158
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, AXSelectionCdkModule], styles: [":host{display:flex;width:100%;flex-direction:row;flex-wrap:wrap;gap:.5rem}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;border-radius:.5rem;padding:.5rem 1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}:host>div:is(.ax-dark *){background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}:host>div{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}:host>div:hover{background-color:rgb(var(--ax-sys-color-dark-surface));color:rgb(var(--ax-sys-color-on-dark-surface));border-color:rgb(var(--ax-sys-color-border-dark-surface))}:host>div.--selected{background-color:rgb(var(--ax-sys-color-primary-lighter-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface));border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:1.25rem;line-height:1.75rem}:host>div>span{font-size:.875rem;line-height:1.25rem;font-weight:600;line-height:1.625}:host>div{height:3rem;min-width:100%}@media(min-width:768px){:host>div{min-width:16rem}}:host>div>div{position:relative;height:100%;width:fit-content}:host>div>div div{position:absolute;height:2rem;width:2rem;border-radius:9999px;border-width:1px;border-color:#ffffff80;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}\n"] }]
|
|
2005
2159
|
}] });
|
|
2006
2160
|
|
|
2007
2161
|
var themePaletteChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
@@ -2012,7 +2166,7 @@ var themePaletteChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
|
2012
2166
|
const AXPThemePaletteChooserWidget = {
|
|
2013
2167
|
name: "theme-palette-chooser",
|
|
2014
2168
|
title: "Theme Palette Chooser",
|
|
2015
|
-
icon: "fa-
|
|
2169
|
+
icon: "fa-light fa-square",
|
|
2016
2170
|
type: 'editor',
|
|
2017
2171
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
2018
2172
|
properties: [
|
|
@@ -2027,26 +2181,49 @@ const AXPThemePaletteChooserWidget = {
|
|
|
2027
2181
|
}
|
|
2028
2182
|
};
|
|
2029
2183
|
|
|
2184
|
+
//#endregion
|
|
2185
|
+
//#region ---- Theme Widgets Provider ----
|
|
2186
|
+
const WIDGETS = [
|
|
2187
|
+
AXPThemePaletteChooserWidget,
|
|
2188
|
+
AXPThemeModeChooserWidget,
|
|
2189
|
+
AXPMenuOrientationChooserWidget,
|
|
2190
|
+
AXPFontSizeChooserWidget,
|
|
2191
|
+
AXPFontStyleChooserWidget,
|
|
2192
|
+
AXPIconChooserWidget,
|
|
2193
|
+
AXPThemeColorChooserWidgetConfig,
|
|
2194
|
+
];
|
|
2195
|
+
class AXPThemesSharedWidgetsProvider {
|
|
2196
|
+
getWidgets() {
|
|
2197
|
+
return WIDGETS;
|
|
2198
|
+
}
|
|
2199
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedWidgetsProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2200
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedWidgetsProvider }); }
|
|
2201
|
+
}
|
|
2202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedWidgetsProvider, decorators: [{
|
|
2203
|
+
type: Injectable
|
|
2204
|
+
}] });
|
|
2205
|
+
|
|
2030
2206
|
class AXPThemesSharedModule {
|
|
2031
2207
|
constructor(appInitService, injector) {
|
|
2032
2208
|
const service = injector.get(AXPLayoutThemeService);
|
|
2033
2209
|
appInitService.registerTask({
|
|
2034
2210
|
name: 'layout-theme',
|
|
2035
|
-
statusText: '
|
|
2211
|
+
statusText: '@layout:app-startup.applying-theme-settings',
|
|
2036
2212
|
priority: 100,
|
|
2037
2213
|
run: async () => {
|
|
2038
2214
|
await service.loadSettings();
|
|
2039
2215
|
},
|
|
2040
2216
|
});
|
|
2041
2217
|
}
|
|
2042
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2043
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2044
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2218
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedModule, deps: [{ token: i1$3.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2219
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedModule, imports: [i1$3.AXPComponentSlotModule, AXPWidgetCoreModule] }); }
|
|
2220
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedModule, providers: [
|
|
2221
|
+
{ provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPThemesSharedWidgetsProvider, multi: true },
|
|
2045
2222
|
{
|
|
2046
2223
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
2047
2224
|
useFactory: async () => {
|
|
2048
2225
|
const injector = inject(Injector);
|
|
2049
|
-
const provider = (await import('./acorex-platform-themes-shared-settings.provider-
|
|
2226
|
+
const provider = (await import('./acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs')).AXPThemeSettingProvider;
|
|
2050
2227
|
return new provider(injector);
|
|
2051
2228
|
},
|
|
2052
2229
|
multi: true,
|
|
@@ -2061,19 +2238,9 @@ class AXPThemesSharedModule {
|
|
|
2061
2238
|
},
|
|
2062
2239
|
],
|
|
2063
2240
|
}),
|
|
2064
|
-
AXPWidgetCoreModule
|
|
2065
|
-
widgets: [
|
|
2066
|
-
AXPThemePaletteChooserWidget,
|
|
2067
|
-
AXPThemeModeChooserWidget,
|
|
2068
|
-
AXPMenuOrientationChooserWidget,
|
|
2069
|
-
AXPFontSizeChooserWidget,
|
|
2070
|
-
AXPFontStyleChooserWidget,
|
|
2071
|
-
AXPIconChooserWidget,
|
|
2072
|
-
AXPThemeColorChooserWidgetConfig,
|
|
2073
|
-
],
|
|
2074
|
-
})] }); }
|
|
2241
|
+
AXPWidgetCoreModule] }); }
|
|
2075
2242
|
}
|
|
2076
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPThemesSharedModule, decorators: [{
|
|
2077
2244
|
type: NgModule,
|
|
2078
2245
|
args: [{
|
|
2079
2246
|
imports: [
|
|
@@ -2086,26 +2253,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
2086
2253
|
},
|
|
2087
2254
|
],
|
|
2088
2255
|
}),
|
|
2089
|
-
AXPWidgetCoreModule
|
|
2090
|
-
widgets: [
|
|
2091
|
-
AXPThemePaletteChooserWidget,
|
|
2092
|
-
AXPThemeModeChooserWidget,
|
|
2093
|
-
AXPMenuOrientationChooserWidget,
|
|
2094
|
-
AXPFontSizeChooserWidget,
|
|
2095
|
-
AXPFontStyleChooserWidget,
|
|
2096
|
-
AXPIconChooserWidget,
|
|
2097
|
-
AXPThemeColorChooserWidgetConfig,
|
|
2098
|
-
],
|
|
2099
|
-
}),
|
|
2256
|
+
AXPWidgetCoreModule,
|
|
2100
2257
|
],
|
|
2101
2258
|
exports: [],
|
|
2102
2259
|
declarations: [],
|
|
2103
2260
|
providers: [
|
|
2261
|
+
{ provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPThemesSharedWidgetsProvider, multi: true },
|
|
2104
2262
|
{
|
|
2105
2263
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
2106
2264
|
useFactory: async () => {
|
|
2107
2265
|
const injector = inject(Injector);
|
|
2108
|
-
const provider = (await import('./acorex-platform-themes-shared-settings.provider-
|
|
2266
|
+
const provider = (await import('./acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs')).AXPThemeSettingProvider;
|
|
2109
2267
|
return new provider(injector);
|
|
2110
2268
|
},
|
|
2111
2269
|
multi: true,
|
|
@@ -2113,11 +2271,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
2113
2271
|
...provideDefaultIconChooser(),
|
|
2114
2272
|
],
|
|
2115
2273
|
}]
|
|
2116
|
-
}], ctorParameters: () => [{ type: i1$
|
|
2274
|
+
}], ctorParameters: () => [{ type: i1$3.AXPAppStartUpService }, { type: i0.Injector }] });
|
|
2117
2275
|
|
|
2118
2276
|
/**
|
|
2119
2277
|
* Generated bundle index. Do not edit.
|
|
2120
2278
|
*/
|
|
2121
2279
|
|
|
2122
|
-
export { AXPLayoutThemeService, AXPMenuOrientation, AXPSideMenuState, AXPThemeLayoutSetting, AXPThemeMode, AXPThemePaletteProviderDefault, AXPThemeSlotComponent, AXPThemesSharedModule, AXP_THEME_PALETTE_PROVIDER };
|
|
2280
|
+
export { AXPLayoutThemeService, AXPMenuOrientation, AXPMenuVerticalMode, AXPSideMenuState, AXPThemeLayoutSetting, AXPThemeMode, AXPThemePaletteProviderDefault, AXPThemeSlotComponent, AXPThemesSharedModule, AXP_SIDE_MENU_COMPACT_WIDTH, AXP_SIDE_MENU_FULL_DEFAULT_WIDTH, AXP_THEME_PALETTE_PROVIDER };
|
|
2123
2281
|
//# sourceMappingURL=acorex-platform-themes-shared.mjs.map
|