@acorex/platform 21.0.0-next.83 → 21.0.0-next.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +1 -1
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-Ytey9uhY.mjs → acorex-platform-common-common-settings.provider-VfmZct9H.mjs} +43 -3
  4. package/fesm2022/acorex-platform-common-common-settings.provider-VfmZct9H.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +1709 -870
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-contracts.mjs +1160 -9
  8. package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-core.mjs +210 -131
  10. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-domain-contracts.mjs +58 -0
  12. package/fesm2022/acorex-platform-domain-contracts.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-domain.mjs +2 -50
  14. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-components.mjs +61 -23
  17. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-designer.mjs +3 -2
  19. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-entity-contracts.mjs +1114 -0
  22. package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-entity.mjs +661 -742
  25. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  26. package/fesm2022/acorex-platform-layout-views.mjs +376 -176
  27. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs +11 -105
  29. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs +513 -0
  31. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs.map +1 -0
  32. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-D4MOHEpI.mjs} +4 -4
  33. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-D4MOHEpI.mjs.map +1 -0
  34. package/fesm2022/acorex-platform-layout-widgets.mjs +871 -59
  35. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  36. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  37. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs → acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs} +2 -3
  38. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-themes-default.mjs +740 -96
  40. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  41. package/fesm2022/{acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs → acorex-platform-themes-shared-settings.provider-BUwPqwUS.mjs} +3 -3
  42. package/fesm2022/acorex-platform-themes-shared-settings.provider-BUwPqwUS.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-themes-shared.mjs +4 -3
  44. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-workflow.mjs +6 -8
  46. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  47. package/package.json +9 -5
  48. package/types/acorex-platform-auth.d.ts +2 -1
  49. package/types/acorex-platform-common.d.ts +419 -1083
  50. package/types/acorex-platform-contracts.d.ts +1791 -260
  51. package/types/acorex-platform-core.d.ts +2153 -2806
  52. package/types/acorex-platform-domain-contracts.d.ts +416 -0
  53. package/types/acorex-platform-domain.d.ts +4 -415
  54. package/types/acorex-platform-layout-builder.d.ts +2 -1
  55. package/types/acorex-platform-layout-components.d.ts +15 -4
  56. package/types/acorex-platform-layout-designer.d.ts +2 -1
  57. package/types/acorex-platform-layout-entity-contracts.d.ts +864 -0
  58. package/types/acorex-platform-layout-entity.d.ts +88 -269
  59. package/types/acorex-platform-layout-views.d.ts +48 -14
  60. package/types/acorex-platform-layout-widget-core.d.ts +9 -5
  61. package/types/acorex-platform-layout-widgets.d.ts +89 -13
  62. package/types/acorex-platform-runtime.d.ts +1 -1
  63. package/types/acorex-platform-themes-default.d.ts +173 -70
  64. package/types/acorex-platform-workflow.d.ts +5 -18
  65. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +0 -1
  66. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +0 -116
  67. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +0 -1
  68. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map +0 -1
  69. package/fesm2022/acorex-platform-native.mjs +0 -155
  70. package/fesm2022/acorex-platform-native.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +0 -1
  72. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +0 -1
  73. package/native/README.md +0 -4
  74. package/types/acorex-platform-native.d.ts +0 -28
