@defra/forms-model 3.0.493 → 3.0.495
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/module/form/form-definition/index.js +17 -15
- package/dist/module/form/form-definition/index.js.map +1 -1
- package/dist/module/form/form-manager/errors.js +73 -0
- package/dist/module/form/form-manager/errors.js.map +1 -0
- package/dist/module/form/form-manager/types.js +1 -23
- package/dist/module/form/form-manager/types.js.map +1 -1
- package/dist/module/pages/helpers.js +19 -1
- package/dist/module/pages/helpers.js.map +1 -1
- package/dist/module/pages/index.js +1 -1
- package/dist/module/pages/index.js.map +1 -1
- package/dist/types/form/form-definition/index.d.ts.map +1 -1
- package/dist/types/form/form-manager/errors.d.ts +12 -0
- package/dist/types/form/form-manager/errors.d.ts.map +1 -0
- package/dist/types/form/form-manager/types.d.ts +1 -4
- package/dist/types/form/form-manager/types.d.ts.map +1 -1
- package/dist/types/pages/helpers.d.ts +6 -0
- package/dist/types/pages/helpers.d.ts.map +1 -1
- package/dist/types/pages/index.d.ts +1 -1
- package/dist/types/pages/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/form/form-definition/index.ts +64 -11
- package/src/form/form-manager/errors.ts +107 -0
- package/src/form/form-manager/types.ts +1 -26
- package/src/pages/helpers.ts +20 -1
- package/src/pages/index.ts +1 -0
@@ -8,8 +8,8 @@ export let FormDefinitionErrorType = /*#__PURE__*/function (FormDefinitionErrorT
|
|
8
8
|
|
9
9
|
// Enum for errors that can exist in a form definition
|
10
10
|
export let FormDefinitionError = /*#__PURE__*/function (FormDefinitionError) {
|
11
|
-
FormDefinitionError["UniquePagePath"] = "unique_page_path";
|
12
11
|
FormDefinitionError["UniquePageId"] = "unique_page_id";
|
12
|
+
FormDefinitionError["UniquePagePath"] = "unique_page_path";
|
13
13
|
FormDefinitionError["UniquePageComponentId"] = "unique_page_component_id";
|
14
14
|
FormDefinitionError["UniquePageComponentName"] = "unique_page_component_name";
|
15
15
|
FormDefinitionError["UniqueSectionName"] = "unique_section_name";
|
@@ -31,111 +31,89 @@ export let FormDefinitionError = /*#__PURE__*/function (FormDefinitionError) {
|
|
31
31
|
FormDefinitionError["Other"] = "other";
|
32
32
|
return FormDefinitionError;
|
33
33
|
}({});
|
34
|
-
export const N = Symbol('AnyNumber');
|
35
34
|
// The errors that can exist in the form definition
|
36
35
|
export const formDefinitionErrors = {
|
37
36
|
[FormDefinitionError.UniquePagePath]: {
|
38
|
-
path: ['pages', N],
|
39
37
|
key: 'path',
|
40
38
|
type: FormDefinitionErrorType.Unique
|
41
39
|
},
|
42
40
|
[FormDefinitionError.UniquePageId]: {
|
43
|
-
path: ['pages', N],
|
44
41
|
key: 'id',
|
45
42
|
type: FormDefinitionErrorType.Unique
|
46
43
|
},
|
47
44
|
[FormDefinitionError.UniquePageComponentId]: {
|
48
|
-
path: ['pages', N, 'components', N],
|
49
45
|
key: 'id',
|
50
46
|
type: FormDefinitionErrorType.Unique
|
51
47
|
},
|
52
48
|
[FormDefinitionError.UniquePageComponentName]: {
|
53
|
-
path: ['pages', N, 'components', N],
|
54
49
|
key: 'name',
|
55
50
|
type: FormDefinitionErrorType.Unique
|
56
51
|
},
|
57
52
|
[FormDefinitionError.UniqueSectionName]: {
|
58
|
-
path: ['sections', N],
|
59
53
|
key: 'name',
|
60
54
|
type: FormDefinitionErrorType.Unique
|
61
55
|
},
|
62
56
|
[FormDefinitionError.UniqueSectionTitle]: {
|
63
|
-
path: ['sections', N],
|
64
57
|
key: 'title',
|
65
58
|
type: FormDefinitionErrorType.Unique
|
66
59
|
},
|
67
60
|
[FormDefinitionError.UniqueListId]: {
|
68
|
-
path: ['lists', N],
|
69
61
|
key: 'id',
|
70
62
|
type: FormDefinitionErrorType.Unique
|
71
63
|
},
|
72
64
|
[FormDefinitionError.UniqueListTitle]: {
|
73
|
-
path: ['lists', N],
|
74
65
|
key: 'title',
|
75
66
|
type: FormDefinitionErrorType.Unique
|
76
67
|
},
|
77
68
|
[FormDefinitionError.UniqueListName]: {
|
78
|
-
path: ['lists', N],
|
79
69
|
key: 'name',
|
80
70
|
type: FormDefinitionErrorType.Unique
|
81
71
|
},
|
82
72
|
[FormDefinitionError.UniqueConditionDisplayName]: {
|
83
|
-
path: ['conditions', N],
|
84
73
|
key: 'displayName',
|
85
74
|
type: FormDefinitionErrorType.Unique
|
86
75
|
},
|
87
76
|
[FormDefinitionError.UniqueConditionId]: {
|
88
|
-
path: ['conditions', N],
|
89
77
|
key: 'id',
|
90
78
|
type: FormDefinitionErrorType.Unique
|
91
79
|
},
|
92
80
|
[FormDefinitionError.UniqueListItemId]: {
|
93
|
-
path: ['lists', N, 'items', N],
|
94
81
|
key: 'id',
|
95
82
|
type: FormDefinitionErrorType.Unique
|
96
83
|
},
|
97
84
|
[FormDefinitionError.UniqueListItemText]: {
|
98
|
-
path: ['lists', N, 'items', N],
|
99
85
|
key: 'text',
|
100
86
|
type: FormDefinitionErrorType.Unique
|
101
87
|
},
|
102
88
|
[FormDefinitionError.UniqueListItemValue]: {
|
103
|
-
path: ['lists', N, 'items', N],
|
104
89
|
key: 'value',
|
105
90
|
type: FormDefinitionErrorType.Unique
|
106
91
|
},
|
107
92
|
[FormDefinitionError.RefPageCondition]: {
|
108
|
-
path: ['pages', N, 'condition'],
|
109
93
|
key: 'condition',
|
110
94
|
type: FormDefinitionErrorType.Ref
|
111
95
|
},
|
112
96
|
[FormDefinitionError.RefConditionComponentId]: {
|
113
|
-
path: ['conditions', N, 'items', N, 'componentId'],
|
114
97
|
key: 'componentId',
|
115
98
|
type: FormDefinitionErrorType.Ref
|
116
99
|
},
|
117
100
|
[FormDefinitionError.RefConditionListId]: {
|
118
|
-
path: ['conditions', N, 'items', N, 'value', 'listId'],
|
119
101
|
key: 'listId',
|
120
102
|
type: FormDefinitionErrorType.Ref
|
121
103
|
},
|
122
104
|
[FormDefinitionError.RefConditionItemId]: {
|
123
|
-
path: ['conditions', N, 'items', N, 'value', 'itemId'],
|
124
105
|
key: 'itemId',
|
125
106
|
type: FormDefinitionErrorType.Ref
|
126
107
|
},
|
127
108
|
[FormDefinitionError.RefConditionConditionId]: {
|
128
|
-
path: ['conditions', N, 'items', N, 'conditionId'],
|
129
109
|
key: 'conditionId',
|
130
110
|
type: FormDefinitionErrorType.Ref
|
131
111
|
},
|
132
112
|
[FormDefinitionError.RefPageComponentList]: {
|
133
|
-
path: ['pages', N, 'components', N, 'list'],
|
134
113
|
key: 'list',
|
135
114
|
type: FormDefinitionErrorType.Ref
|
136
115
|
},
|
137
116
|
[FormDefinitionError.Other]: {
|
138
|
-
path: [],
|
139
117
|
key: '',
|
140
118
|
type: FormDefinitionErrorType.Type
|
141
119
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","names":["FormDefinitionErrorType","FormDefinitionError","N","Symbol","formDefinitionErrors","UniquePagePath","path","key","type","Unique","UniquePageId","UniquePageComponentId","UniquePageComponentName","UniqueSectionName","UniqueSectionTitle","UniqueListId","UniqueListTitle","UniqueListName","UniqueConditionDisplayName","UniqueConditionId","UniqueListItemId","UniqueListItemText","UniqueListItemValue","RefPageCondition","Ref","RefConditionComponentId","RefConditionListId","RefConditionItemId","RefConditionConditionId","RefPageComponentList","Other","Type"],"sources":["../../../../src/form/form-manager/types.ts"],"sourcesContent":["import { type Context } from 'joi'\n\nimport { type ControllerType, type Repeat } from '~/src/index.js'\n\nexport interface PatchPageFields {\n title?: string\n path?: string\n controller?: ControllerType | null\n repeat?: Repeat\n condition?: string | null\n}\n\nexport interface AddComponentQueryOptions {\n prepend?: boolean\n}\n\n// Enum of error types that can be raised through validating the form definition\nexport enum FormDefinitionErrorType {\n Unique = 'unique', // Unique constraint\n Ref = 'ref', // Referential integrity\n Type = 'type' // General schema type error\n}\n\n// Enum for errors that can exist in a form definition\nexport enum FormDefinitionError {\n UniquePagePath = 'unique_page_path',\n UniquePageId = 'unique_page_id',\n UniquePageComponentId = 'unique_page_component_id',\n UniquePageComponentName = 'unique_page_component_name',\n UniqueSectionName = 'unique_section_name',\n UniqueSectionTitle = 'unique_section_title',\n UniqueListId = 'unique_list_id',\n UniqueListTitle = 'unique_list_title',\n UniqueListName = 'unique_list_name',\n UniqueConditionId = 'unique_condition_id',\n UniqueConditionDisplayName = 'unique_condition_displayname',\n UniqueListItemId = 'unique_list_item_id',\n UniqueListItemText = 'unique_list_item_text',\n UniqueListItemValue = 'unique_list_item_value',\n RefPageCondition = 'ref_page_condition',\n RefConditionComponentId = 'ref_condition_component_id',\n RefConditionListId = 'ref_condition_list_id',\n RefConditionItemId = 'ref_condition_item_id',\n RefConditionConditionId = 'ref_condition_condition_id',\n RefPageComponentList = 'ref_page_component_list',\n Other = 'other'\n}\n\nexport const N = Symbol('AnyNumber')\n\nexport type ErrorMatchPath = (string | typeof N)[]\nexport interface ErrorMatchValue {\n path: ErrorMatchPath\n key: string\n type: FormDefinitionErrorType\n}\n\nexport type FormDefinitionErrors = Record<FormDefinitionError, ErrorMatchValue>\n\n// The errors that can exist in the form definition\nexport const formDefinitionErrors: FormDefinitionErrors = {\n [FormDefinitionError.UniquePagePath]: {\n path: ['pages', N],\n key: 'path',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniquePageId]: {\n path: ['pages', N],\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniquePageComponentId]: {\n path: ['pages', N, 'components', N],\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniquePageComponentName]: {\n path: ['pages', N, 'components', N],\n key: 'name',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueSectionName]: {\n path: ['sections', N],\n key: 'name',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueSectionTitle]: {\n path: ['sections', N],\n key: 'title',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListId]: {\n path: ['lists', N],\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListTitle]: {\n path: ['lists', N],\n key: 'title',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListName]: {\n path: ['lists', N],\n key: 'name',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueConditionDisplayName]: {\n path: ['conditions', N],\n key: 'displayName',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueConditionId]: {\n path: ['conditions', N],\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListItemId]: {\n path: ['lists', N, 'items', N],\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListItemText]: {\n path: ['lists', N, 'items', N],\n key: 'text',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListItemValue]: {\n path: ['lists', N, 'items', N],\n key: 'value',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.RefPageCondition]: {\n path: ['pages', N, 'condition'],\n key: 'condition',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefConditionComponentId]: {\n path: ['conditions', N, 'items', N, 'componentId'],\n key: 'componentId',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefConditionListId]: {\n path: ['conditions', N, 'items', N, 'value', 'listId'],\n key: 'listId',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefConditionItemId]: {\n path: ['conditions', N, 'items', N, 'value', 'itemId'],\n key: 'itemId',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefConditionConditionId]: {\n path: ['conditions', N, 'items', N, 'conditionId'],\n key: 'conditionId',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefPageComponentList]: {\n path: ['pages', N, 'components', N, 'list'],\n key: 'list',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.Other]: {\n path: [],\n key: '',\n type: FormDefinitionErrorType.Type\n }\n}\n\nexport type FormDefinitionErrorCauseDetailPath = (string | number)[]\n\nexport interface FormDefinitionErrorCauseDetailUnique {\n path: FormDefinitionErrorCauseDetailPath\n pos: number\n dupePos: number\n}\n\nexport interface FormDefinitionErrorCauseDetailRef {\n path: FormDefinitionErrorCauseDetailPath\n}\n\nexport type FormDefinitionErrorCause =\n | {\n id: FormDefinitionError\n type: FormDefinitionErrorType.Unique\n message: string\n detail: FormDefinitionErrorCauseDetailUnique\n }\n | {\n id: FormDefinitionError\n type: FormDefinitionErrorType.Ref\n message: string\n detail: FormDefinitionErrorCauseDetailRef\n }\n | {\n id: FormDefinitionError\n type: FormDefinitionErrorType.Type\n message: string /* */\n detail: Context | undefined\n }\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"types.js","names":["FormDefinitionErrorType","FormDefinitionError","formDefinitionErrors","UniquePagePath","key","type","Unique","UniquePageId","UniquePageComponentId","UniquePageComponentName","UniqueSectionName","UniqueSectionTitle","UniqueListId","UniqueListTitle","UniqueListName","UniqueConditionDisplayName","UniqueConditionId","UniqueListItemId","UniqueListItemText","UniqueListItemValue","RefPageCondition","Ref","RefConditionComponentId","RefConditionListId","RefConditionItemId","RefConditionConditionId","RefPageComponentList","Other","Type"],"sources":["../../../../src/form/form-manager/types.ts"],"sourcesContent":["import { type Context } from 'joi'\n\nimport { type ControllerType, type Repeat } from '~/src/index.js'\n\nexport interface PatchPageFields {\n title?: string\n path?: string\n controller?: ControllerType | null\n repeat?: Repeat\n condition?: string | null\n}\n\nexport interface AddComponentQueryOptions {\n prepend?: boolean\n}\n\n// Enum of error types that can be raised through validating the form definition\nexport enum FormDefinitionErrorType {\n Unique = 'unique', // Unique constraint\n Ref = 'ref', // Referential integrity\n Type = 'type' // General schema type error\n}\n\n// Enum for errors that can exist in a form definition\nexport enum FormDefinitionError {\n UniquePageId = 'unique_page_id',\n UniquePagePath = 'unique_page_path',\n UniquePageComponentId = 'unique_page_component_id',\n UniquePageComponentName = 'unique_page_component_name',\n UniqueSectionName = 'unique_section_name',\n UniqueSectionTitle = 'unique_section_title',\n UniqueListId = 'unique_list_id',\n UniqueListTitle = 'unique_list_title',\n UniqueListName = 'unique_list_name',\n UniqueConditionId = 'unique_condition_id',\n UniqueConditionDisplayName = 'unique_condition_displayname',\n UniqueListItemId = 'unique_list_item_id',\n UniqueListItemText = 'unique_list_item_text',\n UniqueListItemValue = 'unique_list_item_value',\n RefPageCondition = 'ref_page_condition',\n RefConditionComponentId = 'ref_condition_component_id',\n RefConditionListId = 'ref_condition_list_id',\n RefConditionItemId = 'ref_condition_item_id',\n RefConditionConditionId = 'ref_condition_condition_id',\n RefPageComponentList = 'ref_page_component_list',\n Other = 'other'\n}\n\nexport interface ErrorMatchValue {\n key: string\n type: FormDefinitionErrorType\n}\n\nexport type FormDefinitionErrors = Record<FormDefinitionError, ErrorMatchValue>\n\n// The errors that can exist in the form definition\nexport const formDefinitionErrors: FormDefinitionErrors = {\n [FormDefinitionError.UniquePagePath]: {\n key: 'path',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniquePageId]: {\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniquePageComponentId]: {\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniquePageComponentName]: {\n key: 'name',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueSectionName]: {\n key: 'name',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueSectionTitle]: {\n key: 'title',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListId]: {\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListTitle]: {\n key: 'title',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListName]: {\n key: 'name',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueConditionDisplayName]: {\n key: 'displayName',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueConditionId]: {\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListItemId]: {\n key: 'id',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListItemText]: {\n key: 'text',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.UniqueListItemValue]: {\n key: 'value',\n type: FormDefinitionErrorType.Unique\n },\n [FormDefinitionError.RefPageCondition]: {\n key: 'condition',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefConditionComponentId]: {\n key: 'componentId',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefConditionListId]: {\n key: 'listId',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefConditionItemId]: {\n key: 'itemId',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefConditionConditionId]: {\n key: 'conditionId',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.RefPageComponentList]: {\n key: 'list',\n type: FormDefinitionErrorType.Ref\n },\n [FormDefinitionError.Other]: {\n key: '',\n type: FormDefinitionErrorType.Type\n }\n}\n\nexport type FormDefinitionErrorCauseDetailPath = (string | number)[]\n\nexport interface FormDefinitionErrorCauseDetailUnique {\n path: FormDefinitionErrorCauseDetailPath\n pos: number\n dupePos: number\n}\n\nexport interface FormDefinitionErrorCauseDetailRef {\n path: FormDefinitionErrorCauseDetailPath\n}\n\nexport type FormDefinitionErrorCause =\n | {\n id: FormDefinitionError\n type: FormDefinitionErrorType.Unique\n message: string\n detail: FormDefinitionErrorCauseDetailUnique\n }\n | {\n id: FormDefinitionError\n type: FormDefinitionErrorType.Ref\n message: string\n detail: FormDefinitionErrorCauseDetailRef\n }\n | {\n id: FormDefinitionError\n type: FormDefinitionErrorType.Type\n message: string /* */\n detail: Context | undefined\n }\n"],"mappings":"AAgBA;AACA,WAAYA,uBAAuB,0BAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;;AAMnC;AACA,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AA+B/B;AACA,OAAO,MAAMC,oBAA0C,GAAG;EACxD,CAACD,mBAAmB,CAACE,cAAc,GAAG;IACpCC,GAAG,EAAE,MAAM;IACXC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACM,YAAY,GAAG;IAClCH,GAAG,EAAE,IAAI;IACTC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACO,qBAAqB,GAAG;IAC3CJ,GAAG,EAAE,IAAI;IACTC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACQ,uBAAuB,GAAG;IAC7CL,GAAG,EAAE,MAAM;IACXC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACS,iBAAiB,GAAG;IACvCN,GAAG,EAAE,MAAM;IACXC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACU,kBAAkB,GAAG;IACxCP,GAAG,EAAE,OAAO;IACZC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACW,YAAY,GAAG;IAClCR,GAAG,EAAE,IAAI;IACTC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACY,eAAe,GAAG;IACrCT,GAAG,EAAE,OAAO;IACZC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACa,cAAc,GAAG;IACpCV,GAAG,EAAE,MAAM;IACXC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACc,0BAA0B,GAAG;IAChDX,GAAG,EAAE,aAAa;IAClBC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACe,iBAAiB,GAAG;IACvCZ,GAAG,EAAE,IAAI;IACTC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACgB,gBAAgB,GAAG;IACtCb,GAAG,EAAE,IAAI;IACTC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACiB,kBAAkB,GAAG;IACxCd,GAAG,EAAE,MAAM;IACXC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACkB,mBAAmB,GAAG;IACzCf,GAAG,EAAE,OAAO;IACZC,IAAI,EAAEL,uBAAuB,CAACM;EAChC,CAAC;EACD,CAACL,mBAAmB,CAACmB,gBAAgB,GAAG;IACtChB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAEL,uBAAuB,CAACqB;EAChC,CAAC;EACD,CAACpB,mBAAmB,CAACqB,uBAAuB,GAAG;IAC7ClB,GAAG,EAAE,aAAa;IAClBC,IAAI,EAAEL,uBAAuB,CAACqB;EAChC,CAAC;EACD,CAACpB,mBAAmB,CAACsB,kBAAkB,GAAG;IACxCnB,GAAG,EAAE,QAAQ;IACbC,IAAI,EAAEL,uBAAuB,CAACqB;EAChC,CAAC;EACD,CAACpB,mBAAmB,CAACuB,kBAAkB,GAAG;IACxCpB,GAAG,EAAE,QAAQ;IACbC,IAAI,EAAEL,uBAAuB,CAACqB;EAChC,CAAC;EACD,CAACpB,mBAAmB,CAACwB,uBAAuB,GAAG;IAC7CrB,GAAG,EAAE,aAAa;IAClBC,IAAI,EAAEL,uBAAuB,CAACqB;EAChC,CAAC;EACD,CAACpB,mBAAmB,CAACyB,oBAAoB,GAAG;IAC1CtB,GAAG,EAAE,MAAM;IACXC,IAAI,EAAEL,uBAAuB,CAACqB;EAChC,CAAC;EACD,CAACpB,mBAAmB,CAAC0B,KAAK,GAAG;IAC3BvB,GAAG,EAAE,EAAE;IACPC,IAAI,EAAEL,uBAAuB,CAAC4B;EAChC;AACF,CAAC","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ComponentType } from "../index.js";
|
1
|
+
import { ComponentType, hasFormField } from "../index.js";
|
2
2
|
import { ControllerNames, ControllerTypes } from "./controller-types.js";
|
3
3
|
import { ControllerType } from "./enums.js";
|
4
4
|
import { PageTypes } from "./page-types.js";
|
@@ -110,4 +110,22 @@ export function omitFileUploadComponent(page) {
|
|
110
110
|
}
|
111
111
|
return false;
|
112
112
|
}
|
113
|
+
|
114
|
+
/**
|
115
|
+
* Gets page title, or title of first question (if no page title set)
|
116
|
+
* @param {Page} page
|
117
|
+
* @returns {string}
|
118
|
+
*/
|
119
|
+
export function getPageTitle(page) {
|
120
|
+
if (page.title !== '') {
|
121
|
+
return page.title;
|
122
|
+
}
|
123
|
+
if (hasComponentsEvenIfNoNext(page)) {
|
124
|
+
const firstComp = page.components.find(hasFormField);
|
125
|
+
if (firstComp) {
|
126
|
+
return firstComp.title;
|
127
|
+
}
|
128
|
+
}
|
129
|
+
return 'Page title unknown';
|
130
|
+
}
|
113
131
|
//# sourceMappingURL=helpers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["ComponentType","ControllerNames","ControllerTypes","ControllerType","PageTypes","getPageDefaults","page","nameOrPath","controller","Page","controllerNameFromPath","defaults","find","pageType","Error","structuredClone","hasComponents","hasNext","Array","isArray","components","hasComponentsEvenIfNoNext","undefined","hasFormComponents","Start","hasRepeater","Repeat","isControllerName","map","String","includes","Terminal","FileUpload","options","path","name","includesFileUploadField","some","component","type","FileUploadField","SHOW_REPEATER_CONTROLLERS","showRepeaterSettings","omitFileUploadComponent","length"],"sources":["../../../src/pages/helpers.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport {\n type Link,\n type Page,\n type PageFileUpload,\n type PageQuestion,\n type PageRepeat\n} from '~/src/form/form-definition/types.js'\nimport { ComponentType } from '~/src/index.js'\nimport {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\nimport { ControllerType } from '~/src/pages/enums.js'\nimport { PageTypes } from '~/src/pages/page-types.js'\n\n/**\n * Return component defaults by type\n */\nexport function getPageDefaults<PageType extends Page>(\n page?: Pick<PageType, 'controller'>\n) {\n const nameOrPath = page?.controller ?? ControllerType.Page\n const controller = controllerNameFromPath(nameOrPath)\n\n const defaults = PageTypes.find(\n (pageType) => pageType.controller === controller\n )\n\n if (!defaults) {\n throw new Error(`Defaults not found for page type '${nameOrPath}'`)\n }\n\n return structuredClone(defaults) as PageType\n}\n\n/**\n * Check page has components\n */\nexport function hasComponents(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return hasNext(page) && Array.isArray(page.components)\n}\n\n/**\n * Check if the page has components (the page can be any page type e.g. SummaryPage)\n */\nexport function hasComponentsEvenIfNoNext(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return (\n page !== undefined && 'components' in page && Array.isArray(page.components)\n )\n}\n\n/**\n * Check page has form components\n */\nexport function hasFormComponents(\n page?: Partial<Page>\n): page is PageQuestion | PageFileUpload {\n const controller = controllerNameFromPath(page?.controller)\n return hasComponents(page) && controller !== ControllerType.Start\n}\n\n/**\n * Check page has repeater\n */\nexport function hasRepeater(page?: Partial<Page>): page is PageRepeat {\n return controllerNameFromPath(page?.controller) === ControllerType.Repeat\n}\n\n/**\n * Check for known page controller names\n */\nexport function isControllerName(\n nameOrPath?: ControllerType | string\n): nameOrPath is ControllerType {\n return !!nameOrPath && ControllerNames.map(String).includes(nameOrPath)\n}\n\n/**\n * Check page has next link\n */\nexport function hasNext(\n page?: Partial<Page>\n): page is Extract<Page, { next: Link[] }> {\n if (!page || !('next' in page)) {\n return false\n }\n\n const controller = controllerNameFromPath(page.controller)\n\n return (\n !controller ||\n controller === ControllerType.Start ||\n controller === ControllerType.Page ||\n controller === ControllerType.Terminal ||\n controller === ControllerType.FileUpload ||\n controller === ControllerType.Repeat\n )\n}\n\n/**\n * Check and optionally replace legacy path with controller name\n * @param {string} [nameOrPath] - Controller name or legacy controller path\n */\nexport function controllerNameFromPath(nameOrPath?: ControllerType | string) {\n if (isControllerName(nameOrPath)) {\n return nameOrPath\n }\n\n const options = ControllerTypes.find(({ path }) => path === nameOrPath)\n return options?.name\n}\n\nfunction includesFileUploadField(components: ComponentDef[]): boolean {\n return components.some(\n (component) => component.type === ComponentType.FileUploadField\n )\n}\n\nconst SHOW_REPEATER_CONTROLLERS = [ControllerType.Page, ControllerType.Repeat]\n\nexport function showRepeaterSettings(page: Page): boolean {\n if (page.controller && !SHOW_REPEATER_CONTROLLERS.includes(page.controller)) {\n return false\n }\n if (hasComponents(page) && includesFileUploadField(page.components)) {\n return false\n }\n return true\n}\n\n/**\n * High level check for whether file upload component should be omitted\n * @param { Page | undefined } page\n * @returns {boolean}\n */\nexport function omitFileUploadComponent(page: Page | undefined): boolean {\n if (page?.controller === ControllerType.Repeat) {\n return true\n }\n if (!hasComponents(page)) {\n return false\n }\n if (page.components.length > 1) {\n return true\n }\n if (includesFileUploadField(page.components)) {\n return true\n }\n return false\n}\n"],"mappings":"AAQA,SAASA,aAAa;
|
1
|
+
{"version":3,"file":"helpers.js","names":["ComponentType","hasFormField","ControllerNames","ControllerTypes","ControllerType","PageTypes","getPageDefaults","page","nameOrPath","controller","Page","controllerNameFromPath","defaults","find","pageType","Error","structuredClone","hasComponents","hasNext","Array","isArray","components","hasComponentsEvenIfNoNext","undefined","hasFormComponents","Start","hasRepeater","Repeat","isControllerName","map","String","includes","Terminal","FileUpload","options","path","name","includesFileUploadField","some","component","type","FileUploadField","SHOW_REPEATER_CONTROLLERS","showRepeaterSettings","omitFileUploadComponent","length","getPageTitle","title","firstComp"],"sources":["../../../src/pages/helpers.ts"],"sourcesContent":["import { type ComponentDef } from '~/src/components/types.js'\nimport {\n type Link,\n type Page,\n type PageFileUpload,\n type PageQuestion,\n type PageRepeat\n} from '~/src/form/form-definition/types.js'\nimport { ComponentType, hasFormField } from '~/src/index.js'\nimport {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\nimport { ControllerType } from '~/src/pages/enums.js'\nimport { PageTypes } from '~/src/pages/page-types.js'\n\n/**\n * Return component defaults by type\n */\nexport function getPageDefaults<PageType extends Page>(\n page?: Pick<PageType, 'controller'>\n) {\n const nameOrPath = page?.controller ?? ControllerType.Page\n const controller = controllerNameFromPath(nameOrPath)\n\n const defaults = PageTypes.find(\n (pageType) => pageType.controller === controller\n )\n\n if (!defaults) {\n throw new Error(`Defaults not found for page type '${nameOrPath}'`)\n }\n\n return structuredClone(defaults) as PageType\n}\n\n/**\n * Check page has components\n */\nexport function hasComponents(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return hasNext(page) && Array.isArray(page.components)\n}\n\n/**\n * Check if the page has components (the page can be any page type e.g. SummaryPage)\n */\nexport function hasComponentsEvenIfNoNext(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return (\n page !== undefined && 'components' in page && Array.isArray(page.components)\n )\n}\n\n/**\n * Check page has form components\n */\nexport function hasFormComponents(\n page?: Partial<Page>\n): page is PageQuestion | PageFileUpload {\n const controller = controllerNameFromPath(page?.controller)\n return hasComponents(page) && controller !== ControllerType.Start\n}\n\n/**\n * Check page has repeater\n */\nexport function hasRepeater(page?: Partial<Page>): page is PageRepeat {\n return controllerNameFromPath(page?.controller) === ControllerType.Repeat\n}\n\n/**\n * Check for known page controller names\n */\nexport function isControllerName(\n nameOrPath?: ControllerType | string\n): nameOrPath is ControllerType {\n return !!nameOrPath && ControllerNames.map(String).includes(nameOrPath)\n}\n\n/**\n * Check page has next link\n */\nexport function hasNext(\n page?: Partial<Page>\n): page is Extract<Page, { next: Link[] }> {\n if (!page || !('next' in page)) {\n return false\n }\n\n const controller = controllerNameFromPath(page.controller)\n\n return (\n !controller ||\n controller === ControllerType.Start ||\n controller === ControllerType.Page ||\n controller === ControllerType.Terminal ||\n controller === ControllerType.FileUpload ||\n controller === ControllerType.Repeat\n )\n}\n\n/**\n * Check and optionally replace legacy path with controller name\n * @param {string} [nameOrPath] - Controller name or legacy controller path\n */\nexport function controllerNameFromPath(nameOrPath?: ControllerType | string) {\n if (isControllerName(nameOrPath)) {\n return nameOrPath\n }\n\n const options = ControllerTypes.find(({ path }) => path === nameOrPath)\n return options?.name\n}\n\nfunction includesFileUploadField(components: ComponentDef[]): boolean {\n return components.some(\n (component) => component.type === ComponentType.FileUploadField\n )\n}\n\nconst SHOW_REPEATER_CONTROLLERS = [ControllerType.Page, ControllerType.Repeat]\n\nexport function showRepeaterSettings(page: Page): boolean {\n if (page.controller && !SHOW_REPEATER_CONTROLLERS.includes(page.controller)) {\n return false\n }\n if (hasComponents(page) && includesFileUploadField(page.components)) {\n return false\n }\n return true\n}\n\n/**\n * High level check for whether file upload component should be omitted\n * @param { Page | undefined } page\n * @returns {boolean}\n */\nexport function omitFileUploadComponent(page: Page | undefined): boolean {\n if (page?.controller === ControllerType.Repeat) {\n return true\n }\n if (!hasComponents(page)) {\n return false\n }\n if (page.components.length > 1) {\n return true\n }\n if (includesFileUploadField(page.components)) {\n return true\n }\n return false\n}\n\n/**\n * Gets page title, or title of first question (if no page title set)\n * @param {Page} page\n * @returns {string}\n */\nexport function getPageTitle(page: Page) {\n if (page.title !== '') {\n return page.title\n }\n\n if (hasComponentsEvenIfNoNext(page)) {\n const firstComp = page.components.find(hasFormField)\n if (firstComp) {\n return firstComp.title\n }\n }\n return 'Page title unknown'\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export { ControllerNames, ControllerTypes } from "./controller-types.js";
|
2
2
|
export { PageTypes } from "./page-types.js";
|
3
|
-
export { controllerNameFromPath, getPageDefaults, hasComponents, hasComponentsEvenIfNoNext, hasFormComponents, hasNext, hasRepeater, isControllerName, omitFileUploadComponent, showRepeaterSettings } from "./helpers.js";
|
3
|
+
export { controllerNameFromPath, getPageDefaults, getPageTitle, hasComponents, hasComponentsEvenIfNoNext, hasFormComponents, hasNext, hasRepeater, isControllerName, omitFileUploadComponent, showRepeaterSettings } from "./helpers.js";
|
4
4
|
export { ControllerPath, ControllerType } from "./enums.js";
|
5
5
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["ControllerNames","ControllerTypes","PageTypes","controllerNameFromPath","getPageDefaults","hasComponents","hasComponentsEvenIfNoNext","hasFormComponents","hasNext","hasRepeater","isControllerName","omitFileUploadComponent","showRepeaterSettings","ControllerPath","ControllerType"],"sources":["../../../src/pages/index.ts"],"sourcesContent":["export {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\n\nexport { PageTypes } from '~/src/pages/page-types.js'\n\nexport {\n controllerNameFromPath,\n getPageDefaults,\n hasComponents,\n hasComponentsEvenIfNoNext,\n hasFormComponents,\n hasNext,\n hasRepeater,\n isControllerName,\n omitFileUploadComponent,\n showRepeaterSettings\n} from '~/src/pages/helpers.js'\n\nexport { ControllerPath, ControllerType } from '~/src/pages/enums.js'\n"],"mappings":"AAAA,SACEA,eAAe,EACfC,eAAe;AAGjB,SAASC,SAAS;AAElB,SACEC,sBAAsB,EACtBC,eAAe,EACfC,aAAa,EACbC,yBAAyB,EACzBC,iBAAiB,EACjBC,OAAO,EACPC,WAAW,EACXC,gBAAgB,EAChBC,uBAAuB,EACvBC,oBAAoB;AAGtB,SAASC,cAAc,EAAEC,cAAc","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["ControllerNames","ControllerTypes","PageTypes","controllerNameFromPath","getPageDefaults","getPageTitle","hasComponents","hasComponentsEvenIfNoNext","hasFormComponents","hasNext","hasRepeater","isControllerName","omitFileUploadComponent","showRepeaterSettings","ControllerPath","ControllerType"],"sources":["../../../src/pages/index.ts"],"sourcesContent":["export {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\n\nexport { PageTypes } from '~/src/pages/page-types.js'\n\nexport {\n controllerNameFromPath,\n getPageDefaults,\n getPageTitle,\n hasComponents,\n hasComponentsEvenIfNoNext,\n hasFormComponents,\n hasNext,\n hasRepeater,\n isControllerName,\n omitFileUploadComponent,\n showRepeaterSettings\n} from '~/src/pages/helpers.js'\n\nexport { ControllerPath, ControllerType } from '~/src/pages/enums.js'\n"],"mappings":"AAAA,SACEA,eAAe,EACfC,eAAe;AAGjB,SAASC,SAAS;AAElB,SACEC,sBAAsB,EACtBC,eAAe,EACfC,YAAY,EACZC,aAAa,EACbC,yBAAyB,EACzBC,iBAAiB,EACjBC,OAAO,EACPC,WAAW,EACXC,gBAAgB,EAChBC,uBAAuB,EACvBC,oBAAoB;AAGtB,SAASC,cAAc,EAAEC,cAAc","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAkC,MAAM,KAAK,CAAA;AAIpD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAEL,KAAK,eAAe,EAWrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAGL,KAAK,kBAAkB,EAIvB,KAAK,cAAc,EAGnB,KAAK,IAAI,EACT,KAAK,IAAI,EAET,KAAK,MAAM,EAIZ,MAAM,qCAAqC,CAAA;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-definition/index.ts"],"names":[],"mappings":"AACA,OAAO,OAAkC,MAAM,KAAK,CAAA;AAIpD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAEL,KAAK,eAAe,EAWrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAGL,KAAK,kBAAkB,EAIvB,KAAK,cAAc,EAGnB,KAAK,IAAI,EACT,KAAK,IAAI,EAET,KAAK,MAAM,EAIZ,MAAM,qCAAqC,CAAA;AA4N5C,eAAO,MAAM,qBAAqB,uCAoD9B,CAAA;AAoDJ,eAAO,MAAM,wBAAwB,0CAyBU,CAAA;AAE/C,eAAO,MAAM,eAAe,oCAkGZ,CAAA;AAEhB,eAAO,MAAM,iBAAiB,oCAciB,CAAA;AAE/C,eAAO,MAAM,wBAAwB,oCASsB,CAAA;AAE3D,eAAO,MAAM,yBAAyB,oCAMpC,CAAA;AAEF,eAAO,MAAM,sBAAsB,oCAUjC,CAAA;AAoDF,eAAO,MAAM,gBAAgB,8BASzB,CAAA;AAyCJ,eAAO,MAAM,0BAA0B,sEAWmB,CAAA;AAE1D;;;GAGG;AACH,eAAO,MAAM,UAAU,4BAmDnB,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,4BAuCiB,CAAA;AAE1C,eAAO,MAAM,mBAAmB,4BAgBkB,CAAA;AAwDlD,eAAO,MAAM,UAAU,4BA8CnB,CAAA;AAEJ;;GAEG;AACH,eAAO,MAAM,YAAY,4BAIiB,CAAA;AAsD1C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,sCA4E7B,CAAA;AAEJ,eAAO,MAAM,sBAAsB,sCA2CY,CAAA;AAI/C,eAAO,MAAM,MAAM,sCAAuB,CAAA"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import type Joi from 'joi';
|
2
|
+
import { type ValidationError } from 'joi';
|
3
|
+
import { FormDefinitionError, type FormDefinitionErrorCause } from '../../form/form-manager/types.js';
|
4
|
+
/**
|
5
|
+
* Checks and applies an `errorType` and also an `errorCode` for known errors
|
6
|
+
*/
|
7
|
+
export declare const checkErrors: (formErrors: FormDefinitionError | FormDefinitionError[]) => (errors: Joi.ErrorReport[]) => Joi.ErrorReport[];
|
8
|
+
/**
|
9
|
+
* Get the custom errors from a form definition joi validation error
|
10
|
+
*/
|
11
|
+
export declare function getErrors(validationError: ValidationError | undefined): FormDefinitionErrorCause[];
|
12
|
+
//# sourceMappingURL=errors.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/form/form-manager/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAA;AAC1B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,KAAK,CAAA;AAE1C,OAAO,EACL,mBAAmB,EAGnB,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAA;AAEzC;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,YAAY,mBAAmB,GAAG,mBAAmB,EAAE,MAItC,QAAQ,GAAG,CAAC,WAAW,EAAE,sBAuC3C,CAAA;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,eAAe,EAAE,eAAe,GAAG,SAAS,GAC3C,wBAAwB,EAAE,CA0C5B"}
|
@@ -16,8 +16,8 @@ export declare enum FormDefinitionErrorType {
|
|
16
16
|
Type = "type"
|
17
17
|
}
|
18
18
|
export declare enum FormDefinitionError {
|
19
|
-
UniquePagePath = "unique_page_path",
|
20
19
|
UniquePageId = "unique_page_id",
|
20
|
+
UniquePagePath = "unique_page_path",
|
21
21
|
UniquePageComponentId = "unique_page_component_id",
|
22
22
|
UniquePageComponentName = "unique_page_component_name",
|
23
23
|
UniqueSectionName = "unique_section_name",
|
@@ -38,10 +38,7 @@ export declare enum FormDefinitionError {
|
|
38
38
|
RefPageComponentList = "ref_page_component_list",
|
39
39
|
Other = "other"
|
40
40
|
}
|
41
|
-
export declare const N: unique symbol;
|
42
|
-
export type ErrorMatchPath = (string | typeof N)[];
|
43
41
|
export interface ErrorMatchValue {
|
44
|
-
path: ErrorMatchPath;
|
45
42
|
key: string;
|
46
43
|
type: FormDefinitionErrorType;
|
47
44
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-manager/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAA;AAElC,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEjE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAGD,oBAAY,uBAAuB;IACjC,MAAM,WAAW,CAAE,oBAAoB;IACvC,GAAG,QAAQ,CAAE,wBAAwB;IACrC,IAAI,SAAS;CACd;AAGD,oBAAY,mBAAmB;IAC7B,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-manager/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAA;AAElC,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEjE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAGD,oBAAY,uBAAuB;IACjC,MAAM,WAAW,CAAE,oBAAoB;IACvC,GAAG,QAAQ,CAAE,wBAAwB;IACrC,IAAI,SAAS;CACd;AAGD,oBAAY,mBAAmB;IAC7B,YAAY,mBAAmB;IAC/B,cAAc,qBAAqB;IACnC,qBAAqB,6BAA6B;IAClD,uBAAuB,+BAA+B;IACtD,iBAAiB,wBAAwB;IACzC,kBAAkB,yBAAyB;IAC3C,YAAY,mBAAmB;IAC/B,eAAe,sBAAsB;IACrC,cAAc,qBAAqB;IACnC,iBAAiB,wBAAwB;IACzC,0BAA0B,iCAAiC;IAC3D,gBAAgB,wBAAwB;IACxC,kBAAkB,0BAA0B;IAC5C,mBAAmB,2BAA2B;IAC9C,gBAAgB,uBAAuB;IACvC,uBAAuB,+BAA+B;IACtD,kBAAkB,0BAA0B;IAC5C,kBAAkB,0BAA0B;IAC5C,uBAAuB,+BAA+B;IACtD,oBAAoB,4BAA4B;IAChD,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,uBAAuB,CAAA;CAC9B;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAA;AAG/E,eAAO,MAAM,oBAAoB,EAAE,oBAqFlC,CAAA;AAED,MAAM,MAAM,kCAAkC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;AAEpE,MAAM,WAAW,oCAAoC;IACnD,IAAI,EAAE,kCAAkC,CAAA;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,kCAAkC,CAAA;CACzC;AAED,MAAM,MAAM,wBAAwB,GAChC;IACE,EAAE,EAAE,mBAAmB,CAAA;IACvB,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAA;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,oCAAoC,CAAA;CAC7C,GACD;IACE,EAAE,EAAE,mBAAmB,CAAA;IACvB,IAAI,EAAE,uBAAuB,CAAC,GAAG,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,iCAAiC,CAAA;CAC1C,GACD;IACE,EAAE,EAAE,mBAAmB,CAAA;IACvB,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAA;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;CAC5B,CAAA"}
|
@@ -47,4 +47,10 @@ export declare function showRepeaterSettings(page: Page): boolean;
|
|
47
47
|
* @returns {boolean}
|
48
48
|
*/
|
49
49
|
export declare function omitFileUploadComponent(page: Page | undefined): boolean;
|
50
|
+
/**
|
51
|
+
* Gets page title, or title of first question (if no page title set)
|
52
|
+
* @param {Page} page
|
53
|
+
* @returns {string}
|
54
|
+
*/
|
55
|
+
export declare function getPageTitle(page: Page): string;
|
50
56
|
//# sourceMappingURL=helpers.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,qCAAqC,CAAA;AAM5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,IAAI,EACnD,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAaC,QAAQ,CAC7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAEvD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAIvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,YAAY,GAAG,cAAc,CAGvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,UAAU,CAEpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,GACnC,UAAU,IAAI,cAAc,CAE9B;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAezC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,8BAO1E;AAUD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAcvE"}
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,qCAAqC,CAAA;AAM5C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,IAAI,EACnD,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAaC,QAAQ,CAC7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAEvD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAIvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,YAAY,GAAG,cAAc,CAGvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,UAAU,CAEpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,GACnC,UAAU,IAAI,cAAc,CAE9B;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAezC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,8BAO1E;AAUD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAcvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,UAYtC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export { ControllerNames, ControllerTypes } from '../pages/controller-types.js';
|
2
2
|
export { PageTypes } from '../pages/page-types.js';
|
3
|
-
export { controllerNameFromPath, getPageDefaults, hasComponents, hasComponentsEvenIfNoNext, hasFormComponents, hasNext, hasRepeater, isControllerName, omitFileUploadComponent, showRepeaterSettings } from '../pages/helpers.js';
|
3
|
+
export { controllerNameFromPath, getPageDefaults, getPageTitle, hasComponents, hasComponentsEvenIfNoNext, hasFormComponents, hasNext, hasRepeater, isControllerName, omitFileUploadComponent, showRepeaterSettings } from '../pages/helpers.js';
|
4
4
|
export { ControllerPath, ControllerType } from '../pages/enums.js';
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EAChB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EAChB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
package/package.json
CHANGED
@@ -41,6 +41,8 @@ import {
|
|
41
41
|
type RepeatSchema,
|
42
42
|
type Section
|
43
43
|
} from '~/src/form/form-definition/types.js'
|
44
|
+
import { checkErrors } from '~/src/form/form-manager/errors.js'
|
45
|
+
import { FormDefinitionError } from '~/src/form/form-manager/types.js'
|
44
46
|
import { ControllerType } from '~/src/pages/enums.js'
|
45
47
|
import { hasComponents } from '~/src/pages/helpers.js'
|
46
48
|
|
@@ -148,7 +150,8 @@ const conditionListItemRefDataSchemaV2 =
|
|
148
150
|
is: Joi.exist(),
|
149
151
|
then: Joi.valid(listIdRef)
|
150
152
|
})
|
151
|
-
.description('The id of the list')
|
153
|
+
.description('The id of the list')
|
154
|
+
.error(checkErrors(FormDefinitionError.RefConditionListId)),
|
152
155
|
itemId: Joi.string()
|
153
156
|
.trim()
|
154
157
|
.when('/lists', {
|
@@ -157,6 +160,7 @@ const conditionListItemRefDataSchemaV2 =
|
|
157
160
|
})
|
158
161
|
.required()
|
159
162
|
.description('The id of the list item')
|
163
|
+
.error(checkErrors(FormDefinitionError.RefConditionItemId))
|
160
164
|
})
|
161
165
|
|
162
166
|
const relativeDateValueDataSchemaV2 = Joi.object<RelativeDateValueDataV2>()
|
@@ -230,6 +234,7 @@ const conditionRefDataSchemaV2 = Joi.object<ConditionRefDataV2>()
|
|
230
234
|
then: Joi.valid(conditionIdRef)
|
231
235
|
})
|
232
236
|
.description('Name of the referenced condition')
|
237
|
+
.error(checkErrors(FormDefinitionError.RefConditionConditionId))
|
233
238
|
})
|
234
239
|
|
235
240
|
const conditionSchema = Joi.object<ConditionData>()
|
@@ -270,7 +275,8 @@ export const conditionDataSchemaV2 = Joi.object<ConditionDataV2>()
|
|
270
275
|
})
|
271
276
|
.description(
|
272
277
|
'Reference to the component id being evaluated in this condition'
|
273
|
-
)
|
278
|
+
)
|
279
|
+
.error(checkErrors(FormDefinitionError.RefConditionComponentId)),
|
274
280
|
operator: Joi.string()
|
275
281
|
.trim()
|
276
282
|
.valid(...Object.values(OperatorName))
|
@@ -497,6 +503,7 @@ export const componentSchemaV2 = componentSchema
|
|
497
503
|
.description(
|
498
504
|
'List id reference to a predefined list of options for select components'
|
499
505
|
)
|
506
|
+
.error(checkErrors(FormDefinitionError.RefPageComponentList))
|
500
507
|
})
|
501
508
|
.description('Component schema for V2 forms')
|
502
509
|
|
@@ -638,8 +645,8 @@ export const pageUploadComponentsSchema = Joi.array<
|
|
638
645
|
fileUploadComponentSchema.required(),
|
639
646
|
contentComponentSchema.optional()
|
640
647
|
)
|
641
|
-
.unique('name')
|
642
648
|
.unique('id')
|
649
|
+
.unique('name')
|
643
650
|
.min(1)
|
644
651
|
.max(2)
|
645
652
|
.description('Components allowed on Page Upload schema')
|
@@ -723,9 +730,15 @@ export const pageSchemaV2 = pageSchema
|
|
723
730
|
],
|
724
731
|
otherwise: Joi.array<ComponentDef>()
|
725
732
|
.items(componentSchemaV2)
|
726
|
-
.unique('name')
|
727
733
|
.unique('id')
|
734
|
+
.unique('name')
|
728
735
|
.description('Components schema for V2 forms')
|
736
|
+
.error(
|
737
|
+
checkErrors([
|
738
|
+
FormDefinitionError.UniquePageComponentId,
|
739
|
+
FormDefinitionError.UniquePageComponentName
|
740
|
+
])
|
741
|
+
)
|
729
742
|
}),
|
730
743
|
condition: Joi.string()
|
731
744
|
.trim()
|
@@ -735,6 +748,7 @@ export const pageSchemaV2 = pageSchema
|
|
735
748
|
})
|
736
749
|
.optional()
|
737
750
|
.description('Optional condition that determines if this page is shown')
|
751
|
+
.error(checkErrors(FormDefinitionError.RefPageCondition))
|
738
752
|
})
|
739
753
|
.description('Page schema for V2 forms')
|
740
754
|
|
@@ -749,8 +763,8 @@ export const pagePayloadSchemaV2 = pageSchemaV2
|
|
749
763
|
],
|
750
764
|
otherwise: Joi.array<ComponentDef>()
|
751
765
|
.items(componentPayloadSchemaV2)
|
752
|
-
.unique('name')
|
753
766
|
.unique('id')
|
767
|
+
.unique('name')
|
754
768
|
.description('Components schema for V2 forms')
|
755
769
|
})
|
756
770
|
})
|
@@ -834,13 +848,27 @@ export const listSchema = Joi.object<List>()
|
|
834
848
|
.unique('id')
|
835
849
|
.unique('text')
|
836
850
|
.unique('value')
|
837
|
-
.description('Array of items with string values')
|
851
|
+
.description('Array of items with string values')
|
852
|
+
.error(
|
853
|
+
checkErrors([
|
854
|
+
FormDefinitionError.UniqueListItemId,
|
855
|
+
FormDefinitionError.UniqueListItemText,
|
856
|
+
FormDefinitionError.UniqueListItemValue
|
857
|
+
])
|
858
|
+
),
|
838
859
|
otherwise: Joi.array()
|
839
860
|
.items(numberListItemSchema)
|
840
861
|
.unique('id')
|
841
862
|
.unique('text')
|
842
863
|
.unique('value')
|
843
864
|
.description('Array of items with numeric values')
|
865
|
+
.error(
|
866
|
+
checkErrors([
|
867
|
+
FormDefinitionError.UniqueListItemId,
|
868
|
+
FormDefinitionError.UniqueListItemText,
|
869
|
+
FormDefinitionError.UniqueListItemValue
|
870
|
+
])
|
871
|
+
)
|
844
872
|
})
|
845
873
|
})
|
846
874
|
|
@@ -945,7 +973,13 @@ export const formDefinitionSchema = Joi.object<FormDefinition>()
|
|
945
973
|
.unique('name')
|
946
974
|
.unique('title')
|
947
975
|
.required()
|
948
|
-
.description('Sections grouping related pages together')
|
976
|
+
.description('Sections grouping related pages together')
|
977
|
+
.error(
|
978
|
+
checkErrors([
|
979
|
+
FormDefinitionError.UniqueSectionName,
|
980
|
+
FormDefinitionError.UniqueSectionTitle
|
981
|
+
])
|
982
|
+
),
|
949
983
|
conditions: Joi.array<ConditionWrapper>()
|
950
984
|
.items(conditionWrapperSchema)
|
951
985
|
.unique('name')
|
@@ -990,20 +1024,39 @@ export const formDefinitionV2Schema = formDefinitionSchema
|
|
990
1024
|
pages: Joi.array<Page>()
|
991
1025
|
.items(pageSchemaV2)
|
992
1026
|
.required()
|
993
|
-
.unique('path')
|
994
1027
|
.unique('id')
|
995
|
-
.
|
1028
|
+
.unique('path')
|
1029
|
+
.description('Pages schema for V2 forms')
|
1030
|
+
.error(
|
1031
|
+
checkErrors([
|
1032
|
+
FormDefinitionError.UniquePageId,
|
1033
|
+
FormDefinitionError.UniquePagePath
|
1034
|
+
])
|
1035
|
+
),
|
996
1036
|
lists: Joi.array<List>()
|
997
1037
|
.items(listSchemaV2)
|
1038
|
+
.unique('id')
|
998
1039
|
.unique('name')
|
999
1040
|
.unique('title')
|
1000
|
-
.
|
1001
|
-
.
|
1041
|
+
.description('Lists schema for V2 forms')
|
1042
|
+
.error(
|
1043
|
+
checkErrors([
|
1044
|
+
FormDefinitionError.UniqueListId,
|
1045
|
+
FormDefinitionError.UniqueListName,
|
1046
|
+
FormDefinitionError.UniqueListTitle
|
1047
|
+
])
|
1048
|
+
),
|
1002
1049
|
conditions: Joi.array<ConditionWrapperV2>()
|
1003
1050
|
.items(conditionWrapperSchemaV2)
|
1004
1051
|
.unique('id')
|
1005
1052
|
.unique('displayName')
|
1006
1053
|
.description('Named conditions used for form logic')
|
1054
|
+
.error(
|
1055
|
+
checkErrors([
|
1056
|
+
FormDefinitionError.UniqueConditionId,
|
1057
|
+
FormDefinitionError.UniqueConditionDisplayName
|
1058
|
+
])
|
1059
|
+
)
|
1007
1060
|
})
|
1008
1061
|
.description('Form definition schema for V2')
|
1009
1062
|
|