@researchdatabox/sails-ng-common 0.0.1-beta.9474 → 0.0.1-beta.9604

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 (101) hide show
  1. package/dist/src/config/component/accordion.model.d.ts +6 -6
  2. package/dist/src/config/component/accordion.model.js +13 -13
  3. package/dist/src/config/component/action-row-layout.model.d.ts +1 -1
  4. package/dist/src/config/component/action-row-layout.model.js +3 -3
  5. package/dist/src/config/component/cancel-button.model.d.ts +2 -2
  6. package/dist/src/config/component/cancel-button.model.js +5 -5
  7. package/dist/src/config/component/checkbox-input.model.d.ts +3 -3
  8. package/dist/src/config/component/checkbox-input.model.js +7 -7
  9. package/dist/src/config/component/checkbox-tree.model.d.ts +3 -3
  10. package/dist/src/config/component/checkbox-tree.model.js +7 -7
  11. package/dist/src/config/component/content.model.d.ts +2 -2
  12. package/dist/src/config/component/content.model.js +5 -5
  13. package/dist/src/config/component/data-location.model.d.ts +3 -3
  14. package/dist/src/config/component/data-location.model.js +7 -7
  15. package/dist/src/config/component/date-input.model.d.ts +3 -3
  16. package/dist/src/config/component/date-input.model.js +7 -7
  17. package/dist/src/config/component/default-layout.model.d.ts +1 -1
  18. package/dist/src/config/component/default-layout.model.js +3 -3
  19. package/dist/src/config/component/delete-button.model.d.ts +2 -2
  20. package/dist/src/config/component/delete-button.model.js +5 -5
  21. package/dist/src/config/component/dropdown-input.model.d.ts +3 -3
  22. package/dist/src/config/component/dropdown-input.model.js +7 -7
  23. package/dist/src/config/component/file-upload.model.d.ts +3 -3
  24. package/dist/src/config/component/file-upload.model.js +7 -7
  25. package/dist/src/config/component/group.model.d.ts +3 -3
  26. package/dist/src/config/component/group.model.js +7 -7
  27. package/dist/src/config/component/inline-layout.model.d.ts +1 -1
  28. package/dist/src/config/component/inline-layout.model.js +3 -3
  29. package/dist/src/config/component/map.model.d.ts +3 -3
  30. package/dist/src/config/component/map.model.js +7 -7
  31. package/dist/src/config/component/pdf-list.model.d.ts +3 -3
  32. package/dist/src/config/component/pdf-list.model.js +7 -7
  33. package/dist/src/config/component/publish-data-location-refresh.model.d.ts +2 -2
  34. package/dist/src/config/component/publish-data-location-refresh.model.js +5 -5
  35. package/dist/src/config/component/publish-data-location-selector.model.d.ts +3 -3
  36. package/dist/src/config/component/publish-data-location-selector.model.js +7 -7
  37. package/dist/src/config/component/question-tree.model.d.ts +3 -3
  38. package/dist/src/config/component/question-tree.model.js +7 -7
  39. package/dist/src/config/component/radio-input.model.d.ts +3 -3
  40. package/dist/src/config/component/radio-input.model.js +7 -7
  41. package/dist/src/config/component/record-metadata-retriever.model.d.ts +2 -2
  42. package/dist/src/config/component/record-metadata-retriever.model.js +5 -5
  43. package/dist/src/config/component/record-selector.model.d.ts +3 -3
  44. package/dist/src/config/component/record-selector.model.js +7 -7
  45. package/dist/src/config/component/repeatable.model.d.ts +4 -4
  46. package/dist/src/config/component/repeatable.model.js +9 -9
  47. package/dist/src/config/component/reusable.model.d.ts +2 -2
  48. package/dist/src/config/component/reusable.model.js +5 -5
  49. package/dist/src/config/component/rich-text-editor.model.d.ts +3 -3
  50. package/dist/src/config/component/rich-text-editor.model.js +7 -7
  51. package/dist/src/config/component/save-button.model.d.ts +2 -2
  52. package/dist/src/config/component/save-button.model.js +5 -5
  53. package/dist/src/config/component/save-status.model.d.ts +2 -2
  54. package/dist/src/config/component/save-status.model.js +5 -5
  55. package/dist/src/config/component/simple-input.model.d.ts +3 -3
  56. package/dist/src/config/component/simple-input.model.js +7 -7
  57. package/dist/src/config/component/suggested-validation-summary.model.d.ts +2 -2
  58. package/dist/src/config/component/suggested-validation-summary.model.js +5 -5
  59. package/dist/src/config/component/tab-content.model.d.ts +3 -3
  60. package/dist/src/config/component/tab-content.model.js +7 -7
  61. package/dist/src/config/component/tab-nav-button.model.d.ts +2 -2
  62. package/dist/src/config/component/tab-nav-button.model.js +5 -5
  63. package/dist/src/config/component/tab.model.d.ts +3 -3
  64. package/dist/src/config/component/tab.model.js +7 -7
  65. package/dist/src/config/component/text-area.model.d.ts +3 -3
  66. package/dist/src/config/component/text-area.model.js +7 -7
  67. package/dist/src/config/component/typeahead-input.model.d.ts +3 -3
  68. package/dist/src/config/component/typeahead-input.model.js +7 -7
  69. package/dist/src/config/component/validation-summary.model.d.ts +2 -2
  70. package/dist/src/config/component/validation-summary.model.js +5 -5
  71. package/dist/src/config/field.model.d.ts +1 -1
  72. package/dist/src/config/form-component.model.d.ts +1 -1
  73. package/dist/src/config/form-component.model.js +1 -1
  74. package/dist/src/config/form-config.model.d.ts +1 -1
  75. package/dist/src/config/form-config.model.js +3 -3
  76. package/dist/src/config/form-override.model.js +1 -1
  77. package/dist/src/config/form-prehydrate.outline.d.ts +17 -0
  78. package/dist/src/config/form-prehydrate.outline.js +5 -0
  79. package/dist/src/config/form-types.model.js +2 -2
  80. package/dist/src/config/helpers.d.ts +8 -0
  81. package/dist/src/config/helpers.js +18 -1
  82. package/dist/src/config/names/naming-helpers.d.ts +7 -0
  83. package/dist/src/config/names/naming-helpers.js +45 -6
  84. package/dist/src/config/names/query-helpers.js +3 -8
  85. package/dist/src/config/visitor/base.model.d.ts +94 -94
  86. package/dist/src/config/visitor/base.model.js +188 -188
  87. package/dist/src/config/visitor/base.outline.d.ts +95 -95
  88. package/dist/src/config/visitor/common.model.d.ts +2 -2
  89. package/dist/src/config/visitor/common.model.js +8 -8
  90. package/dist/src/index.d.ts +2 -0
  91. package/dist/src/index.js +3 -1
  92. package/dist/src/jsonata-helpers.d.ts +25 -0
  93. package/dist/src/jsonata-helpers.js +46 -0
  94. package/dist/src/template.outline.js +3 -2
  95. package/dist/src/validation/form.model.d.ts +44 -5
  96. package/dist/src/validation/form.model.js +1 -1
  97. package/dist/src/validation/validators-support.d.ts +9 -9
  98. package/dist/src/validation/validators-support.js +36 -23
  99. package/dist/src/validation/validators.d.ts +8 -10
  100. package/dist/src/validation/validators.js +38 -26
  101. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { FormValidationGroups, FormValidatorComponentErrors, FormValidatorConfig, FormValidatorDefinition, FormValidatorErrors, FormValidatorFn } from "./form.model";
