@apia/validations 3.0.1 → 3.0.6
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/{da.js → da-DqVKtoV2.js} +1 -1
- package/dist/da-DqVKtoV2.js.map +1 -0
- package/dist/{de.js → de-CcX9-Rq3.js} +1 -1
- package/dist/de-CcX9-Rq3.js.map +1 -0
- package/dist/{en.js → en-DCSKN2q5.js} +1 -1
- package/dist/en-DCSKN2q5.js.map +1 -0
- package/dist/{es.js → es-C-AXrgsF.js} +1 -1
- package/dist/es-C-AXrgsF.js.map +1 -0
- package/dist/{fa.js → fa-CpOxXp-C.js} +1 -1
- package/dist/fa-CpOxXp-C.js.map +1 -0
- package/dist/{fr.js → fr-cmPfrK5Y.js} +1 -1
- package/dist/fr-cmPfrK5Y.js.map +1 -0
- package/dist/{gr.js → gr-CmqXMJsZ.js} +1 -1
- package/dist/gr-CmqXMJsZ.js.map +1 -0
- package/dist/{hr.js → hr-DIdEoOl4.js} +1 -1
- package/dist/hr-DIdEoOl4.js.map +1 -0
- package/dist/{hu.js → hu-VYwXwEzb.js} +1 -1
- package/dist/hu-VYwXwEzb.js.map +1 -0
- package/dist/index.d.ts +785 -25
- package/dist/index.js +195 -123
- package/dist/index.js.map +1 -1
- package/dist/{it.js → it-CZNo0Ds3.js} +1 -1
- package/dist/it-CZNo0Ds3.js.map +1 -0
- package/dist/{ja.js → ja-CK5iBGzP.js} +1 -1
- package/dist/ja-CK5iBGzP.js.map +1 -0
- package/dist/{jp.js → jp-CK5iBGzP.js} +1 -1
- package/dist/jp-CK5iBGzP.js.map +1 -0
- package/dist/{nl.js → nl-BSU5Z9PJ.js} +1 -1
- package/dist/nl-BSU5Z9PJ.js.map +1 -0
- package/dist/{pl.js → pl-BSq2_6nm.js} +1 -1
- package/dist/pl-BSq2_6nm.js.map +1 -0
- package/dist/{pt.js → pt-DJTrqO4_.js} +1 -1
- package/dist/pt-DJTrqO4_.js.map +1 -0
- package/dist/{ro.js → ro-CAAZmoW6.js} +1 -1
- package/dist/ro-CAAZmoW6.js.map +1 -0
- package/package.json +6 -6
- package/rollup.validations.mjs +3 -3
- package/dist/collector/Collector.d.ts +0 -34
- package/dist/collector/Collector.d.ts.map +0 -1
- package/dist/collector/CollectorField.d.ts +0 -41
- package/dist/collector/CollectorField.d.ts.map +0 -1
- package/dist/collector/ValidatedCollectorField.d.ts +0 -44
- package/dist/collector/ValidatedCollectorField.d.ts.map +0 -1
- package/dist/collector/fields/Button.d.ts +0 -13
- package/dist/collector/fields/Button.d.ts.map +0 -1
- package/dist/collector/fields/Checkbox.d.ts +0 -13
- package/dist/collector/fields/Checkbox.d.ts.map +0 -1
- package/dist/collector/fields/Input.d.ts +0 -11
- package/dist/collector/fields/Input.d.ts.map +0 -1
- package/dist/collector/fields/Label.d.ts +0 -13
- package/dist/collector/fields/Label.d.ts.map +0 -1
- package/dist/collector/fields/Select.d.ts +0 -26
- package/dist/collector/fields/Select.d.ts.map +0 -1
- package/dist/collector/fields/Textarea.d.ts +0 -11
- package/dist/collector/fields/Textarea.d.ts.map +0 -1
- package/dist/components/Captcha.d.ts +0 -13
- package/dist/components/Captcha.d.ts.map +0 -1
- package/dist/components/Checkbox.d.ts +0 -12
- package/dist/components/Checkbox.d.ts.map +0 -1
- package/dist/components/DeletableInput.d.ts +0 -9
- package/dist/components/DeletableInput.d.ts.map +0 -1
- package/dist/components/FieldWrapper.d.ts +0 -20
- package/dist/components/FieldWrapper.d.ts.map +0 -1
- package/dist/components/FileInput.d.ts +0 -11
- package/dist/components/FileInput.d.ts.map +0 -1
- package/dist/components/Input.d.ts +0 -9
- package/dist/components/Input.d.ts.map +0 -1
- package/dist/components/NumberInput.d.ts +0 -14
- package/dist/components/NumberInput.d.ts.map +0 -1
- package/dist/components/Radio.d.ts +0 -14
- package/dist/components/Radio.d.ts.map +0 -1
- package/dist/components/Select.d.ts +0 -17
- package/dist/components/Select.d.ts.map +0 -1
- package/dist/components/Switchbox.d.ts +0 -11
- package/dist/components/Switchbox.d.ts.map +0 -1
- package/dist/components/Textarea.d.ts +0 -9
- package/dist/components/Textarea.d.ts.map +0 -1
- package/dist/components/ValidationError.d.ts +0 -17
- package/dist/components/ValidationError.d.ts.map +0 -1
- package/dist/components/types.d.ts +0 -11
- package/dist/components/types.d.ts.map +0 -1
- package/dist/da.js.map +0 -1
- package/dist/de.js.map +0 -1
- package/dist/en.js.map +0 -1
- package/dist/es.js.map +0 -1
- package/dist/fa.js.map +0 -1
- package/dist/form/Form.d.ts +0 -89
- package/dist/form/Form.d.ts.map +0 -1
- package/dist/form/FormContext.d.ts +0 -27
- package/dist/form/FormContext.d.ts.map +0 -1
- package/dist/fr.js.map +0 -1
- package/dist/gr.js.map +0 -1
- package/dist/hooks/useField.d.ts +0 -76
- package/dist/hooks/useField.d.ts.map +0 -1
- package/dist/hooks/useFieldStatesClassNames.d.ts +0 -4
- package/dist/hooks/useFieldStatesClassNames.d.ts.map +0 -1
- package/dist/hooks/useFieldValue.d.ts +0 -8
- package/dist/hooks/useFieldValue.d.ts.map +0 -1
- package/dist/hooks/useValidationClass.d.ts +0 -49
- package/dist/hooks/useValidationClass.d.ts.map +0 -1
- package/dist/hr.js.map +0 -1
- package/dist/hu.js.map +0 -1
- package/dist/it.js.map +0 -1
- package/dist/ja.js.map +0 -1
- package/dist/jp.js.map +0 -1
- package/dist/lang/es.d.ts +0 -32
- package/dist/lang/es.d.ts.map +0 -1
- package/dist/nl.js.map +0 -1
- package/dist/pl.js.map +0 -1
- package/dist/pt.js.map +0 -1
- package/dist/ro.js.map +0 -1
- package/dist/types.d.ts +0 -130
- package/dist/types.d.ts.map +0 -1
- package/dist/util.d.ts +0 -36
- package/dist/util.d.ts.map +0 -1
- package/dist/validationStore.d.ts +0 -112
- package/dist/validationStore.d.ts.map +0 -1
package/dist/index.js
CHANGED
|
@@ -27,22 +27,22 @@ function validateByRules({
|
|
|
27
27
|
|
|
28
28
|
function __variableDynamicImportRuntime2__(path) {
|
|
29
29
|
switch (path) {
|
|
30
|
-
case './lang/da.ts': return import('./da.js');
|
|
31
|
-
case './lang/de.ts': return import('./de.js');
|
|
32
|
-
case './lang/en.ts': return import('./en.js');
|
|
33
|
-
case './lang/es.ts': return import('./es.js');
|
|
34
|
-
case './lang/fa.ts': return import('./fa.js');
|
|
35
|
-
case './lang/fr.ts': return import('./fr.js');
|
|
36
|
-
case './lang/gr.ts': return import('./gr.js');
|
|
37
|
-
case './lang/hr.ts': return import('./hr.js');
|
|
38
|
-
case './lang/hu.ts': return import('./hu.js');
|
|
39
|
-
case './lang/it.ts': return import('./it.js');
|
|
40
|
-
case './lang/ja.ts': return import('./ja.js');
|
|
41
|
-
case './lang/jp.ts': return import('./jp.js');
|
|
42
|
-
case './lang/nl.ts': return import('./nl.js');
|
|
43
|
-
case './lang/pl.ts': return import('./pl.js');
|
|
44
|
-
case './lang/pt.ts': return import('./pt.js');
|
|
45
|
-
case './lang/ro.ts': return import('./ro.js');
|
|
30
|
+
case './lang/da.ts': return import('./da-DqVKtoV2.js');
|
|
31
|
+
case './lang/de.ts': return import('./de-CcX9-Rq3.js');
|
|
32
|
+
case './lang/en.ts': return import('./en-DCSKN2q5.js');
|
|
33
|
+
case './lang/es.ts': return import('./es-C-AXrgsF.js');
|
|
34
|
+
case './lang/fa.ts': return import('./fa-CpOxXp-C.js');
|
|
35
|
+
case './lang/fr.ts': return import('./fr-cmPfrK5Y.js');
|
|
36
|
+
case './lang/gr.ts': return import('./gr-CmqXMJsZ.js');
|
|
37
|
+
case './lang/hr.ts': return import('./hr-DIdEoOl4.js');
|
|
38
|
+
case './lang/hu.ts': return import('./hu-VYwXwEzb.js');
|
|
39
|
+
case './lang/it.ts': return import('./it-CZNo0Ds3.js');
|
|
40
|
+
case './lang/ja.ts': return import('./ja-CK5iBGzP.js');
|
|
41
|
+
case './lang/jp.ts': return import('./jp-CK5iBGzP.js');
|
|
42
|
+
case './lang/nl.ts': return import('./nl-BSU5Z9PJ.js');
|
|
43
|
+
case './lang/pl.ts': return import('./pl-BSq2_6nm.js');
|
|
44
|
+
case './lang/pt.ts': return import('./pt-DJTrqO4_.js');
|
|
45
|
+
case './lang/ro.ts': return import('./ro-CAAZmoW6.js');
|
|
46
46
|
default: return new Promise(function(resolve, reject) {
|
|
47
47
|
(typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
|
|
48
48
|
reject.bind(null, new Error("Unknown variable dynamic import: " + path))
|
|
@@ -72,11 +72,14 @@ function hasSucceedFormValidation(result) {
|
|
|
72
72
|
return !("errors" in result);
|
|
73
73
|
}
|
|
74
74
|
async function focusOnField(formName, field) {
|
|
75
|
+
if (field.focus) {
|
|
76
|
+
return await field.focus() || true;
|
|
77
|
+
}
|
|
75
78
|
const formElement = document.getElementById(
|
|
76
79
|
`ValidationForm-${formName}`
|
|
77
80
|
);
|
|
78
81
|
const fieldElement = formElement?.querySelector(
|
|
79
|
-
`[name="${field.name}"], #${field.name}`
|
|
82
|
+
`[name="${CSS.escape(field.name)}"], #${CSS.escape(field.name)}`
|
|
80
83
|
);
|
|
81
84
|
if (fieldElement) {
|
|
82
85
|
return new Promise((resolve) => {
|
|
@@ -273,14 +276,23 @@ const validationsStore = new class {
|
|
|
273
276
|
* Inicializa el estado de un nuevo formulario
|
|
274
277
|
*/
|
|
275
278
|
__publicField$9(this, "registerForm", (formName, props = { avoidFieldsOverride: false }) => {
|
|
279
|
+
props.persistToSessionStorage && this.loadFromSessionStorage(formName);
|
|
276
280
|
if (this.activeForms.includes(formName)) {
|
|
277
|
-
this.updateFormStore(
|
|
278
|
-
|
|
279
|
-
|
|
281
|
+
this.updateFormStore(
|
|
282
|
+
formName,
|
|
283
|
+
{
|
|
284
|
+
avoidFieldsOverride: props.avoidFieldsOverride
|
|
285
|
+
},
|
|
286
|
+
true
|
|
287
|
+
);
|
|
280
288
|
if (props.initialValues)
|
|
281
289
|
Object.entries(props.initialValues).forEach(([fieldId, fieldProps]) => {
|
|
282
290
|
if (fieldProps instanceof Object)
|
|
283
|
-
this.updateField(
|
|
291
|
+
this.updateField(
|
|
292
|
+
formName,
|
|
293
|
+
{ name: fieldId, ...fieldProps },
|
|
294
|
+
{ avoidFieldsOverride: props.avoidFieldsOverride }
|
|
295
|
+
);
|
|
284
296
|
});
|
|
285
297
|
return;
|
|
286
298
|
}
|
|
@@ -291,10 +303,18 @@ const validationsStore = new class {
|
|
|
291
303
|
isTouched: false,
|
|
292
304
|
isValid: false,
|
|
293
305
|
name: formName,
|
|
294
|
-
validationResult: null
|
|
306
|
+
validationResult: null,
|
|
307
|
+
persistToSessionStorage: props.persistToSessionStorage
|
|
295
308
|
});
|
|
296
309
|
Object.entries(props.initialValues ?? {}).forEach(([name, value]) => {
|
|
297
|
-
this.updateField(
|
|
310
|
+
this.updateField(
|
|
311
|
+
formName,
|
|
312
|
+
{ name, value },
|
|
313
|
+
{
|
|
314
|
+
markFormAsTouched: false,
|
|
315
|
+
avoidFieldsOverride: props.avoidFieldsOverride
|
|
316
|
+
}
|
|
317
|
+
);
|
|
298
318
|
});
|
|
299
319
|
});
|
|
300
320
|
/**
|
|
@@ -318,7 +338,7 @@ const validationsStore = new class {
|
|
|
318
338
|
this.updateFormStore(formName, { isValid: false });
|
|
319
339
|
});
|
|
320
340
|
__publicField$9(this, "setFormIsTouched", (formName, isTouched = true) => {
|
|
321
|
-
this.updateFormStore(formName, { isTouched });
|
|
341
|
+
this.updateFormStore(formName, { isTouched }, true);
|
|
322
342
|
});
|
|
323
343
|
/**
|
|
324
344
|
* Elimina un campo del registro de validación de un formulario. De esta
|
|
@@ -355,9 +375,11 @@ const validationsStore = new class {
|
|
|
355
375
|
__publicField$9(this, "updateField", (formName, field, options) => {
|
|
356
376
|
const previousValue = this.getFieldStore(formName, field.name)?.value;
|
|
357
377
|
if (this.getFormStore(formName))
|
|
358
|
-
this.updateFormStore(formName, { isValid: false });
|
|
378
|
+
this.updateFormStore(formName, { isValid: false }, true);
|
|
359
379
|
else
|
|
360
380
|
this.registerForm(formName);
|
|
381
|
+
if (previousValue !== void 0 && options?.avoidFieldsOverride)
|
|
382
|
+
return;
|
|
361
383
|
const isTouched = field.value !== void 0 && field.value !== previousValue && options?.markFormAsTouched !== false;
|
|
362
384
|
if (!this.existsField(formName, field.name))
|
|
363
385
|
this.registerField(formName, field, {
|
|
@@ -449,19 +471,76 @@ const validationsStore = new class {
|
|
|
449
471
|
});
|
|
450
472
|
console.error("Campos que fallaron la validaci\xF3n", fieldsWithError);
|
|
451
473
|
}
|
|
452
|
-
this.updateFormStore(
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
474
|
+
this.updateFormStore(
|
|
475
|
+
formName,
|
|
476
|
+
{
|
|
477
|
+
isValid: false,
|
|
478
|
+
validationResult: validationErrors
|
|
479
|
+
},
|
|
480
|
+
true
|
|
481
|
+
);
|
|
456
482
|
return validationErrors;
|
|
457
483
|
}
|
|
458
|
-
this.updateFormStore(
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
484
|
+
this.updateFormStore(
|
|
485
|
+
formName,
|
|
486
|
+
{
|
|
487
|
+
isValid: true,
|
|
488
|
+
validationResult: validationValues
|
|
489
|
+
},
|
|
490
|
+
true
|
|
491
|
+
);
|
|
462
492
|
return validationValues;
|
|
463
493
|
});
|
|
464
494
|
}
|
|
495
|
+
loadFromSessionStorage(formName) {
|
|
496
|
+
const storageValue = sessionStorage.getItem(this.makeFormName(formName));
|
|
497
|
+
if (storageValue) {
|
|
498
|
+
try {
|
|
499
|
+
const parsedValue = JSON.parse(storageValue);
|
|
500
|
+
this.activeForms.push(formName);
|
|
501
|
+
this.updateFormStore(formName, parsedValue.formProps, true);
|
|
502
|
+
Object.entries(parsedValue.fields).forEach(([name, field]) => {
|
|
503
|
+
propsStore.updateField(
|
|
504
|
+
this.makeFieldName(formName, name),
|
|
505
|
+
{
|
|
506
|
+
...this.getFieldStore(formName, name),
|
|
507
|
+
...field
|
|
508
|
+
},
|
|
509
|
+
{ noEmit: true }
|
|
510
|
+
);
|
|
511
|
+
});
|
|
512
|
+
return true;
|
|
513
|
+
} catch (e) {
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
return false;
|
|
517
|
+
}
|
|
518
|
+
persistFormToSessionStorage(formName) {
|
|
519
|
+
const { isTouched, isValid, validationResult, ...formProps } = this.getFormStore(formName);
|
|
520
|
+
const shouldPersist = formProps.persistToSessionStorage;
|
|
521
|
+
if (shouldPersist) {
|
|
522
|
+
const fields = formProps.fields.map((current) => {
|
|
523
|
+
const {
|
|
524
|
+
validationFunction,
|
|
525
|
+
isTouched: isTouched2,
|
|
526
|
+
error,
|
|
527
|
+
validationValueParser,
|
|
528
|
+
...field
|
|
529
|
+
} = this.getFieldStore(formName, current);
|
|
530
|
+
return field;
|
|
531
|
+
}).reduce(
|
|
532
|
+
(o, c) => ({ ...o, [c.name]: c }),
|
|
533
|
+
{}
|
|
534
|
+
);
|
|
535
|
+
sessionStorage.setItem(
|
|
536
|
+
this.makeFormName(formName),
|
|
537
|
+
JSON.stringify({
|
|
538
|
+
formProps,
|
|
539
|
+
fields
|
|
540
|
+
})
|
|
541
|
+
);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
465
544
|
getFieldStore(formName, fieldName) {
|
|
466
545
|
return propsStore.getFieldProps(
|
|
467
546
|
this.makeFieldName(formName, fieldName)
|
|
@@ -479,9 +558,12 @@ const validationsStore = new class {
|
|
|
479
558
|
},
|
|
480
559
|
{ noEmit }
|
|
481
560
|
);
|
|
561
|
+
this.persistFormToSessionStorage(formName);
|
|
482
562
|
}
|
|
483
|
-
updateFormStore(formName, newState) {
|
|
563
|
+
updateFormStore(formName, newState, avoidPersist = false) {
|
|
484
564
|
propsStore.updateField(this.makeFormName(formName), newState);
|
|
565
|
+
if (!avoidPersist)
|
|
566
|
+
this.persistFormToSessionStorage(formName);
|
|
485
567
|
}
|
|
486
568
|
enableFormTouch(formName) {
|
|
487
569
|
this.timeouts[formName] = true;
|
|
@@ -535,6 +617,7 @@ const Form = ({
|
|
|
535
617
|
initialValues,
|
|
536
618
|
onUnmount,
|
|
537
619
|
onValidate,
|
|
620
|
+
persistToSessionStorage,
|
|
538
621
|
unregisterOnUnmount
|
|
539
622
|
}) => {
|
|
540
623
|
const actualName = React.useMemo(
|
|
@@ -575,7 +658,8 @@ const Form = ({
|
|
|
575
658
|
useMount(() => {
|
|
576
659
|
validationsStore.registerForm(actualName, {
|
|
577
660
|
avoidFieldsOverride: avoidFieldsOverride ?? initialValues !== void 0,
|
|
578
|
-
initialValues
|
|
661
|
+
initialValues,
|
|
662
|
+
persistToSessionStorage
|
|
579
663
|
});
|
|
580
664
|
setHasRegistered(true);
|
|
581
665
|
});
|
|
@@ -586,7 +670,7 @@ const Form = ({
|
|
|
586
670
|
{
|
|
587
671
|
as: "form",
|
|
588
672
|
...getVariant("layout.common.validations.form"),
|
|
589
|
-
className
|
|
673
|
+
className: `validationsForm ${className}`,
|
|
590
674
|
id: `ValidationForm-${actualName}`,
|
|
591
675
|
...{ name: actualName },
|
|
592
676
|
onSubmit: handleSubmit,
|
|
@@ -1645,32 +1729,32 @@ var __publicField$8 = (obj, key, value) => {
|
|
|
1645
1729
|
__defNormalProp$8(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
1646
1730
|
return value;
|
|
1647
1731
|
};
|
|
1648
|
-
var __accessCheck$
|
|
1732
|
+
var __accessCheck$2 = (obj, member, msg) => {
|
|
1649
1733
|
if (!member.has(obj))
|
|
1650
1734
|
throw TypeError("Cannot " + msg);
|
|
1651
1735
|
};
|
|
1652
|
-
var __privateGet$
|
|
1653
|
-
__accessCheck$
|
|
1736
|
+
var __privateGet$2 = (obj, member, getter) => {
|
|
1737
|
+
__accessCheck$2(obj, member, "read from private field");
|
|
1654
1738
|
return getter ? getter.call(obj) : member.get(obj);
|
|
1655
1739
|
};
|
|
1656
|
-
var __privateAdd$
|
|
1740
|
+
var __privateAdd$2 = (obj, member, value) => {
|
|
1657
1741
|
if (member.has(obj))
|
|
1658
1742
|
throw TypeError("Cannot add the same private member more than once");
|
|
1659
1743
|
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
1660
1744
|
};
|
|
1661
1745
|
var _emitter;
|
|
1662
1746
|
class CollectorField extends EventEmitter {
|
|
1663
|
-
constructor(
|
|
1747
|
+
constructor(name, label, properties) {
|
|
1664
1748
|
super();
|
|
1665
|
-
this.
|
|
1749
|
+
this.name = name;
|
|
1666
1750
|
this.label = label;
|
|
1667
|
-
__privateAdd$
|
|
1751
|
+
__privateAdd$2(this, _emitter, new StatefulEmitter({
|
|
1668
1752
|
isHidden: false
|
|
1669
1753
|
}));
|
|
1670
1754
|
__publicField$8(this, "collector", {});
|
|
1671
|
-
__publicField$8(this, "isHidden", () => __privateGet$
|
|
1755
|
+
__publicField$8(this, "isHidden", () => __privateGet$2(this, _emitter).getState("isHidden"));
|
|
1672
1756
|
__publicField$8(this, "setIsHidden", (isHidden) => {
|
|
1673
|
-
__privateGet$
|
|
1757
|
+
__privateGet$2(this, _emitter).emit("isHidden", isHidden);
|
|
1674
1758
|
});
|
|
1675
1759
|
__publicField$8(this, "properties", {});
|
|
1676
1760
|
__publicField$8(this, "setProperties", (newProps) => {
|
|
@@ -1688,7 +1772,7 @@ class CollectorField extends EventEmitter {
|
|
|
1688
1772
|
* campos.
|
|
1689
1773
|
*/
|
|
1690
1774
|
__publicField$8(this, "SuperComponent", () => {
|
|
1691
|
-
if (__privateGet$
|
|
1775
|
+
if (__privateGet$2(this, _emitter).useState("isHidden"))
|
|
1692
1776
|
return null;
|
|
1693
1777
|
return /* @__PURE__ */ jsx(Box, { className: `collector__field ${this.type}`, children: /* @__PURE__ */ jsx(this.Component, {}) });
|
|
1694
1778
|
});
|
|
@@ -1696,12 +1780,6 @@ class CollectorField extends EventEmitter {
|
|
|
1696
1780
|
this.properties = properties;
|
|
1697
1781
|
}
|
|
1698
1782
|
}
|
|
1699
|
-
get name() {
|
|
1700
|
-
return this._name;
|
|
1701
|
-
}
|
|
1702
|
-
set name(name) {
|
|
1703
|
-
this._name = name;
|
|
1704
|
-
}
|
|
1705
1783
|
}
|
|
1706
1784
|
_emitter = new WeakMap();
|
|
1707
1785
|
|
|
@@ -1711,50 +1789,29 @@ var __publicField$7 = (obj, key, value) => {
|
|
|
1711
1789
|
__defNormalProp$7(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
1712
1790
|
return value;
|
|
1713
1791
|
};
|
|
1714
|
-
var __accessCheck$2 = (obj, member, msg) => {
|
|
1715
|
-
if (!member.has(obj))
|
|
1716
|
-
throw TypeError("Cannot " + msg);
|
|
1717
|
-
};
|
|
1718
|
-
var __privateGet$2 = (obj, member, getter) => {
|
|
1719
|
-
__accessCheck$2(obj, member, "read from private field");
|
|
1720
|
-
return getter ? getter.call(obj) : member.get(obj);
|
|
1721
|
-
};
|
|
1722
|
-
var __privateAdd$2 = (obj, member, value) => {
|
|
1723
|
-
if (member.has(obj))
|
|
1724
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
1725
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
1726
|
-
};
|
|
1727
|
-
var __privateSet$1 = (obj, member, value, setter) => {
|
|
1728
|
-
__accessCheck$2(obj, member, "write to private field");
|
|
1729
|
-
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
1730
|
-
return value;
|
|
1731
|
-
};
|
|
1732
|
-
var _rules, _validationFunction;
|
|
1733
1792
|
class ValidatedCollectorField extends CollectorField {
|
|
1734
|
-
constructor(
|
|
1735
|
-
super(
|
|
1736
|
-
this.
|
|
1793
|
+
constructor(name, label, config = {}) {
|
|
1794
|
+
super(name, label, config?.properties);
|
|
1795
|
+
this.name = name;
|
|
1737
1796
|
this.label = label;
|
|
1738
|
-
|
|
1739
|
-
__privateAdd$2(this, _rules, {});
|
|
1740
|
-
__privateAdd$2(this, _validationFunction, () => true);
|
|
1797
|
+
this.config = config;
|
|
1741
1798
|
__publicField$7(this, "setInitialValue", (newValue) => {
|
|
1742
|
-
this.initialValue = newValue;
|
|
1799
|
+
this.config.initialValue = newValue;
|
|
1743
1800
|
});
|
|
1744
1801
|
__publicField$7(this, "setValidationFunction", (newFunction) => {
|
|
1745
|
-
|
|
1746
|
-
this.emit("functionUpdate",
|
|
1802
|
+
this.config.validationFunction = newFunction;
|
|
1803
|
+
this.emit("functionUpdate", this.config.validationFunction);
|
|
1747
1804
|
});
|
|
1748
1805
|
__publicField$7(this, "setValidationRules", (newRules) => {
|
|
1749
|
-
|
|
1750
|
-
this.emit("rulesUpdate", { ...
|
|
1806
|
+
this.config.validationRules = newRules;
|
|
1807
|
+
this.emit("rulesUpdate", { ...this.config.validationRules });
|
|
1751
1808
|
});
|
|
1752
1809
|
__publicField$7(this, "setValue", (newValue) => {
|
|
1753
1810
|
validationsStore.setFieldValue(this.collector.id, this.name, newValue);
|
|
1754
1811
|
});
|
|
1755
1812
|
__publicField$7(this, "useValidationFunction", () => {
|
|
1756
1813
|
return useSubscription({
|
|
1757
|
-
getInitialState: () => () =>
|
|
1814
|
+
getInitialState: () => () => this.config.validationFunction,
|
|
1758
1815
|
makeSubscription: (setValidationFunction) => {
|
|
1759
1816
|
return this.on("functionUpdate", setValidationFunction);
|
|
1760
1817
|
}
|
|
@@ -1762,25 +1819,17 @@ class ValidatedCollectorField extends CollectorField {
|
|
|
1762
1819
|
});
|
|
1763
1820
|
__publicField$7(this, "useValidationRules", () => {
|
|
1764
1821
|
return useSubscription({
|
|
1765
|
-
getInitialState: () =>
|
|
1822
|
+
getInitialState: () => this.config.validationRules,
|
|
1766
1823
|
makeSubscription: (setValidationRules) => {
|
|
1767
1824
|
return this.on("rulesUpdate", setValidationRules);
|
|
1768
1825
|
}
|
|
1769
1826
|
});
|
|
1770
1827
|
});
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
if (config?.validationFunction) {
|
|
1775
|
-
__privateSet$1(this, _validationFunction, config.validationFunction);
|
|
1776
|
-
}
|
|
1777
|
-
if (config?.validationRules) {
|
|
1778
|
-
__privateSet$1(this, _rules, config.validationRules);
|
|
1779
|
-
}
|
|
1828
|
+
}
|
|
1829
|
+
get initialValue() {
|
|
1830
|
+
return this.config.initialValue;
|
|
1780
1831
|
}
|
|
1781
1832
|
}
|
|
1782
|
-
_rules = new WeakMap();
|
|
1783
|
-
_validationFunction = new WeakMap();
|
|
1784
1833
|
|
|
1785
1834
|
var __defProp$6 = Object.defineProperty;
|
|
1786
1835
|
var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -1800,7 +1849,7 @@ class CollectorCheckbox extends ValidatedCollectorField {
|
|
|
1800
1849
|
Checkbox,
|
|
1801
1850
|
{
|
|
1802
1851
|
...props,
|
|
1803
|
-
initialValue: this.initialValue,
|
|
1852
|
+
initialValue: this.config.initialValue,
|
|
1804
1853
|
validationFunction,
|
|
1805
1854
|
name: this.name,
|
|
1806
1855
|
label: this.label,
|
|
@@ -1830,7 +1879,7 @@ class CollectorInput extends ValidatedCollectorField {
|
|
|
1830
1879
|
Input,
|
|
1831
1880
|
{
|
|
1832
1881
|
...props,
|
|
1833
|
-
initialValue: this.initialValue,
|
|
1882
|
+
initialValue: this.config.initialValue,
|
|
1834
1883
|
validationFunction,
|
|
1835
1884
|
name: this.name,
|
|
1836
1885
|
label: this.label,
|
|
@@ -1897,7 +1946,7 @@ class CollectorSelect extends ValidatedCollectorField {
|
|
|
1897
1946
|
Select,
|
|
1898
1947
|
{
|
|
1899
1948
|
...props,
|
|
1900
|
-
initialValue: this.initialValue,
|
|
1949
|
+
initialValue: this.config.initialValue,
|
|
1901
1950
|
validationFunction,
|
|
1902
1951
|
name: this.name,
|
|
1903
1952
|
label: this.label,
|
|
@@ -1932,7 +1981,7 @@ class CollectorTextarea extends ValidatedCollectorField {
|
|
|
1932
1981
|
Textarea,
|
|
1933
1982
|
{
|
|
1934
1983
|
...props,
|
|
1935
|
-
initialValue: this.initialValue,
|
|
1984
|
+
initialValue: this.config.initialValue,
|
|
1936
1985
|
name: this.name,
|
|
1937
1986
|
validationFunction,
|
|
1938
1987
|
validationRules: rules,
|
|
@@ -1956,7 +2005,7 @@ const _CollectorLabel = class _CollectorLabel extends CollectorField {
|
|
|
1956
2005
|
__publicField$2(this, "type", "label");
|
|
1957
2006
|
__publicField$2(this, "Component", () => {
|
|
1958
2007
|
if (this.kind === "label")
|
|
1959
|
-
return /* @__PURE__ */ jsx(Box, { as: this.kind, children:
|
|
2008
|
+
return /* @__PURE__ */ jsx(Box, { as: this.kind, children: this.label });
|
|
1960
2009
|
return /* @__PURE__ */ jsx(Box, { as: this.kind, children: this.label });
|
|
1961
2010
|
});
|
|
1962
2011
|
}
|
|
@@ -2025,10 +2074,14 @@ class Collector {
|
|
|
2025
2074
|
textarea: CollectorTextarea
|
|
2026
2075
|
});
|
|
2027
2076
|
__publicField(this, "private__id", `Collector${maxId++}`);
|
|
2077
|
+
__publicField(this, "modal", null);
|
|
2028
2078
|
__privateAdd(this, _fields, {});
|
|
2029
|
-
__publicField(this, "add", (
|
|
2030
|
-
|
|
2031
|
-
|
|
2079
|
+
__publicField(this, "add", (...fields) => {
|
|
2080
|
+
fields.forEach((field) => {
|
|
2081
|
+
__privateGet(this, _fields)[field.name] = field;
|
|
2082
|
+
field.collector = this;
|
|
2083
|
+
});
|
|
2084
|
+
return this;
|
|
2032
2085
|
});
|
|
2033
2086
|
__publicField(this, "forEach", (cb) => {
|
|
2034
2087
|
Object.values(__privateGet(this, _fields)).forEach(cb);
|
|
@@ -2039,33 +2092,44 @@ class Collector {
|
|
|
2039
2092
|
}) => {
|
|
2040
2093
|
const modal = useModalContext();
|
|
2041
2094
|
let hasValidated = false;
|
|
2042
|
-
return /* @__PURE__ */ jsx(
|
|
2043
|
-
|
|
2095
|
+
return /* @__PURE__ */ jsx(
|
|
2096
|
+
Box,
|
|
2044
2097
|
{
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2098
|
+
className: "formContainer",
|
|
2099
|
+
...getVariant("layout.util.collector.formContainer"),
|
|
2100
|
+
children: /* @__PURE__ */ jsxs(
|
|
2101
|
+
Form,
|
|
2102
|
+
{
|
|
2103
|
+
name: this.private__id,
|
|
2104
|
+
onValidate: (result) => {
|
|
2105
|
+
if (hasSucceedFormValidation(result)) {
|
|
2106
|
+
const res = resolve(result.submitValues);
|
|
2107
|
+
if (res) {
|
|
2108
|
+
modal.close();
|
|
2109
|
+
}
|
|
2110
|
+
}
|
|
2111
|
+
},
|
|
2112
|
+
children: [
|
|
2113
|
+
/* @__PURE__ */ jsx(Box, { className: "collector__fields", children: Object.values(__privateGet(this, _fields)).map((current) => {
|
|
2114
|
+
if (current instanceof ValidatedCollectorField)
|
|
2115
|
+
hasValidated = true;
|
|
2116
|
+
return /* @__PURE__ */ jsx(current.SuperComponent, {}, current.name);
|
|
2117
|
+
}) }),
|
|
2118
|
+
hasValidated && !hideConfirm && /* @__PURE__ */ jsx(Box, { className: "collector__buttons", children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: getLabel("btnCon").text }) })
|
|
2119
|
+
]
|
|
2050
2120
|
}
|
|
2051
|
-
|
|
2052
|
-
children: [
|
|
2053
|
-
Object.values(__privateGet(this, _fields)).map((current) => {
|
|
2054
|
-
if (current instanceof ValidatedCollectorField)
|
|
2055
|
-
hasValidated = true;
|
|
2056
|
-
return /* @__PURE__ */ jsx(current.SuperComponent, {}, current.name);
|
|
2057
|
-
}),
|
|
2058
|
-
hasValidated && !hideConfirm && /* @__PURE__ */ jsx(Box, { className: "collector__buttons", children: /* @__PURE__ */ jsx(Button, { variant: "outline", children: getLabel("btnCon").text }) })
|
|
2059
|
-
]
|
|
2121
|
+
)
|
|
2060
2122
|
}
|
|
2061
|
-
)
|
|
2123
|
+
);
|
|
2062
2124
|
});
|
|
2063
2125
|
__publicField(this, "show", (modalProps) => {
|
|
2126
|
+
const { onConfirm, ...actualModalProps } = modalProps ?? {};
|
|
2064
2127
|
return new Promise((resolve) => {
|
|
2065
2128
|
const C = __privateGet(this, _Component);
|
|
2066
|
-
ApiaUtil.instance.modals.open({
|
|
2067
|
-
onExited() {
|
|
2129
|
+
const modal = ApiaUtil.instance.modals.open({
|
|
2130
|
+
onExited: () => {
|
|
2068
2131
|
{
|
|
2132
|
+
this.modal = null;
|
|
2069
2133
|
resolve(null);
|
|
2070
2134
|
}
|
|
2071
2135
|
},
|
|
@@ -2074,7 +2138,14 @@ class Collector {
|
|
|
2074
2138
|
{
|
|
2075
2139
|
hideConfirm: modalProps?.hideConfirm,
|
|
2076
2140
|
resolve: (values) => {
|
|
2141
|
+
if (onConfirm) {
|
|
2142
|
+
const confirmResult = onConfirm(values);
|
|
2143
|
+
if (!confirmResult) {
|
|
2144
|
+
return false;
|
|
2145
|
+
}
|
|
2146
|
+
}
|
|
2077
2147
|
resolve(values);
|
|
2148
|
+
return true;
|
|
2078
2149
|
}
|
|
2079
2150
|
}
|
|
2080
2151
|
),
|
|
@@ -2084,8 +2155,9 @@ class Collector {
|
|
|
2084
2155
|
"input,textarea,select,button:not(.modal__closeButton)"
|
|
2085
2156
|
);
|
|
2086
2157
|
},
|
|
2087
|
-
...
|
|
2158
|
+
...actualModalProps
|
|
2088
2159
|
});
|
|
2160
|
+
this.modal = modal;
|
|
2089
2161
|
});
|
|
2090
2162
|
});
|
|
2091
2163
|
}
|