@acorex-platform/framework-shared 2.0.0-next.15 → 2.0.0-next.17
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/core/src/lib/property/validation.types.d.ts +7 -0
- package/core/src/lib/property/validation.types.d.ts.map +1 -1
- package/core/src/lib/property/validation.types.js +32 -0
- package/core/src/lib/property/validation.types.js.map +1 -1
- package/entity/src/lib/types/lookup-widget.types.d.ts +12 -0
- package/entity/src/lib/types/lookup-widget.types.d.ts.map +1 -1
- package/entity/src/lib/types/lookup-widget.types.js.map +1 -1
- package/entity/src/lib/utils/lookup-create-options.util.d.ts.map +1 -1
- package/entity/src/lib/utils/lookup-create-options.util.js +5 -2
- package/entity/src/lib/utils/lookup-create-options.util.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import type { AXPExpression, AXPValidationRule, AXPValidationRules } from '../core/core.types';
|
|
2
2
|
export type { AXPValidationRule, AXPValidationRules };
|
|
3
|
+
/** Copies a rule onto a widget node, including `disabled` (boolean or expression). */
|
|
4
|
+
export declare function copyValidationRule(rule: AXPValidationRule): AXPValidationRule;
|
|
5
|
+
/**
|
|
6
|
+
* Prefixes `context.eval('field')` paths inside a validation `disabled` expression
|
|
7
|
+
* when the field lives under a parent data path.
|
|
8
|
+
*/
|
|
9
|
+
export declare function prefixContextEvalPaths(source: string, dataPath: string): string;
|
|
3
10
|
export interface AXPRequiredValidationRule extends AXPValidationRule {
|
|
4
11
|
rule: 'required';
|
|
5
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/property/validation.types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE/F,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/property/validation.types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE/F,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AAItD,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAY7E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU/E;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACnE,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACnE,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,CAAE,SAAQ,iBAAiB;IAClE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,MAAM,wBAAwB,GAAG,CACnC,yBAAyB,GACzB,0BAA0B,GAC1B,0BAA0B,GAC1B,sBAAsB,CAAC,MAAM,CAAC,GAC9B,sBAAsB,CACzB,EAAE,CAAC"}
|
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
//#region ---- Validation types ----
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.copyValidationRule = copyValidationRule;
|
|
5
|
+
exports.prefixContextEvalPaths = prefixContextEvalPaths;
|
|
6
|
+
const CONTEXT_EVAL_PATTERN = /context\.eval\(["']([^"']+)["']\)/g;
|
|
7
|
+
/** Copies a rule onto a widget node, including `disabled` (boolean or expression). */
|
|
8
|
+
function copyValidationRule(rule) {
|
|
9
|
+
const copy = { rule: rule.rule };
|
|
10
|
+
if (rule.message !== undefined) {
|
|
11
|
+
copy.message = rule.message;
|
|
12
|
+
}
|
|
13
|
+
if (rule.options !== undefined) {
|
|
14
|
+
copy.options = rule.options;
|
|
15
|
+
}
|
|
16
|
+
if (rule.disabled !== undefined) {
|
|
17
|
+
copy.disabled = rule.disabled;
|
|
18
|
+
}
|
|
19
|
+
return copy;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Prefixes `context.eval('field')` paths inside a validation `disabled` expression
|
|
23
|
+
* when the field lives under a parent data path.
|
|
24
|
+
*/
|
|
25
|
+
function prefixContextEvalPaths(source, dataPath) {
|
|
26
|
+
if (!dataPath) {
|
|
27
|
+
return source;
|
|
28
|
+
}
|
|
29
|
+
return source.replace(CONTEXT_EVAL_PATTERN, (match, path) => {
|
|
30
|
+
if (path.startsWith(`${dataPath}.`) || path.startsWith('$') || path.startsWith('>')) {
|
|
31
|
+
return match;
|
|
32
|
+
}
|
|
33
|
+
return `context.eval("${dataPath}.${path}")`;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
4
36
|
//#endregion
|
|
5
37
|
//# sourceMappingURL=validation.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.types.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/property/validation.types.ts"],"names":[],"mappings":";AAAA,oCAAoC;;
|
|
1
|
+
{"version":3,"file":"validation.types.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/core/src/lib/property/validation.types.ts"],"names":[],"mappings":";AAAA,oCAAoC;;AASpC,gDAYC;AAMD,wDAUC;AA/BD,MAAM,oBAAoB,GAAG,oCAAoC,CAAC;AAElE,sFAAsF;AACtF,SAAgB,kBAAkB,CAAC,IAAuB;IACxD,MAAM,IAAI,GAAsB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,MAAc,EAAE,QAAgB;IACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAClE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,iBAAiB,QAAQ,IAAI,IAAI,IAAI,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC;AA0CD,YAAY"}
|
|
@@ -7,6 +7,11 @@ export interface AXPLookupWidgetCreateOptions {
|
|
|
7
7
|
* When set, replaces the default `Create {entity title}` header.
|
|
8
8
|
*/
|
|
9
9
|
title?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Command to run instead of `Entity:Create`.
|
|
12
|
+
* Receives the resolved `context` as process data. Result `data` becomes the selected item.
|
|
13
|
+
*/
|
|
14
|
+
command?: string;
|
|
10
15
|
}
|
|
11
16
|
export interface ResolvedLookupCreateOptions {
|
|
12
17
|
enabled: boolean;
|
|
@@ -14,6 +19,8 @@ export interface ResolvedLookupCreateOptions {
|
|
|
14
19
|
context?: AXPContextData;
|
|
15
20
|
/** Optional create-dialog header title (i18n key or plain text). */
|
|
16
21
|
title?: string;
|
|
22
|
+
/** Command to run instead of `Entity:Create`, when set. */
|
|
23
|
+
command?: string;
|
|
17
24
|
}
|
|
18
25
|
/**
|
|
19
26
|
* Editor presentation for lookup-editor.
|
|
@@ -92,6 +99,11 @@ export interface AXPEntitySelectorColumn {
|
|
|
92
99
|
export type AXPEntitySelectorColumnInput = string | AXPEntitySelectorColumn;
|
|
93
100
|
export interface AXPLookupWidgetOptions {
|
|
94
101
|
disabled?: boolean | AXPExpression;
|
|
102
|
+
/**
|
|
103
|
+
* When true (default), an empty cascade `filter` keeps the editor disabled until parent values exist.
|
|
104
|
+
* Set false to load without waiting. Does not override `disabled: true`.
|
|
105
|
+
*/
|
|
106
|
+
waitForCascade?: boolean;
|
|
95
107
|
readonly?: boolean | AXPExpression;
|
|
96
108
|
placeholder?: string;
|
|
97
109
|
expose?: string | string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-widget.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/types/lookup-widget.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAI5F,MAAM,WAAW,4BAA4B;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"lookup-widget.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/types/lookup-widget.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-widget.types.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/types/lookup-widget.types.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"lookup-widget.types.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/types/lookup-widget.types.ts"],"names":[],"mappings":";;AA8IA,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-create-options.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/lookup-create-options.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAI9G;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE;IACxD,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACzC,GAAG,2BAA2B,
|
|
1
|
+
{"version":3,"file":"lookup-create-options.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/lookup-create-options.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAI9G;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE;IACxD,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACzC,GAAG,2BAA2B,CAwB9B"}
|
|
@@ -6,16 +6,18 @@ exports.resolveLookupWidgetCreateOptions = resolveLookupWidgetCreateOptions;
|
|
|
6
6
|
* Resolves lookup create options from `create` and legacy `allowCreate` (mode).
|
|
7
7
|
*/
|
|
8
8
|
function resolveLookupWidgetCreateOptions(options) {
|
|
9
|
+
var _a;
|
|
9
10
|
const create = options.create;
|
|
10
11
|
const legacyMode = options.allowCreate;
|
|
11
12
|
const context = create === null || create === void 0 ? void 0 : create.context;
|
|
12
13
|
const title = create === null || create === void 0 ? void 0 : create.title;
|
|
14
|
+
const command = ((_a = create === null || create === void 0 ? void 0 : create.command) === null || _a === void 0 ? void 0 : _a.trim()) || undefined;
|
|
13
15
|
if ((create === null || create === void 0 ? void 0 : create.enable) !== undefined) {
|
|
14
16
|
if (!create.enable) {
|
|
15
|
-
return { enabled: false, mode: 'none', context, title };
|
|
17
|
+
return { enabled: false, mode: 'none', context, title, command };
|
|
16
18
|
}
|
|
17
19
|
const mode = legacyMode && legacyMode !== 'none' ? legacyMode : 'quick';
|
|
18
|
-
return { enabled: true, mode, context, title };
|
|
20
|
+
return { enabled: true, mode, context, title, command };
|
|
19
21
|
}
|
|
20
22
|
const mode = legacyMode !== null && legacyMode !== void 0 ? legacyMode : 'none';
|
|
21
23
|
return {
|
|
@@ -23,6 +25,7 @@ function resolveLookupWidgetCreateOptions(options) {
|
|
|
23
25
|
mode,
|
|
24
26
|
context,
|
|
25
27
|
title,
|
|
28
|
+
command,
|
|
26
29
|
};
|
|
27
30
|
}
|
|
28
31
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup-create-options.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/lookup-create-options.util.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"lookup-create-options.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/shared/entity/src/lib/utils/lookup-create-options.util.ts"],"names":[],"mappings":";;AAOA,4EA4BC;AAjCD,8BAA8B;AAE9B;;GAEG;AACH,SAAgB,gCAAgC,CAAC,OAIhD;;IACC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,IAAI,EAAE,KAAI,SAAS,CAAC;IAErD,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,MAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACnE,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,IAAI,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;QACxE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC1D,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,MAAM,CAAC;IAClC,OAAO;QACL,OAAO,EAAE,IAAI,KAAK,MAAM;QACxB,IAAI;QACJ,OAAO;QACP,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC;AAED,YAAY"}
|