1
+ import { FormValidationGroups, FormValidatorComponentErrors, FormValidatorConfig, FormValidatorDefinition, FormValidatorErrors, FormValidatorFns } from "./form.model";
2
2
  export declare class ValidatorsSupport {
3
3
  /**
4
4
  * Create validator definition mapping from the validator definitions.
@@ -10,14 +10,7 @@ export declare class ValidatorsSupport {
10
10
  * @param defMap The validator definition mapping.
11
11
  * @param config The form validator config blocks.
12
12
  */
13
- createFormValidatorInstancesFromMapping(defMap: Map<string, FormValidatorDefinition>, config: FormValidatorConfig[] | null | undefined): FormValidatorFn[];
14
- /**
15
- * Create instances of the given form validators.
16
- *
17
- * @param definition The form validator definitions.
18
- * @param config The form validator config blocks.
19
- */
20
- createFormValidatorInstances(definition: FormValidatorDefinition[] | null | undefined, config: FormValidatorConfig[] | null | undefined): FormValidatorFn[];
13
+ createFormValidatorInstancesFromMapping(defMap: Map<string, FormValidatorDefinition>, config: FormValidatorConfig[] | null | undefined): FormValidatorFns;
21
14
  /**
22
15
  * Get the form validator errors for a component's control.
23
16
  * @param errors The control's errors.
@@ -31,6 +24,13 @@ export declare class ValidatorsSupport {
31
24
  * @param validator The validator config for a component's model.
32
25
  */
33
26
  isValidatorEnabled(availableGroups: FormValidationGroups, enabledGroupNames: string[], validator: FormValidatorConfig): boolean;
27
+ /**
28
+ * Assign the jsonata evaluator to each 'jsonata-expression' validator.
29
+ * This must be done before filtering the validators on the client, as the compiled templates are referenced by index.
30
+ * @param validators The validator configurations from the model config.
31
+ * @param callback The callback for each validator config with the index.
32
+ */
33
+ assignJsonataEvaluators(validators: FormValidatorConfig[], callback: (validator: FormValidatorConfig, index: number) => unknown): void;
34
34
  /**
35
35
  * Get the enabled validators.
36
36
  * @param availableGroups All available validation groups in this form.
@@ -30,7 +30,7 @@ class ValidatorsSupport {
30
30
  * @param config The form validator config blocks.
31
31
  */
32
32
  createFormValidatorInstancesFromMapping(defMap, config) {
33
- const result = [];
33
+ const result = { syncDefs: [], asyncDefs: [] };
34
34
  for (const validatorConfigItem of (config ?? [])) {
35
35
  const validatorClass = validatorConfigItem?.class;
36
36
  const def = defMap.get(validatorClass);
@@ -39,30 +39,23 @@ class ValidatorsSupport {
39
39
  + `the available validators are: '${Array.from(defMap.keys()).sort().join(", ")}'.`);
40
40
  }
41
41
  const message = validatorConfigItem?.message ?? def.message;
42
- const item = def.create({ class: validatorClass, message: message, ...(validatorConfigItem?.config ?? {}) });
43
- // for debugging:
44
- // const getter = function (path: string | LineagePath) {
45
- // return path as any
46
- // };
47
- // const examples = {
48
- // 'empty': item({value: null, get: getter}),
49
- // 'filled': item({value: "some-value", get: getter})
50
- // };
51
- // console.log(`createFormValidatorInstancesFromMapping validatorClass ${validatorClass} validatorConfigItem ${JSON.stringify(validatorConfigItem)} examples ${JSON.stringify(examples)}`);
52
- result.push(item);
42
+ const createConfig = {
43
+ ...validatorConfigItem?.config ?? {},
44
+ class: validatorClass,
45
+ message: message,
46
+ };
47
+ if ('create' in def) {
48
+ result.syncDefs.push(def.create(createConfig));
49
+ }
50
+ else if ('createAsync' in def) {
51
+ result.asyncDefs.push(def.createAsync(createConfig));
52
+ }
53
+ else {
54
+ throw new Error(`Invalid validator definition: must specify 'create' or 'createAsync' function. Definition is ${JSON.stringify(validatorConfigItem)}.`);
55
+ }
53
56
  }
54
57
  return result;
55
58
  }
