@acorex/platform 20.9.6 → 20.9.9
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.
- package/fesm2022/acorex-platform-core.mjs +244 -4
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +308 -23
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +3 -3
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +82 -43
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +168 -80
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-core.d.ts +68 -2
- package/types/acorex-platform-layout-components.d.ts +56 -5
- package/types/acorex-platform-layout-entity-contracts.d.ts +1 -1
- package/types/acorex-platform-layout-entity.d.ts +1 -1
- package/types/acorex-platform-layout-widget-core.d.ts +11 -4
- package/types/acorex-platform-layout-widgets.d.ts +20 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
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, DestroyRef, untracked, provideAppInitializer, Pipe } from '@angular/core';
|
|
3
3
|
import { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';
|
|
4
|
-
import { AXDataSource } from '@acorex/cdk/common';
|
|
4
|
+
import { AXDataSource, convertArrayToDataSource } from '@acorex/cdk/common';
|
|
5
5
|
import { AXPPlatformCoreDataSourceKeys, isFormContextDirty, summarizeFormContextDirtyDiff, getSmart, isSelectionValueEqual, isFormValueEqual, setSmart, extractValue, AXPKeyboardShortcutPriority, getSystemActions, isLocaleStringMap } from '@acorex/platform/contracts';
|
|
6
|
-
import { cloneDeep, isEmpty, isEqual, has, unset, isPlainObject, get, sortBy, set,
|
|
6
|
+
import { cloneDeep, isEmpty, isEqual, has, unset, isPlainObject, get, sortBy, set, isNil, castArray, isString, isUndefined, endsWith, startsWith, includes, lte, gte, lt, gt, orderBy } from 'lodash-es';
|
|
7
7
|
import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
|
|
8
8
|
import { AXFormatService } from '@acorex/core/format';
|
|
9
9
|
import * as i1 from '@acorex/components/skeleton';
|
|
10
10
|
import { AXSkeletonModule } from '@acorex/components/skeleton';
|
|
11
|
-
import { Subject, interval, fromEvent } from 'rxjs';
|
|
11
|
+
import { filter, take, ReplaySubject, Subject, interval, fromEvent } from 'rxjs';
|
|
12
12
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
13
13
|
import { DOCUMENT } from '@angular/common';
|
|
14
14
|
import { AXLocaleService } from '@acorex/core/locale';
|
|
@@ -1881,6 +1881,246 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1881
1881
|
args: [{ providedIn: 'root' }]
|
|
1882
1882
|
}] });
|
|
1883
1883
|
|
|
1884
|
+
//#region ---- Imports ----
|
|
1885
|
+
//#endregion
|
|
1886
|
+
/**
|
|
1887
|
+
* Resolves registry-backed {@link AXDataSource} instances and exposes readiness (`isReady`, `whenReady`)
|
|
1888
|
+
* so widgets do not bind selected values before the provider datasource is available.
|
|
1889
|
+
*/
|
|
1890
|
+
class AXPDataSourceQueryService {
|
|
1891
|
+
constructor() {
|
|
1892
|
+
//#region ---- Services & State ----
|
|
1893
|
+
this.definitionService = inject(AXPDataSourceDefinitionProviderService);
|
|
1894
|
+
this.entries = new Map();
|
|
1895
|
+
}
|
|
1896
|
+
//#endregion
|
|
1897
|
+
//#region ---- Public API ----
|
|
1898
|
+
/**
|
|
1899
|
+
* Returns true when the named registry datasource has been resolved for the given options.
|
|
1900
|
+
*/
|
|
1901
|
+
isReady(name, options) {
|
|
1902
|
+
const entry = this.entries.get(this.buildCacheKey(name, options));
|
|
1903
|
+
return entry?.result?.ready === true && entry.result.dataSource != null;
|
|
1904
|
+
}
|
|
1905
|
+
/**
|
|
1906
|
+
* Emits once when the registry datasource is resolved (or fails) for the given options.
|
|
1907
|
+
*/
|
|
1908
|
+
whenReady(name, options) {
|
|
1909
|
+
return this.ensureLoading(name, options).readySubject.asObservable().pipe(filter((result) => result.ready), take(1));
|
|
1910
|
+
}
|
|
1911
|
+
/**
|
|
1912
|
+
* Resolves and returns the {@link AXDataSource} for a registry name, waiting for providers when needed.
|
|
1913
|
+
*/
|
|
1914
|
+
async getDataSource(name, options) {
|
|
1915
|
+
const result = await this.resolve(name, options);
|
|
1916
|
+
return result.dataSource;
|
|
1917
|
+
}
|
|
1918
|
+
/**
|
|
1919
|
+
* Resolves the registry datasource, then looks up one or more keys via `byKey`.
|
|
1920
|
+
*/
|
|
1921
|
+
async queryByKey(name, key, options) {
|
|
1922
|
+
if (isNil(key)) {
|
|
1923
|
+
return null;
|
|
1924
|
+
}
|
|
1925
|
+
const result = await this.resolve(name, options);
|
|
1926
|
+
const dataSource = result.dataSource;
|
|
1927
|
+
if (!dataSource?.config?.byKey) {
|
|
1928
|
+
return null;
|
|
1929
|
+
}
|
|
1930
|
+
if (Array.isArray(key)) {
|
|
1931
|
+
const items = await Promise.all(key.map((k) => dataSource.config.byKey(k)));
|
|
1932
|
+
return items.filter((item) => item != null);
|
|
1933
|
+
}
|
|
1934
|
+
return (await dataSource.config.byKey(key)) ?? null;
|
|
1935
|
+
}
|
|
1936
|
+
/**
|
|
1937
|
+
* Fully resolves a registry datasource (definition + AXDataSource instance).
|
|
1938
|
+
*/
|
|
1939
|
+
async resolve(name, options) {
|
|
1940
|
+
const entry = this.ensureLoading(name, options);
|
|
1941
|
+
if (entry.result?.ready) {
|
|
1942
|
+
return entry.result;
|
|
1943
|
+
}
|
|
1944
|
+
return entry.loadPromise;
|
|
1945
|
+
}
|
|
1946
|
+
/**
|
|
1947
|
+
* Clears cached query state. Pass a registry name to invalidate one datasource, or omit to clear all.
|
|
1948
|
+
*/
|
|
1949
|
+
invalidate(name) {
|
|
1950
|
+
if (!name) {
|
|
1951
|
+
this.entries.clear();
|
|
1952
|
+
return;
|
|
1953
|
+
}
|
|
1954
|
+
const prefix = `${name}::`;
|
|
1955
|
+
for (const key of [...this.entries.keys()]) {
|
|
1956
|
+
if (key === name || key.startsWith(prefix)) {
|
|
1957
|
+
this.entries.delete(key);
|
|
1958
|
+
}
|
|
1959
|
+
}
|
|
1960
|
+
}
|
|
1961
|
+
//#endregion
|
|
1962
|
+
//#region ---- Loading ----
|
|
1963
|
+
ensureLoading(name, options) {
|
|
1964
|
+
const cacheKey = this.buildCacheKey(name, options);
|
|
1965
|
+
let entry = this.entries.get(cacheKey);
|
|
1966
|
+
if (!entry) {
|
|
1967
|
+
entry = {
|
|
1968
|
+
name,
|
|
1969
|
+
cacheKey,
|
|
1970
|
+
readySubject: new ReplaySubject(1),
|
|
1971
|
+
};
|
|
1972
|
+
this.entries.set(cacheKey, entry);
|
|
1973
|
+
entry.loadPromise = this.loadEntry(entry, name, options);
|
|
1974
|
+
}
|
|
1975
|
+
return entry;
|
|
1976
|
+
}
|
|
1977
|
+
async loadEntry(entry, name, options) {
|
|
1978
|
+
const pending = {
|
|
1979
|
+
name,
|
|
1980
|
+
ready: false,
|
|
1981
|
+
dataSource: null,
|
|
1982
|
+
valueField: options?.valueField ?? 'id',
|
|
1983
|
+
textField: 'title',
|
|
1984
|
+
};
|
|
1985
|
+
try {
|
|
1986
|
+
const definition = await this.waitForDefinition(name, options);
|
|
1987
|
+
if (!definition) {
|
|
1988
|
+
const failed = {
|
|
1989
|
+
...pending,
|
|
1990
|
+
ready: true,
|
|
1991
|
+
error: new Error(`Data source '${name}' was not found in the registry`),
|
|
1992
|
+
};
|
|
1993
|
+
entry.result = failed;
|
|
1994
|
+
entry.readySubject.next(failed);
|
|
1995
|
+
return failed;
|
|
1996
|
+
}
|
|
1997
|
+
const valueField = options?.valueField ?? definition.valueField?.name ?? 'id';
|
|
1998
|
+
const textField = definition.textField?.name ?? 'title';
|
|
1999
|
+
const dataSource = await this.createDataSource(definition, {
|
|
2000
|
+
...options,
|
|
2001
|
+
valueField,
|
|
2002
|
+
});
|
|
2003
|
+
const translated = dataSource ? this.wrapTranslatedDataSource(dataSource, textField) : null;
|
|
2004
|
+
const success = {
|
|
2005
|
+
name,
|
|
2006
|
+
ready: true,
|
|
2007
|
+
dataSource: translated,
|
|
2008
|
+
definition,
|
|
2009
|
+
valueField,
|
|
2010
|
+
textField,
|
|
2011
|
+
};
|
|
2012
|
+
entry.result = success;
|
|
2013
|
+
entry.readySubject.next(success);
|
|
2014
|
+
return success;
|
|
2015
|
+
}
|
|
2016
|
+
catch (error) {
|
|
2017
|
+
const failed = {
|
|
2018
|
+
...pending,
|
|
2019
|
+
ready: true,
|
|
2020
|
+
error,
|
|
2021
|
+
};
|
|
2022
|
+
entry.result = failed;
|
|
2023
|
+
entry.readySubject.next(failed);
|
|
2024
|
+
return failed;
|
|
2025
|
+
}
|
|
2026
|
+
}
|
|
2027
|
+
async waitForDefinition(name, options) {
|
|
2028
|
+
const waitForRegistry = options?.waitForRegistry ?? true;
|
|
2029
|
+
const maxAttempts = options?.maxRegistryAttempts ?? 20;
|
|
2030
|
+
const retryDelayMs = options?.registryRetryDelayMs ?? 50;
|
|
2031
|
+
const attempts = waitForRegistry ? maxAttempts : 1;
|
|
2032
|
+
for (let attempt = 0; attempt < attempts; attempt++) {
|
|
2033
|
+
const definition = await this.definitionService.get(name);
|
|
2034
|
+
if (definition) {
|
|
2035
|
+
return definition;
|
|
2036
|
+
}
|
|
2037
|
+
if (attempt < attempts - 1) {
|
|
2038
|
+
await this.sleep(retryDelayMs);
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
return undefined;
|
|
2042
|
+
}
|
|
2043
|
+
async createDataSource(definition, options) {
|
|
2044
|
+
if (options.useSamples && definition.samples) {
|
|
2045
|
+
const samples = await this.resolveSamples(definition.samples);
|
|
2046
|
+
return convertArrayToDataSource(samples, {
|
|
2047
|
+
key: options.valueField,
|
|
2048
|
+
pageSize: 500,
|
|
2049
|
+
});
|
|
2050
|
+
}
|
|
2051
|
+
const sourceResult = definition.source();
|
|
2052
|
+
const resolved = await Promise.resolve(sourceResult);
|
|
2053
|
+
if (resolved instanceof AXDataSource) {
|
|
2054
|
+
this.applyValueFieldAsKey(resolved, options.valueField);
|
|
2055
|
+
return resolved;
|
|
2056
|
+
}
|
|
2057
|
+
if (Array.isArray(resolved)) {
|
|
2058
|
+
return convertArrayToDataSource(resolved, {
|
|
2059
|
+
key: options.valueField,
|
|
2060
|
+
pageSize: 500,
|
|
2061
|
+
});
|
|
2062
|
+
}
|
|
2063
|
+
return null;
|
|
2064
|
+
}
|
|
2065
|
+
async resolveSamples(samples) {
|
|
2066
|
+
return castArray(await Promise.resolve(samples));
|
|
2067
|
+
}
|
|
2068
|
+
applyValueFieldAsKey(dataSource, valueField) {
|
|
2069
|
+
if (dataSource.config?.key !== valueField) {
|
|
2070
|
+
dataSource.config = { ...dataSource.config, key: valueField };
|
|
2071
|
+
}
|
|
2072
|
+
}
|
|
2073
|
+
wrapTranslatedDataSource(dataSource, textField) {
|
|
2074
|
+
const config = dataSource.config;
|
|
2075
|
+
if (!config) {
|
|
2076
|
+
return dataSource;
|
|
2077
|
+
}
|
|
2078
|
+
const originalByKey = config.byKey;
|
|
2079
|
+
const originalLoad = config.load;
|
|
2080
|
+
if (originalByKey) {
|
|
2081
|
+
config.byKey = async (key) => this.translateItem(await originalByKey(key), textField);
|
|
2082
|
+
}
|
|
2083
|
+
if (originalLoad) {
|
|
2084
|
+
config.load = async (event) => {
|
|
2085
|
+
const result = await originalLoad(event);
|
|
2086
|
+
if (!result?.items?.length) {
|
|
2087
|
+
return result;
|
|
2088
|
+
}
|
|
2089
|
+
return {
|
|
2090
|
+
...result,
|
|
2091
|
+
items: result.items.map((item) => this.translateItem(item, textField)),
|
|
2092
|
+
};
|
|
2093
|
+
};
|
|
2094
|
+
}
|
|
2095
|
+
return dataSource;
|
|
2096
|
+
}
|
|
2097
|
+
translateItem(item, textField) {
|
|
2098
|
+
if (item == null || typeof item !== 'object') {
|
|
2099
|
+
return item;
|
|
2100
|
+
}
|
|
2101
|
+
const title = get(item, textField);
|
|
2102
|
+
// Keep i18n keys for UI widgets (ax-select-box translate pipe) so labels react to locale changes.
|
|
2103
|
+
if (isString(title) && title.startsWith('@')) {
|
|
2104
|
+
return item;
|
|
2105
|
+
}
|
|
2106
|
+
return item;
|
|
2107
|
+
}
|
|
2108
|
+
buildCacheKey(name, options) {
|
|
2109
|
+
const valueField = options?.valueField ?? '';
|
|
2110
|
+
const useSamples = options?.useSamples ? '1' : '0';
|
|
2111
|
+
return `${name}::${valueField}::${useSamples}`;
|
|
2112
|
+
}
|
|
2113
|
+
sleep(ms) {
|
|
2114
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
2115
|
+
}
|
|
2116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDataSourceQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2117
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDataSourceQueryService, providedIn: 'root' }); }
|
|
2118
|
+
}
|
|
2119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPDataSourceQueryService, decorators: [{
|
|
2120
|
+
type: Injectable,
|
|
2121
|
+
args: [{ providedIn: 'root' }]
|
|
2122
|
+
}] });
|
|
2123
|
+
|
|
1884
2124
|
// src/app/directives/grid-layout.directive.ts
|
|
1885
2125
|
class AXPContentCheckerDirective {
|
|
1886
2126
|
constructor() {
|
|
@@ -4718,5 +4958,5 @@ function provideLazyProvider(token, loader, multi = true) {
|
|
|
4718
4958
|
* Generated bundle index. Do not edit.
|
|
4719
4959
|
*/
|
|
4720
4960
|
|
|
4721
|
-
export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPCatalogScopeDefinitionProviderService, AXPCatalogScopeDefinitionsDataSourceDefinition, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextDefinitionProviderService, AXPContextEvalFactory, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDebugService, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPIdleSchedulerService, AXPImageUrlLogoConfig, AXPKeyboardShortcutRegistry, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPModuleManifestsDataSourceDefinition, AXPScreenSize, 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, DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS, FORM_DIRTY_TRACE_NS, OVERLAY_DETAILS_VIEW_TRACE_NS, OVERLAY_LAYOUT_TRACE_NS, OVERLAY_ROOT_LAYOUT_TRACE_NS, OVERLAY_WIDGET_SETTLE_TRACE_NS, applyContextEvalPipes, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, chordToKbdItemKeys, contextEvalWithPipes, createProviderWithInjectionContext, defaultColumnWidthProvider, findOverlayContainerAncestor, formatKeyboardShortcutChord, formatKeyboardShortcutChords, getNestedVisibleOverlayPanes, getPrimaryKeyboardShortcutChord, getTopVisibleOverlayContainer, getVisibleAnchoredOverlayPanes, getVisibleOverlayContainers, hasForegroundOverlayLayer, isDialogShortcutAllowedInEditableField, isHorizontalDirectionalShortcutKey, isKeyboardTargetInsideEditableField, isMacPlatform, isVisibleOverlayElement, matchesDialogActionShortcut, matchesKeyboardShortcutChord, mirrorHorizontalDirectionalKey, normalizeContextEvalPipes, normalizeDialogActionShortcutChord, normalizeExpressionTemplate, normalizeKeyboardShortcut, normalizeKeyboardShortcuts, objectKeyValueTransforms, parseDialogActionShortcut, parseKeyboardShortcutChord, provideLazyProvider, registerPopupFooterKeyboardShortcuts, resolveConfiguredFooterActionShortcuts, resolveDialogActionShortcuts, resolveDisplayShortcutChord, resolveEffectiveDirectionBehavior, resolveSemanticDirectionalKey, setupPopupFooterKeyboardShortcuts, shouldDeferEscapeToOpenOverlay, shouldTriggerDialogActionShortcut };
|
|
4961
|
+
export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPCatalogScopeDefinitionProviderService, AXPCatalogScopeDefinitionsDataSourceDefinition, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextDefinitionProviderService, AXPContextEvalFactory, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDataSourceQueryService, AXPDblClickDirective, AXPDebugService, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPIdleSchedulerService, AXPImageUrlLogoConfig, AXPKeyboardShortcutRegistry, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPModuleManifestsDataSourceDefinition, AXPScreenSize, 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, DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS, FORM_DIRTY_TRACE_NS, OVERLAY_DETAILS_VIEW_TRACE_NS, OVERLAY_LAYOUT_TRACE_NS, OVERLAY_ROOT_LAYOUT_TRACE_NS, OVERLAY_WIDGET_SETTLE_TRACE_NS, applyContextEvalPipes, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, chordToKbdItemKeys, contextEvalWithPipes, createProviderWithInjectionContext, defaultColumnWidthProvider, findOverlayContainerAncestor, formatKeyboardShortcutChord, formatKeyboardShortcutChords, getNestedVisibleOverlayPanes, getPrimaryKeyboardShortcutChord, getTopVisibleOverlayContainer, getVisibleAnchoredOverlayPanes, getVisibleOverlayContainers, hasForegroundOverlayLayer, isDialogShortcutAllowedInEditableField, isHorizontalDirectionalShortcutKey, isKeyboardTargetInsideEditableField, isMacPlatform, isVisibleOverlayElement, matchesDialogActionShortcut, matchesKeyboardShortcutChord, mirrorHorizontalDirectionalKey, normalizeContextEvalPipes, normalizeDialogActionShortcutChord, normalizeExpressionTemplate, normalizeKeyboardShortcut, normalizeKeyboardShortcuts, objectKeyValueTransforms, parseDialogActionShortcut, parseKeyboardShortcutChord, provideLazyProvider, registerPopupFooterKeyboardShortcuts, resolveConfiguredFooterActionShortcuts, resolveDialogActionShortcuts, resolveDisplayShortcutChord, resolveEffectiveDirectionBehavior, resolveSemanticDirectionalKey, setupPopupFooterKeyboardShortcuts, shouldDeferEscapeToOpenOverlay, shouldTriggerDialogActionShortcut };
|
|
4722
4962
|
//# sourceMappingURL=acorex-platform-core.mjs.map
|