@acorex/platform 19.2.4 → 19.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/common/lib/layout/menu/menu.types.d.ts +2 -1
  2. package/common/lib/utils/export-popup.d.ts +19 -0
  3. package/common/lib/utils/export.service.d.ts +21 -0
  4. package/common/lib/utils/index.d.ts +1 -1
  5. package/common/lib/workflows/common.workflow.d.ts +2 -0
  6. package/fesm2022/acorex-platform-common.mjs +236 -84
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-layout-builder.mjs +12 -8
  9. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-layout-designer.mjs +15 -15
  11. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-entity.mjs +69 -17
  13. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-search.mjs +10 -6
  15. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bl9f4Rtk.mjs +108 -0
  17. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bl9f4Rtk.mjs.map +1 -0
  18. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-ClNKQnoc.mjs +376 -0
  19. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-ClNKQnoc.mjs.map +1 -0
  20. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-U8aBv1Ql.mjs +87 -0
  21. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-U8aBv1Ql.mjs.map +1 -0
  22. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B4aBmc5H.mjs +130 -0
  23. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B4aBmc5H.mjs.map +1 -0
  24. package/fesm2022/{acorex-platform-themes-default-error-401.component-BPQ1z42t.mjs → acorex-platform-themes-default-error-401.component-Brx-zHqH.mjs} +3 -3
  25. package/fesm2022/{acorex-platform-themes-default-error-401.component-BPQ1z42t.mjs.map → acorex-platform-themes-default-error-401.component-Brx-zHqH.mjs.map} +1 -1
  26. package/fesm2022/{acorex-platform-themes-default-error-404.component-CGgD5C7q.mjs → acorex-platform-themes-default-error-404.component-C8mJP9D8.mjs} +3 -3
  27. package/fesm2022/{acorex-platform-themes-default-error-404.component-CGgD5C7q.mjs.map → acorex-platform-themes-default-error-404.component-C8mJP9D8.mjs.map} +1 -1
  28. package/fesm2022/{acorex-platform-themes-default-error-offline.component-CkVGS1HQ.mjs → acorex-platform-themes-default-error-offline.component-CwBClgcf.mjs} +3 -3
  29. package/fesm2022/{acorex-platform-themes-default-error-offline.component-CkVGS1HQ.mjs.map → acorex-platform-themes-default-error-offline.component-CwBClgcf.mjs.map} +1 -1
  30. package/fesm2022/acorex-platform-themes-default-search-popup.component-BZJTLnlM.mjs +129 -0
  31. package/fesm2022/acorex-platform-themes-default-search-popup.component-BZJTLnlM.mjs.map +1 -0
  32. package/fesm2022/acorex-platform-themes-default-setting-page.component-oA4kM_-3.mjs +74 -0
  33. package/fesm2022/acorex-platform-themes-default-setting-page.component-oA4kM_-3.mjs.map +1 -0
  34. package/fesm2022/acorex-platform-themes-default-setting-view.component-CJZBhtKE.mjs +71 -0
  35. package/fesm2022/acorex-platform-themes-default-setting-view.component-CJZBhtKE.mjs.map +1 -0
  36. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-D_AK8uVB.mjs +118 -0
  37. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-D_AK8uVB.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-themes-default.mjs +29 -29
  39. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  40. package/fesm2022/acorex-platform-themes-shared.mjs +13 -8
  41. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  42. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-B53z9A_A.mjs → acorex-platform-widgets-button-widget-designer.component-2iWPztWW.mjs} +2 -2
  43. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-B53z9A_A.mjs.map → acorex-platform-widgets-button-widget-designer.component-2iWPztWW.mjs.map} +1 -1
  44. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-CHDMlorX.mjs → acorex-platform-widgets-rich-text-popup.component-DYExfz5U.mjs} +2 -2
  45. package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-CHDMlorX.mjs.map → acorex-platform-widgets-rich-text-popup.component-DYExfz5U.mjs.map} +1 -1
  46. package/fesm2022/acorex-platform-widgets.mjs +54 -40
  47. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  48. package/layout/builder/lib/builder/widget-column-renderer.d.ts +3 -1
  49. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +1 -0
  50. package/layout/search/lib/search.viewmodel.d.ts +2 -1
  51. package/package.json +6 -6
  52. package/themes/default/lib/layouts/search-layout/search-popup.component.d.ts +2 -1
  53. package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +1 -1
  54. package/themes/shared/lib/components/layout-elements/layout-header.component.d.ts +1 -1
  55. package/themes/shared/lib/components/layout-elements/layout-list.component.d.ts +1 -1
  56. package/themes/shared/lib/palette.provider.d.ts +2 -2
  57. package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +4 -1
  58. package/common/lib/utils/pdf.service.d.ts +0 -25
  59. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Yq3pzh9K.mjs +0 -108
  60. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Yq3pzh9K.mjs.map +0 -1
  61. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DarhCaO1.mjs +0 -369
  62. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DarhCaO1.mjs.map +0 -1
  63. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CPG4i72f.mjs +0 -87
  64. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CPG4i72f.mjs.map +0 -1
  65. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bwgawuvl.mjs +0 -130
  66. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bwgawuvl.mjs.map +0 -1
  67. package/fesm2022/acorex-platform-themes-default-search-popup.component-ChZHzvG4.mjs +0 -122
  68. package/fesm2022/acorex-platform-themes-default-search-popup.component-ChZHzvG4.mjs.map +0 -1
  69. package/fesm2022/acorex-platform-themes-default-setting-page.component-CGjDwlvq.mjs +0 -74
  70. package/fesm2022/acorex-platform-themes-default-setting-page.component-CGjDwlvq.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-themes-default-setting-view.component-DK9j13yV.mjs +0 -71
  72. package/fesm2022/acorex-platform-themes-default-setting-view.component-DK9j13yV.mjs.map +0 -1
  73. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-C3RJdApv.mjs +0 -118
  74. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-C3RJdApv.mjs.map +0 -1