@@ -2,8 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, Injectable, Directive, computed, Injector, ChangeDetectionStrategy, Component, input, ElementRef, ViewContainerRef, signal, effect, runInInjectionContext, Optional, Inject, NgModule, EventEmitter, HostListener, Output, provideAppInitializer, Pipe } from '@angular/core';
3
3
  import { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';
4
4
  import { AXDataSource } from '@acorex/cdk/common';
5
+ import { AXPPlatformCoreDataSourceKeys, AXPSystemActionType } from '@acorex/platform/contracts';
5
6
  import { isPlainObject, get, set, isNil, isEmpty, isArray, merge, isObjectLike, transform, isEqual, differenceWith, union, cloneDeep, has, sortBy, isUndefined, endsWith, startsWith, includes, lte, gte, lt, gt, orderBy } from 'lodash-es';
6
7
  import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
8
+ import { AXFormatService } from '@acorex/core/format';
7
9
  import * as i1 from '@acorex/components/skeleton';
8
10
  import { AXSkeletonModule } from '@acorex/components/skeleton';
9
11
  import { Subject, interval, fromEvent } from 'rxjs';
@@ -13,17 +15,6 @@ import { AXLocaleService } from '@acorex/core/locale';
13
15
  import { AXCalendarService } from '@acorex/core/date-time';
14
16
  import { startWith, map, debounceTime } from 'rxjs/operators';
15
17
 
16
- //#region ---- Datasource keys ----
17
- /** Platform core datasource registry names. */
18
- const AXPPlatformCoreDataSourceKeys = {
19
- ModuleManifests: 'platform-module-manifests',
20
- CatalogScopes: 'platform-catalog-scopes',
21
- };
22
- //#endregion
23
-
24
- //#region ---- Contracts barrel ----
25
- //#endregion
26
-
27
18
  const AXP_ACTIVITY_LOG_PROVIDER = new InjectionToken('AXP_ACTIVITY_LOGS_PROVIDER');
28
19
  class AXPActivityLogService {
29
20
  constructor() {
@@ -1486,6 +1477,98 @@ const AXPContextStore = signalStore(withState(() => ({
1486
1477
  }));
1487
1478
  //#endregion
1488
1479
 
1480
+ //#region ---- Imports ----
1481
+ //#endregion
1482
+ //#region ---- Pipe normalization ----
1483
+ /** Normalizes shorthand pipe names to `{ type, options? }` specs. */
1484
+ function normalizeContextEvalPipes(pipes) {
1485
+ return pipes.map((pipe) => (typeof pipe === 'string' ? { type: pipe } : pipe));
1486
+ }
1487
+ //#endregion
1488
+ //#region ---- Pipe application ----
1489
+ /**
1490
+ * Applies a left-to-right formatter pipeline via {@link AXFormatService}.
1491
+ * Unknown formatters fall back to a trimmed string representation.
1492
+ */
1493
+ function applyContextEvalPipes(value, pipes, formatService) {
1494
+ if (!pipes?.length) {
1495
+ return value;
1496
+ }
1497
+ let current = value;
1498
+ for (const pipe of normalizeContextEvalPipes(pipes)) {
1499
+ try {
1500
+ current = formatService.format(current, pipe.type, pipe.options);
1501
+ }
1502
+ catch {
1503
+ current = current == null ? '' : String(current);
1504
+ }
1505
+ }
1506
+ return current;
1507
+ }
1508
+ /** Reads a nested path from data and optionally applies display pipes. */
1509
+ function contextEvalWithPipes(data, path, formatService, pipes) {
1510
+ return applyContextEvalPipes(get(data, path), pipes, formatService);
1511
+ }
1512
+ //#endregion
1513
+
1514
+ //#region ---- Imports ----
1515
+ //#endregion
1516
+ /**
1517
+ * Builds sync `context.eval(path, { pipes })` functions backed by {@link AXFormatService}.
1518
+ * Supports built-in and custom formatters registered on {@link AXFormatModule}.
1519
+ */
1520
+ class AXPContextEvalFactory {
1521
+ constructor() {
1522
+ //#region ---- Services & Dependencies ----
1523
+ this.formatService = inject(AXFormatService);
1524
+ }
1525
+ //#endregion
1526
+ //#region ---- Factory ----
1527
+ /** Creates a sync eval function for the given record/context data object. */
1528
+ create(data) {
1529
+ return (path, options) => {
1530
+ const raw = get(data, path);
1531
+ return applyContextEvalPipes(raw, options?.pipes, this.formatService);
1532
+ };
1533
+ }
1534
+ /** Creates `{ eval }` scope object for expression evaluator scopes. */
1535
+ createScope(data) {
1536
+ return { eval: this.create(data) };
1537
+ }
1538
+ /**
1539
+ * Display-tier scope that re-reads data on each eval (for live stores / changing row context).
1540
+ */
1541
+ createLiveScope(getData) {
1542
+ return {
1543
+ eval: (path, options) => this.create(getData())(path, options),
1544
+ };
1545
+ }
1546
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPContextEvalFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1547
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPContextEvalFactory, providedIn: 'root' }); }
1548
+ }
1549
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPContextEvalFactory, decorators: [{
1550
+ type: Injectable,
1551
+ args: [{ providedIn: 'root' }]
1552
+ }] });
1553
+
1554
+ //#region ---- Types ----
1555
+ //#endregion
1556
+
1557
+ //#region ---- Template normalization ----
1558
+ /**
1559
+ * Normalizes display templates before {@link AXPExpressionEvaluatorService} evaluation.
1560
+ * Converts simple dot paths (e.g. `{{ position.title }}`) to `context.eval("position.title")`
1561
+ * so row data is read from scope.context instead of bare JavaScript identifiers.
1562
+ */
1563
+ function normalizeExpressionTemplate(template) {
1564
+ let normalized = template.replace(/\{\{\s*context\.eval\(['"]([^'"]+)['"]\)\s*\}\}/g, '{{ context.eval("$1") }}');
1565
+ if (!normalized.includes('{{')) {
1566
+ normalized = normalized.replace(/\{/g, '{{').replace(/\}/g, '}}');
1567
+ }
1568
+ return normalized.replace(/\{\{\s*(?!context\.)([\w]+(?:\.[\w]+)*)\s*\}\}/g, '{{ context.eval("$1") }}');
1569
+ }
1570
+ //#endregion
1571
+
1489
1572
  class AXPExpressionEvaluatorScopeProviderContext {
1490
1573
  constructor() {
1491
1574
  this.scopes = {};
@@ -1595,8 +1678,9 @@ class AXPExpressionEvaluatorService {
1595
1678
  }
1596
1679
  }
1597
1680
  async evaluateStringExpression(templateExpression, scope) {
1681
+ const normalizedTemplate = normalizeExpressionTemplate(templateExpression);
1598
1682
  // Check if the input is exactly a single {{ ... }} expression (handle multiline)
1599
- const exactMatch = templateExpression.match(/^\s*\{\{\s*([\s\S]*?)\s*\}\}\s*$/);
1683
+ const exactMatch = normalizedTemplate.match(/^\s*\{\{\s*([\s\S]*?)\s*\}\}\s*$/);
1600
1684
  if (exactMatch) {
1601
1685
  const expression = exactMatch[1];
1602
1686
  const sandbox = this.getOrCompileFunction(expression);
@@ -1608,7 +1692,7 @@ class AXPExpressionEvaluatorService {
1608
1692
  // Collect all matches and their positions
1609
1693
  const matches = [];
1610
1694
  let match;
1611
- while ((match = regex.exec(templateExpression)) !== null) {
1695
+ while ((match = regex.exec(normalizedTemplate)) !== null) {
1612
1696
  matches.push({
1613
1697
  expression: match[1],
1614
1698
  start: match.index,
@@ -1625,12 +1709,12 @@ class AXPExpressionEvaluatorService {
1625
1709
  let result = '';
1626
1710
  let lastIndex = 0;
1627
1711
  matches.forEach((m, i) => {
1628
- result += templateExpression.slice(lastIndex, m.start);
1712
+ result += normalizedTemplate.slice(lastIndex, m.start);
1629
1713
  const value = values[i];
1630
1714
  result += value !== undefined && value !== null ? value : '';
1631
1715
  lastIndex = m.end;
1632
1716
  });
1633
- result += templateExpression.slice(lastIndex);
1717
+ result += normalizedTemplate.slice(lastIndex);
1634
1718
  return result;
1635
1719
  }
1636
1720
  isExpression(expression) {
@@ -3813,6 +3897,115 @@ function searchInMultiLanguageString(value, query, locale) {
3813
3897
  }
3814
3898
  //#endregion
3815
3899
 
3900
+ //#region ---- Imports ----
3901
+ //#endregion
3902
+ //#region ---- Constants ----
3903
+ const DEFAULT_IDLE_TIMEOUT_MS = 2_000;
3904
+ const DEFAULT_MIN_IDLE_MS = 16;
3905
+ //#endregion
3906
+ //#region ---- Service ----
3907
+ /**
3908
+ * Schedules low-priority work during browser idle periods.
3909
+ * Pauses when the tab is hidden or when explicitly paused (e.g. user-initiated seeding).
3910
+ */
3911
+ class AXPIdleSchedulerService {
3912
+ constructor() {
3913
+ //#region ---- State ----
3914
+ this.pausedState = signal(false, ...(ngDevMode ? [{ debugName: "pausedState" }] : /* istanbul ignore next */ []));
3915
+ this.paused = this.pausedState.asReadonly();
3916
+ this.queue = [];
3917
+ this.running = false;
3918
+ }
3919
+ //#endregion
3920
+ //#region ---- Public API ----
3921
+ pause() {
3922
+ this.pausedState.set(true);
3923
+ }
3924
+ resume() {
3925
+ this.pausedState.set(false);
3926
+ void this.drainQueue();
3927
+ }
3928
+ /**
3929
+ * Resolves after the browser reports idle time, or after timeoutMs (whichever comes first).
3930
+ */
3931
+ waitForIdle(options) {
3932
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_IDLE_TIMEOUT_MS;
3933
+ const minIdleMs = options?.minIdleMs ?? DEFAULT_MIN_IDLE_MS;
3934
+ if (this.pausedState() || typeof document !== 'undefined' && document.visibilityState === 'hidden') {
3935
+ return this.delay(timeoutMs);
3936
+ }
3937
+ return new Promise((resolve) => {
3938
+ let settled = false;
3939
+ const finish = () => {
3940
+ if (settled)
3941
+ return;
3942
+ settled = true;
3943
+ resolve();
3944
+ };
3945
+ const timeoutId = setTimeout(finish, timeoutMs);
3946
+ if (typeof requestIdleCallback === 'function') {
3947
+ requestIdleCallback(() => {
3948
+ clearTimeout(timeoutId);
3949
+ finish();
3950
+ }, { timeout: timeoutMs });
3951
+ }
3952
+ else {
3953
+ clearTimeout(timeoutId);
3954
+ setTimeout(finish, minIdleMs);
3955
+ }
3956
+ });
3957
+ }
3958
+ /** Enqueues async work processed sequentially during idle slices. */
3959
+ enqueue(task, options) {
3960
+ if (options?.key) {
3961
+ this.queue = this.queue.filter((item) => item.key !== options.key);
3962
+ }
3963
+ this.queue.push({ key: options?.key, task });
3964
+ void this.drainQueue();
3965
+ }
3966
+ //#endregion
3967
+ //#region ---- Private ----
3968
+ async drainQueue() {
3969
+ if (this.running || this.pausedState()) {
3970
+ return;
3971
+ }
3972
+ this.running = true;
3973
+ try {
3974
+ while (this.queue.length > 0 && !this.pausedState()) {
3975
+ const next = this.queue.shift();
3976
+ if (!next)
3977
+ break;
3978
+ await this.waitForIdle();
3979
+ try {
3980
+ await next.task();
3981
+ }
3982
+ catch (err) {
3983
+ const message = err instanceof Error ? err.message : String(err);
3984
+ console.error('[AXPIdleScheduler] Task failed:', message);
3985
+ }
3986
+ }
3987
+ }
3988
+ finally {
3989
+ this.running = false;
3990
+ if (this.queue.length > 0 && !this.pausedState()) {
3991
+ void this.drainQueue();
3992
+ }
3993
+ }
3994
+ }
3995
+ delay(ms) {
3996
+ return new Promise((resolve) => setTimeout(resolve, ms));
3997
+ }
3998
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIdleSchedulerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3999
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIdleSchedulerService, providedIn: 'root' }); }
4000
+ }
4001
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIdleSchedulerService, decorators: [{
4002
+ type: Injectable,
4003
+ args: [{ providedIn: 'root' }]
4004
+ }] });
4005
+
4006
+ //#region ---- Idle scheduler types ----
4007
+ //#endregion
4008
+
3816
4009
  //#region ---- Tag Types ----
3817
4010
  //#endregion
3818
4011
 
@@ -4066,67 +4259,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
4066
4259
  * - Review = 'review' - Review content
4067
4260
  * - Recommend = 'recommend' - Recommend content
4068
4261
  */
4069
- var AXPSystemActionType;
4070
- (function (AXPSystemActionType) {
4071
- AXPSystemActionType["View"] = "view";
4072
- AXPSystemActionType["Create"] = "create";
4073
- AXPSystemActionType["Update"] = "update";
4074
- AXPSystemActionType["Delete"] = "delete";
4075
- AXPSystemActionType["Approve"] = "approve";
4076
- AXPSystemActionType["Reject"] = "reject";
4077
- AXPSystemActionType["Submit"] = "submit";
4078
- AXPSystemActionType["Export"] = "export";
4079
- AXPSystemActionType["Import"] = "import";
4080
- AXPSystemActionType["Print"] = "print";
4081
- AXPSystemActionType["Assign"] = "assign";
4082
- AXPSystemActionType["Lock"] = "lock";
4083
- AXPSystemActionType["Unlock"] = "unlock";
4084
- AXPSystemActionType["Share"] = "share";
4085
- AXPSystemActionType["Configure"] = "configure";
4086
- AXPSystemActionType["Reorder"] = "reorder";
4087
- AXPSystemActionType["Preview"] = "preview";
4088
- AXPSystemActionType["Duplicate"] = "duplicate";
4089
- AXPSystemActionType["Archive"] = "archive";
4090
- AXPSystemActionType["Publish"] = "publish";
4091
- AXPSystemActionType["Unpublish"] = "unpublish";
4092
- AXPSystemActionType["Upload"] = "upload";
4093
- AXPSystemActionType["Download"] = "download";
4094
- AXPSystemActionType["Copy"] = "copy";
4095
- AXPSystemActionType["Move"] = "move";
4096
- AXPSystemActionType["Rename"] = "rename";
4097
- AXPSystemActionType["Restore"] = "restore";
4098
- AXPSystemActionType["Manage"] = "manage";
4099
- AXPSystemActionType["Info"] = "info";
4100
- AXPSystemActionType["Confirm"] = "confirm";
4101
- AXPSystemActionType["Design"] = "design";
4102
- AXPSystemActionType["VersionHistory"] = "version-history";
4103
- AXPSystemActionType["Compare"] = "compare";
4104
- AXPSystemActionType["Comments"] = "comments";
4105
- AXPSystemActionType["Sign"] = "sign";
4106
- AXPSystemActionType["Setup"] = "setup";
4107
- AXPSystemActionType["Send"] = "send";
4108
- AXPSystemActionType["Report"] = "report";
4109
- AXPSystemActionType["Sent"] = "sent";
4110
- AXPSystemActionType["Review"] = "review";
4111
- AXPSystemActionType["Generate"] = "generate";
4112
- AXPSystemActionType["Refresh"] = "refresh";
4113
- AXPSystemActionType["Reload"] = "reload";
4114
- AXPSystemActionType["Search"] = "search";
4115
- AXPSystemActionType["Filter"] = "filter";
4116
- AXPSystemActionType["Sort"] = "sort";
4117
- AXPSystemActionType["Start"] = "start";
4118
- AXPSystemActionType["Stop"] = "stop";
4119
- AXPSystemActionType["Pause"] = "pause";
4120
- AXPSystemActionType["Cancel"] = "cancel";
4121
- AXPSystemActionType["Close"] = "close";
4122
- AXPSystemActionType["Complete"] = "complete";
4123
- AXPSystemActionType["Save"] = "save";
4124
- AXPSystemActionType["SaveAs"] = "save-as";
4125
- AXPSystemActionType["Sync"] = "sync";
4126
- AXPSystemActionType["Reset"] = "reset";
4127
- AXPSystemActionType["Clear"] = "clear";
4128
- AXPSystemActionType["Distribution"] = "distribution";
4129
- })(AXPSystemActionType || (AXPSystemActionType = {}));
4130
4262
  const i18n = (key) => `@general:actions.${key}`;
4131
4263
  const AXPSystemActions = Object.freeze({
4132
4264
  View: {
@@ -4886,27 +5018,7 @@ function getActionButton(actionType) {
4886
5018
  };
4887
5019
  }
4888
5020
 
4889
- function getNestedKeys(obj, prefix = '') {
4890
- let keys = [];
4891
- for (const key in obj) {
4892
- if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {
4893
- keys = [...keys, ...getNestedKeys(obj[key], prefix + key + '.')];
4894
- }
4895
- else {
4896
- keys.push(prefix + key);
4897
- }
4898
- }
4899
- return keys;
4900
- }
4901
- /** Normalizes definition categories to an array for iteration and serialization. */
4902
- function normalizeDefinitionCategories(categories) {
4903
- if (categories == null) {
4904
- return [];
4905
- }
4906
- return Array.isArray(categories) ? categories : [categories];
4907
- }
4908
-
4909
- //#region ---- Imports ----
5021
+ //#region ---- Core-only data types (CDK-coupled) ----
4910
5022
  //#endregion
4911
5023
 
4912
5024
  function applySystemActionDefault(action, type) {
@@ -4939,39 +5051,6 @@ class AXPIconLogoConfig {
4939
5051
  }
4940
5052
  }
4941
5053
 
4942
- var AXPPlatformScope;
4943
- (function (AXPPlatformScope) {
4944
- AXPPlatformScope["Platform"] = "P";
4945
- AXPPlatformScope["Tenant"] = "T";
4946
- AXPPlatformScope["User"] = "U";
4947
- })(AXPPlatformScope || (AXPPlatformScope = {}));
4948
- ;
4949
- function resolvePlatformScopeKey(name) {
4950
- const scopeMap = {
4951
- platform: AXPPlatformScope.Platform,
4952
- tenant: AXPPlatformScope.Tenant,
4953
- user: AXPPlatformScope.User,
4954
- };
4955
- return scopeMap[name.toLowerCase()] ?? AXPPlatformScope.User;
4956
- }
4957
- function resolvePlatformScopeName(scope) {
4958
- const scopeMap = {
4959
- P: 'platform',
4960
- T: 'tenant',
4961
- U: 'user',
4962
- };
4963
- return scopeMap[scope] ?? 'user';
4964
- }
4965
-
4966
- var AXPExportTemplateToken;
4967
- (function (AXPExportTemplateToken) {
4968
- AXPExportTemplateToken["Date"] = "{date}";
4969
- AXPExportTemplateToken["Time"] = "{time}";
4970
- AXPExportTemplateToken["User"] = "{user}";
4971
- AXPExportTemplateToken["ReportTitle"] = "{title}";
4972
- AXPExportTemplateToken["UUID"] = "{uuid}";
4973
- })(AXPExportTemplateToken || (AXPExportTemplateToken = {}));
4974
-
4975
5054
  class AXPCountdownPipe {
4976
5055
  constructor() {
4977
5056
  this.calendarService = inject(AXCalendarService);
@@ -5742,5 +5821,5 @@ function generateKebabCase(title) {
5742
5821
  * Generated bundle index. Do not edit.
5743
5822
  */
5744
5823
 
5745
- export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPCatalogScopeDefinitionProviderService, AXPCatalogScopeDefinitionsDataSourceDefinition, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextDefinitionProviderService, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPImageUrlLogoConfig, AXPKeyboardShortcutPriority, AXPKeyboardShortcutRegistry, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPModuleManifestsDataSourceDefinition, AXPPlatformCoreDataSourceKeys, AXPPlatformScope, AXPScreenSize, AXPSystemActionType, AXPSystemActions, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_CATALOG_SCOPE_DEFINITION_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_CONTEXT_DEFINITION_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_SESSION_SERVICE, AXP_TAG_PROVIDER, AX_OVERLAY_CONTAINER_SELECTOR, AX_OVERLAY_PANE_SELECTOR, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, buildLocaleTextMapValue, captureFormContextBaseline, chordToKbdItemKeys, cleanDeep, coerceUnknownToBoolean, coerceUnknownToDate, coerceUnknownToFiniteNumber, coerceUnknownToTrimmedString, compareMultiLanguageStrings, containsHtmlMarkup, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, findOverlayContainerAncestor, formatKeyboardShortcutChord, formatKeyboardShortcutChords, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getNestedVisibleOverlayPanes, getPrimaryKeyboardShortcutChord, getSmart, getSystemActions, getTopVisibleOverlayContainer, getVisibleAnchoredOverlayPanes, getVisibleOverlayContainers, hasForegroundOverlayLayer, isFormContextDirty, isFormValueEqual, isHorizontalDirectionalShortcutKey, isKeyboardTargetInsideEditableField, isLocaleStringMap, isMacPlatform, isSelectionValueEqual, isVisibleOverlayElement, matchesKeyboardShortcutChord, mirrorHorizontalDirectionalKey, normalizeDefinitionCategories, normalizeKeyboardShortcut, normalizeKeyboardShortcuts, objectKeyValueTransforms, parseKeyboardShortcutChord, provideLazyProvider, resolveActionLook, resolveDisplayShortcutChord, resolveEffectiveDirectionBehavior, resolvePlatformScopeKey, resolvePlatformScopeName, resolveSemanticDirectionalKey, searchInMultiLanguageString, setSmart, shouldDeferEscapeToOpenOverlay, shouldUseLocaleMapShape, sortByMultiLanguageString, unwrapValueProperty };
5824
+ export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPCatalogScopeDefinitionProviderService, AXPCatalogScopeDefinitionsDataSourceDefinition, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextDefinitionProviderService, AXPContextEvalFactory, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPIdleSchedulerService, AXPImageUrlLogoConfig, AXPKeyboardShortcutPriority, AXPKeyboardShortcutRegistry, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPModuleManifestsDataSourceDefinition, AXPScreenSize, AXPSystemActions, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_CATALOG_SCOPE_DEFINITION_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_CONTEXT_DEFINITION_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_SESSION_SERVICE, AXP_TAG_PROVIDER, AX_OVERLAY_CONTAINER_SELECTOR, AX_OVERLAY_PANE_SELECTOR, applyContextEvalPipes, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, buildLocaleTextMapValue, captureFormContextBaseline, chordToKbdItemKeys, cleanDeep, coerceUnknownToBoolean, coerceUnknownToDate, coerceUnknownToFiniteNumber, coerceUnknownToTrimmedString, compareMultiLanguageStrings, containsHtmlMarkup, contextEvalWithPipes, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, findOverlayContainerAncestor, formatKeyboardShortcutChord, formatKeyboardShortcutChords, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedVisibleOverlayPanes, getPrimaryKeyboardShortcutChord, getSmart, getSystemActions, getTopVisibleOverlayContainer, getVisibleAnchoredOverlayPanes, getVisibleOverlayContainers, hasForegroundOverlayLayer, isFormContextDirty, isFormValueEqual, isHorizontalDirectionalShortcutKey, isKeyboardTargetInsideEditableField, isLocaleStringMap, isMacPlatform, isSelectionValueEqual, isVisibleOverlayElement, matchesKeyboardShortcutChord, mirrorHorizontalDirectionalKey, normalizeContextEvalPipes, normalizeExpressionTemplate, normalizeKeyboardShortcut, normalizeKeyboardShortcuts, objectKeyValueTransforms, parseKeyboardShortcutChord, provideLazyProvider, resolveActionLook, resolveDisplayShortcutChord, resolveEffectiveDirectionBehavior, resolveSemanticDirectionalKey, searchInMultiLanguageString, setSmart, shouldDeferEscapeToOpenOverlay, shouldUseLocaleMapShape, sortByMultiLanguageString, unwrapValueProperty };
5746
5825
  //# sourceMappingURL=acorex-platform-core.mjs.map