@acorex/platform 21.0.0-next.75 → 21.0.0-next.76

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 (40) hide show
  1. package/fesm2022/{acorex-platform-common-common-settings.provider-Ytey9uhY.mjs → acorex-platform-common-common-settings.provider-ChoT4m4k.mjs} +42 -1
  2. package/fesm2022/acorex-platform-common-common-settings.provider-ChoT4m4k.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-common.mjs +1471 -606
  4. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-contracts.mjs +1330 -1
  6. package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +208 -5
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-layout-entity.mjs +595 -439
  11. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-views.mjs +372 -171
  13. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-widget-core.mjs +3 -103
  15. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs +513 -0
  17. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs.map +1 -0
  18. package/fesm2022/acorex-platform-layout-widgets.mjs +11 -6
  19. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  20. 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
  21. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +1 -0
  22. package/fesm2022/acorex-platform-themes-default.mjs +643 -52
  23. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-workflow.mjs +5 -8
  25. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  26. package/package.json +1 -1
  27. package/types/acorex-platform-common.d.ts +337 -1056
  28. package/types/acorex-platform-contracts.d.ts +1679 -4
  29. package/types/acorex-platform-core.d.ts +92 -181
  30. package/types/acorex-platform-layout-components.d.ts +2 -1
  31. package/types/acorex-platform-layout-entity.d.ts +68 -176
  32. package/types/acorex-platform-layout-views.d.ts +39 -5
  33. package/types/acorex-platform-layout-widget-core.d.ts +2 -3
  34. package/types/acorex-platform-layout-widgets.d.ts +11 -4
  35. package/types/acorex-platform-themes-default.d.ts +120 -57
  36. package/types/acorex-platform-workflow.d.ts +5 -18
  37. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +0 -1
  38. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +0 -116
  39. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +0 -1
  40. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +0 -1