@@ -1,118 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { inject, signal, computed, Component, ChangeDetectionStrategy } from '@angular/core';
4
- import { AXPLayoutThemeService, AXP_THEME_PALETTE_PROVIDER, AXPThemeLayoutSetting, AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderTemplateComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutPagePrimaryActionsComponent } from '@acorex/platform/themes/shared';
5
- import { AXSearchBoxModule } from '@acorex/components/search-box';
6
- import { AXDecoratorModule } from '@acorex/components/decorators';
7
- import { AXPSettingsViewModel } from '@acorex/platform/layout/setting';
8
- import { FormsModule } from '@angular/forms';
9
- import { AXTreeViewModule } from '@acorex/components/tree-view';
10
- import { RouterModule } from '@angular/router';
11
- import * as i1 from '@acorex/components/breadcrumbs';
12
- import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
13
- import * as i6 from '@acorex/core/translation';
14
- import { AXTranslationModule } from '@acorex/core/translation';
15
- import * as i4 from '@acorex/components/button';
16
- import { AXButtonModule } from '@acorex/components/button';
17
- import { AXTabsModule } from '@acorex/components/tabs';
18
- import { AXBadgeModule } from '@acorex/components/badge';
19
- import { AXLoadingModule } from '@acorex/components/loading';
20
- import * as i7 from '@acorex/components/dropdown-button';
21
- import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
22
- import { AXPSimplePageLayout } from './acorex-platform-themes-default.mjs';
23
- import { AXPSettingService, AXPSettingScope } from '@acorex/platform/common';
24
- import { AXUnsubscriber } from '@acorex/core/utils';
25
-
26
- class AXPThemePalettePreviewPageComponent {
27
- constructor() {
28
- this.layout = inject(AXPLayoutThemeService);
29
- this.settingService = inject(AXPSettingService);
30
- this.themePalleteProvider = inject(AXP_THEME_PALETTE_PROVIDER);
31
- this.unsubscriber = inject(AXUnsubscriber);
32
- this.defaultPalette = { name: 'default', title: 'Default', path: 'fake', colors: [] };
33
- this.palettes = signal([]);
34
- this.currentPalleteName = signal('default');
35
- this.currentPallete = computed(() => {
36
- return this.palettes().find(c => c.name == this.currentPalleteName()) ?? this.defaultPalette;
37
- });
38
- this.hexColors = signal({});
39
- this.isLoading = signal(true);
40
- this.ranges = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
41
- this.colors = ['ghost', 'primary', 'secondary', 'success', 'warning', 'danger', 'accent1', 'accent2', 'accent3'];
42
- }
43
- async ngOnInit() {
44
- const list = await this.themePalleteProvider.getList();
45
- this.palettes.set(list);
46
- await this.updateView();
47
- //
48
- this.settingService.onChanged.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async () => {
49
- await this.updateView();
50
- });
51
- }
52
- async updateView() {
53
- this.isLoading.set(true);
54
- this.currentPalleteName.set(await this.settingService.get(AXPThemeLayoutSetting.Palette));
55
- //
56
- setTimeout(() => {
57
- const root = document.documentElement; // Select the root element
58
- const colors = {};
59
- this.colors.forEach((color) => {
60
- this.ranges.forEach((range) => {
61
- const colorValue = getComputedStyle(root).getPropertyValue(`--ax-sys-color-${color}-${range}`);
62
- colors[`${color}-${range}`] = this.rgbToHex(colorValue);
63
- });
64
- });
65
- //
66
- this.hexColors.set(colors);
67
- //
68
- this.isLoading.set(false);
69
- }, 100);
70
- }
71
- async handleChangeTheme(palette) {
72
- await this.settingService.scope(AXPSettingScope.User).set(AXPThemeLayoutSetting.Palette, palette.name);
73
- }
74
- rgbToHex(rgb) {
75
- const match = rgb.match(/\d+/g);
76
- if (match && match.length >= 3) {
77
- const r = parseInt(match[0], 10);
78
- const g = parseInt(match[1], 10);
79
- const b = parseInt(match[2], 10);
80
- return `#${((1 << 24) | (r << 16) | (g << 8) | b).toString(16).slice(1).toUpperCase()}`;
81
- }
82
- return rgb; // Fallback if parsing fails
83
- }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemePalettePreviewPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPThemePalettePreviewPageComponent, isStandalone: true, selector: "ng-component", providers: [AXPSettingsViewModel, AXUnsubscriber], ngImport: i0, template: "<axp-layout-simple-page *translate=\"let t\">\n\n <axp-layout-header>\n <axp-layout-title>\n {{currentPallete().title}} Palette Colors\n </axp-layout-title>\n\n <axp-layout-description>\n Preview of The Theme Colors\n </axp-layout-description>\n\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"layout.isSmall()\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward \"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n Theme\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n Preview\n </ax-breadcrumbs-item>\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n\n <axp-layout-actions>\n <axp-layout-actions-primary>\n <ax-dropdown-button [text]=\"currentPallete().title\" [color]=\"'primary'\">\n <ax-button-item-list>\n @for (palette of palettes(); track $index) {\n <ax-button-item [text]=\"palette.title\" [selected]=\"palette.name==currentPalleteName()\"\n (onClick)=\"handleChangeTheme(palette)\">\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-actions-primary>\n </axp-layout-actions>\n </axp-layout-header>\n\n <axp-layout-content class=\"ax-justify-center ax-px-16 ax-py-8\">\n @if(!isLoading())\n {\n <h2 class=\"ax-font-semibold ax-text-2xl ax-mb-4\">Colors</h2>\n <div class=\"ax-grid ax-grid-flow-row ax-gap-4\">\n @for (color of colors; track $index) {\n <div class=\"ax-flex ax-flex-row ax-gap-4\">\n <div class=\"ax-h-20 ax-w-20 ax-rounded-lg ax-flex ax-justify-center ax-flex-col ax-items-start ax-me-10 \"\n [style.color]=\"'rgb(var(--ax-sys-color-' + color + '-500))'\">\n <div class=\"ax-font-semibold ax-text-xs\">\n <span class=\"ax-capitalize\">{{color}}</span>\n </div>\n <div class=\"ax-text-2xl ax-mt-2\">\n <span class=\"ax-opacity-50\">#</span><span class=\"ax-capitalize\">{{hexColors()[color +\n '-500'].slice(1)}}</span>\n </div>\n </div>\n @for (range of ranges; track $index) {\n <div class=\"ax-h-20 ax-w-20 ax-rounded-lg ax-flex ax-justify-center ax-flex-col ax-shadow-md\"\n [style.background-color]=\"'rgb(var(--ax-sys-color-' + color + '-' + range + '))'\"\n [style.color]=\"'rgb(var(--ax-sys-color-' + (range> 400 ?'on-':'on-contrast-') + color + '))'\">\n <div>\n <div class=\"ax-text-center ax-text-sm ax-font-medium\">{{range}}</div>\n <div class=\"ax-text-center ax-text-xs ax-uppercase ax-opacity-90\">{{hexColors()[color + '-' +\n range]}}</div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n <h2 class=\"ax-font-semibold ax-text-2xl ax-mt-8 ax-mb-4\">Surfaces</h2>\n <div\n class=\"ax-grid ax-grid-cols-1 xl:ax-grid-cols-5 3xl:ax-grid-cols-5 ax-gap-4 child:ax-border child:ax-rounded child:ax-flex child:ax-justify-center child:ax-items-center ax-text-3xl child:ax-py-10 child:ax-px-10 child:ax-text-center\">\n <div class=\"ax-bg-surface-light ax-border-input ax-text-surface-light \">\n Surface Light\n </div>\n <div class=\"ax-bg-surface-dark ax-border-input ax-text-surface-dark\">\n Surface Dark\n </div>\n <div class=\"ax-bg-surface-lowest ax-text-surface-lowest ax-border-surface-lowest ax-col-start-1\">\n Surface Lowest\n </div>\n <div class=\"ax-bg-surface-low ax-text-surface-low ax-border-surface-low\">\n Surface Low\n </div>\n <div class=\"ax-bg-surface ax-text-surface ax-border-surface \">\n Surface\n </div>\n <div class=\"ax-bg-surface-high ax-text-surface-high ax-border-surface-high \">\n Surface High\n </div>\n <div class=\"ax-bg-surface-highest ax-text-surface-highest ax-border-surface-highest\">\n Surface Highest\n </div>\n <div class=\"ax-bg-surface-input ax-border-input ax-col-start-1\">\n Surface Input\n </div>\n\n </div>\n }\n\n <h2 class=\"ax-font-semibold ax-text-2xl ax-mt-8 ax-mb-4\">Surfaces</h2>\n <div class=\"ax-grid ax-grid-cols-8 ax-gap-x-6 ax-gap-y-12 ax-justify-center \">\n @for (color of colors; track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-3 \">\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'solid'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'twotone'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'outline'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'blank'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'link'\" [color]=\"color\"> </ax-button>\n </div>\n }\n </div>\n\n </axp-layout-content>\n\n</axp-layout-simple-page>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type:
86
- //
87
- AXSearchBoxModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: i1.AXBreadCrumbsComponent, selector: "ax-breadcrumbs" }, { kind: "component", type: i1.AXBreadCrumbsItemComponent, selector: "ax-breadcrumbs-item", inputs: ["disabled", "active"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i4.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i4.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i7.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type:
88
- //
89
- AXPSimplePageLayout, selector: "axp-layout-simple-page" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-layout-content, axp-layout-header-container, axp-layout-footer-container, axp-layout-side-container, axp-layout-sections, axp-layout-section-container, axp-layout-body, axp-layout-suffix, axp-layout-prefix, axp-layout-title, axp-layout-nav-button, axp-layout-description, axp-layout-toolbar, axp-layout-title-bar, axp-layout-breadcrumbs " }, { kind: "component", type: AXPThemeLayoutHeaderTemplateComponent, selector: "axp-layout-header" }, { kind: "component", type: AXPThemeLayoutActionsComponent, selector: "axp-layout-actions" }, { kind: "component", type: AXPThemeLayoutPagePrimaryActionsComponent, selector: "axp-layout-actions-primary" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
- }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemePalettePreviewPageComponent, decorators: [{
92
- type: Component,
93
- args: [{ standalone: true, imports: [
94
- CommonModule,
95
- FormsModule,
96
- RouterModule,
97
- //
98
- AXSearchBoxModule,
99
- AXDecoratorModule,
100
- AXTreeViewModule,
101
- AXBreadcrumbsModule,
102
- AXTranslationModule,
103
- AXButtonModule,
104
- AXTabsModule,
105
- AXBadgeModule,
106
- AXLoadingModule,
107
- AXDropdownButtonModule,
108
- //
109
- AXPSimplePageLayout,
110
- AXPThemeLayoutBlockComponent,
111
- AXPThemeLayoutHeaderTemplateComponent,
112
- AXPThemeLayoutActionsComponent,
113
- AXPThemeLayoutPagePrimaryActionsComponent,
114
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPSettingsViewModel, AXUnsubscriber], template: "<axp-layout-simple-page *translate=\"let t\">\n\n <axp-layout-header>\n <axp-layout-title>\n {{currentPallete().title}} Palette Colors\n </axp-layout-title>\n\n <axp-layout-description>\n Preview of The Theme Colors\n </axp-layout-description>\n\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"layout.isSmall()\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward \"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n Theme\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n Preview\n </ax-breadcrumbs-item>\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n\n <axp-layout-actions>\n <axp-layout-actions-primary>\n <ax-dropdown-button [text]=\"currentPallete().title\" [color]=\"'primary'\">\n <ax-button-item-list>\n @for (palette of palettes(); track $index) {\n <ax-button-item [text]=\"palette.title\" [selected]=\"palette.name==currentPalleteName()\"\n (onClick)=\"handleChangeTheme(palette)\">\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-actions-primary>\n </axp-layout-actions>\n </axp-layout-header>\n\n <axp-layout-content class=\"ax-justify-center ax-px-16 ax-py-8\">\n @if(!isLoading())\n {\n <h2 class=\"ax-font-semibold ax-text-2xl ax-mb-4\">Colors</h2>\n <div class=\"ax-grid ax-grid-flow-row ax-gap-4\">\n @for (color of colors; track $index) {\n <div class=\"ax-flex ax-flex-row ax-gap-4\">\n <div class=\"ax-h-20 ax-w-20 ax-rounded-lg ax-flex ax-justify-center ax-flex-col ax-items-start ax-me-10 \"\n [style.color]=\"'rgb(var(--ax-sys-color-' + color + '-500))'\">\n <div class=\"ax-font-semibold ax-text-xs\">\n <span class=\"ax-capitalize\">{{color}}</span>\n </div>\n <div class=\"ax-text-2xl ax-mt-2\">\n <span class=\"ax-opacity-50\">#</span><span class=\"ax-capitalize\">{{hexColors()[color +\n '-500'].slice(1)}}</span>\n </div>\n </div>\n @for (range of ranges; track $index) {\n <div class=\"ax-h-20 ax-w-20 ax-rounded-lg ax-flex ax-justify-center ax-flex-col ax-shadow-md\"\n [style.background-color]=\"'rgb(var(--ax-sys-color-' + color + '-' + range + '))'\"\n [style.color]=\"'rgb(var(--ax-sys-color-' + (range> 400 ?'on-':'on-contrast-') + color + '))'\">\n <div>\n <div class=\"ax-text-center ax-text-sm ax-font-medium\">{{range}}</div>\n <div class=\"ax-text-center ax-text-xs ax-uppercase ax-opacity-90\">{{hexColors()[color + '-' +\n range]}}</div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n <h2 class=\"ax-font-semibold ax-text-2xl ax-mt-8 ax-mb-4\">Surfaces</h2>\n <div\n class=\"ax-grid ax-grid-cols-1 xl:ax-grid-cols-5 3xl:ax-grid-cols-5 ax-gap-4 child:ax-border child:ax-rounded child:ax-flex child:ax-justify-center child:ax-items-center ax-text-3xl child:ax-py-10 child:ax-px-10 child:ax-text-center\">\n <div class=\"ax-bg-surface-light ax-border-input ax-text-surface-light \">\n Surface Light\n </div>\n <div class=\"ax-bg-surface-dark ax-border-input ax-text-surface-dark\">\n Surface Dark\n </div>\n <div class=\"ax-bg-surface-lowest ax-text-surface-lowest ax-border-surface-lowest ax-col-start-1\">\n Surface Lowest\n </div>\n <div class=\"ax-bg-surface-low ax-text-surface-low ax-border-surface-low\">\n Surface Low\n </div>\n <div class=\"ax-bg-surface ax-text-surface ax-border-surface \">\n Surface\n </div>\n <div class=\"ax-bg-surface-high ax-text-surface-high ax-border-surface-high \">\n Surface High\n </div>\n <div class=\"ax-bg-surface-highest ax-text-surface-highest ax-border-surface-highest\">\n Surface Highest\n </div>\n <div class=\"ax-bg-surface-input ax-border-input ax-col-start-1\">\n Surface Input\n </div>\n\n </div>\n }\n\n <h2 class=\"ax-font-semibold ax-text-2xl ax-mt-8 ax-mb-4\">Surfaces</h2>\n <div class=\"ax-grid ax-grid-cols-8 ax-gap-x-6 ax-gap-y-12 ax-justify-center \">\n @for (color of colors; track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-3 \">\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'solid'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'twotone'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'outline'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'blank'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'link'\" [color]=\"color\"> </ax-button>\n </div>\n }\n </div>\n\n </axp-layout-content>\n\n</axp-layout-simple-page>" }]
115
- }] });
116
-
117
- export { AXPThemePalettePreviewPageComponent };
118
- //# sourceMappingURL=acorex-platform-themes-default-theme-palette-preview.page-C3RJdApv.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-theme-palette-preview.page-C3RJdApv.mjs","sources":["../../../../libs/platform/themes/default/src/lib/pages/theme-palette-preview/theme-palette-preview.page.ts","../../../../libs/platform/themes/default/src/lib/pages/theme-palette-preview/theme-palette-preview.page.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal } from '@angular/core';\nimport {\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutHeaderTemplateComponent,\n AXPThemeLayoutPagePrimaryActionsComponent,\n AXPLayoutThemeService,\n AXP_THEME_PALETTE_PROVIDER,\n AXPThemePalette,\n AXPThemeLayoutSetting,\n} from '@acorex/platform/themes/shared';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPSettingsViewModel } from '@acorex/platform/layout/setting';\nimport { FormsModule } from '@angular/forms';\nimport { AXTreeViewModule } from '@acorex/components/tree-view';\nimport { RouterModule } from '@angular/router';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXPSimplePageLayout } from '../../layouts/base';\nimport { AXPSettingScope, AXPSettingService } from '@acorex/platform/common';\nimport { AXUnsubscriber } from '@acorex/core/utils';\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n //\n AXSearchBoxModule,\n AXDecoratorModule,\n AXTreeViewModule,\n AXBreadcrumbsModule,\n AXTranslationModule,\n AXButtonModule,\n AXTabsModule,\n AXBadgeModule,\n AXLoadingModule,\n AXDropdownButtonModule,\n //\n AXPSimplePageLayout,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderTemplateComponent,\n AXPThemeLayoutActionsComponent,\n AXPThemeLayoutPagePrimaryActionsComponent,\n ],\n templateUrl: './theme-palette-preview.page.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [AXPSettingsViewModel, AXUnsubscriber]\n})\n\nexport class AXPThemePalettePreviewPageComponent {\n\n protected readonly layout = inject(AXPLayoutThemeService);\n protected readonly settingService = inject(AXPSettingService);\n private themePalleteProvider = inject(AXP_THEME_PALETTE_PROVIDER);\n\n private readonly unsubscriber = inject(AXUnsubscriber);\n\n private defaultPalette: AXPThemePalette = { name: 'default', title: 'Default', path: 'fake', colors: [] };\n\n protected readonly palettes = signal<AXPThemePalette[]>([]);\n protected currentPalleteName = signal<string>('default');\n protected currentPallete = computed<AXPThemePalette>(() => {\n return this.palettes().find(c => c.name == this.currentPalleteName()) ?? this.defaultPalette;\n });\n\n\n protected hexColors = signal<{ [key: string]: string }>({});\n\n protected isLoading = signal(true);\n\n protected readonly ranges = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n protected readonly colors = ['ghost', 'primary', 'secondary', 'success', 'warning', 'danger', 'accent1', 'accent2', 'accent3'];\n\n async ngOnInit() {\n const list = await this.themePalleteProvider.getList()\n this.palettes.set(list);\n await this.updateView();\n //\n this.settingService.onChanged.pipe(this.unsubscriber.takeUntilDestroy).subscribe(async () => {\n await this.updateView();\n });\n }\n\n private async updateView() {\n this.isLoading.set(true);\n this.currentPalleteName.set(await this.settingService.get(AXPThemeLayoutSetting.Palette));\n //\n setTimeout(() => {\n const root = document.documentElement; // Select the root element\n const colors: { [key: string]: string } = {};\n this.colors.forEach((color) => {\n this.ranges.forEach((range) => {\n const colorValue = getComputedStyle(root).getPropertyValue(`--ax-sys-color-${color}-${range}`);\n colors[`${color}-${range}`] = this.rgbToHex(colorValue);\n });\n });\n //\n this.hexColors.set(colors);\n //\n this.isLoading.set(false);\n }, 100);\n }\n\n protected async handleChangeTheme(palette: AXPThemePalette) {\n await this.settingService.scope(AXPSettingScope.User).set(AXPThemeLayoutSetting.Palette, palette.name);\n }\n\n private rgbToHex(rgb: string): string {\n const match = rgb.match(/\\d+/g);\n if (match && match.length >= 3) {\n const r = parseInt(match[0], 10);\n const g = parseInt(match[1], 10);\n const b = parseInt(match[2], 10);\n return `#${((1 << 24) | (r << 16) | (g << 8) | b).toString(16).slice(1).toUpperCase()}`;\n }\n return rgb; // Fallback if parsing fails\n }\n\n\n}","<axp-layout-simple-page *translate=\"let t\">\n\n <axp-layout-header>\n <axp-layout-title>\n {{currentPallete().title}} Palette Colors\n </axp-layout-title>\n\n <axp-layout-description>\n Preview of The Theme Colors\n </axp-layout-description>\n\n <axp-layout-breadcrumbs>\n <ax-breadcrumbs [class.ax-hidden]=\"layout.isSmall()\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward \"></i>\n </ng-template>\n <ax-breadcrumbs-item>\n Theme\n </ax-breadcrumbs-item>\n <ax-breadcrumbs-item>\n Preview\n </ax-breadcrumbs-item>\n </ax-breadcrumbs>\n </axp-layout-breadcrumbs>\n\n <axp-layout-actions>\n <axp-layout-actions-primary>\n <ax-dropdown-button [text]=\"currentPallete().title\" [color]=\"'primary'\">\n <ax-button-item-list>\n @for (palette of palettes(); track $index) {\n <ax-button-item [text]=\"palette.title\" [selected]=\"palette.name==currentPalleteName()\"\n (onClick)=\"handleChangeTheme(palette)\">\n </ax-button-item>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-actions-primary>\n </axp-layout-actions>\n </axp-layout-header>\n\n <axp-layout-content class=\"ax-justify-center ax-px-16 ax-py-8\">\n @if(!isLoading())\n {\n <h2 class=\"ax-font-semibold ax-text-2xl ax-mb-4\">Colors</h2>\n <div class=\"ax-grid ax-grid-flow-row ax-gap-4\">\n @for (color of colors; track $index) {\n <div class=\"ax-flex ax-flex-row ax-gap-4\">\n <div class=\"ax-h-20 ax-w-20 ax-rounded-lg ax-flex ax-justify-center ax-flex-col ax-items-start ax-me-10 \"\n [style.color]=\"'rgb(var(--ax-sys-color-' + color + '-500))'\">\n <div class=\"ax-font-semibold ax-text-xs\">\n <span class=\"ax-capitalize\">{{color}}</span>\n </div>\n <div class=\"ax-text-2xl ax-mt-2\">\n <span class=\"ax-opacity-50\">#</span><span class=\"ax-capitalize\">{{hexColors()[color +\n '-500'].slice(1)}}</span>\n </div>\n </div>\n @for (range of ranges; track $index) {\n <div class=\"ax-h-20 ax-w-20 ax-rounded-lg ax-flex ax-justify-center ax-flex-col ax-shadow-md\"\n [style.background-color]=\"'rgb(var(--ax-sys-color-' + color + '-' + range + '))'\"\n [style.color]=\"'rgb(var(--ax-sys-color-' + (range> 400 ?'on-':'on-contrast-') + color + '))'\">\n <div>\n <div class=\"ax-text-center ax-text-sm ax-font-medium\">{{range}}</div>\n <div class=\"ax-text-center ax-text-xs ax-uppercase ax-opacity-90\">{{hexColors()[color + '-' +\n range]}}</div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n <h2 class=\"ax-font-semibold ax-text-2xl ax-mt-8 ax-mb-4\">Surfaces</h2>\n <div\n class=\"ax-grid ax-grid-cols-1 xl:ax-grid-cols-5 3xl:ax-grid-cols-5 ax-gap-4 child:ax-border child:ax-rounded child:ax-flex child:ax-justify-center child:ax-items-center ax-text-3xl child:ax-py-10 child:ax-px-10 child:ax-text-center\">\n <div class=\"ax-bg-surface-light ax-border-input ax-text-surface-light \">\n Surface Light\n </div>\n <div class=\"ax-bg-surface-dark ax-border-input ax-text-surface-dark\">\n Surface Dark\n </div>\n <div class=\"ax-bg-surface-lowest ax-text-surface-lowest ax-border-surface-lowest ax-col-start-1\">\n Surface Lowest\n </div>\n <div class=\"ax-bg-surface-low ax-text-surface-low ax-border-surface-low\">\n Surface Low\n </div>\n <div class=\"ax-bg-surface ax-text-surface ax-border-surface \">\n Surface\n </div>\n <div class=\"ax-bg-surface-high ax-text-surface-high ax-border-surface-high \">\n Surface High\n </div>\n <div class=\"ax-bg-surface-highest ax-text-surface-highest ax-border-surface-highest\">\n Surface Highest\n </div>\n <div class=\"ax-bg-surface-input ax-border-input ax-col-start-1\">\n Surface Input\n </div>\n\n </div>\n }\n\n <h2 class=\"ax-font-semibold ax-text-2xl ax-mt-8 ax-mb-4\">Surfaces</h2>\n <div class=\"ax-grid ax-grid-cols-8 ax-gap-x-6 ax-gap-y-12 ax-justify-center \">\n @for (color of colors; track $index) {\n <div class=\"ax-flex ax-flex-col ax-gap-3 \">\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'solid'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'twotone'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'outline'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'blank'\" [color]=\"color\"> </ax-button>\n <ax-button class=\"custom-button\" [text]=\"color\" [look]=\"'link'\" [color]=\"color\"> </ax-button>\n </div>\n }\n </div>\n\n </axp-layout-content>\n\n</axp-layout-simple-page>"],"names":["i2","i4"],"mappings":"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"}