@acorex/platform 19.1.2 → 19.1.4

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 (162) hide show
  1. package/common/index.d.ts +2 -0
  2. package/common/lib/app/application.types.d.ts +12 -10
  3. package/common/lib/configs/app.config.d.ts +0 -1
  4. package/common/lib/file-storage/file-storage.service.d.ts +13 -0
  5. package/common/lib/file-storage/file-storage.types.d.ts +143 -0
  6. package/common/lib/file-storage/index.d.ts +2 -0
  7. package/common/lib/filters/filters.service.d.ts +8 -0
  8. package/common/lib/filters/filters.types.d.ts +19 -0
  9. package/common/lib/filters/index.d.ts +2 -0
  10. package/common/lib/settings/setting-definition.provider.d.ts +13 -4
  11. package/common/lib/settings/setting.builder.d.ts +7 -8
  12. package/common/lib/settings/settings.provider.d.ts +2 -7
  13. package/common/lib/settings/settings.service.d.ts +19 -7
  14. package/common/lib/settings/settings.types.d.ts +15 -2
  15. package/core/utils/highlighter.d.ts +1 -1
  16. package/fesm2022/acorex-platform-auth.mjs +5 -4
  17. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-common.mjs +264 -87
  19. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-core.mjs +2 -2
  21. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-builder.mjs +286 -440
  23. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-designer.mjs +18 -18
  25. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  26. package/fesm2022/acorex-platform-layout-entity.mjs +335 -232
  27. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-layout-filters.mjs +124 -0
  29. package/fesm2022/acorex-platform-layout-filters.mjs.map +1 -0
  30. package/fesm2022/acorex-platform-layout-setting.mjs +219 -132
  31. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-layouts.mjs +4 -5
  33. package/fesm2022/acorex-platform-layouts.mjs.map +1 -1
  34. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-K9B_-q_K.mjs +108 -0
  35. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-K9B_-q_K.mjs.map +1 -0
  36. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DAmHq1bt.mjs +369 -0
  37. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DAmHq1bt.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Cd2gxLZt.mjs +87 -0
  39. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Cd2gxLZt.mjs.map +1 -0
  40. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-6sZdw013.mjs +130 -0
  41. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-6sZdw013.mjs.map +1 -0
  42. package/fesm2022/acorex-platform-themes-default-setting-page.component-BYpCgHZb.mjs +74 -0
  43. package/fesm2022/acorex-platform-themes-default-setting-page.component-BYpCgHZb.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-themes-default-setting-view.component-CdmIphX1.mjs +73 -0
  45. package/fesm2022/acorex-platform-themes-default-setting-view.component-CdmIphX1.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-themes-default.mjs +40 -114
  47. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  48. package/fesm2022/acorex-platform-themes-shared.mjs +465 -157
  49. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  50. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-05nKV-UV.mjs → acorex-platform-widgets-checkbox-widget-column.component-jeZBOEhl.mjs} +18 -14
  51. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-jeZBOEhl.mjs.map +1 -0
  52. package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-juhKoygA.mjs → acorex-platform-widgets-checkbox-widget-designer.component-RCi5IJOR.mjs} +5 -5
  53. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-RCi5IJOR.mjs.map +1 -0
  54. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-DU1niJES.mjs +64 -0
  55. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-DU1niJES.mjs.map +1 -0
  56. package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs → acorex-platform-widgets-color-box-widget-designer.component-CWhbgmDV.mjs} +4 -4
  57. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CWhbgmDV.mjs.map +1 -0
  58. package/fesm2022/acorex-platform-widgets.mjs +1396 -286
  59. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  60. package/fesm2022/acorex-platform-workflow.mjs +9 -3
  61. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  62. package/layout/builder/lib/builder/builder.module.d.ts +6 -7
  63. package/layout/builder/lib/builder/builder.service.d.ts +9 -10
  64. package/layout/builder/lib/builder/context-store.service.d.ts +33 -0
  65. package/layout/builder/lib/builder/index.d.ts +4 -2
  66. package/layout/builder/lib/builder/widget-catalog.d.ts +1 -1
  67. package/layout/builder/lib/builder/widget-container.component.d.ts +34 -9
  68. package/layout/builder/lib/builder/widget-groups.d.ts +1 -0
  69. package/layout/builder/lib/builder/widget-map.d.ts +43 -0
  70. package/layout/builder/lib/builder/{widget-renderer.component.directive.d.ts → widget-renderer.directive.d.ts} +29 -4
  71. package/layout/builder/lib/builder/widget-status.types.d.ts +14 -0
  72. package/layout/builder/lib/builder/widget.types.d.ts +51 -59
  73. package/layout/designer/lib/preview/preview-viewer.component.d.ts +2 -2
  74. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -2
  75. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +8 -2
  76. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +0 -1
  77. package/layout/entity/lib/workflows/modify-entity.workflow.d.ts +14 -0
  78. package/layout/filters/README.md +3 -0
  79. package/layout/filters/index.d.ts +1 -0
  80. package/layout/filters/lib/filters.viewmodel.d.ts +30 -0
  81. package/layout/setting/lib/convert-setting-data.d.ts +0 -20
  82. package/layout/setting/lib/setting.viewmodel.d.ts +85 -22
  83. package/layouts/lib/admin/entity-layout/entity-details-view/entity-details-view.component.d.ts +15 -5
  84. package/package.json +13 -9
  85. package/themes/default/index.d.ts +0 -1
  86. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +20 -10
  87. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +15 -5
  88. package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +2 -1
  89. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +17 -6
  90. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-filters/list-view-option-filters.component.d.ts +14 -0
  91. package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +2 -1
  92. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +15 -5
  93. package/themes/default/lib/layouts/filters-layout/simple-filter-builder/filters-view.component.d.ts +13 -0
  94. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +15 -5
  95. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +15 -5
  96. package/themes/default/lib/layouts/setting-layout/setting-page/setting-page.component.d.ts +2 -4
  97. package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +57 -0
  98. package/themes/shared/index.d.ts +3 -1
  99. package/themes/shared/lib/components/layout-elements/index.d.ts +5 -3
  100. package/themes/shared/lib/components/layout-elements/{layout-page-actions.component.d.ts → layout-actions.component.d.ts} +5 -5
  101. package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +1 -1
  102. package/themes/shared/lib/components/layout-elements/layout-header.component.d.ts +12 -0
  103. package/themes/shared/lib/components/layout-elements/layout-list-component.d.ts +13 -0
  104. package/themes/shared/lib/components/layout-elements/layout-section.component.d.ts +9 -0
  105. package/themes/shared/lib/components/layout-elements/layout-side.component.d.ts +9 -0
  106. package/themes/shared/lib/components/theme-slot.component.d.ts +23 -13
  107. package/themes/shared/lib/palette.provider.d.ts +9 -0
  108. package/themes/shared/lib/setting.keys.d.ts +7 -2
  109. package/themes/shared/lib/setting.provider.d.ts +1 -0
  110. package/themes/shared/lib/shared.module.d.ts +5 -2
  111. package/themes/shared/lib/{services/theme.service.d.ts → theme.service.d.ts} +16 -24
  112. package/themes/shared/lib/theme.types.d.ts +25 -0
  113. package/themes/shared/lib/widgets/theme-color-selection/index.d.ts +2 -0
  114. package/themes/shared/lib/widgets/theme-color-selection/theme-color-selection-widget-edit.component.d.ts +6 -0
  115. package/themes/shared/lib/widgets/theme-color-selection/theme-color-selection-widget.config.d.ts +7 -0
  116. package/widgets/lib/properties/editors.props.d.ts +2 -0
  117. package/widgets/lib/properties/layout.props.d.ts +1 -0
  118. package/widgets/lib/widgets/advance/avatar/avatar-widget-column.component.d.ts +6 -0
  119. package/widgets/lib/widgets/advance/avatar/avatar-widget-designer.component.d.ts +6 -0
  120. package/widgets/lib/widgets/advance/avatar/avatar-widget-edit.component.d.ts +18 -0
  121. package/widgets/lib/widgets/advance/avatar/avatar-widget-print.component.d.ts +6 -0
  122. package/widgets/lib/widgets/advance/avatar/avatar-widget-view.component.d.ts +6 -0
  123. package/widgets/lib/widgets/advance/avatar/avatar-widget.config.d.ts +7 -0
  124. package/widgets/lib/widgets/advance/avatar/index.d.ts +6 -0
  125. package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +9 -5
  126. package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +6 -4
  127. package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +1 -7
  128. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +1 -0
  129. package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +0 -2
  130. package/widgets/lib/widgets/filters/operations/operations.component.d.ts +9 -0
  131. package/widgets/lib/widgets/filters/string-filter/index.d.ts +2 -0
  132. package/widgets/lib/widgets/filters/string-filter/string-filter-widget-edit.component.d.ts +11 -0
  133. package/widgets/lib/widgets/filters/string-filter/string-filter-widget.config.d.ts +7 -0
  134. package/widgets/lib/widgets/index.d.ts +5 -1
  135. package/widgets/lib/widgets/property-editors/border/border-widget-editor.component.d.ts +29 -6
  136. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +31 -0
  137. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.config.d.ts +7 -0
  138. package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.type.d.ts +15 -0
  139. package/widgets/lib/widgets/property-editors/flex-options/index.d.ts +3 -0
  140. package/widgets/lib/widgets/property-editors/property-editor-helper.d.ts +72 -0
  141. package/widgets/lib/widgets/property-editors/property-editor.type.d.ts +35 -0
  142. package/widgets/lib/widgets/property-editors/spacing/index.d.ts +0 -1
  143. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-editor.component.d.ts +20 -7
  144. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-B13KvLX4.mjs +0 -108
  145. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-B13KvLX4.mjs.map +0 -1
  146. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-B6MXHPWi.mjs +0 -305
  147. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-B6MXHPWi.mjs.map +0 -1
  148. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-tKCGSRQT.mjs +0 -87
  149. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-tKCGSRQT.mjs.map +0 -1
  150. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CHvC0IAV.mjs +0 -130
  151. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CHvC0IAV.mjs.map +0 -1
  152. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-05nKV-UV.mjs.map +0 -1
  153. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-juhKoygA.mjs.map +0 -1
  154. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BkWcZ4K9.mjs +0 -72
  155. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BkWcZ4K9.mjs.map +0 -1
  156. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-B2g0ct24.mjs.map +0 -1
  157. package/layout/builder/lib/builder/widget-renderer.component.d.ts +0 -48
  158. package/themes/default/lib/layouts/setting-layout/index.d.ts +0 -1
  159. package/themes/shared/lib/components/layout-elements/layout-page-header.component.d.ts +0 -11
  160. package/themes/shared/lib/components/layout-elements/layout-page-side.component.d.ts +0 -5
  161. package/widgets/lib/widgets/property-editors/border/border-widget-type.d.ts +0 -18
  162. package/widgets/lib/widgets/property-editors/spacing/spacing-widget-type.d.ts +0 -10
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, viewChild, contentChild, computed, inject, NgModule } from '@angular/core';
2
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, viewChild, contentChild, computed, InjectionToken, inject, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i2 from '@acorex/components/button';
@@ -8,29 +8,43 @@ import * as i3 from '@acorex/components/decorators';
8
8
  import { AXDecoratorModule } from '@acorex/components/decorators';
