@acorex/platform 20.6.0-next.13 → 20.6.0-next.14

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.
Files changed (32) hide show
  1. package/core/index.d.ts +106 -23
  2. package/fesm2022/acorex-platform-core.mjs +182 -3
  3. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-layout-components.mjs +175 -154
  5. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-layout-entity.mjs +64 -87
  7. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-layout-views.mjs +16 -14
  9. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-layout-widget-core.mjs +3 -1
  11. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs +30 -0
  13. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +1 -0
  14. package/fesm2022/acorex-platform-layout-widgets.mjs +1232 -839
  15. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  16. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-xq3eQ6t2.mjs → acorex-platform-themes-default-entity-master-list-view.component-pBT9C2n8.mjs} +5 -3
  17. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-pBT9C2n8.mjs.map +1 -0
  18. package/fesm2022/acorex-platform-themes-default.mjs +12 -10
  19. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-themes-shared.mjs +12 -107
  21. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  22. package/layout/components/index.d.ts +177 -175
  23. package/layout/designer/index.d.ts +1 -1
  24. package/layout/entity/index.d.ts +3 -66
  25. package/layout/views/index.d.ts +4 -58
  26. package/layout/widget-core/index.d.ts +20 -21
  27. package/layout/widgets/README.md +0 -1
  28. package/layout/widgets/index.d.ts +69 -48
  29. package/package.json +5 -5
  30. package/themes/default/index.d.ts +4 -71
  31. package/themes/shared/index.d.ts +1 -39
  32. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-xq3eQ6t2.mjs.map +0 -1
@@ -10,11 +10,10 @@ import * as i0 from '@angular/core';
10
10
  import { computed, inject, Component, InjectionToken, Injectable, signal, ChangeDetectionStrategy, effect, Input, Injector, NgModule } from '@angular/core';
11
11
  import { AXPSettingService, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
12
12
  import * as i1$2 from '@acorex/platform/core';
13
- import { AXPPlatformScope } from '@acorex/platform/core';
13
+ import { AXPScreenSize, AXPPlatformScope } 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
- import { timer, firstValueFrom, fromEvent, Subscription, filter } from 'rxjs';
17
- import { debounceTime } from 'rxjs/operators';
16
+ import { timer, firstValueFrom, filter } from 'rxjs';
18
17
  import * as i5 from '@acorex/core/translation';
19
18
  import { AXTranslationModule } from '@acorex/core/translation';
20
19
  import * as i3$1 from '@acorex/platform/layout/widget-core';
@@ -57,20 +56,6 @@ var AXPThemeMode;
57
56
  AXPThemeMode["Dark"] = "dark";
58
57
  AXPThemeMode["System"] = "system";
59
58
  })(AXPThemeMode || (AXPThemeMode = {}));
60
- // Screen Size Enum
61
- var AXPScreenSize;
62
- (function (AXPScreenSize) {
63
- AXPScreenSize["Small"] = "small";
64
- AXPScreenSize["Medium"] = "medium";
65
- AXPScreenSize["Large"] = "large";
66
- })(AXPScreenSize || (AXPScreenSize = {}));
67
- // Device Type Enum
68
- var AXPDeviceType;
69
- (function (AXPDeviceType) {
70
- AXPDeviceType["Mobile"] = "mobile";
71
- AXPDeviceType["Tablet"] = "tablet";
72
- AXPDeviceType["Desktop"] = "desktop";
73
- })(AXPDeviceType || (AXPDeviceType = {}));
74
59
  // Side Menu State Enum
75
60
  var AXPSideMenuState;
