@rolster/forms 4.0.0 → 4.1.1
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 → helpers.cjs} +1 -1
- package/dist/cjs/helpers.cjs.map +1 -0
- package/dist/cjs/{index.js → index.cjs} +7 -1
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/form-group/form-group.d.ts +1 -0
- package/dist/esm/form-group/form-group.js +6 -0
- package/dist/esm/form-group/form-group.js.map +1 -1
- package/dist/esm/form-group/form-group.type.d.ts +1 -0
- package/helpers/package.json +2 -2
- package/package.json +11 -8
- package/dist/cjs/helpers.js.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/es/helpers.js +0 -115
- package/dist/es/helpers.js.map +0 -1
- package/dist/es/index.js +0 -551
- package/dist/es/index.js.map +0 -1
|
@@ -128,4 +128,4 @@ exports.verifyAllTrueInControls = verifyAllTrueInControls;
|
|
|
128
128
|
exports.verifyAllTrueInGroups = verifyAllTrueInGroups;
|
|
129
129
|
exports.verifyAnyTrueInControls = verifyAnyTrueInControls;
|
|
130
130
|
exports.verifyAnyTrueInGroups = verifyAnyTrueInGroups;
|
|
131
|
-
//# sourceMappingURL=helpers.
|
|
131
|
+
//# sourceMappingURL=helpers.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.cjs","sources":["../esm/form-array/form-array.helper.js","../esm/form-control/form-control.helper.js","../esm/form-group/form-group.helper.js","../esm/helpers.js"],"sourcesContent":["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","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 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"],"names":["parseBoolean"],"mappings":"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"}
|
|
@@ -305,6 +305,12 @@ class FormGroup {
|
|
|
305
305
|
get wrong() {
|
|
306
306
|
return this.touched && this.invalid;
|
|
307
307
|
}
|
|
308
|
+
setValue(value) {
|
|
309
|
+
Object.entries(value).forEach(([key, valueControl]) => {
|
|
310
|
+
const formControl = this._controls[key];
|
|
311
|
+
formControl?.setValue(valueControl);
|
|
312
|
+
});
|
|
313
|
+
}
|
|
308
314
|
reset() {
|
|
309
315
|
Object.values(this.controls).forEach((control) => {
|
|
310
316
|
control.reset();
|
|
@@ -561,4 +567,4 @@ exports.formArrayGroup = formArrayGroup;
|
|
|
561
567
|
exports.formArrayList = formArrayList;
|
|
562
568
|
exports.formControl = formControl;
|
|
563
569
|
exports.formGroup = formGroup;
|
|
564
|
-
//# sourceMappingURL=index.
|
|
570
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","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 setValue(value) {\n Object.entries(value).forEach(([key, valueControl]) => {\n const formControl = this._controls[key];\n formControl?.setValue(valueControl);\n });\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":["parseBoolean","observable","uuid"],"mappings":";;;;;AAAA,SAAS,qBAAqB,CAAC,OAAO,EAAE;AACxC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AACzD,CAAC;AACM,SAAS,wBAAwB,CAAC,GAAG,WAAW,EAAE;AACzD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;AACvD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK;AAC7D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;;ACxBD,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,QAAQ,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AAC1D,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK;AAC5D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACK,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAIA,oBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpF,CAAC;AACM,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAIA,oBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrF;;AC/BA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,UAAU,IAAI,OAAO,CAAC;AAChE,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,OAAO;AACzB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK;AAC9D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACK,MAAM,eAAe,GAAG,CAAC,QAAQ,KAAK;AAC7C,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK;AACzE,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5B,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACK,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAIA,oBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpI,CAAC,CAAC;AACK,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAIA,oBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrI,CAAC;;AClCD,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AACM,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;AACzC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE;;ACLO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC1E,QAAQ,IAAI,CAAC,UAAU,GAAGC,kBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC;AAC9C,QAAQ,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;AACjD,QAAQ,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;AACxC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,EAAE;AAClB,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,GAAG,EAAE,EAAE;AACnC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE;AAC9C,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AACrE,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,YAAY,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACpC,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC9B,SAAS;AACT,KAAK;AACL,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,KAAK;AACL,CAAC;AACM,SAAS,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACjD,IAAI,OAAO,IAAI,WAAW,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC1E;;AC3HO,MAAM,gBAAgB,SAAS,WAAW,CAAC;AAClD,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC1E,QAAQ,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAGC,OAAI,EAAE,CAAC;AAC3B,KAAK;AACL,CAAC;AACM,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE;AACtD,IAAI,OAAO,IAAI,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC/E;;ACVO,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC/C,QAAQ,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,UAAU,GAAGD,kBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,QAAQ,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC/D,YAAY,OAAO,CAAC,SAAS,CAAC,MAAM;AACpC,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5E,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9E,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK;AAC/D,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACpD,YAAY,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;AAChD,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC1D,YAAY,OAAO,CAAC,KAAK,EAAE,CAAC;AAC5B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,EAAE;AAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE;AACjD,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AACtE,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACpC,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,SAAS;AACT,KAAK;AACL,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;AAC/C,IAAI,OAAO,IAAI,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACtE;;AC9FO,MAAM,cAAc,SAAS,SAAS,CAAC;AAC9C,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtE,QAAQ,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,IAAI,GAAGC,OAAI,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC3C,KAAK;AACL,CAAC;AACM,SAAS,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;AACpD,IAAI,OAAO,IAAI,cAAc,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3E;;ACVO,MAAM,aAAa,SAAS,WAAW,CAAC;AAC/C,IAAI,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE;AACpD,QAAQ,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC;AACtC,QAAQ,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AAC/C,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,IAAI,GAAGA,OAAI,EAAE,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;AACtH,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;AACpH,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,QAAQ,IAAI,CAAC,MAAM;AAC3B,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;AAClH,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,MAAM,CAAC,QAAQ,EAAE;AACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,KAAK,QAAQ,CAAC,CAAC;AACtF,KAAK;AACL,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACrD,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AACrD,YAAY,OAAO,CAAC,SAAS,CAAC,MAAM;AACpC,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACzE,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,CAAC;AACM,SAAS,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE;AACjE,IAAI,OAAO,IAAI,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAChE;;AC9CO,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;AACzC,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC/C,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAGD,kBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,QAAQ,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK;AAC7C,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,EAAE;AAClB,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,eAAe,CAAC,MAAM,EAAE;AAC5B,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AACnC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK;AAC3C,YAAY,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,EAAE;AAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM;AACrD,YAAY,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACpE,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE;AAC7C,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AACpE,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACpC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACxC,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5C,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACjE,KAAK;AACL,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;AAC/C,IAAI,OAAO,IAAI,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACtE;;;;;;;;;;;;;;;"}
|
|
@@ -26,6 +26,7 @@ export declare class FormGroup<C extends FormControls = FormControls> implements
|
|
|
26
26
|
get errors(): ValidatorError[];
|
|
27
27
|
get error(): ValidatorError | undefined;
|
|
28
28
|
get wrong(): boolean;
|
|
29
|
+
setValue(value: Partial<ControlsValue<C>>): void;
|
|
29
30
|
reset(): void;
|
|
30
31
|
setValidators(validators: ValidatorGroupFn<C>[]): void;
|
|
31
32
|
subscribe(subscriber: SubscriberGroup<C>): Unsubscription;
|
|
@@ -61,6 +61,12 @@ export class FormGroup {
|
|
|
61
61
|
get wrong() {
|
|
62
62
|
return this.touched && this.invalid;
|
|
63
63
|
}
|
|
64
|
+
setValue(value) {
|
|
65
|
+
Object.entries(value).forEach(([key, valueControl]) => {
|
|
66
|
+
const formControl = this._controls[key];
|
|
67
|
+
formControl?.setValue(valueControl);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
64
70
|
reset() {
|
|
65
71
|
Object.values(this.controls).forEach((control) => {
|
|
66
72
|
control.reset();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-group.js","sourceRoot":"","sources":["../../../src/form-group/form-group.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-group.js","sourceRoot":"","sources":["../../../src/form-group/form-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAc,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAa7B,MAAM,OAAO,SAAS;IAiBpB,YACE,OAAgC,EAChC,UAAkC;QAd5B,YAAO,GAAqB,EAAE,CAAC;QAI/B,WAAM,GAAG,IAAI,CAAC;QAYpB,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE9D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QAEvC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAEtE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpD,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;gBACrB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;IACtC,CAAC;IAEM,QAAQ,CAAC,KAAgC;QAC9C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE;YACpD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAc,CAAC,CAAC;YAEnD,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK;QACV,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/C,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,UAAiC;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAEM,SAAS,CAAC,UAA8B;QAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAEO,sBAAsB,CAC5B,QAAW,EACX,UAAkC;QAElC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YAE1D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AASD,MAAM,UAAU,SAAS,CACvB,OAAgC,EAChC,UAAkC;IAElC,OAAO,IAAI,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -25,6 +25,7 @@ export type SubscriberGroup<C extends AbstractControls = AbstractControls> = (va
|
|
|
25
25
|
export interface AbstractFormGroup<C extends AbstractControls = AbstractControls> extends AbstractGroup<C> {
|
|
26
26
|
reset: () => void;
|
|
27
27
|
setValidators: (validators: ValidatorGroupFn<C>[]) => void;
|
|
28
|
+
setValue(value: Partial<ControlsValue<C>>): void;
|
|
28
29
|
readonly value: ControlsValue<C>;
|
|
29
30
|
}
|
|
30
31
|
export interface ReactiveFormGroup<C extends AbstractControls = AbstractControls> extends AbstractFormGroup<C> {
|
package/helpers/package.json
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"name": "@rolster/forms/helpers",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"types": "../dist/esm/helpers.d.ts",
|
|
5
|
-
"main": "../dist/cjs/helpers.
|
|
5
|
+
"main": "../dist/cjs/helpers.cjs",
|
|
6
6
|
"module": "../dist/esm/helpers.js",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
9
|
"types": "../dist/esm/helpers.d.ts",
|
|
10
10
|
"node": {
|
|
11
|
-
"require": "../dist/cjs/helpers.
|
|
11
|
+
"require": "../dist/cjs/helpers.cjs",
|
|
12
12
|
"import": "../dist/esm/helpers.js"
|
|
13
13
|
},
|
|
14
14
|
"default": "../dist/esm/helpers.js"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rolster/forms",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "It implements a set of classes that allow managing the control of states of the input components of the UI.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
}
|
|
13
13
|
],
|
|
14
14
|
"types": "./dist/esm/index.d.ts",
|
|
15
|
-
"main": "./dist/cjs/index.
|
|
15
|
+
"main": "./dist/cjs/index.cjs",
|
|
16
16
|
"module": "./dist/esm/index.js",
|
|
17
17
|
"exports": {
|
|
18
18
|
".": {
|
|
19
19
|
"types": "./dist/esm/index.d.ts",
|
|
20
20
|
"node": {
|
|
21
|
-
"require": "./dist/cjs/index.
|
|
21
|
+
"require": "./dist/cjs/index.cjs",
|
|
22
22
|
"import": "./dist/esm/index.js"
|
|
23
23
|
},
|
|
24
24
|
"default": "./dist/esm/index.js"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"./helpers": {
|
|
27
27
|
"types": "./dist/esm/helpers.d.ts",
|
|
28
28
|
"node": {
|
|
29
|
-
"require": "./dist/cjs/helpers.
|
|
29
|
+
"require": "./dist/cjs/helpers.cjs",
|
|
30
30
|
"import": "./dist/esm/helpers.js"
|
|
31
31
|
},
|
|
32
32
|
"default": "./dist/esm/helpers.js"
|
|
@@ -44,17 +44,17 @@
|
|
|
44
44
|
"prepublishOnly": "npm run build"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@rolster/commons": "^4.
|
|
48
|
-
"@rolster/validators": "^3.
|
|
47
|
+
"@rolster/commons": "^4.1.0",
|
|
48
|
+
"@rolster/validators": "^3.1.0",
|
|
49
49
|
"uuid": "^13.0.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@rolster/rollup": "^
|
|
52
|
+
"@rolster/rollup": "^2.0.0",
|
|
53
53
|
"@rolster/types": "^1.1.0",
|
|
54
54
|
"@vitest/ui": "^3.2.4",
|
|
55
55
|
"jsdom": "^27.0.0",
|
|
56
56
|
"prettier": "^3.8.1",
|
|
57
|
-
"rimraf": "^
|
|
57
|
+
"rimraf": "^6.1.3",
|
|
58
58
|
"tslib": "^2.4.0",
|
|
59
59
|
"typescript": "^5.7.2",
|
|
60
60
|
"vitest": "^3.2.4"
|
|
@@ -70,5 +70,8 @@
|
|
|
70
70
|
],
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
73
|
+
},
|
|
74
|
+
"engines": {
|
|
75
|
+
"node": ">=14.13"
|
|
73
76
|
}
|
|
74
77
|
}
|
package/dist/cjs/helpers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../esm/form-array/form-array.helper.js","../esm/form-control/form-control.helper.js","../esm/form-group/form-group.helper.js","../esm/helpers.js"],"sourcesContent":["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","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 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"],"names":["parseBoolean"],"mappings":";;;;AACA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,QAAQ,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AAC1D,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACW,MAAC,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK;AAC5D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,EAAE;AACK,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAIA,oBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpF,CAAC;AACM,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAIA,oBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrF;;AChCA,SAAS,qBAAqB,CAAC,OAAO,EAAE;AACxC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AACzD,CAAC;AACM,SAAS,wBAAwB,CAAC,GAAG,WAAW,EAAE;AACzD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;AACvD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACW,MAAC,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK;AAC7D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX;;ACxBA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,UAAU,IAAI,OAAO,CAAC;AAChE,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,OAAO;AACzB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACW,MAAC,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK;AAC9D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,EAAE;AACU,MAAC,eAAe,GAAG,CAAC,QAAQ,KAAK;AAC7C,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK;AACzE,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5B,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,EAAE;AACU,MAAC,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAIA,oBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpI,EAAE;AACU,MAAC,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAIA,oBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrI;;AClCA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AACM,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;AACzC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AACM,SAAS,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE;AACrD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AACM,SAAS,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE;AAC/C,IAAI,OAAO,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACtD;;;;;;;;;;;;;;;;;;"}
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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":["parseBoolean","observable","uuid"],"mappings":";;;;;AAAA,SAAS,qBAAqB,CAAC,OAAO,EAAE;AACxC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AACzD,CAAC;AACM,SAAS,wBAAwB,CAAC,GAAG,WAAW,EAAE;AACzD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;AACvD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK;AAC7D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;;ACxBD,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,QAAQ,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AAC1D,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK;AAC5D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACK,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAIA,oBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpF,CAAC;AACM,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAIA,oBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrF;;AC/BA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,UAAU,IAAI,OAAO,CAAC;AAChE,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,OAAO;AACzB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK;AAC9D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACK,MAAM,eAAe,GAAG,CAAC,QAAQ,KAAK;AAC7C,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK;AACzE,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5B,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACK,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAIA,oBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpI,CAAC,CAAC;AACK,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAIA,oBAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrI,CAAC;;AClCD,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AACM,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;AACzC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE;;ACLO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC1E,QAAQ,IAAI,CAAC,UAAU,GAAGC,kBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC;AAC9C,QAAQ,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;AACjD,QAAQ,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;AACxC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,EAAE;AAClB,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,GAAG,EAAE,EAAE;AACnC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE;AAC9C,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AACrE,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,YAAY,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACpC,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC9B,SAAS;AACT,KAAK;AACL,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,KAAK;AACL,CAAC;AACM,SAAS,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACjD,IAAI,OAAO,IAAI,WAAW,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC1E;;AC3HO,MAAM,gBAAgB,SAAS,WAAW,CAAC;AAClD,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC1E,QAAQ,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAGC,OAAI,EAAE,CAAC;AAC3B,KAAK;AACL,CAAC;AACM,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE;AACtD,IAAI,OAAO,IAAI,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC/E;;ACVO,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC/C,QAAQ,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,UAAU,GAAGD,kBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,QAAQ,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC/D,YAAY,OAAO,CAAC,SAAS,CAAC,MAAM;AACpC,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5E,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9E,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC1D,YAAY,OAAO,CAAC,KAAK,EAAE,CAAC;AAC5B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,EAAE;AAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE;AACjD,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AACtE,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACpC,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,SAAS;AACT,KAAK;AACL,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;AAC/C,IAAI,OAAO,IAAI,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACtE;;ACxFO,MAAM,cAAc,SAAS,SAAS,CAAC;AAC9C,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtE,QAAQ,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,IAAI,GAAGC,OAAI,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC3C,KAAK;AACL,CAAC;AACM,SAAS,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;AACpD,IAAI,OAAO,IAAI,cAAc,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3E;;ACVO,MAAM,aAAa,SAAS,WAAW,CAAC;AAC/C,IAAI,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE;AACpD,QAAQ,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC;AACtC,QAAQ,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AAC/C,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,IAAI,GAAGA,OAAI,EAAE,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;AACtH,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;AACpH,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,QAAQ,IAAI,CAAC,MAAM;AAC3B,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;AAClH,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,MAAM,CAAC,QAAQ,EAAE;AACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,KAAK,QAAQ,CAAC,CAAC;AACtF,KAAK;AACL,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACrD,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AACrD,YAAY,OAAO,CAAC,SAAS,CAAC,MAAM;AACpC,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACzE,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,CAAC;AACM,SAAS,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE;AACjE,IAAI,OAAO,IAAI,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAChE;;AC9CO,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;AACzC,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC/C,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAGD,kBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,QAAQ,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK;AAC7C,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,EAAE;AAClB,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,eAAe,CAAC,MAAM,EAAE;AAC5B,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AACnC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK;AAC3C,YAAY,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,EAAE;AAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM;AACrD,YAAY,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACpE,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE;AAC7C,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AACpE,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACpC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACxC,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5C,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACjE,KAAK;AACL,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;AAC/C,IAAI,OAAO,IAAI,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACtE;;;;;;;;;;;;;;;"}
|
package/dist/es/helpers.js
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { parseBoolean } from '@rolster/commons';
|
|
2
|
-
|
|
3
|
-
function valueIsArrayOptions(options) {
|
|
4
|
-
return (typeof options === 'object' &&
|
|
5
|
-
('groups' in options || 'validators' in options));
|
|
6
|
-
}
|
|
7
|
-
function createFormArrayOptions(...argsOptions) {
|
|
8
|
-
const [options, validators] = argsOptions;
|
|
9
|
-
if (!options) {
|
|
10
|
-
return { groups: options, validators };
|
|
11
|
-
}
|
|
12
|
-
if (!validators && valueIsArrayOptions(options)) {
|
|
13
|
-
return options;
|
|
14
|
-
}
|
|
15
|
-
return {
|
|
16
|
-
groups: options,
|
|
17
|
-
validators
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
const formArrayIsValid = ({ groups, validators }) => {
|
|
21
|
-
return validators.reduce((errors, validator) => {
|
|
22
|
-
const error = validator(groups);
|
|
23
|
-
if (error) {
|
|
24
|
-
errors.push(error);
|
|
25
|
-
}
|
|
26
|
-
return errors;
|
|
27
|
-
}, []);
|
|
28
|
-
};
|
|
29
|
-
function verifyAllTrueInGroups(groups, key) {
|
|
30
|
-
return groups.reduce((value, group) => value && parseBoolean(group[key]), true);
|
|
31
|
-
}
|
|
32
|
-
function verifyAnyTrueInGroups(groups, key) {
|
|
33
|
-
return groups.reduce((value, group) => value || parseBoolean(group[key]), false);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function valueIsControlOptions(options) {
|
|
37
|
-
return (typeof options === 'object' &&
|
|
38
|
-
('value' in options || 'validators' in options));
|
|
39
|
-
}
|
|
40
|
-
function createFormControlOptions(...argsOptions) {
|
|
41
|
-
const [options, validators] = argsOptions;
|
|
42
|
-
if (!options) {
|
|
43
|
-
return { value: options, validators };
|
|
44
|
-
}
|
|
45
|
-
if (!validators && valueIsControlOptions(options)) {
|
|
46
|
-
return options;
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
value: options,
|
|
50
|
-
validators
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
const formControlIsValid = ({ value, validators }) => {
|
|
54
|
-
return validators.reduce((errors, validator) => {
|
|
55
|
-
const error = validator(value);
|
|
56
|
-
if (error) {
|
|
57
|
-
errors.push(error);
|
|
58
|
-
}
|
|
59
|
-
return errors;
|
|
60
|
-
}, []);
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
function valueIsGroupOptions(options) {
|
|
64
|
-
return typeof options === 'object' && 'controls' in options;
|
|
65
|
-
}
|
|
66
|
-
function createFormGroupOptions(...argsOptions) {
|
|
67
|
-
const [options, validators] = argsOptions;
|
|
68
|
-
if (!validators && valueIsGroupOptions(options)) {
|
|
69
|
-
return options;
|
|
70
|
-
}
|
|
71
|
-
return {
|
|
72
|
-
controls: options,
|
|
73
|
-
validators
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
const formGroupIsValid = ({ controls, validators }) => {
|
|
77
|
-
return validators.reduce((errors, validator) => {
|
|
78
|
-
const error = validator(controls);
|
|
79
|
-
if (error) {
|
|
80
|
-
errors.push(error);
|
|
81
|
-
}
|
|
82
|
-
return errors;
|
|
83
|
-
}, []);
|
|
84
|
-
};
|
|
85
|
-
const controlsToValue = (controls) => {
|
|
86
|
-
return Object.entries(controls).reduce((result, [key, { value }]) => {
|
|
87
|
-
result[key] = value;
|
|
88
|
-
return result;
|
|
89
|
-
}, {});
|
|
90
|
-
};
|
|
91
|
-
const verifyAllTrueInControls = (controls, key) => {
|
|
92
|
-
return Object.values(controls).reduce((value, control) => control.disabled ? value : value && parseBoolean(control[key]), true);
|
|
93
|
-
};
|
|
94
|
-
const verifyAnyTrueInControls = (controls, key) => {
|
|
95
|
-
return Object.values(controls).reduce((value, control) => control.disabled ? value : value || parseBoolean(control[key]), false);
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
function reduceErrors(errors) {
|
|
99
|
-
return errors.reduce((keys, { id }) => [...keys, id], []);
|
|
100
|
-
}
|
|
101
|
-
function hasError(errors, key) {
|
|
102
|
-
return reduceErrors(errors).includes(key);
|
|
103
|
-
}
|
|
104
|
-
function someErrors(errors, keys) {
|
|
105
|
-
return reduceErrors(errors).some((key) => keys.includes(key));
|
|
106
|
-
}
|
|
107
|
-
function reduceControlsToArray(controls, key) {
|
|
108
|
-
return Object.values(controls).map((control) => control[key]);
|
|
109
|
-
}
|
|
110
|
-
function reduceGroupToArray(group, key) {
|
|
111
|
-
return reduceControlsToArray(group.controls, key);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
export { controlsToValue, createFormArrayOptions, createFormControlOptions, createFormGroupOptions, formArrayIsValid, formControlIsValid, formGroupIsValid, hasError, reduceControlsToArray, reduceGroupToArray, someErrors, verifyAllTrueInControls, verifyAllTrueInGroups, verifyAnyTrueInControls, verifyAnyTrueInGroups };
|
|
115
|
-
//# sourceMappingURL=helpers.js.map
|
package/dist/es/helpers.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../esm/form-array/form-array.helper.js","../esm/form-control/form-control.helper.js","../esm/form-group/form-group.helper.js","../esm/helpers.js"],"sourcesContent":["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","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 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"],"names":[],"mappings":";;AACA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,QAAQ,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AAC1D,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACW,MAAC,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK;AAC5D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,EAAE;AACK,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpF,CAAC;AACM,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrF;;AChCA,SAAS,qBAAqB,CAAC,OAAO,EAAE;AACxC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AACzD,CAAC;AACM,SAAS,wBAAwB,CAAC,GAAG,WAAW,EAAE;AACzD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;AACvD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACW,MAAC,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK;AAC7D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX;;ACxBA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,UAAU,IAAI,OAAO,CAAC;AAChE,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,OAAO;AACzB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACW,MAAC,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK;AAC9D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,EAAE;AACU,MAAC,eAAe,GAAG,CAAC,QAAQ,KAAK;AAC7C,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK;AACzE,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5B,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,EAAE;AACU,MAAC,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpI,EAAE;AACU,MAAC,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrI;;AClCA,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AACM,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;AACzC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AACM,SAAS,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE;AACrD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,CAAC;AACM,SAAS,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE;AAC/C,IAAI,OAAO,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACtD;;;;"}
|
package/dist/es/index.js
DELETED
|
@@ -1,551 +0,0 @@
|
|
|
1
|
-
import { v4 } from 'uuid';
|
|
2
|
-
import { parseBoolean, observable } from '@rolster/commons';
|
|
3
|
-
|
|
4
|
-
function valueIsControlOptions(options) {
|
|
5
|
-
return (typeof options === 'object' &&
|
|
6
|
-
('value' in options || 'validators' in options));
|
|
7
|
-
}
|
|
8
|
-
function createFormControlOptions(...argsOptions) {
|
|
9
|
-
const [options, validators] = argsOptions;
|
|
10
|
-
if (!options) {
|
|
11
|
-
return { value: options, validators };
|
|
12
|
-
}
|
|
13
|
-
if (!validators && valueIsControlOptions(options)) {
|
|
14
|
-
return options;
|
|
15
|
-
}
|
|
16
|
-
return {
|
|
17
|
-
value: options,
|
|
18
|
-
validators
|
|
19
|
-
};
|
|
20
|
-
}
|
|
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));
|
|
34
|
-
}
|
|
35
|
-
function createFormArrayOptions(...argsOptions) {
|
|
36
|
-
const [options, validators] = argsOptions;
|
|
37
|
-
if (!options) {
|
|
38
|
-
return { groups: options, validators };
|
|
39
|
-
}
|
|
40
|
-
if (!validators && valueIsArrayOptions(options)) {
|
|
41
|
-
return options;
|
|
42
|
-
}
|
|
43
|
-
return {
|
|
44
|
-
groups: options,
|
|
45
|
-
validators
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
const formArrayIsValid = ({ groups, validators }) => {
|
|
49
|
-
return validators.reduce((errors, validator) => {
|
|
50
|
-
const error = validator(groups);
|
|
51
|
-
if (error) {
|
|
52
|
-
errors.push(error);
|
|
53
|
-
}
|
|
54
|
-
return errors;
|
|
55
|
-
}, []);
|
|
56
|
-
};
|
|
57
|
-
function verifyAllTrueInGroups(groups, key) {
|
|
58
|
-
return groups.reduce((value, group) => value && parseBoolean(group[key]), true);
|
|
59
|
-
}
|
|
60
|
-
function verifyAnyTrueInGroups(groups, key) {
|
|
61
|
-
return groups.reduce((value, group) => value || parseBoolean(group[key]), false);
|
|
62
|
-
}
|
|
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 }) => {
|
|
78
|
-
return validators.reduce((errors, validator) => {
|
|
79
|
-
const error = validator(controls);
|
|
80
|
-
if (error) {
|
|
81
|
-
errors.push(error);
|
|
82
|
-
}
|
|
83
|
-
return errors;
|
|
84
|
-
}, []);
|
|
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
|
-
}
|
|
102
|
-
function hasError(errors, key) {
|
|
103
|
-
return reduceErrors(errors).includes(key);
|
|
104
|
-
}
|
|
105
|
-
function someErrors(errors, keys) {
|
|
106
|
-
return reduceErrors(errors).some((key) => keys.includes(key));
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
class FormControl {
|
|
110
|
-
constructor(options, validators) {
|
|
111
|
-
this._focused = false;
|
|
112
|
-
this._touched = false;
|
|
113
|
-
this._dirty = false;
|
|
114
|
-
this._disabled = false;
|
|
115
|
-
this._valid = true;
|
|
116
|
-
this._errors = [];
|
|
117
|
-
const formControl = createFormControlOptions(options, validators);
|
|
118
|
-
this.observable = observable(formControl.value);
|
|
119
|
-
this.defaultValue = formControl.value;
|
|
120
|
-
this.validators = formControl.validators;
|
|
121
|
-
this._value = formControl.value;
|
|
122
|
-
this.updateValueAndValidity(formControl.value, formControl.validators);
|
|
123
|
-
}
|
|
124
|
-
get focused() {
|
|
125
|
-
return this._focused;
|
|
126
|
-
}
|
|
127
|
-
get unfocused() {
|
|
128
|
-
return !this._focused;
|
|
129
|
-
}
|
|
130
|
-
get touched() {
|
|
131
|
-
return this._touched;
|
|
132
|
-
}
|
|
133
|
-
get untouched() {
|
|
134
|
-
return !this._touched;
|
|
135
|
-
}
|
|
136
|
-
get dirty() {
|
|
137
|
-
return this._dirty;
|
|
138
|
-
}
|
|
139
|
-
get pristine() {
|
|
140
|
-
return !this._dirty;
|
|
141
|
-
}
|
|
142
|
-
get disabled() {
|
|
143
|
-
return this._disabled;
|
|
144
|
-
}
|
|
145
|
-
get enabled() {
|
|
146
|
-
return !this._disabled;
|
|
147
|
-
}
|
|
148
|
-
get valid() {
|
|
149
|
-
return this._valid;
|
|
150
|
-
}
|
|
151
|
-
get invalid() {
|
|
152
|
-
return !this._valid;
|
|
153
|
-
}
|
|
154
|
-
get value() {
|
|
155
|
-
return this._value;
|
|
156
|
-
}
|
|
157
|
-
get errors() {
|
|
158
|
-
return this._errors;
|
|
159
|
-
}
|
|
160
|
-
get error() {
|
|
161
|
-
return this._error;
|
|
162
|
-
}
|
|
163
|
-
get wrong() {
|
|
164
|
-
return this.touched && this.invalid;
|
|
165
|
-
}
|
|
166
|
-
hasError(key) {
|
|
167
|
-
return hasError(this.errors, key);
|
|
168
|
-
}
|
|
169
|
-
someErrors(keys) {
|
|
170
|
-
return someErrors(this.errors, keys);
|
|
171
|
-
}
|
|
172
|
-
reset() {
|
|
173
|
-
this.refreshValue(this.defaultValue);
|
|
174
|
-
this._dirty = false;
|
|
175
|
-
this._touched = false;
|
|
176
|
-
}
|
|
177
|
-
focus() {
|
|
178
|
-
this._focused = true;
|
|
179
|
-
}
|
|
180
|
-
blur() {
|
|
181
|
-
this._focused = false;
|
|
182
|
-
this._touched = true;
|
|
183
|
-
}
|
|
184
|
-
disable() {
|
|
185
|
-
this._disabled = true;
|
|
186
|
-
}
|
|
187
|
-
enable() {
|
|
188
|
-
this._disabled = false;
|
|
189
|
-
}
|
|
190
|
-
touch() {
|
|
191
|
-
this._touched = true;
|
|
192
|
-
}
|
|
193
|
-
setDefaultValue(value) {
|
|
194
|
-
this.defaultValue = value;
|
|
195
|
-
this.refreshValue(value);
|
|
196
|
-
}
|
|
197
|
-
setStartValue(value) {
|
|
198
|
-
this.refreshValue(value);
|
|
199
|
-
}
|
|
200
|
-
setValue(value) {
|
|
201
|
-
this._dirty = true;
|
|
202
|
-
this.refreshValue(value);
|
|
203
|
-
}
|
|
204
|
-
setValidators(validators = []) {
|
|
205
|
-
this.validators = validators;
|
|
206
|
-
this.updateValueAndValidity(this.value, validators);
|
|
207
|
-
}
|
|
208
|
-
subscribe(subscriber) {
|
|
209
|
-
return this.observable.subscribe(subscriber);
|
|
210
|
-
}
|
|
211
|
-
updateValueAndValidity(value, validators) {
|
|
212
|
-
if (validators) {
|
|
213
|
-
const errors = formControlIsValid({ value, validators });
|
|
214
|
-
this._error = errors[0];
|
|
215
|
-
this._errors = errors;
|
|
216
|
-
this._valid = errors.length === 0;
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
this._valid = true;
|
|
220
|
-
this._error = undefined;
|
|
221
|
-
this._errors = [];
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
refreshValue(value) {
|
|
225
|
-
this._value = value;
|
|
226
|
-
this.updateValueAndValidity(value, this.validators);
|
|
227
|
-
this.observable.next(value);
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
function formControl(options, validators) {
|
|
231
|
-
return new FormControl(createFormControlOptions(options, validators));
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
class FormArrayControl extends FormControl {
|
|
235
|
-
constructor(options, validators) {
|
|
236
|
-
const formControl = createFormControlOptions(options, validators);
|
|
237
|
-
super(formControl.value, formControl.validators);
|
|
238
|
-
this.uuid = v4();
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
function formArrayControl(options, validators) {
|
|
242
|
-
return new FormArrayControl(createFormControlOptions(options, validators));
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
class FormGroup {
|
|
246
|
-
constructor(options, validators) {
|
|
247
|
-
this._errors = [];
|
|
248
|
-
this._valid = true;
|
|
249
|
-
const formGroup = createFormGroupOptions(options, validators);
|
|
250
|
-
this._controls = formGroup.controls;
|
|
251
|
-
this.validators = formGroup.validators;
|
|
252
|
-
this.updateValueAndValidity(formGroup.controls, formGroup.validators);
|
|
253
|
-
this.observable = observable(this.value);
|
|
254
|
-
Object.values(formGroup.controls).forEach((control) => {
|
|
255
|
-
control.subscribe(() => {
|
|
256
|
-
this.updateValueAndValidity(this.controls, this.validators);
|
|
257
|
-
this.observable.next(this.value);
|
|
258
|
-
});
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
get controls() {
|
|
262
|
-
return this._controls;
|
|
263
|
-
}
|
|
264
|
-
get touched() {
|
|
265
|
-
return verifyAnyTrueInControls(this.controls, 'touched');
|
|
266
|
-
}
|
|
267
|
-
get toucheds() {
|
|
268
|
-
return verifyAllTrueInControls(this.controls, 'touched');
|
|
269
|
-
}
|
|
270
|
-
get untouched() {
|
|
271
|
-
return !this.touched;
|
|
272
|
-
}
|
|
273
|
-
get untoucheds() {
|
|
274
|
-
return !this.toucheds;
|
|
275
|
-
}
|
|
276
|
-
get dirty() {
|
|
277
|
-
return verifyAnyTrueInControls(this.controls, 'dirty');
|
|
278
|
-
}
|
|
279
|
-
get dirties() {
|
|
280
|
-
return verifyAllTrueInControls(this.controls, 'dirty');
|
|
281
|
-
}
|
|
282
|
-
get pristine() {
|
|
283
|
-
return !this.dirty;
|
|
284
|
-
}
|
|
285
|
-
get pristines() {
|
|
286
|
-
return this.dirties;
|
|
287
|
-
}
|
|
288
|
-
get valid() {
|
|
289
|
-
return this._valid && verifyAllTrueInControls(this.controls, 'valid');
|
|
290
|
-
}
|
|
291
|
-
get invalid() {
|
|
292
|
-
return !this.valid;
|
|
293
|
-
}
|
|
294
|
-
get value() {
|
|
295
|
-
return controlsToValue(this.controls);
|
|
296
|
-
}
|
|
297
|
-
get errors() {
|
|
298
|
-
return this._errors;
|
|
299
|
-
}
|
|
300
|
-
get error() {
|
|
301
|
-
return this._error;
|
|
302
|
-
}
|
|
303
|
-
get wrong() {
|
|
304
|
-
return this.touched && this.invalid;
|
|
305
|
-
}
|
|
306
|
-
reset() {
|
|
307
|
-
Object.values(this.controls).forEach((control) => {
|
|
308
|
-
control.reset();
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
setValidators(validators) {
|
|
312
|
-
this.validators = validators;
|
|
313
|
-
this.updateValueAndValidity(this.controls, validators);
|
|
314
|
-
}
|
|
315
|
-
subscribe(subscriber) {
|
|
316
|
-
return this.observable.subscribe(subscriber);
|
|
317
|
-
}
|
|
318
|
-
updateValueAndValidity(controls, validators) {
|
|
319
|
-
if (validators) {
|
|
320
|
-
const errors = formGroupIsValid({ controls, validators });
|
|
321
|
-
this._errors = errors;
|
|
322
|
-
this._error = errors[0];
|
|
323
|
-
this._valid = errors.length === 0;
|
|
324
|
-
}
|
|
325
|
-
else {
|
|
326
|
-
this._errors = [];
|
|
327
|
-
this._error = undefined;
|
|
328
|
-
this._valid = true;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
function formGroup(options, validators) {
|
|
333
|
-
return new FormGroup(createFormGroupOptions(options, validators));
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
class FormArrayGroup extends FormGroup {
|
|
337
|
-
constructor(options, validators) {
|
|
338
|
-
const formGroup = createFormGroupOptions(options, validators);
|
|
339
|
-
super(formGroup.controls, formGroup.validators);
|
|
340
|
-
this.uuid = v4();
|
|
341
|
-
this.resource = formGroup.resource;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
function formArrayGroup(options, validators) {
|
|
345
|
-
return new FormArrayGroup(createFormGroupOptions(options, validators));
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
class FormArrayList extends FormControl {
|
|
349
|
-
constructor(valueToControls, value, validators) {
|
|
350
|
-
const formValue = value || [];
|
|
351
|
-
super(formValue, validators);
|
|
352
|
-
this.valueToControls = valueToControls;
|
|
353
|
-
this._controls = formValue.map((value) => this.createControls(value));
|
|
354
|
-
this.uuid = v4();
|
|
355
|
-
}
|
|
356
|
-
get controls() {
|
|
357
|
-
return this._controls;
|
|
358
|
-
}
|
|
359
|
-
get touched() {
|
|
360
|
-
return this.controls.reduce((valid, controls) => valid && verifyAnyTrueInControls(controls, 'touched'), true);
|
|
361
|
-
}
|
|
362
|
-
get dirty() {
|
|
363
|
-
return this.controls.reduce((valid, controls) => valid && verifyAnyTrueInControls(controls, 'dirty'), true);
|
|
364
|
-
}
|
|
365
|
-
get valid() {
|
|
366
|
-
return (this._valid &&
|
|
367
|
-
this.controls.reduce((valid, controls) => valid && verifyAllTrueInControls(controls, 'valid'), true));
|
|
368
|
-
}
|
|
369
|
-
get value() {
|
|
370
|
-
return this.controls.map((controls) => controlsToValue(controls));
|
|
371
|
-
}
|
|
372
|
-
setValue(values) {
|
|
373
|
-
this._controls = values.map((value) => this.createControls(value));
|
|
374
|
-
}
|
|
375
|
-
push(controls) {
|
|
376
|
-
this._controls = this._controls.concat([controls]);
|
|
377
|
-
}
|
|
378
|
-
remove(controls) {
|
|
379
|
-
this._controls = this._controls.filter((_controls) => _controls !== controls);
|
|
380
|
-
}
|
|
381
|
-
createControls(value) {
|
|
382
|
-
const controls = this.valueToControls(value);
|
|
383
|
-
Object.values(controls).forEach((control) => {
|
|
384
|
-
control.subscribe(() => {
|
|
385
|
-
this.updateValueAndValidity(this.value, this.validators);
|
|
386
|
-
this.observable.next(this.value);
|
|
387
|
-
});
|
|
388
|
-
});
|
|
389
|
-
return controls;
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
function formArrayList(valueToControl, value, validators) {
|
|
393
|
-
return new FormArrayList(valueToControl, value, validators);
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
class FormArray {
|
|
397
|
-
constructor(options, validators) {
|
|
398
|
-
this._groups = [];
|
|
399
|
-
this._valid = true;
|
|
400
|
-
this._disabled = false;
|
|
401
|
-
this._errors = [];
|
|
402
|
-
const formArray = createFormArrayOptions(options, validators);
|
|
403
|
-
this.unsusbcriptions = new Map();
|
|
404
|
-
this.map = new Map();
|
|
405
|
-
this.defaultValue = formArray.groups;
|
|
406
|
-
this.validators = formArray.validators;
|
|
407
|
-
this.refresh(this.defaultValue);
|
|
408
|
-
this.observable = observable(this.value);
|
|
409
|
-
formArray.groups?.forEach((group) => {
|
|
410
|
-
this.subscription(group);
|
|
411
|
-
});
|
|
412
|
-
}
|
|
413
|
-
get groups() {
|
|
414
|
-
return this._groups;
|
|
415
|
-
}
|
|
416
|
-
get controls() {
|
|
417
|
-
return this.groups.map(({ controls }) => controls);
|
|
418
|
-
}
|
|
419
|
-
get touched() {
|
|
420
|
-
return verifyAnyTrueInGroups(this.groups, 'touched');
|
|
421
|
-
}
|
|
422
|
-
get toucheds() {
|
|
423
|
-
return verifyAllTrueInGroups(this.groups, 'toucheds');
|
|
424
|
-
}
|
|
425
|
-
get untouched() {
|
|
426
|
-
return !this.touched;
|
|
427
|
-
}
|
|
428
|
-
get untoucheds() {
|
|
429
|
-
return !this.toucheds;
|
|
430
|
-
}
|
|
431
|
-
get dirty() {
|
|
432
|
-
return verifyAnyTrueInGroups(this.groups, 'dirty');
|
|
433
|
-
}
|
|
434
|
-
get dirties() {
|
|
435
|
-
return verifyAllTrueInGroups(this.groups, 'dirties');
|
|
436
|
-
}
|
|
437
|
-
get pristine() {
|
|
438
|
-
return !this.dirty;
|
|
439
|
-
}
|
|
440
|
-
get pristines() {
|
|
441
|
-
return !this.dirties;
|
|
442
|
-
}
|
|
443
|
-
get disabled() {
|
|
444
|
-
return this._disabled;
|
|
445
|
-
}
|
|
446
|
-
get enabled() {
|
|
447
|
-
return !this._disabled;
|
|
448
|
-
}
|
|
449
|
-
get valid() {
|
|
450
|
-
return this._valid && verifyAllTrueInGroups(this.groups, 'valid');
|
|
451
|
-
}
|
|
452
|
-
get invalid() {
|
|
453
|
-
return !this._valid;
|
|
454
|
-
}
|
|
455
|
-
get value() {
|
|
456
|
-
return this.groups.map(({ value: state }) => state);
|
|
457
|
-
}
|
|
458
|
-
get error() {
|
|
459
|
-
return this._error;
|
|
460
|
-
}
|
|
461
|
-
get errors() {
|
|
462
|
-
return this._errors;
|
|
463
|
-
}
|
|
464
|
-
get wrong() {
|
|
465
|
-
return this.touched && this.invalid;
|
|
466
|
-
}
|
|
467
|
-
hasError(key) {
|
|
468
|
-
return hasError(this.errors, key);
|
|
469
|
-
}
|
|
470
|
-
someErrors(keys) {
|
|
471
|
-
return someErrors(this.errors, keys);
|
|
472
|
-
}
|
|
473
|
-
reset() {
|
|
474
|
-
this.refresh(this.defaultValue);
|
|
475
|
-
}
|
|
476
|
-
disable() {
|
|
477
|
-
this._disabled = true;
|
|
478
|
-
}
|
|
479
|
-
enable() {
|
|
480
|
-
this._disabled = false;
|
|
481
|
-
}
|
|
482
|
-
findByUuid(uuid) {
|
|
483
|
-
return this.map.get(uuid);
|
|
484
|
-
}
|
|
485
|
-
push(group) {
|
|
486
|
-
this.subscription(group);
|
|
487
|
-
this.refresh([...this.groups, group]);
|
|
488
|
-
}
|
|
489
|
-
merge(groups) {
|
|
490
|
-
groups.forEach((group) => {
|
|
491
|
-
this.subscription(group);
|
|
492
|
-
});
|
|
493
|
-
this.refresh([...this.groups, ...groups]);
|
|
494
|
-
}
|
|
495
|
-
setDefaultValue(groups) {
|
|
496
|
-
this.defaultValue = groups;
|
|
497
|
-
this.setValue(groups);
|
|
498
|
-
}
|
|
499
|
-
setValue(groups) {
|
|
500
|
-
this._groups.forEach(({ uuid }) => {
|
|
501
|
-
this.unsusbcriptions.delete(uuid);
|
|
502
|
-
});
|
|
503
|
-
groups.forEach((group) => {
|
|
504
|
-
this.subscription(group);
|
|
505
|
-
});
|
|
506
|
-
this.refresh(groups); // Update groups
|
|
507
|
-
}
|
|
508
|
-
remove(group) {
|
|
509
|
-
this.refresh(this.groups.filter((_group) => _group.uuid !== group.uuid));
|
|
510
|
-
}
|
|
511
|
-
setValidators(validators) {
|
|
512
|
-
this.validators = validators;
|
|
513
|
-
this.updateValidityStatus(this.groups, validators);
|
|
514
|
-
}
|
|
515
|
-
subscribe(subscriber) {
|
|
516
|
-
return this.observable.subscribe(subscriber);
|
|
517
|
-
}
|
|
518
|
-
subscription(group) {
|
|
519
|
-
const unsusbcription = group.subscribe(() => {
|
|
520
|
-
this.updateValidityStatus(this.groups, this.validators);
|
|
521
|
-
});
|
|
522
|
-
this.unsusbcriptions.set(group.uuid, unsusbcription);
|
|
523
|
-
}
|
|
524
|
-
updateValidityStatus(groups, validators) {
|
|
525
|
-
if (validators) {
|
|
526
|
-
const errors = formArrayIsValid({ groups, validators });
|
|
527
|
-
this._errors = errors;
|
|
528
|
-
this._error = errors[0];
|
|
529
|
-
this._valid = errors.length === 0;
|
|
530
|
-
}
|
|
531
|
-
else {
|
|
532
|
-
this._valid = true;
|
|
533
|
-
this._errors = [];
|
|
534
|
-
this._error = undefined;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
refresh(groups) {
|
|
538
|
-
this._groups = groups || [];
|
|
539
|
-
this.map.clear();
|
|
540
|
-
this._groups.forEach((group) => {
|
|
541
|
-
this.map.set(group.uuid, group);
|
|
542
|
-
});
|
|
543
|
-
this.updateValidityStatus(this._groups, this.validators);
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
function formArray(options, validators) {
|
|
547
|
-
return new FormArray(createFormArrayOptions(options, validators));
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
export { FormArray, FormArrayControl, FormArrayGroup, FormArrayList, FormControl, FormGroup, formArray, formArrayControl, formArrayGroup, formArrayList, formControl, formGroup };
|
|
551
|
-
//# sourceMappingURL=index.js.map
|
package/dist/es/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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":";;;AAAA,SAAS,qBAAqB,CAAC,OAAO,EAAE;AACxC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AACzD,CAAC;AACM,SAAS,wBAAwB,CAAC,GAAG,WAAW,EAAE;AACzD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;AACvD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK;AAC7D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;;ACxBD,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,QAAQ,OAAO,OAAO,KAAK,QAAQ;AACvC,SAAS,QAAQ,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,CAAC,EAAE;AAC1D,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,MAAM,EAAE,OAAO;AACvB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK;AAC5D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACK,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpF,CAAC;AACM,SAAS,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrF;;AC/BA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,IAAI,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,UAAU,IAAI,OAAO,CAAC;AAChE,CAAC;AACM,SAAS,sBAAsB,CAAC,GAAG,WAAW,EAAE;AACvD,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,WAAW,CAAC;AAC9C,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrD,QAAQ,OAAO,OAAO,CAAC;AACvB,KAAK;AACL,IAAI,OAAO;AACX,QAAQ,QAAQ,EAAE,OAAO;AACzB,QAAQ,UAAU;AAClB,KAAK,CAAC;AACN,CAAC;AACM,MAAM,gBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK;AAC9D,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK;AACpD,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACK,MAAM,eAAe,GAAG,CAAC,QAAQ,KAAK;AAC7C,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK;AACzE,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5B,QAAQ,OAAO,MAAM,CAAC;AACtB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACK,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpI,CAAC,CAAC;AACK,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK;AAC1D,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACrI,CAAC;;AClCD,SAAS,YAAY,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AACM,SAAS,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;AACtC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AACM,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;AACzC,IAAI,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE;;ACLO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC1E,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC;AAC9C,QAAQ,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;AACjD,QAAQ,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;AACxC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,EAAE;AAClB,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK;AACL,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,GAAG,EAAE,EAAE;AACnC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE;AAC9C,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;AACrE,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,YAAY,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACpC,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC9B,SAAS;AACT,KAAK;AACL,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAC5B,QAAQ,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,KAAK;AACL,CAAC;AACM,SAAS,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACjD,IAAI,OAAO,IAAI,WAAW,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC1E;;AC3HO,MAAM,gBAAgB,SAAS,WAAW,CAAC;AAClD,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC1E,QAAQ,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAGA,EAAI,EAAE,CAAC;AAC3B,KAAK;AACL,CAAC;AACM,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE;AACtD,IAAI,OAAO,IAAI,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC/E;;ACVO,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC/C,QAAQ,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,QAAQ,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC/D,YAAY,OAAO,CAAC,SAAS,CAAC,MAAM;AACpC,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5E,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9E,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC1D,YAAY,OAAO,CAAC,KAAK,EAAE,CAAC;AAC5B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,EAAE;AAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE;AACjD,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AACtE,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACpC,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,SAAS;AACT,KAAK;AACL,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;AAC/C,IAAI,OAAO,IAAI,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACtE;;ACxFO,MAAM,cAAc,SAAS,SAAS,CAAC;AAC9C,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtE,QAAQ,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,IAAI,GAAGA,EAAI,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC3C,KAAK;AACL,CAAC;AACM,SAAS,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;AACpD,IAAI,OAAO,IAAI,cAAc,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3E;;ACVO,MAAM,aAAa,SAAS,WAAW,CAAC;AAC/C,IAAI,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE;AACpD,QAAQ,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC;AACtC,QAAQ,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACrC,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AAC/C,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,IAAI,GAAGA,EAAI,EAAE,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;AACtH,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;AACpH,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,QAAQ,IAAI,CAAC,MAAM;AAC3B,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,KAAK,IAAI,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;AAClH,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3E,KAAK;AACL,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,MAAM,CAAC,QAAQ,EAAE;AACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,KAAK,QAAQ,CAAC,CAAC;AACtF,KAAK;AACL,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACrD,QAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AACrD,YAAY,OAAO,CAAC,SAAS,CAAC,MAAM;AACpC,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACzE,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,aAAa,CAAC,CAAC;AACf,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,QAAQ,CAAC;AACxB,KAAK;AACL,CAAC;AACM,SAAS,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE;AACjE,IAAI,OAAO,IAAI,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAChE;;AC9CO,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;AACzC,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC/C,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,QAAQ,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK;AAC7C,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,EAAE;AAClB,QAAQ,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1C,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,KAAK;AACL,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,KAAK;AACL,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,eAAe,CAAC,MAAM,EAAE;AAC5B,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AACnC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK;AAC3C,YAAY,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,KAAK;AACL,IAAI,aAAa,CAAC,UAAU,EAAE;AAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3D,KAAK;AACL,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM;AACrD,YAAY,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACpE,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE;AAC7C,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AACpE,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9C,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAC/B,YAAY,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC9B,YAAY,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACpC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACxC,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5C,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACjE,KAAK;AACL,CAAC;AACM,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;AAC/C,IAAI,OAAO,IAAI,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACtE;;;;"}
|