56
- /**
57
- * Create instances of the given form validators.
58
- *
59
- * @param definition The form validator definitions.
60
- * @param config The form validator config blocks.
61
- */
62
- createFormValidatorInstances(definition, config) {
63
- const defMap = this.createValidatorDefinitionMapping(definition);
64
- return this.createFormValidatorInstancesFromMapping(defMap, config);
65
- }
66
59
  /**
67
60
  * Get the form validator errors for a component's control.
68
61
  * @param errors The control's errors.
@@ -127,6 +120,26 @@ class ValidatorsSupport {
127
120
  // Validator was not included in any group, so it is disabled.
128
121
  return false;
129
122
  }
123
+ /**
124
+ * Assign the jsonata evaluator to each 'jsonata-expression' validator.
125
+ * This must be done before filtering the validators on the client, as the compiled templates are referenced by index.
126
+ * @param validators The validator configurations from the model config.
127
+ * @param callback The callback for each validator config with the index.
128
+ */
129
+ assignJsonataEvaluators(validators, callback) {
130
+ validators.forEach((validator, index) => {
131
+ if (validator.class === "jsonata-expression") {
132
+ if (!validator.config) {
133
+ validator.config = {};
134
+ }
135
+ const expr = validator?.config?.['expression']?.toString() ?? "";
136
+ const evaluator = validator.config?.['evaluator'];
137
+ if (validator.config && expr && !evaluator) {
138
+ validator.config['evaluator'] = callback(validator, index);
139
+ }
140
+ }
141
+ });
142
+ }
130
143
  /**
131
144
  * Get the enabled validators.
132
145
  * @param availableGroups All available validation groups in this form.
@@ -138,4 +151,4 @@ class ValidatorsSupport {
138
151
  }
139
152
  }
140
153
  exports.ValidatorsSupport = ValidatorsSupport;
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy1zdXBwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdG9ycy1zdXBwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLGlFQUF5RTtBQUV6RSxNQUFhLGlCQUFpQjtJQUMxQjs7O09BR0c7SUFDSSxnQ0FBZ0MsQ0FDbkMsVUFBd0Q7UUFFeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7UUFDMUQsS0FBSyxNQUFNLGNBQWMsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxJQUFBLGdEQUE2QixFQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9JLENBQUM7WUFDRCxNQUFNLGNBQWMsR0FBRyxjQUFjLEVBQUUsS0FBSyxDQUFDO1lBQzdDLE1BQU0sT0FBTyxHQUFHLGNBQWMsRUFBRSxPQUFPLENBQUM7WUFDeEMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLGNBQWMsNENBQTRDO3NCQUNsRywrRUFBK0UsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEgsQ0FBQztZQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJ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
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy1zdXBwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdG9ycy1zdXBwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLGlFQUEyRTtBQUczRSxNQUFhLGlCQUFpQjtJQUM1Qjs7O09BR0c7SUFDSSxnQ0FBZ0MsQ0FDckMsVUFBd0Q7UUFFeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7UUFDMUQsS0FBSyxNQUFNLGNBQWMsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFBLGdEQUE2QixFQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdJLENBQUM7WUFDRCxNQUFNLGNBQWMsR0FBRyxjQUFjLEVBQUUsS0FBSyxDQUFDO1lBQzdDLE1BQU0sT0FBTyxHQUFHLGNBQWMsRUFBRSxPQUFPLENBQUM7WUFDeEMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLGNBQWMsNENBQTRDO3NCQUNwRywrRUFBK0UsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUcsQ0FBQztZQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJ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
@@ -6,18 +6,16 @@ import { FormValidatorDefinition } from "./form.model";
6
6
  */