76
61
  (function (AXPSideMenuState) {
@@ -89,8 +74,8 @@ const AXPLayoutThemeService = signalStore({ providedIn: 'root' },
89
74
  // Initial State
90
75
  withState(() => {
91
76
  const isSystemDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
92
- // Helper function to get the initial screen size
93
- const getScreenSize = () => {
77
+ // Helper function to get the initial screen size for side menu initialization
78
+ const getInitialScreenSize = () => {
94
79
  const width = window.innerWidth;
95
80
  if (width <= 600)
96
81
  return AXPScreenSize.Small;
@@ -98,21 +83,6 @@ withState(() => {
98
83
  return AXPScreenSize.Medium;
99
84
  return AXPScreenSize.Large;
100
85
  };
101
- // Helper function to determine device type (based on viewport width for reactivity)
102
- const getDeviceType = () => {
103
- const width = window.innerWidth;
104
- if (width <= 600) {
105
- return AXPDeviceType.Mobile;
106
- }
107
- else if (width <= 1024) {
108
- return AXPDeviceType.Tablet;
109
- }
110
- return AXPDeviceType.Desktop;
111
- };
112
- // Helper function to determine if the device supports touch
113
- const isTouchDevice = () => {
114
- return 'ontouchstart' in window || navigator.maxTouchPoints > 0;
115
- };
116
86
  const state = {
117
87
  currentMode: AXPThemeMode.System,
118
88
  currentPalette: 'default',
@@ -121,26 +91,22 @@ withState(() => {
121
91
  family: 'system-ui',
122
92
  size: 'medium',
123
93
  },
124
- screenSize: getScreenSize(),
125
- deviceType: getDeviceType(),
126
- isTouchDevice: isTouchDevice(),
127
94
  overlayLoading: false,
128
95
  navigationLoading: false,
129
96
  overlayLoadingTaskCount: 0,
130
97
  navigationLoadingTaskCount: 0,
131
- sideMenuState: (getScreenSize() === AXPScreenSize.Large
98
+ sideMenuState: (getInitialScreenSize() === AXPScreenSize.Large
132
99
  ? AXPSideMenuState.Opened
133
100
  : AXPSideMenuState.Closed),
134
101
  sideMenuWidth: 288,
135
102
  menuOrientation: 'vertical',
136
103
  _listener: null,
137
- _resizeListener: null,
138
104
  isPrinting: false,
139
105
  };
140
106
  return state;
141
107
  }),
142
108
  // Computed Signals
143
- withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, screenSize, deviceType, isTouchDevice, sideMenuState, overlayLoading, navigationLoading, menuOrientation, isPrinting, }) => ({
109
+ withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, sideMenuState, overlayLoading, navigationLoading, menuOrientation, isPrinting, }) => ({
144
110
  isDarkMode: computed(() => {
145
111
  if (isPrinting()) {
146
112
  return false;
@@ -152,14 +118,6 @@ withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, screenS
152
118
  (currentTheme() === AXPThemeMode.System && systemTheme() === AXPThemeMode.Light)),
153
119
  isSystemMode: computed(() => currentTheme() === AXPThemeMode.System),
154
120
  isSideMenuOpen: computed(() => sideMenuState() === AXPSideMenuState.Opened),
155
- isSideMenuOverlay: computed(() => screenSize() === AXPScreenSize.Small || screenSize() === AXPScreenSize.Medium),
156
- isSmall: computed(() => screenSize() === AXPScreenSize.Small),
157
- isMedium: computed(() => screenSize() === AXPScreenSize.Medium),
158
- isLarge: computed(() => screenSize() === AXPScreenSize.Large),
159
- isMobileDevice: computed(() => deviceType() === AXPDeviceType.Mobile),
160
- isTabletDevice: computed(() => deviceType() === AXPDeviceType.Tablet),
161
- isDesktopDevice: computed(() => deviceType() === AXPDeviceType.Desktop),
162
- isTouchScreen: computed(() => isTouchDevice()),
163
121
  isOverlayLoading: computed(() => overlayLoading()),
164
122
  isNavigationLoading: computed(() => navigationLoading()),
165
123
  isMenuHorizontal: computed(() => menuOrientation() === AXPMenuOrientation.Horizontal),
@@ -200,38 +158,6 @@ withMethods((store, http = inject(HttpClient), settingService = inject(AXPSettin
200
158
  //
201
159
  await _applyThemePalette(store.currentPalette());
202
160
  };
203
- // Update screen size based on window width
204
- const _updateScreenSize = () => {
205
- const width = window.innerWidth;
206
- let newScreenSize;
207
- if (width <= 600) {
208
- newScreenSize = AXPScreenSize.Small;
209
- }
210
- else if (width <= 1024) {
211
- newScreenSize = AXPScreenSize.Medium;
212
- }
213
- else {
214
- newScreenSize = AXPScreenSize.Large;
215
- }
216
- // Determine device type based on width to keep it reactive to devtools emulation
217
- let newDeviceType;
218
- if (width <= 600) {
219
- newDeviceType = AXPDeviceType.Mobile;
220
- }
221
- else if (width <= 1024) {
222
- newDeviceType = AXPDeviceType.Tablet;
223
- }
224
- else {
225
- newDeviceType = AXPDeviceType.Desktop;
226
- }
227
- if (newScreenSize !== store.screenSize() || newDeviceType !== store.deviceType()) {
228
- patchState(store, { screenSize: newScreenSize, deviceType: newDeviceType });
229
- if (!store.isLarge()) {
230
- patchState(store, { sideMenuState: AXPSideMenuState.Closed });
231
- settingService.scope(AXPPlatformScope.User).set(AXPThemeLayoutSetting.SideMenuStatus, store.sideMenuState());
232
- }
233
- }
234
- };
235
161
  const _setOverlayLoading = async (value, delay = 0) => {
236
162
  if (value) {
237
163
  let timeoutId = null;
@@ -373,21 +299,6 @@ withMethods((store, http = inject(HttpClient), settingService = inject(AXPSettin
373
299
  const mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');
374
300
  mediaQueryList.removeEventListener('change', listener);
375
301
  },
376
- // Set up event listener for window resize
377
- _setupResizeListener() {
378
- const subscription = fromEvent(window, 'resize')
379
- .pipe(debounceTime(250))
380
- .subscribe(() => {
381
- _updateScreenSize();
382
- });
383
- return subscription;
384
- },
385
- // Remove event listener for window resize
386
- _removeResizeListener(subscription) {
387
- if (subscription) {
388
- subscription.unsubscribe();
389
- }
390
- },
391
302
  };
392
303
  }),
393
304
  // Lifecycle Hooks
@@ -397,19 +308,16 @@ withHooks((store, settingService = inject(AXPSettingService)) => ({
397
308
  settingService.onChanged.pipe(filter((c) => c.scope == AXPPlatformScope.User)).subscribe(async (changes) => {
398
309
  const keys = Object.values(AXPThemeLayoutSetting);
399
310
  if (changes.keys.some((key) => keys.includes(key))) {
400
- await store.loadSettings();
311
+ await store['loadSettings']();
401
312
  }
402
313
  });
403
314
  //
404
315
  settingService.onLoaded.subscribe(async () => {
405
- await store.loadSettings();
316
+ await store['loadSettings']();
406
317
  });
407
318
  // Set up event listener for system theme changes
408
- const listener = store._setupSystemColorListener();
319
+ const listener = store['_setupSystemColorListener']();
409
320
  patchState(store, { _listener: listener });
410
- // Set up event listener for window resize
411
- const resizeSubscription = store._setupResizeListener();
412
- patchState(store, { _resizeListener: resizeSubscription });
413
321
  window.addEventListener('beforeprint', () => {
414
322
  patchState(store, { isPrinting: true });
415
323
  store._internal_updateHtmlClass();
@@ -421,12 +329,9 @@ withHooks((store, settingService = inject(AXPSettingService)) => ({
421
329
  },
422
330
  onDestroy() {
423
331
  // Clean up event listeners when store is destroyed
424
- const { _listener: listener, _resizeListener: resizeListener } = store;
332
+ const { _listener: listener } = store;
425
333
  if (listener) {
426
- store._removeSystemColorListener(listener);
427
- }
428
- if (resizeListener instanceof Subscription) {
429
- store._removeResizeListener(resizeListener);
334
+ store['_removeSystemColorListener'](listener);
430
335
  }
431
336
  },
432
337
  })));
@@ -2214,5 +2119,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
2214
2119
  * Generated bundle index. Do not edit.
2215
2120
  */
2216
2121
 
2217
- export { AXPDeviceType, AXPLayoutThemeService, AXPMenuOrientation, AXPScreenSize, AXPSideMenuState, AXPThemeLayoutSetting, AXPThemeMode, AXPThemePaletteProviderDefault, AXPThemeSlotComponent, AXPThemesSharedModule, AXP_THEME_PALETTE_PROVIDER };
2122
+ export { AXPLayoutThemeService, AXPMenuOrientation, AXPSideMenuState, AXPThemeLayoutSetting, AXPThemeMode, AXPThemePaletteProviderDefault, AXPThemeSlotComponent, AXPThemesSharedModule, AXP_THEME_PALETTE_PROVIDER };
2218
2123
  //# sourceMappingURL=acorex-platform-themes-shared.mjs.map