@acorex/platform 19.3.8 → 19.4.1

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 (171) hide show
  1. package/auth/lib/permission/permission-definition.builder.d.ts +2 -2
  2. package/auth/lib/permission/permission.types.d.ts +1 -1
  3. package/common/index.d.ts +0 -1
  4. package/common/lib/layout/index.d.ts +0 -2
  5. package/common/lib/layout/menu/badge-helper.d.ts +2 -2
  6. package/core/index.d.ts +8 -1
  7. package/core/lib/context/context-store.service.d.ts +37 -0
  8. package/core/lib/directives/content-checker.directive.d.ts +10 -0
  9. package/core/lib/directives/index.d.ts +1 -0
  10. package/core/lib/expression-evaluator/expression-evaluator-scope-provider.service.d.ts +23 -0
  11. package/core/lib/expression-evaluator/expression-evaluator.service.d.ts +2 -0
  12. package/core/lib/expression-evaluator/index.d.ts +1 -0
  13. package/core/lib/types/interactive.types.d.ts +1 -0
  14. package/domain/README.md +3 -0
  15. package/domain/index.d.ts +2 -0
  16. package/domain/lib/domain.module.d.ts +8 -0
  17. package/domain/lib/provide-entity-crud-commands.d.ts +4 -0
  18. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-common.mjs +2 -202
  20. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-core.mjs +312 -127
  22. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-domain.mjs +71 -0
  24. package/fesm2022/acorex-platform-domain.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-layout-builder.mjs +5 -1
  26. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-components.mjs +667 -3
  28. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-layout-entity.mjs +53 -4
  30. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-layout-views.mjs +442 -3
  32. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  33. package/fesm2022/acorex-platform-runtime.mjs +448 -0
  34. package/fesm2022/acorex-platform-runtime.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-themes-default-details-view.component-w1GLOu_c.mjs → acorex-platform-themes-default-details-view.component-DXwO-Euo.mjs} +7 -8
  36. package/fesm2022/acorex-platform-themes-default-details-view.component-DXwO-Euo.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-C8rL7vLD.mjs → acorex-platform-themes-default-entity-master-list-view.component-C0aVy6kW.mjs} +15 -13
  38. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C0aVy6kW.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-qu3j-fxn.mjs → acorex-platform-themes-default-entity-master-single-view.component-WYpSnpSx.mjs} +34 -13
  40. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-WYpSnpSx.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-themes-default.mjs +48 -285
  42. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  43. package/fesm2022/acorex-platform-themes-shared.mjs +8 -415
  44. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  45. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-i8FcuktZ.mjs → acorex-platform-widgets-button-widget-designer.component-BWZ0L--k.mjs} +4 -4
  46. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-BWZ0L--k.mjs.map +1 -0
  47. package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-BQcHI7vG.mjs → acorex-platform-widgets-checkbox-widget-column.component-Bq8dCQJb.mjs} +3 -3
  48. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-Bq8dCQJb.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-widgets.mjs +529 -118
  50. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  51. package/fesm2022/acorex-platform-workflow.mjs +22 -3
  52. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  53. package/layout/builder/lib/builder/widget-base.component.d.ts +1 -0
  54. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  55. package/layout/components/index.d.ts +3 -0
  56. package/{common/lib/layout/task-badge → layout/components/lib/badge}/index.d.ts +1 -0
  57. package/{themes/shared/lib/components/layout-elements → layout/components/lib/blocks}/index.d.ts +1 -0
  58. package/layout/components/lib/blocks/layout-blocks.component.d.ts +8 -0
  59. package/layout/components/lib/blocks/layout-container.component.d.ts +13 -0
  60. package/{common/lib/layout → layout/components/lib}/component-slot/component-slot-loader.service.d.ts +5 -4
  61. package/{common/lib/layout → layout/components/lib}/component-slot/component-slot.directive.d.ts +5 -5
  62. package/layout/components/lib/component-slot/component-slot.types.d.ts +22 -0
  63. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +4 -2
  64. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +1 -1
  65. package/layout/entity/lib/workflows/modify-entity.workflow.d.ts +6 -0
  66. package/layout/views/index.d.ts +2 -1
  67. package/layout/views/lib/layouts/index.d.ts +2 -0
  68. package/layout/views/lib/layouts/page/index.d.ts +3 -0
  69. package/{themes/default/lib/layouts/base/base-page.component.d.ts → layout/views/lib/layouts/page/page-layout-base.component.d.ts} +6 -4
  70. package/{themes/default/lib/layouts/base/base-page.types.d.ts → layout/views/lib/layouts/page/page-layout.base.d.ts} +1 -1
  71. package/{themes/default/lib/layouts/base/page-layout → layout/views/lib/layouts/page}/page-layout.component.d.ts +4 -2
  72. package/layout/views/lib/layouts/popup/index.d.ts +3 -0
  73. package/layout/views/lib/layouts/popup/popup-layout-base.component.d.ts +98 -0
  74. package/layout/views/lib/layouts/popup/popup-layout.base.d.ts +14 -0
  75. package/layout/views/lib/layouts/popup/popup-layout.component.d.ts +76 -0
  76. package/layout/views/lib/{details-view → views/details-view}/details-view.adapter.d.ts +1 -1
  77. package/layout/views/lib/views/index.d.ts +1 -0
  78. package/package.json +15 -7
  79. package/runtime/README.md +3 -0
  80. package/runtime/index.d.ts +17 -0
  81. package/runtime/lib/commands/command.extension.token.d.ts +7 -0
  82. package/runtime/lib/commands/command.interface.d.ts +3 -0
  83. package/runtime/lib/commands/command.middleware.d.ts +2 -0
  84. package/runtime/lib/commands/command.registry.d.ts +16 -0
  85. package/runtime/lib/commands/provide-command-middleware.d.ts +9 -0
  86. package/runtime/lib/commands/provide-command-setups.d.ts +9 -0
  87. package/runtime/lib/policy/policy-middleware-provider.d.ts +9 -0
  88. package/runtime/lib/policy/policy.directive.d.ts +9 -0
  89. package/runtime/lib/policy/policy.extension.token.d.ts +7 -0
  90. package/runtime/lib/policy/policy.interface.d.ts +17 -0
  91. package/runtime/lib/policy/policy.middleware.d.ts +3 -0
  92. package/runtime/lib/policy/policy.registry.d.ts +19 -0
  93. package/runtime/lib/policy/policy.service.d.ts +8 -0
  94. package/runtime/lib/policy/policy.types.d.ts +7 -0
  95. package/runtime/lib/queries/provide-query-middleware.d.ts +9 -0
  96. package/runtime/lib/queries/provide-query-setups.d.ts +9 -0
  97. package/runtime/lib/queries/query.extension.token.d.ts +7 -0
  98. package/runtime/lib/queries/query.interface.d.ts +3 -0
  99. package/runtime/lib/queries/query.middleware.d.ts +2 -0
  100. package/runtime/lib/queries/query.registry.d.ts +15 -0
  101. package/runtime/lib/runtime.module.d.ts +12 -0
  102. package/themes/default/index.d.ts +0 -1
  103. package/themes/default/lib/layouts/details-view/details-view.component.d.ts +2 -2
  104. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +2 -2
  105. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +29 -2
  106. package/themes/default/lib/layouts/root-layout/components/horizontal-menu/horizontal-menu.component.d.ts +2 -1
  107. package/themes/default/lib/layouts/root-layout/components/side-menu/side-menu.component.d.ts +2 -1
  108. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +1 -0
  109. package/themes/shared/index.d.ts +1 -3
  110. package/themes/shared/lib/shared.module.d.ts +1 -1
  111. package/themes/shared/lib/{components/slots → slots}/theme-slot.component.d.ts +9 -9
  112. package/widgets/lib/widgets/advance/avatar/avatar-widget-column.component.d.ts +1 -1
  113. package/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.d.ts +1 -1
  114. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-column.component.d.ts +6 -0
  115. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-edit.component.d.ts +33 -0
  116. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-filter.component.d.ts +6 -0
  117. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-print.component.d.ts +6 -0
  118. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-view.component.d.ts +31 -0
  119. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget.config.d.ts +7 -0
  120. package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget.service.d.ts +12 -0
  121. package/widgets/lib/widgets/advance/file-uploader/index.d.ts +7 -0
  122. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-column.component.d.ts +1 -1
  123. package/widgets/lib/widgets/editors/color/color-box-widget-column.component.d.ts +1 -1
  124. package/widgets/lib/widgets/editors/contact/contact-widget-column.component.d.ts +1 -1
  125. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.d.ts +1 -1
  126. package/widgets/lib/widgets/editors/email/email-box-widget-column.component.d.ts +1 -1
  127. package/widgets/lib/widgets/editors/large-text/large-text-widget-column.component.d.ts +1 -1
  128. package/widgets/lib/widgets/editors/link/link-widget-column.component.d.ts +1 -1
  129. package/widgets/lib/widgets/editors/meta-data/meta-data-widget-column.component.d.ts +1 -1
  130. package/widgets/lib/widgets/editors/number/number-box-widget-column.component.d.ts +1 -1
  131. package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-column.component.d.ts +1 -1
  132. package/widgets/lib/widgets/editors/password/password-box-widget-column.component.d.ts +1 -1
  133. package/widgets/lib/widgets/editors/phone/phone-box-widget-column.component.d.ts +1 -1
  134. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-column.component.d.ts +1 -1
  135. package/widgets/lib/widgets/editors/select/select-box-widget-column.component.d.ts +1 -1
  136. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-column.component.d.ts +1 -1
  137. package/widgets/lib/widgets/editors/tabular-data/tabular-data-column.component.d.ts +1 -1
  138. package/widgets/lib/widgets/editors/text/text-box-widget-column.component.d.ts +1 -1
  139. package/widgets/lib/widgets/editors/time-duration/time-duration-widget-column.component.d.ts +1 -1
  140. package/widgets/lib/widgets/editors/toggle/toggle-widget-column.component.d.ts +1 -1
  141. package/widgets/lib/widgets/index.d.ts +1 -0
  142. package/workflow/lib/slots/workflow-action-bar/workflow-action-bar.component.d.ts +36 -0
  143. package/workflow/lib/workflow-evaluator-scope.provider.d.ts +4 -0
  144. package/common/lib/layout/beardcrumb.type.d.ts +0 -6
  145. package/common/lib/layout/component-slot/component-slot.types.d.ts +0 -15
  146. package/core/lib/index.d.ts +0 -7
  147. package/fesm2022/acorex-platform-themes-default-details-view.component-w1GLOu_c.mjs.map +0 -1
  148. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C8rL7vLD.mjs.map +0 -1
  149. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-qu3j-fxn.mjs.map +0 -1
  150. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-i8FcuktZ.mjs.map +0 -1
  151. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-BQcHI7vG.mjs.map +0 -1
  152. package/themes/default/lib/layouts/base/index.d.ts +0 -3
  153. package/themes/default/lib/layouts/base/page-layout/index.d.ts +0 -1
  154. package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +0 -8
  155. /package/{themes/shared/lib/components → layout/components/lib}/badge/badge.directive.d.ts +0 -0
  156. /package/{common/lib/layout/task-badge → layout/components/lib/badge}/task-badge.service.d.ts +0 -0
  157. /package/{common/lib/layout/task-badge → layout/components/lib/badge}/task-badge.type.d.ts +0 -0
  158. /package/{themes/shared/lib/components/layout-elements → layout/components/lib/blocks}/layout-actions.component.d.ts +0 -0
  159. /package/{themes/shared/lib/components/layout-elements → layout/components/lib/blocks}/layout-footer.component.d.ts +0 -0
  160. /package/{themes/shared/lib/components/layout-elements → layout/components/lib/blocks}/layout-header.component.d.ts +0 -0
  161. /package/{themes/shared/lib/components/layout-elements → layout/components/lib/blocks}/layout-list.component.d.ts +0 -0
  162. /package/{themes/shared/lib/components/layout-elements → layout/components/lib/blocks}/layout-section.component.d.ts +0 -0
  163. /package/{themes/shared/lib/components/layout-elements → layout/components/lib/blocks}/layout-side.component.d.ts +0 -0
  164. /package/{themes/shared/lib/components/layout-elements → layout/components/lib/blocks}/layout-tool-bar.component.d.ts +0 -0
  165. /package/{common/lib/layout → layout/components/lib}/component-slot/component-slot-registery.service.d.ts +0 -0
  166. /package/{common/lib/layout → layout/components/lib}/component-slot/component-slot.module.d.ts +0 -0
  167. /package/{common/lib/layout → layout/components/lib}/component-slot/index.d.ts +0 -0
  168. /package/layout/views/lib/{details-view → views/details-view}/details-view-route.resolver.d.ts +0 -0
  169. /package/layout/views/lib/{details-view → views/details-view}/details-view.viewmodel.d.ts +0 -0
  170. /package/layout/views/lib/{details-view → views/details-view}/index.d.ts +0 -0
  171. /package/layout/views/lib/{details-view → views/details-view}/sample.d.ts +0 -0
