@finsys/core 1.1.0 → 1.2.0
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/index.cjs +9101 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +375 -0
- package/dist/index.d.ts +374 -18
- package/dist/index.js +9038 -31
- package/dist/index.js.map +1 -0
- package/package.json +12 -10
- package/dist/catalogs.d.ts +0 -13
- package/dist/catalogs.js +0 -35
- package/dist/catalogs.test.d.ts +0 -1
- package/dist/catalogs.test.js +0 -207
- package/dist/form-field-category.d.ts +0 -12
- package/dist/form-field-category.js +0 -21
- package/dist/form-field-validator.d.ts +0 -18
- package/dist/form-field-validator.js +0 -41
- package/dist/form-field.d.ts +0 -81
- package/dist/form-field.js +0 -197
- package/dist/form-field.test.d.ts +0 -1
- package/dist/form-field.test.js +0 -482
- package/dist/form-spec.d.ts +0 -39
- package/dist/form-spec.js +0 -278
- package/dist/form-spec.test.d.ts +0 -1
- package/dist/form-spec.test.js +0 -322
- package/dist/rhf-generator.d.ts +0 -30
- package/dist/rhf-generator.js +0 -267
- package/dist/rhf-generator.test.d.ts +0 -1
- package/dist/rhf-generator.test.js +0 -583
- package/dist/survey-generator.d.ts +0 -153
- package/dist/survey-generator.js +0 -194
- package/dist/survey-generator.test.d.ts +0 -1
- package/dist/survey-generator.test.js +0 -332
- package/dist/utils.d.ts +0 -13
- package/dist/utils.js +0 -56
- package/dist/utils.test.d.ts +0 -1
- package/dist/utils.test.js +0 -131
- package/dist/validator.d.ts +0 -14
- package/dist/validator.js +0 -49
- package/dist/validator.test.d.ts +0 -1
- package/dist/validator.test.js +0 -142
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/form-field.test.js
DELETED
|
@@ -1,482 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import FormField, { BasicFormField, FileFormField, FieldType, } from "./form-field.js";
|
|
3
|
-
const basicField = {
|
|
4
|
-
name: "email",
|
|
5
|
-
displayName: "Test",
|
|
6
|
-
type: "text",
|
|
7
|
-
inputType: "text",
|
|
8
|
-
category: "1",
|
|
9
|
-
};
|
|
10
|
-
const fileField = {
|
|
11
|
-
name: "test",
|
|
12
|
-
displayName: "Test",
|
|
13
|
-
type: "file",
|
|
14
|
-
inputType: "text",
|
|
15
|
-
category: "1",
|
|
16
|
-
ihs_column_names: ["idNumber", "companyName"],
|
|
17
|
-
};
|
|
18
|
-
describe("FormField", () => {
|
|
19
|
-
it("creates basic field from object", () => {
|
|
20
|
-
const formField = FormField.fromObject(basicField);
|
|
21
|
-
const names = formField.getFieldNames();
|
|
22
|
-
expect(names[0]).toBe("email");
|
|
23
|
-
});
|
|
24
|
-
it("creates file field from object", () => {
|
|
25
|
-
const formField = FormField.fromObject(fileField);
|
|
26
|
-
const names = formField.getFieldNames();
|
|
27
|
-
expect(names[0]).toBe("idNumber");
|
|
28
|
-
expect(names[1]).toBe("companyName");
|
|
29
|
-
});
|
|
30
|
-
it("gets displayName", () => {
|
|
31
|
-
const formField = FormField.fromObject(basicField);
|
|
32
|
-
expect(formField.displayName).toBe("Test");
|
|
33
|
-
});
|
|
34
|
-
it("gets name", () => {
|
|
35
|
-
const formField = FormField.fromObject(basicField);
|
|
36
|
-
expect(formField.name).toBe("email");
|
|
37
|
-
});
|
|
38
|
-
it("sets displayName", () => {
|
|
39
|
-
const formField = FormField.fromObject({ ...basicField });
|
|
40
|
-
formField.displayName = "New Display Name";
|
|
41
|
-
expect(formField.displayName).toBe("New Display Name");
|
|
42
|
-
});
|
|
43
|
-
it("gets visible with true value", () => {
|
|
44
|
-
const fieldObject = {
|
|
45
|
-
name: "test",
|
|
46
|
-
displayName: "Test",
|
|
47
|
-
type: "text",
|
|
48
|
-
category: "1",
|
|
49
|
-
visible: true,
|
|
50
|
-
};
|
|
51
|
-
const formField = FormField.fromObject(fieldObject);
|
|
52
|
-
expect(formField.visible).toBe(true);
|
|
53
|
-
});
|
|
54
|
-
it("gets visible with undefined value defaults to true", () => {
|
|
55
|
-
const fieldObject = {
|
|
56
|
-
name: "test",
|
|
57
|
-
displayName: "Test",
|
|
58
|
-
type: "text",
|
|
59
|
-
category: "1",
|
|
60
|
-
};
|
|
61
|
-
const formField = FormField.fromObject(fieldObject);
|
|
62
|
-
expect(formField.visible).toBe(true);
|
|
63
|
-
});
|
|
64
|
-
it("gets visibleIf", () => {
|
|
65
|
-
const fieldObject = {
|
|
66
|
-
name: "test",
|
|
67
|
-
displayName: "Test",
|
|
68
|
-
type: "text",
|
|
69
|
-
category: "1",
|
|
70
|
-
visibleIf: '{test} == "test"',
|
|
71
|
-
};
|
|
72
|
-
const formField = FormField.fromObject(fieldObject);
|
|
73
|
-
expect(formField.visibleIf).toBe('{test} == "test"');
|
|
74
|
-
});
|
|
75
|
-
it("gets isRequired", () => {
|
|
76
|
-
const fieldObject = {
|
|
77
|
-
name: "test",
|
|
78
|
-
displayName: "Test",
|
|
79
|
-
type: "text",
|
|
80
|
-
category: "1",
|
|
81
|
-
isRequired: true,
|
|
82
|
-
};
|
|
83
|
-
const formField = FormField.fromObject(fieldObject);
|
|
84
|
-
expect(formField.isRequired).toBe(true);
|
|
85
|
-
});
|
|
86
|
-
it("gets type", () => {
|
|
87
|
-
const formField = FormField.fromObject(basicField);
|
|
88
|
-
expect(formField.type).toBe("text");
|
|
89
|
-
});
|
|
90
|
-
it("gets type for various field types", () => {
|
|
91
|
-
const types = ["text", "file", "dropdown"];
|
|
92
|
-
for (const type of types) {
|
|
93
|
-
const fieldObject = {
|
|
94
|
-
name: "test",
|
|
95
|
-
displayName: "Test Field",
|
|
96
|
-
type: type,
|
|
97
|
-
category: "1",
|
|
98
|
-
...(type === "dropdown"
|
|
99
|
-
? { choices: [{ text: "Option", value: "1" }] }
|
|
100
|
-
: {}),
|
|
101
|
-
};
|
|
102
|
-
const formField = FormField.fromObject(fieldObject);
|
|
103
|
-
expect(formField.type).toBe(type);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
it("gets inputType with defined inputType", () => {
|
|
107
|
-
const fieldObject = {
|
|
108
|
-
name: "test",
|
|
109
|
-
displayName: "Test Field",
|
|
110
|
-
type: "text",
|
|
111
|
-
inputType: "email",
|
|
112
|
-
category: "1",
|
|
113
|
-
};
|
|
114
|
-
const formField = FormField.fromObject(fieldObject);
|
|
115
|
-
expect(formField.inputType).toBe("email");
|
|
116
|
-
});
|
|
117
|
-
it("gets inputType with undefined inputType returns empty string", () => {
|
|
118
|
-
const fieldObject = {
|
|
119
|
-
name: "test",
|
|
120
|
-
displayName: "Test Field",
|
|
121
|
-
type: "text",
|
|
122
|
-
category: "1",
|
|
123
|
-
};
|
|
124
|
-
const formField = FormField.fromObject(fieldObject);
|
|
125
|
-
expect(formField.inputType).toBe("");
|
|
126
|
-
});
|
|
127
|
-
it("gets and sets categoryId", () => {
|
|
128
|
-
const fieldObject = {
|
|
129
|
-
name: "test",
|
|
130
|
-
displayName: "Test Field",
|
|
131
|
-
type: "text",
|
|
132
|
-
category: "5",
|
|
133
|
-
};
|
|
134
|
-
const formField = FormField.fromObject(fieldObject);
|
|
135
|
-
expect(formField.categoryId).toBe("5");
|
|
136
|
-
formField.categoryId = "3";
|
|
137
|
-
expect(formField.categoryId).toBe("3");
|
|
138
|
-
});
|
|
139
|
-
it("gets and sets choices", () => {
|
|
140
|
-
const fieldObject = {
|
|
141
|
-
name: "test",
|
|
142
|
-
displayName: "Test",
|
|
143
|
-
type: "dropdown",
|
|
144
|
-
category: "1",
|
|
145
|
-
choices: [
|
|
146
|
-
{ text: "Option 1", value: "1" },
|
|
147
|
-
{ text: "Option 2", value: "2" },
|
|
148
|
-
],
|
|
149
|
-
};
|
|
150
|
-
const formField = FormField.fromObject(fieldObject);
|
|
151
|
-
expect(formField.choices).toEqual([
|
|
152
|
-
{ text: "Option 1", value: "1" },
|
|
153
|
-
{ text: "Option 2", value: "2" },
|
|
154
|
-
]);
|
|
155
|
-
formField.choices = [{ text: "New", value: "n" }];
|
|
156
|
-
expect(formField.choices).toEqual([{ text: "New", value: "n" }]);
|
|
157
|
-
});
|
|
158
|
-
it("gets choices with undefined choices returns empty array", () => {
|
|
159
|
-
const fieldObject = {
|
|
160
|
-
name: "test",
|
|
161
|
-
displayName: "Test",
|
|
162
|
-
type: "text",
|
|
163
|
-
category: "1",
|
|
164
|
-
};
|
|
165
|
-
const formField = FormField.fromObject(fieldObject);
|
|
166
|
-
expect(formField.choices).toEqual([]);
|
|
167
|
-
});
|
|
168
|
-
it("gets startWithNewLine default true", () => {
|
|
169
|
-
const formField = FormField.fromObject({
|
|
170
|
-
name: "test",
|
|
171
|
-
displayName: "Test",
|
|
172
|
-
type: "text",
|
|
173
|
-
category: "1",
|
|
174
|
-
});
|
|
175
|
-
expect(formField.startWithNewLine).toBe(true);
|
|
176
|
-
});
|
|
177
|
-
it("gets startWithNewLine false", () => {
|
|
178
|
-
const formField = FormField.fromObject({
|
|
179
|
-
name: "test",
|
|
180
|
-
displayName: "Test",
|
|
181
|
-
type: "text",
|
|
182
|
-
category: "1",
|
|
183
|
-
startWithNewLine: false,
|
|
184
|
-
});
|
|
185
|
-
expect(formField.startWithNewLine).toBe(false);
|
|
186
|
-
});
|
|
187
|
-
it("gets requiredForEvaluation default true", () => {
|
|
188
|
-
const formField = FormField.fromObject({
|
|
189
|
-
name: "test",
|
|
190
|
-
displayName: "Test",
|
|
191
|
-
type: "text",
|
|
192
|
-
category: "1",
|
|
193
|
-
});
|
|
194
|
-
expect(formField.requiredForEvaluation).toBe(true);
|
|
195
|
-
});
|
|
196
|
-
it("gets requiredForEvaluation false", () => {
|
|
197
|
-
const formField = FormField.fromObject({
|
|
198
|
-
name: "test",
|
|
199
|
-
displayName: "Test",
|
|
200
|
-
type: "boolean",
|
|
201
|
-
category: "7",
|
|
202
|
-
requiredForEvaluation: false,
|
|
203
|
-
});
|
|
204
|
-
expect(formField.requiredForEvaluation).toBe(false);
|
|
205
|
-
});
|
|
206
|
-
it("parses maxLength, min, max from strings", () => {
|
|
207
|
-
const field = FormField.fromObject({
|
|
208
|
-
name: "test",
|
|
209
|
-
displayName: "Test",
|
|
210
|
-
type: "text",
|
|
211
|
-
category: "1",
|
|
212
|
-
maxLength: "100",
|
|
213
|
-
min: "10.5",
|
|
214
|
-
max: "50.5",
|
|
215
|
-
});
|
|
216
|
-
expect(field.maxLength).toBe(100);
|
|
217
|
-
expect(field.min).toBe(10.5);
|
|
218
|
-
expect(field.max).toBe(50.5);
|
|
219
|
-
});
|
|
220
|
-
it("gets maxLength as number", () => {
|
|
221
|
-
const field = FormField.fromObject({
|
|
222
|
-
name: "test",
|
|
223
|
-
displayName: "Test",
|
|
224
|
-
type: "text",
|
|
225
|
-
category: "1",
|
|
226
|
-
maxLength: 18,
|
|
227
|
-
});
|
|
228
|
-
expect(field.maxLength).toBe(18);
|
|
229
|
-
});
|
|
230
|
-
it("gets undefined for missing optional properties", () => {
|
|
231
|
-
const field = FormField.fromObject({
|
|
232
|
-
name: "test",
|
|
233
|
-
displayName: "Test",
|
|
234
|
-
type: "text",
|
|
235
|
-
category: "1",
|
|
236
|
-
});
|
|
237
|
-
expect(field.placeholder).toBeUndefined();
|
|
238
|
-
expect(field.validators).toBeUndefined();
|
|
239
|
-
expect(field.maxLength).toBeUndefined();
|
|
240
|
-
expect(field.min).toBeUndefined();
|
|
241
|
-
expect(field.max).toBeUndefined();
|
|
242
|
-
});
|
|
243
|
-
it("gets placeholder and validators", () => {
|
|
244
|
-
const field = FormField.fromObject({
|
|
245
|
-
name: "test",
|
|
246
|
-
displayName: "Test",
|
|
247
|
-
type: "text",
|
|
248
|
-
category: "1",
|
|
249
|
-
placeholder: "Enter something",
|
|
250
|
-
validators: [{ type: "numeric", text: "Too high", maxValue: 50 }],
|
|
251
|
-
});
|
|
252
|
-
expect(field.placeholder).toBe("Enter something");
|
|
253
|
-
expect(field.validators).toEqual([
|
|
254
|
-
{ type: "numeric", text: "Too high", maxValue: 50 },
|
|
255
|
-
]);
|
|
256
|
-
});
|
|
257
|
-
it("gets and sets defaultValue", () => {
|
|
258
|
-
const field = FormField.fromObject({
|
|
259
|
-
name: "test",
|
|
260
|
-
displayName: "Test",
|
|
261
|
-
type: "text",
|
|
262
|
-
category: "1",
|
|
263
|
-
defaultValue: "initial-value",
|
|
264
|
-
});
|
|
265
|
-
expect(field.defaultValue).toBe("initial-value");
|
|
266
|
-
field.defaultValue = "new-value";
|
|
267
|
-
expect(field.defaultValue).toBe("new-value");
|
|
268
|
-
expect(field.toJSON().defaultValue).toBe("new-value");
|
|
269
|
-
});
|
|
270
|
-
it("handles numeric defaultValue", () => {
|
|
271
|
-
const field = FormField.fromObject({
|
|
272
|
-
name: "test",
|
|
273
|
-
displayName: "Test",
|
|
274
|
-
type: "text",
|
|
275
|
-
category: "1",
|
|
276
|
-
defaultValue: 12345,
|
|
277
|
-
});
|
|
278
|
-
expect(field.defaultValue).toBe(12345);
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
describe("FormField toJSON", () => {
|
|
282
|
-
it("serializes basic field", () => {
|
|
283
|
-
const formField = FormField.fromObject({
|
|
284
|
-
name: "test",
|
|
285
|
-
displayName: "Test",
|
|
286
|
-
type: "text",
|
|
287
|
-
category: "1",
|
|
288
|
-
inputType: "text",
|
|
289
|
-
});
|
|
290
|
-
expect(formField).toBeInstanceOf(BasicFormField);
|
|
291
|
-
expect(formField.toJSON()).toEqual({
|
|
292
|
-
name: "test",
|
|
293
|
-
displayName: "Test",
|
|
294
|
-
type: "text",
|
|
295
|
-
category: "1",
|
|
296
|
-
inputType: "text",
|
|
297
|
-
});
|
|
298
|
-
});
|
|
299
|
-
it("serializes file field", () => {
|
|
300
|
-
const formField = FormField.fromObject({
|
|
301
|
-
name: "test",
|
|
302
|
-
displayName: "Test",
|
|
303
|
-
type: "file",
|
|
304
|
-
category: "1",
|
|
305
|
-
inputType: "text",
|
|
306
|
-
ihs_column_names: ["col1", "col2"],
|
|
307
|
-
});
|
|
308
|
-
expect(formField).toBeInstanceOf(FileFormField);
|
|
309
|
-
expect(formField.toJSON()).toEqual({
|
|
310
|
-
name: "test",
|
|
311
|
-
displayName: "Test",
|
|
312
|
-
type: "file",
|
|
313
|
-
category: "1",
|
|
314
|
-
inputType: "text",
|
|
315
|
-
ihs_column_names: ["col1", "col2"],
|
|
316
|
-
});
|
|
317
|
-
});
|
|
318
|
-
});
|
|
319
|
-
describe("FormField validation", () => {
|
|
320
|
-
it("throws when name is missing", () => {
|
|
321
|
-
expect(() => FormField.fromObject({
|
|
322
|
-
displayName: "Test",
|
|
323
|
-
type: "text",
|
|
324
|
-
category: "1",
|
|
325
|
-
})).toThrow(/name is required/);
|
|
326
|
-
});
|
|
327
|
-
it("throws when displayName is missing", () => {
|
|
328
|
-
expect(() => FormField.fromObject({
|
|
329
|
-
name: "test",
|
|
330
|
-
type: "text",
|
|
331
|
-
category: "1",
|
|
332
|
-
})).toThrow(/missing displayName or category/);
|
|
333
|
-
});
|
|
334
|
-
it("throws when category is missing", () => {
|
|
335
|
-
expect(() => FormField.fromObject({
|
|
336
|
-
name: "test",
|
|
337
|
-
displayName: "Test",
|
|
338
|
-
type: "text",
|
|
339
|
-
})).toThrow(/missing displayName or category/);
|
|
340
|
-
});
|
|
341
|
-
it("throws when both displayName and category are missing", () => {
|
|
342
|
-
expect(() => FormField.fromObject({
|
|
343
|
-
name: "test",
|
|
344
|
-
type: "text",
|
|
345
|
-
})).toThrow(/missing displayName or category/);
|
|
346
|
-
});
|
|
347
|
-
it("throws when displayName is empty string", () => {
|
|
348
|
-
expect(() => FormField.fromObject({
|
|
349
|
-
name: "test",
|
|
350
|
-
displayName: "",
|
|
351
|
-
type: "text",
|
|
352
|
-
category: "1",
|
|
353
|
-
})).toThrow(/missing displayName or category/);
|
|
354
|
-
});
|
|
355
|
-
it("throws when displayName and category are null", () => {
|
|
356
|
-
expect(() => FormField.fromObject({
|
|
357
|
-
name: "test",
|
|
358
|
-
displayName: null,
|
|
359
|
-
type: "text",
|
|
360
|
-
category: null,
|
|
361
|
-
})).toThrow(/missing displayName or category/);
|
|
362
|
-
});
|
|
363
|
-
it("throws for invalid field type", () => {
|
|
364
|
-
expect(() => FormField.fromObject({
|
|
365
|
-
name: "test",
|
|
366
|
-
displayName: "Test",
|
|
367
|
-
type: "invalid",
|
|
368
|
-
category: "1",
|
|
369
|
-
})).toThrow();
|
|
370
|
-
});
|
|
371
|
-
it("throws for dropdown without choices", () => {
|
|
372
|
-
expect(() => FormField.fromObject({
|
|
373
|
-
name: "test",
|
|
374
|
-
displayName: "Test",
|
|
375
|
-
type: "dropdown",
|
|
376
|
-
category: "1",
|
|
377
|
-
})).toThrow(/type dropdown, but does not have choices/);
|
|
378
|
-
});
|
|
379
|
-
it("allows choices on non-dropdown fields", () => {
|
|
380
|
-
expect(() => FormField.fromObject({
|
|
381
|
-
name: "test",
|
|
382
|
-
displayName: "Test",
|
|
383
|
-
type: "text",
|
|
384
|
-
category: "1",
|
|
385
|
-
choices: [{ text: "testChoice", value: "01" }],
|
|
386
|
-
})).not.toThrow();
|
|
387
|
-
});
|
|
388
|
-
it("allows unknown inputTypes", () => {
|
|
389
|
-
expect(() => FormField.fromObject({
|
|
390
|
-
name: "test",
|
|
391
|
-
displayName: "Test",
|
|
392
|
-
type: "text",
|
|
393
|
-
inputType: "invalid",
|
|
394
|
-
category: "1",
|
|
395
|
-
})).not.toThrow();
|
|
396
|
-
});
|
|
397
|
-
});
|
|
398
|
-
describe("FormField runtime - all field types", () => {
|
|
399
|
-
it("correctly identifies all supported field types", () => {
|
|
400
|
-
const validTypes = [
|
|
401
|
-
{ input: "text", expected: FieldType.TEXT },
|
|
402
|
-
{ input: "file", expected: FieldType.FILE },
|
|
403
|
-
{ input: "dropdown", expected: FieldType.DROPDOWN },
|
|
404
|
-
{ input: "boolean", expected: FieldType.BOOLEAN },
|
|
405
|
-
{ input: "checkbox", expected: FieldType.CHECKBOX },
|
|
406
|
-
{ input: "radiogroup", expected: FieldType.RADIOGROUP },
|
|
407
|
-
{ input: "slider", expected: FieldType.SLIDER },
|
|
408
|
-
{ input: "html", expected: FieldType.HTML },
|
|
409
|
-
{ input: "tagbox", expected: FieldType.TAGBOX },
|
|
410
|
-
];
|
|
411
|
-
for (const { input, expected } of validTypes) {
|
|
412
|
-
const fieldData = {
|
|
413
|
-
name: "test",
|
|
414
|
-
displayName: "Test",
|
|
415
|
-
type: input,
|
|
416
|
-
category: "cat1",
|
|
417
|
-
};
|
|
418
|
-
if (input === "dropdown") {
|
|
419
|
-
fieldData.choices = [{ text: "Yes", value: "yes" }];
|
|
420
|
-
}
|
|
421
|
-
const field = FormField.fromObject(fieldData);
|
|
422
|
-
expect(field.type).toBe(expected);
|
|
423
|
-
}
|
|
424
|
-
});
|
|
425
|
-
it("throws error for invalid or unknown field types", () => {
|
|
426
|
-
const invalidInputs = ["invalid", "", "something_else", null, undefined];
|
|
427
|
-
for (const input of invalidInputs) {
|
|
428
|
-
expect(() => {
|
|
429
|
-
FormField.fromObject({
|
|
430
|
-
name: "test",
|
|
431
|
-
displayName: "Test",
|
|
432
|
-
type: input,
|
|
433
|
-
category: "cat1",
|
|
434
|
-
});
|
|
435
|
-
}).toThrow();
|
|
436
|
-
}
|
|
437
|
-
});
|
|
438
|
-
});
|
|
439
|
-
describe("FileFormField", () => {
|
|
440
|
-
it("returns empty when requiredForEvaluation is false", () => {
|
|
441
|
-
const field = FormField.fromObject({
|
|
442
|
-
name: "file_field",
|
|
443
|
-
displayName: "File Field",
|
|
444
|
-
type: "file",
|
|
445
|
-
category: "cat1",
|
|
446
|
-
requiredForEvaluation: false,
|
|
447
|
-
ihs_column_names: ["col1", "col2"],
|
|
448
|
-
});
|
|
449
|
-
expect(field.getFieldNames()).toEqual([]);
|
|
450
|
-
});
|
|
451
|
-
it("returns ihs_column_names when requiredForEvaluation is true", () => {
|
|
452
|
-
const field = FormField.fromObject({
|
|
453
|
-
name: "file_field",
|
|
454
|
-
displayName: "File Field",
|
|
455
|
-
type: "file",
|
|
456
|
-
category: "cat1",
|
|
457
|
-
ihs_column_names: ["col1", "col2"],
|
|
458
|
-
});
|
|
459
|
-
expect(field.getFieldNames()).toEqual(["col1", "col2"]);
|
|
460
|
-
});
|
|
461
|
-
});
|
|
462
|
-
describe("BasicFormField", () => {
|
|
463
|
-
it("returns empty when requiredForEvaluation is false", () => {
|
|
464
|
-
const field = FormField.fromObject({
|
|
465
|
-
name: "test",
|
|
466
|
-
displayName: "Test",
|
|
467
|
-
type: "text",
|
|
468
|
-
category: "1",
|
|
469
|
-
requiredForEvaluation: false,
|
|
470
|
-
});
|
|
471
|
-
expect(field.getFieldNames()).toEqual([]);
|
|
472
|
-
});
|
|
473
|
-
it("returns field name when requiredForEvaluation is true", () => {
|
|
474
|
-
const field = FormField.fromObject({
|
|
475
|
-
name: "test",
|
|
476
|
-
displayName: "Test",
|
|
477
|
-
type: "text",
|
|
478
|
-
category: "1",
|
|
479
|
-
});
|
|
480
|
-
expect(field.getFieldNames()).toEqual(["test"]);
|
|
481
|
-
});
|
|
482
|
-
});
|
package/dist/form-spec.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { FormFieldCategory } from "./form-field-category.js";
|
|
2
|
-
import FormField from "./form-field.js";
|
|
3
|
-
import type { PageConfig } from "./survey-generator.js";
|
|
4
|
-
export declare class FormSpec {
|
|
5
|
-
private _categories;
|
|
6
|
-
private _fields;
|
|
7
|
-
private _displayName;
|
|
8
|
-
private _templateIcon?;
|
|
9
|
-
private _schemaVersion;
|
|
10
|
-
private _pages;
|
|
11
|
-
constructor(displayName: string, categories: FormFieldCategory[], fields: FormField[], pages?: PageConfig[], templateIcon?: string, schemaVersion?: string);
|
|
12
|
-
static readonly MIN_PARSER_SCHEMA_VERSION = "v1.0.0";
|
|
13
|
-
static readonly MAX_PARSER_SCHEMA_VERSION = "v2.0.0";
|
|
14
|
-
get fieldNames(): string[];
|
|
15
|
-
get schemaVersion(): string;
|
|
16
|
-
get requiresUpgrade(): boolean;
|
|
17
|
-
upgradeToV2(): void;
|
|
18
|
-
get displayName(): string;
|
|
19
|
-
set displayName(newDisplayName: string);
|
|
20
|
-
get templateIcon(): string | undefined;
|
|
21
|
-
set templateIcon(value: string | undefined);
|
|
22
|
-
get categories(): FormFieldCategory[];
|
|
23
|
-
set categories(categories: FormFieldCategory[]);
|
|
24
|
-
get fields(): FormField[];
|
|
25
|
-
set fields(fields: FormField[]);
|
|
26
|
-
get pages(): PageConfig[];
|
|
27
|
-
set pages(value: PageConfig[]);
|
|
28
|
-
addField(field: FormField): void;
|
|
29
|
-
updateField(field: FormField): void;
|
|
30
|
-
removeField(fieldName: string): void;
|
|
31
|
-
getFieldsByCategory(categoryName: string): FormField[];
|
|
32
|
-
validate(): {
|
|
33
|
-
valid: boolean;
|
|
34
|
-
errors?: any[];
|
|
35
|
-
};
|
|
36
|
-
private cleanObject;
|
|
37
|
-
toJSON(): object;
|
|
38
|
-
static fromJSON(jsonString: string): FormSpec;
|
|
39
|
-
}
|