7
7
  export declare const FORM_VALIDATOR_EMAIL_REGEXP: RegExp;
8
8
  /**
9
- * Definitions of shared form validators.
9
+ * Definitions of form validators.
10
10
  *
11
- * These can be used on both server-side and client-side. The server provides them to the client.
12
- * These are the shared / common definitions.
13
- * ReDBox implementations can modify these validation definitions or add more.
11
+ * These can be used on both server-side and client-side.
12
+ * The server provides them to the client.
14
13
  *
15
- * The validators are based on:
16
- * angular built-in validators: https://github.com/angular/angular/blob/5105fd6f05f01f04873ab1c87d64079fd8519ad4/packages/forms/src/validators.ts
17
- * formly schema: https://github.com/ngx-formly/ngx-formly/blob/a2f7901b6c0895aee63b4b5fe748fc5ec0ad5475/src/core/src/lib/models/fieldconfig.ts
14
+ * Sails hooks can use these validators functions, but cannot extend or override them.
15
+ * Use the 'jsonata-expression' validator to create custom validator functions.
18
16
  *
19
- * These validation definitions need to be on the server-side, and provided to the client-side from the server.
20
- * There are two sets of validator definitions - 1) shared / common definitions in the core; 2) definitions specific to a client.
21
- * These two set of definitions need to be merged and provided by the server to the client.
17
+ * The validators are based on:
18
+ * - angular built-in validators: https://github.com/angular/angular/blob/5105fd6f05f01f04873ab1c87d64079fd8519ad4/packages/forms/src/validators.ts
19
+ * - formly schema: https://github.com/ngx-formly/ngx-formly/blob/a2f7901b6c0895aee63b4b5fe748fc5ec0ad5475/src/core/src/lib/models/fieldconfig.ts
22
20
  */