@@ -1,15 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, signal, input, computed, ViewEncapsulation, Component } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, signal, input, computed, ViewEncapsulation, Component, effect, Directive, ChangeDetectionStrategy, viewChild, contentChild, ElementRef, Injector, runInInjectionContext, ViewContainerRef, Optional, Inject, NgModule } from '@angular/core';
3
3
  import { BehaviorSubject, timer, Subject, takeUntil } from 'rxjs';
4
4
  import { tap } from 'rxjs/operators';
5
5
  import { CommonModule } from '@angular/common';
6
- import { AXBadgeModule } from '@acorex/components/badge';
6
+ import { AXBadgeModule, AXBadgeComponent } from '@acorex/components/badge';
7
7
  import * as i1 from '@acorex/components/avatar';
8
8
  import { AXAvatarModule } from '@acorex/components/avatar';
9
9
  import * as i2 from '@acorex/components/decorators';
10
10
  import { AXDecoratorModule } from '@acorex/components/decorators';
11
11
  import * as i3 from '@acorex/components/image';
12
12
  import { AXImageModule } from '@acorex/components/image';
13
+ import { SIGNAL, signalSetFn } from '@angular/core/primitives/signals';
14
+ import { sortBy } from 'lodash-es';
15
+ import { AXPExpressionEvaluatorService, AXPContextStore } from '@acorex/platform/core';
13
16
 
