@researchdatabox/sails-ng-common 0.0.1-beta.9604 → 0.0.1-beta.9700
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/src/config/component/publish-data-location-refresh.model.d.ts +1 -0
- package/dist/src/config/component/publish-data-location-refresh.model.js +2 -1
- package/dist/src/config/component/publish-data-location-refresh.outline.d.ts +5 -0
- package/dist/src/config/component/publish-data-location-selector.model.d.ts +6 -2
- package/dist/src/config/component/publish-data-location-selector.model.js +7 -3
- package/dist/src/config/component/publish-data-location-selector.outline.d.ts +8 -3
- package/dist/src/config/component/publish-data-location-selector.outline.js +1 -1
- package/dist/src/config/component/save-button.model.d.ts +4 -0
- package/dist/src/config/component/save-button.model.js +5 -1
- package/dist/src/config/component/save-button.outline.d.ts +17 -0
- package/dist/src/config/form-config.outline.d.ts +2 -4
- package/dist/src/config/names/naming-helpers.d.ts +34 -0
- package/dist/src/config/names/naming-helpers.js +78 -1
- package/dist/src/validation/form.model.d.ts +20 -4
- package/dist/src/validation/form.model.js +1 -1
- package/dist/src/validation/helpers.d.ts +3 -1
- package/dist/src/validation/helpers.js +29 -2
- package/dist/src/validation/validators-support.d.ts +2 -2
- package/dist/src/validation/validators-support.js +17 -6
- package/dist/src/validation/validators.js +57 -166
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ import { FormComponentDefinition } from '../form-component.model';
|
|
|
4
4
|
import { FormConfigVisitorOutline } from '../visitor/base.outline';
|
|
5
5
|
import { PublishDataLocationRefreshFieldComponentConfigOutline, PublishDataLocationRefreshFieldComponentDefinitionOutline, PublishDataLocationRefreshFormComponentDefinitionOutline } from './publish-data-location-refresh.outline';
|
|
6
6
|
export declare class PublishDataLocationRefreshFieldComponentConfig extends FieldComponentConfig implements PublishDataLocationRefreshFieldComponentConfigOutline {
|
|
7
|
+
eventFieldId?: string;
|
|
7
8
|
}
|
|
8
9
|
/** Visitor-aware definition for the stateless refresh trigger component. */
|
|
9
10
|
export declare class PublishDataLocationRefreshFieldComponentDefinition extends FieldComponentDefinition implements PublishDataLocationRefreshFieldComponentDefinitionOutline {
|
|
@@ -6,6 +6,7 @@ const form_component_model_1 = require("../form-component.model");
|
|
|
6
6
|
const shared_outline_1 = require("../shared.outline");
|
|
7
7
|
const publish_data_location_refresh_outline_1 = require("./publish-data-location-refresh.outline");
|
|
8
8
|
class PublishDataLocationRefreshFieldComponentConfig extends field_component_model_1.FieldComponentConfig {
|
|
9
|
+
eventFieldId;
|
|
9
10
|
}
|
|
10
11
|
exports.PublishDataLocationRefreshFieldComponentConfig = PublishDataLocationRefreshFieldComponentConfig;
|
|
11
12
|
/** Visitor-aware definition for the stateless refresh trigger component. */
|
|
@@ -48,4 +49,4 @@ exports.PublishDataLocationRefreshDefaults = {
|
|
|
48
49
|
},
|
|
49
50
|
},
|
|
50
51
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1kYXRhLWxvY2F0aW9uLXJlZnJlc2gubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29uZmlnL2NvbXBvbmVudC9wdWJsaXNoLWRhdGEtbG9jYXRpb24tcmVmcmVzaC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxvRUFBMEY7QUFDMUYsa0VBQWtFO0FBQ2xFLHNEQUkyQjtBQUUzQixtR0FLaUQ7QUFFakQsTUFBYSw4Q0FDWCxTQUFRLDRDQUFvQjtJQUc1QixZQUFZLENBQVU7Q0FDdkI7QUFMRCx3R0FLQztBQUVELDRFQUE0RTtBQUM1RSxNQUFhLGtEQUNYLFNBQVEsZ0RBQXdCO0lBR2hDLEtBQUssR0FBRywrRUFBdUMsQ0FBQztJQUNoRCxNQUFNLENBQXlEO0lBRS9ELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBaUM7UUFDNUMsTUFBTSxPQUFPLENBQUMsdURBQXVELENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGO0FBVkQsZ0hBVUM7QUFFRCxNQUFhLGlEQUNYLFNBQVEsOENBQXVCO0lBRy9CLFNBQVMsQ0FBNkQ7SUFDdEUsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUEwQztJQUVoRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWlDO1FBQzVDLE1BQU0sT0FBTyxDQUFDLHNEQUFzRCxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdFLENBQUM7Q0FDRjtBQVhELDhHQVdDO0FBRVksUUFBQSw2QkFBNkIsR0FBRztJQUMzQyxFQUFFLElBQUksRUFBRSx5Q0FBd0IsRUFBRSxHQUFHLEVBQUUsOENBQThDLEVBQUU7SUFDdkY7UUFDRSxJQUFJLEVBQUUsNkNBQTRCO1FBQ2xDLEdBQUcsRUFBRSxrREFBa0Q7UUFDdkQsS0FBSyxFQUFFLCtFQUF1QztLQUMvQztJQUNEO1FBQ0UsSUFBSSxFQUFFLDRDQUEyQjtRQUNqQyxHQUFHLEVBQUUsaURBQWlEO1FBQ3RELEtBQUssRUFBRSwrRUFBdUM7S0FDL0M7Q0FDTyxDQUFDO0FBRVgsNkVBQTZFO0FBQzdFLDJFQUEyRTtBQUM5RCxRQUFBLGtDQUFrQyxHQUFHO0lBQ2hELENBQUMsNENBQTJCLENBQUMsRUFBRTtRQUM3QixDQUFDLCtFQUF1QyxDQUFDLEVBQUU7WUFDekMsQ0FBQyw2Q0FBNEIsQ0FBQyxFQUFFLCtFQUF1QztTQUN4RTtLQUNGO0NBQ0YsQ0FBQyJ9
|
|
@@ -5,6 +5,11 @@ import { FieldComponentConfigFrameKindType, FieldComponentConfigKindType, FieldC
|
|
|
5
5
|
export declare const PublishDataLocationRefreshComponentName: "PublishDataLocationRefreshComponent";
|
|
6
6
|
export type PublishDataLocationRefreshComponentNameType = typeof PublishDataLocationRefreshComponentName;
|
|
7
7
|
export interface PublishDataLocationRefreshFieldComponentConfigFrame extends FieldComponentConfigFrame {
|
|
8
|
+
/**
|
|
9
|
+
* Optional explicit field id for emitted refresh events. When omitted, the
|
|
10
|
+
* component emits using its own resolved lineage path.
|
|
11
|
+
*/
|
|
12
|
+
eventFieldId?: string;
|
|
8
13
|
}
|
|
9
14
|
export interface PublishDataLocationRefreshFieldComponentConfigOutline extends PublishDataLocationRefreshFieldComponentConfigFrame, FieldComponentConfigOutline {
|
|
10
15
|
}
|
|
@@ -18,8 +18,12 @@ export declare class PublishDataLocationSelectorFieldComponentConfig extends Fie
|
|
|
18
18
|
iscHeader: string;
|
|
19
19
|
iscEnabled: boolean;
|
|
20
20
|
notesEnabled: boolean;
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
metadataOnlyTitle: string;
|
|
22
|
+
metadataOnlyBody: string;
|
|
23
|
+
noLocationsAvailableTitle: string;
|
|
24
|
+
noLocationsAvailableBody: string;
|
|
25
|
+
selectionSummaryTemplate: string;
|
|
26
|
+
headerActions: never[];
|
|
23
27
|
publicCheck: string;
|
|
24
28
|
selectionCriteria: Record<string, string>[];
|
|
25
29
|
dataTypes: DataLocationOption[];
|
|
@@ -19,8 +19,12 @@ class PublishDataLocationSelectorFieldComponentConfig extends field_component_mo
|
|
|
19
19
|
iscHeader = "Information Security Classification";
|
|
20
20
|
iscEnabled = false;
|
|
21
21
|
notesEnabled = true;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
metadataOnlyTitle = "No data locations selected";
|
|
23
|
+
metadataOnlyBody = "Publicise only metadata (or description)";
|
|
24
|
+
noLocationsAvailableTitle = "No data locations available";
|
|
25
|
+
noLocationsAvailableBody = "";
|
|
26
|
+
selectionSummaryTemplate = "{{selected}} of {{total}} locations selected for publication";
|
|
27
|
+
headerActions = [];
|
|
24
28
|
publicCheck = "public";
|
|
25
29
|
selectionCriteria = [{ isc: "public", type: "attachment" }];
|
|
26
30
|
dataTypes = [
|
|
@@ -97,4 +101,4 @@ exports.PublishDataLocationSelectorDefaults = {
|
|
|
97
101
|
},
|
|
98
102
|
},
|
|
99
103
|
};
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1kYXRhLWxvY2F0aW9uLXNlbGVjdG9yLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy9jb21wb25lbnQvcHVibGlzaC1kYXRhLWxvY2F0aW9uLXNlbGVjdG9yLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDREQUE4RTtBQUM5RSxrRUFBa0U7QUFFbEUsc0RBTTJCO0FBQzNCLG9FQUEwRjtBQUUxRixxR0FTa0Q7QUFHbEQsTUFBYSwrQ0FDWCxTQUFRLDRDQUFvQjtJQUU1QixPQUFPLEdBQXlDLEVBQUUsQ0FBQztJQUNuRCxtQkFBbUIsR0FBRyxNQUFNLENBQUM7SUFDN0IsY0FBYyxHQUFHLFlBQVksQ0FBQztJQUM5Qix5QkFBeUIsR0FBRyxRQUFRLENBQUM7SUFDckMsd0JBQXdCLEdBQUcsT0FBTyxDQUFDO0lBQ25DLG1CQUFtQixHQUFHLGNBQWMsQ0FBQztJQUNyQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQ3BCLGNBQWMsR0FBRyxVQUFVLENBQUM7SUFDNUIsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUN0QixTQUFTLEdBQUcscUNBQXFDLENBQUM7SUFDbEQsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO0lBQ2pELGdCQUFnQixHQUFHLDBDQUEwQyxDQUFDO0lBQzlELHlCQUF5QixHQUFHLDZCQUE2QixDQUFDO0lBQzFELHdCQUF3QixHQUFHLEVBQUUsQ0FBQztJQUM5Qix3QkFBd0IsR0FBRyw4REFBOEQsQ0FBQztJQUMxRixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ25CLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDdkIsaUJBQWlCLEdBQTZCLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLFNBQVMsR0FB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
|
|
@@ -2,7 +2,7 @@ import { FieldComponentConfigFrameKindType, FieldComponentConfigKindType, FieldC
|
|
|
2
2
|
import { FieldComponentConfigFrame, FieldComponentConfigOutline, FieldComponentDefinitionFrame, FieldComponentDefinitionOutline } from "../field-component.outline";
|
|
3
3
|
import { FieldModelConfigFrame, FieldModelConfigOutline, FieldModelDefinitionFrame, FieldModelDefinitionOutline } from "../field-model.outline";
|
|
4
4
|
import { FormComponentDefinitionFrame, FormComponentDefinitionOutline } from "../form-component.outline";
|
|
5
|
-
import { AvailableFieldLayoutDefinitionFrames, AvailableFieldLayoutDefinitionOutlines } from "../dictionary.outline";
|
|
5
|
+
import { AvailableFieldLayoutDefinitionFrames, AvailableFieldLayoutDefinitionOutlines, AvailableFormComponentDefinitionFrames, AvailableFormComponentDefinitionOutlines } from "../dictionary.outline";
|
|
6
6
|
import { DataLocationAttachmentValue, DataLocationFileValue, DataLocationOption, DataLocationPhysicalValue, DataLocationUrlValue } from "./data-location.outline";
|
|
7
7
|
export declare const PublishDataLocationSelectorComponentName: "PublishDataLocationSelectorComponent";
|
|
8
8
|
export type PublishDataLocationSelectorComponentNameType = typeof PublishDataLocationSelectorComponentName;
|
|
@@ -27,14 +27,19 @@ export interface PublishDataLocationSelectorFieldComponentConfigFrame extends Fi
|
|
|
27
27
|
iscHeader?: string;
|
|
28
28
|
iscEnabled?: boolean;
|
|
29
29
|
notesEnabled?: boolean;
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
metadataOnlyTitle?: string;
|
|
31
|
+
metadataOnlyBody?: string;
|
|
32
|
+
noLocationsAvailableTitle?: string;
|
|
33
|
+
noLocationsAvailableBody?: string;
|
|
34
|
+
selectionSummaryTemplate?: string;
|
|
35
|
+
headerActions?: AvailableFormComponentDefinitionFrames[];
|
|
32
36
|
publicCheck?: string;
|
|
33
37
|
selectionCriteria?: PublishDataLocationSelectionCriterion[];
|
|
34
38
|
dataTypes?: DataLocationOption[];
|
|
35
39
|
dataTypeLookup?: Record<string, string>;
|
|
36
40
|
}
|
|
37
41
|
export interface PublishDataLocationSelectorFieldComponentConfigOutline extends PublishDataLocationSelectorFieldComponentConfigFrame, FieldComponentConfigOutline {
|
|
42
|
+
headerActions?: AvailableFormComponentDefinitionOutlines[];
|
|
38
43
|
}
|
|
39
44
|
export interface PublishDataLocationSelectorFieldComponentDefinitionFrame extends FieldComponentDefinitionFrame {
|
|
40
45
|
class: PublishDataLocationSelectorComponentNameType;
|
|
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PublishDataLocationSelectorModelName = exports.PublishDataLocationSelectorComponentName = void 0;
|
|
4
4
|
exports.PublishDataLocationSelectorComponentName = "PublishDataLocationSelectorComponent";
|
|
5
5
|
exports.PublishDataLocationSelectorModelName = "PublishDataLocationSelectorModel";
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC1kYXRhLWxvY2F0aW9uLXNlbGVjdG9yLm91dGxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29uZmlnL2NvbXBvbmVudC9wdWJsaXNoLWRhdGEtbG9jYXRpb24tc2VsZWN0b3Iub3V0bGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1Q2EsUUFBQSx3Q0FBd0MsR0FBRyxzQ0FBK0MsQ0FBQztBQUczRixRQUFBLG9DQUFvQyxHQUFHLGtDQUEyQyxDQUFDIn0=
|
|
@@ -8,6 +8,10 @@ export declare class SaveButtonFieldComponentConfig extends FieldComponentConfig
|
|
|
8
8
|
forceSave?: boolean;
|
|
9
9
|
labelSaving?: string;
|
|
10
10
|
buttonCssClasses?: string;
|
|
11
|
+
enabledValidationGroups?: string[];
|
|
12
|
+
closeOnSave?: boolean;
|
|
13
|
+
redirectLocation?: string;
|
|
14
|
+
redirectDelaySeconds?: number;
|
|
11
15
|
constructor();
|
|
12
16
|
}
|
|
13
17
|
export declare class SaveButtonFieldComponentDefinition extends FieldComponentDefinition implements SaveButtonFieldComponentDefinitionOutline {
|
|
@@ -11,6 +11,10 @@ class SaveButtonFieldComponentConfig extends field_component_model_1.FieldCompon
|
|
|
11
11
|
forceSave;
|
|
12
12
|
labelSaving;
|
|
13
13
|
buttonCssClasses;
|
|
14
|
+
enabledValidationGroups;
|
|
15
|
+
closeOnSave;
|
|
16
|
+
redirectLocation;
|
|
17
|
+
redirectDelaySeconds;
|
|
14
18
|
constructor() {
|
|
15
19
|
super();
|
|
16
20
|
}
|
|
@@ -52,4 +56,4 @@ exports.SaveButtonDefaults = {
|
|
|
52
56
|
},
|
|
53
57
|
},
|
|
54
58
|
};
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1idXR0b24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29uZmlnL2NvbXBvbmVudC9zYXZlLWJ1dHRvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvRUFBd0Y7QUFFeEYsa0VBQWlFO0FBRWpFLHNEQUkyQjtBQUMzQiwrREFJK0I7QUFHL0IsMkJBQTJCO0FBRTNCLE1BQWEsOEJBQStCLFNBQVEsNENBQW9CO0lBQ3BFLFVBQVUsQ0FBVTtJQUNwQixTQUFTLENBQVc7SUFDcEIsV0FBVyxDQUFVO0lBQ3JCLGdCQUFnQixDQUFVO0lBQzFCLHVCQUF1QixDQUFZO0lBQ25DLFdBQVcsQ0FBVztJQUN0QixnQkFBZ0IsQ0FBVTtJQUMxQixvQkFBb0IsQ0FBVTtJQUU5QjtRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNKO0FBYkQsd0VBYUM7QUFHRCxNQUFhLGtDQUFtQyxTQUFRLGdEQUF3QjtJQUM1RSxLQUFLLEdBQUcsNkNBQXVCLENBQUM7SUFDaEMsTUFBTSxDQUF5QztJQUUvQztRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBaUM7UUFDMUMsTUFBTSxPQUFPLENBQUMsdUNBQXVDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNKO0FBWEQsZ0ZBV0M7QUFFRCxnQ0FBZ0M7QUFHaEMsTUFBYSxpQ0FBa0MsU0FBUSw4Q0FBdUI7SUFDMUUsU0FBUyxDQUE2QztJQUN0RCxLQUFLLENBQVM7SUFDZCxNQUFNLENBQTBDO0lBRWhEO1FBQ0ksS0FBSyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFpQztRQUMxQyxNQUFNLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQ0o7QUFaRCw4RUFZQztBQUVZLFFBQUEsYUFBYSxHQUFHO0lBQ3pCLEVBQUMsSUFBSSxFQUFFLHlDQUF3QixFQUFFLEdBQUcsRUFBRSw4QkFBOEIsRUFBQztJQUNyRSxFQUFDLElBQUksRUFBRSw2Q0FBNEIsRUFBRSxHQUFHLEVBQUUsa0NBQWtDLEVBQUUsS0FBSyxFQUFFLDZDQUF1QixFQUFDO0lBQzdHLEVBQUMsSUFBSSxFQUFFLDRDQUEyQixFQUFFLEdBQUcsRUFBRSxpQ0FBaUMsRUFBRSxLQUFLLEVBQUMsNkNBQXVCLEVBQUM7Q0FDN0csQ0FBQztBQUNXLFFBQUEsa0JBQWtCLEdBQUc7SUFDOUIsQ0FBQyw0Q0FBMkIsQ0FBQyxFQUFFO1FBQzNCLENBQUMsNkNBQXVCLENBQUMsRUFBRTtZQUN2QixDQUFDLDZDQUE0QixDQUFDLEVBQUUsNkNBQXVCO1NBQzFEO0tBQ0o7Q0FDSixDQUFDIn0=
|
|
@@ -23,6 +23,23 @@ export interface SaveButtonFieldComponentConfigFrame extends FieldComponentConfi
|
|
|
23
23
|
* Example: 'btn-success' or 'btn btn-success'.
|
|
24
24
|
*/
|
|
25
25
|
buttonCssClasses?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Validation groups to enable for this save request.
|
|
28
|
+
* Defaults to the form's current enabled validation groups.
|
|
29
|
+
*/
|
|
30
|
+
enabledValidationGroups?: string[];
|
|
31
|
+
/**
|
|
32
|
+
* Whether to 'close' the form by redirecting on a successful save. Default false.
|
|
33
|
+
*/
|
|
34
|
+
closeOnSave?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* The relative url to redirect to on a successful save if closeOnSave is true.
|
|
37
|
+
*/
|
|
38
|
+
redirectLocation?: string;
|
|
39
|
+
/**
|
|
40
|
+
* The delay before redirecting on a successful save if closeOnSave is true.
|
|
41
|
+
*/
|
|
42
|
+
redirectDelaySeconds?: number;
|
|
26
43
|
}
|
|
27
44
|
export interface SaveButtonFieldComponentConfigOutline extends SaveButtonFieldComponentConfigFrame, FieldComponentConfigOutline {
|
|
28
45
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FormValidationGroups, FormValidatorTargetFieldConfig } from '../validation/form.model';
|
|
2
2
|
import { AvailableFormComponentDefinitionFrames, AvailableFormComponentDefinitionOutlines } from './dictionary.outline';
|
|
3
3
|
import { CanVisit } from './visitor/base.outline';
|
|
4
4
|
import { KeyValueStringNested, KeyValueStringProperty } from './shared.outline';
|
|
@@ -65,7 +65,7 @@ export interface FormConfigFrame {
|
|
|
65
65
|
/**
|
|
66
66
|
* The validators that are configured at the form level, usually because they involve two or more fields.
|
|
67
67
|
*/
|
|
68
|
-
validators?:
|
|
68
|
+
validators?: FormValidatorTargetFieldConfig[];
|
|
69
69
|
/**
|
|
70
70
|
* The validation groups available in this form.
|
|
71
71
|
* These are the only validation group names that can be used in the validator config.
|
|
@@ -104,6 +104,4 @@ export interface FormConfigFrame {
|
|
|
104
104
|
}
|
|
105
105
|
export interface FormConfigOutline extends FormConfigFrame, CanVisit {
|
|
106
106
|
componentDefinitions: AvailableFormComponentDefinitionOutlines[];
|
|
107
|
-
expressions?: FormExpressionsConfigOutline[];
|
|
108
|
-
behaviours?: FormBehaviourConfigFrame[];
|
|
109
107
|
}
|
|
@@ -37,6 +37,9 @@ export interface LineagePaths {
|
|
|
37
37
|
/**
|
|
38
38
|
* Allow providing a partial lineage paths object.
|
|
39
39
|
* This is for adding to an existing lineage path.
|
|
40
|
+
*
|
|
41
|
+
* This does not include the calculated json pointer fields on purpose.
|
|
42
|
+
* Use LineagePathsOptional to include the json pointer fields.
|
|
40
43
|
*/
|
|
41
44
|
export interface LineagePathsPartial {
|
|
42
45
|
formConfig?: LineagePath;
|
|
@@ -44,6 +47,13 @@ export interface LineagePathsPartial {
|
|
|
44
47
|
angularComponents?: LineagePath;
|
|
45
48
|
layout?: LineagePath;
|
|
46
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Allow providing any of the lineage paths properties.
|
|
52
|
+
*
|
|
53
|
+
* This does include the calculated json pointer fields on purpose.
|
|
54
|
+
* Use LineagePathsPartial to include only the fields that are not calculated.
|
|
55
|
+
*/
|
|
56
|
+
export type LineagePathsOptional = Partial<LineagePaths>;
|
|
47
57
|
/**
|
|
48
58
|
* Build the lineage paths from a base item, and add the entries in `more` as relative
|
|
49
59
|
* parts at the end of each lineage path. Undefined inputs default to empty arrays.
|
|
@@ -76,3 +86,27 @@ export declare function getLastSegmentFromJSONPointer(pointer: string): string;
|
|
|
76
86
|
* @return The string normalised to remove visual variants.
|
|
77
87
|
*/
|
|
78
88
|
export declare function normaliseVisual(value: unknown): string;
|
|
89
|
+
/**
|
|
90
|
+
* Determine if every key present in both lineage paths match.
|
|
91
|
+
* @param a The first lineage paths object.
|
|
92
|
+
* @param b The second lineage paths object.
|
|
93
|
+
*/
|
|
94
|
+
export declare function isMatchingLineagePaths(a: LineagePathsOptional, b: LineagePathsOptional): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Determine if two lineage paths or strings are equal.
|
|
97
|
+
* @param a The first lineage path or string.
|
|
98
|
+
* @param b The second lineage path or string.
|
|
99
|
+
*/
|
|
100
|
+
export declare function isMatchingLineagePath(a: LineagePath | string, b: LineagePath | string): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Determine if every key (present in both lineage paths) of a lineage path starts with a base lineage path.
|
|
103
|
+
* @param base The prefix lineage paths object.
|
|
104
|
+
* @param check The lineage paths object that should start with the prefix.
|
|
105
|
+
*/
|
|
106
|
+
export declare function isPrefixLineagePaths(base: LineagePathsOptional, check: LineagePathsOptional): boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Determine if a check lineage path starts with a base lineage path.
|
|
109
|
+
* @param base The prefix.
|
|
110
|
+
* @param check The item that should start with prefix.
|
|
111
|
+
*/
|
|
112
|
+
export declare function isPrefixLineagePath(base: LineagePath | string, check: LineagePath | string): boolean;
|
|
@@ -23,7 +23,12 @@ exports.getJSONPointerByArrayPaths = getJSONPointerByArrayPaths;
|
|
|
23
23
|
exports.getObjectWithJsonPointer = getObjectWithJsonPointer;
|
|
24
24
|
exports.getLastSegmentFromJSONPointer = getLastSegmentFromJSONPointer;
|
|
25
25
|
exports.normaliseVisual = normaliseVisual;
|
|
26
|
+
exports.isMatchingLineagePaths = isMatchingLineagePaths;
|
|
27
|
+
exports.isMatchingLineagePath = isMatchingLineagePath;
|
|
28
|
+
exports.isPrefixLineagePaths = isPrefixLineagePaths;
|
|
29
|
+
exports.isPrefixLineagePath = isPrefixLineagePath;
|
|
26
30
|
const json_pointer_1 = require("@jsonjoy.com/json-pointer");
|
|
31
|
+
const helpers_1 = require("../helpers");
|
|
27
32
|
/**
|
|
28
33
|
* Build the lineage paths from a base item, and add the entries in `more` as relative
|
|
29
34
|
* parts at the end of each lineage path. Undefined inputs default to empty arrays.
|
|
@@ -108,4 +113,76 @@ function normaliseVisual(value) {
|
|
|
108
113
|
// For Identifiers matching: Canonical form, no visual variants
|
|
109
114
|
return str.normalize("NFKC");
|
|
110
115
|
}
|
|
111
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Determine if every key present in both lineage paths match.
|
|
118
|
+
* @param a The first lineage paths object.
|
|
119
|
+
* @param b The second lineage paths object.
|
|
120
|
+
*/
|
|
121
|
+
function isMatchingLineagePaths(a, b) {
|
|
122
|
+
const aRecord = a ?? {};
|
|
123
|
+
const bRecord = b ?? {};
|
|
124
|
+
const keys = Array.from(new Set([...Object.keys(aRecord), ...Object.keys(bRecord)]));
|
|
125
|
+
return keys.every(key => {
|
|
126
|
+
if (key in aRecord && key in bRecord) {
|
|
127
|
+
const aValue = aRecord[key] ?? "";
|
|
128
|
+
const bValue = bRecord[key] ?? "";
|
|
129
|
+
return aValue === bValue || isMatchingLineagePath(aValue, bValue);
|
|
130
|
+
}
|
|
131
|
+
// A key in only a or b is allowed.
|
|
132
|
+
return true;
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Determine if two lineage paths or strings are equal.
|
|
137
|
+
* @param a The first lineage path or string.
|
|
138
|
+
* @param b The second lineage path or string.
|
|
139
|
+
*/
|
|
140
|
+
function isMatchingLineagePath(a, b) {
|
|
141
|
+
if (typeof a === "string" && typeof b === "string") {
|
|
142
|
+
return a === b;
|
|
143
|
+
}
|
|
144
|
+
if (!Array.isArray(a) || !Array.isArray(b)) {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
if (a.length !== b.length) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
return a.every((aValue, aIndex) => aValue?.toString() === b[aIndex]?.toString());
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Determine if every key (present in both lineage paths) of a lineage path starts with a base lineage path.
|
|
154
|
+
* @param base The prefix lineage paths object.
|
|
155
|
+
* @param check The lineage paths object that should start with the prefix.
|
|
156
|
+
*/
|
|
157
|
+
function isPrefixLineagePaths(base, check) {
|
|
158
|
+
const aRecord = base ?? {};
|
|
159
|
+
const bRecord = check ?? {};
|
|
160
|
+
const keys = Array.from(new Set([...Object.keys(aRecord), ...Object.keys(bRecord)]));
|
|
161
|
+
return keys.every(key => {
|
|
162
|
+
if (key in aRecord && key in bRecord) {
|
|
163
|
+
const aValue = aRecord[key] ?? "";
|
|
164
|
+
const bValue = bRecord[key] ?? "";
|
|
165
|
+
return aValue === bValue || isPrefixLineagePath(aValue, bValue);
|
|
166
|
+
}
|
|
167
|
+
// A key in only base or check is allowed.
|
|
168
|
+
return true;
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Determine if a check lineage path starts with a base lineage path.
|
|
173
|
+
* @param base The prefix.
|
|
174
|
+
* @param check The item that should start with prefix.
|
|
175
|
+
*/
|
|
176
|
+
function isPrefixLineagePath(base, check) {
|
|
177
|
+
if (typeof base === "string" && typeof check === "string") {
|
|
178
|
+
return base === check || check.startsWith(base + '/');
|
|
179
|
+
}
|
|
180
|
+
if (!Array.isArray(base) || !Array.isArray(check)) {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
if (base.length === 0 && check.length === 0) {
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
return (0, helpers_1.arrayStartsWithArray)(base.map(i => i?.toString()), check.map(i => i?.toString()));
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtaW5nLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29uZmlnL25hbWVzL25hbWluZy1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsRUFBRTtBQUNGLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSx1RUFBdUU7QUFDdkUsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUN0QyxFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLGlFQUFpRTtBQUNqRSxnRUFBZ0U7QUFDaEUsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsMEVBQTBFO0FBQzFFLDhEQUE4RDs7QUF5RTlELDhDQVVDO0FBU0QsZ0VBT0M7QUFTRCw0REFtQkM7QUFLRCxzRUFTQztBQVFELDBDQU1DO0FBT0Qsd0RBYUM7QUFPRCxzREFXQztBQU9ELG9EQWFDO0FBT0Qsa0RBY0M7QUF4T0QsNERBQWlGO0FBQ2pGLHdDQUFnRDtBQWlFaEQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLElBQW1CLEVBQUUsSUFBMEI7SUFDN0UsTUFBTSxZQUFZLEdBQWlCO1FBQy9CLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLGlCQUFpQixFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxpQkFBaUIsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQzdELENBQUM7SUFDRixZQUFZLENBQUMsNEJBQTRCLEdBQUcsMEJBQTBCLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkcsWUFBWSxDQUFDLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRixPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFFSCxTQUFnQiwwQkFBMEIsQ0FBQyxLQUEwQjtJQUNuRSxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUEsZ0NBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGlEQUFpRCxLQUFLLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RSxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsR0FBUSxFQUFFLE9BQTBCO0lBQzNFLElBQUksQ0FBQztRQUNDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBQSxtQkFBSSxFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QixDQUFDO1FBQ0QsMEZBQTBGO1FBQzFGLE9BQU8sSUFBQSw0QkFBYSxFQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxHQUFHLGtCQUFrQixPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRiw0RkFBNEY7UUFDNUYseUZBQXlGO1FBQ3pGLDJGQUEyRjtRQUMzRiwwRUFBMEU7UUFDMUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxNQUFNLENBQUMsQ0FBQztJQUNaLENBQUM7QUFDTCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxPQUFlO0lBQ3pELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDM0IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixlQUFlLENBQUMsS0FBYztJQUM1QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBRXBDLDRFQUE0RTtJQUM1RSwrREFBK0Q7SUFDL0QsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsQ0FBdUIsRUFBRSxDQUF1QjtJQUNyRixNQUFNLE9BQU8sR0FBcUQsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRSxNQUFNLE9BQU8sR0FBcUQsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDdEIsSUFBSSxHQUFHLElBQUksT0FBTyxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEMsT0FBTyxNQUFNLEtBQUssTUFBTSxJQUFJLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBQ0QsbUNBQW1DO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLENBQXVCLEVBQUUsQ0FBdUI7SUFDcEYsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLElBQTBCLEVBQUUsS0FBMkI7SUFDMUYsTUFBTSxPQUFPLEdBQXFELElBQUksSUFBSSxFQUFFLENBQUM7SUFDN0UsTUFBTSxPQUFPLEdBQXFELEtBQUssSUFBSSxFQUFFLENBQUM7SUFDOUUsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3RCLElBQUksR0FBRyxJQUFJLE9BQU8sSUFBSSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLE9BQU8sTUFBTSxLQUFLLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUNELDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxJQUEwQixFQUFFLEtBQTJCO0lBQ3pGLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFELE9BQU8sSUFBSSxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sSUFBQSw4QkFBb0IsRUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUM1QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQzlCLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LineagePath, LineagePaths } from "../config/names/naming-helpers";
|
|
1
|
+
import { LineagePath, LineagePaths, LineagePathsPartial } from "../config/names/naming-helpers";
|
|
2
2
|
/**
|
|
3
3
|
* The parameters for a validator error.
|
|
4
4
|
* The parameters are different for each validator.
|
|
@@ -26,15 +26,17 @@ export type FormValidatorErrors = {
|
|
|
26
26
|
[key: string]: {
|
|
27
27
|
message: string;
|
|
28
28
|
params: FormValidatorErrorParams;
|
|
29
|
-
};
|
|
29
|
+
} & FormValidatorTargetField;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
32
32
|
* The map of validator config.
|
|
33
33
|
* The config is different for each validator.
|
|
34
34
|
*/
|
|
35
35
|
export type FormValidatorCreateConfig = {
|
|
36
|
+
class?: string;
|
|
37
|
+
message?: string;
|
|
36
38
|
[key: string]: unknown;
|
|
37
|
-
};
|
|
39
|
+
} & FormValidatorTargetField;
|
|
38
40
|
/**
|
|
39
41
|
* The interface that a form control must implement to be validated by a validator function.
|
|
40
42
|
* Some form controls are a collection of controls, these must provide a way to access the controls they contain.
|
|
@@ -171,10 +173,24 @@ export interface FormValidatorConfig {
|
|
|
171
173
|
*/
|
|
172
174
|
groups?: FormFieldValidationGroup;
|
|
173
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Allows specifying a field to 'own' any validation failures.
|
|
178
|
+
*/
|
|
179
|
+
export interface FormValidatorTargetField {
|
|
180
|
+
/**
|
|
181
|
+
* Lineage paths to a target field that will 'own' any validation failures.
|
|
182
|
+
*/
|
|
183
|
+
targetField?: LineagePathsPartial;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Form-level validator config that allows specifying a field to 'own' any validation failures.
|
|
187
|
+
*/
|
|
188
|
+
export interface FormValidatorTargetFieldConfig extends FormValidatorConfig, FormValidatorTargetField {
|
|
189
|
+
}
|
|
174
190
|
/**
|
|
175
191
|
* One validator error.
|
|
176
192
|
*/
|
|
177
|
-
export interface FormValidatorComponentErrors {
|
|
193
|
+
export interface FormValidatorComponentErrors extends FormValidatorTargetField {
|
|
178
194
|
/**
|
|
179
195
|
* The message id for the validator.
|
|
180
196
|
*/
|
|
@@ -28,4 +28,4 @@ exports.SimpleServerFormValidatorControl = SimpleServerFormValidatorControl;
|
|
|
28
28
|
* - 'none': An empty array / no validators.
|
|
29
29
|
*/
|
|
30
30
|
exports.formValidationGroupMembership = ["all", "none"];
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL2Zvcm0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXFDO0FBa0VyQzs7OztHQUlHO0FBQ0gsTUFBYSxnQ0FBZ0M7SUFDekMsS0FBSyxDQUFVO0lBRWYsWUFBWSxLQUFjO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxHQUFHLENBQWlDLElBQU87UUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBQSxZQUFJLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7UUFFOUMsaUJBQWlCO1FBQ2pCLHFLQUFxSztRQUVySyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0o7QUFmRCw0RUFlQztBQXNORDs7Ozs7O0dBTUc7QUFDVSxRQUFBLDZCQUE2QixHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBVSxDQUFDIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FormValidatorCreateConfig } from "./form.model";
|
|
1
|
+
import { FormValidatorCreateConfig, FormValidatorErrorParams, FormValidatorErrors } from "./form.model";
|
|
2
2
|
/**
|
|
3
3
|
* Extract the length property in case it's an array or a string.
|
|
4
4
|
* Extract the size property in case it's a set.
|
|
@@ -12,3 +12,5 @@ export declare function formValidatorGetDefinitionNumber(config: FormValidatorCr
|
|
|
12
12
|
export declare function formValidatorGetDefinitionBoolean(config: FormValidatorCreateConfig | null | undefined, key: string, defaultValue?: boolean | undefined): boolean;
|
|
13
13
|
export declare function formValidatorGetDefinitionRegexp(config: FormValidatorCreateConfig | null | undefined, key: string, defaultValue?: RegExp | undefined): RegExp;
|
|
14
14
|
export declare function formValidatorGetDefinitionArray(config: FormValidatorCreateConfig | null | undefined, key: string, defaultValue?: unknown[] | undefined): unknown[];
|
|
15
|
+
export declare function formValidatorGetDefinitionObject(config: FormValidatorCreateConfig | null | undefined, key: string, defaultValue?: Record<string, unknown> | undefined): Record<string, unknown>;
|
|
16
|
+
export declare function formValidatorBuildError(config: FormValidatorCreateConfig | null | undefined, params?: FormValidatorErrorParams): FormValidatorErrors;
|
|
@@ -7,6 +7,8 @@ exports.formValidatorGetDefinitionNumber = formValidatorGetDefinitionNumber;
|
|
|
7
7
|
exports.formValidatorGetDefinitionBoolean = formValidatorGetDefinitionBoolean;
|
|
8
8
|
exports.formValidatorGetDefinitionRegexp = formValidatorGetDefinitionRegexp;
|
|
9
9
|
exports.formValidatorGetDefinitionArray = formValidatorGetDefinitionArray;
|
|
10
|
+
exports.formValidatorGetDefinitionObject = formValidatorGetDefinitionObject;
|
|
11
|
+
exports.formValidatorBuildError = formValidatorBuildError;
|
|
10
12
|
const lodash_1 = require("lodash");
|
|
11
13
|
const helpers_1 = require("../config/helpers");
|
|
12
14
|
/**
|
|
@@ -42,7 +44,7 @@ function formValidatorGetDefinitionNumber(config, key, defaultValue = undefined)
|
|
|
42
44
|
const value = formValidatorGetDefinitionItem(config, key, defaultValue);
|
|
43
45
|
const valueString = value?.toString() ?? "";
|
|
44
46
|
const valueNumber = parseFloat(valueString);
|
|
45
|
-
if (
|
|
47
|
+
if (!Number.isFinite(valueNumber)) {
|
|
46
48
|
throw new Error(`Invalid numeric value '${value}' for key '${key}' in validator config.`);
|
|
47
49
|
}
|
|
48
50
|
return valueNumber;
|
|
@@ -65,4 +67,29 @@ function formValidatorGetDefinitionArray(config, key, defaultValue = undefined)
|
|
|
65
67
|
}
|
|
66
68
|
throw new Error(`Invalid array value '${value}' for key '${key}' in validator config.`);
|
|
67
69
|
}
|
|
68
|
-
|
|
70
|
+
function formValidatorGetDefinitionObject(config, key, defaultValue = undefined) {
|
|
71
|
+
const value = formValidatorGetDefinitionItem(config, key, defaultValue);
|
|
72
|
+
if ((0, helpers_1.guessType)(value) === "object") {
|
|
73
|
+
return value;
|
|
74
|
+
}
|
|
75
|
+
throw new Error(`Invalid object value '${value}' for key '${key}' in validator config.`);
|
|
76
|
+
}
|
|
77
|
+
function formValidatorBuildError(config, params) {
|
|
78
|
+
const optionNameKey = "class";
|
|
79
|
+
const optionNameValue = formValidatorGetDefinitionString(config, optionNameKey);
|
|
80
|
+
const optionMessageKey = "message";
|
|
81
|
+
const optionMessageValue = formValidatorGetDefinitionString(config, optionMessageKey);
|
|
82
|
+
const optionTargetFieldKey = "targetField";
|
|
83
|
+
const optionTargetFieldValue = formValidatorGetDefinitionObject(config, optionTargetFieldKey, {});
|
|
84
|
+
const result = {
|
|
85
|
+
[optionNameValue]: {
|
|
86
|
+
[optionMessageKey]: optionMessageValue,
|
|
87
|
+
params: { ...params },
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
if (Object.keys(optionTargetFieldValue).length > 0) {
|
|
91
|
+
result[optionNameValue][optionTargetFieldKey] = optionTargetFieldValue;
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSw4REFVQztBQUVELHdFQVVDO0FBRUQsNEVBT0M7QUFFRCw0RUFZQztBQUVELDhFQU9DO0FBRUQsNEVBVUM7QUFFRCwwRUFVQztBQUVELDRFQVVDO0FBRUQsMERBb0JDO0FBM0hELG1DQUFtQztBQUVuQywrQ0FBdUQ7QUFHdkQ7Ozs7O0dBS0c7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxLQUF5RDtJQUNqRyxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3RCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQztTQUFNLElBQUksS0FBSyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBZ0IsOEJBQThCLENBQzVDLE1BQW9ELEVBQ3BELEdBQVcsRUFDWCxlQUF3QixTQUFTO0lBRWpDLE1BQU0sS0FBSyxHQUFHLElBQUEsWUFBSSxFQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBZ0IsZ0NBQWdDLENBQzlDLE1B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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FormValidationGroups, FormValidatorComponentErrors, FormValidatorConfig, FormValidatorDefinition, FormValidatorErrors, FormValidatorFns } from "./form.model";
|
|
1
|
+
import { FormValidationGroups, FormValidatorComponentErrors, FormValidatorConfig, FormValidatorDefinition, FormValidatorErrors, FormValidatorFns, FormValidatorTargetFieldConfig } from "./form.model";
|
|
2
2
|
export declare class ValidatorsSupport {
|
|
3
3
|
/**
|
|
4
4
|
* Create validator definition mapping from the validator definitions.
|
|
@@ -10,7 +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): FormValidatorFns;
|
|
13
|
+
createFormValidatorInstancesFromMapping(defMap: Map<string, FormValidatorDefinition>, config: (FormValidatorConfig | FormValidatorTargetFieldConfig)[] | null | undefined): FormValidatorFns;
|
|
14
14
|
/**
|
|
15
15
|
* Get the form validator errors for a component's control.
|
|
16
16
|
* @param errors The control's errors.
|
|
@@ -44,6 +44,9 @@ class ValidatorsSupport {
|
|
|
44
44
|
class: validatorClass,
|
|
45
45
|
message: message,
|
|
46
46
|
};
|
|
47
|
+
if ('targetField' in validatorConfigItem && validatorConfigItem.targetField !== undefined) {
|
|
48
|
+
createConfig.targetField = validatorConfigItem.targetField;
|
|
49
|
+
}
|
|
47
50
|
if ('create' in def) {
|
|
48
51
|
result.syncDefs.push(def.create(createConfig));
|
|
49
52
|
}
|
|
@@ -61,11 +64,19 @@ class ValidatorsSupport {
|
|
|
61
64
|
* @param errors The control's errors.
|
|
62
65
|
*/
|
|
63
66
|
getFormValidatorComponentErrors(errors) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
const result = [];
|
|
68
|
+
for (const [key, value] of Object.entries(errors ?? {})) {
|
|
69
|
+
const item = {
|
|
70
|
+
class: key,
|
|
71
|
+
message: value.message ?? null,
|
|
72
|
+
params: { ...value.params },
|
|
73
|
+
};
|
|
74
|
+
if (value.targetField !== undefined) {
|
|
75
|
+
item.targetField = value.targetField;
|
|
76
|
+
}
|
|
77
|
+
result.push(item);
|
|
78
|
+
}
|
|
79
|
+
return result;
|
|
69
80
|
}
|
|
70
81
|
checkValidationGroups(availableGroups, enabledGroupNames) {
|
|
71
82
|
const availableGroupNames = Object.keys(availableGroups);
|
|
@@ -151,4 +162,4 @@ class ValidatorsSupport {
|
|
|
151
162
|
}
|
|
152
163
|
}
|
|
153
164
|
exports.ValidatorsSupport = ValidatorsSupport;
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy1zdXBwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vdmFsaWRhdG9ycy1zdXBwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLGlFQUEyRTtBQUczRSxNQUFhLGlCQUFpQjtJQUM1Qjs7O09BR0c7SUFDSSxnQ0FBZ0MsQ0FDckMsVUFBd0Q7UUFFeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7UUFDMUQsS0FBSyxNQUFNLGNBQWMsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFBLGdEQUE2QixFQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdJLENBQUM7WUFDRCxNQUFNLGNBQWMsR0FBRyxjQUFjLEVBQUUsS0FBSyxDQUFDO1lBQzdDLE1BQU0sT0FBTyxHQUFHLGNBQWMsRUFBRSxPQUFPLENBQUM7WUFDeEMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLGNBQWMsNENBQTRDO3NCQUNwRywrRUFBK0UsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUcsQ0FBQztZQUNELE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJ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
|
|
@@ -26,10 +26,6 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
26
26
|
class: "min",
|
|
27
27
|
message: "@validator-error-min",
|
|
28
28
|
create: (config) => {
|
|
29
|
-
const optionNameKey = "class";
|
|
30
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "min");
|
|
31
|
-
const optionMessageKey = "message";
|
|
32
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-min");
|
|
33
29
|
const optionMinKey = "min";
|
|
34
30
|
const optionMinValue = (0, helpers_1.formValidatorGetDefinitionNumber)(config, optionMinKey);
|
|
35
31
|
return (control) => {
|
|
@@ -46,15 +42,10 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
46
42
|
// Controls with NaN values after parsing should be treated as not having a
|
|
47
43
|
// minimum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-min
|
|
48
44
|
if (value === undefined || (!isNaN(value) && value < optionMinValue)) {
|
|
49
|
-
return {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
requiredThreshold: optionMinValue,
|
|
54
|
-
actual: control.value,
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
};
|
|
45
|
+
return (0, helpers_1.formValidatorBuildError)(config, {
|
|
46
|
+
requiredThreshold: optionMinValue,
|
|
47
|
+
actual: control.value,
|
|
48
|
+
});
|
|
58
49
|
}
|
|
59
50
|
return null;
|
|
60
51
|
};
|
|
@@ -64,10 +55,6 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
64
55
|
class: "max",
|
|
65
56
|
message: "@validator-error-max",
|
|
66
57
|
create: (config) => {
|
|
67
|
-
const optionNameKey = "class";
|
|
68
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "max");
|
|
69
|
-
const optionMessageKey = "message";
|
|
70
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-max");
|
|
71
58
|
const optionMaxKey = "max";
|
|
72
59
|
const optionMaxValue = (0, helpers_1.formValidatorGetDefinitionNumber)(config, optionMaxKey);
|
|
73
60
|
return (control) => {
|
|
@@ -84,15 +71,10 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
84
71
|
// Controls with NaN values after parsing should be treated as not having a
|
|
85
72
|
// maximum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-max
|
|
86
73
|
if (value === undefined || (!isNaN(value) && value > optionMaxValue)) {
|
|
87
|
-
return {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
requiredThreshold: optionMaxValue,
|
|
92
|
-
actual: control.value,
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
};
|
|
74
|
+
return (0, helpers_1.formValidatorBuildError)(config, {
|
|
75
|
+
requiredThreshold: optionMaxValue,
|
|
76
|
+
actual: control.value,
|
|
77
|
+
});
|
|
96
78
|
}
|
|
97
79
|
return null;
|
|
98
80
|
};
|
|
@@ -102,10 +84,6 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
102
84
|
class: "minLength",
|
|
103
85
|
message: "@validator-error-min-length",
|
|
104
86
|
create: (config) => {
|
|
105
|
-
const optionNameKey = "class";
|
|
106
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "minLength");
|
|
107
|
-
const optionMessageKey = "message";
|
|
108
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-min-length");
|
|
109
87
|
const optionMinLengthKey = "minLength";
|
|
110
88
|
const optionMinLengthValue = (0, helpers_1.formValidatorGetDefinitionNumber)(config, optionMinLengthKey);
|
|
111
89
|
return (control) => {
|
|
@@ -116,15 +94,10 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
116
94
|
return null;
|
|
117
95
|
}
|
|
118
96
|
return length < optionMinLengthValue
|
|
119
|
-
? {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
requiredLength: optionMinLengthValue,
|
|
124
|
-
actualLength: length,
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
}
|
|
97
|
+
? (0, helpers_1.formValidatorBuildError)(config, {
|
|
98
|
+
requiredLength: optionMinLengthValue,
|
|
99
|
+
actualLength: length,
|
|
100
|
+
})
|
|
128
101
|
: null;
|
|
129
102
|
};
|
|
130
103
|
},
|
|
@@ -133,24 +106,15 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
133
106
|
class: "maxLength",
|
|
134
107
|
message: "@validator-error-max-length",
|
|
135
108
|
create: (config) => {
|
|
136
|
-
const optionNameKey = "class";
|
|
137
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "maxLength");
|
|
138
|
-
const optionMessageKey = "message";
|
|
139
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-max-length");
|
|
140
109
|
const optionMaxLengthKey = "maxLength";
|
|
141
110
|
const optionMaxLengthValue = (0, helpers_1.formValidatorGetDefinitionNumber)(config, optionMaxLengthKey);
|
|
142
111
|
return (control) => {
|
|
143
112
|
const length = (0, helpers_1.formValidatorLengthOrSize)(control.value);
|
|
144
113
|
if (length !== null && length > optionMaxLengthValue) {
|
|
145
|
-
return {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
requiredLength: optionMaxLengthValue,
|
|
150
|
-
actualLength: length,
|
|
151
|
-
},
|
|
152
|
-
},
|
|
153
|
-
};
|
|
114
|
+
return (0, helpers_1.formValidatorBuildError)(config, {
|
|
115
|
+
requiredLength: optionMaxLengthValue,
|
|
116
|
+
actualLength: length,
|
|
117
|
+
});
|
|
154
118
|
}
|
|
155
119
|
return null;
|
|
156
120
|
};
|
|
@@ -160,23 +124,14 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
160
124
|
class: "required",
|
|
161
125
|
message: "@validator-error-required",
|
|
162
126
|
create: (config) => {
|
|
163
|
-
const optionNameKey = "class";
|
|
164
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "required");
|
|
165
|
-
const optionMessageKey = "message";
|
|
166
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-required");
|
|
167
127
|
const optionRequiredKey = "required";
|
|
168
128
|
const optionRequiredValue = (0, helpers_1.formValidatorGetDefinitionBoolean)(config, optionRequiredKey, true);
|
|
169
129
|
return (control) => {
|
|
170
130
|
if (optionRequiredValue && (control.value == null || (0, helpers_1.formValidatorLengthOrSize)(control.value) === 0)) {
|
|
171
|
-
return {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
required: optionRequiredValue,
|
|
176
|
-
actual: control.value,
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
};
|
|
131
|
+
return (0, helpers_1.formValidatorBuildError)(config, {
|
|
132
|
+
required: optionRequiredValue,
|
|
133
|
+
actual: control.value,
|
|
134
|
+
});
|
|
180
135
|
}
|
|
181
136
|
return null;
|
|
182
137
|
};
|
|
@@ -186,23 +141,14 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
186
141
|
class: "requiredTrue",
|
|
187
142
|
message: "@validator-error-required-true",
|
|
188
143
|
create: (config) => {
|
|
189
|
-
const optionNameKey = "class";
|
|
190
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "requiredTrue")?.toString() ?? "";
|
|
191
|
-
const optionMessageKey = "message";
|
|
192
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-required-true");
|
|
193
144
|
const optionRequiredKey = "requiredTrue";
|
|
194
145
|
const optionRequiredValue = (0, helpers_1.formValidatorGetDefinitionBoolean)(config, optionRequiredKey, true);
|
|
195
146
|
return (control) => {
|
|
196
147
|
if (optionRequiredValue && control.value !== true) {
|
|
197
|
-
return {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
required: optionRequiredValue,
|
|
202
|
-
actual: control.value,
|
|
203
|
-
},
|
|
204
|
-
},
|
|
205
|
-
};
|
|
148
|
+
return (0, helpers_1.formValidatorBuildError)(config, {
|
|
149
|
+
required: optionRequiredValue,
|
|
150
|
+
actual: control.value,
|
|
151
|
+
});
|
|
206
152
|
}
|
|
207
153
|
return null;
|
|
208
154
|
};
|
|
@@ -212,10 +158,6 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
212
158
|
class: "email",
|
|
213
159
|
message: "@validator-error-email",
|
|
214
160
|
create: (config) => {
|
|
215
|
-
const optionNameKey = "class";
|
|
216
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "email");
|
|
217
|
-
const optionMessageKey = "message";
|
|
218
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-email");
|
|
219
161
|
const optionDescriptionKey = "description";
|
|
220
162
|
const optionDescriptionValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionDescriptionKey, "email must be in format (name)@(domain.tld)");
|
|
221
163
|
const optionPatternKey = "pattern";
|
|
@@ -228,15 +170,10 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
228
170
|
const value = control.value?.toString() ?? "";
|
|
229
171
|
const testOutcome = optionPatternValue.test(value);
|
|
230
172
|
if (!testOutcome) {
|
|
231
|
-
return {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
requiredPattern: optionPatternValue,
|
|
236
|
-
description: optionDescriptionValue, actual: control.value,
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
};
|
|
173
|
+
return (0, helpers_1.formValidatorBuildError)(config, {
|
|
174
|
+
requiredPattern: optionPatternValue,
|
|
175
|
+
description: optionDescriptionValue, actual: control.value,
|
|
176
|
+
});
|
|
240
177
|
}
|
|
241
178
|
return null;
|
|
242
179
|
};
|
|
@@ -246,10 +183,6 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
246
183
|
class: "pattern",
|
|
247
184
|
message: "@validator-error-pattern",
|
|
248
185
|
create: (config) => {
|
|
249
|
-
const optionNameKey = "class";
|
|
250
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "pattern");
|
|
251
|
-
const optionMessageKey = "message";
|
|
252
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-pattern");
|
|
253
186
|
const optionDescriptionKey = "description";
|
|
254
187
|
const optionDescriptionValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionDescriptionKey);
|
|
255
188
|
const optionPatternKey = "pattern";
|
|
@@ -272,16 +205,11 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
272
205
|
const value = control.value?.toString();
|
|
273
206
|
return regex.test(value)
|
|
274
207
|
? null
|
|
275
|
-
: {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
description: optionDescriptionValue,
|
|
281
|
-
actual: value,
|
|
282
|
-
},
|
|
283
|
-
},
|
|
284
|
-
};
|
|
208
|
+
: (0, helpers_1.formValidatorBuildError)(config, {
|
|
209
|
+
requiredPattern: regexStr,
|
|
210
|
+
description: optionDescriptionValue,
|
|
211
|
+
actual: value,
|
|
212
|
+
});
|
|
285
213
|
};
|
|
286
214
|
},
|
|
287
215
|
},
|
|
@@ -289,10 +217,6 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
289
217
|
class: "different-values",
|
|
290
218
|
message: "@validator-error-different-values",
|
|
291
219
|
create: (config) => {
|
|
292
|
-
const optionNameKey = "class";
|
|
293
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "different-values");
|
|
294
|
-
const optionMessageKey = "message";
|
|
295
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-different-values");
|
|
296
220
|
const optionControlNamesKey = "controlNames";
|
|
297
221
|
const optionControlNamesValue = (0, helpers_1.formValidatorGetDefinitionArray)(config, optionControlNamesKey);
|
|
298
222
|
return (control) => {
|
|
@@ -301,20 +225,15 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
301
225
|
?.filter(i => i !== null && i !== undefined)
|
|
302
226
|
?.map(n => control?.get(n?.toString())) ?? [];
|
|
303
227
|
const values = new Set(controls?.map(c => c?.value) ?? []);
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
},
|
|
314
|
-
},
|
|
315
|
-
};
|
|
316
|
-
}
|
|
317
|
-
return null;
|
|
228
|
+
const compare = values.size === controls.length;
|
|
229
|
+
return compare
|
|
230
|
+
? null
|
|
231
|
+
: (0, helpers_1.formValidatorBuildError)(config, {
|
|
232
|
+
controlNames: optionControlNamesValue,
|
|
233
|
+
controlCount: optionControlNamesValue?.length,
|
|
234
|
+
valueCount: values.size,
|
|
235
|
+
values: Array.from(values),
|
|
236
|
+
});
|
|
318
237
|
};
|
|
319
238
|
},
|
|
320
239
|
},
|
|
@@ -322,10 +241,6 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
322
241
|
class: "jsonata-expression",
|
|
323
242
|
message: "@validator-error-jsonata-expression",
|
|
324
243
|
createAsync: (config) => {
|
|
325
|
-
const optionNameKey = "class";
|
|
326
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "jsonata-expression");
|
|
327
|
-
const optionMessageKey = "message";
|
|
328
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-jsonata-expression");
|
|
329
244
|
const optionDescriptionKey = "description";
|
|
330
245
|
const optionDescriptionValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionDescriptionKey, "");
|
|
331
246
|
const optionExpressionKey = "expression";
|
|
@@ -364,16 +279,11 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
364
279
|
}
|
|
365
280
|
return success
|
|
366
281
|
? null
|
|
367
|
-
: {
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
description: optionDescriptionValue,
|
|
373
|
-
actual: value,
|
|
374
|
-
},
|
|
375
|
-
},
|
|
376
|
-
};
|
|
282
|
+
: (0, helpers_1.formValidatorBuildError)(config, {
|
|
283
|
+
expression: expression,
|
|
284
|
+
description: optionDescriptionValue,
|
|
285
|
+
actual: control.value,
|
|
286
|
+
});
|
|
377
287
|
};
|
|
378
288
|
},
|
|
379
289
|
},
|
|
@@ -382,10 +292,6 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
382
292
|
class: "orcid",
|
|
383
293
|
message: "@validator-error-orcid",
|
|
384
294
|
create: (config) => {
|
|
385
|
-
const optionNameKey = "class";
|
|
386
|
-
const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "orcid");
|
|
387
|
-
const optionMessageKey = "message";
|
|
388
|
-
const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-orcid");
|
|
389
295
|
return (control) => {
|
|
390
296
|
if (control.value == null || control.value === "") {
|
|
391
297
|
return null; // don't validate empty values
|
|
@@ -393,25 +299,15 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
393
299
|
let value = control.value.toString();
|
|
394
300
|
// Validate format: either xxxx-xxxx-xxxx-xxxx or xxxxxxxxxxxxxxxx, last digit can be X or x
|
|
395
301
|
if (!/^(\d{4}-\d{4}-\d{4}-\d{3}[\dXx]|\d{15}[\dXx])$/.test(value)) {
|
|
396
|
-
return {
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
params: {
|
|
400
|
-
actual: control.value,
|
|
401
|
-
},
|
|
402
|
-
},
|
|
403
|
-
};
|
|
302
|
+
return (0, helpers_1.formValidatorBuildError)(config, {
|
|
303
|
+
actual: control.value,
|
|
304
|
+
});
|
|
404
305
|
}
|
|
405
306
|
value = value.replace(/-/g, '');
|
|
406
307
|
if (value.length !== 16) {
|
|
407
|
-
return {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
params: {
|
|
411
|
-
actual: control.value,
|
|
412
|
-
},
|
|
413
|
-
},
|
|
414
|
-
};
|
|
308
|
+
return (0, helpers_1.formValidatorBuildError)(config, {
|
|
309
|
+
actual: control.value,
|
|
310
|
+
});
|
|
415
311
|
}
|
|
416
312
|
const baseDigits = value.substring(0, 15);
|
|
417
313
|
const checkDigit = value.substring(15);
|
|
@@ -424,18 +320,13 @@ exports.formValidatorsSharedDefinitions = [
|
|
|
424
320
|
const result = (12 - remainder) % 11;
|
|
425
321
|
const calculatedCheckDigit = result === 10 ? "X" : result.toString();
|
|
426
322
|
if (checkDigit.toUpperCase() !== calculatedCheckDigit) {
|
|
427
|
-
return {
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
params: {
|
|
431
|
-
actual: control.value,
|
|
432
|
-
},
|
|
433
|
-
},
|
|
434
|
-
};
|
|
323
|
+
return (0, helpers_1.formValidatorBuildError)(config, {
|
|
324
|
+
actual: control.value,
|
|
325
|
+
});
|
|
435
326
|
}
|
|
436
327
|
return null;
|
|
437
328
|
};
|
|
438
329
|
},
|
|
439
330
|
},
|
|
440
331
|
];
|
|
441
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUNBUW1CO0FBSW5COzs7O0dBSUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLG9NQUFvTSxDQUFDO0FBRWhQOzs7Ozs7Ozs7Ozs7R0FZRztBQUNVLFFBQUEsK0JBQStCLEdBQThCO0lBQ3hFO1FBQ0UsS0FBSyxFQUFFLEtBQUs7UUFDWixPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUM5QixNQUFNLGVBQWUsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkYsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7WUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1lBQzlHLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM5RSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNwRCxPQUFPLElBQUksQ0FBQyxDQUFDLHlEQUF5RDtnQkFDeEUsQ0FBQztnQkFFRCxJQUFJLEtBQUssQ0FBQztnQkFDVixJQUFJLENBQUM7b0JBQ0gsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO2dC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
|
|
332
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUNBU21CO0FBSW5COzs7O0dBSUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLG9NQUFvTSxDQUFDO0FBRWhQOzs7Ozs7Ozs7Ozs7R0FZRztBQUNVLFFBQUEsK0JBQStCLEdBQThCO0lBQ3hFO1FBQ0UsS0FBSyxFQUFFLEtBQUs7UUFDWixPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM5RSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNwRCxPQUFPLElBQUksQ0FBQyxDQUFDLHlEQUF5RDtnQkFDeEUsQ0FBQztnQkFFRCxJQUFJLEtBQUssQ0FBQztnQkFDVixJQUFJLENBQUM7b0JBQ0gsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO2dCQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7b0JBQ2IsS0FBSyxHQUFHLFNBQVMsQ0FBQztnQkFDcEIsQ0FBQztnQkFFRCwyRUFBMkU7Z0JBQzNFLDBGQUEwRjtnQkFDMUYsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLGNBQWMsQ0FBQyxFQUFFLENBQUM7b0JBQ3JFLE9BQU8sSUFBQSxpQ0FBdUIsRUFBQyxN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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.
|
|
3
|
+
"version": "0.0.1-beta.9700",
|
|
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",
|