@decaf-ts/ui-decorators 0.4.0 → 0.4.3
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/dist/esm/ui-decorators.bundle.min.esm.js +1 -1
- package/dist/ui-decorators.bundle.min.js +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +2 -2
- package/lib/esm/model/Renderable.d.ts +3 -0
- package/lib/esm/model/Renderable.js +3 -0
- package/lib/esm/model/decorators.d.ts +1 -1
- package/lib/esm/model/decorators.js +4 -4
- package/lib/esm/model/index.d.ts +1 -0
- package/lib/esm/model/index.js +2 -1
- package/lib/esm/model/model.d.ts +2 -2
- package/lib/esm/model/model.js +1 -1
- package/lib/esm/model/overrides.js +1 -5
- package/lib/esm/ui/Rendering.d.ts +7 -4
- package/lib/esm/ui/Rendering.js +111 -6
- package/lib/esm/ui/constants.d.ts +35 -0
- package/lib/esm/ui/constants.js +58 -2
- package/lib/esm/ui/decorators.d.ts +8 -21
- package/lib/esm/ui/decorators.js +28 -24
- package/lib/esm/ui/errors.d.ts +4 -0
- package/lib/esm/ui/errors.js +8 -0
- package/lib/esm/ui/index.d.ts +4 -0
- package/lib/esm/ui/index.js +5 -1
- package/lib/esm/ui/interfaces.d.ts +7 -0
- package/lib/esm/ui/interfaces.js +3 -0
- package/lib/esm/ui/types.d.ts +44 -0
- package/lib/esm/ui/types.js +3 -0
- package/lib/esm/ui/utils.d.ts +9 -0
- package/lib/esm/ui/utils.js +85 -0
- package/lib/index.cjs +2 -2
- package/lib/index.d.ts +1 -1
- package/lib/model/Renderable.cjs +4 -0
- package/lib/model/Renderable.d.ts +3 -0
- package/lib/model/decorators.cjs +4 -4
- package/lib/model/decorators.d.ts +1 -1
- package/lib/model/index.cjs +2 -1
- package/lib/model/index.d.ts +1 -0
- package/lib/model/model.cjs +1 -1
- package/lib/model/model.d.ts +2 -2
- package/lib/model/overrides.cjs +1 -5
- package/lib/ui/Rendering.cjs +109 -4
- package/lib/ui/Rendering.d.ts +7 -4
- package/lib/ui/constants.cjs +58 -2
- package/lib/ui/constants.d.ts +35 -0
- package/lib/ui/decorators.cjs +31 -26
- package/lib/ui/decorators.d.ts +8 -21
- package/lib/ui/errors.cjs +12 -0
- package/lib/ui/errors.d.ts +4 -0
- package/lib/ui/index.cjs +5 -1
- package/lib/ui/index.d.ts +4 -0
- package/lib/ui/interfaces.cjs +4 -0
- package/lib/ui/interfaces.d.ts +7 -0
- package/lib/ui/types.cjs +4 -0
- package/lib/ui/types.d.ts +44 -0
- package/lib/ui/utils.cjs +91 -0
- package/lib/ui/utils.d.ts +9 -0
- package/package.json +6 -1
package/lib/ui/constants.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Constructor, Validator } from "@decaf-ts/decorator-validation";
|
|
1
2
|
/**
|
|
2
3
|
* @enum UIKeys
|
|
3
4
|
* @category Constants
|
|
@@ -13,6 +14,7 @@ export declare const UIKeys: {
|
|
|
13
14
|
CUSTOM_PROPS: string;
|
|
14
15
|
TYPE: string;
|
|
15
16
|
SUB_TYPE: string;
|
|
17
|
+
HIDDEN: string;
|
|
16
18
|
READ_ONLY: string;
|
|
17
19
|
REQUIRED: string;
|
|
18
20
|
MIN: string;
|
|
@@ -26,3 +28,36 @@ export declare const UIKeys: {
|
|
|
26
28
|
EMAIL: string;
|
|
27
29
|
PASSWORD: string;
|
|
28
30
|
};
|
|
31
|
+
export declare const ValidatableByType: Record<string, Constructor<Validator>>;
|
|
32
|
+
/**
|
|
33
|
+
* @constant ValidatableByAttribute
|
|
34
|
+
*
|
|
35
|
+
* @memberOf ui-decorators-web.ui
|
|
36
|
+
*/
|
|
37
|
+
export declare const ValidatableByAttribute: Record<string, Constructor<Validator>>;
|
|
38
|
+
export declare const HTML5DateFormat = "yyyy-MM-dd";
|
|
39
|
+
export declare const HTML5InputTypes: {
|
|
40
|
+
BUTTON: string;
|
|
41
|
+
CHECKBOX: string;
|
|
42
|
+
COLOR: string;
|
|
43
|
+
DATE: string;
|
|
44
|
+
DATETIME_LOCAL: string;
|
|
45
|
+
EMAIL: string;
|
|
46
|
+
FILE: string;
|
|
47
|
+
HIDDEN: string;
|
|
48
|
+
IMAGE: string;
|
|
49
|
+
MONTH: string;
|
|
50
|
+
NUMBER: string;
|
|
51
|
+
PASSWORD: string;
|
|
52
|
+
RADIO: string;
|
|
53
|
+
RANGE: string;
|
|
54
|
+
RESET: string;
|
|
55
|
+
SEARCH: string;
|
|
56
|
+
SUBMIT: string;
|
|
57
|
+
TEL: string;
|
|
58
|
+
TEXT: string;
|
|
59
|
+
TIME: string;
|
|
60
|
+
URL: string;
|
|
61
|
+
WEEK: string;
|
|
62
|
+
};
|
|
63
|
+
export declare const HTML5CheckTypes: string[];
|
package/lib/ui/decorators.cjs
CHANGED
|
@@ -1,43 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.hideOn = hideOn;
|
|
4
|
+
exports.hidden = hidden;
|
|
4
5
|
exports.uielement = uielement;
|
|
6
|
+
exports.uiprop = uiprop;
|
|
5
7
|
require("reflect-metadata");
|
|
6
8
|
const constants_1 = require("./constants.cjs");
|
|
7
9
|
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
10
|
+
const Rendering_1 = require("./Rendering.cjs");
|
|
11
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
8
12
|
/**
|
|
9
13
|
* @namespace ui-decorators.ui.decorators
|
|
10
14
|
* @memberOf ui-decorators.ui
|
|
11
15
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
* @memberOf ui-decorators.ui.decorators
|
|
19
|
-
*/
|
|
20
|
-
const getUIKey = (key) => constants_1.UIKeys.REFLECT + key;
|
|
16
|
+
function hideOn(...operations) {
|
|
17
|
+
return (0, decorator_validation_1.propMetadata)(Rendering_1.RenderingEngine.key(constants_1.UIKeys.HIDDEN), operations);
|
|
18
|
+
}
|
|
19
|
+
function hidden() {
|
|
20
|
+
return hideOn(db_decorators_1.OperationKeys.CREATE, db_decorators_1.OperationKeys.READ, db_decorators_1.OperationKeys.UPDATE, db_decorators_1.OperationKeys.DELETE);
|
|
21
|
+
}
|
|
21
22
|
/**
|
|
22
23
|
* Adds the UIElement definition as metadata to the property, allowing it to be read by any {@link RenderStrategy}
|
|
23
24
|
*
|
|
24
25
|
* @param {string} tag The component/HTML element tag name
|
|
25
26
|
* @param {{}} [props] The properties to pass to that component/HTML Element
|
|
26
|
-
* @param
|
|
27
|
+
* @param serialize
|
|
27
28
|
*
|
|
28
29
|
* @decorator uielement
|
|
29
30
|
*
|
|
30
31
|
* @category Decorators
|
|
31
32
|
* @subcategory ui-decorators
|
|
32
33
|
*/
|
|
33
|
-
function uielement(tag, props, serialize = false
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
function uielement(tag, props, serialize = false) {
|
|
35
|
+
return (original, propertyKey) => {
|
|
36
|
+
const metadata = {
|
|
37
|
+
tag: tag,
|
|
38
|
+
serialize: serialize,
|
|
39
|
+
props: Object.assign({
|
|
40
|
+
name: propertyKey,
|
|
41
|
+
}, props || {}),
|
|
42
|
+
};
|
|
43
|
+
return (0, decorator_validation_1.propMetadata)(Rendering_1.RenderingEngine.key(constants_1.UIKeys.ELEMENT), metadata)(original, propertyKey);
|
|
39
44
|
};
|
|
40
|
-
return (0, decorator_validation_1.propMetadata)(getUIKey(constants_1.UIKeys.ELEMENT), metadata);
|
|
41
45
|
}
|
|
42
46
|
/**
|
|
43
47
|
* Adds the UIProp definition as metadata to the property, allowing it to be read by any {@link RenderStrategy}
|
|
@@ -51,13 +55,14 @@ function uielement(tag, props, serialize = false, ...args) {
|
|
|
51
55
|
* @category Decorators
|
|
52
56
|
* @subcategory ui-decorators
|
|
53
57
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
function uiprop(propName = undefined, stringify = false) {
|
|
59
|
+
return (target, propertyKey) => {
|
|
60
|
+
const metadata = {
|
|
61
|
+
name: propName || propertyKey,
|
|
62
|
+
stringify: stringify,
|
|
63
|
+
};
|
|
64
|
+
(0, decorator_validation_1.propMetadata)(Rendering_1.RenderingEngine.key(constants_1.UIKeys.PROP), metadata)(target, propertyKey);
|
|
58
65
|
};
|
|
59
|
-
|
|
60
|
-
};
|
|
61
|
-
exports.uiprop = uiprop;
|
|
66
|
+
}
|
|
62
67
|
|
|
63
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsd0JBS0M7QUFFRCx3QkFPQztBQWNELDhCQXNCQztBQWNELHdCQWNDO0FBMUZELDRCQUEwQjtBQUMxQiwyQ0FBcUM7QUFDckMseUVBQThEO0FBRTlELDJDQUE4QztBQUM5QywyREFBd0Q7QUFFeEQ7OztHQUdHO0FBRUgsU0FBZ0IsTUFBTSxDQUFDLEdBQUcsVUFBK0I7SUFDdkQsT0FBTyxJQUFBLG1DQUFZLEVBQ2pCLDJCQUFlLENBQUMsR0FBRyxDQUFDLGtCQUFNLENBQUMsTUFBTSxDQUFDLEVBQ2xDLFVBQVUsQ0FDWCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLE1BQU07SUFDcEIsT0FBTyxNQUFNLENBQ1gsNkJBQWEsQ0FBQyxNQUFNLEVBQ3BCLDZCQUFhLENBQUMsSUFBSSxFQUNsQiw2QkFBYSxDQUFDLE1BQU0sRUFDcEIsNkJBQWEsQ0FBQyxNQUFNLENBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLEdBQVcsRUFDWCxLQUEyQixFQUMzQixZQUFxQixLQUFLO0lBRTFCLE9BQU8sQ0FBQyxRQUFhLEVBQUUsV0FBaUIsRUFBRSxFQUFFO1FBQzFDLE1BQU0sUUFBUSxHQUFzQjtZQUNsQyxHQUFHLEVBQUUsR0FBRztZQUNSLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUNsQjtnQkFDRSxJQUFJLEVBQUUsV0FBVzthQUNsQixFQUNELEtBQUssSUFBSSxFQUFFLENBQ1o7U0FDRixDQUFDO1FBRUYsT0FBTyxJQUFBLG1DQUFZLEVBQUMsMkJBQWUsQ0FBQyxHQUFHLENBQUMsa0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FDaEUsUUFBUSxFQUNSLFdBQVcsQ0FDWixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0IsTUFBTSxDQUNwQixXQUErQixTQUFTLEVBQ3hDLFlBQXFCLEtBQUs7SUFFMUIsT0FBTyxDQUFDLE1BQVcsRUFBRSxXQUFtQixFQUFFLEVBQUU7UUFDMUMsTUFBTSxRQUFRLEdBQW1CO1lBQy9CLElBQUksRUFBRSxRQUFRLElBQUksV0FBVztZQUM3QixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBQ0YsSUFBQSxtQ0FBWSxFQUFDLDJCQUFlLENBQUMsR0FBRyxDQUFDLGtCQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQ3RELE1BQU0sRUFDTixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJmaWxlIjoidWkvZGVjb3JhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCB7IFVJS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgcHJvcE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ3J1ZE9wZXJhdGlvbktleXMsIFVJRWxlbWVudE1ldGFkYXRhLCBVSVByb3BNZXRhZGF0YSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBSZW5kZXJpbmdFbmdpbmUgfSBmcm9tIFwiLi9SZW5kZXJpbmdcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAbmFtZXNwYWNlIHVpLWRlY29yYXRvcnMudWkuZGVjb3JhdG9yc1xuICogQG1lbWJlck9mIHVpLWRlY29yYXRvcnMudWlcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gaGlkZU9uKC4uLm9wZXJhdGlvbnM6IENydWRPcGVyYXRpb25LZXlzW10pIHtcbiAgcmV0dXJuIHByb3BNZXRhZGF0YTxDcnVkT3BlcmF0aW9uS2V5c1tdPihcbiAgICBSZW5kZXJpbmdFbmdpbmUua2V5KFVJS2V5cy5ISURERU4pLFxuICAgIG9wZXJhdGlvbnNcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhpZGRlbigpIHtcbiAgcmV0dXJuIGhpZGVPbihcbiAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICBPcGVyYXRpb25LZXlzLlJFQUQsXG4gICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgT3BlcmF0aW9uS2V5cy5ERUxFVEVcbiAgKTtcbn1cblxuLyoqXG4gKiBBZGRzIHRoZSBVSUVsZW1lbnQgZGVmaW5pdGlvbiBhcyBtZXRhZGF0YSB0byB0aGUgcHJvcGVydHksIGFsbG93aW5nIGl0IHRvIGJlIHJlYWQgYnkgYW55IHtAbGluayBSZW5kZXJTdHJhdGVneX1cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBjb21wb25lbnQvSFRNTCBlbGVtZW50IHRhZyBuYW1lXG4gKiBAcGFyYW0ge3t9fSBbcHJvcHNdIFRoZSBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhhdCBjb21wb25lbnQvSFRNTCBFbGVtZW50XG4gKiBAcGFyYW0gc2VyaWFsaXplXG4gKlxuICogQGRlY29yYXRvciB1aWVsZW1lbnRcbiAqXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICogQHN1YmNhdGVnb3J5IHVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpZWxlbWVudChcbiAgdGFnOiBzdHJpbmcsXG4gIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgc2VyaWFsaXplOiBib29sZWFuID0gZmFsc2Vcbikge1xuICByZXR1cm4gKG9yaWdpbmFsOiBhbnksIHByb3BlcnR5S2V5PzogYW55KSA9PiB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFVJRWxlbWVudE1ldGFkYXRhID0ge1xuICAgICAgdGFnOiB0YWcsXG4gICAgICBzZXJpYWxpemU6IHNlcmlhbGl6ZSxcbiAgICAgIHByb3BzOiBPYmplY3QuYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogcHJvcGVydHlLZXksXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BzIHx8IHt9XG4gICAgICApLFxuICAgIH07XG5cbiAgICByZXR1cm4gcHJvcE1ldGFkYXRhKFJlbmRlcmluZ0VuZ2luZS5rZXkoVUlLZXlzLkVMRU1FTlQpLCBtZXRhZGF0YSkoXG4gICAgICBvcmlnaW5hbCxcbiAgICAgIHByb3BlcnR5S2V5XG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBZGRzIHRoZSBVSVByb3AgZGVmaW5pdGlvbiBhcyBtZXRhZGF0YSB0byB0aGUgcHJvcGVydHksIGFsbG93aW5nIGl0IHRvIGJlIHJlYWQgYnkgYW55IHtAbGluayBSZW5kZXJTdHJhdGVneX1cbiAqXG4gKiB0aGlzIHJlcXVpcmVzIGEgJ0B1aW1vZGVsJyB3aXRoIGEgZGVmaW5lZCB0YWdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW3Byb3BOYW1lXSB0aGUgcHJvcGVydHkgbmFtZSB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuIGRlZmF1bHRzIHRvIHRoZSBQcm9wZXJ0eUtleVxuICpcbiAqIEBkZWNvcmF0b3IgdWlwcm9wXG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqIEBzdWJjYXRlZ29yeSB1aS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aXByb3AoXG4gIHByb3BOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIHN0cmluZ2lmeTogYm9vbGVhbiA9IGZhbHNlXG4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBVSVByb3BNZXRhZGF0YSA9IHtcbiAgICAgIG5hbWU6IHByb3BOYW1lIHx8IHByb3BlcnR5S2V5LFxuICAgICAgc3RyaW5naWZ5OiBzdHJpbmdpZnksXG4gICAgfTtcbiAgICBwcm9wTWV0YWRhdGEoUmVuZGVyaW5nRW5naW5lLmtleShVSUtleXMuUFJPUCksIG1ldGFkYXRhKShcbiAgICAgIHRhcmdldCxcbiAgICAgIHByb3BlcnR5S2V5XG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
|
package/lib/ui/decorators.d.ts
CHANGED
|
@@ -1,37 +1,24 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
+
import { CrudOperationKeys } from "./types";
|
|
2
3
|
/**
|
|
3
|
-
* @
|
|
4
|
-
* @memberOf ui-decorators.ui
|
|
4
|
+
* @namespace ui-decorators.ui.decorators
|
|
5
|
+
* @memberOf ui-decorators.ui
|
|
5
6
|
*/
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
args?: any[];
|
|
9
|
-
props?: Record<string, any>;
|
|
10
|
-
serialize?: boolean;
|
|
11
|
-
};
|
|
7
|
+
export declare function hideOn(...operations: CrudOperationKeys[]): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
8
|
+
export declare function hidden(): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
|
|
12
9
|
/**
|
|
13
10
|
* Adds the UIElement definition as metadata to the property, allowing it to be read by any {@link RenderStrategy}
|
|
14
11
|
*
|
|
15
12
|
* @param {string} tag The component/HTML element tag name
|
|
16
13
|
* @param {{}} [props] The properties to pass to that component/HTML Element
|
|
17
|
-
* @param
|
|
14
|
+
* @param serialize
|
|
18
15
|
*
|
|
19
16
|
* @decorator uielement
|
|
20
17
|
*
|
|
21
18
|
* @category Decorators
|
|
22
19
|
* @subcategory ui-decorators
|
|
23
20
|
*/
|
|
24
|
-
export declare function uielement(tag: string, props?:
|
|
25
|
-
[indexer: string]: any;
|
|
26
|
-
}, serialize?: boolean, ...args: any[]): (target: object, propertyKey?: any, descriptor?: any) => void;
|
|
27
|
-
/**
|
|
28
|
-
* @typedef UIPropMetadata
|
|
29
|
-
* @memberOf ui-decorators.ui.decorators
|
|
30
|
-
*/
|
|
31
|
-
export type UIPropMetadata = {
|
|
32
|
-
name: string;
|
|
33
|
-
stringify: boolean;
|
|
34
|
-
};
|
|
21
|
+
export declare function uielement(tag: string, props?: Record<string, any>, serialize?: boolean): (original: any, propertyKey?: any) => void;
|
|
35
22
|
/**
|
|
36
23
|
* Adds the UIProp definition as metadata to the property, allowing it to be read by any {@link RenderStrategy}
|
|
37
24
|
*
|
|
@@ -44,4 +31,4 @@ export type UIPropMetadata = {
|
|
|
44
31
|
* @category Decorators
|
|
45
32
|
* @subcategory ui-decorators
|
|
46
33
|
*/
|
|
47
|
-
export declare
|
|
34
|
+
export declare function uiprop(propName?: string | undefined, stringify?: boolean): (target: any, propertyKey: string) => void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderingError = void 0;
|
|
4
|
+
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
5
|
+
class RenderingError extends db_decorators_1.BaseError {
|
|
6
|
+
constructor(msg) {
|
|
7
|
+
super(RenderingError.name, msg);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.RenderingError = RenderingError;
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQW9EO0FBRXBELE1BQWEsY0FBZSxTQUFRLHlCQUFTO0lBQzNDLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBSkQsd0NBSUMiLCJmaWxlIjoidWkvZXJyb3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbmV4cG9ydCBjbGFzcyBSZW5kZXJpbmdFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihSZW5kZXJpbmdFcnJvci5uYW1lLCBtc2cpO1xuICB9XG59XG4iXX0=
|
package/lib/ui/index.cjs
CHANGED
|
@@ -20,6 +20,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
__exportStar(require("./constants.cjs"), exports);
|
|
22
22
|
__exportStar(require("./decorators.cjs"), exports);
|
|
23
|
+
__exportStar(require("./errors.cjs"), exports);
|
|
24
|
+
__exportStar(require("./interfaces.cjs"), exports);
|
|
23
25
|
__exportStar(require("./Rendering.cjs"), exports);
|
|
26
|
+
__exportStar(require("./types.cjs"), exports);
|
|
27
|
+
__exportStar(require("./utils.cjs"), exports);
|
|
24
28
|
|
|
25
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsOENBQTRCO0FBQzVCLCtDQUE2QjtBQUM3QiwyQ0FBeUI7QUFDekIsK0NBQTZCO0FBQzdCLDhDQUE0QjtBQUM1QiwwQ0FBd0I7QUFDeEIsMENBQXdCIiwiZmlsZSI6InVpL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbmFtZXNwYWNlIHVpLWRlY29yYXRvcnMudWlcbiAqIEBtZW1iZXJPZiB1aS1kZWNvcmF0b3JzXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JlbmRlcmluZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG4iXX0=
|
package/lib/ui/index.d.ts
CHANGED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoidWkvaW50ZXJmYWNlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkUHJvcGVydGllcyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBDcnVkT3BlcmF0aW9ucyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENydWRGb3JtRmllbGQ8VCA9IHZvaWQ+IHtcbiAgb3BlcmF0aW9uOiBDcnVkT3BlcmF0aW9ucztcbiAgcHJvcHM6IEZpZWxkUHJvcGVydGllcyAmIFQ7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG4iXX0=
|
package/lib/ui/types.cjs
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6InVpL3R5cGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkRGVmaW5pdGlvbjxUID0gdm9pZD4ge1xuICB0YWc6IHN0cmluZztcbiAgcHJvcHM6IFQgJiBGaWVsZFByb3BlcnRpZXM7XG4gIGNoaWxkcmVuPzogRmllbGREZWZpbml0aW9uPFQ+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRQcm9wZXJ0aWVzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgLy8gVmFsaWRhdGlvblxuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1heD86IG51bWJlciB8IERhdGU7XG4gIG1pbj86IG51bWJlciB8IERhdGU7XG4gIHBhdHRlcm4/OiBzdHJpbmc7XG4gIHN0ZXA/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgVUlFbGVtZW50TWV0YWRhdGFcbiAqIEBtZW1iZXJPZiB1aS1kZWNvcmF0b3JzLnVpLmRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IHR5cGUgVUlFbGVtZW50TWV0YWRhdGEgPSB7XG4gIHRhZzogc3RyaW5nO1xuICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHNlcmlhbGl6ZT86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIFVJRWxlbWVudE1ldGFkYXRhXG4gKiBAbWVtYmVyT2YgdWktZGVjb3JhdG9ycy51aS5kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIFVJTW9kZWxNZXRhZGF0YSA9IE9taXQ8VUlFbGVtZW50TWV0YWRhdGEsIFwic2VyaWFsaXplXCI+O1xuXG4vKipcbiAqIEB0eXBlZGVmIFVJUHJvcE1ldGFkYXRhXG4gKiBAbWVtYmVyT2YgdWktZGVjb3JhdG9ycy51aS5kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIFVJUHJvcE1ldGFkYXRhID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHN0cmluZ2lmeTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENydWRPcGVyYXRpb25LZXlzID1cbiAgfCBPcGVyYXRpb25LZXlzLkNSRUFURVxuICB8IE9wZXJhdGlvbktleXMuUkVBRFxuICB8IE9wZXJhdGlvbktleXMuVVBEQVRFXG4gIHwgT3BlcmF0aW9uS2V5cy5ERUxFVEU7XG4iXX0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { OperationKeys } from "@decaf-ts/db-decorators";
|
|
2
|
+
export interface FieldDefinition<T = void> {
|
|
3
|
+
tag: string;
|
|
4
|
+
props: T & FieldProperties;
|
|
5
|
+
children?: FieldDefinition<T>[];
|
|
6
|
+
}
|
|
7
|
+
export interface FieldProperties extends Record<string, any> {
|
|
8
|
+
name: string;
|
|
9
|
+
label: string;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
type: string;
|
|
12
|
+
hidden?: boolean;
|
|
13
|
+
required?: boolean;
|
|
14
|
+
readonly?: boolean;
|
|
15
|
+
maxLength?: number;
|
|
16
|
+
minLength?: number;
|
|
17
|
+
max?: number | Date;
|
|
18
|
+
min?: number | Date;
|
|
19
|
+
pattern?: string;
|
|
20
|
+
step?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @typedef UIElementMetadata
|
|
24
|
+
* @memberOf ui-decorators.ui.decorators
|
|
25
|
+
*/
|
|
26
|
+
export type UIElementMetadata = {
|
|
27
|
+
tag: string;
|
|
28
|
+
props?: Record<string, any>;
|
|
29
|
+
serialize?: boolean;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* @typedef UIElementMetadata
|
|
33
|
+
* @memberOf ui-decorators.ui.decorators
|
|
34
|
+
*/
|
|
35
|
+
export type UIModelMetadata = Omit<UIElementMetadata, "serialize">;
|
|
36
|
+
/**
|
|
37
|
+
* @typedef UIPropMetadata
|
|
38
|
+
* @memberOf ui-decorators.ui.decorators
|
|
39
|
+
*/
|
|
40
|
+
export type UIPropMetadata = {
|
|
41
|
+
name: string;
|
|
42
|
+
stringify: boolean;
|
|
43
|
+
};
|
|
44
|
+
export type CrudOperationKeys = OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE;
|
package/lib/ui/utils.cjs
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatByType = formatByType;
|
|
4
|
+
exports.parseToNumber = parseToNumber;
|
|
5
|
+
exports.escapeHtml = escapeHtml;
|
|
6
|
+
exports.revertHtml = revertHtml;
|
|
7
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
8
|
+
const constants_1 = require("./constants.cjs");
|
|
9
|
+
/**
|
|
10
|
+
* @function formatByType
|
|
11
|
+
*
|
|
12
|
+
* @memberOf ui-decorators-web.ui
|
|
13
|
+
*/
|
|
14
|
+
function formatByType(type, value) {
|
|
15
|
+
switch (type) {
|
|
16
|
+
case constants_1.UIKeys.DATE:
|
|
17
|
+
return (0, decorator_validation_1.formatDate)(new Date(value), constants_1.HTML5DateFormat);
|
|
18
|
+
default:
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function parseToNumber(value) {
|
|
23
|
+
if (typeof value === "number" && !isNaN(value))
|
|
24
|
+
return value;
|
|
25
|
+
const parsed = Number(value);
|
|
26
|
+
if (!isNaN(parsed))
|
|
27
|
+
return parsed;
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
function escapeHtml(value) {
|
|
31
|
+
if (!value)
|
|
32
|
+
return undefined;
|
|
33
|
+
const tagsToReplace = {
|
|
34
|
+
"&": "&",
|
|
35
|
+
"<": "<",
|
|
36
|
+
">": ">",
|
|
37
|
+
};
|
|
38
|
+
return `${value}`.replace(/[&<>]/g, (tag) => {
|
|
39
|
+
return tagsToReplace[tag] || tag;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function revertHtml(value) {
|
|
43
|
+
const tagsToReplace = {
|
|
44
|
+
"&": "&",
|
|
45
|
+
"<": "<",
|
|
46
|
+
">": ">",
|
|
47
|
+
};
|
|
48
|
+
return `${value}`.replace(/<|>|&/g, (tag) => {
|
|
49
|
+
return tagsToReplace[tag] || tag;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//
|
|
53
|
+
//
|
|
54
|
+
// export function getValidationsByAttribute<M extends Model>(
|
|
55
|
+
// validationProperties: UIPropertyDecoratorDefinition[],
|
|
56
|
+
// validationsByType: ValidationsByKey
|
|
57
|
+
// ): ValidationsByKey {
|
|
58
|
+
// const parseValueByKey = function (key, value, prop) {
|
|
59
|
+
// if (!value) return value;
|
|
60
|
+
//
|
|
61
|
+
// switch (key) {
|
|
62
|
+
// case ValidationKeys.PATTERN:
|
|
63
|
+
// const regexp = new RegExp(`^/(.+)/[gimuy]*$`, "g");
|
|
64
|
+
// const match = regexp.exec(value);
|
|
65
|
+
// return match ? match[1] : match;
|
|
66
|
+
// case ValidationKeys.MIN:
|
|
67
|
+
// case ValidationKeys.MAX:
|
|
68
|
+
// if (prop in validationsByType)
|
|
69
|
+
// return formatByType(Object.keys(validationsByType[prop])[0], value);
|
|
70
|
+
// default:
|
|
71
|
+
// return value;
|
|
72
|
+
// }
|
|
73
|
+
// };
|
|
74
|
+
// return validationProperties.reduce((accum, vp) => {
|
|
75
|
+
// accum[vp.prop] = vp.decorators.reduce((ac, decorator) => {
|
|
76
|
+
// if (decorator.key in ValidatableByAttribute) {
|
|
77
|
+
// let parsedValue = parseValueByKey(
|
|
78
|
+
// decorator.key,
|
|
79
|
+
// decorator.props["value"],
|
|
80
|
+
// vp.prop
|
|
81
|
+
// );
|
|
82
|
+
// if (typeof parsedValue === "undefined") parsedValue = "true";
|
|
83
|
+
// ac[decorator.key] = parsedValue;
|
|
84
|
+
// }
|
|
85
|
+
// return ac;
|
|
86
|
+
// }, {});
|
|
87
|
+
// return accum;
|
|
88
|
+
// }, {});
|
|
89
|
+
// }
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLG9DQU9DO0FBRUQsc0NBT0M7QUFFRCxnQ0FXQztBQUVELGdDQVVDO0FBakRELHlFQUE0RDtBQUM1RCwyQ0FBc0Q7QUFFdEQ7Ozs7R0FJRztBQUNILFNBQWdCLFlBQVksQ0FBQyxJQUFTLEVBQUUsS0FBVTtJQUNoRCxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxrQkFBTSxDQUFDLElBQUk7WUFDZCxPQUFPLElBQUEsaUNBQVUsRUFBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSwyQkFBZSxDQUFDLENBQUM7UUFDdEQ7WUFDRSxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxLQUFzQjtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUU3RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUVsQyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLEtBQWE7SUFDdEMsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUU3QixNQUFNLGFBQWEsR0FBMkI7UUFDNUMsR0FBRyxFQUFFLE9BQU87UUFDWixHQUFHLEVBQUUsTUFBTTtRQUNYLEdBQUcsRUFBRSxNQUFNO0tBQ1osQ0FBQztJQUNGLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDMUMsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxLQUFhO0lBQ3RDLE1BQU0sYUFBYSxHQUEyQjtRQUM1QyxPQUFPLEVBQUUsR0FBRztRQUNaLE1BQU0sRUFBRSxHQUFHO1FBQ1gsTUFBTSxFQUFFLEdBQUc7S0FDWixDQUFDO0lBRUYsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3BELE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxFQUFFO0FBQ0YsRUFBRTtBQUNGLDhEQUE4RDtBQUM5RCwyREFBMkQ7QUFDM0Qsd0NBQXdDO0FBQ3hDLHdCQUF3QjtBQUN4QiwwREFBMEQ7QUFDMUQsZ0NBQWdDO0FBQ2hDLEVBQUU7QUFDRixxQkFBcUI7QUFDckIscUNBQXFDO0FBQ3JDLDhEQUE4RDtBQUM5RCw0Q0FBNEM7QUFDNUMsMkNBQTJDO0FBQzNDLGlDQUFpQztBQUNqQyxpQ0FBaUM7QUFDakMseUNBQXlDO0FBQ3pDLGlGQUFpRjtBQUNqRixpQkFBaUI7QUFDakIsd0JBQXdCO0FBQ3hCLFFBQVE7QUFDUixPQUFPO0FBQ1Asd0RBQXdEO0FBQ3hELGlFQUFpRTtBQUNqRSx1REFBdUQ7QUFDdkQsNkNBQTZDO0FBQzdDLDJCQUEyQjtBQUMzQixzQ0FBc0M7QUFDdEMsb0JBQW9CO0FBQ3BCLGFBQWE7QUFDYix3RUFBd0U7QUFDeEUsMkNBQTJDO0FBQzNDLFVBQVU7QUFDVixtQkFBbUI7QUFDbkIsY0FBYztBQUNkLG9CQUFvQjtBQUNwQixZQUFZO0FBQ1osSUFBSSIsImZpbGUiOiJ1aS91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBIVE1MNURhdGVGb3JtYXQsIFVJS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBmdW5jdGlvbiBmb3JtYXRCeVR5cGVcbiAqXG4gKiBAbWVtYmVyT2YgdWktZGVjb3JhdG9ycy13ZWIudWlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEJ5VHlwZSh0eXBlOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBVSUtleXMuREFURTpcbiAgICAgIHJldHVybiBmb3JtYXREYXRlKG5ldyBEYXRlKHZhbHVlKSwgSFRNTDVEYXRlRm9ybWF0KTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRvTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiAmJiAhaXNOYU4odmFsdWUpKSByZXR1cm4gdmFsdWU7XG5cbiAgY29uc3QgcGFyc2VkID0gTnVtYmVyKHZhbHVlKTtcbiAgaWYgKCFpc05hTihwYXJzZWQpKSByZXR1cm4gcGFyc2VkO1xuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVIdG1sKHZhbHVlOiBzdHJpbmcpIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICBjb25zdCB0YWdzVG9SZXBsYWNlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIFwiJlwiOiBcIiZhbXA7XCIsXG4gICAgXCI8XCI6IFwiJmx0O1wiLFxuICAgIFwiPlwiOiBcIiZndDtcIixcbiAgfTtcbiAgcmV0dXJuIGAke3ZhbHVlfWAucmVwbGFjZSgvWyY8Pl0vZywgKHRhZykgPT4ge1xuICAgIHJldHVybiB0YWdzVG9SZXBsYWNlW3RhZ10gfHwgdGFnO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldmVydEh0bWwodmFsdWU6IHN0cmluZykge1xuICBjb25zdCB0YWdzVG9SZXBsYWNlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIFwiJmFtcDtcIjogXCImXCIsXG4gICAgXCImbHQ7XCI6IFwiPFwiLFxuICAgIFwiJmd0O1wiOiBcIj5cIixcbiAgfTtcblxuICByZXR1cm4gYCR7dmFsdWV9YC5yZXBsYWNlKC8mbHQ7fCZndDt8JmFtcDsvZywgKHRhZykgPT4ge1xuICAgIHJldHVybiB0YWdzVG9SZXBsYWNlW3RhZ10gfHwgdGFnO1xuICB9KTtcbn1cblxuLy9cbi8vXG4vLyBleHBvcnQgZnVuY3Rpb24gZ2V0VmFsaWRhdGlvbnNCeUF0dHJpYnV0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuLy8gICB2YWxpZGF0aW9uUHJvcGVydGllczogVUlQcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb25bXSxcbi8vICAgdmFsaWRhdGlvbnNCeVR5cGU6IFZhbGlkYXRpb25zQnlLZXlcbi8vICk6IFZhbGlkYXRpb25zQnlLZXkge1xuLy8gICBjb25zdCBwYXJzZVZhbHVlQnlLZXkgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgcHJvcCkge1xuLy8gICAgIGlmICghdmFsdWUpIHJldHVybiB2YWx1ZTtcbi8vXG4vLyAgICAgc3dpdGNoIChrZXkpIHtcbi8vICAgICAgIGNhc2UgVmFsaWRhdGlvbktleXMuUEFUVEVSTjpcbi8vICAgICAgICAgY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cChgXi8oLispL1tnaW11eV0qJGAsIFwiZ1wiKTtcbi8vICAgICAgICAgY29uc3QgbWF0Y2ggPSByZWdleHAuZXhlYyh2YWx1ZSk7XG4vLyAgICAgICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogbWF0Y2g7XG4vLyAgICAgICBjYXNlIFZhbGlkYXRpb25LZXlzLk1JTjpcbi8vICAgICAgIGNhc2UgVmFsaWRhdGlvbktleXMuTUFYOlxuLy8gICAgICAgICBpZiAocHJvcCBpbiB2YWxpZGF0aW9uc0J5VHlwZSlcbi8vICAgICAgICAgICByZXR1cm4gZm9ybWF0QnlUeXBlKE9iamVjdC5rZXlzKHZhbGlkYXRpb25zQnlUeXBlW3Byb3BdKVswXSwgdmFsdWUpO1xuLy8gICAgICAgZGVmYXVsdDpcbi8vICAgICAgICAgcmV0dXJuIHZhbHVlO1xuLy8gICAgIH1cbi8vICAgfTtcbi8vICAgcmV0dXJuIHZhbGlkYXRpb25Qcm9wZXJ0aWVzLnJlZHVjZSgoYWNjdW0sIHZwKSA9PiB7XG4vLyAgICAgYWNjdW1bdnAucHJvcF0gPSB2cC5kZWNvcmF0b3JzLnJlZHVjZSgoYWMsIGRlY29yYXRvcikgPT4ge1xuLy8gICAgICAgaWYgKGRlY29yYXRvci5rZXkgaW4gVmFsaWRhdGFibGVCeUF0dHJpYnV0ZSkge1xuLy8gICAgICAgICBsZXQgcGFyc2VkVmFsdWUgPSBwYXJzZVZhbHVlQnlLZXkoXG4vLyAgICAgICAgICAgZGVjb3JhdG9yLmtleSxcbi8vICAgICAgICAgICBkZWNvcmF0b3IucHJvcHNbXCJ2YWx1ZVwiXSxcbi8vICAgICAgICAgICB2cC5wcm9wXG4vLyAgICAgICAgICk7XG4vLyAgICAgICAgIGlmICh0eXBlb2YgcGFyc2VkVmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHBhcnNlZFZhbHVlID0gXCJ0cnVlXCI7XG4vLyAgICAgICAgIGFjW2RlY29yYXRvci5rZXldID0gcGFyc2VkVmFsdWU7XG4vLyAgICAgICB9XG4vLyAgICAgICByZXR1cm4gYWM7XG4vLyAgICAgfSwge30pO1xuLy8gICAgIHJldHVybiBhY2N1bTtcbi8vICAgfSwge30pO1xuLy8gfVxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @function formatByType
|
|
3
|
+
*
|
|
4
|
+
* @memberOf ui-decorators-web.ui
|
|
5
|
+
*/
|
|
6
|
+
export declare function formatByType(type: any, value: any): any;
|
|
7
|
+
export declare function parseToNumber(value: string | number): number | undefined;
|
|
8
|
+
export declare function escapeHtml(value: string): string | undefined;
|
|
9
|
+
export declare function revertHtml(value: string): string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/ui-decorators",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Extension of decorator validation to ui elements to allow for web integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -105,5 +105,10 @@
|
|
|
105
105
|
"@decaf-ts/decorator-validation": "latest",
|
|
106
106
|
"@decaf-ts/reflection": "latest",
|
|
107
107
|
"reflect-metadata": "^0.2.1"
|
|
108
|
+
},
|
|
109
|
+
"overrides": {
|
|
110
|
+
"gulp-run-command": {
|
|
111
|
+
"cross-spawn": "^7.0.6"
|
|
112
|
+
}
|
|
108
113
|
}
|
|
109
114
|
}
|