14
17
  const AXP_USER_AVATAR_PROVIDER = new InjectionToken('AXP_USER_AVATAR_PROVIDER', {
15
18
  providedIn: 'root',
@@ -260,9 +263,670 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
260
263
  ], encapsulation: ViewEncapsulation.None, providers: [], template: "<ax-avatar #avatar [size]=\"size()\" class=\"ax-cursor-pointer\">\n @if(hasPicture()){\n <ax-image (onError)=\"onImageError($event)\" (onLoad)=\"onImageLoad($event)\" [src]=\"src()\"></ax-image>\n }@else{\n <ax-text class=\"ax-{{ avatarColor() }}-lightest \">\n <small class=\"ax-text-xs ax-font-semibold\">{{ avatarText() }}</small>\n </ax-text>\n }\n</ax-avatar>\n\n<!--\n\nax-primary-lightest\nax-warning-lightest\nax-success-lightest\nax-danger-lightest\nax-secondary-lightest\nax-accent1-lightest\nax-accent2-lightest\nax-accent3-lightest\n\n-->\n" }]
261
264
  }] });
262
265
 
266
+ const AXP_TASK_BADGE_PROVIDERS = new InjectionToken('AXP_TASK_BADGE_PROVIDERS');
267
+ class AXPTaskBadgeProvider {
268
+ }
269
+
270
+ class AXPTaskBadgeService {
271
+ constructor() {
272
+ this.badgeMap = new Map();
273
+ this.providers = inject(AXP_TASK_BADGE_PROVIDERS, { optional: true }) ?? [];
274
+ this.computedCache = new Map();
275
+ for (const provider of this.providers) {
276
+ if (!this.badgeMap.has(provider.key)) {
277
+ this.badgeMap.set(provider.key, []);
278
+ }
279
+ this.badgeMap.get(provider.key).push(provider.count);
280
+ }
281
+ }
282
+ getCount(key) {
283
+ if (this.computedCache.has(key)) {
284
+ return this.computedCache.get(key);
285
+ }
286
+ const signals = this.badgeMap.get(key) ?? [];
287
+ const total = signals.length > 0 ? computed(() => signals.reduce((sum, s) => sum + s(), 0)) : signal(0);
288
+ this.computedCache.set(key, total);
289
+ return total;
290
+ }
291
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBadgeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
292
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBadgeService, providedIn: 'root' }); }
293
+ }
294
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBadgeService, decorators: [{
295
+ type: Injectable,
296
+ args: [{ providedIn: 'root' }]
297
+ }], ctorParameters: () => [] });
298
+
299
+ class AXPTaskBadgeDirective {
300
+ constructor() {
301
+ this.badgeService = inject(AXPTaskBadgeService);
302
+ this.host = inject(AXBadgeComponent); // assumes it's applied on <ax-badge>
303
+ this.hostElement = this.host.getHostElement();
304
+ this.badgeKey = input(undefined);
305
+ this.count = input(0, { alias: 'axp-task-badge' });
306
+ this.displayCount = computed(() => {
307
+ const value = this.count() || (this.badgeKey() && this.badgeService.getCount(this.badgeKey())());
308
+ return value ? value.toString() : '';
309
+ });
310
+ this.#eff = effect(() => {
311
+ this.setValueOfInputSignal(this.host.text, this.displayCount());
312
+ if (!this.displayCount()) {
313
+ this.hostElement.style.display = 'none';
314
+ }
315
+ else {
316
+ this.hostElement.style.removeProperty('display');
317
+ }
318
+ });
319
+ }
320
+ #eff;
321
+ setValueOfInputSignal(signal, value) {
322
+ const node = signal[SIGNAL];
323
+ signalSetFn(node, value);
324
+ }
325
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBadgeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
326
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.10", type: AXPTaskBadgeDirective, isStandalone: true, selector: "[axp-task-badge]", inputs: { badgeKey: { classPropertyName: "badgeKey", publicName: "badgeKey", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "axp-task-badge", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
327
+ }
328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPTaskBadgeDirective, decorators: [{
329
+ type: Directive,
330
+ args: [{
331
+ selector: '[axp-task-badge]',
332
+ standalone: true,
333
+ }]
334
+ }] });
335
+
336
+ class AXPThemeLayoutPagePrimaryActionsComponent {
337
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
338
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", 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 }); }
339
+ }
340
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, decorators: [{
341
+ type: Component,
342
+ args: [{
343
+ standalone: true,
344
+ selector: 'axp-layout-actions-primary',
345
+ template: `<ng-content select="ax-button,ax-dropdown-button"></ng-content>`,
346
+ encapsulation: ViewEncapsulation.None,
347
+ changeDetection: ChangeDetectionStrategy.OnPush
348
+ }]
349
+ }] });
350
+ class AXPThemeLayoutPageSecondaryActionsComponent {
351
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
352
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutPageSecondaryActionsComponent, isStandalone: true, selector: "axp-layout-actions-secondary", ngImport: i0, template: `<ng-content select="ax-button-item,ax-divider,ng-container"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
353
+ }
354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, decorators: [{
355
+ type: Component,
356
+ args: [{
357
+ standalone: true,
358
+ selector: 'axp-layout-actions-secondary',
359
+ template: `<ng-content select="ax-button-item,ax-divider,ng-container"></ng-content>`,
360
+ encapsulation: ViewEncapsulation.None,
361
+ changeDetection: ChangeDetectionStrategy.OnPush
362
+ }]
363
+ }] });
364
+ class AXPThemeLayoutActionsComponent {
365
+ constructor() {
366
+ this.primaryTemplate = viewChild('primary');
367
+ this.primaryContent = contentChild(AXPThemeLayoutPagePrimaryActionsComponent);
368
+ this.hasPrimary = computed(() => this.primaryContent() != null);
369
+ this.secondaryTemplate = viewChild('secondary');
370
+ this.secondaryContent = contentChild(AXPThemeLayoutPageSecondaryActionsComponent);
371
+ this.hasSecondary = computed(() => this.secondaryContent() != null);
372
+ }
373
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
374
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.10", 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: `
375
+
376
+ <ng-template #primary>
377
+ <ng-content select="axp-layout-actions-primary"></ng-content>
378
+ </ng-template>
379
+
380
+ <ng-template #secondary>
381
+ <ng-content select="axp-layout-actions-secondary"></ng-content>
382
+ </ng-template>
383
+
384
+ <ng-content></ng-content>
385
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
386
+ }
387
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutActionsComponent, decorators: [{
388
+ type: Component,
389
+ args: [{
390
+ imports: [CommonModule],
391
+ standalone: true,
392
+ selector: 'axp-layout-actions',
393
+ template: `
394
+
395
+ <ng-template #primary>
396
+ <ng-content select="axp-layout-actions-primary"></ng-content>
397
+ </ng-template>
398
+
399
+ <ng-template #secondary>
400
+ <ng-content select="axp-layout-actions-secondary"></ng-content>
401
+ </ng-template>
402
+
403
+ <ng-content></ng-content>
404
+ `,
405
+ encapsulation: ViewEncapsulation.None,
406
+ changeDetection: ChangeDetectionStrategy.OnPush
407
+ }]
408
+ }] });
409
+
410
+ class AXPThemeLayoutBlockComponent {
411
+ constructor() {
412
+ this.elementRef = inject(ElementRef);
413
+ this.hostElement = this.elementRef.nativeElement;
414
+ }
415
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
416
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutBlockComponent, isStandalone: true, selector: "\n\n axp-page-content, \n axp-page-footer-container,\n axp-page-footer,\n axp-page-header,\n axp-page-header-container,\n axp-page-toolbar,\n\n axp-layout-content, \n axp-layout-page-content, \n\n axp-layout-sections,\n axp-layout-body,\n axp-layout-page-body,\n axp-layout-prefix,\n axp-layout-suffix,\n axp-layout-title-bar,\n axp-layout-title, \n axp-layout-title-actions, \n axp-layout-nav-button, \n axp-layout-description, \n axp-layout-breadcrumbs,\n axp-layout-list-action,\n ", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
417
+ }
418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutBlockComponent, decorators: [{
419
+ type: Component,
420
+ args: [{
421
+ standalone: true,
422
+ selector: `
423
+
424
+ axp-page-content,
425
+ axp-page-footer-container,
426
+ axp-page-footer,
427
+ axp-page-header,
428
+ axp-page-header-container,
429
+ axp-page-toolbar,
430
+
431
+ axp-layout-content,
432
+ axp-layout-page-content,
433
+
434
+ axp-layout-sections,
435
+ axp-layout-body,
436
+ axp-layout-page-body,
437
+ axp-layout-prefix,
438
+ axp-layout-suffix,
439
+ axp-layout-title-bar,
440
+ axp-layout-title,
441
+ axp-layout-title-actions,
442
+ axp-layout-nav-button,
443
+ axp-layout-description,
444
+ axp-layout-breadcrumbs,
445
+ axp-layout-list-action,
446
+ `,
447
+ template: '<ng-content></ng-content>',
448
+ encapsulation: ViewEncapsulation.None,
449
+ changeDetection: ChangeDetectionStrategy.OnPush,
450
+ }]
451
+ }] });
452
+
453
+ class AXPThemeLayoutFooterComponent {
454
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
455
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutFooterComponent, isStandalone: true, selector: "axp-layout-footer, axp-layout-page-footer", ngImport: i0, template: `
456
+ <ng-content select="axp-layout-prefix"></ng-content>
457
+ <ng-content select="axp-layout-suffix"></ng-content>
458
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
459
+ }
460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutFooterComponent, decorators: [{
461
+ type: Component,
462
+ args: [{
463
+ imports: [CommonModule],
464
+ standalone: true,
465
+ selector: 'axp-layout-footer, axp-layout-page-footer',
466
+ template: `
467
+ <ng-content select="axp-layout-prefix"></ng-content>
468
+ <ng-content select="axp-layout-suffix"></ng-content>
469
+ `,
470
+ encapsulation: ViewEncapsulation.None,
471
+ changeDetection: ChangeDetectionStrategy.OnPush,
472
+ }]
473
+ }] });
474
+
475
+ class AXPThemeLayoutPageHeaderComponent {
476
+ constructor() {
477
+ this.title = viewChild('title');
478
+ this.description = viewChild('description');
479
+ this.actions = viewChild('actions');
480
+ this.navbar = viewChild('navbar');
481
+ this.breadcrumbs = viewChild('breadcrumbs');
482
+ this.navButton = viewChild('navButton');
483
+ }
484
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
485
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.10", type: AXPThemeLayoutPageHeaderComponent, isStandalone: true, selector: "axp-layout-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 }, { propertyName: "navButton", first: true, predicate: ["navButton"], descendants: true, isSignal: true }], ngImport: i0, template: `
486
+ <ng-template #breadcrumbs>
487
+ <ng-content select="axp-layout-breadcrumbs"></ng-content>
488
+ </ng-template>
489
+
490
+ <ng-template #navbar>
491
+ <ng-content select="axp-layout-toolbar"></ng-content>
492
+ </ng-template>
493
+
494
+ <ng-template #actions>
495
+ <ng-content select="axp-layout-actions"></ng-content>
496
+ </ng-template>
497
+
498
+ <ng-template #description>
499
+ <ng-content select="axp-layout-description"></ng-content>
500
+ </ng-template>
501
+
502
+ <ng-template #title>
503
+ <ng-content select="axp-layout-title"></ng-content>
504
+ </ng-template>
505
+ <ng-template #navButton>
506
+ <ng-content select="axp-layout-nav-button"></ng-content>
507
+ </ng-template>
508
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
509
+ }
510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, decorators: [{
511
+ type: Component,
512
+ args: [{
513
+ imports: [CommonModule],
514
+ standalone: true,
515
+ selector: 'axp-layout-page-header',
516
+ template: `
517
+ <ng-template #breadcrumbs>
518
+ <ng-content select="axp-layout-breadcrumbs"></ng-content>
519
+ </ng-template>
520
+
521
+ <ng-template #navbar>
522
+ <ng-content select="axp-layout-toolbar"></ng-content>
523
+ </ng-template>
524
+
525
+ <ng-template #actions>
526
+ <ng-content select="axp-layout-actions"></ng-content>
527
+ </ng-template>
528
+
529
+ <ng-template #description>
530
+ <ng-content select="axp-layout-description"></ng-content>
531
+ </ng-template>
532
+
533
+ <ng-template #title>
534
+ <ng-content select="axp-layout-title"></ng-content>
535
+ </ng-template>
536
+ <ng-template #navButton>
537
+ <ng-content select="axp-layout-nav-button"></ng-content>
538
+ </ng-template>
539
+ `,
540
+ encapsulation: ViewEncapsulation.None,
541
+ changeDetection: ChangeDetectionStrategy.OnPush,
542
+ }]
543
+ }] });
544
+ class AXPThemeLayoutHeaderComponent {
545
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
546
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutHeaderComponent, isStandalone: true, selector: "axp-layout-header", ngImport: i0, template: `
547
+ <ng-content select="axp-layout-prefix"></ng-content>
548
+ <ng-content></ng-content>
549
+ <ng-content select="axp-layout-suffix"></ng-content>
550
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
551
+ }
552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutHeaderComponent, decorators: [{
553
+ type: Component,
554
+ args: [{
555
+ imports: [CommonModule],
556
+ standalone: true,
557
+ selector: 'axp-layout-header',
558
+ template: `
559
+ <ng-content select="axp-layout-prefix"></ng-content>
560
+ <ng-content></ng-content>
561
+ <ng-content select="axp-layout-suffix"></ng-content>
562
+ `,
563
+ encapsulation: ViewEncapsulation.None,
564
+ changeDetection: ChangeDetectionStrategy.OnPush,
565
+ }]
566
+ }] });
567
+
568
+ class AXPThemeLayoutListComponent {
569
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
570
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutListComponent, isStandalone: true, selector: "axp-layout-list", ngImport: i0, template: `<ng-content select="axp-layout-list-item,axp-layout-list-group,ng-container"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
571
+ }
572
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutListComponent, decorators: [{
573
+ type: Component,
574
+ args: [{
575
+ standalone: true,
576
+ selector: 'axp-layout-list',
577
+ template: `<ng-content select="axp-layout-list-item,axp-layout-list-group,ng-container"></ng-content>`,
578
+ encapsulation: ViewEncapsulation.None,
579
+ changeDetection: ChangeDetectionStrategy.OnPush
580
+ }]
581
+ }] });
582
+ class AXPThemeLayoutListItemsGroupComponent {
583
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
584
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutListItemsGroupComponent, isStandalone: true, selector: "axp-layout-list-group", ngImport: i0, template: `<ng-content select="axp-layout-list-item, axp-layout-title, axp-layout-header ,ng-container"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
585
+ }
586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, decorators: [{
587
+ type: Component,
588
+ args: [{
589
+ standalone: true,
590
+ selector: 'axp-layout-list-group',
591
+ template: `<ng-content select="axp-layout-list-item, axp-layout-title, axp-layout-header ,ng-container"></ng-content>`,
592
+ encapsulation: ViewEncapsulation.None,
593
+ changeDetection: ChangeDetectionStrategy.OnPush
594
+ }]
595
+ }] });
596
+ class AXPThemeLayoutListItemComponent {
597
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
598
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", 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-container"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
599
+ }
600
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutListItemComponent, decorators: [{
601
+ type: Component,
602
+ args: [{
603
+ standalone: true,
604
+ selector: 'axp-layout-list-item',
605
+ template: `<ng-content select="axp-layout-content,axp-layout-prefix,axp-layout-suffix,ng-container"></ng-content>`,
606
+ encapsulation: ViewEncapsulation.None,
607
+ changeDetection: ChangeDetectionStrategy.OnPush
608
+ }]
609
+ }] });
610
+
611
+ class AXPThemeLayoutSectionComponent {
612
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
613
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutSectionComponent, isStandalone: true, selector: "axp-layout-section", ngImport: i0, template: `
614
+ <ng-content select="axp-layout-header"></ng-content>
615
+ <ng-content select="axp-layout-content"></ng-content>
616
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
617
+ }
618
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutSectionComponent, decorators: [{
619
+ type: Component,
620
+ args: [{
621
+ imports: [CommonModule],
622
+ standalone: true,
623
+ selector: 'axp-layout-section',
624
+ template: `
625
+ <ng-content select="axp-layout-header"></ng-content>
626
+ <ng-content select="axp-layout-content"></ng-content>
627
+ `,
628
+ encapsulation: ViewEncapsulation.None,
629
+ changeDetection: ChangeDetectionStrategy.OnPush,
630
+ }]
631
+ }] });
632
+
633
+ class AXPThemeLayoutStartSideComponent {
634
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutStartSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
635
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutStartSideComponent, isStandalone: true, selector: "axp-layout-page-start-side, axp-layout-start-side", ngImport: i0, template: `
636
+ <ng-content select="axp-layout-header"></ng-content>
637
+ <ng-content select="axp-layout-content"></ng-content>
638
+ <ng-content select="axp-layout-footer"></ng-content>
639
+ <ng-content></ng-content>
640
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
641
+ }
642
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutStartSideComponent, decorators: [{
643
+ type: Component,
644
+ args: [{
645
+ imports: [CommonModule],
646
+ standalone: true,
647
+ selector: 'axp-layout-page-start-side, axp-layout-start-side',
648
+ template: `
649
+ <ng-content select="axp-layout-header"></ng-content>
650
+ <ng-content select="axp-layout-content"></ng-content>
651
+ <ng-content select="axp-layout-footer"></ng-content>
652
+ <ng-content></ng-content>
653
+ `,
654
+ encapsulation: ViewEncapsulation.None,
655
+ changeDetection: ChangeDetectionStrategy.OnPush,
656
+ }]
657
+ }] });
658
+ class AXPThemeLayoutEndSideComponent {
659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutEndSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
660
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutEndSideComponent, isStandalone: true, selector: "axp-layout-page-end-side, axp-layout-end-side", ngImport: i0, template: `
661
+ <ng-content select="axp-layout-header"></ng-content>
662
+ <ng-content select="axp-layout-content"></ng-content>
663
+ <ng-content select="axp-layout-footer"></ng-content>
664
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
665
+ }
666
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutEndSideComponent, decorators: [{
667
+ type: Component,
668
+ args: [{
669
+ imports: [CommonModule],
670
+ standalone: true,
671
+ selector: 'axp-layout-page-end-side, axp-layout-end-side',
672
+ template: `
673
+ <ng-content select="axp-layout-header"></ng-content>
674
+ <ng-content select="axp-layout-content"></ng-content>
675
+ <ng-content select="axp-layout-footer"></ng-content>
676
+ `,
677
+ encapsulation: ViewEncapsulation.None,
678
+ changeDetection: ChangeDetectionStrategy.OnPush,
679
+ }]
680
+ }] });
681
+
682
+ class AXPThemeLayoutToolbarComponent {
683
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
684
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutToolbarComponent, isStandalone: true, selector: "axp-layout-toolbar", ngImport: i0, template: `
685
+ <ng-content select="axp-layout-prefix"></ng-content>
686
+ <ng-content select="axp-layout-suffix"></ng-content>
687
+ <ng-content></ng-content>
688
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
689
+ }
690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutToolbarComponent, decorators: [{
691
+ type: Component,
692
+ args: [{
693
+ imports: [CommonModule],
694
+ standalone: true,
695
+ selector: 'axp-layout-toolbar',
696
+ template: `
697
+ <ng-content select="axp-layout-prefix"></ng-content>
698
+ <ng-content select="axp-layout-suffix"></ng-content>
699
+ <ng-content></ng-content>
700
+ `,
701
+ encapsulation: ViewEncapsulation.None,
702
+ changeDetection: ChangeDetectionStrategy.OnPush
703
+ }]
704
+ }] });
705
+
706
+ class AXPThemeLayoutContainerComponent {
707
+ constructor() {
708
+ this.elementRef = inject((ElementRef));
709
+ this.hostElement = this.elementRef.nativeElement;
710
+ this._isEmptySignal = signal(this.hostElement.children.length === 0);
711
+ this.isEmpty = this._isEmptySignal.asReadonly();
712
+ }
713
+ ngOnInit() {
714
+ this.mutationObserver = new MutationObserver(() => {
715
+ this._isEmptySignal.set(this.hostElement.children.length === 0);
716
+ });
717
+ this.mutationObserver.observe(this.hostElement, {
718
+ childList: true,
719
+ subtree: true,
720
+ });
721
+ }
722
+ ngOnDestroy() {
723
+ this.mutationObserver?.disconnect();
724
+ }
725
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
726
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.10", type: AXPThemeLayoutContainerComponent, isStandalone: true, selector: "axp-layout-container", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
727
+ }
728
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPThemeLayoutContainerComponent, decorators: [{
729
+ type: Component,
730
+ args: [{
731
+ standalone: true,
732
+ selector: `axp-layout-container`,
733
+ template: '<ng-content></ng-content>',
734
+ encapsulation: ViewEncapsulation.None,
735
+ changeDetection: ChangeDetectionStrategy.OnPush,
736
+ }]
737
+ }] });
738
+
739
+ class AXPComponentSlot {
740
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlot, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
741
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.10", type: AXPComponentSlot, isStandalone: true, ngImport: i0 }); }
742
+ }
743
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlot, decorators: [{
744
+ type: Directive
745
+ }] });
746
+
747
+ class AXPComponentSlotRegistryService {
748
+ constructor() {
749
+ this.registry = new Map();
750
+ }
751
+ register(slotName, config) {
752
+ let configs = this.registry.get(slotName) || [];
753
+ // Check if the component is already registered in this slot
754
+ const isDuplicate = configs.some(existingConfig => existingConfig.name === config.name);
755
+ if (!isDuplicate) {
756
+ configs = [...configs, config]; // Add the new configuration
757
+ this.registry.set(slotName, configs);
758
+ }
759
+ }
760
+ get(slotName) {
761
+ return this.registry.get(slotName) || [];
762
+ }
763
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
764
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotRegistryService, providedIn: 'root' }); }
765
+ }
766
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotRegistryService, decorators: [{
767
+ type: Injectable,
768
+ args: [{
769
+ providedIn: 'root'
770
+ }]
771
+ }] });
772
+
773
+ class AXPComponentSlotLoaderService {
774
+ constructor() {
775
+ this.registryService = inject(AXPComponentSlotRegistryService);
776
+ this.injector = inject(Injector);
777
+ this.evaluator = inject(AXPExpressionEvaluatorService);
778
+ this.contextStore = inject(AXPContextStore);
779
+ }
780
+ async loadComponent(slotName, viewContainerRef) {
781
+ const configs = sortBy(this.registryService.get(slotName), (c) => c.priority ?? 0);
782
+ if (configs) {
783
+ const results = await Promise.all(configs.map(async (c) => ({
784
+ config: c,
785
+ show: c.condition ? await this.evaluateCondition(c.condition) : true
786
+ })));
787
+ const slots = results.filter(r => r.show).map(r => r.config);
788
+ viewContainerRef.clear();
789
+ await Promise.all(slots.map(async (config) => {
790
+ let component;
791
+ let options = {};
792
+ if (typeof config.loadComponent === 'function') {
793
+ await runInInjectionContext(this.injector, async () => {
794
+ component = await config.loadComponent?.();
795
+ });
796
+ }
797
+ else if (config.component) {
798
+ component = config.component;
799
+ }
800
+ if (typeof config.options === 'function') {
801
+ runInInjectionContext(this.injector, () => {
802
+ const fun = config.options;
803
+ options = fun();
804
+ });
805
+ }
806
+ else if (config.options) {
807
+ options = config.options;
808
+ }
809
+ if (component != null) {
810
+ const componentRef = viewContainerRef.createComponent(component);
811
+ Object.assign(componentRef.instance, options);
812
+ }
813
+ }));
814
+ }
815
+ }
816
+ async evaluateCondition(condition) {
817
+ if (typeof condition === 'string') {
818
+ const result = await this.evaluator.evaluate(condition, {});
819
+ return result;
820
+ }
821
+ return condition(this.contextStore.data());
822
+ }
823
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
824
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotLoaderService, providedIn: 'root' }); }
825
+ }
826
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotLoaderService, decorators: [{
827
+ type: Injectable,
828
+ args: [{
829
+ providedIn: 'root',
830
+ }]
831
+ }] });
832
+
833
+ class AXPComponentSlotDirective {
834
+ constructor() {
835
+ this.name = input.required();
836
+ this.dynamicLoaderService = inject(AXPComponentSlotLoaderService);
837
+ this.viewContainerRef = inject(ViewContainerRef);
838
+ this.isEmpty = computed(() => this._viewCount() === 0);
839
+ // Create a signal to store the count of children
840
+ this._viewCount = signal(0);
841
+ }
842
+ async ngOnInit() {
843
+ await this.dynamicLoaderService.loadComponent(this.name(), this.viewContainerRef);
844
+ // Update the signal after loading
845
+ this._viewCount.set(this.viewContainerRef.length);
846
+ }
847
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
848
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.10", type: AXPComponentSlotDirective, isStandalone: false, selector: "axp-component-slot", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["slot"], ngImport: i0 }); }
849
+ }
850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotDirective, decorators: [{
851
+ type: Directive,
852
+ args: [{
853
+ selector: 'axp-component-slot',
854
+ standalone: false,
855
+ exportAs: 'slot'
856
+ }]
857
+ }] });
858
+
859
+ class AXPComponentSlotModule {
860
+ static forRoot(configs) {
861
+ return {
862
+ ngModule: AXPComponentSlotModule,
863
+ providers: [
864
+ {
865
+ provide: 'AXPComponentSlotModuleFactory',
866
+ useFactory: (registry) => () => {
867
+ if (configs) {
868
+ for (const [key, value] of Object.entries(configs)) {
869
+ value.forEach(v => {
870
+ registry.register(key, v);
871
+ });
872
+ }
873
+ }
874
+ },
875
+ deps: [AXPComponentSlotRegistryService],
876
+ multi: true
877
+ }
878
+ ]
879
+ };
880
+ }
881
+ static forChild(configs) {
882
+ return {
883
+ ngModule: AXPComponentSlotModule,
884
+ providers: [
885
+ {
886
+ provide: 'AXPComponentSlotModuleFactory',
887
+ useFactory: (registry) => () => {
888
+ if (configs) {
889
+ for (const [key, value] of Object.entries(configs)) {
890
+ value.forEach(v => {
891
+ registry.register(key, v);
892
+ });
893
+ }
894
+ }
895
+ },
896
+ deps: [AXPComponentSlotRegistryService],
897
+ multi: true
898
+ }
899
+ ]
900
+ };
901
+ }
902
+ /**
903
+ * @ignore
904
+ */
905
+ constructor(instances) {
906
+ instances?.forEach(f => {
907
+ f();
908
+ });
909
+ }
910
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotModule, deps: [{ token: 'AXPComponentSlotModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
911
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotModule, declarations: [AXPComponentSlotDirective], exports: [AXPComponentSlotDirective] }); }
912
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotModule }); }
913
+ }
914
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImport: i0, type: AXPComponentSlotModule, decorators: [{
915
+ type: NgModule,
916
+ args: [{
917
+ declarations: [AXPComponentSlotDirective],
918
+ exports: [AXPComponentSlotDirective]
919
+ }]
920
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
921
+ type: Optional
922
+ }, {
923
+ type: Inject,
924
+ args: ['AXPComponentSlotModuleFactory']
925
+ }] }] });
926
+
263
927
  /**
264
928
  * Generated bundle index. Do not edit.
265
929
  */
266
930
 
267
- export { AXPUserAvatarComponent, AXPUserAvatarService, AXP_USER_AVATAR_PROVIDER };
931
+ export { AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotLoaderService, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPTaskBadgeDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutEndSideComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPUserAvatarComponent, AXPUserAvatarService, AXP_TASK_BADGE_PROVIDERS, AXP_USER_AVATAR_PROVIDER };
268
932
  //# sourceMappingURL=acorex-platform-layout-components.mjs.map