23
21
  export declare const formValidatorsSharedDefinitions: FormValidatorDefinition[];
@@ -9,19 +9,17 @@ const helpers_1 = require("./helpers");
9
9
  */
10
10
  exports.FORM_VALIDATOR_EMAIL_REGEXP = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
11
11
  /**
12
- * Definitions of shared form validators.
12
+ * Definitions of form validators.
13
13
  *
14
- * These can be used on both server-side and client-side. The server provides them to the client.
15
- * These are the shared / common definitions.
16
- * ReDBox implementations can modify these validation definitions or add more.
14
+ * These can be used on both server-side and client-side.
15
+ * The server provides them to the client.
17
16
  *
18
- * The validators are based on:
19
- * angular built-in validators: https://github.com/angular/angular/blob/5105fd6f05f01f04873ab1c87d64079fd8519ad4/packages/forms/src/validators.ts
20
- * formly schema: https://github.com/ngx-formly/ngx-formly/blob/a2f7901b6c0895aee63b4b5fe748fc5ec0ad5475/src/core/src/lib/models/fieldconfig.ts
17
+ * Sails hooks can use these validators functions, but cannot extend or override them.
18
+ * Use the 'jsonata-expression' validator to create custom validator functions.
21
19
  *
22
- * These validation definitions need to be on the server-side, and provided to the client-side from the server.
23
- * There are two sets of validator definitions - 1) shared / common definitions in the core; 2) definitions specific to a client.
24
- * These two set of definitions need to be merged and provided by the server to the client.
20
+ * The validators are based on:
21
+ * - angular built-in validators: https://github.com/angular/angular/blob/5105fd6f05f01f04873ab1c87d64079fd8519ad4/packages/forms/src/validators.ts
22
+ * - formly schema: https://github.com/ngx-formly/ngx-formly/blob/a2f7901b6c0895aee63b4b5fe748fc5ec0ad5475/src/core/src/lib/models/fieldconfig.ts
25
23
  */
