@acorex-platform/framework-client 0.0.28 → 0.0.32
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-framework-client-common-common-settings.provider-CLm2BVk-.mjs → acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs} +23 -2
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-common.mjs +678 -112
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-core.mjs +85 -9
- package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +3 -6
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs +469 -73
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BXOMs6oD.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Bu8LLCVa.mjs} +3324 -2169
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Bu8LLCVa.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DCK-qb-F.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-EU1dgVH_.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DCK-qb-F.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-EU1dgVH_.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-Cs3agnpF.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-DNBhGkO8.mjs} +43 -15
- package/fesm2022/acorex-platform-framework-client-layout-entity-bulk-entity.command-DNBhGkO8.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-p0hxDb0W.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3__csKW.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-p0hxDb0W.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3__csKW.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-DYV9YPyw.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-DtNSVjeF.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-DYV9YPyw.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-DtNSVjeF.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs +37 -6
- package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +148 -130
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-3CO4xJB3.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-3CO4xJB3.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-CRST84ou.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-D3pnOGmB.mjs} +3 -3
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-CRST84ou.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-D3pnOGmB.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1127 -717
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-realtime.mjs +70 -5
- package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-runtime.mjs +121 -6
- package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-C2Abf7Lb.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-DCpl6AXq.mjs} +51 -12
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-DCpl6AXq.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +770 -679
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs → acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs} +76 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +320 -32
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
- package/package.json +7 -7
- package/types/acorex-platform-framework-client-common.d.ts +137 -9
- package/types/acorex-platform-framework-client-core.d.ts +4 -1
- package/types/acorex-platform-framework-client-layout-components.d.ts +139 -20
- package/types/acorex-platform-framework-client-layout-entity.d.ts +518 -256
- package/types/acorex-platform-framework-client-layout-views.d.ts +48 -0
- package/types/acorex-platform-framework-client-layout-widget-core.d.ts +2 -2
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +130 -80
- package/types/acorex-platform-framework-client-realtime.d.ts +39 -2
- package/types/acorex-platform-framework-client-runtime.d.ts +56 -5
- package/types/acorex-platform-framework-client-themes-default.d.ts +144 -14
- package/types/acorex-platform-framework-client-themes-shared.d.ts +36 -3
- package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CLm2BVk-.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BXOMs6oD.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity-bulk-entity.command-Cs3agnpF.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-C2Abf7Lb.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs.map +0 -1
|
@@ -9,17 +9,17 @@ import { CommonModule } from '@angular/common';
|
|
|
9
9
|
import * as i0 from '@angular/core';
|
|
10
10
|
import { Injectable, computed, inject, Injector, effect, ChangeDetectionStrategy, Component, InjectionToken, Input, signal, input, ElementRef, Directive, DestroyRef, NgModule } from '@angular/core';
|
|
11
11
|
import { primaryLanguageSubtag, resolveEffectiveAvailableLanguageCodes, AXPSettingsService, AXP_LOCALE_MANAGEMENT_PORT, AXPPlatformSettingsLoadState, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/common';
|
|
12
|
-
import {
|
|
12
|
+
import { AXPRegionalSetting, AXPPlatformScope } from '@acorex-platform/framework-shared/core';
|
|
13
13
|
import * as i1$3 from '@acorex-platform/framework-client/core';
|
|
14
14
|
import { AXPScreenSize, AXPDeviceService, AXPDebugService, OVERLAY_LAYOUT_TRACE_NS, AXP_APP_STARTUP_PRIORITY, AXPComponentSlotModule, AXP_LOGO_THEME_RESOLVER } from '@acorex-platform/framework-client/core';
|
|
15
15
|
import { HttpClient } from '@angular/common/http';
|
|
16
16
|
import { signalStore, withState, withComputed, withMethods, patchState, withHooks } from '@ngrx/signals';
|
|
17
|
-
import { timer, firstValueFrom, filter } from 'rxjs';
|
|
18
|
-
import * as
|
|
17
|
+
import { timer, firstValueFrom, timeout, filter } from 'rxjs';
|
|
18
|
+
import * as i2$1 from '@acorex/core/translation';
|
|
19
19
|
import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
|
|
20
20
|
import { AXPValueWidgetComponent, AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_WIDGETS_LAYOUT_CATEGORY, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-core';
|
|
21
21
|
import { AXPopupService } from '@acorex/components/popup';
|
|
22
|
-
import * as i2$
|
|
22
|
+
import * as i2$2 from '@acorex/components/button-group';
|
|
23
23
|
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
|
24
24
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
25
25
|
import * as i1$1 from '@acorex/components/search-box';
|
|
@@ -30,7 +30,7 @@ import { FormsModule } from '@angular/forms';
|
|
|
30
30
|
import * as i3$1 from '@acorex/components/text-box';
|
|
31
31
|
import { AXTextBoxModule } from '@acorex/components/text-box';
|
|
32
32
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
33
|
-
import * as i2$
|
|
33
|
+
import * as i2$3 from '@acorex/components/form';
|
|
34
34
|
import { AXFormModule } from '@acorex/components/form';
|
|
35
35
|
import * as i1$2 from '@acorex/components/select-box';
|
|
36
36
|
import { AXSelectBoxModule } from '@acorex/components/select-box';
|
|
@@ -49,6 +49,9 @@ var AXPThemeLayoutSetting;
|
|
|
49
49
|
AXPThemeLayoutSetting["MenuOrientation"] = "Common:Setting:Layout.RootMenu.Direction";
|
|
50
50
|
AXPThemeLayoutSetting["MenuVerticalMode"] = "Common:Setting:Layout.RootMenu.VerticalMode";
|
|
51
51
|
AXPThemeLayoutSetting["MenuBadgeVisible"] = "Common:Setting:Layout.RootMenu.Badge";
|
|
52
|
+
AXPThemeLayoutSetting["MenuDark"] = "Common:Setting:Layout.RootMenu.Dark";
|
|
53
|
+
AXPThemeLayoutSetting["MenuFooterFullWidth"] = "Common:Setting:Layout.RootMenu.Footer.FullWidth";
|
|
54
|
+
AXPThemeLayoutSetting["HeaderAppearance"] = "Common:Setting:Layout.Header.Appearance";
|
|
52
55
|
})(AXPThemeLayoutSetting || (AXPThemeLayoutSetting = {}));
|
|
53
56
|
|
|
54
57
|
// Theme Enum
|
|
@@ -78,6 +81,28 @@ var AXPMenuVerticalMode;
|
|
|
78
81
|
})(AXPMenuVerticalMode || (AXPMenuVerticalMode = {}));
|
|
79
82
|
const AXP_SIDE_MENU_FULL_DEFAULT_WIDTH = 300;
|
|
80
83
|
const AXP_SIDE_MENU_COMPACT_WIDTH = 80;
|
|
84
|
+
function normalizeMenuAppearance(value, fallback = 'dark') {
|
|
85
|
+
if (value === 'dark' ||
|
|
86
|
+
value === 'light' ||
|
|
87
|
+
value === 'brand-light' ||
|
|
88
|
+
value === 'brand-dark') {
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
// Legacy persisted value before brand light/dark split.
|
|
92
|
+
if (value === 'brand') {
|
|
93
|
+
return 'brand-light';
|
|
94
|
+
}
|
|
95
|
+
if (typeof value === 'boolean') {
|
|
96
|
+
return value ? 'dark' : 'light';
|
|
97
|
+
}
|
|
98
|
+
return fallback;
|
|
99
|
+
}
|
|
100
|
+
function normalizeHeaderAppearance(value, fallback = 'brand') {
|
|
101
|
+
if (value === 'brand' || value === 'simple') {
|
|
102
|
+
return value;
|
|
103
|
+
}
|
|
104
|
+
return fallback;
|
|
105
|
+
}
|
|
81
106
|
|
|
82
107
|
//#endregion
|
|
83
108
|
//#region ----- Constants -----
|
|
@@ -283,11 +308,24 @@ function filterFontsForRegionalContext(options, context) {
|
|
|
283
308
|
function resolveRegionalFontOptions(context) {
|
|
284
309
|
return filterFontsForRegionalContext(AXP_FONT_STYLE_OPTIONS, context);
|
|
285
310
|
}
|
|
286
|
-
function
|
|
287
|
-
const
|
|
311
|
+
function resolveRegionalDefaultFontId(availableFonts, languageCode) {
|
|
312
|
+
const language = languageCode ? primaryLanguageSubtag(languageCode) : null;
|
|
313
|
+
if (language === 'fa') {
|
|
314
|
+
const iranYekan = availableFonts.find((font) => font.id === 'iranyekanx');
|
|
315
|
+
if (iranYekan) {
|
|
316
|
+
return iranYekan.id;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
return availableFonts[0]?.id ?? 'system-ui';
|
|
320
|
+
}
|
|
321
|
+
function resolveEffectiveFontId(fontId, availableFonts, languageCode) {
|
|
322
|
+
const fallback = resolveRegionalDefaultFontId(availableFonts, languageCode);
|
|
288
323
|
if (!fontId) {
|
|
289
324
|
return fallback;
|
|
290
325
|
}
|
|
326
|
+
if (fontId === 'system-ui' && languageCode && primaryLanguageSubtag(languageCode) === 'fa') {
|
|
327
|
+
return fallback;
|
|
328
|
+
}
|
|
291
329
|
return availableFonts.some((font) => font.id === fontId) ? fontId : fallback;
|
|
292
330
|
}
|
|
293
331
|
//#endregion
|
|
@@ -397,13 +435,16 @@ withState(() => {
|
|
|
397
435
|
sideMenuCompactWidth: AXP_SIDE_MENU_COMPACT_WIDTH,
|
|
398
436
|
menuVerticalMode: AXPMenuVerticalMode.Full,
|
|
399
437
|
menuOrientation: 'vertical',
|
|
438
|
+
menuAppearance: 'dark',
|
|
439
|
+
headerAppearance: 'brand',
|
|
440
|
+
mainFooterFullWidth: false,
|
|
400
441
|
_listener: null,
|
|
401
442
|
isPrinting: false,
|
|
402
443
|
};
|
|
403
444
|
return state;
|
|
404
445
|
}),
|
|
405
446
|
// Computed Signals
|
|
406
|
-
withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, sideMenuState, overlaySideMenuOpen, overlayLoading, navigationLoading, overlayLoadingTaskCount, menuOrientation, menuVerticalMode, sideMenuWidth, sideMenuCompactWidth, isPrinting, }, deviceService = inject(AXPDeviceService)) => {
|
|
447
|
+
withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, sideMenuState, overlaySideMenuOpen, overlayLoading, navigationLoading, overlayLoadingTaskCount, menuOrientation, menuVerticalMode, menuAppearance, headerAppearance, mainFooterFullWidth, sideMenuWidth, sideMenuCompactWidth, isPrinting, }, deviceService = inject(AXPDeviceService)) => {
|
|
407
448
|
const effectiveMenuVerticalMode = computed(() => {
|
|
408
449
|
if (!deviceService.isLarge()) {
|
|
409
450
|
return AXPMenuVerticalMode.Full;
|
|
@@ -431,6 +472,19 @@ withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, sideMen
|
|
|
431
472
|
isMenuHorizontal: computed(() => menuOrientation() === AXPMenuOrientation.Horizontal),
|
|
432
473
|
effectiveMenuVerticalMode,
|
|
433
474
|
sideMenuDrawerWidth: computed(() => effectiveMenuVerticalMode() === AXPMenuVerticalMode.Compact ? sideMenuCompactWidth() : sideMenuWidth()),
|
|
475
|
+
menuDarkEnabled: computed(() => {
|
|
476
|
+
const appearance = menuAppearance();
|
|
477
|
+
return appearance === 'dark' || appearance === 'brand-dark';
|
|
478
|
+
}),
|
|
479
|
+
menuBrandEnabled: computed(() => {
|
|
480
|
+
const appearance = menuAppearance();
|
|
481
|
+
return appearance === 'brand-light' || appearance === 'brand-dark';
|
|
482
|
+
}),
|
|
483
|
+
/** Full-width footer applies only to vertical layout. */
|
|
484
|
+
effectiveMainFooterFullWidth: computed(() => menuOrientation() !== AXPMenuOrientation.Horizontal && mainFooterFullWidth()),
|
|
485
|
+
headerBrandEnabled: computed(() => headerAppearance() === 'brand'),
|
|
486
|
+
headerButtonColor: computed(() => headerAppearance() === 'simple' ? 'default' : 'primary'),
|
|
487
|
+
headerButtonLook: computed(() => headerAppearance() === 'simple' ? 'blank' : 'default'),
|
|
434
488
|
};
|
|
435
489
|
}),
|
|
436
490
|
// Methods for State Management
|
|
@@ -453,11 +507,42 @@ withMethods((store, http = inject(HttpClient), settingsService = inject(AXPSetti
|
|
|
453
507
|
const settingMenuVerticalMode = normalizeMenuVerticalMode(await settingsService.get(AXPThemeLayoutSetting.MenuVerticalMode), store.menuVerticalMode());
|
|
454
508
|
patchState(store, { menuVerticalMode: settingMenuVerticalMode });
|
|
455
509
|
//
|
|
510
|
+
let rawMenuAppearance;
|
|
511
|
+
try {
|
|
512
|
+
rawMenuAppearance = await settingsService.get(AXPThemeLayoutSetting.MenuDark);
|
|
513
|
+
}
|
|
514
|
+
catch {
|
|
515
|
+
rawMenuAppearance = undefined;
|
|
516
|
+
}
|
|
517
|
+
patchState(store, {
|
|
518
|
+
menuAppearance: normalizeMenuAppearance(rawMenuAppearance, 'brand-dark'),
|
|
519
|
+
});
|
|
520
|
+
let rawHeaderAppearance;
|
|
521
|
+
try {
|
|
522
|
+
rawHeaderAppearance = await settingsService.get(AXPThemeLayoutSetting.HeaderAppearance);
|
|
523
|
+
}
|
|
524
|
+
catch {
|
|
525
|
+
rawHeaderAppearance = undefined;
|
|
526
|
+
}
|
|
527
|
+
patchState(store, {
|
|
528
|
+
headerAppearance: normalizeHeaderAppearance(rawHeaderAppearance, 'simple'),
|
|
529
|
+
});
|
|
530
|
+
let mainFooterFullWidth = false;
|
|
531
|
+
try {
|
|
532
|
+
mainFooterFullWidth =
|
|
533
|
+
(await settingsService.get(AXPThemeLayoutSetting.MenuFooterFullWidth)) ?? false;
|
|
534
|
+
}
|
|
535
|
+
catch {
|
|
536
|
+
mainFooterFullWidth = false;
|
|
537
|
+
}
|
|
538
|
+
patchState(store, { mainFooterFullWidth });
|
|
539
|
+
//
|
|
456
540
|
const fontFamily = await settingsService.get(AXPThemeLayoutSetting.Font);
|
|
457
541
|
const fontSize = await settingsService.get(AXPThemeLayoutSetting.FontSize);
|
|
542
|
+
const language = (await settingsService.get(AXPRegionalSetting.Language));
|
|
458
543
|
const regionalContext = await resolveRegionalFontScriptContextFromInjector(injector);
|
|
459
544
|
const availableFonts = resolveRegionalFontOptions(regionalContext);
|
|
460
|
-
const effectiveFontFamily = resolveEffectiveFontId(fontFamily, availableFonts);
|
|
545
|
+
const effectiveFontFamily = resolveEffectiveFontId(fontFamily, availableFonts, language);
|
|
461
546
|
await injector.get(AXPRegionalFontStyleLoaderService).ensureFontStylesLoaded(effectiveFontFamily);
|
|
462
547
|
patchState(store, { font: { family: effectiveFontFamily, size: fontSize } });
|
|
463
548
|
//
|
|
@@ -568,7 +653,7 @@ withMethods((store, http = inject(HttpClient), settingsService = inject(AXPSetti
|
|
|
568
653
|
_setNavigationLoading(true);
|
|
569
654
|
try {
|
|
570
655
|
// Fetch the CSS file via HttpClient
|
|
571
|
-
const cssText = await firstValueFrom(http.get(path, { responseType: 'text' }));
|
|
656
|
+
const cssText = await firstValueFrom(http.get(path, { responseType: 'text' }).pipe(timeout({ first: 5_000 })));
|
|
572
657
|
// Create a new <style> tag and apply the CSS
|
|
573
658
|
const style = document.createElement('style');
|
|
574
659
|
style.setAttribute('data-theme', name);
|
|
@@ -684,7 +769,13 @@ withHooks((store, settingsService = inject(AXPSettingsService), deviceService =
|
|
|
684
769
|
.pipe(filter((c) => [AXPPlatformScope.Platform, AXPPlatformScope.Tenant, AXPPlatformScope.User].includes(c.scope)))
|
|
685
770
|
.subscribe(async (changes) => {
|
|
686
771
|
const keys = Object.values(AXPThemeLayoutSetting);
|
|
687
|
-
|
|
772
|
+
const layoutKeysChanged = changes.keys.some((key) => keys.includes(key));
|
|
773
|
+
const languageChanged = changes.keys.includes(AXPRegionalSetting.Language);
|
|
774
|
+
if (!layoutKeysChanged && !languageChanged) {
|
|
775
|
+
return;
|
|
776
|
+
}
|
|
777
|
+
if (languageChanged) {
|
|
778
|
+
await store['loadSettings']();
|
|
688
779
|
return;
|
|
689
780
|
}
|
|
690
781
|
if (changes.keys.includes(AXPThemeLayoutSetting.MenuVerticalMode)) {
|
|
@@ -692,8 +783,28 @@ withHooks((store, settingsService = inject(AXPSettingsService), deviceService =
|
|
|
692
783
|
menuVerticalMode: normalizeMenuVerticalMode(changes.values[AXPThemeLayoutSetting.MenuVerticalMode], store.menuVerticalMode()),
|
|
693
784
|
});
|
|
694
785
|
}
|
|
786
|
+
if (changes.keys.includes(AXPThemeLayoutSetting.MenuDark)) {
|
|
787
|
+
const rawMenuAppearance = changes.values[AXPThemeLayoutSetting.MenuDark];
|
|
788
|
+
patchState(store, {
|
|
789
|
+
menuAppearance: normalizeMenuAppearance(rawMenuAppearance, store.menuAppearance()),
|
|
790
|
+
});
|
|
791
|
+
}
|
|
792
|
+
if (changes.keys.includes(AXPThemeLayoutSetting.HeaderAppearance)) {
|
|
793
|
+
const rawHeaderAppearance = changes.values[AXPThemeLayoutSetting.HeaderAppearance];
|
|
794
|
+
patchState(store, {
|
|
795
|
+
headerAppearance: normalizeHeaderAppearance(rawHeaderAppearance, store.headerAppearance()),
|
|
796
|
+
});
|
|
797
|
+
}
|
|
798
|
+
if (changes.keys.includes(AXPThemeLayoutSetting.MenuFooterFullWidth)) {
|
|
799
|
+
patchState(store, {
|
|
800
|
+
mainFooterFullWidth: changes.values[AXPThemeLayoutSetting.MenuFooterFullWidth] ?? false,
|
|
801
|
+
});
|
|
802
|
+
}
|
|
695
803
|
const shouldReloadSettings = changes.keys.some((key) => keys.includes(key) &&
|
|
696
|
-
key !== AXPThemeLayoutSetting.MenuVerticalMode
|
|
804
|
+
key !== AXPThemeLayoutSetting.MenuVerticalMode &&
|
|
805
|
+
key !== AXPThemeLayoutSetting.MenuDark &&
|
|
806
|
+
key !== AXPThemeLayoutSetting.HeaderAppearance &&
|
|
807
|
+
key !== AXPThemeLayoutSetting.MenuFooterFullWidth);
|
|
697
808
|
if (shouldReloadSettings) {
|
|
698
809
|
await store['loadSettings']();
|
|
699
810
|
}
|
|
@@ -730,7 +841,7 @@ class AXPThemeSlotComponent {
|
|
|
730
841
|
}
|
|
731
842
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPThemeSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
732
843
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPThemeSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
|
|
733
|
-
<ax-button [iconOnly]="true" color="
|
|
844
|
+
<ax-button [iconOnly]="true" [color]="store.headerButtonColor()" [look]="store.headerButtonLook()">
|
|
734
845
|
<ax-icon>
|
|
735
846
|
<i
|
|
736
847
|
class="fa-regular"
|
|
@@ -773,13 +884,13 @@ class AXPThemeSlotComponent {
|
|
|
773
884
|
</ax-button-item-list>
|
|
774
885
|
</ax-dropdown-panel>
|
|
775
886
|
</ax-button>
|
|
776
|
-
`, 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:
|
|
887
|
+
`, 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: i2$1.AXTranslatorDirective, selector: "[translate]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
777
888
|
}
|
|
778
889
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPThemeSlotComponent, decorators: [{
|
|
779
890
|
type: Component,
|
|
780
891
|
args: [{
|
|
781
892
|
template: `
|
|
782
|
-
<ax-button [iconOnly]="true" color="
|
|
893
|
+
<ax-button [iconOnly]="true" [color]="store.headerButtonColor()" [look]="store.headerButtonLook()">
|
|
783
894
|
<ax-icon>
|
|
784
895
|
<i
|
|
785
896
|
class="fa-regular"
|
|
@@ -1078,7 +1189,7 @@ class AXPIconChooserPopupComponent extends AXBasePageComponent {
|
|
|
1078
1189
|
</div>
|
|
1079
1190
|
</div>
|
|
1080
1191
|
</div>
|
|
1081
|
-
`, 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$
|
|
1192
|
+
`, 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$2.AXButtonGroupComponent, selector: "ax-button-group", inputs: ["disabled", "fitParent", "color", "look", "class", "selection"], outputs: ["onBlur", "onFocus", "disabledChange", "colorChange", "lookChange", "onClick", "selectionChange", "selectedButtonChange"] }, { kind: "component", type: i2$2.AXButtonGroupItemComponent, selector: "ax-button-group-item", inputs: ["disabled", "color", "text", "class", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange", "classChange"] }, { 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: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1082
1193
|
}
|
|
1083
1194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPIconChooserPopupComponent, decorators: [{
|
|
1084
1195
|
type: Component,
|
|
@@ -1869,7 +1980,7 @@ class AXPFontSizeChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
1869
1980
|
</div>
|
|
1870
1981
|
</div>
|
|
1871
1982
|
}
|
|
1872
|
-
`, isInline: true, styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host>div:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface)}:host>div:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}:host>div.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host>div>span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\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:
|
|
1983
|
+
`, isInline: true, styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host>div:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface)}:host>div:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}:host>div.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host>div>span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\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: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1873
1984
|
}
|
|
1874
1985
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFontSizeChooserWidgetComponent, decorators: [{
|
|
1875
1986
|
type: Component,
|
|
@@ -1967,11 +2078,11 @@ class AXPFontStyleChooserPopupComponent extends AXBasePageComponent {
|
|
|
1967
2078
|
this.close({ fontId: font.id });
|
|
1968
2079
|
}
|
|
1969
2080
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFontStyleChooserPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1970
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPFontStyleChooserPopupComponent, isStandalone: true, selector: "ng-component", inputs: { fonts: "fonts", selectedFontId: "selectedFontId" }, usesInheritance: true, ngImport: i0, template: "<div class=\"axp-font-style-chooser-popup flex h-full flex-col bg-lightest\">\n <!-- ----- Scrollable font list filtered by regional language settings ----- -->\n <div class=\"flex-1 overflow-y-auto p-2\">\n <div class=\"flex flex-col gap-1\">\n @for (font of fonts; track font.id) {\n <button\n type=\"button\"\n class=\"axp-font-style-chooser-popup__item\"\n [class.--selected]=\"font.id === selectedFontId\"\n [axpFontStyleLazyLoad]=\"font.id\"\n (click)=\"selectFont(font)\"\n >\n <div class=\"axp-font-style-option\">\n <span\n class=\"axp-font-style-option__sample\"\n [style.font-family]=\"font.cssFamily\"\n [style.font-variation-settings]=\"fontVariation(font.id)\"\n >\n {{ font.title }}\n </span>\n </div>\n </button>\n }\n </div>\n </div>\n</div>\n", styles: ["@layer properties;:host{display:block;width:100%}.axp-font-style-chooser__input{width:100%;cursor:pointer}.axp-font-style-chooser__suffix-btn{padding-inline:var(--spacing, .25rem);color:var(--color-neutral-500, oklch(55.6% 0 none))}.axp-font-style-option{display:flex;width:100%;align-items:center;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-font-style-option__sample{width:100%;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-leading: var(--leading-snug, 1.375);line-height:var(--leading-snug, 1.375);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-neutral-700, oklch(37.1% 0 none))}.axp-font-style-option__sample:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-neutral-200, oklch(92.2% 0 none))}.axp-font-style-chooser-popup__item{width:100%;cursor:pointer;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:transparent;background-color:transparent;text-align:start;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}.axp-font-style-chooser-popup__item:hover{background-color:rgb(var(--ax-sys-color-primary-lighter-surface) / .55);border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter);border-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected .axp-font-style-option__sample{color:inherit}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXPFontStyleLazyLoadDirective, selector: "[axpFontStyleLazyLoad]", inputs: ["axpFontStyleLazyLoad"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2081
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPFontStyleChooserPopupComponent, isStandalone: true, selector: "ng-component", inputs: { fonts: "fonts", selectedFontId: "selectedFontId" }, usesInheritance: true, ngImport: i0, template: "<div class=\"axp-font-style-chooser-popup flex h-full flex-col bg-lightest\">\n <!-- ----- Scrollable font list filtered by regional language settings ----- -->\n <div class=\"flex-1 overflow-y-auto p-2\">\n <div class=\"flex flex-col gap-1\">\n @for (font of fonts; track font.id) {\n <button\n type=\"button\"\n class=\"axp-font-style-chooser-popup__item\"\n [class.--selected]=\"font.id === selectedFontId\"\n [axpFontStyleLazyLoad]=\"font.id\"\n (click)=\"selectFont(font)\"\n >\n <div class=\"axp-font-style-option\">\n <span\n class=\"axp-font-style-option__sample\"\n [style.font-family]=\"font.cssFamily\"\n [style.font-variation-settings]=\"fontVariation(font.id)\"\n >\n {{ font.title }}\n </span>\n </div>\n </button>\n }\n </div>\n </div>\n</div>\n", styles: ["@layer properties;:host{display:block;width:100%}.axp-font-style-chooser__input{width:100%;cursor:pointer}.axp-font-style-chooser__suffix-btn{pointer-events:none;padding-inline:var(--spacing, .25rem);color:var(--color-neutral-500, oklch(55.6% 0 none))}.axp-font-style-option{display:flex;width:100%;align-items:center;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-font-style-option__sample{width:100%;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-leading: var(--leading-snug, 1.375);line-height:var(--leading-snug, 1.375);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-neutral-700, oklch(37.1% 0 none))}.axp-font-style-option__sample:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-neutral-200, oklch(92.2% 0 none))}.axp-font-style-chooser-popup__item{width:100%;cursor:pointer;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:transparent;background-color:transparent;text-align:start;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}.axp-font-style-chooser-popup__item:hover{background-color:rgb(var(--ax-sys-color-primary-lighter-surface) / .55);border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter);border-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected .axp-font-style-option__sample{color:inherit}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXPFontStyleLazyLoadDirective, selector: "[axpFontStyleLazyLoad]", inputs: ["axpFontStyleLazyLoad"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1971
2082
|
}
|
|
1972
2083
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFontStyleChooserPopupComponent, decorators: [{
|
|
1973
2084
|
type: Component,
|
|
1974
|
-
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPFontStyleLazyLoadDirective], template: "<div class=\"axp-font-style-chooser-popup flex h-full flex-col bg-lightest\">\n <!-- ----- Scrollable font list filtered by regional language settings ----- -->\n <div class=\"flex-1 overflow-y-auto p-2\">\n <div class=\"flex flex-col gap-1\">\n @for (font of fonts; track font.id) {\n <button\n type=\"button\"\n class=\"axp-font-style-chooser-popup__item\"\n [class.--selected]=\"font.id === selectedFontId\"\n [axpFontStyleLazyLoad]=\"font.id\"\n (click)=\"selectFont(font)\"\n >\n <div class=\"axp-font-style-option\">\n <span\n class=\"axp-font-style-option__sample\"\n [style.font-family]=\"font.cssFamily\"\n [style.font-variation-settings]=\"fontVariation(font.id)\"\n >\n {{ font.title }}\n </span>\n </div>\n </button>\n }\n </div>\n </div>\n</div>\n", styles: ["@layer properties;:host{display:block;width:100%}.axp-font-style-chooser__input{width:100%;cursor:pointer}.axp-font-style-chooser__suffix-btn{padding-inline:var(--spacing, .25rem);color:var(--color-neutral-500, oklch(55.6% 0 none))}.axp-font-style-option{display:flex;width:100%;align-items:center;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-font-style-option__sample{width:100%;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-leading: var(--leading-snug, 1.375);line-height:var(--leading-snug, 1.375);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-neutral-700, oklch(37.1% 0 none))}.axp-font-style-option__sample:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-neutral-200, oklch(92.2% 0 none))}.axp-font-style-chooser-popup__item{width:100%;cursor:pointer;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:transparent;background-color:transparent;text-align:start;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}.axp-font-style-chooser-popup__item:hover{background-color:rgb(var(--ax-sys-color-primary-lighter-surface) / .55);border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter);border-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected .axp-font-style-option__sample{color:inherit}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
2085
|
+
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXPFontStyleLazyLoadDirective], template: "<div class=\"axp-font-style-chooser-popup flex h-full flex-col bg-lightest\">\n <!-- ----- Scrollable font list filtered by regional language settings ----- -->\n <div class=\"flex-1 overflow-y-auto p-2\">\n <div class=\"flex flex-col gap-1\">\n @for (font of fonts; track font.id) {\n <button\n type=\"button\"\n class=\"axp-font-style-chooser-popup__item\"\n [class.--selected]=\"font.id === selectedFontId\"\n [axpFontStyleLazyLoad]=\"font.id\"\n (click)=\"selectFont(font)\"\n >\n <div class=\"axp-font-style-option\">\n <span\n class=\"axp-font-style-option__sample\"\n [style.font-family]=\"font.cssFamily\"\n [style.font-variation-settings]=\"fontVariation(font.id)\"\n >\n {{ font.title }}\n </span>\n </div>\n </button>\n }\n </div>\n </div>\n</div>\n", styles: ["@layer properties;:host{display:block;width:100%}.axp-font-style-chooser__input{width:100%;cursor:pointer}.axp-font-style-chooser__suffix-btn{pointer-events:none;padding-inline:var(--spacing, .25rem);color:var(--color-neutral-500, oklch(55.6% 0 none))}.axp-font-style-option{display:flex;width:100%;align-items:center;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-font-style-option__sample{width:100%;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-leading: var(--leading-snug, 1.375);line-height:var(--leading-snug, 1.375);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-neutral-700, oklch(37.1% 0 none))}.axp-font-style-option__sample:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-neutral-200, oklch(92.2% 0 none))}.axp-font-style-chooser-popup__item{width:100%;cursor:pointer;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:transparent;background-color:transparent;text-align:start;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}.axp-font-style-chooser-popup__item:hover{background-color:rgb(var(--ax-sys-color-primary-lighter-surface) / .55);border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter);border-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected .axp-font-style-option__sample{color:inherit}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
1975
2086
|
}], propDecorators: { fonts: [{
|
|
1976
2087
|
type: Input
|
|
1977
2088
|
}], selectedFontId: [{
|
|
@@ -1995,9 +2106,11 @@ class AXPFontStyleChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
1995
2106
|
//#region ----- State Signals -----
|
|
1996
2107
|
this.fonts = signal(AXP_FONT_STYLE_OPTIONS.filter((font) => font.script === 'universal'), /* @ts-ignore */
|
|
1997
2108
|
...(ngDevMode ? [{ debugName: "fonts" }] : /* istanbul ignore next */ []));
|
|
2109
|
+
this.languageCode = signal(undefined, /* @ts-ignore */
|
|
2110
|
+
...(ngDevMode ? [{ debugName: "languageCode" }] : /* istanbul ignore next */ []));
|
|
1998
2111
|
this.selectedFontId = computed(() => {
|
|
1999
2112
|
const available = this.fonts();
|
|
2000
|
-
return resolveEffectiveFontId(this.getValue(), available);
|
|
2113
|
+
return resolveEffectiveFontId(this.getValue(), available, this.languageCode());
|
|
2001
2114
|
}, /* @ts-ignore */
|
|
2002
2115
|
...(ngDevMode ? [{ debugName: "selectedFontId" }] : /* istanbul ignore next */ []));
|
|
2003
2116
|
this.selectedFont = computed(() => {
|
|
@@ -2023,7 +2136,8 @@ class AXPFontStyleChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
2023
2136
|
void this.refreshFonts();
|
|
2024
2137
|
});
|
|
2025
2138
|
this.settingsService.onChanged
|
|
2026
|
-
.pipe(filter((change) => change.keys.includes(AXPRegionalSetting.AvailableLanguages)
|
|
2139
|
+
.pipe(filter((change) => change.keys.includes(AXPRegionalSetting.AvailableLanguages) ||
|
|
2140
|
+
change.keys.includes(AXPRegionalSetting.Language)), takeUntilDestroyed(this.destroyRef))
|
|
2027
2141
|
.subscribe(() => {
|
|
2028
2142
|
void this.refreshFonts();
|
|
2029
2143
|
});
|
|
@@ -2045,7 +2159,7 @@ class AXPFontStyleChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
2045
2159
|
});
|
|
2046
2160
|
const fontId = result?.data?.fontId;
|
|
2047
2161
|
if (fontId) {
|
|
2048
|
-
this.setValue(resolveEffectiveFontId(fontId, this.fonts()));
|
|
2162
|
+
this.setValue(resolveEffectiveFontId(fontId, this.fonts(), this.languageCode()));
|
|
2049
2163
|
}
|
|
2050
2164
|
}
|
|
2051
2165
|
//#endregion
|
|
@@ -2053,21 +2167,23 @@ class AXPFontStyleChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
2053
2167
|
async refreshFonts() {
|
|
2054
2168
|
const context = await resolveRegionalFontScriptContext(this.settingsService, this.localePort);
|
|
2055
2169
|
const available = resolveRegionalFontOptions(context);
|
|
2170
|
+
const language = (await this.settingsService.get(AXPRegionalSetting.Language));
|
|
2171
|
+
this.languageCode.set(language);
|
|
2056
2172
|
this.fonts.set(available);
|
|
2057
|
-
const effectiveId = resolveEffectiveFontId(this.getValue(), available);
|
|
2173
|
+
const effectiveId = resolveEffectiveFontId(this.getValue(), available, language);
|
|
2058
2174
|
this.regionalFontLoader.ensureFontStylesLoaded(effectiveId);
|
|
2059
2175
|
if (effectiveId !== this.getValue()) {
|
|
2060
2176
|
this.setValue(effectiveId);
|
|
2061
2177
|
}
|
|
2062
2178
|
}
|
|
2063
2179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2064
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPFontStyleChooserWidgetComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "axp-font-style-chooser block w-full" }, usesInheritance: true, ngImport: i0, template: "<ax-text-box\n class=\"axp-font-style-chooser__input\"\n look=\"fill\"\n [ngModel]=\"selectedFontLabel()\"\n [readonly]=\"true\"\n [disabled]=\"isInteractionDisabled()\"\n [style.font-family]=\"selectedFontFamily()\"\n [style.font-variation-settings]=\"selectedFontVariation()\"\n (click)=\"openPopup()\"\n>\n <ax-suffix>\n <ax-button\n look=\"none\"\n class=\"axp-font-style-chooser__suffix-btn\"\n [disabled]=\"isInteractionDisabled()\"\n
|
|
2180
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: AXPFontStyleChooserWidgetComponent, isStandalone: true, selector: "ng-component", host: { classAttribute: "axp-font-style-chooser block w-full" }, usesInheritance: true, ngImport: i0, template: "<ax-text-box\n class=\"axp-font-style-chooser__input\"\n look=\"fill\"\n [ngModel]=\"selectedFontLabel()\"\n [readonly]=\"true\"\n [disabled]=\"isInteractionDisabled()\"\n [style.font-family]=\"selectedFontFamily()\"\n [style.font-variation-settings]=\"selectedFontVariation()\"\n (click)=\"openPopup()\"\n>\n <ax-suffix>\n <ax-button\n look=\"none\"\n class=\"axp-font-style-chooser__suffix-btn\"\n [disabled]=\"isInteractionDisabled()\"\n >\n <ax-icon icon=\"fa-light fa-up-right-from-square\"></ax-icon>\n </ax-button>\n </ax-suffix>\n</ax-text-box>\n", styles: ["@layer properties;:host{display:block;width:100%}.axp-font-style-chooser__input{width:100%;cursor:pointer}.axp-font-style-chooser__suffix-btn{pointer-events:none;padding-inline:var(--spacing, .25rem);color:var(--color-neutral-500, oklch(55.6% 0 none))}.axp-font-style-option{display:flex;width:100%;align-items:center;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-font-style-option__sample{width:100%;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-leading: var(--leading-snug, 1.375);line-height:var(--leading-snug, 1.375);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-neutral-700, oklch(37.1% 0 none))}.axp-font-style-option__sample:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-neutral-200, oklch(92.2% 0 none))}.axp-font-style-chooser-popup__item{width:100%;cursor:pointer;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:transparent;background-color:transparent;text-align:start;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}.axp-font-style-chooser-popup__item:hover{background-color:rgb(var(--ax-sys-color-primary-lighter-surface) / .55);border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter);border-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected .axp-font-style-option__sample{color:inherit}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ 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: "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: AXTextBoxModule }, { kind: "component", type: i3$1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { 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 }); }
|
|
2065
2181
|
}
|
|
2066
2182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPFontStyleChooserWidgetComponent, decorators: [{
|
|
2067
2183
|
type: Component,
|
|
2068
2184
|
args: [{ host: {
|
|
2069
2185
|
class: 'axp-font-style-chooser block w-full',
|
|
2070
|
-
}, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXTextBoxModule, FormsModule], template: "<ax-text-box\n class=\"axp-font-style-chooser__input\"\n look=\"fill\"\n [ngModel]=\"selectedFontLabel()\"\n [readonly]=\"true\"\n [disabled]=\"isInteractionDisabled()\"\n [style.font-family]=\"selectedFontFamily()\"\n [style.font-variation-settings]=\"selectedFontVariation()\"\n (click)=\"openPopup()\"\n>\n <ax-suffix>\n <ax-button\n look=\"none\"\n class=\"axp-font-style-chooser__suffix-btn\"\n [disabled]=\"isInteractionDisabled()\"\n
|
|
2186
|
+
}, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXTextBoxModule, FormsModule], template: "<ax-text-box\n class=\"axp-font-style-chooser__input\"\n look=\"fill\"\n [ngModel]=\"selectedFontLabel()\"\n [readonly]=\"true\"\n [disabled]=\"isInteractionDisabled()\"\n [style.font-family]=\"selectedFontFamily()\"\n [style.font-variation-settings]=\"selectedFontVariation()\"\n (click)=\"openPopup()\"\n>\n <ax-suffix>\n <ax-button\n look=\"none\"\n class=\"axp-font-style-chooser__suffix-btn\"\n [disabled]=\"isInteractionDisabled()\"\n >\n <ax-icon icon=\"fa-light fa-up-right-from-square\"></ax-icon>\n </ax-button>\n </ax-suffix>\n</ax-text-box>\n", styles: ["@layer properties;:host{display:block;width:100%}.axp-font-style-chooser__input{width:100%;cursor:pointer}.axp-font-style-chooser__suffix-btn{pointer-events:none;padding-inline:var(--spacing, .25rem);color:var(--color-neutral-500, oklch(55.6% 0 none))}.axp-font-style-option{display:flex;width:100%;align-items:center;padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-font-style-option__sample{width:100%;font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)));--tw-leading: var(--leading-snug, 1.375);line-height:var(--leading-snug, 1.375);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:var(--color-neutral-700, oklch(37.1% 0 none))}.axp-font-style-option__sample:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){color:var(--color-neutral-200, oklch(92.2% 0 none))}.axp-font-style-chooser-popup__item{width:100%;cursor:pointer;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:transparent;background-color:transparent;text-align:start;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}.axp-font-style-chooser-popup__item:hover{background-color:rgb(var(--ax-sys-color-primary-lighter-surface) / .55);border-color:rgb(var(--ax-sys-color-border-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter);border-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-lighter-surface))}.axp-font-style-chooser-popup__item.--selected .axp-font-style-option__sample{color:inherit}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-font-weight: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
2071
2187
|
}] });
|
|
2072
2188
|
|
|
2073
2189
|
var fontStyleChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
@@ -2171,7 +2287,7 @@ class AXPMenuOrientationChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
2171
2287
|
}
|
|
2172
2288
|
</div>
|
|
2173
2289
|
}
|
|
2174
|
-
`, isInline: true, styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host>div:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface)}:host>div:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}:host>div.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host>div.--visual{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 3)}:host>div.--visual img{display:block;height:auto;width:100%}:host>div.--visual>span{text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-snug, 1.375);line-height:var(--leading-snug, 1.375);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}:host>div i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host>div>span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\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:
|
|
2290
|
+
`, isInline: true, styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host>div:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface)}:host>div:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}:host>div.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host>div.--visual{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:calc(var(--spacing, .25rem) * 2);padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 3)}:host>div.--visual img{display:block;height:auto;width:100%}:host>div.--visual>span{text-align:center;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-snug, 1.375);line-height:var(--leading-snug, 1.375);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}:host>div i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host>div>span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\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: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2175
2291
|
}
|
|
2176
2292
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPMenuOrientationChooserWidgetComponent, decorators: [{
|
|
2177
2293
|
type: Component,
|
|
@@ -2450,7 +2566,7 @@ class AXPColorChooserWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
2450
2566
|
<ax-validation-rule message="field can't be empty" rule="required"></ax-validation-rule>
|
|
2451
2567
|
</ax-select-box>
|
|
2452
2568
|
</ax-form-field>
|
|
2453
|
-
`, 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$
|
|
2569
|
+
`, 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$3.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "directive", type: i2$3.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 }); }
|
|
2454
2570
|
}
|
|
2455
2571
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPColorChooserWidgetEditComponent, decorators: [{
|
|
2456
2572
|
type: Component,
|
|
@@ -2560,7 +2676,7 @@ class AXPThemeModeChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
|
2560
2676
|
<span>{{ '@layout:terms.theme-modes.' + mode.id | translate | async }}</span>
|
|
2561
2677
|
</div>
|
|
2562
2678
|
}
|
|
2563
|
-
`, isInline: true, styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:var(--spacing, .25rem);background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host>div:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface)}:host>div:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}:host>div.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host>div>span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\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:
|
|
2679
|
+
`, isInline: true, styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:var(--spacing, .25rem);background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host>div:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface)}:host>div:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}:host>div.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host>div>span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\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: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2564
2680
|
}
|
|
2565
2681
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPThemeModeChooserWidgetComponent, decorators: [{
|
|
2566
2682
|
type: Component,
|
|
@@ -2678,11 +2794,175 @@ const AXPThemePaletteChooserWidget = {
|
|
|
2678
2794
|
}
|
|
2679
2795
|
};
|
|
2680
2796
|
|
|
2797
|
+
class AXPMenuAppearanceChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
2798
|
+
constructor() {
|
|
2799
|
+
super(...arguments);
|
|
2800
|
+
this.modes = signal([
|
|
2801
|
+
{
|
|
2802
|
+
id: 'dark',
|
|
2803
|
+
icon: 'fa-light fa-moon',
|
|
2804
|
+
labelKey: '@layout:settings.appearance.items.root-menu.dark.options.dark',
|
|
2805
|
+
},
|
|
2806
|
+
{
|
|
2807
|
+
id: 'light',
|
|
2808
|
+
icon: 'fa-light fa-sun',
|
|
2809
|
+
labelKey: '@layout:settings.appearance.items.root-menu.dark.options.light',
|
|
2810
|
+
},
|
|
2811
|
+
{
|
|
2812
|
+
id: 'brand-light',
|
|
2813
|
+
icon: 'fa-light fa-palette',
|
|
2814
|
+
labelKey: '@layout:settings.appearance.items.root-menu.dark.options.brand-light',
|
|
2815
|
+
},
|
|
2816
|
+
{
|
|
2817
|
+
id: 'brand-dark',
|
|
2818
|
+
icon: 'fa-light fa-moon-stars',
|
|
2819
|
+
labelKey: '@layout:settings.appearance.items.root-menu.dark.options.brand-dark',
|
|
2820
|
+
},
|
|
2821
|
+
], /* @ts-ignore */
|
|
2822
|
+
...(ngDevMode ? [{ debugName: "modes" }] : /* istanbul ignore next */ []));
|
|
2823
|
+
this.selectedMode = signal(null, /* @ts-ignore */
|
|
2824
|
+
...(ngDevMode ? [{ debugName: "selectedMode" }] : /* istanbul ignore next */ []));
|
|
2825
|
+
this.#eff = effect(() => {
|
|
2826
|
+
const value = this.getValue();
|
|
2827
|
+
const normalized = normalizeMenuAppearance(value, 'dark');
|
|
2828
|
+
this.selectedMode.set(this.modes().find((m) => m.id === normalized) ?? this.modes()[0]);
|
|
2829
|
+
}, /* @ts-ignore */
|
|
2830
|
+
...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
|
|
2831
|
+
}
|
|
2832
|
+
#eff;
|
|
2833
|
+
onModeClick(mode) {
|
|
2834
|
+
this.setValue(mode.id);
|
|
2835
|
+
}
|
|
2836
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPMenuAppearanceChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2837
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPMenuAppearanceChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
2838
|
+
@for (mode of modes(); track mode.id) {
|
|
2839
|
+
<div (click)="onModeClick(mode)" [class.--selected]="mode.id === selectedMode()?.id">
|
|
2840
|
+
<div>
|
|
2841
|
+
<i [class]="mode.icon"></i>
|
|
2842
|
+
</div>
|
|
2843
|
+
<span>{{ mode.labelKey | translate | async }}</span>
|
|
2844
|
+
</div>
|
|
2845
|
+
}
|
|
2846
|
+
`, isInline: true, styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host>div:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface)}:host>div:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}:host>div.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host>div>span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2847
|
+
}
|
|
2848
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPMenuAppearanceChooserWidgetComponent, decorators: [{
|
|
2849
|
+
type: Component,
|
|
2850
|
+
args: [{ template: `
|
|
2851
|
+
@for (mode of modes(); track mode.id) {
|
|
2852
|
+
<div (click)="onModeClick(mode)" [class.--selected]="mode.id === selectedMode()?.id">
|
|
2853
|
+
<div>
|
|
2854
|
+
<i [class]="mode.icon"></i>
|
|
2855
|
+
</div>
|
|
2856
|
+
<span>{{ mode.labelKey | translate | async }}</span>
|
|
2857
|
+
</div>
|
|
2858
|
+
}
|
|
2859
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXSelectionCdkModule, AXTranslationModule], styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host>div{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);background-color:var(--color-light);color:var(--color-on-light);border-color:var(--color-border-light);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host>div:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface)}:host>div:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}:host>div.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host>div>div{display:flex;align-items:center;justify-content:center}:host>div>div i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host>div>span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
2860
|
+
}] });
|
|
2861
|
+
|
|
2862
|
+
var menuAppearanceChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
2863
|
+
__proto__: null,
|
|
2864
|
+
AXPMenuAppearanceChooserWidgetComponent: AXPMenuAppearanceChooserWidgetComponent
|
|
2865
|
+
});
|
|
2866
|
+
|
|
2867
|
+
const AXPMenuAppearanceChooserWidget = {
|
|
2868
|
+
name: 'menu-appearance-chooser',
|
|
2869
|
+
title: 'Menu Appearance Chooser',
|
|
2870
|
+
icon: 'fa-light fa-paintbrush',
|
|
2871
|
+
type: 'editor',
|
|
2872
|
+
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
2873
|
+
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
2874
|
+
components: {
|
|
2875
|
+
edit: {
|
|
2876
|
+
component: () => Promise.resolve().then(function () { return menuAppearanceChooserWidget_component; }).then((c) => c.AXPMenuAppearanceChooserWidgetComponent),
|
|
2877
|
+
},
|
|
2878
|
+
},
|
|
2879
|
+
};
|
|
2880
|
+
|
|
2881
|
+
class AXPHeaderAppearanceChooserWidgetComponent extends AXPValueWidgetComponent {
|
|
2882
|
+
constructor() {
|
|
2883
|
+
super(...arguments);
|
|
2884
|
+
this.modes = signal([
|
|
2885
|
+
{
|
|
2886
|
+
id: 'brand',
|
|
2887
|
+
icon: 'fa-light fa-palette',
|
|
2888
|
+
labelKey: '@layout:settings.appearance.items.header.appearance.options.brand',
|
|
2889
|
+
},
|
|
2890
|
+
{
|
|
2891
|
+
id: 'simple',
|
|
2892
|
+
icon: 'fa-light fa-window-maximize',
|
|
2893
|
+
labelKey: '@layout:settings.appearance.items.header.appearance.options.simple',
|
|
2894
|
+
},
|
|
2895
|
+
], /* @ts-ignore */
|
|
2896
|
+
...(ngDevMode ? [{ debugName: "modes" }] : /* istanbul ignore next */ []));
|
|
2897
|
+
this.selectedMode = signal(null, /* @ts-ignore */
|
|
2898
|
+
...(ngDevMode ? [{ debugName: "selectedMode" }] : /* istanbul ignore next */ []));
|
|
2899
|
+
this.#eff = effect(() => {
|
|
2900
|
+
const value = this.getValue();
|
|
2901
|
+
const normalized = normalizeHeaderAppearance(value, 'brand');
|
|
2902
|
+
this.selectedMode.set(this.modes().find((m) => m.id === normalized) ?? this.modes()[0]);
|
|
2903
|
+
}, /* @ts-ignore */
|
|
2904
|
+
...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
|
|
2905
|
+
}
|
|
2906
|
+
#eff;
|
|
2907
|
+
onModeClick(mode) {
|
|
2908
|
+
this.setValue(mode.id);
|
|
2909
|
+
}
|
|
2910
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPHeaderAppearanceChooserWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2911
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPHeaderAppearanceChooserWidgetComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
2912
|
+
@for (mode of modes(); track mode.id) {
|
|
2913
|
+
<div
|
|
2914
|
+
(click)="onModeClick(mode)"
|
|
2915
|
+
[class.--selected]="mode.id === selectedMode()?.id"
|
|
2916
|
+
class="axp-header-appearance-chooser__option"
|
|
2917
|
+
>
|
|
2918
|
+
<i [class]="mode.icon"></i>
|
|
2919
|
+
<span>{{ mode.labelKey | translate | async }}</span>
|
|
2920
|
+
</div>
|
|
2921
|
+
}
|
|
2922
|
+
`, isInline: true, styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host .axp-header-appearance-chooser__option{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:var(--spacing, .25rem);background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host .axp-header-appearance-chooser__option i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host .axp-header-appearance-chooser__option span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}:host .axp-header-appearance-chooser__option.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host .axp-header-appearance-chooser__option:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXSelectionCdkModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2923
|
+
}
|
|
2924
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPHeaderAppearanceChooserWidgetComponent, decorators: [{
|
|
2925
|
+
type: Component,
|
|
2926
|
+
args: [{ template: `
|
|
2927
|
+
@for (mode of modes(); track mode.id) {
|
|
2928
|
+
<div
|
|
2929
|
+
(click)="onModeClick(mode)"
|
|
2930
|
+
[class.--selected]="mode.id === selectedMode()?.id"
|
|
2931
|
+
class="axp-header-appearance-chooser__option"
|
|
2932
|
+
>
|
|
2933
|
+
<i [class]="mode.icon"></i>
|
|
2934
|
+
<span>{{ mode.labelKey | translate | async }}</span>
|
|
2935
|
+
</div>
|
|
2936
|
+
}
|
|
2937
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXSelectionCdkModule, AXTranslationModule], styles: ["@layer properties;:host{display:flex;flex-direction:row;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}:host .axp-header-appearance-chooser__option{display:flex;cursor:pointer;flex-direction:row;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-lg, .5rem);padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:var(--spacing, .25rem);background-color:var(--color-surface);color:var(--color-on-surface);border-color:var(--color-border-surface);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .2s;transition-duration:.2s}:host .axp-header-appearance-chooser__option i{font-size:var(--text-xl, 1.25rem);line-height:var(--tw-leading, var(--text-xl--line-height, calc(1.75 / 1.25)))}:host .axp-header-appearance-chooser__option span{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}:host .axp-header-appearance-chooser__option.--selected{background-color:var(--color-primary-lighter);color:var(--color-on-primary-lighter);border-color:var(--color-border-primary-lighter)}:host .axp-header-appearance-chooser__option:hover{background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration: initial;--tw-leading: initial;--tw-font-weight: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"] }]
|
|
2938
|
+
}] });
|
|
2939
|
+
|
|
2940
|
+
var headerAppearanceChooserWidget_component = /*#__PURE__*/Object.freeze({
|
|
2941
|
+
__proto__: null,
|
|
2942
|
+
AXPHeaderAppearanceChooserWidgetComponent: AXPHeaderAppearanceChooserWidgetComponent
|
|
2943
|
+
});
|
|
2944
|
+
|
|
2945
|
+
const AXPHeaderAppearanceChooserWidget = {
|
|
2946
|
+
name: 'header-appearance-chooser',
|
|
2947
|
+
title: 'Header Appearance Chooser',
|
|
2948
|
+
icon: 'fa-light fa-window-maximize',
|
|
2949
|
+
type: 'editor',
|
|
2950
|
+
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
2951
|
+
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
2952
|
+
components: {
|
|
2953
|
+
edit: {
|
|
2954
|
+
component: () => Promise.resolve().then(function () { return headerAppearanceChooserWidget_component; }).then((c) => c.AXPHeaderAppearanceChooserWidgetComponent),
|
|
2955
|
+
},
|
|
2956
|
+
},
|
|
2957
|
+
};
|
|
2958
|
+
|
|
2681
2959
|
//#endregion
|
|
2682
2960
|
//#region ---- Theme Widgets Provider ----
|
|
2683
2961
|
const WIDGETS = [
|
|
2684
2962
|
AXPThemePaletteChooserWidget,
|
|
2685
2963
|
AXPThemeModeChooserWidget,
|
|
2964
|
+
AXPMenuAppearanceChooserWidget,
|
|
2965
|
+
AXPHeaderAppearanceChooserWidget,
|
|
2686
2966
|
AXPMenuOrientationChooserWidget,
|
|
2687
2967
|
AXPFontSizeChooserWidget,
|
|
2688
2968
|
AXPFontStyleChooserWidget,
|
|
@@ -2714,7 +2994,15 @@ class AXPThemesSharedModule {
|
|
|
2714
2994
|
platformSettingsLoadState?.isOfflineMode()) {
|
|
2715
2995
|
return;
|
|
2716
2996
|
}
|
|
2717
|
-
|
|
2997
|
+
const LAYOUT_THEME_STARTUP_TIMEOUT_MS = 8_000;
|
|
2998
|
+
await Promise.race([
|
|
2999
|
+
service.loadSettings().catch((error) => {
|
|
3000
|
+
console.warn('layout-theme settings apply failed', error);
|
|
3001
|
+
}),
|
|
3002
|
+
new Promise((resolve) => {
|
|
3003
|
+
setTimeout(resolve, LAYOUT_THEME_STARTUP_TIMEOUT_MS);
|
|
3004
|
+
}),
|
|
3005
|
+
]);
|
|
2718
3006
|
},
|
|
2719
3007
|
});
|
|
2720
3008
|
}
|
|
@@ -2730,7 +3018,7 @@ class AXPThemesSharedModule {
|
|
|
2730
3018
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
2731
3019
|
useFactory: async () => {
|
|
2732
3020
|
const injector = inject(Injector);
|
|
2733
|
-
const provider = (await import('./acorex-platform-framework-client-themes-shared-settings.provider-
|
|
3021
|
+
const provider = (await import('./acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs')).AXPThemeSettingProvider;
|
|
2734
3022
|
return new provider(injector);
|
|
2735
3023
|
},
|
|
2736
3024
|
multi: true,
|
|
@@ -2774,7 +3062,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2774
3062
|
provide: AXP_SETTING_DEFINITION_PROVIDER,
|
|
2775
3063
|
useFactory: async () => {
|
|
2776
3064
|
const injector = inject(Injector);
|
|
2777
|
-
const provider = (await import('./acorex-platform-framework-client-themes-shared-settings.provider-
|
|
3065
|
+
const provider = (await import('./acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs')).AXPThemeSettingProvider;
|
|
2778
3066
|
return new provider(injector);
|
|
2779
3067
|
},
|
|
2780
3068
|
multi: true,
|
|
@@ -2788,5 +3076,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
2788
3076
|
* Generated bundle index. Do not edit.
|
|
2789
3077
|
*/
|
|
2790
3078
|
|
|
2791
|
-
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, configureRegionalFontStylesheets, getRegionalFontStylesheet };
|
|
3079
|
+
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, configureRegionalFontStylesheets, getRegionalFontStylesheet, normalizeHeaderAppearance, normalizeMenuAppearance };
|
|
2792
3080
|
//# sourceMappingURL=acorex-platform-framework-client-themes-shared.mjs.map
|