@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.
- package/fesm2022/acorex-platform-auth.mjs +1 -1
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-Ytey9uhY.mjs → acorex-platform-common-common-settings.provider-VfmZct9H.mjs} +43 -3
- package/fesm2022/acorex-platform-common-common-settings.provider-VfmZct9H.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +1709 -870
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-contracts.mjs +1160 -9
- package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +210 -131
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain-contracts.mjs +58 -0
- package/fesm2022/acorex-platform-domain-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-domain.mjs +2 -50
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +61 -23
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +3 -2
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-contracts.mjs +1114 -0
- package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +661 -742
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +376 -176
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +11 -105
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs +513 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs.map +1 -0
- 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
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-D4MOHEpI.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +871 -59
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- 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
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +740 -96
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs → acorex-platform-themes-shared-settings.provider-BUwPqwUS.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-shared-settings.provider-BUwPqwUS.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +4 -3
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +6 -8
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/package.json +9 -5
- package/types/acorex-platform-auth.d.ts +2 -1
- package/types/acorex-platform-common.d.ts +419 -1083
- package/types/acorex-platform-contracts.d.ts +1791 -260
- package/types/acorex-platform-core.d.ts +2153 -2806
- package/types/acorex-platform-domain-contracts.d.ts +416 -0
- package/types/acorex-platform-domain.d.ts +4 -415
- package/types/acorex-platform-layout-builder.d.ts +2 -1
- package/types/acorex-platform-layout-components.d.ts +15 -4
- package/types/acorex-platform-layout-designer.d.ts +2 -1
- package/types/acorex-platform-layout-entity-contracts.d.ts +864 -0
- package/types/acorex-platform-layout-entity.d.ts +88 -269
- package/types/acorex-platform-layout-views.d.ts +48 -14
- package/types/acorex-platform-layout-widget-core.d.ts +9 -5
- package/types/acorex-platform-layout-widgets.d.ts +89 -13
- package/types/acorex-platform-runtime.d.ts +1 -1
- package/types/acorex-platform-themes-default.d.ts +173 -70
- package/types/acorex-platform-workflow.d.ts +5 -18
- package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +0 -116
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map +0 -1
- package/fesm2022/acorex-platform-native.mjs +0 -155
- package/fesm2022/acorex-platform-native.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +0 -1
- package/native/README.md +0 -4
- 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 =
|
|
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(
|
|
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 +=
|
|
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 +=
|
|
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
|
-
|
|
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,
|
|
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
|