26
24
  exports.formValidatorsSharedDefinitions = [
27
25
  {
@@ -323,32 +321,46 @@ exports.formValidatorsSharedDefinitions = [
323
321
  {
324
322
  class: "jsonata-expression",
325
323
  message: "@validator-error-jsonata-expression",
326
- create: (config) => {
324
+ createAsync: (config) => {
327
325
  const optionNameKey = "class";
328
326
  const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "jsonata-expression");
329
327
  const optionMessageKey = "message";
330
328
  const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-jsonata-expression");
331
329
  const optionDescriptionKey = "description";
332
- let optionDescriptionValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionDescriptionKey);
330
+ const optionDescriptionValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionDescriptionKey, "");
333
331
  const optionExpressionKey = "expression";
334
332
  const expression = (0, helpers_1.formValidatorGetDefinitionItem)(config, optionExpressionKey);
335
- const evaluator = config?.["evaluator"];
336
- return (control) => {
337
- if (control.value == null || (0, helpers_1.formValidatorLengthOrSize)(control.value) === 0) {
338
- return null; // don't validate empty values to allow optional controls
339
- }
340
- const value = control.value?.toString();
341
- let success;
333
+ const optionEvaluatorKey = "evaluator";
334
+ const evaluator = (0, helpers_1.formValidatorGetDefinitionItem)(config, optionEvaluatorKey);
335
+ return async (control) => {
336
+ // Notes:
337
+ // 1. For the jsonata-expression validator, always validate the control value.
338
+ // This enables the expression to decide whether empty values are valid or not.
339
+ // If empty values were not validated, then the expression would not have the option to treat empty values as invalid.
340
+ // 2. jsonata tries to define a 'keepSingleton' property on the input value.
341
+ // Must clone the value because control values cannot be extended.
342
+ // See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cant_define_property_object_not_extensible
343
+ let success = null;
344
+ let value;
342
345
  try {
343
- if (typeof evaluator !== "function") {
344
- throw new Error("Missing evaluator");
345
- }
346
- success = evaluator(control);
346
+ value = structuredClone(control.value);
347
347
  }
348
348
  catch (err) {
349
349
  success = false;
350
- optionDescriptionValue = "the validator is not configured correctly";
351
- console.error(`Validator 'jsonata-expression' could not run due to error: ${err}`);
350
+ console.error(`Validator 'jsonata-expression' with description '${optionDescriptionValue}' could not run due to error: control value cannot be cloned`);
351
+ }
352
+ if (success === null && typeof evaluator !== "function") {
353
+ success = false;
354
+ console.error(`Validator 'jsonata-expression' with description '${optionDescriptionValue}' could not run due to error: evaluator is not a function`);
355
+ }
356
+ if (success === null) {
357
+ try {
358
+ success = await evaluator(value) === true;
359
+ }
360
+ catch (err) {
361
+ success = false;
362
+ console.error(`Validator 'jsonata-expression' with description '${optionDescriptionValue}' could not run due to error: ${err}`);
363
+ }
352
364
  }
353
365
  return success
354
366
  ? null
@@ -426,4 +438,4 @@ exports.formValidatorsSharedDefinitions = [
426
438
  },
427
439
  },
428
440
  ];
429
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUNBS21CO0FBSW5COzs7O0dBSUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLG9NQUFvTSxDQUFDO0FBRWhQOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ1UsUUFBQSwrQkFBK0IsR0FBOEI7SUFDeEU7UUFDRSxLQUFLLEVBQUUsS0FBSztRQUNaLE9BQU8sRUFBRSxzQkFBc0I7UUFDL0IsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDakIsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDO1lBQzlCLE1BQU0sZUFBZSxHQUFHLElBQUEsMENBQWdDLEVBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2RixNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztZQUNuQyxNQUFNLGtCQUFrQixHQUFHLElBQUEsMENBQWdDLEVBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDOUcsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzNCLE1BQU0sY0FBYyxHQUFHLElBQUEsMENBQWdDLEVBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQzlFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxjQUFjLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ3BELE9BQU8sSUFBSSxDQUFDLENBQUMseURBQXlEO2dCQUN4RSxDQUFDO2dCQUVELElBQUksS0FBSyxDQUFDO2dCQUNWLElBQUksQ0FBQztvQkFDRCxLQUFLLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQzFELENBQUM7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
441
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUNBUW1CO0FBSW5COzs7O0dBSUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLG9NQUFvTSxDQUFDO0FBRWhQOzs7Ozs7Ozs7Ozs7R0FZRztBQUNVLFFBQUEsK0JBQStCLEdBQThCO0lBQ3hFO1FBQ0UsS0FBSyxFQUFFLEtBQUs7UUFDWixPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUM5QixNQUFNLGVBQWUsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkYsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7WUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1lBQzlHLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM5RSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNwRCxPQUFPLElBQUksQ0FBQyxDQUFDLHlEQUF5RDtnQkFDeEUsQ0FBQztnQkFFRCxJQUFJLEtBQUssQ0FBQztnQkFDVixJQUFJLENBQUM7b0JBQ0gsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO2dC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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@researchdatabox/sails-ng-common",
3
- "version": "0.0.1-beta.9474",
3
+ "version": "0.0.1-beta.9604",
4
4
  "description": "Common models shared between Sails API endpoints and client-side Angular code",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -72,7 +72,7 @@
72
72
  ]
73
73
  },
74
74
  "dependencies": {
75
- "@jsonjoy.com/json-pointer": "18.15.0",
75
+ "@jsonjoy.com/json-pointer": "18.21.0",
76
76
  "lodash": "4.18.1",
77
77
  "lodash-es": "4.18.1",
78
78
  "luxon": "3.7.2",