@rolster/forms 3.2.0 → 3.3.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/cjs/helpers.js +84 -31
- package/dist/cjs/helpers.js.map +1 -1
- package/dist/cjs/index.js +81 -79
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/helpers.js +75 -25
- package/dist/es/helpers.js.map +1 -1
- package/dist/es/index.js +81 -79
- package/dist/es/index.js.map +1 -1
- package/dist/esm/form-array/form-array-control.d.ts +3 -3
- package/dist/esm/form-array/form-array-control.js +2 -2
- package/dist/esm/form-array/form-array-control.js.map +1 -1
- package/dist/esm/form-array/form-array-control.type.d.ts +11 -0
- package/dist/esm/form-array/form-array-control.type.js +2 -0
- package/dist/esm/form-array/form-array-control.type.js.map +1 -0
- package/dist/esm/form-array/form-array-group.d.ts +4 -4
- package/dist/esm/form-array/form-array-group.js +2 -2
- package/dist/esm/form-array/form-array-group.js.map +1 -1
- package/dist/esm/form-array/form-array-group.type.d.ts +20 -0
- package/dist/esm/form-array/form-array-group.type.js +2 -0
- package/dist/esm/form-array/form-array-group.type.js.map +1 -0
- package/dist/esm/form-array/form-array-list.d.ts +3 -3
- package/dist/esm/form-array/form-array-list.js +8 -8
- package/dist/esm/form-array/form-array-list.js.map +1 -1
- package/dist/esm/form-array/form-array-list.type.d.ts +8 -0
- package/dist/esm/form-array/form-array-list.type.js +2 -0
- package/dist/esm/form-array/form-array-list.type.js.map +1 -0
- package/dist/esm/form-array/form-array.d.ts +14 -14
- package/dist/esm/form-array/form-array.helper.d.ts +17 -0
- package/dist/esm/form-array/form-array.helper.js +34 -0
- package/dist/esm/form-array/form-array.helper.js.map +1 -0
- package/dist/esm/form-array/form-array.js +14 -14
- package/dist/esm/form-array/form-array.js.map +1 -1
- package/dist/esm/form-array/form-array.type.d.ts +34 -0
- package/dist/esm/form-array/form-array.type.js +2 -0
- package/dist/esm/form-array/form-array.type.js.map +1 -0
- package/dist/esm/{form-control.d.ts → form-control/form-control.d.ts} +2 -2
- package/dist/esm/form-control/form-control.helper.d.ts +13 -0
- package/dist/esm/form-control/form-control.helper.js +27 -0
- package/dist/esm/form-control/form-control.helper.js.map +1 -0
- package/dist/esm/{form-control.js → form-control/form-control.js} +3 -3
- package/dist/esm/form-control/form-control.js.map +1 -0
- package/dist/esm/form-control/form-control.type.d.ts +41 -0
- package/dist/esm/form-control/form-control.type.js +2 -0
- package/dist/esm/form-control/form-control.type.js.map +1 -0
- package/dist/esm/{form-group.d.ts → form-group/form-group.d.ts} +4 -3
- package/dist/esm/form-group/form-group.helper.d.ts +17 -0
- package/dist/esm/form-group/form-group.helper.js +36 -0
- package/dist/esm/form-group/form-group.helper.js.map +1 -0
- package/dist/esm/{form-group.js → form-group/form-group.js} +7 -8
- package/dist/esm/form-group/form-group.js.map +1 -0
- package/dist/esm/form-group/form-group.type.d.ts +36 -0
- package/dist/esm/form-group/form-group.type.js +2 -0
- package/dist/esm/form-group/form-group.type.js.map +1 -0
- package/dist/esm/helpers.d.ts +6 -23
- package/dist/esm/helpers.js +3 -46
- package/dist/esm/helpers.js.map +1 -1
- package/dist/esm/index.d.ts +11 -4
- package/dist/esm/index.js +11 -4
- package/dist/esm/index.js.map +1 -1
- package/helpers/package.json +4 -0
- package/package.json +6 -12
- package/arguments/package.json +0 -14
- package/dist/cjs/arguments.js +0 -54
- package/dist/cjs/arguments.js.map +0 -1
- package/dist/es/arguments.js +0 -50
- package/dist/es/arguments.js.map +0 -1
- package/dist/esm/arguments.d.ts +0 -18
- package/dist/esm/arguments.js +0 -48
- package/dist/esm/arguments.js.map +0 -1
- package/dist/esm/form-array/arguments.d.ts +0 -6
- package/dist/esm/form-array/arguments.js +0 -2
- package/dist/esm/form-array/arguments.js.map +0 -1
- package/dist/esm/form-array/index.d.ts +0 -5
- package/dist/esm/form-array/index.js +0 -6
- package/dist/esm/form-array/index.js.map +0 -1
- package/dist/esm/form-array/types.d.ts +0 -2
- package/dist/esm/form-array/types.js +0 -2
- package/dist/esm/form-array/types.js.map +0 -1
- package/dist/esm/form-control.js.map +0 -1
- package/dist/esm/form-group.js.map +0 -1
- package/dist/esm/types.d.ts +0 -143
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
package/dist/es/index.js
CHANGED
|
@@ -1,23 +1,16 @@
|
|
|
1
1
|
import { v4 } from 'uuid';
|
|
2
2
|
import { parseBoolean, observable } from '@rolster/commons';
|
|
3
3
|
|
|
4
|
-
function
|
|
4
|
+
function valueIsControlOptions(options) {
|
|
5
5
|
return (typeof options === 'object' &&
|
|
6
6
|
('value' in options || 'validators' in options));
|
|
7
7
|
}
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
function arrayIsOptions(options) {
|
|
12
|
-
return (typeof options === 'object' &&
|
|
13
|
-
('groups' in options || 'validators' in options));
|
|
14
|
-
}
|
|
15
|
-
function createFormControlOptions(...controlOptions) {
|
|
16
|
-
const [options, validators] = controlOptions;
|
|
8
|
+
function createFormControlOptions(...argsOptions) {
|
|
9
|
+
const [options, validators] = argsOptions;
|
|
17
10
|
if (!options) {
|
|
18
11
|
return { value: options, validators };
|
|
19
12
|
}
|
|
20
|
-
if (!validators &&
|
|
13
|
+
if (!validators && valueIsControlOptions(options)) {
|
|
21
14
|
return options;
|
|
22
15
|
}
|
|
23
16
|
return {
|
|
@@ -25,22 +18,26 @@ function createFormControlOptions(...controlOptions) {
|
|
|
25
18
|
validators
|
|
26
19
|
};
|
|
27
20
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
21
|
+
const formControlIsValid = ({ value, validators }) => {
|
|
22
|
+
return validators.reduce((errors, validator) => {
|
|
23
|
+
const error = validator(value);
|
|
24
|
+
if (error) {
|
|
25
|
+
errors.push(error);
|
|
26
|
+
}
|
|
27
|
+
return errors;
|
|
28
|
+
}, []);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
function valueIsArrayOptions(options) {
|
|
32
|
+
return (typeof options === 'object' &&
|
|
33
|
+
('groups' in options || 'validators' in options));
|
|
37
34
|
}
|
|
38
|
-
function createFormArrayOptions(...
|
|
39
|
-
const [options, validators] =
|
|
35
|
+
function createFormArrayOptions(...argsOptions) {
|
|
36
|
+
const [options, validators] = argsOptions;
|
|
40
37
|
if (!options) {
|
|
41
38
|
return { groups: options, validators };
|
|
42
39
|
}
|
|
43
|
-
if (!validators &&
|
|
40
|
+
if (!validators && valueIsArrayOptions(options)) {
|
|
44
41
|
return options;
|
|
45
42
|
}
|
|
46
43
|
return {
|
|
@@ -48,55 +45,60 @@ function createFormArrayOptions(...arrayOptions) {
|
|
|
48
45
|
validators
|
|
49
46
|
};
|
|
50
47
|
}
|
|
51
|
-
|
|
52
|
-
function reduceErrors(errors) {
|
|
53
|
-
return errors.reduce((keys, { id }) => [...keys, id], []);
|
|
54
|
-
}
|
|
55
|
-
const controlIsValid = ({ value, validators }) => {
|
|
56
|
-
return validators.reduce((errors, validator) => {
|
|
57
|
-
const error = validator(value);
|
|
58
|
-
if (error) {
|
|
59
|
-
errors.push(error);
|
|
60
|
-
}
|
|
61
|
-
return errors;
|
|
62
|
-
}, []);
|
|
63
|
-
};
|
|
64
|
-
const controlsAllChecked = (controls, key) => {
|
|
65
|
-
return Object.values(controls).reduce((value, control) => control.disabled ? value : value && parseBoolean(control[key]), true);
|
|
66
|
-
};
|
|
67
|
-
const controlsPartialChecked = (controls, key) => {
|
|
68
|
-
return Object.values(controls).reduce((value, control) => control.disabled ? value : value || parseBoolean(control[key]), false);
|
|
69
|
-
};
|
|
70
|
-
const controlsToValue = (controls) => {
|
|
71
|
-
return Object.entries(controls).reduce((result, [key, { value }]) => {
|
|
72
|
-
result[key] = value;
|
|
73
|
-
return result;
|
|
74
|
-
}, {});
|
|
75
|
-
};
|
|
76
|
-
const groupIsValid = ({ controls, validators }) => {
|
|
48
|
+
const formArrayIsValid = ({ groups, validators }) => {
|
|
77
49
|
return validators.reduce((errors, validator) => {
|
|
78
|
-
const error = validator(
|
|
50
|
+
const error = validator(groups);
|
|
79
51
|
if (error) {
|
|
80
52
|
errors.push(error);
|
|
81
53
|
}
|
|
82
54
|
return errors;
|
|
83
55
|
}, []);
|
|
84
56
|
};
|
|
85
|
-
function
|
|
57
|
+
function verifyAllTrueInGroups(groups, key) {
|
|
86
58
|
return groups.reduce((value, group) => value && parseBoolean(group[key]), true);
|
|
87
59
|
}
|
|
88
|
-
function
|
|
60
|
+
function verifyAnyTrueInGroups(groups, key) {
|
|
89
61
|
return groups.reduce((value, group) => value || parseBoolean(group[key]), false);
|
|
90
62
|
}
|
|
91
|
-
|
|
63
|
+
|
|
64
|
+
function valueIsGroupOptions(options) {
|
|
65
|
+
return typeof options === 'object' && 'controls' in options;
|
|
66
|
+
}
|
|
67
|
+
function createFormGroupOptions(...argsOptions) {
|
|
68
|
+
const [options, validators] = argsOptions;
|
|
69
|
+
if (!validators && valueIsGroupOptions(options)) {
|
|
70
|
+
return options;
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
controls: options,
|
|
74
|
+
validators
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
const formGroupIsValid = ({ controls, validators }) => {
|
|
92
78
|
return validators.reduce((errors, validator) => {
|
|
93
|
-
const error = validator(
|
|
79
|
+
const error = validator(controls);
|
|
94
80
|
if (error) {
|
|
95
81
|
errors.push(error);
|
|
96
82
|
}
|
|
97
83
|
return errors;
|
|
98
84
|
}, []);
|
|
99
85
|
};
|
|
86
|
+
const controlsToValue = (controls) => {
|
|
87
|
+
return Object.entries(controls).reduce((result, [key, { value }]) => {
|
|
88
|
+
result[key] = value;
|
|
89
|
+
return result;
|
|
90
|
+
}, {});
|
|
91
|
+
};
|
|
92
|
+
const verifyAllTrueInControls = (controls, key) => {
|
|
93
|
+
return Object.values(controls).reduce((value, control) => control.disabled ? value : value && parseBoolean(control[key]), true);
|
|
94
|
+
};
|
|
95
|
+
const verifyAnyTrueInControls = (controls, key) => {
|
|
96
|
+
return Object.values(controls).reduce((value, control) => control.disabled ? value : value || parseBoolean(control[key]), false);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
function reduceErrors(errors) {
|
|
100
|
+
return errors.reduce((keys, { id }) => [...keys, id], []);
|
|
101
|
+
}
|
|
100
102
|
function hasError(errors, key) {
|
|
101
103
|
return reduceErrors(errors).includes(key);
|
|
102
104
|
}
|
|
@@ -208,7 +210,7 @@ class FormControl {
|
|
|
208
210
|
}
|
|
209
211
|
updateValueAndValidity(value, validators) {
|
|
210
212
|
if (validators) {
|
|
211
|
-
const errors =
|
|
213
|
+
const errors = formControlIsValid({ value, validators });
|
|
212
214
|
this._error = errors[0];
|
|
213
215
|
this._errors = errors;
|
|
214
216
|
this._valid = errors.length === 0;
|
|
@@ -260,10 +262,10 @@ class FormGroup {
|
|
|
260
262
|
return this._controls;
|
|
261
263
|
}
|
|
262
264
|
get touched() {
|
|
263
|
-
return
|
|
265
|
+
return verifyAnyTrueInControls(this.controls, 'touched');
|
|
264
266
|
}
|
|
265
267
|
get toucheds() {
|
|
266
|
-
return
|
|
268
|
+
return verifyAllTrueInControls(this.controls, 'touched');
|
|
267
269
|
}
|
|
268
270
|
get untouched() {
|
|
269
271
|
return !this.touched;
|
|
@@ -272,10 +274,10 @@ class FormGroup {
|
|
|
272
274
|
return !this.toucheds;
|
|
273
275
|
}
|
|
274
276
|
get dirty() {
|
|
275
|
-
return
|
|
277
|
+
return verifyAnyTrueInControls(this.controls, 'dirty');
|
|
276
278
|
}
|
|
277
279
|
get dirties() {
|
|
278
|
-
return
|
|
280
|
+
return verifyAllTrueInControls(this.controls, 'dirty');
|
|
279
281
|
}
|
|
280
282
|
get pristine() {
|
|
281
283
|
return !this.dirty;
|
|
@@ -284,7 +286,7 @@ class FormGroup {
|
|
|
284
286
|
return this.dirties;
|
|
285
287
|
}
|
|
286
288
|
get valid() {
|
|
287
|
-
return this._valid &&
|
|
289
|
+
return this._valid && verifyAllTrueInControls(this.controls, 'valid');
|
|
288
290
|
}
|
|
289
291
|
get invalid() {
|
|
290
292
|
return !this.valid;
|
|
@@ -315,7 +317,7 @@ class FormGroup {
|
|
|
315
317
|
}
|
|
316
318
|
updateValueAndValidity(controls, validators) {
|
|
317
319
|
if (validators) {
|
|
318
|
-
const errors =
|
|
320
|
+
const errors = formGroupIsValid({ controls, validators });
|
|
319
321
|
this._errors = errors;
|
|
320
322
|
this._error = errors[0];
|
|
321
323
|
this._valid = errors.length === 0;
|
|
@@ -345,24 +347,24 @@ function formArrayGroup(options, validators) {
|
|
|
345
347
|
|
|
346
348
|
class FormArrayList extends FormControl {
|
|
347
349
|
constructor(valueToControls, value, validators) {
|
|
348
|
-
const
|
|
349
|
-
super(
|
|
350
|
+
const formValue = value || [];
|
|
351
|
+
super(formValue, validators);
|
|
350
352
|
this.valueToControls = valueToControls;
|
|
351
|
-
this._controls =
|
|
353
|
+
this._controls = formValue.map((value) => this.createControls(value));
|
|
352
354
|
this.uuid = v4();
|
|
353
355
|
}
|
|
354
356
|
get controls() {
|
|
355
357
|
return this._controls;
|
|
356
358
|
}
|
|
357
359
|
get touched() {
|
|
358
|
-
return this.controls.reduce((valid, controls) => valid &&
|
|
360
|
+
return this.controls.reduce((valid, controls) => valid && verifyAnyTrueInControls(controls, 'touched'), true);
|
|
359
361
|
}
|
|
360
362
|
get dirty() {
|
|
361
|
-
return this.controls.reduce((valid, controls) => valid &&
|
|
363
|
+
return this.controls.reduce((valid, controls) => valid && verifyAnyTrueInControls(controls, 'dirty'), true);
|
|
362
364
|
}
|
|
363
365
|
get valid() {
|
|
364
366
|
return (this._valid &&
|
|
365
|
-
this.controls.reduce((valid, controls) => valid &&
|
|
367
|
+
this.controls.reduce((valid, controls) => valid && verifyAllTrueInControls(controls, 'valid'), true));
|
|
366
368
|
}
|
|
367
369
|
get value() {
|
|
368
370
|
return this.controls.map((controls) => controlsToValue(controls));
|
|
@@ -399,7 +401,7 @@ class FormArray {
|
|
|
399
401
|
this._errors = [];
|
|
400
402
|
const formArray = createFormArrayOptions(options, validators);
|
|
401
403
|
this.unsusbcriptions = new Map();
|
|
402
|
-
this.
|
|
404
|
+
this.map = new Map();
|
|
403
405
|
this.defaultValue = formArray.groups;
|
|
404
406
|
this.validators = formArray.validators;
|
|
405
407
|
this.refresh(this.defaultValue);
|
|
@@ -415,10 +417,10 @@ class FormArray {
|
|
|
415
417
|
return this.groups.map(({ controls }) => controls);
|
|
416
418
|
}
|
|
417
419
|
get touched() {
|
|
418
|
-
return
|
|
420
|
+
return verifyAnyTrueInGroups(this.groups, 'touched');
|
|
419
421
|
}
|
|
420
422
|
get toucheds() {
|
|
421
|
-
return
|
|
423
|
+
return verifyAllTrueInGroups(this.groups, 'toucheds');
|
|
422
424
|
}
|
|
423
425
|
get untouched() {
|
|
424
426
|
return !this.touched;
|
|
@@ -427,10 +429,10 @@ class FormArray {
|
|
|
427
429
|
return !this.toucheds;
|
|
428
430
|
}
|
|
429
431
|
get dirty() {
|
|
430
|
-
return
|
|
432
|
+
return verifyAnyTrueInGroups(this.groups, 'dirty');
|
|
431
433
|
}
|
|
432
434
|
get dirties() {
|
|
433
|
-
return
|
|
435
|
+
return verifyAllTrueInGroups(this.groups, 'dirties');
|
|
434
436
|
}
|
|
435
437
|
get pristine() {
|
|
436
438
|
return !this.dirty;
|
|
@@ -445,7 +447,7 @@ class FormArray {
|
|
|
445
447
|
return !this._disabled;
|
|
446
448
|
}
|
|
447
449
|
get valid() {
|
|
448
|
-
return this._valid &&
|
|
450
|
+
return this._valid && verifyAllTrueInGroups(this.groups, 'valid');
|
|
449
451
|
}
|
|
450
452
|
get invalid() {
|
|
451
453
|
return !this._valid;
|
|
@@ -478,7 +480,7 @@ class FormArray {
|
|
|
478
480
|
this._disabled = false;
|
|
479
481
|
}
|
|
480
482
|
findByUuid(uuid) {
|
|
481
|
-
return this.
|
|
483
|
+
return this.map.get(uuid);
|
|
482
484
|
}
|
|
483
485
|
push(group) {
|
|
484
486
|
this.subscription(group);
|
|
@@ -521,7 +523,7 @@ class FormArray {
|
|
|
521
523
|
}
|
|
522
524
|
updateValidityStatus(groups, validators) {
|
|
523
525
|
if (validators) {
|
|
524
|
-
const errors =
|
|
526
|
+
const errors = formArrayIsValid({ groups, validators });
|
|
525
527
|
this._errors = errors;
|
|
526
528
|
this._error = errors[0];
|
|
527
529
|
this._valid = errors.length === 0;
|
|
@@ -532,11 +534,11 @@ class FormArray {
|
|
|
532
534
|
this._error = undefined;
|
|
533
535
|
}
|
|
534
536
|
}
|
|
535
|
-
refresh(
|
|
536
|
-
this._groups =
|
|
537
|
-
this.
|
|
537
|
+
refresh(groups) {
|
|
538
|
+
this._groups = groups || [];
|
|
539
|
+
this.map.clear();
|
|
538
540
|
this._groups.forEach((group) => {
|
|
539
|
-
this.
|
|
541
|
+
this.map.set(group.uuid, group);
|
|
540
542
|
});
|
|
541
543
|
this.updateValidityStatus(this._groups, this.validators);
|
|
542
544
|
}
|
package/dist/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../esm/arguments.js","../esm/helpers.js","../esm/form-control.js","../esm/form-array/form-array-control.js","../esm/form-group.js","../esm/form-array/form-array-group.js","../esm/form-array/form-array-list.js","../esm/form-array/form-array.js"],"sourcesContent":["function controlIsOptions(options) {\n return (typeof options === 'object' &&\n ('value' in options || 'validators' in options));\n}\nfunction groupIsOptions(options) {\n return typeof options === 'object' && 'controls' in options;\n}\nfunction arrayIsOptions(options) {\n return (typeof options === 'object' &&\n ('groups' in options || 'validators' in options));\n}\nexport function createFormControlOptions(...controlOptions) {\n const [options, validators] = controlOptions;\n if (!options) {\n return { value: options, validators };\n }\n if (!validators && controlIsOptions(options)) {\n return options;\n }\n return {\n value: options,\n validators\n };\n}\nexport function createFormGroupOptions(...groupOptions) {\n const [options, validators] = groupOptions;\n if (!validators && groupIsOptions(options)) {\n return options;\n }\n return {\n controls: options,\n validators\n };\n}\nexport function createFormArrayOptions(...arrayOptions) {\n const [options, validators] = arrayOptions;\n if (!options) {\n return { groups: options, validators };\n }\n if (!validators && arrayIsOptions(options)) {\n return options;\n }\n return {\n groups: options,\n validators\n };\n}\n//# sourceMappingURL=arguments.js.map","import { parseBoolean } from '@rolster/commons';\nfunction reduceErrors(errors) {\n return errors.reduce((keys, { id }) => [...keys, id], []);\n}\nexport const controlIsValid = ({ value, validators }) => {\n return validators.reduce((errors, validator) => {\n const error = validator(value);\n if (error) {\n errors.push(error);\n }\n return errors;\n }, []);\n};\nexport const controlsAllChecked = (controls, key) => {\n return Object.values(controls).reduce((value, control) => control.disabled ? value : value && parseBoolean(control[key]), true);\n};\nexport const controlsPartialChecked = (controls, key) => {\n return Object.values(controls).reduce((value, control) => control.disabled ? value : value || parseBoolean(control[key]), false);\n};\nexport const controlsToValue = (controls) => {\n return Object.entries(controls).reduce((result, [key, { value }]) => {\n result[key] = value;\n return result;\n }, {});\n};\nexport const groupIsValid = ({ controls, validators }) => {\n return validators.reduce((errors, validator) => {\n const error = validator(controls);\n if (error) {\n errors.push(error);\n }\n return errors;\n }, []);\n};\nexport function groupAllChecked(groups, key) {\n return groups.reduce((value, group) => value && parseBoolean(group[key]), true);\n}\nexport function groupPartialChecked(groups, key) {\n return groups.reduce((value, group) => value || parseBoolean(group[key]), false);\n}\nexport const arrayIsValid = ({ groups, validators }) => {\n return validators.reduce((errors, validator) => {\n const error = validator(groups);\n if (error) {\n errors.push(error);\n }\n return errors;\n }, []);\n};\nexport function hasError(errors, key) {\n return reduceErrors(errors).includes(key);\n}\nexport function someErrors(errors, keys) {\n return reduceErrors(errors).some((key) => keys.includes(key));\n}\nexport function reduceControlsToArray(controls, key) {\n return Object.values(controls).map((control) => control[key]);\n}\nexport function reduceGroupToArray(group, key) {\n return reduceControlsToArray(group.controls, key);\n}\n//# sourceMappingURL=helpers.js.map","import { observable } from '@rolster/commons';\nimport { createFormControlOptions } from './arguments';\nimport { controlIsValid, hasError, someErrors } from './helpers';\nexport class FormControl {\n constructor(options, validators) {\n this._focused = false;\n this._touched = false;\n this._dirty = false;\n this._disabled = false;\n this._valid = true;\n this._errors = [];\n const formControl = createFormControlOptions(options, validators);\n this.observable = observable(formControl.value);\n this.defaultValue = formControl.value;\n this.validators = formControl.validators;\n this._value = formControl.value;\n this.updateValueAndValidity(formControl.value, formControl.validators);\n }\n get focused() {\n return this._focused;\n }\n get unfocused() {\n return !this._focused;\n }\n get touched() {\n return this._touched;\n }\n get untouched() {\n return !this._touched;\n }\n get dirty() {\n return this._dirty;\n }\n get pristine() {\n return !this._dirty;\n }\n get disabled() {\n return this._disabled;\n }\n get enabled() {\n return !this._disabled;\n }\n get valid() {\n return this._valid;\n }\n get invalid() {\n return !this._valid;\n }\n get value() {\n return this._value;\n }\n get errors() {\n return this._errors;\n }\n get error() {\n return this._error;\n }\n get wrong() {\n return this.touched && this.invalid;\n }\n hasError(key) {\n return hasError(this.errors, key);\n }\n someErrors(keys) {\n return someErrors(this.errors, keys);\n }\n reset() {\n this.refreshValue(this.defaultValue);\n this._dirty = false;\n this._touched = false;\n }\n focus() {\n this._focused = true;\n }\n blur() {\n this._focused = false;\n this._touched = true;\n }\n disable() {\n this._disabled = true;\n }\n enable() {\n this._disabled = false;\n }\n touch() {\n this._touched = true;\n }\n setDefaultValue(value) {\n this.defaultValue = value;\n this.refreshValue(value);\n }\n setStartValue(value) {\n this.refreshValue(value);\n }\n setValue(value) {\n this._dirty = true;\n this.refreshValue(value);\n }\n setValidators(validators = []) {\n this.validators = validators;\n this.updateValueAndValidity(this.value, validators);\n }\n subscribe(subscriber) {\n return this.observable.subscribe(subscriber);\n }\n updateValueAndValidity(value, validators) {\n if (validators) {\n const errors = controlIsValid({ value, validators });\n this._error = errors[0];\n this._errors = errors;\n this._valid = errors.length === 0;\n }\n else {\n this._valid = true;\n this._error = undefined;\n this._errors = [];\n }\n }\n refreshValue(value) {\n this._value = value;\n this.updateValueAndValidity(value, this.validators);\n this.observable.next(value);\n }\n}\nexport function formControl(options, validators) {\n return new FormControl(createFormControlOptions(options, validators));\n}\n//# sourceMappingURL=form-control.js.map","import { v4 as uuid } from 'uuid';\nimport { createFormControlOptions } from '../arguments';\nimport { FormControl } from '../form-control';\nexport class FormArrayControl extends FormControl {\n constructor(options, validators) {\n const formControl = createFormControlOptions(options, validators);\n super(formControl.value, formControl.validators);\n this.uuid = uuid();\n }\n}\nexport function formArrayControl(options, validators) {\n return new FormArrayControl(createFormControlOptions(options, validators));\n}\n//# sourceMappingURL=form-array-control.js.map","import { observable } from '@rolster/commons';\nimport { createFormGroupOptions } from './arguments';\nimport { controlsAllChecked, controlsPartialChecked, controlsToValue, groupIsValid } from './helpers';\nexport class FormGroup {\n constructor(options, validators) {\n this._errors = [];\n this._valid = true;\n const formGroup = createFormGroupOptions(options, validators);\n this._controls = formGroup.controls;\n this.validators = formGroup.validators;\n this.updateValueAndValidity(formGroup.controls, formGroup.validators);\n this.observable = observable(this.value);\n Object.values(formGroup.controls).forEach((control) => {\n control.subscribe(() => {\n this.updateValueAndValidity(this.controls, this.validators);\n this.observable.next(this.value);\n });\n });\n }\n get controls() {\n return this._controls;\n }\n get touched() {\n return controlsPartialChecked(this.controls, 'touched');\n }\n get toucheds() {\n return controlsAllChecked(this.controls, 'touched');\n }\n get untouched() {\n return !this.touched;\n }\n get untoucheds() {\n return !this.toucheds;\n }\n get dirty() {\n return controlsPartialChecked(this.controls, 'dirty');\n }\n get dirties() {\n return controlsAllChecked(this.controls, 'dirty');\n }\n get pristine() {\n return !this.dirty;\n }\n get pristines() {\n return this.dirties;\n }\n get valid() {\n return this._valid && controlsAllChecked(this.controls, 'valid');\n }\n get invalid() {\n return !this.valid;\n }\n get value() {\n return controlsToValue(this.controls);\n }\n get errors() {\n return this._errors;\n }\n get error() {\n return this._error;\n }\n get wrong() {\n return this.touched && this.invalid;\n }\n reset() {\n Object.values(this.controls).forEach((control) => {\n control.reset();\n });\n }\n setValidators(validators) {\n this.validators = validators;\n this.updateValueAndValidity(this.controls, validators);\n }\n subscribe(subscriber) {\n return this.observable.subscribe(subscriber);\n }\n updateValueAndValidity(controls, validators) {\n if (validators) {\n const errors = groupIsValid({ controls, validators });\n this._errors = errors;\n this._error = errors[0];\n this._valid = errors.length === 0;\n }\n else {\n this._errors = [];\n this._error = undefined;\n this._valid = true;\n }\n }\n}\nexport function formGroup(options, validators) {\n return new FormGroup(createFormGroupOptions(options, validators));\n}\n//# sourceMappingURL=form-group.js.map","import { v4 as uuid } from 'uuid';\nimport { createFormGroupOptions } from '../arguments';\nimport { FormGroup } from '../form-group';\nexport class FormArrayGroup extends FormGroup {\n constructor(options, validators) {\n const formGroup = createFormGroupOptions(options, validators);\n super(formGroup.controls, formGroup.validators);\n this.uuid = uuid();\n this.resource = formGroup.resource;\n }\n}\nexport function formArrayGroup(options, validators) {\n return new FormArrayGroup(createFormGroupOptions(options, validators));\n}\n//# sourceMappingURL=form-array-group.js.map","import { v4 as uuid } from 'uuid';\nimport { FormControl } from '../form-control';\nimport { controlsAllChecked, controlsPartialChecked, controlsToValue } from '../helpers';\nexport class FormArrayList extends FormControl {\n constructor(valueToControls, value, validators) {\n const formList = value || [];\n super(formList, validators);\n this.valueToControls = valueToControls;\n this._controls = formList.map((value) => this.createControls(value));\n this.uuid = uuid();\n }\n get controls() {\n return this._controls;\n }\n get touched() {\n return this.controls.reduce((valid, controls) => valid && controlsPartialChecked(controls, 'touched'), true);\n }\n get dirty() {\n return this.controls.reduce((valid, controls) => valid && controlsPartialChecked(controls, 'dirty'), true);\n }\n get valid() {\n return (this._valid &&\n this.controls.reduce((valid, controls) => valid && controlsAllChecked(controls, 'valid'), true));\n }\n get value() {\n return this.controls.map((controls) => controlsToValue(controls));\n }\n setValue(values) {\n this._controls = values.map((value) => this.createControls(value));\n }\n push(controls) {\n this._controls = this._controls.concat([controls]);\n }\n remove(controls) {\n this._controls = this._controls.filter((_controls) => _controls !== controls);\n }\n createControls(value) {\n const controls = this.valueToControls(value);\n Object.values(controls).forEach((control) => {\n control.subscribe(() => {\n this.updateValueAndValidity(this.value, this.validators);\n this.observable.next(this.value);\n });\n });\n return controls;\n }\n}\nexport function formArrayList(valueToControl, value, validators) {\n return new FormArrayList(valueToControl, value, validators);\n}\n//# sourceMappingURL=form-array-list.js.map","import { observable } from '@rolster/commons';\nimport { createFormArrayOptions } from '../arguments';\nimport { arrayIsValid, groupAllChecked, groupPartialChecked, hasError, someErrors } from '../helpers';\nexport class FormArray {\n constructor(options, validators) {\n this._groups = [];\n this._valid = true;\n this._disabled = false;\n this._errors = [];\n const formArray = createFormArrayOptions(options, validators);\n this.unsusbcriptions = new Map();\n this._map = new Map();\n this.defaultValue = formArray.groups;\n this.validators = formArray.validators;\n this.refresh(this.defaultValue);\n this.observable = observable(this.value);\n formArray.groups?.forEach((group) => {\n this.subscription(group);\n });\n }\n get groups() {\n return this._groups;\n }\n get controls() {\n return this.groups.map(({ controls }) => controls);\n }\n get touched() {\n return groupPartialChecked(this.groups, 'touched');\n }\n get toucheds() {\n return groupAllChecked(this.groups, 'toucheds');\n }\n get untouched() {\n return !this.touched;\n }\n get untoucheds() {\n return !this.toucheds;\n }\n get dirty() {\n return groupPartialChecked(this.groups, 'dirty');\n }\n get dirties() {\n return groupAllChecked(this.groups, 'dirties');\n }\n get pristine() {\n return !this.dirty;\n }\n get pristines() {\n return !this.dirties;\n }\n get disabled() {\n return this._disabled;\n }\n get enabled() {\n return !this._disabled;\n }\n get valid() {\n return this._valid && groupAllChecked(this.groups, 'valid');\n }\n get invalid() {\n return !this._valid;\n }\n get value() {\n return this.groups.map(({ value: state }) => state);\n }\n get error() {\n return this._error;\n }\n get errors() {\n return this._errors;\n }\n get wrong() {\n return this.touched && this.invalid;\n }\n hasError(key) {\n return hasError(this.errors, key);\n }\n someErrors(keys) {\n return someErrors(this.errors, keys);\n }\n reset() {\n this.refresh(this.defaultValue);\n }\n disable() {\n this._disabled = true;\n }\n enable() {\n this._disabled = false;\n }\n findByUuid(uuid) {\n return this._map.get(uuid);\n }\n push(group) {\n this.subscription(group);\n this.refresh([...this.groups, group]);\n }\n merge(groups) {\n groups.forEach((group) => {\n this.subscription(group);\n });\n this.refresh([...this.groups, ...groups]);\n }\n setDefaultValue(groups) {\n this.defaultValue = groups;\n this.setValue(groups);\n }\n setValue(groups) {\n this._groups.forEach(({ uuid }) => {\n this.unsusbcriptions.delete(uuid);\n });\n groups.forEach((group) => {\n this.subscription(group);\n });\n this.refresh(groups); // Update groups\n }\n remove(group) {\n this.refresh(this.groups.filter((_group) => _group.uuid !== group.uuid));\n }\n setValidators(validators) {\n this.validators = validators;\n this.updateValidityStatus(this.groups, validators);\n }\n subscribe(subscriber) {\n return this.observable.subscribe(subscriber);\n }\n subscription(group) {\n const unsusbcription = group.subscribe(() => {\n this.updateValidityStatus(this.groups, this.validators);\n });\n this.unsusbcriptions.set(group.uuid, unsusbcription);\n }\n updateValidityStatus(groups, validators) {\n if (validators) {\n const errors = arrayIsValid({ groups, validators });\n this._errors = errors;\n this._error = errors[0];\n this._valid = errors.length === 0;\n }\n else {\n this._valid = true;\n this._errors = [];\n this._error = undefined;\n }\n }\n refresh(_groups) {\n this._groups = _groups || [];\n this._map.clear();\n this._groups.forEach((group) => {\n this._map.set(group.uuid, group);\n });\n this.updateValidityStatus(this._groups, this.validators);\n }\n}\nexport function formArray(options, validators) {\n return new FormArray(createFormArrayOptions(options, validators));\n}\n//# sourceMappingURL=form-array.js.map"],"names":["uuid"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../esm/form-control/form-control.helper.js","../esm/form-array/form-array.helper.js","../esm/form-group/form-group.helper.js","../esm/helpers.js","../esm/form-control/form-control.js","../esm/form-array/form-array-control.js","../esm/form-group/form-group.js","../esm/form-array/form-array-group.js","../esm/form-array/form-array-list.js","../esm/form-array/form-array.js"],"sourcesContent":["function valueIsControlOptions(options) {\n return (typeof options === 'object' &&\n ('value' in options || 'validators' in options));\n}\nexport function createFormControlOptions(...argsOptions) {\n const [options, validators] = argsOptions;\n if (!options) {\n return { value: options, validators };\n }\n if (!validators && valueIsControlOptions(options)) {\n return options;\n }\n return {\n value: options,\n validators\n };\n}\nexport const formControlIsValid = ({ value, validators }) => {\n return validators.reduce((errors, validator) => {\n const error = validator(value);\n if (error) {\n errors.push(error);\n }\n return errors;\n }, []);\n};\n//# sourceMappingURL=form-control.helper.js.map","import { parseBoolean } from '@rolster/commons';\nfunction valueIsArrayOptions(options) {\n return (typeof options === 'object' &&\n ('groups' in options || 'validators' in options));\n}\nexport function createFormArrayOptions(...argsOptions) {\n const [options, validators] = argsOptions;\n if (!options) {\n return { groups: options, validators };\n }\n if (!validators && valueIsArrayOptions(options)) {\n return options;\n }\n return {\n groups: options,\n validators\n };\n}\nexport const formArrayIsValid = ({ groups, validators }) => {\n return validators.reduce((errors, validator) => {\n const error = validator(groups);\n if (error) {\n errors.push(error);\n }\n return errors;\n }, []);\n};\nexport function verifyAllTrueInGroups(groups, key) {\n return groups.reduce((value, group) => value && parseBoolean(group[key]), true);\n}\nexport function verifyAnyTrueInGroups(groups, key) {\n return groups.reduce((value, group) => value || parseBoolean(group[key]), false);\n}\n//# sourceMappingURL=form-array.helper.js.map","import { parseBoolean } from '@rolster/commons';\nfunction valueIsGroupOptions(options) {\n return typeof options === 'object' && 'controls' in options;\n}\nexport function createFormGroupOptions(...argsOptions) {\n const [options, validators] = argsOptions;\n if (!validators && valueIsGroupOptions(options)) {\n return options;\n }\n return {\n controls: options,\n validators\n };\n}\nexport const formGroupIsValid = ({ controls, validators }) => {\n return validators.reduce((errors, validator) => {\n const error = validator(controls);\n if (error) {\n errors.push(error);\n }\n return errors;\n }, []);\n};\nexport const controlsToValue = (controls) => {\n return Object.entries(controls).reduce((result, [key, { value }]) => {\n result[key] = value;\n return result;\n }, {});\n};\nexport const verifyAllTrueInControls = (controls, key) => {\n return Object.values(controls).reduce((value, control) => control.disabled ? value : value && parseBoolean(control[key]), true);\n};\nexport const verifyAnyTrueInControls = (controls, key) => {\n return Object.values(controls).reduce((value, control) => control.disabled ? value : value || parseBoolean(control[key]), false);\n};\n//# sourceMappingURL=form-group.helper.js.map","function reduceErrors(errors) {\n return errors.reduce((keys, { id }) => [...keys, id], []);\n}\nexport function hasError(errors, key) {\n return reduceErrors(errors).includes(key);\n}\nexport function someErrors(errors, keys) {\n return reduceErrors(errors).some((key) => keys.includes(key));\n}\nexport function reduceControlsToArray(controls, key) {\n return Object.values(controls).map((control) => control[key]);\n}\nexport function reduceGroupToArray(group, key) {\n return reduceControlsToArray(group.controls, key);\n}\nexport * from './form-array/form-array.helper';\nexport * from './form-control/form-control.helper';\nexport * from './form-group/form-group.helper';\n//# sourceMappingURL=helpers.js.map","import { observable } from '@rolster/commons';\nimport { hasError, someErrors } from '../helpers';\nimport { formControlIsValid, createFormControlOptions } from './form-control.helper';\nexport class FormControl {\n constructor(options, validators) {\n this._focused = false;\n this._touched = false;\n this._dirty = false;\n this._disabled = false;\n this._valid = true;\n this._errors = [];\n const formControl = createFormControlOptions(options, validators);\n this.observable = observable(formControl.value);\n this.defaultValue = formControl.value;\n this.validators = formControl.validators;\n this._value = formControl.value;\n this.updateValueAndValidity(formControl.value, formControl.validators);\n }\n get focused() {\n return this._focused;\n }\n get unfocused() {\n return !this._focused;\n }\n get touched() {\n return this._touched;\n }\n get untouched() {\n return !this._touched;\n }\n get dirty() {\n return this._dirty;\n }\n get pristine() {\n return !this._dirty;\n }\n get disabled() {\n return this._disabled;\n }\n get enabled() {\n return !this._disabled;\n }\n get valid() {\n return this._valid;\n }\n get invalid() {\n return !this._valid;\n }\n get value() {\n return this._value;\n }\n get errors() {\n return this._errors;\n }\n get error() {\n return this._error;\n }\n get wrong() {\n return this.touched && this.invalid;\n }\n hasError(key) {\n return hasError(this.errors, key);\n }\n someErrors(keys) {\n return someErrors(this.errors, keys);\n }\n reset() {\n this.refreshValue(this.defaultValue);\n this._dirty = false;\n this._touched = false;\n }\n focus() {\n this._focused = true;\n }\n blur() {\n this._focused = false;\n this._touched = true;\n }\n disable() {\n this._disabled = true;\n }\n enable() {\n this._disabled = false;\n }\n touch() {\n this._touched = true;\n }\n setDefaultValue(value) {\n this.defaultValue = value;\n this.refreshValue(value);\n }\n setStartValue(value) {\n this.refreshValue(value);\n }\n setValue(value) {\n this._dirty = true;\n this.refreshValue(value);\n }\n setValidators(validators = []) {\n this.validators = validators;\n this.updateValueAndValidity(this.value, validators);\n }\n subscribe(subscriber) {\n return this.observable.subscribe(subscriber);\n }\n updateValueAndValidity(value, validators) {\n if (validators) {\n const errors = formControlIsValid({ value, validators });\n this._error = errors[0];\n this._errors = errors;\n this._valid = errors.length === 0;\n }\n else {\n this._valid = true;\n this._error = undefined;\n this._errors = [];\n }\n }\n refreshValue(value) {\n this._value = value;\n this.updateValueAndValidity(value, this.validators);\n this.observable.next(value);\n }\n}\nexport function formControl(options, validators) {\n return new FormControl(createFormControlOptions(options, validators));\n}\n//# sourceMappingURL=form-control.js.map","import { v4 as uuid } from 'uuid';\nimport { createFormControlOptions } from '../form-control/form-control.helper';\nimport { FormControl } from '../form-control/form-control';\nexport class FormArrayControl extends FormControl {\n constructor(options, validators) {\n const formControl = createFormControlOptions(options, validators);\n super(formControl.value, formControl.validators);\n this.uuid = uuid();\n }\n}\nexport function formArrayControl(options, validators) {\n return new FormArrayControl(createFormControlOptions(options, validators));\n}\n//# sourceMappingURL=form-array-control.js.map","import { observable } from '@rolster/commons';\nimport { controlsToValue, createFormGroupOptions, formGroupIsValid, verifyAllTrueInControls, verifyAnyTrueInControls } from './form-group.helper';\nexport class FormGroup {\n constructor(options, validators) {\n this._errors = [];\n this._valid = true;\n const formGroup = createFormGroupOptions(options, validators);\n this._controls = formGroup.controls;\n this.validators = formGroup.validators;\n this.updateValueAndValidity(formGroup.controls, formGroup.validators);\n this.observable = observable(this.value);\n Object.values(formGroup.controls).forEach((control) => {\n control.subscribe(() => {\n this.updateValueAndValidity(this.controls, this.validators);\n this.observable.next(this.value);\n });\n });\n }\n get controls() {\n return this._controls;\n }\n get touched() {\n return verifyAnyTrueInControls(this.controls, 'touched');\n }\n get toucheds() {\n return verifyAllTrueInControls(this.controls, 'touched');\n }\n get untouched() {\n return !this.touched;\n }\n get untoucheds() {\n return !this.toucheds;\n }\n get dirty() {\n return verifyAnyTrueInControls(this.controls, 'dirty');\n }\n get dirties() {\n return verifyAllTrueInControls(this.controls, 'dirty');\n }\n get pristine() {\n return !this.dirty;\n }\n get pristines() {\n return this.dirties;\n }\n get valid() {\n return this._valid && verifyAllTrueInControls(this.controls, 'valid');\n }\n get invalid() {\n return !this.valid;\n }\n get value() {\n return controlsToValue(this.controls);\n }\n get errors() {\n return this._errors;\n }\n get error() {\n return this._error;\n }\n get wrong() {\n return this.touched && this.invalid;\n }\n reset() {\n Object.values(this.controls).forEach((control) => {\n control.reset();\n });\n }\n setValidators(validators) {\n this.validators = validators;\n this.updateValueAndValidity(this.controls, validators);\n }\n subscribe(subscriber) {\n return this.observable.subscribe(subscriber);\n }\n updateValueAndValidity(controls, validators) {\n if (validators) {\n const errors = formGroupIsValid({ controls, validators });\n this._errors = errors;\n this._error = errors[0];\n this._valid = errors.length === 0;\n }\n else {\n this._errors = [];\n this._error = undefined;\n this._valid = true;\n }\n }\n}\nexport function formGroup(options, validators) {\n return new FormGroup(createFormGroupOptions(options, validators));\n}\n//# sourceMappingURL=form-group.js.map","import { v4 as uuid } from 'uuid';\nimport { createFormGroupOptions } from '../form-group/form-group.helper';\nimport { FormGroup } from '../form-group/form-group';\nexport class FormArrayGroup extends FormGroup {\n constructor(options, validators) {\n const formGroup = createFormGroupOptions(options, validators);\n super(formGroup.controls, formGroup.validators);\n this.uuid = uuid();\n this.resource = formGroup.resource;\n }\n}\nexport function formArrayGroup(options, validators) {\n return new FormArrayGroup(createFormGroupOptions(options, validators));\n}\n//# sourceMappingURL=form-array-group.js.map","import { v4 as uuid } from 'uuid';\nimport { FormControl } from '../form-control/form-control';\nimport { controlsToValue, verifyAllTrueInControls, verifyAnyTrueInControls } from '../form-group/form-group.helper';\nexport class FormArrayList extends FormControl {\n constructor(valueToControls, value, validators) {\n const formValue = value || [];\n super(formValue, validators);\n this.valueToControls = valueToControls;\n this._controls = formValue.map((value) => this.createControls(value));\n this.uuid = uuid();\n }\n get controls() {\n return this._controls;\n }\n get touched() {\n return this.controls.reduce((valid, controls) => valid && verifyAnyTrueInControls(controls, 'touched'), true);\n }\n get dirty() {\n return this.controls.reduce((valid, controls) => valid && verifyAnyTrueInControls(controls, 'dirty'), true);\n }\n get valid() {\n return (this._valid &&\n this.controls.reduce((valid, controls) => valid && verifyAllTrueInControls(controls, 'valid'), true));\n }\n get value() {\n return this.controls.map((controls) => controlsToValue(controls));\n }\n setValue(values) {\n this._controls = values.map((value) => this.createControls(value));\n }\n push(controls) {\n this._controls = this._controls.concat([controls]);\n }\n remove(controls) {\n this._controls = this._controls.filter((_controls) => _controls !== controls);\n }\n createControls(value) {\n const controls = this.valueToControls(value);\n Object.values(controls).forEach((control) => {\n control.subscribe(() => {\n this.updateValueAndValidity(this.value, this.validators);\n this.observable.next(this.value);\n });\n });\n return controls;\n }\n}\nexport function formArrayList(valueToControl, value, validators) {\n return new FormArrayList(valueToControl, value, validators);\n}\n//# sourceMappingURL=form-array-list.js.map","import { observable } from '@rolster/commons';\nimport { hasError, someErrors } from '../helpers';\nimport { createFormArrayOptions, formArrayIsValid, verifyAllTrueInGroups, verifyAnyTrueInGroups } from './form-array.helper';\nexport class FormArray {\n constructor(options, validators) {\n this._groups = [];\n this._valid = true;\n this._disabled = false;\n this._errors = [];\n const formArray = createFormArrayOptions(options, validators);\n this.unsusbcriptions = new Map();\n this.map = new Map();\n this.defaultValue = formArray.groups;\n this.validators = formArray.validators;\n this.refresh(this.defaultValue);\n this.observable = observable(this.value);\n formArray.groups?.forEach((group) => {\n this.subscription(group);\n });\n }\n get groups() {\n return this._groups;\n }\n get controls() {\n return this.groups.map(({ controls }) => controls);\n }\n get touched() {\n return verifyAnyTrueInGroups(this.groups, 'touched');\n }\n get toucheds() {\n return verifyAllTrueInGroups(this.groups, 'toucheds');\n }\n get untouched() {\n return !this.touched;\n }\n get untoucheds() {\n return !this.toucheds;\n }\n get dirty() {\n return verifyAnyTrueInGroups(this.groups, 'dirty');\n }\n get dirties() {\n return verifyAllTrueInGroups(this.groups, 'dirties');\n }\n get pristine() {\n return !this.dirty;\n }\n get pristines() {\n return !this.dirties;\n }\n get disabled() {\n return this._disabled;\n }\n get enabled() {\n return !this._disabled;\n }\n get valid() {\n return this._valid && verifyAllTrueInGroups(this.groups, 'valid');\n }\n get invalid() {\n return !this._valid;\n }\n get value() {\n return this.groups.map(({ value: state }) => state);\n }\n get error() {\n return this._error;\n }\n get errors() {\n return this._errors;\n }\n get wrong() {\n return this.touched && this.invalid;\n }\n hasError(key) {\n return hasError(this.errors, key);\n }\n someErrors(keys) {\n return someErrors(this.errors, keys);\n }\n reset() {\n this.refresh(this.defaultValue);\n }\n disable() {\n this._disabled = true;\n }\n enable() {\n this._disabled = false;\n }\n findByUuid(uuid) {\n return this.map.get(uuid);\n }\n push(group) {\n this.subscription(group);\n this.refresh([...this.groups, group]);\n }\n merge(groups) {\n groups.forEach((group) => {\n this.subscription(group);\n });\n this.refresh([...this.groups, ...groups]);\n }\n setDefaultValue(groups) {\n this.defaultValue = groups;\n this.setValue(groups);\n }\n setValue(groups) {\n this._groups.forEach(({ uuid }) => {\n this.unsusbcriptions.delete(uuid);\n });\n groups.forEach((group) => {\n this.subscription(group);\n });\n this.refresh(groups); // Update groups\n }\n remove(group) {\n this.refresh(this.groups.filter((_group) => _group.uuid !== group.uuid));\n }\n setValidators(validators) {\n this.validators = validators;\n this.updateValidityStatus(this.groups, validators);\n }\n subscribe(subscriber) {\n return this.observable.subscribe(subscriber);\n }\n subscription(group) {\n const unsusbcription = group.subscribe(() => {\n this.updateValidityStatus(this.groups, this.validators);\n });\n this.unsusbcriptions.set(group.uuid, unsusbcription);\n }\n updateValidityStatus(groups, validators) {\n if (validators) {\n const errors = formArrayIsValid({ groups, validators });\n this._errors = errors;\n this._error = errors[0];\n this._valid = errors.length === 0;\n }\n else {\n this._valid = true;\n this._errors = [];\n this._error = undefined;\n }\n }\n refresh(groups) {\n this._groups = groups || [];\n this.map.clear();\n this._groups.forEach((group) => {\n this.map.set(group.uuid, group);\n });\n this.updateValidityStatus(this._groups, this.validators);\n }\n}\nexport function formArray(options, validators) {\n return new FormArray(createFormArrayOptions(options, validators));\n}\n//# sourceMappingURL=form-array.js.map"],"names":["uuid"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ValidatorFn } from '@rolster/validators';
|
|
2
|
-
import { FormControl } from '../form-control';
|
|
3
|
-
import {
|
|
2
|
+
import { FormControl } from '../form-control/form-control';
|
|
3
|
+
import { FormArrayControlOptions, ReactiveArrayControl } from './form-array-control.type';
|
|
4
4
|
type ArrayControlOptions<T> = Omit<FormArrayControlOptions<T>, 'uuid'>;
|
|
5
|
-
export declare class FormArrayControl<T = any> extends FormControl<T> implements
|
|
5
|
+
export declare class FormArrayControl<T = any> extends FormControl<T> implements ReactiveArrayControl<T> {
|
|
6
6
|
readonly uuid: string;
|
|
7
7
|
constructor();
|
|
8
8
|
constructor(options: ArrayControlOptions<T>);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { v4 as uuid } from 'uuid';
|
|
2
|
-
import { createFormControlOptions } from '../
|
|
3
|
-
import { FormControl } from '../form-control';
|
|
2
|
+
import { createFormControlOptions } from '../form-control/form-control.helper';
|
|
3
|
+
import { FormControl } from '../form-control/form-control';
|
|
4
4
|
export class FormArrayControl extends FormControl {
|
|
5
5
|
constructor(options, validators) {
|
|
6
6
|
const formControl = createFormControlOptions(options, validators);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-array-control.js","sourceRoot":"","sources":["../../../src/form-array/form-array-control.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"form-array-control.js","sourceRoot":"","sources":["../../../src/form-array/form-array-control.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAQ3D,MAAM,OAAO,gBACX,SAAQ,WAAc;IAQtB,YACE,OAAoC,EACpC,UAA6B;QAE7B,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAElE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAEjD,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AAyBD,MAAM,UAAU,gBAAgB,CAC9B,OAAoC,EACpC,UAA6B;IAE7B,OAAO,IAAI,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Observer } from '@rolster/commons';
|
|
2
|
+
import { AbstractFormControl, FormControlOptions } from '../form-control/form-control.type';
|
|
3
|
+
export interface AbstractArrayControl<T = any> extends AbstractFormControl<T> {
|
|
4
|
+
readonly uuid: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ReactiveArrayControl<T = any> extends AbstractArrayControl<T> {
|
|
7
|
+
subscribe: (subscriber: Observer<T>) => Unsubscription;
|
|
8
|
+
}
|
|
9
|
+
export interface FormArrayControlOptions<T = any> extends FormControlOptions<T> {
|
|
10
|
+
uuid: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-array-control.type.js","sourceRoot":"","sources":["../../../src/form-array/form-array-control.type.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { FormArrayControls } from './
|
|
1
|
+
import { ValidatorGroupFn } from '../form-group/form-group.type';
|
|
2
|
+
import { FormGroup } from '../form-group/form-group';
|
|
3
|
+
import { FormArrayControls, FormArrayGroupOptions, ReactiveArrayGroup } from './form-array-group.type';
|
|
4
4
|
type ArrayGroupOptions<T extends FormArrayControls> = Omit<FormArrayGroupOptions<T>, 'uuid'>;
|
|
5
|
-
export declare class FormArrayGroup<C extends FormArrayControls = FormArrayControls, R = any> extends FormGroup<C> implements
|
|
5
|
+
export declare class FormArrayGroup<C extends FormArrayControls = FormArrayControls, R = any> extends FormGroup<C> implements ReactiveArrayGroup<C> {
|
|
6
6
|
readonly uuid: string;
|
|
7
7
|
readonly resource?: R;
|
|
8
8
|
constructor(options: ArrayGroupOptions<C>);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { v4 as uuid } from 'uuid';
|
|
2
|
-
import { createFormGroupOptions } from '../
|
|
3
|
-
import { FormGroup } from '../form-group';
|
|
2
|
+
import { createFormGroupOptions } from '../form-group/form-group.helper';
|
|
3
|
+
import { FormGroup } from '../form-group/form-group';
|
|
4
4
|
export class FormArrayGroup extends FormGroup {
|
|
5
5
|
constructor(options, validators) {
|
|
6
6
|
const formGroup = createFormGroupOptions(options, validators);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-array-group.js","sourceRoot":"","sources":["../../../src/form-array/form-array-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"form-array-group.js","sourceRoot":"","sources":["../../../src/form-array/form-array-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAYrD,MAAM,OAAO,cAIX,SAAQ,SAAY;IASpB,YACE,OAAiC,EACjC,UAAkC;QAElC,MAAM,SAAS,GAAG,sBAAsB,CACtC,OAAO,EACP,UAAU,CACX,CAAC;QAEF,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAEhD,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACrC,CAAC;CACF;AASD,MAAM,UAAU,cAAc,CAC5B,OAAiC,EACjC,UAAkC;IAElC,OAAO,IAAI,cAAc,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AbstractControls, AbstractGroup, FormGroupOptions, SubscriberGroup, ValidatorGroupFn } from '../form-group/form-group.type';
|
|
2
|
+
import { AbstractArrayControl, ReactiveArrayControl } from './form-array-control.type';
|
|
3
|
+
export type AbstractArrayControls<T extends AbstractArrayControl = AbstractArrayControl> = AbstractControls<T>;
|
|
4
|
+
export type FormArrayControls<T extends ReactiveArrayControl = ReactiveArrayControl> = AbstractArrayControls<T>;
|
|
5
|
+
export type ArrayControlsValue<C extends AbstractArrayControls> = {
|
|
6
|
+
[K in keyof C]: C[K]['value'];
|
|
7
|
+
};
|
|
8
|
+
export interface AbstractArrayGroup<C extends AbstractArrayControls, R = any> extends AbstractGroup<C> {
|
|
9
|
+
setValidators: (validators: ValidatorGroupFn<C>[]) => void;
|
|
10
|
+
readonly uuid: string;
|
|
11
|
+
readonly value: ArrayControlsValue<C>;
|
|
12
|
+
resource?: R;
|
|
13
|
+
}
|
|
14
|
+
export interface ReactiveArrayGroup<C extends AbstractArrayControls, R = any> extends AbstractArrayGroup<C, R> {
|
|
15
|
+
subscribe: (subscriber: SubscriberGroup<C>) => Unsubscription;
|
|
16
|
+
}
|
|
17
|
+
export interface FormArrayGroupOptions<C extends AbstractArrayControls = AbstractArrayControls, R = any> extends FormGroupOptions<C> {
|
|
18
|
+
uuid: string;
|
|
19
|
+
resource?: R;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-array-group.type.js","sourceRoot":"","sources":["../../../src/form-array/form-array-group.type.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ValidatorFn } from '@rolster/validators';
|
|
2
|
-
import { FormControl } from '../form-control';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { FormControl } from '../form-control/form-control';
|
|
3
|
+
import { ArrayControlsValue, FormArrayControls } from './form-array-group.type';
|
|
4
|
+
import { AbstractArrayList, ArrayListValueToControls } from './form-array-list.type';
|
|
5
5
|
export declare class FormArrayList<C extends FormArrayControls = FormArrayControls> extends FormControl<ArrayControlsValue<C>[]> implements AbstractArrayList<C> {
|
|
6
6
|
private valueToControls;
|
|
7
7
|
readonly uuid: string;
|