@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.
Files changed (57) hide show
  1. package/dist/esm/ui-decorators.bundle.min.esm.js +1 -1
  2. package/dist/ui-decorators.bundle.min.js +1 -1
  3. package/lib/esm/index.d.ts +1 -1
  4. package/lib/esm/index.js +2 -2
  5. package/lib/esm/model/Renderable.d.ts +3 -0
  6. package/lib/esm/model/Renderable.js +3 -0
  7. package/lib/esm/model/decorators.d.ts +1 -1
  8. package/lib/esm/model/decorators.js +4 -4
  9. package/lib/esm/model/index.d.ts +1 -0
  10. package/lib/esm/model/index.js +2 -1
  11. package/lib/esm/model/model.d.ts +2 -2
  12. package/lib/esm/model/model.js +1 -1
  13. package/lib/esm/model/overrides.js +1 -5
  14. package/lib/esm/ui/Rendering.d.ts +7 -4
  15. package/lib/esm/ui/Rendering.js +111 -6
  16. package/lib/esm/ui/constants.d.ts +35 -0
  17. package/lib/esm/ui/constants.js +58 -2
  18. package/lib/esm/ui/decorators.d.ts +8 -21
  19. package/lib/esm/ui/decorators.js +28 -24
  20. package/lib/esm/ui/errors.d.ts +4 -0
  21. package/lib/esm/ui/errors.js +8 -0
  22. package/lib/esm/ui/index.d.ts +4 -0
  23. package/lib/esm/ui/index.js +5 -1
  24. package/lib/esm/ui/interfaces.d.ts +7 -0
  25. package/lib/esm/ui/interfaces.js +3 -0
  26. package/lib/esm/ui/types.d.ts +44 -0
  27. package/lib/esm/ui/types.js +3 -0
  28. package/lib/esm/ui/utils.d.ts +9 -0
  29. package/lib/esm/ui/utils.js +85 -0
  30. package/lib/index.cjs +2 -2
  31. package/lib/index.d.ts +1 -1
  32. package/lib/model/Renderable.cjs +4 -0
  33. package/lib/model/Renderable.d.ts +3 -0
  34. package/lib/model/decorators.cjs +4 -4
  35. package/lib/model/decorators.d.ts +1 -1
  36. package/lib/model/index.cjs +2 -1
  37. package/lib/model/index.d.ts +1 -0
  38. package/lib/model/model.cjs +1 -1
  39. package/lib/model/model.d.ts +2 -2
  40. package/lib/model/overrides.cjs +1 -5
  41. package/lib/ui/Rendering.cjs +109 -4
  42. package/lib/ui/Rendering.d.ts +7 -4
  43. package/lib/ui/constants.cjs +58 -2
  44. package/lib/ui/constants.d.ts +35 -0
  45. package/lib/ui/decorators.cjs +31 -26
  46. package/lib/ui/decorators.d.ts +8 -21
  47. package/lib/ui/errors.cjs +12 -0
  48. package/lib/ui/errors.d.ts +4 -0
  49. package/lib/ui/index.cjs +5 -1
  50. package/lib/ui/index.d.ts +4 -0
  51. package/lib/ui/interfaces.cjs +4 -0
  52. package/lib/ui/interfaces.d.ts +7 -0
  53. package/lib/ui/types.cjs +4 -0
  54. package/lib/ui/types.d.ts +44 -0
  55. package/lib/ui/utils.cjs +91 -0
  56. package/lib/ui/utils.d.ts +9 -0
  57. package/package.json +6 -1