@@ -4,6 +4,7 @@ import { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/t
4
4
  import { AXDataSource } from '@acorex/cdk/common';
5
5
  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
6
  import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
7
+ import { AXFormatService } from '@acorex/core/format';
7
8
  import * as i1 from '@acorex/components/skeleton';
8
9
  import { AXSkeletonModule } from '@acorex/components/skeleton';
9
10
  import { Subject, interval, fromEvent } from 'rxjs';
@@ -1486,6 +1487,98 @@ const AXPContextStore = signalStore(withState(() => ({
1486
1487
  }));
1487
1488
  //#endregion
1488
1489
 
1490
+ //#region ---- Imports ----
1491
+ //#endregion
1492
+ //#region ---- Pipe normalization ----
1493
+ /** Normalizes shorthand pipe names to `{ type, options? }` specs. */
1494
+ function normalizeContextEvalPipes(pipes) {
1495
+ return pipes.map((pipe) => (typeof pipe === 'string' ? { type: pipe } : pipe));
1496
+ }
1497
+ //#endregion
1498
+ //#region ---- Pipe application ----
1499
+ /**
1500
+ * Applies a left-to-right formatter pipeline via {@link AXFormatService}.
1501
+ * Unknown formatters fall back to a trimmed string representation.
1502
+ */
1503
+ function applyContextEvalPipes(value, pipes, formatService) {
1504
+ if (!pipes?.length) {
1505
+ return value;
1506
+ }
1507
+ let current = value;
1508
+ for (const pipe of normalizeContextEvalPipes(pipes)) {
1509
+ try {
1510
+ current = formatService.format(current, pipe.type, pipe.options);
1511
+ }
1512
+ catch {
1513
+ current = current == null ? '' : String(current);
1514
+ }
1515
+ }
1516
+ return current;
1517
+ }
1518
+ /** Reads a nested path from data and optionally applies display pipes. */
1519
+ function contextEvalWithPipes(data, path, formatService, pipes) {
1520
+ return applyContextEvalPipes(get(data, path), pipes, formatService);
1521
+ }
1522
+ //#endregion
1523
+
1524
+ //#region ---- Imports ----
1525
+ //#endregion
1526
+ /**
1527
+ * Builds sync `context.eval(path, { pipes })` functions backed by {@link AXFormatService}.
1528
+ * Supports built-in and custom formatters registered on {@link AXFormatModule}.
1529
+ */
1530
+ class AXPContextEvalFactory {
1531
+ constructor() {
1532
+ //#region ---- Services & Dependencies ----
1533
+ this.formatService = inject(AXFormatService);
1534
+ }
1535
+ //#endregion
1536
+ //#region ---- Factory ----
1537
+ /** Creates a sync eval function for the given record/context data object. */
1538
+ create(data) {
1539
+ return (path, options) => {
1540
+ const raw = get(data, path);
1541
+ return applyContextEvalPipes(raw, options?.pipes, this.formatService);
1542
+ };
1543
+ }
1544
+ /** Creates `{ eval }` scope object for expression evaluator scopes. */
1545
+ createScope(data) {
1546
+ return { eval: this.create(data) };
1547
+ }
1548
+ /**
1549
+ * Display-tier scope that re-reads data on each eval (for live stores / changing row context).
1550
+ */
1551
+ createLiveScope(getData) {
1552
+ return {
1553
+ eval: (path, options) => this.create(getData())(path, options),
1554
+ };
1555
+ }
1556
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPContextEvalFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1557
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPContextEvalFactory, providedIn: 'root' }); }
1558
+ }
1559
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPContextEvalFactory, decorators: [{
1560
+ type: Injectable,
1561
+ args: [{ providedIn: 'root' }]
1562
+ }] });
1563
+
1564
+ //#region ---- Types ----
1565
+ //#endregion
1566
+
1567
+ //#region ---- Template normalization ----
1568
+ /**
1569
+ * Normalizes display templates before {@link AXPExpressionEvaluatorService} evaluation.
1570
+ * Converts simple dot paths (e.g. `{{ position.title }}`) to `context.eval("position.title")`
1571
+ * so row data is read from scope.context instead of bare JavaScript identifiers.
1572
+ */
1573
+ function normalizeExpressionTemplate(template) {
1574
+ let normalized = template.replace(/\{\{\s*context\.eval\(['"]([^'"]+)['"]\)\s*\}\}/g, '{{ context.eval("$1") }}');
1575
+ if (!normalized.includes('{{')) {
1576
+ normalized = normalized.replace(/\{/g, '{{').replace(/\}/g, '}}');
1577
+ }
1578
+ return normalized.replace(/\{\{\s*(?!context\.)([\w]+(?:\.[\w]+)*)\s*\}\}/g, '{{ context.eval("$1") }}');
1579
+ }
1580
+ //#endregion
1581
+
1489
1582
  class AXPExpressionEvaluatorScopeProviderContext {
1490
1583
  constructor() {
1491
1584
  this.scopes = {};
@@ -1595,8 +1688,9 @@ class AXPExpressionEvaluatorService {
1595
1688
  }
1596
1689
  }
1597
1690
  async evaluateStringExpression(templateExpression, scope) {
1691
+ const normalizedTemplate = normalizeExpressionTemplate(templateExpression);
1598
1692
  // Check if the input is exactly a single {{ ... }} expression (handle multiline)
1599
- const exactMatch = templateExpression.match(/^\s*\{\{\s*([\s\S]*?)\s*\}\}\s*$/);
1693
+ const exactMatch = normalizedTemplate.match(/^\s*\{\{\s*([\s\S]*?)\s*\}\}\s*$/);
1600
1694
  if (exactMatch) {
1601
1695
  const expression = exactMatch[1];
1602
1696
  const sandbox = this.getOrCompileFunction(expression);
@@ -1608,7 +1702,7 @@ class AXPExpressionEvaluatorService {
1608
1702
  // Collect all matches and their positions
1609
1703
  const matches = [];
1610
1704
  let match;
1611
- while ((match = regex.exec(templateExpression)) !== null) {
1705
+ while ((match = regex.exec(normalizedTemplate)) !== null) {
1612
1706
  matches.push({
1613
1707
  expression: match[1],
1614
1708
  start: match.index,
@@ -1625,12 +1719,12 @@ class AXPExpressionEvaluatorService {
1625
1719
  let result = '';
1626
1720
  let lastIndex = 0;
1627
1721
  matches.forEach((m, i) => {
1628
- result += templateExpression.slice(lastIndex, m.start);
1722
+ result += normalizedTemplate.slice(lastIndex, m.start);
1629
1723
  const value = values[i];
1630
1724
  result += value !== undefined && value !== null ? value : '';
1631
1725
  lastIndex = m.end;
1632
1726
  });
1633
- result += templateExpression.slice(lastIndex);
1727
+ result += normalizedTemplate.slice(lastIndex);
1634
1728
  return result;
1635
1729
  }
1636
1730
  isExpression(expression) {
@@ -3813,6 +3907,115 @@ function searchInMultiLanguageString(value, query, locale) {
3813
3907
  }
3814
3908
  //#endregion
3815
3909
 
3910
+ //#region ---- Imports ----
3911
+ //#endregion
3912
+ //#region ---- Constants ----
3913
+ const DEFAULT_IDLE_TIMEOUT_MS = 2_000;
3914
+ const DEFAULT_MIN_IDLE_MS = 16;
3915
+ //#endregion
3916
+ //#region ---- Service ----
3917
+ /**
3918
+ * Schedules low-priority work during browser idle periods.
3919
+ * Pauses when the tab is hidden or when explicitly paused (e.g. user-initiated seeding).
3920
+ */
3921
+ class AXPIdleSchedulerService {
3922
+ constructor() {
3923
+ //#region ---- State ----
3924
+ this.pausedState = signal(false, ...(ngDevMode ? [{ debugName: "pausedState" }] : /* istanbul ignore next */ []));
3925
+ this.paused = this.pausedState.asReadonly();
3926
+ this.queue = [];
3927
+ this.running = false;
3928
+ }
3929
+ //#endregion
3930
+ //#region ---- Public API ----
3931
+ pause() {
3932
+ this.pausedState.set(true);
3933
+ }
3934
+ resume() {
3935
+ this.pausedState.set(false);
3936
+ void this.drainQueue();
3937
+ }
3938
+ /**
3939
+ * Resolves after the browser reports idle time, or after timeoutMs (whichever comes first).
3940
+ */
3941
+ waitForIdle(options) {
3942
+ const timeoutMs = options?.timeoutMs ?? DEFAULT_IDLE_TIMEOUT_MS;
3943
+ const minIdleMs = options?.minIdleMs ?? DEFAULT_MIN_IDLE_MS;
3944
+ if (this.pausedState() || typeof document !== 'undefined' && document.visibilityState === 'hidden') {
3945
+ return this.delay(timeoutMs);
3946
+ }
3947
+ return new Promise((resolve) => {
3948
+ let settled = false;
3949
+ const finish = () => {
3950
+ if (settled)
3951
+ return;
3952
+ settled = true;
3953
+ resolve();
3954
+ };
3955
+ const timeoutId = setTimeout(finish, timeoutMs);
3956
+ if (typeof requestIdleCallback === 'function') {
3957
+ requestIdleCallback(() => {
3958
+ clearTimeout(timeoutId);
3959
+ finish();
3960
+ }, { timeout: timeoutMs });
3961
+ }
3962
+ else {
3963
+ clearTimeout(timeoutId);
3964
+ setTimeout(finish, minIdleMs);
3965
+ }
3966
+ });
3967
+ }
3968
+ /** Enqueues async work processed sequentially during idle slices. */
3969
+ enqueue(task, options) {
3970
+ if (options?.key) {
3971
+ this.queue = this.queue.filter((item) => item.key !== options.key);
3972
+ }
3973
+ this.queue.push({ key: options?.key, task });
3974
+ void this.drainQueue();
3975
+ }
3976
+ //#endregion
3977
+ //#region ---- Private ----
3978
+ async drainQueue() {
3979
+ if (this.running || this.pausedState()) {
3980
+ return;
3981
+ }
3982
+ this.running = true;
3983
+ try {
3984
+ while (this.queue.length > 0 && !this.pausedState()) {
3985
+ const next = this.queue.shift();
3986
+ if (!next)
3987
+ break;
3988
+ await this.waitForIdle();
3989
+ try {
3990
+ await next.task();
3991
+ }
3992
+ catch (err) {
3993
+ const message = err instanceof Error ? err.message : String(err);
3994
+ console.error('[AXPIdleScheduler] Task failed:', message);
3995
+ }
3996
+ }
3997
+ }
3998
+ finally {
3999
+ this.running = false;
4000
+ if (this.queue.length > 0 && !this.pausedState()) {
4001
+ void this.drainQueue();
4002
+ }
4003
+ }
4004
+ }
4005
+ delay(ms) {
4006
+ return new Promise((resolve) => setTimeout(resolve, ms));
4007
+ }
4008
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIdleSchedulerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4009
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIdleSchedulerService, providedIn: 'root' }); }
4010
+ }
4011
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPIdleSchedulerService, decorators: [{
4012
+ type: Injectable,
4013
+ args: [{ providedIn: 'root' }]
4014
+ }] });
4015
+
4016
+ //#region ---- Idle scheduler types ----
4017
+ //#endregion
4018
+
3816
4019
  //#region ---- Tag Types ----
3817
4020
  //#endregion
3818
4021
 
@@ -5742,5 +5945,5 @@ function generateKebabCase(title) {
5742
5945
  * Generated bundle index. Do not edit.
5743
5946
  */
5744
5947
 
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 };
5948
+ 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, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPIdleSchedulerService, 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, 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, getNestedKeys, getNestedVisibleOverlayPanes, getPrimaryKeyboardShortcutChord, getSmart, getSystemActions, getTopVisibleOverlayContainer, getVisibleAnchoredOverlayPanes, getVisibleOverlayContainers, hasForegroundOverlayLayer, isFormContextDirty, isFormValueEqual, isHorizontalDirectionalShortcutKey, isKeyboardTargetInsideEditableField, isLocaleStringMap, isMacPlatform, isSelectionValueEqual, isVisibleOverlayElement, matchesKeyboardShortcutChord, mirrorHorizontalDirectionalKey, normalizeContextEvalPipes, normalizeDefinitionCategories, normalizeExpressionTemplate, normalizeKeyboardShortcut, normalizeKeyboardShortcuts, objectKeyValueTransforms, parseKeyboardShortcutChord, provideLazyProvider, resolveActionLook, resolveDisplayShortcutChord, resolveEffectiveDirectionBehavior, resolvePlatformScopeKey, resolvePlatformScopeName, resolveSemanticDirectionalKey, searchInMultiLanguageString, setSmart, shouldDeferEscapeToOpenOverlay, shouldUseLocaleMapShape, sortByMultiLanguageString, unwrapValueProperty };
5746
5949
  //# sourceMappingURL=acorex-platform-core.mjs.map