9
9
  import * as i4 from '@acorex/components/dropdown';
10
10
  import { AXDropdownModule } from '@acorex/components/dropdown';
11
- import * as i1$1 from '@acorex/platform/common';
12
- import { AXPSettingValueProviderService, AXP_SETTING_DEFINITION_PROVIDER, AXPComponentSlotModule } from '@acorex/platform/common';
11
+ import * as i1$2 from '@acorex/platform/common';
12
+ import { AXPSettingScope, AXPSettingValueProviderService, AXP_SETTING_DEFINITION_PROVIDER, AXPComponentSlotModule } from '@acorex/platform/common';
13
13
  import { signalStore, withState, withComputed, withMethods, patchState, withHooks } from '@ngrx/signals';
14
- import { timer } from 'rxjs';
14
+ import { timer, filter } from 'rxjs';
15
15
  import * as i5 from '@acorex/core/translation';
16
16
  import { AXTranslationModule } from '@acorex/core/translation';
17
+ import * as i2$1 from '@acorex/platform/layout/builder';
18
+ import { objectKeyValueTransforms, AXPWidgetsCatalog, AXPWidgetComponent, AXP_WIDGETS_LAYOUT_GROUP, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
19
+ import { FormsModule } from '@angular/forms';
20
+ import * as i1$1 from '@acorex/cdk/selection';
21
+ import { AXSelectionModule } from '@acorex/cdk/selection';
22
+ import { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY } from '@acorex/platform/widgets';
17
23
 
18
24
  class AXPThemeLayoutBlockComponent {
19
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutBlockComponent, isStandalone: true, selector: "\n axp-page-content, \n axp-page-body,\n axp-page-title, \n axp-page-description, \n axp-page-navbar,\n axp-page-breadcrumbs,\n axp-page-side-title\n ", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutBlockComponent, isStandalone: true, selector: "\n axp-layout-content, \n axp-layout-header-container,\n axp-layout-footer-container,\n axp-layout-side-container,\n axp-layout-sections,\n axp-layout-section-container,\n axp-layout-body,\n axp-layout-suffix,\n axp-layout-prefix,\n axp-layout-title, \n axp-layout-nav-button, \n axp-layout-description, \n axp-layout-toolbar,\n axp-layout-title-bar,\n axp-layout-breadcrumbs\n ", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
21
27
  }
22
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutBlockComponent, decorators: [{
23
29
  type: Component,
24
30
  args: [{
25
31
  standalone: true,
26
32
  selector: `
27
- axp-page-content,
28
- axp-page-body,
29
- axp-page-title,
30
- axp-page-description,
31
- axp-page-navbar,
32
- axp-page-breadcrumbs,
33
- axp-page-side-title
33
+ axp-layout-content,
34
+ axp-layout-header-container,
35
+ axp-layout-footer-container,
36
+ axp-layout-side-container,
37
+ axp-layout-sections,
38
+ axp-layout-section-container,
39
+ axp-layout-body,
40
+ axp-layout-suffix,
41
+ axp-layout-prefix,
42
+ axp-layout-title,
43
+ axp-layout-nav-button,
44
+ axp-layout-description,
45
+ axp-layout-toolbar,
46
+ axp-layout-title-bar,
47
+ axp-layout-breadcrumbs
34
48
  `,
35
49
  template: '<ng-content></ng-content>',
36
50
  encapsulation: ViewEncapsulation.None,
@@ -40,33 +54,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
40
54
 
41
55
  class AXPThemeLayoutPagePrimaryActionsComponent {
42
56
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutPagePrimaryActionsComponent, isStandalone: true, selector: "axp-page-actions-primary", ngImport: i0, template: `<ng-content select="ax-button"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutPagePrimaryActionsComponent, isStandalone: true, selector: "axp-layout-actions-primary", ngImport: i0, template: `<ng-content select="ax-button,ax-dropdown-button"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
44
58
  }
45
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, decorators: [{
46
60
  type: Component,
47
61
  args: [{
48
62
  standalone: true,
49
- selector: 'axp-page-actions-primary',
50
- template: `<ng-content select="ax-button"></ng-content>`,
63
+ selector: 'axp-layout-actions-primary',
64
+ template: `<ng-content select="ax-button,ax-dropdown-button"></ng-content>`,
51
65
  encapsulation: ViewEncapsulation.None,
52
66
  changeDetection: ChangeDetectionStrategy.OnPush
53
67
  }]
54
68
  }] });
55
69
  class AXPThemeLayoutPageSecondaryActionsComponent {
56
70
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutPageSecondaryActionsComponent, isStandalone: true, selector: "axp-page-actions-secondary", ngImport: i0, template: `<ng-content select="ax-button-item"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutPageSecondaryActionsComponent, isStandalone: true, selector: "axp-layout-actions-secondary", ngImport: i0, template: `<ng-content select="ax-button-item"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
58
72
  }
59
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, decorators: [{
60
74
  type: Component,
61
75
  args: [{
62
76
  standalone: true,
63
- selector: 'axp-page-actions-secondary',
77
+ selector: 'axp-layout-actions-secondary',
64
78
  template: `<ng-content select="ax-button-item"></ng-content>`,
65
79
  encapsulation: ViewEncapsulation.None,
66
80
  changeDetection: ChangeDetectionStrategy.OnPush
67
81
  }]
68
82
  }] });
69
- class AXPThemeLayoutPageActionsComponent {
83
+ class AXPThemeLayoutActionsComponent {
70
84
  constructor() {
71
85
  this.primaryTemplate = viewChild('primary');
72
86
  this.primaryContent = contentChild(AXPThemeLayoutPagePrimaryActionsComponent);
@@ -75,34 +89,34 @@ class AXPThemeLayoutPageActionsComponent {
75
89
  this.secondaryContent = contentChild(AXPThemeLayoutPageSecondaryActionsComponent);
76
90
  this.hasSecondary = computed(() => this.secondaryContent() != null);
77
91
  }
78
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPThemeLayoutPageActionsComponent, isStandalone: true, selector: "axp-page-actions", queries: [{ propertyName: "primaryContent", first: true, predicate: AXPThemeLayoutPagePrimaryActionsComponent, descendants: true, isSignal: true }, { propertyName: "secondaryContent", first: true, predicate: AXPThemeLayoutPageSecondaryActionsComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "primaryTemplate", first: true, predicate: ["primary"], descendants: true, isSignal: true }, { propertyName: "secondaryTemplate", first: true, predicate: ["secondary"], descendants: true, isSignal: true }], ngImport: i0, template: `
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPThemeLayoutActionsComponent, isStandalone: true, selector: "axp-layout-actions", queries: [{ propertyName: "primaryContent", first: true, predicate: AXPThemeLayoutPagePrimaryActionsComponent, descendants: true, isSignal: true }, { propertyName: "secondaryContent", first: true, predicate: AXPThemeLayoutPageSecondaryActionsComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "primaryTemplate", first: true, predicate: ["primary"], descendants: true, isSignal: true }, { propertyName: "secondaryTemplate", first: true, predicate: ["secondary"], descendants: true, isSignal: true }], ngImport: i0, template: `
80
94
 
81
95
  <ng-template #primary>
82
- <ng-content select="axp-page-actions-primary"></ng-content>
96
+ <ng-content select="axp-layout-actions-primary"></ng-content>
83
97
  </ng-template>
84
98
 
85
99
  <ng-template #secondary>
86
- <ng-content select="axp-page-actions-secondary"></ng-content>
100
+ <ng-content select="axp-layout-actions-secondary"></ng-content>
87
101
  </ng-template>
88
102
 
89
103
  <ng-content></ng-content>
90
104
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
91
105
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageActionsComponent, decorators: [{
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutActionsComponent, decorators: [{
93
107
  type: Component,
94
108
  args: [{
95
109
  imports: [CommonModule],
96
110
  standalone: true,
97
- selector: 'axp-page-actions',
111
+ selector: 'axp-layout-actions',
98
112
  template: `
99
113
 
100
114
  <ng-template #primary>
101
- <ng-content select="axp-page-actions-primary"></ng-content>
115
+ <ng-content select="axp-layout-actions-primary"></ng-content>
102
116
  </ng-template>
103
117
 
104
118
  <ng-template #secondary>
105
- <ng-content select="axp-page-actions-secondary"></ng-content>
119
+ <ng-content select="axp-layout-actions-secondary"></ng-content>
106
120
  </ng-template>
107
121
 
108
122
  <ng-content></ng-content>
@@ -112,108 +126,205 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
112
126
  }]
113
127
  }] });
114
128
 
115
- class AXPThemeLayoutPageSideComponent {
116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutPageSideComponent, isStandalone: true, selector: "axp-page-side", ngImport: i0, template: `
118
- <ng-content></ng-content>
119
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
120
- }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageSideComponent, decorators: [{
122
- type: Component,
123
- args: [{
124
- imports: [CommonModule],
125
- standalone: true,
126
- selector: 'axp-page-side',
127
- template: `
128
- <ng-content></ng-content>
129
- `,
130
- encapsulation: ViewEncapsulation.None,
131
- changeDetection: ChangeDetectionStrategy.OnPush
132
- }]
133
- }] });
134
-
135
- class AXPThemeLayoutPageHeaderComponent {
129
+ class AXPThemeLayoutHeaderTemplateComponent {
136
130
  constructor() {
137
131
  this.title = viewChild('title');
138
132
  this.description = viewChild('description');
139
133
  this.actions = viewChild('actions');
140
134
  this.navbar = viewChild('navbar');
141
135
  this.breadcrumbs = viewChild('breadcrumbs');
136
+ this.navButton = viewChild('navButton');
142
137
  }
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPThemeLayoutPageHeaderComponent, isStandalone: true, selector: "axp-page-header", viewQueries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true, isSignal: true }, { propertyName: "description", first: true, predicate: ["description"], descendants: true, isSignal: true }, { propertyName: "actions", first: true, predicate: ["actions"], descendants: true, isSignal: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true, isSignal: true }, { propertyName: "breadcrumbs", first: true, predicate: ["breadcrumbs"], descendants: true, isSignal: true }], ngImport: i0, template: `
145
-
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutHeaderTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPThemeLayoutHeaderTemplateComponent, isStandalone: true, selector: "axp-layout-header", viewQueries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true, isSignal: true }, { propertyName: "description", first: true, predicate: ["description"], descendants: true, isSignal: true }, { propertyName: "actions", first: true, predicate: ["actions"], descendants: true, isSignal: true }, { propertyName: "navbar", first: true, predicate: ["navbar"], descendants: true, isSignal: true }, { propertyName: "breadcrumbs", first: true, predicate: ["breadcrumbs"], descendants: true, isSignal: true }, { propertyName: "navButton", first: true, predicate: ["navButton"], descendants: true, isSignal: true }], ngImport: i0, template: `
146
140
  <ng-template #breadcrumbs>
147
- <ng-content select="axp-page-breadcrumbs"></ng-content>
141
+ <ng-content select="axp-layout-breadcrumbs"></ng-content>
148
142
  </ng-template>
149
143
 
150
144
  <ng-template #navbar>
151
- <ng-content select="axp-page-navbar"></ng-content>
145
+ <ng-content select="axp-layout-toolbar"></ng-content>
152
146
  </ng-template>
153
147
 
154
148
  <ng-template #actions>
155
- <ng-content select="axp-page-actions"></ng-content>
149
+ <ng-content select="axp-layout-actions"></ng-content>
156
150
  </ng-template>
157
151
 
158
152
  <ng-template #description>
159
- <ng-content select="axp-page-description"></ng-content>
153
+ <ng-content select="axp-layout-description"></ng-content>
160
154
  </ng-template>
161
155
 
162
156
  <ng-template #title>
163
- <ng-content select="axp-page-title"></ng-content>
157
+ <ng-content select="axp-layout-title"></ng-content>
158
+ </ng-template>
159
+ <ng-template #navButton>
160
+ <ng-content select="axp-layout-nav-button"></ng-content>
164
161
  </ng-template>
165
-
166
- <ng-content></ng-content>
167
162
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
168
163
  }
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutHeaderTemplateComponent, decorators: [{
170
165
  type: Component,
171
166
  args: [{
172
167
  imports: [CommonModule],
173
168
  standalone: true,
174
- selector: 'axp-page-header',
169
+ selector: 'axp-layout-header',
175
170
  template: `
176
-
177
171
  <ng-template #breadcrumbs>
178
- <ng-content select="axp-page-breadcrumbs"></ng-content>
172
+ <ng-content select="axp-layout-breadcrumbs"></ng-content>
179
173
  </ng-template>
180
174
 
181
175
  <ng-template #navbar>
182
- <ng-content select="axp-page-navbar"></ng-content>
176
+ <ng-content select="axp-layout-toolbar"></ng-content>
183
177
  </ng-template>
184
178
 
185
179
  <ng-template #actions>
186
- <ng-content select="axp-page-actions"></ng-content>
180
+ <ng-content select="axp-layout-actions"></ng-content>
187
181
  </ng-template>
188
182
 
189
183
  <ng-template #description>
190
- <ng-content select="axp-page-description"></ng-content>
184
+ <ng-content select="axp-layout-description"></ng-content>
191
185
  </ng-template>
192
186
 
193
187
  <ng-template #title>
194
- <ng-content select="axp-page-title"></ng-content>
188
+ <ng-content select="axp-layout-title"></ng-content>
189
+ </ng-template>
190
+ <ng-template #navButton>
191
+ <ng-content select="axp-layout-nav-button"></ng-content>
195
192
  </ng-template>
196
-
197
- <ng-content></ng-content>
198
193
  `,
199
194
  encapsulation: ViewEncapsulation.None,
200
195
  changeDetection: ChangeDetectionStrategy.OnPush
201
196
  }]
202
197
  }] });
203
198
 
199
+ class AXPThemeLayoutSectionTemplateComponent {
200
+ constructor() {
201
+ this.header = contentChild(AXPThemeLayoutHeaderTemplateComponent);
202
+ this.content = viewChild('content');
203
+ }
204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutSectionTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
205
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPThemeLayoutSectionTemplateComponent, isStandalone: true, selector: "axp-layout-section", queries: [{ propertyName: "header", first: true, predicate: AXPThemeLayoutHeaderTemplateComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: `
206
+ <ng-template #header>
207
+ <ng-content select="axp-layout-header"></ng-content>
208
+ </ng-template>
209
+ <ng-template #content>
210
+ <ng-content select="axp-layout-content"></ng-content>
211
+ </ng-template>
212
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
213
+ }
214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutSectionTemplateComponent, decorators: [{
215
+ type: Component,
216
+ args: [{
217
+ imports: [CommonModule],
218
+ standalone: true,
219
+ selector: 'axp-layout-section',
220
+ template: `
221
+ <ng-template #header>
222
+ <ng-content select="axp-layout-header"></ng-content>
223
+ </ng-template>
224
+ <ng-template #content>
225
+ <ng-content select="axp-layout-content"></ng-content>
226
+ </ng-template>
227
+ `,
228
+ encapsulation: ViewEncapsulation.None,
229
+ changeDetection: ChangeDetectionStrategy.OnPush
230
+ }]
231
+ }] });
232
+
233
+ class AXPThemeLayoutSideTemplateComponent {
234
+ constructor() {
235
+ this.header = contentChild(AXPThemeLayoutHeaderTemplateComponent);
236
+ this.content = viewChild('content');
237
+ }
238
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutSideTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
239
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPThemeLayoutSideTemplateComponent, isStandalone: true, selector: "axp-layout-side", queries: [{ propertyName: "header", first: true, predicate: AXPThemeLayoutHeaderTemplateComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: `
240
+ <ng-template #header>
241
+ <ng-content select="axp-layout-header"></ng-content>
242
+ </ng-template>
243
+ <ng-template #content>
244
+ <ng-content select="axp-layout-content"></ng-content>
245
+ </ng-template>
246
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
247
+ }
248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutSideTemplateComponent, decorators: [{
249
+ type: Component,
250
+ args: [{
251
+ imports: [CommonModule],
252
+ standalone: true,
253
+ selector: 'axp-layout-side',
254
+ template: `
255
+ <ng-template #header>
256
+ <ng-content select="axp-layout-header"></ng-content>
257
+ </ng-template>
258
+ <ng-template #content>
259
+ <ng-content select="axp-layout-content"></ng-content>
260
+ </ng-template>
261
+ `,
262
+ encapsulation: ViewEncapsulation.None,
263
+ changeDetection: ChangeDetectionStrategy.OnPush
264
+ }]
265
+ }] });
266
+
267
+ class AXPThemeLayoutListComponent {
268
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
269
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutListComponent, isStandalone: true, selector: "axp-layout-list", ngImport: i0, template: `<ng-content select="axp-layout-list-item,axp-layout-list-group"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
270
+ }
271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutListComponent, decorators: [{
272
+ type: Component,
273
+ args: [{
274
+ standalone: true,
275
+ selector: 'axp-layout-list',
276
+ template: `<ng-content select="axp-layout-list-item,axp-layout-list-group"></ng-content>`,
277
+ encapsulation: ViewEncapsulation.None,
278
+ changeDetection: ChangeDetectionStrategy.OnPush
279
+ }]
280
+ }] });
281
+ class AXPThemeLayoutListItemsGroupComponent {
282
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
283
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutListItemsGroupComponent, isStandalone: true, selector: "axp-layout-list-group", ngImport: i0, template: `<ng-content select="axp-layout-list-item"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
284
+ }
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, decorators: [{
286
+ type: Component,
287
+ args: [{
288
+ standalone: true,
289
+ selector: 'axp-layout-list-group',
290
+ template: `<ng-content select="axp-layout-list-item"></ng-content>`,
291
+ encapsulation: ViewEncapsulation.None,
292
+ changeDetection: ChangeDetectionStrategy.OnPush
293
+ }]
294
+ }] });
295
+ class AXPThemeLayoutListItemComponent {
296
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
297
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeLayoutListItemComponent, isStandalone: true, selector: "axp-layout-list-item", ngImport: i0, template: `<ng-content select="axp-layout-content,axp-layout-prefix,axp-layout-suffix"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
298
+ }
299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeLayoutListItemComponent, decorators: [{
300
+ type: Component,
301
+ args: [{
302
+ standalone: true,
303
+ selector: 'axp-layout-list-item',
304
+ template: `<ng-content select="axp-layout-content,axp-layout-prefix,axp-layout-suffix"></ng-content>`,
305
+ encapsulation: ViewEncapsulation.None,
306
+ changeDetection: ChangeDetectionStrategy.OnPush
307
+ }]
308
+ }] });
309
+
204
310
  var AXPThemeLayoutSetting;
205
311
  (function (AXPThemeLayoutSetting) {
206
- AXPThemeLayoutSetting["ThemeVariant"] = "layout:theme:variant";
207
- AXPThemeLayoutSetting["ThemeSideMenu"] = "layout:theme:sidemenu";
312
+ AXPThemeLayoutSetting["Name"] = "layout:theme:name";
313
+ AXPThemeLayoutSetting["Layout"] = "layout:theme:layout";
314
+ AXPThemeLayoutSetting["Font"] = "layout:theme:font:family";
315
+ AXPThemeLayoutSetting["FontSize"] = "layout:theme:font:size";
316
+ AXPThemeLayoutSetting["Palette"] = "layout:theme:palette";
317
+ AXPThemeLayoutSetting["Mode"] = "layout:theme:mode";
318
+ AXPThemeLayoutSetting["SideMenuStatus"] = "layout:theme:sidemenu";
208
319
  })(AXPThemeLayoutSetting || (AXPThemeLayoutSetting = {}));
209
320
 
210
321
  // Theme Enum
211
- var AXPThemeVariant;
212
- (function (AXPThemeVariant) {
213
- AXPThemeVariant["Light"] = "light";
214
- AXPThemeVariant["Dark"] = "dark";
215
- AXPThemeVariant["System"] = "system";
216
- })(AXPThemeVariant || (AXPThemeVariant = {}));
322
+ var AXPThemeMode;
323
+ (function (AXPThemeMode) {
324
+ AXPThemeMode["Light"] = "light";
325
+ AXPThemeMode["Dark"] = "dark";
326
+ AXPThemeMode["System"] = "system";
327
+ })(AXPThemeMode || (AXPThemeMode = {}));
217
328
  // Screen Size Enum
218
329
  var AXPScreenSize;
219
330
  (function (AXPScreenSize) {
@@ -234,12 +345,31 @@ var AXPSideMenuState;
234
345
  AXPSideMenuState["Opened"] = "opened";
235
346
  AXPSideMenuState["Closed"] = "closed";
236
347
  })(AXPSideMenuState || (AXPSideMenuState = {}));
348
+
349
+ const AXP_THEME_PALETTE_PROVIDER = new InjectionToken('AXP_THEME_PALETTE_PROVIDER', {
350
+ providedIn: 'root',
351
+ factory: () => {
352
+ return new AXPThemePaletteProviderDefault();
353
+ }
354
+ });
355
+ class AXPThemePaletteProviderDefault {
356
+ getList() {
357
+ return Promise.resolve([
358
+ {
359
+ name: 'default',
360
+ title: 'Default',
361
+ path: '/assets/themes/palletes/default.css',
362
+ colors: []
363
+ },
364
+ ]);
365
+ }
366
+ }
367
+
237
368
  // ThemeStore - Manages theme settings, system changes, and loading states
238
369
  const AXPLayoutThemeService = signalStore({ providedIn: 'root' },
239
370
  // Initial State
240
371
  withState(() => {
241
- const initialTheme = AXPThemeVariant.System;
242
- const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
372
+ const isSystemDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
243
373
  // Helper function to get the initial screen size
244
374
  const getScreenSize = () => {
245
375
  const width = window.innerWidth;
@@ -265,8 +395,13 @@ withState(() => {
265
395
  return 'ontouchstart' in window || navigator.maxTouchPoints > 0;
266
396
  };
267
397
  const state = {
268
- currentTheme: initialTheme,
269
- systemTheme: (systemPrefersDark ? AXPThemeVariant.Dark : AXPThemeVariant.Light),
398
+ currentMode: AXPThemeMode.System,
399
+ currentPallete: 'default',
400
+ systemThemeMode: (isSystemDark ? AXPThemeMode.Dark : AXPThemeMode.Light),
401
+ font: {
402
+ family: 'system-ui',
403
+ size: 'medium'
404
+ },
270
405
  screenSize: getScreenSize(),
271
406
  deviceType: getDeviceType(),
272
407
  isTouchDevice: isTouchDevice(),
@@ -281,12 +416,12 @@ withState(() => {
281
416
  return state;
282
417
  }),
283
418
  // Computed Signals
284
- withComputed(({ currentTheme, systemTheme, screenSize, deviceType, isTouchDevice, sideMenuState, overlayLoading, navigationLoading }) => ({
285
- isDarkMode: computed(() => currentTheme() === AXPThemeVariant.Dark ||
286
- (currentTheme() === AXPThemeVariant.System && systemTheme() === AXPThemeVariant.Dark)),
287
- isLightMode: computed(() => currentTheme() === AXPThemeVariant.Light ||
288
- (currentTheme() === AXPThemeVariant.System && systemTheme() === AXPThemeVariant.Light)),
289
- isSystemMode: computed(() => currentTheme() === AXPThemeVariant.System),
419
+ withComputed(({ currentMode: currentTheme, systemThemeMode: systemTheme, screenSize, deviceType, isTouchDevice, sideMenuState, overlayLoading, navigationLoading }) => ({
420
+ isDarkMode: computed(() => currentTheme() === AXPThemeMode.Dark ||
421
+ (currentTheme() === AXPThemeMode.System && systemTheme() === AXPThemeMode.Dark)),
422
+ isLightMode: computed(() => currentTheme() === AXPThemeMode.Light ||
423
+ (currentTheme() === AXPThemeMode.System && systemTheme() === AXPThemeMode.Light)),
424
+ isSystemMode: computed(() => currentTheme() === AXPThemeMode.System),
290
425
  isSideMenuOpen: computed(() => sideMenuState() === AXPSideMenuState.Opened),
291
426
  isSmall: computed(() => screenSize() === AXPScreenSize.Small),
292
427
  isMedium: computed(() => screenSize() === AXPScreenSize.Medium),
@@ -299,22 +434,37 @@ withComputed(({ currentTheme, systemTheme, screenSize, deviceType, isTouchDevice
299
434
  isNavigationLoading: computed(() => navigationLoading()),
300
435
  })),
301
436
  // Methods for State Management
302
- withMethods((store, settingService = inject(AXPSettingValueProviderService)) => {
303
- const applySettings = async () => {
437
+ withMethods((store, settingService = inject(AXPSettingValueProviderService), pallets = inject(AXP_THEME_PALETTE_PROVIDER)) => {
438
+ const _applySettings = async () => {
304
439
  // Initialize theme and side menu setting from storage
305
- const settingTheme = (await settingService.get(AXPThemeLayoutSetting.ThemeVariant)) ?? AXPThemeVariant.Light;
306
- patchState(store, { currentTheme: settingTheme });
307
- const settingSideMenu = (await settingService.get(AXPThemeLayoutSetting.ThemeSideMenu)) ?? store.sideMenuState();
440
+ const settingThemeMode = (await settingService.get(AXPThemeLayoutSetting.Mode)) ?? AXPThemeMode.Light;
441
+ patchState(store, { currentMode: settingThemeMode });
442
+ //
443
+ const settingThemePallete = (await settingService.get(AXPThemeLayoutSetting.Palette)) ?? 'default';
444
+ patchState(store, { currentPallete: settingThemePallete });
445
+ //
446
+ const settingSideMenu = (await settingService.get(AXPThemeLayoutSetting.SideMenuStatus)) ?? store.sideMenuState();
308
447
  patchState(store, { sideMenuState: settingSideMenu });
309
- updateHtmlClass(store.isDarkMode());
448
+ //
449
+ const fontFamily = await settingService.get(AXPThemeLayoutSetting.Font);
450
+ const fontSize = await settingService.get(AXPThemeLayoutSetting.FontSize);
451
+ patchState(store, { font: { family: fontFamily, size: fontSize } });
452
+ //
453
+ await _updateHtmlClass();
310
454
  };
311
455
  // Update HTML class based on theme
312
- const updateHtmlClass = (dark) => {
456
+ const _updateHtmlClass = async () => {
313
457
  const html = document.getElementsByTagName('html')[0];
314
- dark ? html.classList.add('ax-dark') : html.classList.remove('ax-dark');
458
+ //
459
+ store.isDarkMode() ? html.classList.add('ax-dark') : html.classList.remove('ax-dark');
460
+ //
461
+ html.style.fontFamily = store.font().family;
462
+ html.style.fontSize = store.font().size;
463
+ //
464
+ await _applyThemePalette(store.currentPallete());
315
465
  };
316
466
  // Update screen size based on window width
317
- const updateScreenSize = () => {
467
+ const _updateScreenSize = () => {
318
468
  const width = window.innerWidth;
319
469
  let newScreenSize;
320
470
  if (width <= 600) {
@@ -330,39 +480,53 @@ withMethods((store, settingService = inject(AXPSettingValueProviderService)) =>
330
480
  patchState(store, { screenSize: newScreenSize });
331
481
  if (store.sideMenuState() !== AXPSideMenuState.Closed) {
332
482
  patchState(store, { sideMenuState: newScreenSize === AXPScreenSize.Small ? AXPSideMenuState.Closed : AXPSideMenuState.Opened });
333
- settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, store.sideMenuState());
483
+ settingService.scope(AXPSettingScope.User).set(AXPThemeLayoutSetting.SideMenuStatus, store.sideMenuState());
334
484
  }
335
485
  }
336
486
  };
337
- //
338
- settingService.onChanged.subscribe((setting) => {
339
- if (setting.keys.includes(AXPThemeLayoutSetting.ThemeVariant)) {
340
- applySettings();
487
+ // Helper method to apply a cached theme palette
488
+ const _applyThemePalette = async (name) => {
489
+ const pallete = (await pallets.getList()).find(c => c.name == name);
490
+ if (!pallete) {
491
+ return;
341
492
  }
342
- });
493
+ // Remove all existing theme-related link elements
494
+ const existingLinks = document.querySelectorAll('link[data-theme]');
495
+ existingLinks.forEach(link => document.head.removeChild(link));
496
+ const link = document.createElement('link');
497
+ link.rel = 'stylesheet';
498
+ link.href = pallete.path;
499
+ link.setAttribute('data-theme', name);
500
+ document.head.appendChild(link);
501
+ // Wait for the CSS file to load
502
+ await new Promise((resolve, reject) => {
503
+ link.onload = () => resolve();
504
+ link.onerror = () => reject(new Error(`Failed to load CSS file: ${pallete.path}`));
505
+ });
506
+ };
343
507
  const minimumDisplayTime = 500; // milliseconds
344
508
  return {
345
509
  // Change theme and update HTML class
346
- changeTheme(theme) {
347
- settingService.set(AXPThemeLayoutSetting.ThemeVariant, theme);
348
- patchState(store, { currentTheme: theme });
349
- updateHtmlClass(store.isDarkMode());
510
+ changeThemeMode(theme) {
511
+ settingService.scope(AXPSettingScope.User).set(AXPThemeLayoutSetting.Mode, theme);
512
+ patchState(store, { currentMode: theme });
513
+ _updateHtmlClass();
350
514
  },
351
515
  // Open side menu
352
516
  openSideMenu() {
353
517
  patchState(store, { sideMenuState: AXPSideMenuState.Opened });
354
- settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, AXPSideMenuState.Opened);
518
+ settingService.scope(AXPSettingScope.User).set(AXPThemeLayoutSetting.SideMenuStatus, AXPSideMenuState.Opened);
355
519
  },
356
520
  // Close side menu
357
521
  closeSideMenu() {
358
522
  patchState(store, { sideMenuState: AXPSideMenuState.Closed });
359
- settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, AXPSideMenuState.Closed);
523
+ settingService.scope(AXPSettingScope.User).set(AXPThemeLayoutSetting.SideMenuStatus, AXPSideMenuState.Closed);
360
524
  },
361
525
  // Toggle side menu state
362
526
  toggleSideMenu() {
363
527
  const newSideMenuState = store.sideMenuState() === AXPSideMenuState.Opened ? AXPSideMenuState.Closed : AXPSideMenuState.Opened;
364
528
  patchState(store, { sideMenuState: newSideMenuState });
365
- settingService.set(AXPThemeLayoutSetting.ThemeSideMenu, newSideMenuState);
529
+ settingService.scope(AXPSettingScope.User).set(AXPThemeLayoutSetting.SideMenuStatus, newSideMenuState);
366
530
  },
367
531
  // Set navigation loading state with a task counter
368
532
  setNavigationLoading(value) {
@@ -402,16 +566,15 @@ withMethods((store, settingService = inject(AXPSettingValueProviderService)) =>
402
566
  }
403
567
  }
404
568
  },
405
- // Apply the current theme to the HTML class
406
- _applyCurrentTheme() {
407
- updateHtmlClass(store.isDarkMode());
569
+ async loadSettings() {
570
+ await _applySettings();
408
571
  },
409
572
  // Set up event listener for system theme changes
410
573
  _setupSystemColorListener() {
411
574
  const mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');
412
575
  const listener = (e) => {
413
- patchState(store, { systemTheme: e.matches ? AXPThemeVariant.Dark : AXPThemeVariant.Light });
414
- updateHtmlClass(store.isDarkMode());
576
+ patchState(store, { systemThemeMode: e.matches ? AXPThemeMode.Dark : AXPThemeMode.Light });
577
+ _updateHtmlClass();
415
578
  };
416
579
  mediaQueryList.addEventListener('change', listener);
417
580
  return listener;
@@ -424,7 +587,7 @@ withMethods((store, settingService = inject(AXPSettingValueProviderService)) =>
424
587
  // Set up event listener for window resize
425
588
  _setupResizeListener() {
426
589
  const listener = () => {
427
- updateScreenSize();
590
+ _updateScreenSize();
428
591
  };
429
592
  window.addEventListener('resize', listener);
430
593
  return listener;
@@ -433,17 +596,18 @@ withMethods((store, settingService = inject(AXPSettingValueProviderService)) =>
433
596
  _removeResizeListener(listener) {
434
597
  window.removeEventListener('resize', listener);
435
598
  },
436
- async loadSettings() {
437
- applySettings();
438
- }
439
599
  };
440
600
  }),
441
601
  // Lifecycle Hooks
442
- withHooks((store) => ({
602
+ withHooks((store, settingService = inject(AXPSettingValueProviderService)) => ({
443
603
  onInit() {
444
- (async () => {
445
- store.loadSettings();
446
- })();
604
+ //
605
+ settingService.onChanged.pipe(filter(c => c.scope == AXPSettingScope.User)).subscribe(async (changes) => {
606
+ const keys = Object.values(AXPThemeLayoutSetting);
607
+ if (changes.keys.some((key) => keys.includes(key))) {
608
+ await store.loadSettings();
609
+ }
610
+ });
447
611
  // Set up event listener for system theme changes
448
612
  const listener = store._setupSystemColorListener();
449
613
  patchState(store, { _listener: listener });
@@ -466,7 +630,7 @@ withHooks((store) => ({
466
630
  class AXPThemeSlotComponent {
467
631
  constructor() {
468
632
  this.store = inject(AXPLayoutThemeService);
469
- this.variants = AXPThemeVariant;
633
+ this.variants = AXPThemeMode;
470
634
  }
471
635
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
472
636
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeSlotComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
@@ -483,7 +647,7 @@ class AXPThemeSlotComponent {
483
647
  <ax-dropdown-panel *translate="let t">
484
648
  <ax-button-item-list>
485
649
  <ax-button-item
486
- (onClick)="store.changeTheme(variants.Light)"
650
+ (onClick)="store.changeThemeMode(variants.Light)"
487
651
  [text]="(t('theme.light') | async)!"
488
652
  [selected]="!store.isSystemMode() && !store.isDarkMode()"
489
653
  >
@@ -492,7 +656,7 @@ class AXPThemeSlotComponent {
492
656
  </ax-prefix>
493
657
  </ax-button-item>
494
658
  <ax-button-item
495
- (onClick)="store.changeTheme(variants.Dark)"
659
+ (onClick)="store.changeThemeMode(variants.Dark)"
496
660
  [text]="(t('theme.dark') | async)!"
497
661
  [selected]="!store.isSystemMode() && store.isDarkMode()"
498
662
  >
@@ -501,7 +665,7 @@ class AXPThemeSlotComponent {
501
665
  </ax-prefix>
502
666
  </ax-button-item>
503
667
  <ax-button-item
504
- (onClick)="store.changeTheme(variants.System)"
668
+ (onClick)="store.changeThemeMode(variants.System)"
505
669
  [text]="(t('theme.system') | async)!"
506
670
  [selected]="store.isSystemMode()"
507
671
  >
@@ -531,7 +695,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
531
695
  <ax-dropdown-panel *translate="let t">
532
696
  <ax-button-item-list>
533
697
  <ax-button-item
534
- (onClick)="store.changeTheme(variants.Light)"
698
+ (onClick)="store.changeThemeMode(variants.Light)"
535
699
  [text]="(t('theme.light') | async)!"
536
700
  [selected]="!store.isSystemMode() && !store.isDarkMode()"
537
701
  >
@@ -540,7 +704,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
540
704
  </ax-prefix>
541
705
  </ax-button-item>
542
706
  <ax-button-item
543
- (onClick)="store.changeTheme(variants.Dark)"
707
+ (onClick)="store.changeThemeMode(variants.Dark)"
544
708
  [text]="(t('theme.dark') | async)!"
545
709
  [selected]="!store.isSystemMode() && store.isDarkMode()"
546
710
  >
@@ -549,7 +713,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
549
713
  </ax-prefix>
550
714
  </ax-button-item>
551
715
  <ax-button-item
552
- (onClick)="store.changeTheme(variants.System)"
716
+ (onClick)="store.changeThemeMode(variants.System)"
553
717
  [text]="(t('theme.system') | async)!"
554
718
  [selected]="store.isSystemMode()"
555
719
  >
@@ -566,47 +730,181 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
566
730
  }] });
567
731
 
568
732
  class AXPThemeSettingProvider {
733
+ constructor() {
734
+ this.pallets = inject(AXP_THEME_PALETTE_PROVIDER);
735
+ }
569
736
  async provide(context) {
570
- context.addGroup('common-settings', 'General Settings', 'General application settings.', 'fa-solid fa-gear-complex')
571
- // General Settings Section
572
- .addSection('general', 'General', 'General configurations for the application.')
737
+ // Define the 'Appearance Settings' group
738
+ context.addGroup('appearance', 'Appearance Settings', 'Customize the overall look and feel of the application.', 'fa-solid fa-palette')
739
+ // Add the 'Brightness & Color' section
740
+ .addSection('color', 'Brightness & Color', 'Adjust the theme settings, including brightness, colors, and modes.')
741
+ // Add the 'Theme Mode' setting
742
+ .addSetting({
743
+ key: AXPThemeLayoutSetting.Mode,
744
+ title: 'Theme Mode',
745
+ scope: 'U',
746
+ isInherited: true,
747
+ defaultValue: AXPThemeMode.Light,
748
+ valueTransforms: objectKeyValueTransforms('id'),
749
+ widget: {
750
+ type: AXPWidgetsCatalog.select,
751
+ options: {
752
+ dataSource: Object.entries(AXPThemeMode).map(([key, value]) => ({
753
+ id: value,
754
+ title: key.charAt(0).toUpperCase() + key.slice(1).toLowerCase(),
755
+ })),
756
+ },
757
+ },
758
+ description: 'Switch between Light and Dark themes for the application.',
759
+ })
760
+ // Add the 'Palette' setting
761
+ .addSetting({
762
+ key: AXPThemeLayoutSetting.Palette,
763
+ title: 'Palette',
764
+ scope: 'U',
765
+ isInherited: true,
766
+ defaultValue: 'default',
767
+ valueTransforms: objectKeyValueTransforms('name'),
768
+ widget: {
769
+ type: AXPWidgetsCatalog.select,
770
+ options: {
771
+ valueField: 'name',
772
+ dataSource: await this.pallets.getList(),
773
+ },
774
+ },
775
+ description: 'Choose a color palette for the application interface.',
776
+ })
777
+ // End the 'Brightness & Color' section
573
778
  .endSection()
574
- .endGroup();
575
- //
576
- context
577
- .group('common-settings')
578
- ?.section('general')
579
- ?.addSetting({
580
- key: AXPThemeLayoutSetting.ThemeVariant,
581
- title: 'Default Theme',
582
- scope: 'G',
583
- defaultValue: AXPThemeVariant.Light,
584
- valueTransforms: {
585
- getter: (value) => {
586
- return typeof value == 'object' ? value['id'] : value;
779
+ // Add the 'Scale & Layout' section
780
+ .addSection('layout', 'Scale & Layout', 'Customize the application’s layout and scaling options.')
781
+ // Add the 'Font Style' setting
782
+ .addSetting({
783
+ key: AXPThemeLayoutSetting.Font,
784
+ title: 'Font Style',
785
+ scope: 'U',
786
+ isInherited: true,
787
+ defaultValue: 'system-ui',
788
+ valueTransforms: objectKeyValueTransforms('id'),
789
+ widget: {
790
+ type: 'select-editor',
791
+ options: {
792
+ dataSource: [
793
+ { id: 'system-ui', title: 'Default' },
794
+ { id: 'serif', title: 'Serif' },
795
+ { id: 'sans-serif', title: 'Sans-serif' },
796
+ { id: 'monospace', title: 'Monospace' },
797
+ { id: 'arial', title: 'Arial' },
798
+ { id: 'verdana', title: 'Verdana' },
799
+ { id: 'tahoma', title: 'Tahoma' },
800
+ { id: 'times-new-roman', title: 'Times New Roman' },
801
+ { id: 'georgia', title: 'Georgia' },
802
+ { id: 'helvetica', title: 'Helvetica' },
803
+ { id: 'calibri', title: 'Calibri' },
804
+ { id: 'cursive', title: 'Cursive' },
805
+ ],
587
806
  },
588
- setter: (value) => {
589
- return typeof value == 'object' ? value['id'] : value;
590
- }
591
807
  },
808
+ description: 'Set the font style for application text.',
809
+ })
810
+ // Add the 'Font Size' setting
811
+ .addSetting({
812
+ key: AXPThemeLayoutSetting.FontSize,
813
+ title: 'Font Size',
814
+ scope: 'U',
815
+ isInherited: true,
816
+ defaultValue: 'medium',
817
+ valueTransforms: objectKeyValueTransforms('id'),
592
818
  widget: {
593
819
  type: 'select-editor',
594
820
  options: {
595
- dataSource: Object.entries(AXPThemeVariant).map(([key, value]) => ({
596
- id: value,
597
- title: key.charAt(0).toUpperCase() + key.slice(1).toLowerCase(),
598
- })),
821
+ dataSource: [
822
+ { id: 'small', title: 'Small' },
823
+ { id: 'medium', title: 'Medium' },
824
+ { id: 'large', title: 'Large' },
825
+ { id: 'x-large', title: 'Extra Large' },
826
+ ],
599
827
  },
600
828
  },
601
- description: 'Select the default theme for the application.',
602
- });
829
+ description: 'Adjust the font size for application text.',
830
+ })
831
+ // End the 'Scale & Layout' section
832
+ .endSection()
833
+ // End the 'Appearance Settings' group
834
+ .endGroup();
603
835
  }
604
836
  }
605
837
 
838
+ class AXPThemeColorSelectionWidgetEditComponent extends AXPWidgetComponent {
839
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeColorSelectionWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
840
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPThemeColorSelectionWidgetEditComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
841
+ <div axSelectionGroup [multiple]="false" [selectedKeys]="'1'" >
842
+ <div axSelectionItem #a="axSelectionItem" key="1" [class.ax-text-primary-500]="a.isActive()">
843
+ item 1
844
+ </div>
845
+ <div axSelectionItem #b="axSelectionItem" key="2" [class.ax-text-primary-500]="b.isActive()">
846
+ item 1
847
+ </div>
848
+ </div>
849
+
850
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSelectionModule }, { kind: "directive", type: i1$1.AXSelectionGroupDirective, selector: "[axSelectionGroup]", inputs: ["multiple", "selectedKeys"], outputs: ["onSelectionChanged"], exportAs: ["axSelectionGroup"] }, { kind: "directive", type: i1$1.AXSelectionItemDirective, selector: "[axSelectionItem]", inputs: ["key"], outputs: ["onClick"], exportAs: ["axSelectionItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
851
+ }
852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemeColorSelectionWidgetEditComponent, decorators: [{
853
+ type: Component,
854
+ args: [{
855
+ template: `
856
+ <div axSelectionGroup [multiple]="false" [selectedKeys]="'1'" >
857
+ <div axSelectionItem #a="axSelectionItem" key="1" [class.ax-text-primary-500]="a.isActive()">
858
+ item 1
859
+ </div>
860
+ <div axSelectionItem #b="axSelectionItem" key="2" [class.ax-text-primary-500]="b.isActive()">
861
+ item 1
862
+ </div>
863
+ </div>
864
+
865
+ `,
866
+ standalone: true,
867
+ changeDetection: ChangeDetectionStrategy.OnPush,
868
+ imports: [CommonModule, FormsModule, AXSelectionModule],
869
+ }]
870
+ }] });
871
+
872
+ var themeColorSelectionWidgetEdit_component = /*#__PURE__*/Object.freeze({
873
+ __proto__: null,
874
+ AXPThemeColorSelectionWidgetEditComponent: AXPThemeColorSelectionWidgetEditComponent
875
+ });
876
+
877
+ const AXPThemeColorSelectionWidget = {
878
+ name: "theme-color-selection",
879
+ title: "Theme Color Selection",
880
+ icon: "fa-solid fa-square",
881
+ type: 'editor',
882
+ group: AXP_WIDGETS_LAYOUT_GROUP,
883
+ properties: [
884
+ AXP_NAME_PROPERTY,
885
+ AXP_DATA_PATH_PROPERTY,
886
+ AXP_DISABLED_PROPERTY,
887
+ ],
888
+ components: {
889
+ edit: {
890
+ component: () => Promise.resolve().then(function () { return themeColorSelectionWidgetEdit_component; }).then((c) => c.AXPThemeColorSelectionWidgetEditComponent),
891
+ },
892
+ }
893
+ };
894
+
606
895
  class AXPThemesSharedModule {
607
- constructor() { }
608
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
609
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule, imports: [i1$1.AXPComponentSlotModule] }); }
896
+ constructor(appInitService, injector) {
897
+ const service = injector.get(AXPLayoutThemeService);
898
+ appInitService.registerTask({
899
+ name: 'layout-theme',
900
+ statusText: 'Applying layout theme settings ...',
901
+ run: async () => {
902
+ await service.loadSettings();
903
+ }
904
+ });
905
+ }
906
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule, deps: [{ token: i1$2.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }
907
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule, imports: [i1$2.AXPComponentSlotModule, i2$1.AXPLayoutBuilderModule] }); }
610
908
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule, providers: [
611
909
  {
612
910
  provide: AXP_SETTING_DEFINITION_PROVIDER,
@@ -621,6 +919,11 @@ class AXPThemesSharedModule {
621
919
  component: AXPThemeSlotComponent,
622
920
  },
623
921
  ],
922
+ }),
923
+ AXPLayoutBuilderModule.forChild({
924
+ widgets: [
925
+ AXPThemeColorSelectionWidget
926
+ ]
624
927
  })] }); }
625
928
  }
626
929
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPThemesSharedModule, decorators: [{
@@ -636,6 +939,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
636
939
  },
637
940
  ],
638
941
  }),
942
+ AXPLayoutBuilderModule.forChild({
943
+ widgets: [
944
+ AXPThemeColorSelectionWidget
945
+ ]
946
+ })
639
947
  ],
640
948
  exports: [],
641
949
  declarations: [],
@@ -647,11 +955,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
647
955
  }
648
956
  ],
649
957
  }]
650
- }], ctorParameters: () => [] });
958
+ }], ctorParameters: () => [{ type: i1$2.AXPAppStartUpService }, { type: i0.Injector }] });
651
959
 
652
960
  /**
653
961
  * Generated bundle index. Do not edit.
654
962
  */
655
963
 
656
- export { AXPDeviceType, AXPLayoutThemeService, AXPScreenSize, AXPSideMenuState, AXPThemeLayoutBlockComponent, AXPThemeLayoutPageActionsComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutPageSideComponent, AXPThemeSlotComponent, AXPThemeVariant, AXPThemesSharedModule };
964
+ export { AXPDeviceType, AXPLayoutThemeService, AXPScreenSize, AXPSideMenuState, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderTemplateComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionTemplateComponent, AXPThemeLayoutSideTemplateComponent, AXPThemeMode, AXPThemePaletteProviderDefault, AXPThemeSlotComponent, AXPThemesSharedModule, AXP_THEME_PALETTE_PROVIDER };
657
965
  //# sourceMappingURL=acorex-platform-themes-shared.mjs.map