@@ -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[];
@@ -1,43 +1,47 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uiprop = void 0;
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
- * @param {string} key
15
- *
16
- * @function getUIKey
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 {any[]} [args] optional arguments that will be passed to the rendering strategy.
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, ...args) {
34
- const metadata = {
35
- tag: tag,
36
- serialize: serialize,
37
- props: props,
38
- args: args,
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
- const uiprop = (propName = undefined, stringify = false) => (target, propertyKey) => {
55
- const metadata = {
56
- name: propName || propertyKey,
57
- stringify: stringify,
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
- Reflect.defineMetadata(getUIKey(constants_1.UIKeys.PROP), metadata, target, propertyKey);
60
- };
61
- exports.uiprop = uiprop;
66
+ }
62
67
 
63
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBDQSw4QkFhQztBQXZERCw0QkFBMEI7QUFDMUIsMkNBQXFDO0FBQ3JDLHlFQUE4RDtBQUU5RDs7O0dBR0c7QUFFSDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLGtCQUFNLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztBQWF2RDs7Ozs7Ozs7Ozs7R0FXRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsR0FBVyxFQUNYLEtBQWtDLEVBQ2xDLFlBQXFCLEtBQUssRUFDMUIsR0FBRyxJQUFXO0lBRWQsTUFBTSxRQUFRLEdBQXNCO1FBQ2xDLEdBQUcsRUFBRSxHQUFHO1FBQ1IsU0FBUyxFQUFFLFNBQVM7UUFDcEIsS0FBSyxFQUFFLEtBQUs7UUFDWixJQUFJLEVBQUUsSUFBSTtLQUNYLENBQUM7SUFDRixPQUFPLElBQUEsbUNBQVksRUFBQyxRQUFRLENBQUMsa0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBVUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxNQUFNLE1BQU0sR0FDakIsQ0FBQyxXQUErQixTQUFTLEVBQUUsWUFBcUIsS0FBSyxFQUFFLEVBQUUsQ0FDekUsQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBRSxFQUFFO0lBQ25DLE1BQU0sUUFBUSxHQUFtQjtRQUMvQixJQUFJLEVBQUUsUUFBUSxJQUFJLFdBQVc7UUFDN0IsU0FBUyxFQUFFLFNBQVM7S0FDckIsQ0FBQztJQUVGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLFFBQVEsQ0FBQyxrQkFBTSxDQUFDLElBQUksQ0FBQyxFQUNyQixRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsQ0FDWixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBZFMsUUFBQSxNQUFNLFVBY2YiLCJmaWxlIjoidWkvZGVjb3JhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCB7IFVJS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgcHJvcE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEBuYW1lc3BhY2UgdWktZGVjb3JhdG9ycy51aS5kZWNvcmF0b3JzXG4gKiBAbWVtYmVyT2YgdWktZGVjb3JhdG9ycy51aVxuICovXG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqXG4gKiBAZnVuY3Rpb24gZ2V0VUlLZXlcbiAqXG4gKiBAbWVtYmVyT2YgdWktZGVjb3JhdG9ycy51aS5kZWNvcmF0b3JzXG4gKi9cbmNvbnN0IGdldFVJS2V5ID0gKGtleTogc3RyaW5nKSA9PiBVSUtleXMuUkVGTEVDVCArIGtleTtcblxuLyoqXG4gKiBAdHlwZWRlZiBVSUVsZW1lbnRNZXRhZGF0YVxuICogQG1lbWJlck9mIHVpLWRlY29yYXRvcnMudWkuZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSUVsZW1lbnRNZXRhZGF0YSA9IHtcbiAgdGFnOiBzdHJpbmc7XG4gIGFyZ3M/OiBhbnlbXTtcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBzZXJpYWxpemU/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBBZGRzIHRoZSBVSUVsZW1lbnQgZGVmaW5pdGlvbiBhcyBtZXRhZGF0YSB0byB0aGUgcHJvcGVydHksIGFsbG93aW5nIGl0IHRvIGJlIHJlYWQgYnkgYW55IHtAbGluayBSZW5kZXJTdHJhdGVneX1cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBjb21wb25lbnQvSFRNTCBlbGVtZW50IHRhZyBuYW1lXG4gKiBAcGFyYW0ge3t9fSBbcHJvcHNdIFRoZSBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhhdCBjb21wb25lbnQvSFRNTCBFbGVtZW50XG4gKiBAcGFyYW0ge2FueVtdfSBbYXJnc10gb3B0aW9uYWwgYXJndW1lbnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHJlbmRlcmluZyBzdHJhdGVneS5cbiAqXG4gKiBAZGVjb3JhdG9yIHVpZWxlbWVudFxuICpcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKiBAc3ViY2F0ZWdvcnkgdWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdWllbGVtZW50KFxuICB0YWc6IHN0cmluZyxcbiAgcHJvcHM/OiB7IFtpbmRleGVyOiBzdHJpbmddOiBhbnkgfSxcbiAgc2VyaWFsaXplOiBib29sZWFuID0gZmFsc2UsXG4gIC4uLmFyZ3M6IGFueVtdXG4pIHtcbiAgY29uc3QgbWV0YWRhdGE6IFVJRWxlbWVudE1ldGFkYXRhID0ge1xuICAgIHRhZzogdGFnLFxuICAgIHNlcmlhbGl6ZTogc2VyaWFsaXplLFxuICAgIHByb3BzOiBwcm9wcyxcbiAgICBhcmdzOiBhcmdzLFxuICB9O1xuICByZXR1cm4gcHJvcE1ldGFkYXRhKGdldFVJS2V5KFVJS2V5cy5FTEVNRU5UKSwgbWV0YWRhdGEpO1xufVxuLyoqXG4gKiBAdHlwZWRlZiBVSVByb3BNZXRhZGF0YVxuICogQG1lbWJlck9mIHVpLWRlY29yYXRvcnMudWkuZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSVByb3BNZXRhZGF0YSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzdHJpbmdpZnk6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEFkZHMgdGhlIFVJUHJvcCBkZWZpbml0aW9uIGFzIG1ldGFkYXRhIHRvIHRoZSBwcm9wZXJ0eSwgYWxsb3dpbmcgaXQgdG8gYmUgcmVhZCBieSBhbnkge0BsaW5rIFJlbmRlclN0cmF0ZWd5fVxuICpcbiAqIHRoaXMgcmVxdWlyZXMgYSAnQHVpbW9kZWwnIHdpdGggYSBkZWZpbmVkIHRhZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbcHJvcE5hbWVdIHRoZSBwcm9wZXJ0eSBuYW1lIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNvbXBvbmVudC4gZGVmYXVsdHMgdG8gdGhlIFByb3BlcnR5S2V5XG4gKlxuICogQGRlY29yYXRvciB1aXByb3BcbiAqXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICogQHN1YmNhdGVnb3J5IHVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IHVpcHJvcCA9XG4gIChwcm9wTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLCBzdHJpbmdpZnk6IGJvb2xlYW4gPSBmYWxzZSkgPT5cbiAgKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFVJUHJvcE1ldGFkYXRhID0ge1xuICAgICAgbmFtZTogcHJvcE5hbWUgfHwgcHJvcGVydHlLZXksXG4gICAgICBzdHJpbmdpZnk6IHN0cmluZ2lmeSxcbiAgICB9O1xuXG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIGdldFVJS2V5KFVJS2V5cy5QUk9QKSxcbiAgICAgIG1ldGFkYXRhLFxuICAgICAgdGFyZ2V0LFxuICAgICAgcHJvcGVydHlLZXlcbiAgICApO1xuICB9O1xuIl19
68
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsd0JBS0M7QUFFRCx3QkFPQztBQWNELDhCQXNCQztBQWNELHdCQWNDO0FBMUZELDRCQUEwQjtBQUMxQiwyQ0FBcUM7QUFDckMseUVBQThEO0FBRTlELDJDQUE4QztBQUM5QywyREFBd0Q7QUFFeEQ7OztHQUdHO0FBRUgsU0FBZ0IsTUFBTSxDQUFDLEdBQUcsVUFBK0I7SUFDdkQsT0FBTyxJQUFBLG1DQUFZLEVBQ2pCLDJCQUFlLENBQUMsR0FBRyxDQUFDLGtCQUFNLENBQUMsTUFBTSxDQUFDLEVBQ2xDLFVBQVUsQ0FDWCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLE1BQU07SUFDcEIsT0FBTyxNQUFNLENBQ1gsNkJBQWEsQ0FBQyxNQUFNLEVBQ3BCLDZCQUFhLENBQUMsSUFBSSxFQUNsQiw2QkFBYSxDQUFDLE1BQU0sRUFDcEIsNkJBQWEsQ0FBQyxNQUFNLENBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLEdBQVcsRUFDWCxLQUEyQixFQUMzQixZQUFxQixLQUFLO0lBRTFCLE9BQU8sQ0FBQyxRQUFhLEVBQUUsV0FBaUIsRUFBRSxFQUFFO1FBQzFDLE1BQU0sUUFBUSxHQUFzQjtZQUNsQyxHQUFHLEVBQUUsR0FBRztZQUNSLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUNsQjtnQkFDRSxJQUFJLEVBQUUsV0FBVzthQUNsQixFQUNELEtBQUssSUFBSSxFQUFFLENBQ1o7U0FDRixDQUFDO1FBRUYsT0FBTyxJQUFBLG1DQUFZLEVBQUMsMkJBQWUsQ0FBQyxHQUFHLENBQUMsa0JBQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FDaEUsUUFBUSxFQUNSLFdBQVcsQ0FDWixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsU0FBZ0IsTUFBTSxDQUNwQixXQUErQixTQUFTLEVBQ3hDLFlBQXFCLEtBQUs7SUFFMUIsT0FBTyxDQUFDLE1BQVcsRUFBRSxXQUFtQixFQUFFLEVBQUU7UUFDMUMsTUFBTSxRQUFRLEdBQW1CO1lBQy9CLElBQUksRUFBRSxRQUFRLElBQUksV0FBVztZQUM3QixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO1FBQ0YsSUFBQSxtQ0FBWSxFQUFDLDJCQUFlLENBQUMsR0FBRyxDQUFDLGtCQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQ3RELE1BQU0sRUFDTixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJmaWxlIjoidWkvZGVjb3JhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCB7IFVJS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgcHJvcE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ3J1ZE9wZXJhdGlvbktleXMsIFVJRWxlbWVudE1ldGFkYXRhLCBVSVByb3BNZXRhZGF0YSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBSZW5kZXJpbmdFbmdpbmUgfSBmcm9tIFwiLi9SZW5kZXJpbmdcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAbmFtZXNwYWNlIHVpLWRlY29yYXRvcnMudWkuZGVjb3JhdG9yc1xuICogQG1lbWJlck9mIHVpLWRlY29yYXRvcnMudWlcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gaGlkZU9uKC4uLm9wZXJhdGlvbnM6IENydWRPcGVyYXRpb25LZXlzW10pIHtcbiAgcmV0dXJuIHByb3BNZXRhZGF0YTxDcnVkT3BlcmF0aW9uS2V5c1tdPihcbiAgICBSZW5kZXJpbmdFbmdpbmUua2V5KFVJS2V5cy5ISURERU4pLFxuICAgIG9wZXJhdGlvbnNcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhpZGRlbigpIHtcbiAgcmV0dXJuIGhpZGVPbihcbiAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICBPcGVyYXRpb25LZXlzLlJFQUQsXG4gICAgT3BlcmF0aW9uS2V5cy5VUERBVEUsXG4gICAgT3BlcmF0aW9uS2V5cy5ERUxFVEVcbiAgKTtcbn1cblxuLyoqXG4gKiBBZGRzIHRoZSBVSUVsZW1lbnQgZGVmaW5pdGlvbiBhcyBtZXRhZGF0YSB0byB0aGUgcHJvcGVydHksIGFsbG93aW5nIGl0IHRvIGJlIHJlYWQgYnkgYW55IHtAbGluayBSZW5kZXJTdHJhdGVneX1cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBjb21wb25lbnQvSFRNTCBlbGVtZW50IHRhZyBuYW1lXG4gKiBAcGFyYW0ge3t9fSBbcHJvcHNdIFRoZSBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhhdCBjb21wb25lbnQvSFRNTCBFbGVtZW50XG4gKiBAcGFyYW0gc2VyaWFsaXplXG4gKlxuICogQGRlY29yYXRvciB1aWVsZW1lbnRcbiAqXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICogQHN1YmNhdGVnb3J5IHVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpZWxlbWVudChcbiAgdGFnOiBzdHJpbmcsXG4gIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgc2VyaWFsaXplOiBib29sZWFuID0gZmFsc2Vcbikge1xuICByZXR1cm4gKG9yaWdpbmFsOiBhbnksIHByb3BlcnR5S2V5PzogYW55KSA9PiB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFVJRWxlbWVudE1ldGFkYXRhID0ge1xuICAgICAgdGFnOiB0YWcsXG4gICAgICBzZXJpYWxpemU6IHNlcmlhbGl6ZSxcbiAgICAgIHByb3BzOiBPYmplY3QuYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogcHJvcGVydHlLZXksXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BzIHx8IHt9XG4gICAgICApLFxuICAgIH07XG5cbiAgICByZXR1cm4gcHJvcE1ldGFkYXRhKFJlbmRlcmluZ0VuZ2luZS5rZXkoVUlLZXlzLkVMRU1FTlQpLCBtZXRhZGF0YSkoXG4gICAgICBvcmlnaW5hbCxcbiAgICAgIHByb3BlcnR5S2V5XG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBBZGRzIHRoZSBVSVByb3AgZGVmaW5pdGlvbiBhcyBtZXRhZGF0YSB0byB0aGUgcHJvcGVydHksIGFsbG93aW5nIGl0IHRvIGJlIHJlYWQgYnkgYW55IHtAbGluayBSZW5kZXJTdHJhdGVneX1cbiAqXG4gKiB0aGlzIHJlcXVpcmVzIGEgJ0B1aW1vZGVsJyB3aXRoIGEgZGVmaW5lZCB0YWdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW3Byb3BOYW1lXSB0aGUgcHJvcGVydHkgbmFtZSB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBjb21wb25lbnQuIGRlZmF1bHRzIHRvIHRoZSBQcm9wZXJ0eUtleVxuICpcbiAqIEBkZWNvcmF0b3IgdWlwcm9wXG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqIEBzdWJjYXRlZ29yeSB1aS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aXByb3AoXG4gIHByb3BOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIHN0cmluZ2lmeTogYm9vbGVhbiA9IGZhbHNlXG4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG1ldGFkYXRhOiBVSVByb3BNZXRhZGF0YSA9IHtcbiAgICAgIG5hbWU6IHByb3BOYW1lIHx8IHByb3BlcnR5S2V5LFxuICAgICAgc3RyaW5naWZ5OiBzdHJpbmdpZnksXG4gICAgfTtcbiAgICBwcm9wTWV0YWRhdGEoUmVuZGVyaW5nRW5naW5lLmtleShVSUtleXMuUFJPUCksIG1ldGFkYXRhKShcbiAgICAgIHRhcmdldCxcbiAgICAgIHByb3BlcnR5S2V5XG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,37 +1,24 @@
1
1
  import "reflect-metadata";
2
+ import { CrudOperationKeys } from "./types";
2
3
  /**
3
- * @typedef UIElementMetadata
4
- * @memberOf ui-decorators.ui.decorators
4
+ * @namespace ui-decorators.ui.decorators
5
+ * @memberOf ui-decorators.ui
5
6
  */
6
- export type UIElementMetadata = {
7
- tag: string;
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 {any[]} [args] optional arguments that will be passed to the rendering strategy.
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 const uiprop: (propName?: string | undefined, stringify?: boolean) => (target: any, propertyKey: string) => void;
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=
@@ -0,0 +1,4 @@
1
+ import { BaseError } from "@decaf-ts/db-decorators";
2
+ export declare class RenderingError extends BaseError {
3
+ constructor(msg: string | Error);
4
+ }
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsOENBQTRCO0FBQzVCLCtDQUE2QjtBQUM3Qiw4Q0FBNEIiLCJmaWxlIjoidWkvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBuYW1lc3BhY2UgdWktZGVjb3JhdG9ycy51aVxuICogQG1lbWJlck9mIHVpLWRlY29yYXRvcnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JlbmRlcmluZ1wiO1xuIl19
29
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy91aS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsOENBQTRCO0FBQzVCLCtDQUE2QjtBQUM3QiwyQ0FBeUI7QUFDekIsK0NBQTZCO0FBQzdCLDhDQUE0QjtBQUM1QiwwQ0FBd0I7QUFDeEIsMENBQXdCIiwiZmlsZSI6InVpL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbmFtZXNwYWNlIHVpLWRlY29yYXRvcnMudWlcbiAqIEBtZW1iZXJPZiB1aS1kZWNvcmF0b3JzXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JlbmRlcmluZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG4iXX0=
package/lib/ui/index.d.ts CHANGED
@@ -4,4 +4,8 @@
4
4
  */
5
5
  export * from "./constants";
6
6
  export * from "./decorators";
7
+ export * from "./errors";
8
+ export * from "./interfaces";
7
9
  export * from "./Rendering";
10
+ export * from "./types";
11
+ export * from "./utils";
@@ -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=
@@ -0,0 +1,7 @@
1
+ import { FieldProperties } from "./types";
2
+ import { CrudOperations } from "@decaf-ts/db-decorators";
3
+ export interface CrudFormField<T = void> {
4
+ operation: CrudOperations;
5
+ props: FieldProperties & T;
6
+ value: string;
7
+ }
@@ -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;
@@ -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
+ "&": "&amp;",
35
+ "<": "&lt;",
36
+ ">": "&gt;",
37
+ };
38
+ return `${value}`.replace(/[&<>]/g, (tag) => {
39
+ return tagsToReplace[tag] || tag;
40
+ });
41
+ }
42
+ function revertHtml(value) {
43
+ const tagsToReplace = {
44
+ "&amp;": "&",
45
+ "&lt;": "<",
46
+ "&gt;": ">",
47
+ };
48
+ return `${value}`.replace(/&lt;|&gt;|&amp;/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.0",
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
  }