@ngrdt/forms 0.0.89 → 0.0.92
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/fesm2022/ngrdt-forms.mjs +271 -3
- package/fesm2022/ngrdt-forms.mjs.map +1 -1
- package/index.d.ts +81 -6
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngrdt-forms.mjs","sources":["../tmp-esm2022/lib/utils/get-form-control.js","../tmp-esm2022/lib/base/rdt-base-form-input.component.js","../tmp-esm2022/lib/base/rdt-form-input-outlet.directive.js","../tmp-esm2022/lib/inputs/checkbox/providers/rdt-checkbox-base-provider.js","../tmp-esm2022/lib/inputs/checkbox/checkbox-outlet/rdt-checkbox-outlet.directive.js","../tmp-esm2022/lib/inputs/checkbox/rdt-checkbox.component.js","../tmp-esm2022/lib/inputs/date/providers.js","../tmp-esm2022/lib/utils/transform.js","../tmp-esm2022/lib/inputs/date/rdt-date.component.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader-noop.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader-base64.js","../tmp-esm2022/lib/inputs/file-input/tokens/rdt-default-file-reader.js","../tmp-esm2022/lib/inputs/file-input/tokens/rdt-default-label-fn.js","../tmp-esm2022/lib/inputs/file-input/tokens/rdt-default-max-file-size.js","../tmp-esm2022/lib/inputs/file-input/rdt-file-input.component.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader-array-buffer.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader-text.js","../tmp-esm2022/lib/inputs/numeric-input/rdt-numeric-input.component.js","../tmp-esm2022/lib/inputs/select/utils/paginate.js","../tmp-esm2022/lib/inputs/select/datasource/rdt-select-datasource.js","../tmp-esm2022/lib/inputs/select/datasource/rdt-offline-select-datasource.js","../tmp-esm2022/lib/inputs/select/state/rdt-select-state.js","../tmp-esm2022/lib/inputs/select/utils/request.js","../tmp-esm2022/lib/inputs/select/state/rdt-select-store.js","../tmp-esm2022/lib/inputs/select/directives/rdt-select-offline-datasource.directive.js","../tmp-esm2022/lib/inputs/select/directives/rdt-select-option.directive.js","../tmp-esm2022/lib/inputs/select/rdt-base-select.component.js","../tmp-esm2022/lib/inputs/select/rdt-multi-select.component.js","../tmp-esm2022/lib/inputs/select/rdt-single-select.component.js","../tmp-esm2022/lib/inputs/text-area/rdt-text-area.component.js","../tmp-esm2022/lib/inputs/text-input/rdt-text-input.component.js","../tmp-esm2022/lib/pipes/providers/rdt-error-code-provider.js","../tmp-esm2022/lib/pipes/form-error.pipe.js","../tmp-esm2022/lib/validators/date.js","../tmp-esm2022/lib/validators/general.js","../tmp-esm2022/ngrdt-forms.js"],"sourcesContent":["import { FormControlDirective, FormControlName, NgModel, } from '@angular/forms';\nexport function getFormControl(ngControl) {\n if (ngControl instanceof FormControlName) {\n const formGroupDirective = ngControl.formDirective;\n if (formGroupDirective) {\n return formGroupDirective.form.get(ngControl.path);\n }\n else {\n return null;\n }\n }\n else if (ngControl instanceof FormControlDirective ||\n ngControl instanceof NgModel) {\n return ngControl.control;\n }\n else {\n return null;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWZvcm0tY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL3V0aWxzL2dldC1mb3JtLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixlQUFlLEVBR2YsT0FBTyxHQUNSLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUFvQjtJQUNqRCxJQUFJLFNBQVMsWUFBWSxlQUFlLEVBQUUsQ0FBQztRQUN6QyxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxhQUFtQyxDQUFDO1FBQ3pFLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBZ0IsQ0FBQztRQUNwRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7U0FBTSxJQUNMLFNBQVMsWUFBWSxvQkFBb0I7UUFDekMsU0FBUyxZQUFZLE9BQU8sRUFDNUIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUMzQixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGb3JtQ29udHJvbCxcbiAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXG4gIEZvcm1Db250cm9sTmFtZSxcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBOZ0NvbnRyb2wsXG4gIE5nTW9kZWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1Db250cm9sKG5nQ29udHJvbDogTmdDb250cm9sKSB7XG4gIGlmIChuZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcbiAgICBjb25zdCBmb3JtR3JvdXBEaXJlY3RpdmUgPSBuZ0NvbnRyb2wuZm9ybURpcmVjdGl2ZSBhcyBGb3JtR3JvdXBEaXJlY3RpdmU7XG4gICAgaWYgKGZvcm1Hcm91cERpcmVjdGl2ZSkge1xuICAgICAgcmV0dXJuIGZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtLmdldChuZ0NvbnRyb2wucGF0aCkgYXMgRm9ybUNvbnRyb2w7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSBlbHNlIGlmIChcbiAgICBuZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbERpcmVjdGl2ZSB8fFxuICAgIG5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWxcbiAgKSB7XG4gICAgcmV0dXJuIG5nQ29udHJvbC5jb250cm9sO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=","import { booleanAttribute, computed, Directive, effect, inject, Injector, input, linkedSignal, model, signal, untracked, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl, Validators, } from '@angular/forms';\nimport { RdtInteractiveElementComponent } from '@ngrdt/core';\nimport { startWith } from 'rxjs';\nimport { getFormControl } from '../utils/get-form-control';\nimport * as i0 from \"@angular/core\";\nconst noop = () => { };\nexport class RdtBaseFormInputComponent extends RdtInteractiveElementComponent {\n injector = inject(Injector);\n _control = signal(null);\n control = this._control.asReadonly();\n externalValue = model(null, { alias: 'value' });\n internalValue = linkedSignal(() => this.toInternalValue(this.externalValue()));\n labelInput = input('', { alias: 'label' });\n label = linkedSignal(() => this.labelInput() ?? '');\n placeholderInput = input('', { alias: 'placeholder' });\n placeholder = linkedSignal(() => this.placeholderInput() ?? '');\n nameInput = input('', { alias: 'name' });\n name = linkedSignal(() => this.nameInput() ?? '');\n readonlyInput = input(null, {\n alias: 'readonly',\n transform: booleanAttribute,\n });\n requiredInput = input(null, {\n alias: 'required',\n transform: booleanAttribute,\n });\n requiredFromControl = signal(false);\n required = linkedSignal(() => {\n return this.requiredInput() ?? this.requiredFromControl() ?? false;\n });\n touchedInternal = signal(false);\n touched = computed(() => {\n const control = this.control();\n if (control) {\n return control.touchedReactive();\n }\n else {\n return this.touchedInternal();\n }\n });\n invalid = computed(() => {\n if (this.requiredInput() && this.isEmpty(this.externalValue())) {\n return true;\n }\n const control = this.control();\n if (control) {\n return control.statusReactive() === 'INVALID';\n }\n else {\n return !!this.additionalErrors();\n }\n });\n requiredEffect = effect(() => {\n this.requiredInput();\n this.onValidatorChange();\n });\n requiredError = computed(() => this.getRequiredError(this.externalValue()));\n controlErrors = computed(() => {\n const control = this.control();\n if (control) {\n control.statusReactive();\n return control.errors;\n }\n else {\n return null;\n }\n });\n additionalErrors = signal(null);\n errors = computed(() => this.controlErrors() ?? this.requiredError() ?? this.additionalErrors());\n visibleErrors = computed(() => this.invalid() && this.touched() ? this.errors() : null);\n get ngControl() {\n return this._ngControl;\n }\n _ngControl = null;\n _onChange = noop;\n _onTouch = () => this.touchedInternal.set(true);\n _onValidatorChange = noop;\n get onChange() {\n return this._onChange;\n }\n get onTouch() {\n return this._onTouch;\n }\n get onValidatorChange() {\n return this._onValidatorChange;\n }\n ngOnInit() {\n this._ngControl = this.injector.get(NgControl, null, {\n self: true,\n optional: true,\n });\n if (this._ngControl) {\n const control = getFormControl(this._ngControl);\n this._control.set(control);\n if (control) {\n this.listenControlEvents(control);\n }\n }\n }\n ngOnDestroy() {\n const control = this.control();\n if (this.requiredInput() && control) {\n control.removeValidators(Validators.required);\n control.setErrors(null);\n }\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouch = () => {\n this.touchedInternal.set(true);\n fn();\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n writeValue(value) {\n this.externalValue.set(value);\n }\n // Implemented as a part of Validator.\n validate(control) {\n return this.requiredError();\n }\n registerOnValidatorChange(fn) {\n this._onValidatorChange = fn;\n }\n onInternalValueChange(value) {\n if (value === '') {\n value = null; // Convert empty string to null\n }\n if (!this.areInternalValuesEqual(value, untracked(this.internalValue))) {\n const externalValue = this.toExternalValue(value);\n this.externalValue.set(externalValue);\n this.onChange(externalValue);\n }\n }\n setAdditionalErrors(errors) {\n if (errors === null || Object.keys(errors).length === 0) {\n this.additionalErrors.set(null);\n }\n else {\n this.additionalErrors.set(errors);\n }\n }\n areInternalValuesEqual(value1, value2) {\n return value1 === value2;\n }\n listenControlEvents(control) {\n control.events\n .pipe(startWith(null), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.requiredFromControl.set(control.hasValidator(Validators.required));\n });\n }\n toExternalValue(internalValue) {\n return internalValue;\n }\n toInternalValue(externalValue) {\n return externalValue;\n }\n onBlur() {\n super.onBlur();\n Promise.resolve().then(() => {\n this.onTouch();\n });\n }\n getRequiredError(value) {\n return this.required() && this.isEmpty(value)\n ? RdtBaseFormInputComponent.REQUIRED_ERROR\n : null;\n }\n static REQUIRED_ERROR = { required: true };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtBaseFormInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtBaseFormInputComponent, isStandalone: true, inputs: { externalValue: { classPropertyName: \"externalValue\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null }, labelInput: { classPropertyName: \"labelInput\", publicName: \"label\", isSignal: true, isRequired: false, transformFunction: null }, placeholderInput: { classPropertyName: \"placeholderInput\", publicName: \"placeholder\", isSignal: true, isRequired: false, transformFunction: null }, nameInput: { classPropertyName: \"nameInput\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, readonlyInput: { classPropertyName: \"readonlyInput\", publicName: \"readonly\", isSignal: true, isRequired: false, transformFunction: null }, requiredInput: { classPropertyName: \"requiredInput\", publicName: \"required\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { externalValue: \"valueChange\" }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtBaseFormInputComponent, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFHTCxTQUFTLEVBRVQsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUUzRCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFLdEIsTUFBTSxPQUFnQix5QkFDcEIsU0FBUSw4QkFBOEI7SUFHN0IsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVsQixRQUFRLEdBQUcsTUFBTSxDQUErQixJQUFJLENBQUMsQ0FBQztJQUNoRSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVyQyxhQUFhLEdBQUcsS0FBSyxDQUFjLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdELGFBQWEsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ3pDLElBQUksQ0FBQyxlQUFlLENB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O2FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxlQUFlLENBQUMsYUFBMEI7UUFDbEQsT0FBTyxhQUE0QixDQUFDO0lBQ3RDLENBQUM7SUFFUyxlQUFlLENBQUMsYUFBMEI7UUFDbEQsT0FBTyxhQUE0QixDQUFDO0lBQ3RDLENBQUM7SUFFUSxNQUFNO1FBQ2IsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWtCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjO1lBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRU8sTUFBTSxDQUFVLGNBQWMsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQzt1R0F4TnhDLHlCQUF5QjsyRkFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUg5QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIGxpbmtlZFNpZ25hbCxcbiAgbW9kZWwsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaWduYWwsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5nQ29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmR0SW50ZXJhY3RpdmVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnQG5ncmR0L2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRGb3JtQ29udHJvbCB9IGZyb20gJy4uL3V0aWxzL2dldC1mb3JtLWNvbnRyb2wnO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50PFRFeHQsIFRJbnQgPSBURXh0PlxuICBleHRlbmRzIFJkdEludGVyYWN0aXZlRWxlbWVudENvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb250cm9sID0gc2lnbmFsPEFic3RyYWN0Q29udHJvbDxURXh0PiB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBjb250cm9sID0gdGhpcy5fY29udHJvbC5hc1JlYWRvbmx5KCk7XG5cbiAgcmVhZG9ubHkgZXh0ZXJuYWxWYWx1ZSA9IG1vZGVsPFRFeHQgfCBudWxsPihudWxsLCB7IGFsaWFzOiAndmFsdWUnIH0pO1xuICByZWFkb25seSBpbnRlcm5hbFZhbHVlID0gbGlua2VkU2lnbmFsKCgpID0+XG4gICAgdGhpcy50b0ludGVybmFsVmFsdWUodGhpcy5leHRlcm5hbFZhbHVlKCkpXG4gICk7XG5cbiAgcmVhZG9ubHkgbGFiZWxJbnB1dCA9IGlucHV0KCcnLCB7IGFsaWFzOiAnbGFiZWwnIH0pO1xuICByZWFkb25seSBsYWJlbCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmxhYmVsSW5wdXQoKSA/PyAnJyk7XG5cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJJbnB1dCA9IGlucHV0KCcnLCB7IGFsaWFzOiAncGxhY2Vob2xkZXInIH0pO1xuICByZWFkb25seSBwbGFjZWhvbGRlciA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnBsYWNlaG9sZGVySW5wdXQoKSA/PyAnJyk7XG5cbiAgcmVhZG9ubHkgbmFtZUlucHV0ID0gaW5wdXQoJycsIHsgYWxpYXM6ICduYW1lJyB9KTtcbiAgcmVhZG9ubHkgbmFtZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLm5hbWVJbnB1dCgpID8/ICcnKTtcblxuICByZWFkb25seSByZWFkb25seUlucHV0ID0gaW5wdXQ8XG4gICAgYm9vbGVhbiB8IG51bGwsXG4gICAgTnVsbGFibGU8Ym9vbGVhbiB8IHN0cmluZyB8IG51bWJlcj5cbiAgPihudWxsLCB7XG4gICAgYWxpYXM6ICdyZWFkb25seScsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICByZWFkb25seSByZXF1aXJlZElucHV0ID0gaW5wdXQ8XG4gICAgTnVsbGFibGU8Ym9vbGVhbj4sXG4gICAgTnVsbGFibGU8Ym9vbGVhbiB8IHN0cmluZyB8IG51bWJlcj5cbiAgPihudWxsLCB7XG4gICAgYWxpYXM6ICdyZXF1aXJlZCcsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcXVpcmVkRnJvbUNvbnRyb2wgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSByZXF1aXJlZCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZWRJbnB1dCgpID8/IHRoaXMucmVxdWlyZWRGcm9tQ29udHJvbCgpID8/IGZhbHNlO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG91Y2hlZEludGVybmFsID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgdG91Y2hlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sKCkgYXMgYW55O1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICByZXR1cm4gY29udHJvbC50b3VjaGVkUmVhY3RpdmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudG91Y2hlZEludGVybmFsKCk7XG4gICAgfVxuICB9KTtcbiAgcmVhZG9ubHkgaW52YWxpZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5yZXF1aXJlZElucHV0KCkgJiYgdGhpcy5pc0VtcHR5KHRoaXMuZXh0ZXJuYWxWYWx1ZSgpKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2woKSBhcyBhbnk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBjb250cm9sLnN0YXR1c1JlYWN0aXZlKCkgPT09ICdJTlZBTElEJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICEhdGhpcy5hZGRpdGlvbmFsRXJyb3JzKCk7XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVxdWlyZWRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMucmVxdWlyZWRJbnB1dCgpO1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXF1aXJlZEVycm9yID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmdldFJlcXVpcmVkRXJyb3IodGhpcy5leHRlcm5hbFZhbHVlKCkpXG4gICk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRyb2xFcnJvcnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpO1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICAoY29udHJvbCBhcyBhbnkpLnN0YXR1c1JlYWN0aXZlKCk7XG4gICAgICByZXR1cm4gY29udHJvbC5lcnJvcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBhZGRpdGlvbmFsRXJyb3JzID0gc2lnbmFsPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgZXJyb3JzID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuY29udHJvbEVycm9ycygpID8/IHRoaXMucmVxdWlyZWRFcnJvcigpID8/IHRoaXMuYWRkaXRpb25hbEVycm9ycygpXG4gICk7XG4gIHJlYWRvbmx5IHZpc2libGVFcnJvcnM6IFNpZ25hbDxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuaW52YWxpZCgpICYmIHRoaXMudG91Y2hlZCgpID8gdGhpcy5lcnJvcnMoKSA6IG51bGxcbiAgKTtcblxuICBnZXQgbmdDb250cm9sKCkge1xuICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2w7XG4gIH1cbiAgcHJpdmF0ZSBfbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIF9vblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy50b3VjaGVkSW50ZXJuYWwuc2V0KHRydWUpO1xuICBwcml2YXRlIF9vblZhbGlkYXRvckNoYW5nZTogKCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgZ2V0IG9uQ2hhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLl9vbkNoYW5nZTtcbiAgfVxuXG4gIGdldCBvblRvdWNoKCkge1xuICAgIHJldHVybiB0aGlzLl9vblRvdWNoO1xuICB9XG5cbiAgZ2V0IG9uVmFsaWRhdG9yQ2hhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLl9vblZhbGlkYXRvckNoYW5nZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX25nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCwge1xuICAgICAgc2VsZjogdHJ1ZSxcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBnZXRGb3JtQ29udHJvbCh0aGlzLl9uZ0NvbnRyb2wpO1xuICAgICAgdGhpcy5fY29udHJvbC5zZXQoY29udHJvbCk7XG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICB0aGlzLmxpc3RlbkNvbnRyb2xFdmVudHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpO1xuICAgIGlmICh0aGlzLnJlcXVpcmVkSW5wdXQoKSAmJiBjb250cm9sKSB7XG4gICAgICBjb250cm9sLnJlbW92ZVZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICBjb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoID0gKCkgPT4ge1xuICAgICAgdGhpcy50b3VjaGVkSW50ZXJuYWwuc2V0KHRydWUpO1xuICAgICAgZm4oKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmV4dGVybmFsVmFsdWUuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBWYWxpZGF0b3IuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxURXh0Pik6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZEVycm9yKCk7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBpc0VtcHR5KHZhbHVlOiBURXh0IHwgbnVsbCk6IGJvb2xlYW47XG5cbiAgb25JbnRlcm5hbFZhbHVlQ2hhbmdlKHZhbHVlOiBUSW50IHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgIHZhbHVlID0gbnVsbDsgLy8gQ29udmVydCBlbXB0eSBzdHJpbmcgdG8gbnVsbFxuICAgIH1cbiAgICBpZiAoIXRoaXMuYXJlSW50ZXJuYWxWYWx1ZXNFcXVhbCh2YWx1ZSwgdW50cmFja2VkKHRoaXMuaW50ZXJuYWxWYWx1ZSkpKSB7XG4gICAgICBjb25zdCBleHRlcm5hbFZhbHVlID0gdGhpcy50b0V4dGVybmFsVmFsdWUodmFsdWUpO1xuICAgICAgdGhpcy5leHRlcm5hbFZhbHVlLnNldChleHRlcm5hbFZhbHVlKTtcbiAgICAgIHRoaXMub25DaGFuZ2UoZXh0ZXJuYWxWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgc2V0QWRkaXRpb25hbEVycm9ycyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGVycm9ycyA9PT0gbnVsbCB8fCBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hZGRpdGlvbmFsRXJyb3JzLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRpdGlvbmFsRXJyb3JzLnNldChlcnJvcnMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhcmVJbnRlcm5hbFZhbHVlc0VxdWFsKFxuICAgIHZhbHVlMTogVEludCB8IG51bGwsXG4gICAgdmFsdWUyOiBUSW50IHwgbnVsbFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTI7XG4gIH1cblxuICBwcm90ZWN0ZWQgbGlzdGVuQ29udHJvbEV2ZW50cyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBjb250cm9sLmV2ZW50c1xuICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcXVpcmVkRnJvbUNvbnRyb2wuc2V0KGNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvRXh0ZXJuYWxWYWx1ZShpbnRlcm5hbFZhbHVlOiBUSW50IHwgbnVsbCk6IFRFeHQgfCBudWxsIHtcbiAgICByZXR1cm4gaW50ZXJuYWxWYWx1ZSBhcyBURXh0IHwgbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b0ludGVybmFsVmFsdWUoZXh0ZXJuYWxWYWx1ZTogVEV4dCB8IG51bGwpOiBUSW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIGV4dGVybmFsVmFsdWUgYXMgVEludCB8IG51bGw7XG4gIH1cblxuICBvdmVycmlkZSBvbkJsdXIoKSB7XG4gICAgc3VwZXIub25CbHVyKCk7XG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVxdWlyZWRFcnJvcih2YWx1ZTogVEV4dCB8IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZCgpICYmIHRoaXMuaXNFbXB0eSh2YWx1ZSlcbiAgICAgID8gUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudC5SRVFVSVJFRF9FUlJPUlxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUkVRVUlSRURfRVJST1IgPSB7IHJlcXVpcmVkOiB0cnVlIH07XG59XG4iXX0=","import { Directive } from '@angular/core';\nimport { RdtComponentOutletDirective } from '@ngrdt/core';\nimport * as i0 from \"@angular/core\";\nexport class RdtFormInputOutletDirective extends RdtComponentOutletDirective {\n onChangeFn = () => { };\n onTouchedFn = () => { };\n writeValue(value) {\n const instance = this.componentRef?.instance;\n instance.writeValue?.(value);\n }\n registerOnChange(fn) {\n this.onChangeFn = fn;\n const instance = this.componentRef?.instance;\n instance?.registerOnChange?.(fn);\n }\n registerOnTouched(fn) {\n this.onTouchedFn = fn;\n const instance = this.componentRef?.instance;\n instance?.registerOnTouched?.(fn);\n }\n setDisabledState(isDisabled) {\n const instance = this.componentRef?.instance;\n instance?.setDisabledState?.(isDisabled);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormInputOutletDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtFormInputOutletDirective, isStandalone: true, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormInputOutletDirective, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZvcm0taW5wdXQtb3V0bGV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2Jhc2UvcmR0LWZvcm0taW5wdXQtb3V0bGV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFMUQsTUFBTSxPQUFnQiwyQkFDcEIsU0FBUSwyQkFBZ0Q7SUFHOUMsVUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUMzQixXQUFXLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRXRDLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBZSxDQUFDO1FBQ3BELFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQWUsQ0FBQztRQUNwRCxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQWUsQ0FBQztRQUNwRCxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFlLENBQUM7UUFDcEQsUUFBUSxFQUFFLGdCQUFnQixFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQzt1R0EzQm1CLDJCQUEyQjsyRkFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQURoRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJkdENvbXBvbmVudE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZ3JkdC9jb3JlJztcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdEZvcm1JbnB1dE91dGxldERpcmVjdGl2ZTxUQ29tcG9uZW50LCBUSW5wdXRzPlxuICBleHRlbmRzIFJkdENvbXBvbmVudE91dGxldERpcmVjdGl2ZTxUQ29tcG9uZW50LCBUSW5wdXRzPlxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIHByb3RlY3RlZCBvbkNoYW5nZUZuOiBhbnkgPSAoKSA9PiB7fTtcbiAgcHJvdGVjdGVkIG9uVG91Y2hlZEZuOiBhbnkgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSBhcyBhbnk7XG4gICAgaW5zdGFuY2Uud3JpdGVWYWx1ZT8uKHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlIGFzIGFueTtcbiAgICBpbnN0YW5jZT8ucmVnaXN0ZXJPbkNoYW5nZT8uKGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFJlZj8uaW5zdGFuY2UgYXMgYW55O1xuICAgIGluc3RhbmNlPy5yZWdpc3Rlck9uVG91Y2hlZD8uKGZuKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlIGFzIGFueTtcbiAgICBpbnN0YW5jZT8uc2V0RGlzYWJsZWRTdGF0ZT8uKGlzRGlzYWJsZWQpO1xuICB9XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const RDT_CHECKBOX_BASE_PROVIDER = new InjectionToken('RdtCheckbox');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoZWNrYm94LWJhc2UtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvY2hlY2tib3gvcHJvdmlkZXJzL3JkdC1jaGVja2JveC1iYXNlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBRTFELGFBQWEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4nO1xuXG5leHBvcnQgY29uc3QgUkRUX0NIRUNLQk9YX0JBU0VfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gIFR5cGU8UmR0Q2hlY2tib3hDb21wb25lbnQ+XG4+KCdSZHRDaGVja2JveCcpO1xuIl19","import { Directive, forwardRef, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RdtFormInputOutletDirective } from '../../../base';\nimport { RDT_CHECKBOX_BASE_PROVIDER } from '../providers/rdt-checkbox-base-provider';\nimport * as i0 from \"@angular/core\";\nexport class RdtCheckboxOutletDirective extends RdtFormInputOutletDirective {\n componentClass = inject(RDT_CHECKBOX_BASE_PROVIDER);\n constructor() {\n super();\n this.initComponentRef();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtCheckboxOutletDirective, isStandalone: true, selector: \"[rdtCheckboxOutlet]\", providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdtCheckboxOutletDirective),\n multi: true,\n },\n ], exportAs: [\"rdtCheckboxOutlet\"], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxOutletDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtCheckboxOutlet]',\n standalone: true,\n exportAs: 'rdtCheckboxOutlet',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdtCheckboxOutletDirective),\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoZWNrYm94LW91dGxldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvY2hlY2tib3gvY2hlY2tib3gtb3V0bGV0L3JkdC1jaGVja2JveC1vdXRsZXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBZXJGLE1BQU0sT0FBTywwQkFHWCxTQUFRLDJCQUFxRDtJQUNwRCxjQUFjLEdBQUcsTUFBTSxDQUM5QiwwQkFBMEIsQ0FDUCxDQUFDO0lBRXRCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO3VHQVhVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLGtFQVIxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3pELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7MkZBRVUsMEJBQTBCO2tCQVp0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBpbmplY3QsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmR0Rm9ybUlucHV0T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vYmFzZSc7XG5pbXBvcnQgeyBSZHRDaGVja2JveElucHV0SW50IH0gZnJvbSAnLi4vbW9kZWwvcmR0LWNoZWNrYm94LWludCc7XG5pbXBvcnQgeyBSRFRfQ0hFQ0tCT1hfQkFTRV9QUk9WSURFUiB9IGZyb20gJy4uL3Byb3ZpZGVycy9yZHQtY2hlY2tib3gtYmFzZS1wcm92aWRlcic7XG5pbXBvcnQgeyBSZHRDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL3JkdC1jaGVja2JveC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmR0Q2hlY2tib3hPdXRsZXRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdyZHRDaGVja2JveE91dGxldCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmR0Q2hlY2tib3hPdXRsZXREaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0Q2hlY2tib3hPdXRsZXREaXJlY3RpdmU8XG4gIFRDaGVja0NvbXAgZXh0ZW5kcyBSZHRDaGVja2JveENvbXBvbmVudCxcbiAgVENoZWNrSW5wdXRzIGV4dGVuZHMgUmR0Q2hlY2tib3hJbnB1dEludCA9IFJkdENoZWNrYm94SW5wdXRJbnRcbj4gZXh0ZW5kcyBSZHRGb3JtSW5wdXRPdXRsZXREaXJlY3RpdmU8VENoZWNrQ29tcCwgVENoZWNrSW5wdXRzPiB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudENsYXNzID0gaW5qZWN0KFxuICAgIFJEVF9DSEVDS0JPWF9CQVNFX1BST1ZJREVSXG4gICkgYXMgVHlwZTxUQ2hlY2tDb21wPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaW5pdENvbXBvbmVudFJlZigpO1xuICB9XG59XG4iXX0=","import { booleanAttribute, Directive, input, linkedSignal, } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport * as i0 from \"@angular/core\";\nexport class RdtCheckboxComponent extends RdtBaseFormInputComponent {\n trueValueInput = input(true, {\n alias: 'trueValue',\n });\n trueValue = linkedSignal(() => this.trueValueInput());\n falseValueInput = input(false, {\n alias: 'falseValue',\n });\n falseValue = linkedSignal(() => this.falseValueInput());\n indeterminate = input(false, { transform: booleanAttribute });\n toExternalValue(internalValue) {\n switch (internalValue) {\n case true:\n return this.trueValue();\n case false:\n return this.falseValue();\n default:\n return null;\n }\n }\n toInternalValue(externalValue) {\n switch (externalValue) {\n case this.trueValue():\n return true;\n case this.falseValue():\n return false;\n default:\n return null;\n }\n }\n isEmpty(value) {\n return value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtCheckboxComponent, isStandalone: true, inputs: { trueValueInput: { classPropertyName: \"trueValueInput\", publicName: \"trueValue\", isSignal: true, isRequired: false, transformFunction: null }, falseValueInput: { classPropertyName: \"falseValueInput\", publicName: \"falseValue\", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: \"indeterminate\", publicName: \"indeterminate\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9jaGVja2JveC9yZHQtY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBR3JGLE1BQU0sT0FBZ0Isb0JBR3BCLFNBQVEseUJBQWtEO0lBQ2pELGNBQWMsR0FBRyxLQUFLLENBQVEsSUFBYSxFQUFFO1FBQ3BELEtBQUssRUFBRSxXQUFXO0tBQ25CLENBQUMsQ0FBQztJQUNNLFNBQVMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDdEQsZUFBZSxHQUFHLEtBQUssQ0FBUyxLQUFlLEVBQUU7UUFDeEQsS0FBSyxFQUFFLFlBQVk7S0FDcEIsQ0FBQyxDQUFDO0lBQ00sVUFBVSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUN4RCxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFcEQsZUFBZSxDQUNoQyxhQUE2QjtRQUU3QixRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssSUFBSTtnQkFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0I7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFa0IsZUFBZSxDQUNoQyxhQUFvQztRQUVwQyxRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDO1lBQ2Y7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFa0IsT0FBTyxDQUFDLEtBQTRCO1FBQ3JELE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQztJQUN4QixDQUFDO3VHQTFDbUIsb0JBQW9COzJGQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRHpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBEaXJlY3RpdmUsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRDaGVja2JveENvbXBvbmVudDxcbiAgVFRydWUgPSBhbnksXG4gIFRGYWxzZSA9IGFueVxuPiBleHRlbmRzIFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQ8VFRydWUgfCBURmFsc2UsIGJvb2xlYW4+IHtcbiAgcmVhZG9ubHkgdHJ1ZVZhbHVlSW5wdXQgPSBpbnB1dDxUVHJ1ZT4odHJ1ZSBhcyBUVHJ1ZSwge1xuICAgIGFsaWFzOiAndHJ1ZVZhbHVlJyxcbiAgfSk7XG4gIHJlYWRvbmx5IHRydWVWYWx1ZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnRydWVWYWx1ZUlucHV0KCkpO1xuICByZWFkb25seSBmYWxzZVZhbHVlSW5wdXQgPSBpbnB1dDxURmFsc2U+KGZhbHNlIGFzIFRGYWxzZSwge1xuICAgIGFsaWFzOiAnZmFsc2VWYWx1ZScsXG4gIH0pO1xuICByZWFkb25seSBmYWxzZVZhbHVlID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuZmFsc2VWYWx1ZUlucHV0KCkpO1xuICByZWFkb25seSBpbmRldGVybWluYXRlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB0b0V4dGVybmFsVmFsdWUoXG4gICAgaW50ZXJuYWxWYWx1ZTogYm9vbGVhbiB8IG51bGxcbiAgKTogVFRydWUgfCBURmFsc2UgfCBudWxsIHtcbiAgICBzd2l0Y2ggKGludGVybmFsVmFsdWUpIHtcbiAgICAgIGNhc2UgdHJ1ZTpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJ1ZVZhbHVlKCk7XG4gICAgICBjYXNlIGZhbHNlOlxuICAgICAgICByZXR1cm4gdGhpcy5mYWxzZVZhbHVlKCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdG9JbnRlcm5hbFZhbHVlKFxuICAgIGV4dGVybmFsVmFsdWU6IFRUcnVlIHwgVEZhbHNlIHwgbnVsbFxuICApOiBib29sZWFuIHwgbnVsbCB7XG4gICAgc3dpdGNoIChleHRlcm5hbFZhbHVlKSB7XG4gICAgICBjYXNlIHRoaXMudHJ1ZVZhbHVlKCk6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSB0aGlzLmZhbHNlVmFsdWUoKTpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IFRUcnVlIHwgVEZhbHNlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbDtcbiAgfVxufVxuIl19","import { InjectionToken } from '@angular/core';\nexport const RDT_FORM_CONTROL_DATE_FORMAT = new InjectionToken('RDT_FORM_CONTROL_DATE_FORMAT', { providedIn: 'root', factory: () => 'yyyy-MM-dd' });\nexport const RDT_FORM_CONTROL_DATETIME_FORMAT = new InjectionToken('RDT_FORM_CONTROL_DATETIME_FORMAT', { providedIn: 'root', factory: () => \"yyyy-MM-dd'T'HH:mm:ss\" });\nexport const RDT_FORM_CONTROL_TIME_FORMAT = new InjectionToken('RDT_FORM_CONTROL_TIME_FORMAT', { providedIn: 'root', factory: () => 'HH:mm:ss' });\nexport const RDT_EMPTY_TIME_DATE = new InjectionToken('RDT_EMPTY_TIME_DATE', {\n providedIn: 'root',\n factory: () => new Date('1970-01-01T00:00:00'),\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2RhdGUvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQzVELDhCQUE4QixFQUM5QixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUNwRCxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsSUFBSSxjQUFjLENBQ2hFLGtDQUFrQyxFQUNsQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixFQUFFLENBQy9ELENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDNUQsOEJBQThCLEVBQzlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQ2xELENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRTtJQUMzRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUM7Q0FDL0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFJEVF9GT1JNX0NPTlRST0xfREFURV9GT1JNQVQgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICdSRFRfRk9STV9DT05UUk9MX0RBVEVfRk9STUFUJyxcbiAgeyBwcm92aWRlZEluOiAncm9vdCcsIGZhY3Rvcnk6ICgpID0+ICd5eXl5LU1NLWRkJyB9XG4pO1xuZXhwb3J0IGNvbnN0IFJEVF9GT1JNX0NPTlRST0xfREFURVRJTUVfRk9STUFUID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnUkRUX0ZPUk1fQ09OVFJPTF9EQVRFVElNRV9GT1JNQVQnLFxuICB7IHByb3ZpZGVkSW46ICdyb290JywgZmFjdG9yeTogKCkgPT4gXCJ5eXl5LU1NLWRkJ1QnSEg6bW06c3NcIiB9XG4pO1xuZXhwb3J0IGNvbnN0IFJEVF9GT1JNX0NPTlRST0xfVElNRV9GT1JNQVQgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICdSRFRfRk9STV9DT05UUk9MX1RJTUVfRk9STUFUJyxcbiAgeyBwcm92aWRlZEluOiAncm9vdCcsIGZhY3Rvcnk6ICgpID0+ICdISDptbTpzcycgfVxuKTtcbmV4cG9ydCBjb25zdCBSRFRfRU1QVFlfVElNRV9EQVRFID0gbmV3IEluamVjdGlvblRva2VuKCdSRFRfRU1QVFlfVElNRV9EQVRFJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IG5ldyBEYXRlKCcxOTcwLTAxLTAxVDAwOjAwOjAwJyksXG59KTtcbiJdfQ==","import { numberAttribute } from '@angular/core';\nexport function nullToUndefined(value) {\n return value === null ? undefined : value;\n}\nexport function nullToUndefinedNumeric(value) {\n return numberAttribute(value, undefined);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvdXRpbHMvdHJhbnNmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEQsTUFBTSxVQUFVLGVBQWUsQ0FBSSxLQUFrQjtJQUNuRCxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBZ0M7SUFDckUsT0FBTyxlQUFlLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBudW1iZXJBdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIG51bGxUb1VuZGVmaW5lZDxUPih2YWx1ZTogTnVsbGFibGU8VD4pOiBUIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBudWxsVG9VbmRlZmluZWROdW1lcmljKHZhbHVlOiBOdWxsYWJsZTxudW1iZXIgfCBzdHJpbmc+KSB7XG4gIHJldHVybiBudW1iZXJBdHRyaWJ1dGUodmFsdWUsIHVuZGVmaW5lZCk7XG59XG4iXX0=","import { computed, Directive, inject, input, linkedSignal, } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined } from '../../utils';\nimport { RDT_EMPTY_TIME_DATE, RDT_FORM_CONTROL_DATE_FORMAT, RDT_FORM_CONTROL_DATETIME_FORMAT, RDT_FORM_CONTROL_TIME_FORMAT, } from './providers';\nimport * as i0 from \"@angular/core\";\nexport class RdtDateComponent extends RdtBaseFormInputComponent {\n formControlDateFormat = inject(RDT_FORM_CONTROL_DATE_FORMAT);\n formControlDateTimeFormat = inject(RDT_FORM_CONTROL_DATETIME_FORMAT);\n formControlTimeFormat = inject(RDT_FORM_CONTROL_TIME_FORMAT);\n emptyTimeDate = inject(RDT_EMPTY_TIME_DATE);\n type = input('date');\n minInput = input(undefined, {\n transform: nullToUndefined,\n });\n min = linkedSignal(() => {\n const minInput = this.minInput();\n return minInput ? this.toInternalValue(minInput) : null;\n });\n maxInput = input(undefined, {\n transform: nullToUndefined,\n });\n max = linkedSignal(() => {\n const maxInput = this.maxInput();\n return maxInput ? this.toInternalValue(maxInput) : null;\n });\n formControlFormat = computed(() => {\n switch (this.type()) {\n case 'datetime-local':\n return this.formControlDateTimeFormat;\n case 'time':\n return this.formControlTimeFormat;\n case 'date':\n default:\n return this.formControlDateFormat;\n }\n });\n isEmpty(value) {\n return value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtDateComponent, isStandalone: true, inputs: { type: { classPropertyName: \"type\", publicName: \"type\", isSignal: true, isRequired: false, transformFunction: null }, minInput: { classPropertyName: \"minInput\", publicName: \"minInput\", isSignal: true, isRequired: false, transformFunction: null }, maxInput: { classPropertyName: \"maxInput\", publicName: \"maxInput\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtDateComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2RhdGUvcmR0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsZ0NBQWdDLEVBQ2hDLDRCQUE0QixHQUM3QixNQUFNLGFBQWEsQ0FBQzs7QUFHckIsTUFBTSxPQUFnQixnQkFHcEIsU0FBUSx5QkFBcUM7SUFDcEMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDN0QseUJBQXlCLEdBQUcsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDckUscUJBQXFCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDN0QsYUFBYSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTVDLElBQUksR0FBRyxLQUFLLENBQWMsTUFBTSxDQUFDLENBQUM7SUFFbEMsUUFBUSxHQUFHLEtBQUssQ0FBOEIsU0FBUyxFQUFFO1FBQ2hFLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUMsQ0FBQztJQUNNLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFELENBQUMsQ0FBQyxDQUFDO0lBRU0sUUFBUSxHQUFHLEtBQUssQ0FBOEIsU0FBUyxFQUFFO1FBQ2hFLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUMsQ0FBQztJQUNNLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFELENBQUMsQ0FBQyxDQUFDO0lBRU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN6QyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztZQUN4QyxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDcEMsS0FBSyxNQUFNLENBQUM7WUFDWjtnQkFDRSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFZ0IsT0FBTyxDQUFDLEtBQWtCO1FBQzNDLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQztJQUN4QixDQUFDO3VHQXpDbUIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRHJDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjb21wdXRlZCxcbiAgRGlyZWN0aXZlLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbnVsbFRvVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUmR0RGF0ZVR5cGUgfSBmcm9tICcuL2RhdGUtdHlwZSc7XG5pbXBvcnQge1xuICBSRFRfRU1QVFlfVElNRV9EQVRFLFxuICBSRFRfRk9STV9DT05UUk9MX0RBVEVfRk9STUFULFxuICBSRFRfRk9STV9DT05UUk9MX0RBVEVUSU1FX0ZPUk1BVCxcbiAgUkRUX0ZPUk1fQ09OVFJPTF9USU1FX0ZPUk1BVCxcbn0gZnJvbSAnLi9wcm92aWRlcnMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHREYXRlQ29tcG9uZW50PFxuICBURXh0ID0gc3RyaW5nLFxuICBUSW50ID0gVEV4dFxuPiBleHRlbmRzIFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQ8VEV4dCwgVEludD4ge1xuICByZWFkb25seSBmb3JtQ29udHJvbERhdGVGb3JtYXQgPSBpbmplY3QoUkRUX0ZPUk1fQ09OVFJPTF9EQVRFX0ZPUk1BVCk7XG4gIHJlYWRvbmx5IGZvcm1Db250cm9sRGF0ZVRpbWVGb3JtYXQgPSBpbmplY3QoUkRUX0ZPUk1fQ09OVFJPTF9EQVRFVElNRV9GT1JNQVQpO1xuICByZWFkb25seSBmb3JtQ29udHJvbFRpbWVGb3JtYXQgPSBpbmplY3QoUkRUX0ZPUk1fQ09OVFJPTF9USU1FX0ZPUk1BVCk7XG4gIHJlYWRvbmx5IGVtcHR5VGltZURhdGUgPSBpbmplY3QoUkRUX0VNUFRZX1RJTUVfREFURSk7XG5cbiAgcmVhZG9ubHkgdHlwZSA9IGlucHV0PFJkdERhdGVUeXBlPignZGF0ZScpO1xuXG4gIHJlYWRvbmx5IG1pbklucHV0ID0gaW5wdXQ8TnVsbGFibGU8VEV4dD4sIFRFeHQgfCBudWxsPih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG4gIHJlYWRvbmx5IG1pbiA9IGxpbmtlZFNpZ25hbCgoKSA9PiB7XG4gICAgY29uc3QgbWluSW5wdXQgPSB0aGlzLm1pbklucHV0KCk7XG4gICAgcmV0dXJuIG1pbklucHV0ID8gdGhpcy50b0ludGVybmFsVmFsdWUobWluSW5wdXQpIDogbnVsbDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbWF4SW5wdXQgPSBpbnB1dDxOdWxsYWJsZTxURXh0PiwgVEV4dCB8IG51bGw+KHVuZGVmaW5lZCwge1xuICAgIHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkLFxuICB9KTtcbiAgcmVhZG9ubHkgbWF4ID0gbGlua2VkU2lnbmFsKCgpID0+IHtcbiAgICBjb25zdCBtYXhJbnB1dCA9IHRoaXMubWF4SW5wdXQoKTtcbiAgICByZXR1cm4gbWF4SW5wdXQgPyB0aGlzLnRvSW50ZXJuYWxWYWx1ZShtYXhJbnB1dCkgOiBudWxsO1xuICB9KTtcblxuICByZWFkb25seSBmb3JtQ29udHJvbEZvcm1hdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSgpKSB7XG4gICAgICBjYXNlICdkYXRldGltZS1sb2NhbCc6XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sRGF0ZVRpbWVGb3JtYXQ7XG4gICAgICBjYXNlICd0aW1lJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUNvbnRyb2xUaW1lRm9ybWF0O1xuICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQ29udHJvbERhdGVGb3JtYXQ7XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNFbXB0eSh2YWx1ZTogVEV4dCB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IG51bGw7XG4gIH1cbn1cbiJdfQ==","import { forkJoin, map, take } from 'rxjs';\nexport class RdtFileReader {\n read(file) {\n return this.extractData(file).pipe(take(1), map((content) => ({\n fileName: file.name,\n content,\n size: file.size,\n mimeType: file.type ?? undefined,\n modified: isNaN(file.lastModified)\n ? undefined\n : new Date(file.lastModified),\n originalFile: file,\n })));\n }\n readAll(files) {\n return forkJoin(files.map((file) => this.read(file)));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2ZpbGUtaW5wdXQvcmVhZGVyL3JkdC1maWxlLXJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkQsTUFBTSxPQUFnQixhQUFhO0lBRWpDLElBQUksQ0FBQyxJQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNoQixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDbkIsT0FBTztZQUNQLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFFBQVEsRUFBRyxJQUFJLENBQUMsSUFBb0IsSUFBSSxTQUFTO1lBQ2pELFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ1gsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDL0IsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBYTtRQUNuQixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZHRGaWxlLCBSZHRNaW1lVHlwZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgbWFwLCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRGaWxlUmVhZGVyPFQ+IHtcbiAgYWJzdHJhY3QgZXh0cmFjdERhdGEoZmlsZXM6IEZpbGUpOiBPYnNlcnZhYmxlPFQ+O1xuICByZWFkKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPFJkdEZpbGU8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leHRyYWN0RGF0YShmaWxlKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCgoY29udGVudCkgPT4gKHtcbiAgICAgICAgZmlsZU5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICBtaW1lVHlwZTogKGZpbGUudHlwZSBhcyBSZHRNaW1lVHlwZSkgPz8gdW5kZWZpbmVkLFxuICAgICAgICBtb2RpZmllZDogaXNOYU4oZmlsZS5sYXN0TW9kaWZpZWQpXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IG5ldyBEYXRlKGZpbGUubGFzdE1vZGlmaWVkKSxcbiAgICAgICAgb3JpZ2luYWxGaWxlOiBmaWxlLFxuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuICByZWFkQWxsKGZpbGVzOiBGaWxlW10pOiBPYnNlcnZhYmxlPFJkdEZpbGU8VD5bXT4ge1xuICAgIHJldHVybiBmb3JrSm9pbihmaWxlcy5tYXAoKGZpbGUpID0+IHRoaXMucmVhZChmaWxlKSkpO1xuICB9XG59XG4iXX0=","import { of } from 'rxjs';\nimport { RdtFileReader } from './rdt-file-reader';\nexport class NoOpFileReader extends RdtFileReader {\n extractData() {\n return of(undefined);\n }\n}\nexport const NO_OP_FILE_READER = new NoOpFileReader();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLW5vb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC9yZWFkZXIvcmR0LWZpbGUtcmVhZGVyLW5vb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFtQjtJQUNyRCxXQUFXO1FBQ1QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZHRGaWxlUmVhZGVyIH0gZnJvbSAnLi9yZHQtZmlsZS1yZWFkZXInO1xuXG5leHBvcnQgY2xhc3MgTm9PcEZpbGVSZWFkZXIgZXh0ZW5kcyBSZHRGaWxlUmVhZGVyPHZvaWQ+IHtcbiAgZXh0cmFjdERhdGEoKSB7XG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5PX09QX0ZJTEVfUkVBREVSID0gbmV3IE5vT3BGaWxlUmVhZGVyKCk7XG4iXX0=","import { RdtFileUtils } from '@ngrdt/utils';\nimport { from } from 'rxjs';\nimport { RdtFileReader } from './rdt-file-reader';\nexport class RdtFileReaderBase64 extends RdtFileReader {\n removeDataPrefix;\n constructor(removeDataPrefix = false) {\n super();\n this.removeDataPrefix = removeDataPrefix;\n }\n extractData(file) {\n let promise = RdtFileUtils.blobToDataUrl(file);\n if (this.removeDataPrefix) {\n promise = promise.then((dataUrl) => dataUrl.substring(dataUrl.indexOf(',') + 1));\n }\n return from(promise);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLWJhc2U2NC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9maWxlLWlucHV0L3JlYWRlci9yZHQtZmlsZS1yZWFkZXItYmFzZTY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQXFCO0lBQ3hDO0lBQXBCLFlBQW9CLG1CQUFtQixLQUFLO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBRFUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO0lBRTVDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBVTtRQUNwQixJQUFJLE9BQU8sR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzVDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0RmlsZVV0aWxzIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXIgfSBmcm9tICcuL3JkdC1maWxlLXJlYWRlcic7XG5cbmV4cG9ydCBjbGFzcyBSZHRGaWxlUmVhZGVyQmFzZTY0IGV4dGVuZHMgUmR0RmlsZVJlYWRlcjxzdHJpbmc+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW1vdmVEYXRhUHJlZml4ID0gZmFsc2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZXh0cmFjdERhdGEoZmlsZTogRmlsZSkge1xuICAgIGxldCBwcm9taXNlID0gUmR0RmlsZVV0aWxzLmJsb2JUb0RhdGFVcmwoZmlsZSk7XG4gICAgaWYgKHRoaXMucmVtb3ZlRGF0YVByZWZpeCkge1xuICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoZGF0YVVybCkgPT5cbiAgICAgICAgZGF0YVVybC5zdWJzdHJpbmcoZGF0YVVybC5pbmRleE9mKCcsJykgKyAxKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZyb20ocHJvbWlzZSk7XG4gIH1cbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nimport { RdtFileReaderBase64 } from '../reader/rdt-file-reader-base64';\nexport const RDT_DEFAULT_FILE_READER = new InjectionToken('RDT_DEFAULT_FILE_READER', {\n factory: () => new RdtFileReaderBase64(),\n providedIn: 'root',\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlZmF1bHQtZmlsZS1yZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC90b2tlbnMvcmR0LWRlZmF1bHQtZmlsZS1yZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FFdkQseUJBQXlCLEVBQUU7SUFDM0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksbUJBQW1CLEVBQUU7SUFDeEMsVUFBVSxFQUFFLE1BQU07Q0FDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXIgfSBmcm9tICcuLi9yZWFkZXIvcmR0LWZpbGUtcmVhZGVyJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXJCYXNlNjQgfSBmcm9tICcuLi9yZWFkZXIvcmR0LWZpbGUtcmVhZGVyLWJhc2U2NCc7XG5cbmV4cG9ydCBjb25zdCBSRFRfREVGQVVMVF9GSUxFX1JFQURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgUmR0RmlsZVJlYWRlcjx1bmtub3duPlxuPignUkRUX0RFRkFVTFRfRklMRV9SRUFERVInLCB7XG4gIGZhY3Rvcnk6ICgpID0+IG5ldyBSZHRGaWxlUmVhZGVyQmFzZTY0KCksXG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pO1xuIl19","import { inject, InjectionToken } from '@angular/core';\nimport { RdtTranslateService } from '@ngrdt/core';\nexport function fileLabelTranslate(translate, files) {\n const count = files.length;\n if (count === 0) {\n return translate.instant('RDT_FILE_LABEL_EMPTY');\n }\n if (count === 1) {\n return translate.instant('RDT_FILE_LABEL_SINGLE', {\n fileName: files[0].fileName,\n });\n }\n if (count >= 2 && count <= 4) {\n return translate.instant('RDT_FILE_LABEL_FEW', { count });\n }\n return translate.instant('RDT_FILE_LABEL_MANY', { count });\n}\nexport const RDT_DEFAULT_FILE_LABEL_FN = new InjectionToken('RDT_DEFAULT_FILE_LABEL_FN', {\n providedIn: 'root',\n factory: () => {\n const translate = inject(RdtTranslateService);\n return (files) => fileLabelTranslate(translate, files);\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlZmF1bHQtbGFiZWwtZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC90b2tlbnMvcmR0LWRlZmF1bHQtbGFiZWwtZm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsU0FBOEIsRUFDOUIsS0FBZ0I7SUFFaEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFO1lBQ2hELFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFHRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FDekQsMkJBQTJCLEVBQzNCO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmdyZHQvY29yZSc7XG5pbXBvcnQgeyBSZHRGaWxlIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVMYWJlbFRyYW5zbGF0ZShcbiAgdHJhbnNsYXRlOiBSZHRUcmFuc2xhdGVTZXJ2aWNlLFxuICBmaWxlczogUmR0RmlsZVtdXG4pIHtcbiAgY29uc3QgY291bnQgPSBmaWxlcy5sZW5ndGg7XG4gIGlmIChjb3VudCA9PT0gMCkge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnUkRUX0ZJTEVfTEFCRUxfRU1QVFknKTtcbiAgfVxuICBpZiAoY291bnQgPT09IDEpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ1JEVF9GSUxFX0xBQkVMX1NJTkdMRScsIHtcbiAgICAgIGZpbGVOYW1lOiBmaWxlc1swXS5maWxlTmFtZSxcbiAgICB9KTtcbiAgfVxuICBpZiAoY291bnQgPj0gMiAmJiBjb3VudCA8PSA0KSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdSRFRfRklMRV9MQUJFTF9GRVcnLCB7IGNvdW50IH0pO1xuICB9XG4gIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnUkRUX0ZJTEVfTEFCRUxfTUFOWScsIHsgY291bnQgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFJkdEZpbGVMYWJlbEZuID0gKGZpbGVzOiBSZHRGaWxlW10pID0+IHN0cmluZztcbmV4cG9ydCBjb25zdCBSRFRfREVGQVVMVF9GSUxFX0xBQkVMX0ZOID0gbmV3IEluamVjdGlvblRva2VuPFJkdEZpbGVMYWJlbEZuPihcbiAgJ1JEVF9ERUZBVUxUX0ZJTEVfTEFCRUxfRk4nLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZSA9IGluamVjdChSZHRUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICAgIHJldHVybiAoZmlsZXM6IFJkdEZpbGVbXSkgPT4gZmlsZUxhYmVsVHJhbnNsYXRlKHRyYW5zbGF0ZSwgZmlsZXMpO1xuICAgIH0sXG4gIH1cbik7XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const RDT_DEFAULT_MAX_FILE_SIZE = new InjectionToken('RDT_DEFAULT_MAX_FILE_SIZE', {\n factory: () => '100 MB',\n providedIn: 'root',\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlZmF1bHQtbWF4LWZpbGUtc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9maWxlLWlucHV0L3Rva2Vucy9yZHQtZGVmYXVsdC1tYXgtZmlsZS1zaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQ3pELDJCQUEyQixFQUMzQjtJQUNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRO0lBQ3ZCLFVBQVUsRUFBRSxNQUFNO0NBQ25CLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHRGaWxlU2l6ZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBSRFRfREVGQVVMVF9NQVhfRklMRV9TSVpFID0gbmV3IEluamVjdGlvblRva2VuPFJkdEZpbGVTaXplPihcbiAgJ1JEVF9ERUZBVUxUX01BWF9GSUxFX1NJWkUnLFxuICB7XG4gICAgZmFjdG9yeTogKCkgPT4gJzEwMCBNQicsXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICB9XG4pO1xuIl19","import { booleanAttribute, computed, Directive, effect, inject, input, linkedSignal, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl } from '@angular/forms';\nimport { RdtFileUtils, } from '@ngrdt/utils';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined } from '../../utils';\nimport { NO_OP_FILE_READER } from './reader/rdt-file-reader-noop';\nimport { RDT_DEFAULT_FILE_READER } from './tokens/rdt-default-file-reader';\nimport { RDT_DEFAULT_FILE_LABEL_FN } from './tokens/rdt-default-label-fn';\nimport { RDT_DEFAULT_MAX_FILE_SIZE } from './tokens/rdt-default-max-file-size';\nimport * as i0 from \"@angular/core\";\nexport class RdtFileInputComponent extends RdtBaseFormInputComponent {\n defaultFileReader = inject(RDT_DEFAULT_FILE_READER);\n defaultMaxFileSize = inject(RDT_DEFAULT_MAX_FILE_SIZE);\n defaultLabelFn = inject(RDT_DEFAULT_FILE_LABEL_FN);\n readerInput = input(this.defaultFileReader, {\n alias: 'reader',\n });\n reader = linkedSignal(() => this.readerInput());\n acceptInput = input(undefined, { alias: 'accept', transform: nullToUndefined });\n accept = linkedSignal(() => {\n const acceptInput = this.acceptInput();\n return !acceptInput || Array.isArray(acceptInput)\n ? acceptInput\n : [acceptInput];\n });\n jointAccept = computed(() => this.accept()?.join(','));\n maxFileSizeInput = input(this.defaultMaxFileSize, {\n alias: 'maxFileSize',\n transform: nullToUndefined,\n });\n maxFileSize = linkedSignal(() => this.maxFileSizeInput());\n maxFileSizeInBytes = computed(() => {\n const maxFileSize = this.maxFileSize();\n return maxFileSize ? RdtFileUtils.fileSizeToBytes(maxFileSize) : null;\n });\n labelFn = input(this.defaultLabelFn);\n multiple = input(false, { transform: booleanAttribute });\n labelCtrl = new FormControl(null);\n touchedEffect = effect(() => {\n const touched = this.touched();\n if (touched) {\n this.labelCtrl.markAsTouched();\n }\n else {\n this.labelCtrl.markAsUntouched();\n }\n });\n errorEffect = effect(() => {\n this.labelCtrl?.setErrors(this.visibleErrors());\n });\n ngOnInit() {\n super.ngOnInit();\n this.control()?.addValidators(this._maxFileSizeValidator);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.control()?.removeValidators(this._maxFileSizeValidator);\n }\n onFileSelected(event) {\n const target = event.target;\n if (!target.files) {\n return;\n }\n let shouldRead = true;\n const maxBytes = this.maxFileSizeInBytes();\n if (maxBytes !== null) {\n const files = Array.from(target.files);\n for (const file of files) {\n if (file.size > maxBytes) {\n shouldRead = false;\n break;\n }\n }\n }\n const reader = shouldRead\n ? this.reader()\n : NO_OP_FILE_READER;\n reader\n .readAll(Array.from(target.files))\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((files) => {\n this.onChange(files);\n this.writeValue(files);\n });\n }\n writeValue(value) {\n super.writeValue(value);\n this.setInnerValue(value);\n }\n setInnerValue(files) {\n if (this.labelCtrl) {\n const label = this.labelFn()(files ?? []);\n this.labelCtrl.setValue(label);\n }\n }\n clear() {\n this.onInternalValueChange(null);\n }\n _maxFileSizeValidator = (ctrl) => {\n const maxSize = this.maxFileSizeInBytes();\n if (maxSize === null ||\n !Array.isArray(ctrl.value) ||\n ctrl.value.length === 0) {\n return null;\n }\n const files = ctrl.value;\n for (const file of files) {\n if (file['size'] !== undefined && file.size > maxSize) {\n return {\n maxFileSize: {\n max: maxSize,\n actual: file.size,\n },\n };\n }\n }\n return null;\n };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFileInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtFileInputComponent, isStandalone: true, inputs: { readerInput: { classPropertyName: \"readerInput\", publicName: \"reader\", isSignal: true, isRequired: false, transformFunction: null }, acceptInput: { classPropertyName: \"acceptInput\", publicName: \"accept\", isSignal: true, isRequired: false, transformFunction: null }, maxFileSizeInput: { classPropertyName: \"maxFileSizeInput\", publicName: \"maxFileSize\", isSignal: true, isRequired: false, transformFunction: null }, labelFn: { classPropertyName: \"labelFn\", publicName: \"labelFn\", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFileInputComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2ZpbGUtaW5wdXQvcmR0LWZpbGUtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFLTCxZQUFZLEdBRWIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFRL0UsTUFBTSxPQUFnQixxQkFFcEIsU0FBUSx5QkFBK0I7SUFDcEIsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDcEQsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDdkQsY0FBYyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTdELFdBQVcsR0FBRyxLQUFLLENBQzFCLElBQUksQ0FBQyxpQkFB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QyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLO1FBQ2IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxxQkFBcUIsR0FBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQyxJQUNFLE9BQU8sS0FBSyxJQUFJO1lBQ2hCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFDdkIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFrQixDQUFDO1FBQ3RDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7Z0JBQ3RELE9BQU87b0JBQ0wsV0FBVyxFQUFFO3dCQUNYLEdBQUcsRUFBRSxPQUFPO3dCQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtxQkFDbEI7aUJBQ0YsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7dUdBeklrQixxQkFBcUI7MkZBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIE51bGxhYmxlLFxuICBSZHRDb21iaW5lZE1pbWVUeXBlLFxuICBSZHRGaWxlLFxuICBSZHRGaWxlU2l6ZSxcbiAgUmR0RmlsZVV0aWxzLFxuICBSZHRNaW1lVHlwZSxcbn0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IG51bGxUb1VuZGVmaW5lZCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXIgfSBmcm9tICcuL3JlYWRlci9yZHQtZmlsZS1yZWFkZXInO1xuaW1wb3J0IHsgTk9fT1BfRklMRV9SRUFERVIgfSBmcm9tICcuL3JlYWRlci9yZHQtZmlsZS1yZWFkZXItbm9vcCc7XG5pbXBvcnQgeyBSRFRfREVGQVVMVF9GSUxFX1JFQURFUiB9IGZyb20gJy4vdG9rZW5zL3JkdC1kZWZhdWx0LWZpbGUtcmVhZGVyJztcbmltcG9ydCB7IFJEVF9ERUZBVUxUX0ZJTEVfTEFCRUxfRk4gfSBmcm9tICcuL3Rva2Vucy9yZHQtZGVmYXVsdC1sYWJlbC1mbic7XG5pbXBvcnQgeyBSRFRfREVGQVVMVF9NQVhfRklMRV9TSVpFIH0gZnJvbSAnLi90b2tlbnMvcmR0LWRlZmF1bHQtbWF4LWZpbGUtc2l6ZSc7XG5cbnR5cGUgQWNjZXB0VHlwZSA9XG4gIHwgKFJkdE1pbWVUeXBlIHwgUmR0Q29tYmluZWRNaW1lVHlwZSlbXVxuICB8IFJkdE1pbWVUeXBlXG4gIHwgUmR0Q29tYmluZWRNaW1lVHlwZTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0RmlsZUlucHV0Q29tcG9uZW50PFxuICBURXh0ID0gc3RyaW5nXG4+IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxURXh0PiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0RmlsZVJlYWRlciA9IGluamVjdChSRFRfREVGQVVMVF9GSUxFX1JFQURFUik7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0TWF4RmlsZVNpemUgPSBpbmplY3QoUkRUX0RFRkFVTFRfTUFYX0ZJTEVfU0laRSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0TGFiZWxGbiA9IGluamVjdChSRFRfREVGQVVMVF9GSUxFX0xBQkVMX0ZOKTtcblxuICByZWFkb25seSByZWFkZXJJbnB1dCA9IGlucHV0PFJkdEZpbGVSZWFkZXI8VEV4dD4+KFxuICAgIHRoaXMuZGVmYXVsdEZpbGVSZWFkZXIgYXMgUmR0RmlsZVJlYWRlcjxURXh0PixcbiAgICB7XG4gICAgICBhbGlhczogJ3JlYWRlcicsXG4gICAgfVxuICApO1xuICByZWFkb25seSByZWFkZXIgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5yZWFkZXJJbnB1dCgpKTtcblxuICByZWFkb25seSBhY2NlcHRJbnB1dCA9IGlucHV0PEFjY2VwdFR5cGUgfCB1bmRlZmluZWQsIE51bGxhYmxlPEFjY2VwdFR5cGU+PihcbiAgICB1bmRlZmluZWQsXG4gICAgeyBhbGlhczogJ2FjY2VwdCcsIHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkIH1cbiAgKTtcbiAgcmVhZG9ubHkgYWNjZXB0ID0gbGlua2VkU2lnbmFsKCgpID0+IHtcbiAgICBjb25zdCBhY2NlcHRJbnB1dCA9IHRoaXMuYWNjZXB0SW5wdXQoKTtcbiAgICByZXR1cm4gIWFjY2VwdElucHV0IHx8IEFycmF5LmlzQXJyYXkoYWNjZXB0SW5wdXQpXG4gICAgICA/IGFjY2VwdElucHV0XG4gICAgICA6IFthY2NlcHRJbnB1dF07XG4gIH0pO1xuICByZWFkb25seSBqb2ludEFjY2VwdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWNjZXB0KCk/LmpvaW4oJywnKSk7XG5cbiAgcmVhZG9ubHkgbWF4RmlsZVNpemVJbnB1dCA9IGlucHV0PFxuICAgIE51bGxhYmxlPFJkdEZpbGVTaXplPixcbiAgICBSZHRGaWxlU2l6ZSB8IHVuZGVmaW5lZFxuICA+KHRoaXMuZGVmYXVsdE1heEZpbGVTaXplLCB7XG4gICAgYWxpYXM6ICdtYXhGaWxlU2l6ZScsXG4gICAgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQsXG4gIH0pO1xuICByZWFkb25seSBtYXhGaWxlU2l6ZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLm1heEZpbGVTaXplSW5wdXQoKSk7XG4gIHJlYWRvbmx5IG1heEZpbGVTaXplSW5CeXRlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtYXhGaWxlU2l6ZSA9IHRoaXMubWF4RmlsZVNpemUoKTtcbiAgICByZXR1cm4gbWF4RmlsZVNpemUgPyBSZHRGaWxlVXRpbHMuZmlsZVNpemVUb0J5dGVzKG1heEZpbGVTaXplKSA6IG51bGw7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGxhYmVsRm4gPSBpbnB1dCh0aGlzLmRlZmF1bHRMYWJlbEZuKTtcbiAgcmVhZG9ubHkgbXVsdGlwbGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsQ3RybCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG91Y2hlZEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdG91Y2hlZCA9IHRoaXMudG91Y2hlZCgpO1xuICAgIGlmICh0b3VjaGVkKSB7XG4gICAgICB0aGlzLmxhYmVsQ3RybC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGFiZWxDdHJsLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9yRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmxhYmVsQ3RybD8uc2V0RXJyb3JzKHRoaXMudmlzaWJsZUVycm9ycygpKTtcbiAgfSk7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmNvbnRyb2woKT8uYWRkVmFsaWRhdG9ycyh0aGlzLl9tYXhGaWxlU2l6ZVZhbGlkYXRvcik7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuY29udHJvbCgpPy5yZW1vdmVWYWxpZGF0b3JzKHRoaXMuX21heEZpbGVTaXplVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoIXRhcmdldC5maWxlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzaG91bGRSZWFkID0gdHJ1ZTtcbiAgICBjb25zdCBtYXhCeXRlcyA9IHRoaXMubWF4RmlsZVNpemVJbkJ5dGVzKCk7XG4gICAgaWYgKG1heEJ5dGVzICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20odGFyZ2V0LmZpbGVzKTtcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gbWF4Qnl0ZXMpIHtcbiAgICAgICAgICBzaG91bGRSZWFkID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZWFkZXIgPSBzaG91bGRSZWFkXG4gICAgICA/IHRoaXMucmVhZGVyKClcbiAgICAgIDogKE5PX09QX0ZJTEVfUkVBREVSIGFzIHVua25vd24gYXMgUmR0RmlsZVJlYWRlcjxURXh0Pik7XG5cbiAgICByZWFkZXJcbiAgICAgIC5yZWFkQWxsKEFycmF5LmZyb20odGFyZ2V0LmZpbGVzKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoZmlsZXMpID0+IHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShmaWxlcyk7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShmaWxlcyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMuc2V0SW5uZXJWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldElubmVyVmFsdWUoZmlsZXM6IE51bGxhYmxlPFJkdEZpbGVbXT4pIHtcbiAgICBpZiAodGhpcy5sYWJlbEN0cmwpIHtcbiAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5sYWJlbEZuKCkoZmlsZXMgPz8gW10pO1xuICAgICAgdGhpcy5sYWJlbEN0cmwuc2V0VmFsdWUobGFiZWwpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjbGVhcigpIHtcbiAgICB0aGlzLm9uSW50ZXJuYWxWYWx1ZUNoYW5nZShudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgX21heEZpbGVTaXplVmFsaWRhdG9yOiBWYWxpZGF0b3JGbiA9IChjdHJsKSA9PiB7XG4gICAgY29uc3QgbWF4U2l6ZSA9IHRoaXMubWF4RmlsZVNpemVJbkJ5dGVzKCk7XG4gICAgaWYgKFxuICAgICAgbWF4U2l6ZSA9PT0gbnVsbCB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkoY3RybC52YWx1ZSkgfHxcbiAgICAgIGN0cmwudmFsdWUubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlcyA9IGN0cmwudmFsdWUgYXMgUmR0RmlsZVtdO1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgaWYgKGZpbGVbJ3NpemUnXSAhPT0gdW5kZWZpbmVkICYmIGZpbGUuc2l6ZSA+IG1heFNpemUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtYXhGaWxlU2l6ZToge1xuICAgICAgICAgICAgbWF4OiBtYXhTaXplLFxuICAgICAgICAgICAgYWN0dWFsOiBmaWxlLnNpemUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG59XG4iXX0=","import { RdtFileUtils } from '@ngrdt/utils';\nimport { from } from 'rxjs';\nimport { RdtFileReader } from './rdt-file-reader';\nexport class RdtFileReaderArrayBuffer extends RdtFileReader {\n extractData(file) {\n return from(RdtFileUtils.fileAsArrayBuffer(file));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLWFycmF5LWJ1ZmZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9maWxlLWlucHV0L3JlYWRlci9yZHQtZmlsZS1yZWFkZXItYXJyYXktYnVmZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQTBCO0lBQ3RFLFdBQVcsQ0FBQyxJQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkdEZpbGVVdGlscyB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZHRGaWxlUmVhZGVyIH0gZnJvbSAnLi9yZHQtZmlsZS1yZWFkZXInO1xuXG5leHBvcnQgY2xhc3MgUmR0RmlsZVJlYWRlckFycmF5QnVmZmVyIGV4dGVuZHMgUmR0RmlsZVJlYWRlcjxBcnJheUJ1ZmZlcj4ge1xuICBleHRyYWN0RGF0YShmaWxlOiBGaWxlKSB7XG4gICAgcmV0dXJuIGZyb20oUmR0RmlsZVV0aWxzLmZpbGVBc0FycmF5QnVmZmVyKGZpbGUpKTtcbiAgfVxufVxuIl19","import { RdtFileUtils } from '@ngrdt/utils';\nimport { from } from 'rxjs';\nimport { RdtFileReader } from './rdt-file-reader';\nexport class VnshFileReaderText extends RdtFileReader {\n encoding;\n constructor(encoding) {\n super();\n this.encoding = encoding;\n }\n extractData(file) {\n return from(RdtFileUtils.fileAsText(file, this.encoding));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLXRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC9yZWFkZXIvcmR0LWZpbGUtcmVhZGVyLXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQXFCO0lBQ3hDO0lBQW5CLFlBQW1CLFFBQTZCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFMsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7SUFFaEQsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsbEVuY29kaW5nQWxpYXNlcywgUmR0RmlsZVV0aWxzIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXIgfSBmcm9tICcuL3JkdC1maWxlLXJlYWRlcic7XG5cbmV4cG9ydCBjbGFzcyBWbnNoRmlsZVJlYWRlclRleHQgZXh0ZW5kcyBSZHRGaWxlUmVhZGVyPHN0cmluZz4ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW5jb2Rpbmc/OiBBbGxFbmNvZGluZ0FsaWFzZXMpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIGV4dHJhY3REYXRhKGZpbGU6IEZpbGUpIHtcbiAgICByZXR1cm4gZnJvbShSZHRGaWxlVXRpbHMuZmlsZUFzVGV4dChmaWxlLCB0aGlzLmVuY29kaW5nKSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, input } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined, nullToUndefinedNumeric, } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtNumericInputComponent extends RdtBaseFormInputComponent {\n min = input(undefined, {\n transform: nullToUndefinedNumeric,\n });\n max = input(undefined, {\n transform: nullToUndefinedNumeric,\n });\n step = input(undefined, {\n transform: nullToUndefinedNumeric,\n });\n autocomplete = input(undefined, {\n transform: nullToUndefined,\n });\n isEmpty(value) {\n return value === null;\n }\n toExternalValue(internalValue) {\n if (typeof internalValue === 'number') {\n return internalValue;\n }\n else if (internalValue && typeof internalValue === 'string') {\n return parseFloat(internalValue);\n }\n return null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtNumericInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtNumericInputComponent, isStandalone: true, inputs: { min: { classPropertyName: \"min\", publicName: \"min\", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: \"max\", publicName: \"max\", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: \"step\", publicName: \"step\", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: \"autocomplete\", publicName: \"autocomplete\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtNumericInputComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LW51bWVyaWMtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL251bWVyaWMtaW5wdXQvcmR0LW51bWVyaWMtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysc0JBQXNCLEdBRXZCLE1BQU0sYUFBYSxDQUFDOztBQUdyQixNQUFNLE9BQWdCLHdCQUF5QixTQUFRLHlCQUV0RDtJQUNVLEdBQUcsR0FBRyxLQUFLLENBQTJDLFNBQVMsRUFBRTtRQUN4RSxTQUFTLEVBQUUsc0JBQXNCO0tBQ2xDLENBQUMsQ0FBQztJQUNNLEdBQUcsR0FBRyxLQUFLLENBQTJDLFNBQVMsRUFBRTtRQUN4RSxTQUFTLEVBQUUsc0JBQXNCO0tBQ2xDLENBQUMsQ0FBQztJQUNNLElBQUksR0FBRyxLQUFLLENBQTJDLFNBQVMsRUFBRTtRQUN6RSxTQUFTLEVBQUUsc0JBQXNCO0tBQ2xDLENBQUMsQ0FBQztJQUNNLFlBQVksR0FBRyxLQUFLLENBRzNCLFNBQVMsRUFBRTtRQUNYLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUMsQ0FBQztJQUVnQixPQUFPLENBQUMsS0FBb0I7UUFDN0MsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFa0IsZUFBZSxDQUNoQyxhQUE0QjtRQUU1QixJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxJQUFJLGFBQWEsSUFBSSxPQUFPLGFBQWEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5RCxPQUFPLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3VHQWhDbUIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBRDdDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9yZHQtYmFzZS1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBudWxsVG9VbmRlZmluZWQsXG4gIG51bGxUb1VuZGVmaW5lZE51bWVyaWMsXG4gIFJkdEF1dG9jb21wbGV0ZU9wdGlvbnMsXG59IGZyb20gJy4uLy4uL3V0aWxzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0TnVtZXJpY0lucHV0Q29tcG9uZW50IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxcbiAgbnVtYmVyIHwgbnVsbFxuPiB7XG4gIHJlYWRvbmx5IG1pbiA9IGlucHV0PG51bWJlciB8IG51bGwsIE51bGxhYmxlPG51bWJlciB8IHN0cmluZz4+KHVuZGVmaW5lZCwge1xuICAgIHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyxcbiAgfSk7XG4gIHJlYWRvbmx5IG1heCA9IGlucHV0PG51bWJlciB8IG51bGwsIE51bGxhYmxlPG51bWJlciB8IHN0cmluZz4+KHVuZGVmaW5lZCwge1xuICAgIHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyxcbiAgfSk7XG4gIHJlYWRvbmx5IHN0ZXAgPSBpbnB1dDxudW1iZXIgfCBudWxsLCBOdWxsYWJsZTxudW1iZXIgfCBzdHJpbmc+Pih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZE51bWVyaWMsXG4gIH0pO1xuICByZWFkb25seSBhdXRvY29tcGxldGUgPSBpbnB1dDxcbiAgICBSZHRBdXRvY29tcGxldGVPcHRpb25zIHwgdW5kZWZpbmVkLFxuICAgIE51bGxhYmxlPFJkdEF1dG9jb21wbGV0ZU9wdGlvbnM+XG4gID4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQsXG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc0VtcHR5KHZhbHVlOiBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHRvRXh0ZXJuYWxWYWx1ZShcbiAgICBpbnRlcm5hbFZhbHVlOiBudW1iZXIgfCBudWxsXG4gICk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgaW50ZXJuYWxWYWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBpbnRlcm5hbFZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaW50ZXJuYWxWYWx1ZSAmJiB0eXBlb2YgaW50ZXJuYWxWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KGludGVybmFsVmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19","export function getRdtSelectPage(data, pageIndex, pageSize) {\n if (pageSize < 1) {\n throw new Error('Invalid page size');\n }\n if (pageIndex < 0) {\n throw new Error('Invalid page index');\n }\n if (pageIndex * pageSize > data.length) {\n return {\n data: [],\n totalCount: data.length,\n pageIndex: pageIndex,\n };\n }\n const start = pageIndex * pageSize;\n const end = start + pageSize;\n const items = data.slice(start, end);\n return {\n data: items,\n totalCount: data.length,\n pageIndex: pageIndex,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvc2VsZWN0L3V0aWxzL3BhZ2luYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsSUFBNkIsRUFDN0IsU0FBaUIsRUFDakIsUUFBZ0I7SUFFaEIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksU0FBUyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkMsT0FBTztZQUNMLElBQUksRUFBRSxFQUFFO1lBQ1IsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ3ZCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUNuQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsUUFBUSxDQUFDO0lBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLE9BQU87UUFDTCxJQUFJLEVBQUUsS0FBSztRQUNYLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTTtRQUN2QixTQUFTLEVBQUUsU0FBUztLQUNyQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkdFNlbGVjdFBhZ2UgfSBmcm9tICcuLi9kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdExhYmVsVmFsdWUgfSBmcm9tICcuL2xhYmVsLXZhbHVlLWlkJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJkdFNlbGVjdFBhZ2U8VFZhbHVlPihcbiAgZGF0YTogUmR0TGFiZWxWYWx1ZTxUVmFsdWU+W10sXG4gIHBhZ2VJbmRleDogbnVtYmVyLFxuICBwYWdlU2l6ZTogbnVtYmVyXG4pOiBSZHRTZWxlY3RQYWdlPFJkdExhYmVsVmFsdWU8VFZhbHVlPj4ge1xuICBpZiAocGFnZVNpemUgPCAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHBhZ2Ugc2l6ZScpO1xuICB9XG4gIGlmIChwYWdlSW5kZXggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHBhZ2UgaW5kZXgnKTtcbiAgfVxuICBpZiAocGFnZUluZGV4ICogcGFnZVNpemUgPiBkYXRhLmxlbmd0aCkge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBbXSxcbiAgICAgIHRvdGFsQ291bnQ6IGRhdGEubGVuZ3RoLFxuICAgICAgcGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgfTtcbiAgfVxuICBjb25zdCBzdGFydCA9IHBhZ2VJbmRleCAqIHBhZ2VTaXplO1xuICBjb25zdCBlbmQgPSBzdGFydCArIHBhZ2VTaXplO1xuICBjb25zdCBpdGVtcyA9IGRhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gIHJldHVybiB7XG4gICAgZGF0YTogaXRlbXMsXG4gICAgdG90YWxDb3VudDogZGF0YS5sZW5ndGgsXG4gICAgcGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gIH07XG59XG4iXX0=","export class RdtSelectDatasource {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9kYXRhc291cmNlL3JkdC1zZWxlY3QtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQWdCLG1CQUFtQjtDQVN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdFNlbGVjdFJlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IFJkdFNlbGVjdFBhZ2UgfSBmcm9tICcuL3JkdC1zZWxlY3QtcGFnZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRTZWxlY3REYXRhc291cmNlPFRJdGVtLCBUSWQ+IHtcbiAgYWJzdHJhY3QgZ2V0RGF0YShcbiAgICBwYXJhbXM6IFJkdFNlbGVjdFJlcXVlc3RQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxSZHRTZWxlY3RQYWdlPFRJdGVtPj47XG4gIGFic3RyYWN0IGdldExhYmVsKGl0ZW06IFRJdGVtKTogc3RyaW5nO1xuICBhYnN0cmFjdCBnZXRJZChpdGVtOiBUSXRlbSk6IFRJZDtcbiAgYWJzdHJhY3QgZ2V0SXRlbXNCeUlkcyhpZHM6IFRJZFtdKTogT2JzZXJ2YWJsZTxNYXA8VElkLCBUSXRlbT4+O1xuICBhYnN0cmFjdCByZWFkb25seSB0b3RhbENvdW50S25vd246IGJvb2xlYW47XG4gIGFic3RyYWN0IHJlYWRvbmx5IHF1ZXJ5UmVxdWlyZWQ6IGJvb2xlYW47XG59XG4iXX0=","import { of } from 'rxjs';\nimport { getRdtSelectPage } from '../utils/paginate';\nimport { RdtSelectDatasource } from './rdt-select-datasource';\nexport class RdtOfflineSelectDatasource extends RdtSelectDatasource {\n data;\n totalCountKnown = true;\n queryRequired = false;\n preprocessedData;\n constructor(data) {\n super();\n this.data = data;\n this.preprocessedData = this.preprocessData(data);\n }\n getData(params) {\n const page = getRdtSelectPage(this.filterData(params.query), params.pageIndex, params.pageSize);\n return of(page);\n }\n getLabel(item) {\n return item.label;\n }\n getId(item) {\n return item.value;\n }\n getItemsByIds(ids) {\n const result = new Map();\n for (const id of ids) {\n const item = this.preprocessedData.find((item) => item.value === id);\n if (item) {\n result.set(id, item);\n }\n }\n return of(result);\n }\n preprocessLabel(label) {\n return label.trim().toLowerCase();\n }\n preprocessData(data) {\n return data.map((item) => ({\n value: item.value,\n label: item.label,\n prepLabel: this.preprocessLabel(item.label),\n }));\n }\n filterData(query) {\n if (!query) {\n return this.preprocessedData;\n }\n const prepQuery = this.preprocessLabel(query);\n if (!prepQuery) {\n return this.preprocessedData;\n }\n return this.preprocessedData.filter((item) => item.prepLabel.includes(prepQuery));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LW9mZmxpbmUtc2VsZWN0LWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvc2VsZWN0L2RhdGFzb3VyY2UvcmR0LW9mZmxpbmUtc2VsZWN0LWRhdGFzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxNQUFNLE9BQU8sMEJBRVgsU0FBUSxtQkFBa0Q7SUFVckM7SUFUSCxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFFckIsZ0JBQWdCLENBSS9CO0lBRUosWUFBcUIsSUFBNkI7UUFDaEQsS0FBSyxFQUFFLENBQUM7UUFEVyxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUVoRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRVEsT0FBTyxDQUNkLE1BQThCO1FBRTlCLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFDN0IsTUFBTSxDQUFDLFNBQVMsRUFDaEIsTUFBTSxDQUFDLFFBQVEsQ0FDaEIsQ0FBQztRQUNGLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFDUSxRQUFRLENBQUMsSUFBMkI7UUFDM0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDUSxLQUFLLENBQUMsSUFBMkI7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFUSxhQUFhLENBQ3BCLEdBQWE7UUFFYixNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztRQUN4RCxLQUFLLE1BQU0sRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDckUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFUyxlQUFlLENBQUMsS0FBYTtRQUNyQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRVMsY0FBYyxDQUN0QixJQUE2QjtRQUU3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVTLFVBQVUsQ0FBQyxLQUFvQjtRQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQixDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQ25DLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmR0TGFiZWxWYWx1ZSB9IGZyb20gJy4uL3V0aWxzL2xhYmVsLXZhbHVlLWlkJztcbmltcG9ydCB7IGdldFJkdFNlbGVjdFBhZ2UgfSBmcm9tICcuLi91dGlscy9wYWdpbmF0ZSc7XG5pbXBvcnQgeyBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgeyBSZHRTZWxlY3REYXRhc291cmNlIH0gZnJvbSAnLi9yZHQtc2VsZWN0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgUmR0U2VsZWN0UGFnZSB9IGZyb20gJy4vcmR0LXNlbGVjdC1wYWdlJztcblxuZXhwb3J0IGNsYXNzIFJkdE9mZmxpbmVTZWxlY3REYXRhc291cmNlPFxuICBUVmFsdWUgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXJcbj4gZXh0ZW5kcyBSZHRTZWxlY3REYXRhc291cmNlPFJkdExhYmVsVmFsdWU8VFZhbHVlPiwgVFZhbHVlPiB7XG4gIG92ZXJyaWRlIHJlYWRvbmx5IHRvdGFsQ291bnRLbm93biA9IHRydWU7XG4gIG92ZXJyaWRlIHJlYWRvbmx5IHF1ZXJ5UmVxdWlyZWQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJlcHJvY2Vzc2VkRGF0YToge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgcHJlcExhYmVsOiBzdHJpbmc7XG4gICAgdmFsdWU6IFRWYWx1ZTtcbiAgfVtdO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRhdGE6IFJkdExhYmVsVmFsdWU8VFZhbHVlPltdKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnByZXByb2Nlc3NlZERhdGEgPSB0aGlzLnByZXByb2Nlc3NEYXRhKGRhdGEpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0RGF0YShcbiAgICBwYXJhbXM6IFJkdFNlbGVjdFJlcXVlc3RQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxSZHRTZWxlY3RQYWdlPFJkdExhYmVsVmFsdWU8VFZhbHVlPj4+IHtcbiAgICBjb25zdCBwYWdlID0gZ2V0UmR0U2VsZWN0UGFnZShcbiAgICAgIHRoaXMuZmlsdGVyRGF0YShwYXJhbXMucXVlcnkpLFxuICAgICAgcGFyYW1zLnBhZ2VJbmRleCxcbiAgICAgIHBhcmFtcy5wYWdlU2l6ZVxuICAgICk7XG4gICAgcmV0dXJuIG9mKHBhZ2UpO1xuICB9XG4gIG92ZXJyaWRlIGdldExhYmVsKGl0ZW06IFJkdExhYmVsVmFsdWU8VFZhbHVlPik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWw7XG4gIH1cbiAgb3ZlcnJpZGUgZ2V0SWQoaXRlbTogUmR0TGFiZWxWYWx1ZTxUVmFsdWU+KTogVFZhbHVlIHtcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldEl0ZW1zQnlJZHMoXG4gICAgaWRzOiBUVmFsdWVbXVxuICApOiBPYnNlcnZhYmxlPE1hcDxUVmFsdWUsIFJkdExhYmVsVmFsdWU8VFZhbHVlPj4+IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPFRWYWx1ZSwgUmR0TGFiZWxWYWx1ZTxUVmFsdWU+PigpO1xuICAgIGZvciAoY29uc3QgaWQgb2YgaWRzKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5wcmVwcm9jZXNzZWREYXRhLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IGlkKTtcbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIHJlc3VsdC5zZXQoaWQsIGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2YocmVzdWx0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmVwcm9jZXNzTGFiZWwobGFiZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGxhYmVsLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXByb2Nlc3NEYXRhKFxuICAgIGRhdGE6IFJkdExhYmVsVmFsdWU8VFZhbHVlPltdXG4gICk6IHsgbGFiZWw6IHN0cmluZzsgcHJlcExhYmVsOiBzdHJpbmc7IHZhbHVlOiBUVmFsdWUgfVtdIHtcbiAgICByZXR1cm4gZGF0YS5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxuICAgICAgcHJlcExhYmVsOiB0aGlzLnByZXByb2Nlc3NMYWJlbChpdGVtLmxhYmVsKSxcbiAgICB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsdGVyRGF0YShxdWVyeTogc3RyaW5nIHwgbnVsbCk6IFJkdExhYmVsVmFsdWU8VFZhbHVlPltdIHtcbiAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5wcmVwcm9jZXNzZWREYXRhO1xuICAgIH1cbiAgICBjb25zdCBwcmVwUXVlcnkgPSB0aGlzLnByZXByb2Nlc3NMYWJlbChxdWVyeSk7XG4gICAgaWYgKCFwcmVwUXVlcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByZXByb2Nlc3NlZERhdGE7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByZXByb2Nlc3NlZERhdGEuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgaXRlbS5wcmVwTGFiZWwuaW5jbHVkZXMocHJlcFF1ZXJ5KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==","export const rdtSelectInitialState = {\n initialized: false,\n query: null,\n nextPageIndex: 0,\n pageSize: 20,\n totalCount: 0,\n totalCountKnown: false,\n options: [],\n datasource: null,\n selectedMap: new Map(),\n fetchError: null,\n /* loadingValuePlaceholder: 'Načítání (ID = {id})...',\n missingValuePlaceholder: 'Neznámá hodnota (ID = {id})', */\n loadingValuePlaceholder: 'RDT_SELECT_LOADING_ID',\n missingValuePlaceholder: 'RDT_SELECT_UNKNOWN_ID',\n _fetchRequest: null,\n _fetchMissingRequest: null,\n _missingSelected: [],\n _unfetchableIds: [],\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3Qvc3RhdGUvcmR0LXNlbGVjdC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQkEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQTZCO0lBQzdELFdBQVcsRUFBRSxLQUFLO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLENBQUM7SUFDaEIsUUFBUSxFQUFFLEVBQUU7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLElBQUk7SUFDaEIsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFFO0lBQ3RCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCOzhEQUMwRDtJQUMxRCx1QkFBdUIsRUFBRSx1QkFBdUI7SUFDaEQsdUJBQXVCLEVBQUUsdUJBQXVCO0lBQ2hELGFBQWEsRUFBRSxJQUFJO0lBQ25CLG9CQUFvQixFQUFFLElBQUk7SUFDMUIsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQixlQUFlLEVBQUUsRUFBRTtDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0U2VsZWN0RGF0YXNvdXJjZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UvcmR0LXNlbGVjdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdExhYmVsVmFsdWVJZCB9IGZyb20gJy4uL3V0aWxzL2xhYmVsLXZhbHVlLWlkJztcbmltcG9ydCB7XG4gIFJkdFNlbGVjdEZldGNoTWlzc2luZ1JlcXVlc3QsXG4gIFJkdFNlbGVjdEZldGNoUmVxdWVzdCxcbn0gZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmR0U2VsZWN0U3RhdGU8VEl0ZW0sIFRJZD4ge1xuICBpbml0aWFsaXplZDogYm9vbGVhbjtcbiAgcXVlcnk6IHN0cmluZyB8IG51bGw7XG4gIG5leHRQYWdlSW5kZXg6IG51bWJlciB8IG51bGw7XG4gIHBhZ2VTaXplOiBudW1iZXI7XG4gIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgdG90YWxDb3VudEtub3duOiBib29sZWFuO1xuICBvcHRpb25zOiBSZHRMYWJlbFZhbHVlSWQ8VEl0ZW0sIFRJZD5bXTtcbiAgZGF0YXNvdXJjZTogUmR0U2VsZWN0RGF0YXNvdXJjZTxUSXRlbSwgVElkPiB8IG51bGw7XG4gIHNlbGVjdGVkTWFwOiBNYXA8VElkLCBSZHRMYWJlbFZhbHVlSWQ8VEl0ZW0sIFRJZD4+O1xuICBmZXRjaEVycm9yOiBhbnkgfCBudWxsO1xuICBsb2FkaW5nVmFsdWVQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBtaXNzaW5nVmFsdWVQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBfZmV0Y2hSZXF1ZXN0OiBSZHRTZWxlY3RGZXRjaFJlcXVlc3QgfCBudWxsO1xuICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogUmR0U2VsZWN0RmV0Y2hNaXNzaW5nUmVxdWVzdDxUSWQ+IHwgbnVsbDtcbiAgX21pc3NpbmdTZWxlY3RlZDogVElkW107XG4gIF91bmZldGNoYWJsZUlkczogVElkW107XG59XG5cbmV4cG9ydCBjb25zdCByZHRTZWxlY3RJbml0aWFsU3RhdGU6IFJkdFNlbGVjdFN0YXRlPGFueSwgYW55PiA9IHtcbiAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICBxdWVyeTogbnVsbCxcbiAgbmV4dFBhZ2VJbmRleDogMCxcbiAgcGFnZVNpemU6IDIwLFxuICB0b3RhbENvdW50OiAwLFxuICB0b3RhbENvdW50S25vd246IGZhbHNlLFxuICBvcHRpb25zOiBbXSxcbiAgZGF0YXNvdXJjZTogbnVsbCxcbiAgc2VsZWN0ZWRNYXA6IG5ldyBNYXAoKSxcbiAgZmV0Y2hFcnJvcjogbnVsbCxcbiAgLyogICBsb2FkaW5nVmFsdWVQbGFjZWhvbGRlcjogJ05hxI3DrXTDoW7DrSAoSUQgPSB7aWR9KS4uLicsXG4gIG1pc3NpbmdWYWx1ZVBsYWNlaG9sZGVyOiAnTmV6bsOhbcOhIGhvZG5vdGEgKElEID0ge2lkfSknLCAqL1xuICBsb2FkaW5nVmFsdWVQbGFjZWhvbGRlcjogJ1JEVF9TRUxFQ1RfTE9BRElOR19JRCcsXG4gIG1pc3NpbmdWYWx1ZVBsYWNlaG9sZGVyOiAnUkRUX1NFTEVDVF9VTktOT1dOX0lEJyxcbiAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IG51bGwsXG4gIF9taXNzaW5nU2VsZWN0ZWQ6IFtdLFxuICBfdW5mZXRjaGFibGVJZHM6IFtdLFxufTtcbiJdfQ==","export function compareSelectRequestParams(a, b) {\n return (a.query === b.query &&\n a.pageIndex === b.pageIndex &&\n a.pageSize === b.pageSize);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3QvdXRpbHMvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxDQUF5QixFQUN6QixDQUF5QjtJQUV6QixPQUFPLENBQ0wsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsS0FBSztRQUNuQixDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxTQUFTO1FBQzNCLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zIHtcbiAgcXVlcnk6IHN0cmluZyB8IG51bGw7XG4gIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJkdFNlbGVjdEZldGNoUmVxdWVzdCB7XG4gIHBhcmFtczogUmR0U2VsZWN0UmVxdWVzdFBhcmFtcztcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmR0U2VsZWN0RmV0Y2hNaXNzaW5nUmVxdWVzdDxUSWQ+IHtcbiAgaWRzOiBUSWRbXTtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlU2VsZWN0UmVxdWVzdFBhcmFtcyhcbiAgYTogUmR0U2VsZWN0UmVxdWVzdFBhcmFtcyxcbiAgYjogUmR0U2VsZWN0UmVxdWVzdFBhcmFtc1xuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgYS5xdWVyeSA9PT0gYi5xdWVyeSAmJlxuICAgIGEucGFnZUluZGV4ID09PSBiLnBhZ2VJbmRleCAmJlxuICAgIGEucGFnZVNpemUgPT09IGIucGFnZVNpemVcbiAgKTtcbn1cbiJdfQ==","import { computed, untracked } from '@angular/core';\nimport { patchState, signalStore, withComputed, withHooks, withMethods, withState, } from '@ngrx/signals';\nimport { compareSelectRequestParams, } from '../utils/request';\nimport { rdtSelectInitialState } from './rdt-select-state';\nfunction getRdtSelectStore(initialState = rdtSelectInitialState) {\n return signalStore(withState(initialState), withHooks({\n onDestroy(store) {\n store._fetchMissingRequest()?.subscription.unsubscribe();\n store._fetchRequest()?.subscription.unsubscribe();\n },\n }), withComputed((state) => ({\n hasMore: computed(() => state.nextPageIndex !== null),\n selectedItems: computed(() => {\n return Array.from(state.selectedMap().values());\n }),\n loadingOptions: computed(() => state._fetchRequest() !== null),\n loadingMissing: computed(() => state._fetchMissingRequest() !== null),\n loading: computed(() => state._fetchRequest() !== null ||\n state._fetchMissingRequest() !== null),\n // Shows selected + others while query is empty\n // Shows only query results while query has value\n visibleOptions: computed(() => {\n const items = state.options();\n const query = state.query();\n const selectedMap = state.selectedMap();\n const missing = state._missingSelected();\n const unfetchable = state._unfetchableIds();\n if (query) {\n return items.map((it) => ({\n ...it,\n selected: selectedMap.has(it.id),\n }));\n }\n const selected = [];\n const missingPlaceholder = state.missingValuePlaceholder();\n const loadingPlaceholder = state.loadingValuePlaceholder();\n const loadingPlaceholders = missing.map((id) => ({\n id,\n label: loadingPlaceholder + '::id=' + String(id),\n value: null,\n selected: true,\n }));\n const missingPlaceholders = unfetchable.map((id) => ({\n id,\n label: missingPlaceholder + '::id=' + String(id),\n value: null,\n selected: true,\n }));\n selected.push(...loadingPlaceholders);\n selected.push(...missingPlaceholders);\n items.forEach((item) => {\n selected.push({ ...item, selected: selectedMap.has(item.id) });\n });\n return selected;\n }),\n })), withMethods((store) => ({\n init(initialValue) {\n if (initialValue && initialValue.length > 0) {\n this.setSelected(initialValue ?? []);\n }\n else {\n patchState(store, { initialized: true });\n }\n },\n fetch() {\n const datasource = untracked(store.datasource);\n const index = untracked(store.nextPageIndex);\n const query = untracked(store.query);\n const pageSize = untracked(store.pageSize);\n if (!datasource || index === null) {\n return;\n }\n const params = {\n query: query,\n pageIndex: index,\n pageSize: pageSize,\n };\n const currentRequest = untracked(store._fetchRequest);\n if (currentRequest) {\n if (compareSelectRequestParams(currentRequest.params, params)) {\n return;\n }\n else {\n currentRequest.subscription.unsubscribe();\n }\n }\n const observer = this._getFetchObserver(params);\n const subscription = datasource.getData(params).subscribe(observer);\n // Offline datasource using `of()` emits value synchronously\n if (!subscription.closed) {\n patchState(store, {\n _fetchRequest: { subscription, params: params },\n });\n }\n },\n _getFetchObserver(requestParams) {\n return {\n next: (page) => this._onFetchSuccess(page, requestParams),\n error: (error) => this._onFetchError(error),\n complete: () => this._onFetchComplete(),\n };\n },\n _onFetchSuccess(page, requestParams) {\n let nextPageIndex = page.pageIndex + 1;\n if (page.totalCount === null) {\n if (page.data.length < requestParams.pageSize) {\n nextPageIndex = null;\n }\n }\n else if (requestParams.pageIndex * requestParams.pageSize + page.data.length >=\n page.totalCount) {\n nextPageIndex = null;\n }\n const options = [\n ...untracked(store.options),\n ...this._getLabelValueIds(page.data),\n ];\n patchState(store, {\n totalCount: page.totalCount ??\n Math.max(untracked(store.totalCount), page.pageIndex * requestParams.pageSize + page.data.length),\n nextPageIndex,\n totalCountKnown: page.totalCount !== null ||\n page.data.length < requestParams.pageSize,\n options,\n _fetchRequest: null,\n });\n this._loadMissingSelected();\n },\n _onFetchError(error) {\n patchState(store, {\n fetchError: getRdtSelectError(error),\n _fetchRequest: null,\n });\n },\n _onFetchComplete() {\n patchState(store, {\n _fetchRequest: null,\n });\n },\n setDatasource(datasource) {\n untracked(store._fetchRequest)?.subscription.unsubscribe();\n patchState(store, {\n datasource,\n _fetchRequest: null,\n fetchError: null,\n totalCountKnown: datasource.totalCountKnown,\n nextPageIndex: 0,\n totalCount: 0,\n options: [],\n });\n if (!datasource.queryRequired) {\n this.fetch();\n }\n else {\n this._loadMissingSelected();\n }\n },\n setQuery(query) {\n const datasource = untracked(store.datasource);\n if (query !== untracked(store.query)) {\n this.reset();\n patchState(store, { query });\n if (query || !datasource?.queryRequired) {\n this.fetch();\n }\n }\n },\n reset() {\n patchState(store, {\n query: null,\n nextPageIndex: 0,\n options: [],\n totalCount: 0,\n totalCountKnown: untracked(store.datasource)?.totalCountKnown ?? true,\n });\n },\n resetTotalCountKnown() {\n patchState(store, {\n totalCountKnown: untracked(store.datasource)?.totalCountKnown ?? true,\n });\n },\n setSelected(ids) {\n patchState(store, {\n _unfetchableIds: [],\n _missingSelected: ids,\n selectedMap: new Map(),\n });\n this._loadMissingSelected();\n },\n select(ids) {\n const oldMissing = untracked(store._missingSelected);\n const notInMissing = ids.filter((id) => !oldMissing.includes(id));\n if (notInMissing.length > 0) {\n patchState(store, {\n _missingSelected: oldMissing.concat(notInMissing),\n });\n this._loadMissingSelected();\n }\n },\n unselectAll() {\n const fetchMissingReq = untracked(store._fetchMissingRequest);\n if (fetchMissingReq) {\n fetchMissingReq.subscription.unsubscribe();\n }\n patchState(store, {\n _missingSelected: [],\n selectedMap: new Map(),\n _fetchMissingRequest: null,\n });\n },\n _setAndGetMissing() {\n const unfetchable = untracked(store._unfetchableIds);\n const allMissing = untracked(store._missingSelected);\n const items = untracked(store.options);\n const selectedMap = new Map(untracked(store.selectedMap));\n const newMissing = [];\n let selectedChanged = false;\n for (const id of allMissing) {\n const item = items.find((it) => it.id === id);\n if (item) {\n selectedMap.set(id, item);\n selectedChanged = true;\n }\n else if (!unfetchable.includes(id)) {\n newMissing.push(id);\n }\n }\n if (selectedChanged) {\n patchState(store, { selectedMap });\n }\n if (newMissing.length === 0) {\n this._cancelFetchMissingIfNeeded();\n }\n patchState(store, { _missingSelected: newMissing });\n return newMissing;\n },\n _loadMissingSelected() {\n const datasource = store.datasource();\n const reallyMissing = this._setAndGetMissing();\n if (!untracked(store.loading) && datasource) {\n if (reallyMissing.length > 0) {\n this._fetchMissing(reallyMissing, datasource);\n }\n else {\n patchState(store, { initialized: true });\n }\n }\n },\n _cancelFetchMissingIfNeeded() {\n const fetchMissingReq = untracked(store._fetchMissingRequest);\n const items = untracked(store.options);\n const missingEmpty = untracked(store._missingSelected).length === 0;\n if (fetchMissingReq) {\n if (fetchMissingReq.ids.every((id) => items.some((it) => it.id === id)) ||\n missingEmpty) {\n fetchMissingReq.subscription.unsubscribe();\n patchState(store, {\n _fetchMissingRequest: null,\n _missingSelected: [],\n });\n }\n }\n },\n _fetchMissing(ids, datasource) {\n if (ids.length === 0) {\n return;\n }\n const sub = datasource.getItemsByIds(ids).subscribe((map) => {\n const newMissing = [];\n const newSelected = new Map(untracked(store.selectedMap));\n const unfetchable = [...untracked(store._unfetchableIds)];\n for (const id of untracked(store._missingSelected)) {\n if (map.has(id)) {\n const value = map.get(id);\n const label = datasource.getLabel(value);\n newSelected.set(id, { label, value, id });\n }\n else if (ids.includes(id)) {\n console.error(`Item with id ${JSON.stringify(id)} not found by getItemsByIds().`, datasource);\n unfetchable.push(id);\n }\n else {\n newMissing.push(id);\n }\n }\n patchState(store, {\n _fetchMissingRequest: null,\n _missingSelected: newMissing,\n selectedMap: newSelected,\n _unfetchableIds: [...unfetchable],\n initialized: true,\n });\n this._loadMissingSelected();\n });\n if (!sub.closed) {\n patchState(store, {\n _fetchMissingRequest: { ids, subscription: sub },\n });\n }\n },\n selectSingle(id) {\n this.setSelected([id]);\n },\n toggle(id) {\n const oldMap = untracked(store.selectedMap);\n const datasource = untracked(store.datasource);\n if (!datasource) {\n throw new Error('Datasource is undefined');\n }\n const unfetchableIds = untracked(store._unfetchableIds);\n const missingSelectedIds = untracked(store._missingSelected);\n if (unfetchableIds.includes(id) || missingSelectedIds.includes(id)) {\n const newUnfetchableIds = unfetchableIds.filter((unfetchableId) => unfetchableId !== id);\n const newMissingSelected = missingSelectedIds.filter((missingId) => missingId !== id);\n patchState(store, {\n _unfetchableIds: newUnfetchableIds,\n _missingSelected: newMissingSelected,\n });\n if (newMissingSelected.length === 0) {\n this._cancelFetchMissingIfNeeded();\n }\n }\n else if (oldMap.has(id)) {\n const newMap = new Map(oldMap);\n newMap.delete(id);\n patchState(store, { selectedMap: newMap });\n }\n else {\n const item = untracked(store.options).find((it) => it.id === id);\n if (!item) {\n this.select([id]);\n }\n else {\n const newMap = new Map(oldMap);\n newMap.set(id, item);\n patchState(store, { selectedMap: newMap });\n }\n }\n },\n cancelFetch() {\n untracked(store._fetchRequest)?.subscription.unsubscribe();\n patchState(store, {\n _fetchRequest: null,\n fetchError: null,\n });\n },\n isSelected(item) {\n const datasource = untracked(store.datasource);\n if (!datasource) {\n return false;\n }\n const id = datasource.getId(item);\n return untracked(store.selectedMap).has(id);\n },\n setPageSize(size) {\n patchState(store, { pageSize: size });\n },\n _getLabelValueIds(items) {\n const datasource = untracked(store.datasource);\n if (!datasource) {\n throw new Error('Datasource not set!');\n }\n return items.map((item) => ({\n label: datasource.getLabel(item),\n value: item,\n id: datasource.getId(item),\n }));\n },\n })));\n}\nexport const RdtSelectStore = getRdtSelectStore();\nfunction getRdtSelectError(error) {\n if (typeof error === 'string') {\n return error;\n }\n else if (error instanceof Error) {\n return error.message;\n }\n else if (error && typeof error === 'object' && 'message' in error) {\n return error.message;\n }\n return 'RDT_SELECT_ERROR';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3Qvc3RhdGUvcmR0LXNlbGVjdC1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUNMLDBCQUEwQixHQUUzQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRSxTQUFTLGlCQUFpQixDQUFTLFlBQVksR0FBRyxxQkFBcUI7SUFDckUsT0FBTyxXQUFXLENBQ2hCLFNBQVMsQ0FBQyxZQUFzQyxDQUFDLEVBQ2pELFNBQVMsQ0FBQztRQUNSLFNBQVMsQ0FBQyxLQUFLO1lBQ2IsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pELEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEQsQ0FBQztLQUNGLENBQUMsRUFDRixZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQztRQUNyRCxhQUFhLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQs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Q0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFCLEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDaEMsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsRUFBRSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixFQUFZLENBQUM7QUFLNUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFVO0lBQ25DLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO1NBQU0sSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7U0FBTSxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksU0FBUyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3BFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgcGF0Y2hTdGF0ZSxcbiAgc2lnbmFsU3RvcmUsXG4gIHdpdGhDb21wdXRlZCxcbiAgd2l0aEhvb2tzLFxuICB3aXRoTWV0aG9kcyxcbiAgd2l0aFN0YXRlLFxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZHRTZWxlY3REYXRhc291cmNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9yZHQtc2VsZWN0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgUmR0U2VsZWN0UGFnZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UvcmR0LXNlbGVjdC1wYWdlJztcbmltcG9ydCB7XG4gIFJkdExhYmVsVmFsdWVJZCxcbiAgUmR0UmVuZGVyZWRTZWxlY3RPcHRpb24sXG59IGZyb20gJy4uL3V0aWxzL2xhYmVsLXZhbHVlLWlkJztcbmltcG9ydCB7XG4gIGNvbXBhcmVTZWxlY3RSZXF1ZXN0UGFyYW1zLFxuICBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zLFxufSBmcm9tICcuLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IHJkdFNlbGVjdEluaXRpYWxTdGF0ZSwgUmR0U2VsZWN0U3RhdGUgfSBmcm9tICcuL3JkdC1zZWxlY3Qtc3RhdGUnO1xuXG5mdW5jdGlvbiBnZXRSZHRTZWxlY3RTdG9yZTxULCBUSWQ+KGluaXRpYWxTdGF0ZSA9IHJkdFNlbGVjdEluaXRpYWxTdGF0ZSkge1xuICByZXR1cm4gc2lnbmFsU3RvcmUoXG4gICAgd2l0aFN0YXRlKGluaXRpYWxTdGF0ZSBhcyBSZHRTZWxlY3RTdGF0ZTxULCBUSWQ+KSxcbiAgICB3aXRoSG9va3Moe1xuICAgICAgb25EZXN0cm95KHN0b3JlKSB7XG4gICAgICAgIHN0b3JlLl9mZXRjaE1pc3NpbmdSZXF1ZXN0KCk/LnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICBzdG9yZS5fZmV0Y2hSZXF1ZXN0KCk/LnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICB3aXRoQ29tcHV0ZWQoKHN0YXRlKSA9PiAoe1xuICAgICAgaGFzTW9yZTogY29tcHV0ZWQoKCkgPT4gc3RhdGUubmV4dFBhZ2VJbmRleCAhPT0gbnVsbCksXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHN0YXRlLnNlbGVjdGVkTWFwKCkudmFsdWVzKCkpO1xuICAgICAgfSksXG4gICAgICBsb2FkaW5nT3B0aW9uczogY29tcHV0ZWQoKCkgPT4gc3RhdGUuX2ZldGNoUmVxdWVzdCgpICE9PSBudWxsKSxcbiAgICAgIGxvYWRpbmdNaXNzaW5nOiBjb21wdXRlZCgoKSA9PiBzdGF0ZS5fZmV0Y2hNaXNzaW5nUmVxdWVzdCgpICE9PSBudWxsKSxcbiAgICAgIGxvYWRpbmc6IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIHN0YXRlLl9mZXRjaFJlcXVlc3QoKSAhPT0gbnVsbCB8fFxuICAgICAgICAgIHN0YXRlLl9mZXRjaE1pc3NpbmdSZXF1ZXN0KCkgIT09IG51bGxcbiAgICAgICksXG4gICAgICAvLyBTaG93cyBzZWxlY3RlZCArIG90aGVycyB3aGlsZSBxdWVyeSBpcyBlbXB0eVxuICAgICAgLy8gU2hvd3Mgb25seSBxdWVyeSByZXN1bHRzIHdoaWxlIHF1ZXJ5IGhhcyB2YWx1ZVxuICAgICAgdmlzaWJsZU9wdGlvbnM6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBzdGF0ZS5vcHRpb25zKCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gc3RhdGUucXVlcnkoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRNYXAgPSBzdGF0ZS5zZWxlY3RlZE1hcCgpO1xuICAgICAgICBjb25zdCBtaXNzaW5nID0gc3RhdGUuX21pc3NpbmdTZWxlY3RlZCgpO1xuICAgICAgICBjb25zdCB1bmZldGNoYWJsZSA9IHN0YXRlLl91bmZldGNoYWJsZUlkcygpO1xuXG4gICAgICAgIGlmIChxdWVyeSkge1xuICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0KSA9PiAoe1xuICAgICAgICAgICAgLi4uaXQsXG4gICAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWRNYXAuaGFzKGl0LmlkKSxcbiAgICAgICAgICB9KSkgYXMgUmR0UmVuZGVyZWRTZWxlY3RPcHRpb248VCwgVElkPltdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkOiBSZHRSZW5kZXJlZFNlbGVjdE9wdGlvbjxULCBUSWQ+W10gPSBbXTtcbiAgICAgICAgY29uc3QgbWlzc2luZ1BsYWNlaG9sZGVyID0gc3RhdGUubWlzc2luZ1ZhbHVlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgY29uc3QgbG9hZGluZ1BsYWNlaG9sZGVyID0gc3RhdGUubG9hZGluZ1ZhbHVlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgY29uc3QgbG9hZGluZ1BsYWNlaG9sZGVycyA9IG1pc3NpbmcubWFwKChpZCkgPT4gKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBsYWJlbDogbG9hZGluZ1BsYWNlaG9sZGVyICsgJzo6aWQ9JyArIFN0cmluZyhpZCksXG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc3QgbWlzc2luZ1BsYWNlaG9sZGVycyA9IHVuZmV0Y2hhYmxlLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbGFiZWw6IG1pc3NpbmdQbGFjZWhvbGRlciArICc6OmlkPScgKyBTdHJpbmcoaWQpLFxuICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgICB9KSk7XG4gICAgICAgIHNlbGVjdGVkLnB1c2goLi4ubG9hZGluZ1BsYWNlaG9sZGVycyk7XG4gICAgICAgIHNlbGVjdGVkLnB1c2goLi4ubWlzc2luZ1BsYWNlaG9sZGVycyk7XG5cbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHNlbGVjdGVkLnB1c2goeyAuLi5pdGVtLCBzZWxlY3RlZDogc2VsZWN0ZWRNYXAuaGFzKGl0ZW0uaWQpIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkO1xuICAgICAgfSksXG4gICAgfSkpLFxuICAgIHdpdGhNZXRob2RzKChzdG9yZSkgPT4gKHtcbiAgICAgIGluaXQoaW5pdGlhbFZhbHVlOiBUSWRbXSB8IG51bGwpIHtcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSAmJiBpbml0aWFsVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWQoaW5pdGlhbFZhbHVlID8/IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGluaXRpYWxpemVkOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZmV0Y2goKSB7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdW50cmFja2VkKHN0b3JlLm5leHRQYWdlSW5kZXgpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHVudHJhY2tlZChzdG9yZS5xdWVyeSk7XG4gICAgICAgIGNvbnN0IHBhZ2VTaXplID0gdW50cmFja2VkKHN0b3JlLnBhZ2VTaXplKTtcbiAgICAgICAgaWYgKCFkYXRhc291cmNlIHx8IGluZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmFtczogUmR0U2VsZWN0UmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgICAgICBxdWVyeTogcXVlcnksXG4gICAgICAgICAgcGFnZUluZGV4OiBpbmRleCxcbiAgICAgICAgICBwYWdlU2l6ZTogcGFnZVNpemUsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSZXF1ZXN0ID0gdW50cmFja2VkKHN0b3JlLl9mZXRjaFJlcXVlc3QpO1xuICAgICAgICBpZiAoY3VycmVudFJlcXVlc3QpIHtcbiAgICAgICAgICBpZiAoY29tcGFyZVNlbGVjdFJlcXVlc3RQYXJhbXMoY3VycmVudFJlcXVlc3QucGFyYW1zLCBwYXJhbXMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRSZXF1ZXN0LnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvYnNlcnZlciA9IHRoaXMuX2dldEZldGNoT2JzZXJ2ZXIocGFyYW1zKTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZGF0YXNvdXJjZS5nZXREYXRhKHBhcmFtcykuc3Vic2NyaWJlKG9ic2VydmVyKTtcbiAgICAgICAgLy8gT2ZmbGluZSBkYXRhc291cmNlIHVzaW5nIGBvZigpYCBlbWl0cyB2YWx1ZSBzeW5jaHJvbm91c2x5XG4gICAgICAgIGlmICghc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIF9mZXRjaFJlcXVlc3Q6IHsgc3Vic2NyaXB0aW9uLCBwYXJhbXM6IHBhcmFtcyB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX2dldEZldGNoT2JzZXJ2ZXIoXG4gICAgICAgIHJlcXVlc3RQYXJhbXM6IFJkdFNlbGVjdFJlcXVlc3RQYXJhbXNcbiAgICAgICk6IE9ic2VydmVyPFJkdFNlbGVjdFBhZ2U8VD4+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuZXh0OiAocGFnZSkgPT4gdGhpcy5fb25GZXRjaFN1Y2Nlc3MocGFnZSwgcmVxdWVzdFBhcmFtcyksXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5fb25GZXRjaEVycm9yKGVycm9yKSxcbiAgICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5fb25GZXRjaENvbXBsZXRlKCksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgX29uRmV0Y2hTdWNjZXNzKFxuICAgICAgICBwYWdlOiBSZHRTZWxlY3RQYWdlPFQ+LFxuICAgICAgICByZXF1ZXN0UGFyYW1zOiBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zXG4gICAgICApIHtcbiAgICAgICAgbGV0IG5leHRQYWdlSW5kZXg6IG51bWJlciB8IG51bGwgPSBwYWdlLnBhZ2VJbmRleCArIDE7XG4gICAgICAgIGlmIChwYWdlLnRvdGFsQ291bnQgPT09IG51bGwpIHtcbiAgICAgICAgICBpZiAocGFnZS5kYXRhLmxlbmd0aCA8IHJlcXVlc3RQYXJhbXMucGFnZVNpemUpIHtcbiAgICAgICAgICAgIG5leHRQYWdlSW5kZXggPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICByZXF1ZXN0UGFyYW1zLnBhZ2VJbmRleCAqIHJlcXVlc3RQYXJhbXMucGFnZVNpemUgKyBwYWdlLmRhdGEubGVuZ3RoID49XG4gICAgICAgICAgcGFnZS50b3RhbENvdW50XG4gICAgICAgICkge1xuICAgICAgICAgIG5leHRQYWdlSW5kZXggPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBbXG4gICAgICAgICAgLi4udW50cmFja2VkKHN0b3JlLm9wdGlvbnMpLFxuICAgICAgICAgIC4uLnRoaXMuX2dldExhYmVsVmFsdWVJZHMocGFnZS5kYXRhKSxcbiAgICAgICAgXTtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIHRvdGFsQ291bnQ6XG4gICAgICAgICAgICBwYWdlLnRvdGFsQ291bnQgPz9cbiAgICAgICAgICAgIE1hdGgubWF4KFxuICAgICAgICAgICAgICB1bnRyYWNrZWQoc3RvcmUudG90YWxDb3VudCksXG4gICAgICAgICAgICAgIHBhZ2UucGFnZUluZGV4ICogcmVxdWVzdFBhcmFtcy5wYWdlU2l6ZSArIHBhZ2UuZGF0YS5sZW5ndGhcbiAgICAgICAgICAgICksXG4gICAgICAgICAgbmV4dFBhZ2VJbmRleCxcbiAgICAgICAgICB0b3RhbENvdW50S25vd246XG4gICAgICAgICAgICBwYWdlLnRvdGFsQ291bnQgIT09IG51bGwgfHxcbiAgICAgICAgICAgIHBhZ2UuZGF0YS5sZW5ndGggPCByZXF1ZXN0UGFyYW1zLnBhZ2VTaXplLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgIH0sXG4gICAgICBfb25GZXRjaEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIGZldGNoRXJyb3I6IGdldFJkdFNlbGVjdEVycm9yKGVycm9yKSxcbiAgICAgICAgICBfZmV0Y2hSZXF1ZXN0OiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBfb25GZXRjaENvbXBsZXRlKCkge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgc2V0RGF0YXNvdXJjZShkYXRhc291cmNlOiBSZHRTZWxlY3REYXRhc291cmNlPFQsIFRJZD4pIHtcbiAgICAgICAgdW50cmFja2VkKHN0b3JlLl9mZXRjaFJlcXVlc3QpPy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIGRhdGFzb3VyY2UsXG4gICAgICAgICAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgICAgICAgICBmZXRjaEVycm9yOiBudWxsLFxuICAgICAgICAgIHRvdGFsQ291bnRLbm93bjogZGF0YXNvdXJjZS50b3RhbENvdW50S25vd24sXG4gICAgICAgICAgbmV4dFBhZ2VJbmRleDogMCxcbiAgICAgICAgICB0b3RhbENvdW50OiAwLFxuICAgICAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFkYXRhc291cmNlLnF1ZXJ5UmVxdWlyZWQpIHtcbiAgICAgICAgICB0aGlzLmZldGNoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fbG9hZE1pc3NpbmdTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2V0UXVlcnkocXVlcnk6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgZGF0YXNvdXJjZSA9IHVudHJhY2tlZChzdG9yZS5kYXRhc291cmNlKTtcbiAgICAgICAgaWYgKHF1ZXJ5ICE9PSB1bnRyYWNrZWQoc3RvcmUucXVlcnkpKSB7XG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgcXVlcnkgfSk7XG4gICAgICAgICAgaWYgKHF1ZXJ5IHx8ICFkYXRhc291cmNlPy5xdWVyeVJlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZldGNoKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzZXQoKSB7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBxdWVyeTogbnVsbCxcbiAgICAgICAgICBuZXh0UGFnZUluZGV4OiAwLFxuICAgICAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgICAgIHRvdGFsQ291bnQ6IDAsXG4gICAgICAgICAgdG90YWxDb3VudEtub3duOiB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk/LnRvdGFsQ291bnRLbm93biA/PyB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICByZXNldFRvdGFsQ291bnRLbm93bigpIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIHRvdGFsQ291bnRLbm93bjogdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpPy50b3RhbENvdW50S25vd24gPz8gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgc2V0U2VsZWN0ZWQoaWRzOiBUSWRbXSkge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgX3VuZmV0Y2hhYmxlSWRzOiBbXSxcbiAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBpZHMsXG4gICAgICAgICAgc2VsZWN0ZWRNYXA6IG5ldyBNYXAoKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgIH0sXG4gICAgICBzZWxlY3QoaWRzOiBUSWRbXSkge1xuICAgICAgICBjb25zdCBvbGRNaXNzaW5nID0gdW50cmFja2VkKHN0b3JlLl9taXNzaW5nU2VsZWN0ZWQpO1xuICAgICAgICBjb25zdCBub3RJbk1pc3NpbmcgPSBpZHMuZmlsdGVyKChpZCkgPT4gIW9sZE1pc3NpbmcuaW5jbHVkZXMoaWQpKTtcbiAgICAgICAgaWYgKG5vdEluTWlzc2luZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgX21pc3NpbmdTZWxlY3RlZDogb2xkTWlzc2luZy5jb25jYXQobm90SW5NaXNzaW5nKSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVuc2VsZWN0QWxsKCkge1xuICAgICAgICBjb25zdCBmZXRjaE1pc3NpbmdSZXEgPSB1bnRyYWNrZWQoc3RvcmUuX2ZldGNoTWlzc2luZ1JlcXVlc3QpO1xuICAgICAgICBpZiAoZmV0Y2hNaXNzaW5nUmVxKSB7XG4gICAgICAgICAgZmV0Y2hNaXNzaW5nUmVxLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBbXSxcbiAgICAgICAgICBzZWxlY3RlZE1hcDogbmV3IE1hcCgpLFxuICAgICAgICAgIF9mZXRjaE1pc3NpbmdSZXF1ZXN0OiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBfc2V0QW5kR2V0TWlzc2luZygpIHtcbiAgICAgICAgY29uc3QgdW5mZXRjaGFibGUgPSB1bnRyYWNrZWQoc3RvcmUuX3VuZmV0Y2hhYmxlSWRzKTtcbiAgICAgICAgY29uc3QgYWxsTWlzc2luZyA9IHVudHJhY2tlZChzdG9yZS5fbWlzc2luZ1NlbGVjdGVkKTtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB1bnRyYWNrZWQoc3RvcmUub3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTWFwID0gbmV3IE1hcCh1bnRyYWNrZWQoc3RvcmUuc2VsZWN0ZWRNYXApKTtcbiAgICAgICAgY29uc3QgbmV3TWlzc2luZzogVElkW10gPSBbXTtcblxuICAgICAgICBsZXQgc2VsZWN0ZWRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgaWQgb2YgYWxsTWlzc2luZykge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5maW5kKChpdCkgPT4gaXQuaWQgPT09IGlkKTtcbiAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRNYXAuc2V0KGlkLCBpdGVtKTtcbiAgICAgICAgICAgIHNlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmICghdW5mZXRjaGFibGUuaW5jbHVkZXMoaWQpKSB7XG4gICAgICAgICAgICBuZXdNaXNzaW5nLnB1c2goaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VsZWN0ZWRDaGFuZ2VkKSB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzZWxlY3RlZE1hcCB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV3TWlzc2luZy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9jYW5jZWxGZXRjaE1pc3NpbmdJZk5lZWRlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgX21pc3NpbmdTZWxlY3RlZDogbmV3TWlzc2luZyB9KTtcbiAgICAgICAgcmV0dXJuIG5ld01pc3Npbmc7XG4gICAgICB9LFxuICAgICAgX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKSB7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSBzdG9yZS5kYXRhc291cmNlKCk7XG4gICAgICAgIGNvbnN0IHJlYWxseU1pc3NpbmcgPSB0aGlzLl9zZXRBbmRHZXRNaXNzaW5nKCk7XG4gICAgICAgIGlmICghdW50cmFja2VkKHN0b3JlLmxvYWRpbmcpICYmIGRhdGFzb3VyY2UpIHtcbiAgICAgICAgICBpZiAocmVhbGx5TWlzc2luZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9mZXRjaE1pc3NpbmcocmVhbGx5TWlzc2luZywgZGF0YXNvdXJjZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgaW5pdGlhbGl6ZWQ6IHRydWUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX2NhbmNlbEZldGNoTWlzc2luZ0lmTmVlZGVkKCkge1xuICAgICAgICBjb25zdCBmZXRjaE1pc3NpbmdSZXEgPSB1bnRyYWNrZWQoc3RvcmUuX2ZldGNoTWlzc2luZ1JlcXVlc3QpO1xuICAgICAgICBjb25zdCBpdGVtcyA9IHVudHJhY2tlZChzdG9yZS5vcHRpb25zKTtcbiAgICAgICAgY29uc3QgbWlzc2luZ0VtcHR5ID0gdW50cmFja2VkKHN0b3JlLl9taXNzaW5nU2VsZWN0ZWQpLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgaWYgKGZldGNoTWlzc2luZ1JlcSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGZldGNoTWlzc2luZ1JlcS5pZHMuZXZlcnkoKGlkKSA9PlxuICAgICAgICAgICAgICBpdGVtcy5zb21lKChpdCkgPT4gaXQuaWQgPT09IGlkKVxuICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgbWlzc2luZ0VtcHR5XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmZXRjaE1pc3NpbmdSZXEuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgIF9mZXRjaE1pc3NpbmdSZXF1ZXN0OiBudWxsLFxuICAgICAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBbXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9mZXRjaE1pc3NpbmcoaWRzOiBUSWRbXSwgZGF0YXNvdXJjZTogUmR0U2VsZWN0RGF0YXNvdXJjZTxULCBUSWQ+KSB7XG4gICAgICAgIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YiA9IGRhdGFzb3VyY2UuZ2V0SXRlbXNCeUlkcyhpZHMpLnN1YnNjcmliZSgobWFwKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TWlzc2luZzogVElkW10gPSBbXTtcbiAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZCA9IG5ldyBNYXAodW50cmFja2VkKHN0b3JlLnNlbGVjdGVkTWFwKSk7XG4gICAgICAgICAgY29uc3QgdW5mZXRjaGFibGU6IFRJZFtdID0gWy4uLnVudHJhY2tlZChzdG9yZS5fdW5mZXRjaGFibGVJZHMpXTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGlkIG9mIHVudHJhY2tlZChzdG9yZS5fbWlzc2luZ1NlbGVjdGVkKSkge1xuICAgICAgICAgICAgaWYgKG1hcC5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbWFwLmdldChpZCkhO1xuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGFzb3VyY2UuZ2V0TGFiZWwodmFsdWUpO1xuICAgICAgICAgICAgICBuZXdTZWxlY3RlZC5zZXQoaWQsIHsgbGFiZWwsIHZhbHVlLCBpZCB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaWRzLmluY2x1ZGVzKGlkKSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIGBJdGVtIHdpdGggaWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgKX0gbm90IGZvdW5kIGJ5IGdldEl0ZW1zQnlJZHMoKS5gLFxuICAgICAgICAgICAgICAgIGRhdGFzb3VyY2VcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdW5mZXRjaGFibGUucHVzaChpZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBuZXdNaXNzaW5nLnB1c2goaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogbnVsbCxcbiAgICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IG5ld01pc3NpbmcsXG4gICAgICAgICAgICBzZWxlY3RlZE1hcDogbmV3U2VsZWN0ZWQsXG4gICAgICAgICAgICBfdW5mZXRjaGFibGVJZHM6IFsuLi51bmZldGNoYWJsZV0sXG4gICAgICAgICAgICBpbml0aWFsaXplZDogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLl9sb2FkTWlzc2luZ1NlbGVjdGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXN1Yi5jbG9zZWQpIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogeyBpZHMsIHN1YnNjcmlwdGlvbjogc3ViIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZWxlY3RTaW5nbGUoaWQ6IFRJZCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkKFtpZF0pO1xuICAgICAgfSxcbiAgICAgIHRvZ2dsZShpZDogVElkKSB7XG4gICAgICAgIGNvbnN0IG9sZE1hcCA9IHVudHJhY2tlZChzdG9yZS5zZWxlY3RlZE1hcCk7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk7XG4gICAgICAgIGlmICghZGF0YXNvdXJjZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBpcyB1bmRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1bmZldGNoYWJsZUlkcyA9IHVudHJhY2tlZChzdG9yZS5fdW5mZXRjaGFibGVJZHMpO1xuICAgICAgICBjb25zdCBtaXNzaW5nU2VsZWN0ZWRJZHMgPSB1bnRyYWNrZWQoc3RvcmUuX21pc3NpbmdTZWxlY3RlZCk7XG4gICAgICAgIGlmICh1bmZldGNoYWJsZUlkcy5pbmNsdWRlcyhpZCkgfHwgbWlzc2luZ1NlbGVjdGVkSWRzLmluY2x1ZGVzKGlkKSkge1xuICAgICAgICAgIGNvbnN0IG5ld1VuZmV0Y2hhYmxlSWRzID0gdW5mZXRjaGFibGVJZHMuZmlsdGVyKFxuICAgICAgICAgICAgKHVuZmV0Y2hhYmxlSWQpID0+IHVuZmV0Y2hhYmxlSWQgIT09IGlkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBuZXdNaXNzaW5nU2VsZWN0ZWQgPSBtaXNzaW5nU2VsZWN0ZWRJZHMuZmlsdGVyKFxuICAgICAgICAgICAgKG1pc3NpbmdJZCkgPT4gbWlzc2luZ0lkICE9PSBpZFxuICAgICAgICAgICk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgX3VuZmV0Y2hhYmxlSWRzOiBuZXdVbmZldGNoYWJsZUlkcyxcbiAgICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IG5ld01pc3NpbmdTZWxlY3RlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAobmV3TWlzc2luZ1NlbGVjdGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fY2FuY2VsRmV0Y2hNaXNzaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAob2xkTWFwLmhhcyhpZCkpIHtcbiAgICAgICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG9sZE1hcCk7XG4gICAgICAgICAgbmV3TWFwLmRlbGV0ZShpZCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzZWxlY3RlZE1hcDogbmV3TWFwIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB1bnRyYWNrZWQoc3RvcmUub3B0aW9ucykuZmluZCgoaXQpID0+IGl0LmlkID09PSBpZCk7XG4gICAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbaWRdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChvbGRNYXApO1xuICAgICAgICAgICAgbmV3TWFwLnNldChpZCwgaXRlbSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHNlbGVjdGVkTWFwOiBuZXdNYXAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FuY2VsRmV0Y2goKSB7XG4gICAgICAgIHVudHJhY2tlZChzdG9yZS5fZmV0Y2hSZXF1ZXN0KT8uc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBfZmV0Y2hSZXF1ZXN0OiBudWxsLFxuICAgICAgICAgIGZldGNoRXJyb3I6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGlzU2VsZWN0ZWQoaXRlbTogVCkge1xuICAgICAgICBjb25zdCBkYXRhc291cmNlID0gdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpO1xuICAgICAgICBpZiAoIWRhdGFzb3VyY2UpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaWQgPSBkYXRhc291cmNlLmdldElkKGl0ZW0pO1xuICAgICAgICByZXR1cm4gdW50cmFja2VkKHN0b3JlLnNlbGVjdGVkTWFwKS5oYXMoaWQpO1xuICAgICAgfSxcbiAgICAgIHNldFBhZ2VTaXplKHNpemU6IG51bWJlcikge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHBhZ2VTaXplOiBzaXplIH0pO1xuICAgICAgfSxcbiAgICAgIF9nZXRMYWJlbFZhbHVlSWRzKGl0ZW1zOiBUW10pOiBSZHRMYWJlbFZhbHVlSWQ8VCwgVElkPltdIHtcbiAgICAgICAgY29uc3QgZGF0YXNvdXJjZSA9IHVudHJhY2tlZChzdG9yZS5kYXRhc291cmNlKTtcbiAgICAgICAgaWYgKCFkYXRhc291cmNlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhc291cmNlIG5vdCBzZXQhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZGF0YXNvdXJjZS5nZXRMYWJlbChpdGVtKSxcbiAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgICBpZDogZGF0YXNvdXJjZS5nZXRJZChpdGVtKSxcbiAgICAgICAgfSkpO1xuICAgICAgfSxcbiAgICB9KSlcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IFJkdFNlbGVjdFN0b3JlID0gZ2V0UmR0U2VsZWN0U3RvcmU8YW55LCBhbnk+KCk7XG5leHBvcnQgdHlwZSBSZHRTZWxlY3RTdG9yZTxUID0gYW55LCBUSWQgPSBudW1iZXI+ID0gSW5zdGFuY2VUeXBlPFxuICBSZXR1cm5UeXBlPHR5cGVvZiBnZXRSZHRTZWxlY3RTdG9yZTxULCBUSWQ+PlxuPjtcblxuZnVuY3Rpb24gZ2V0UmR0U2VsZWN0RXJyb3IoZXJyb3I6IGFueSkge1xuICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlcnJvcjtcbiAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIGVycm9yLm1lc3NhZ2U7XG4gIH0gZWxzZSBpZiAoZXJyb3IgJiYgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiAnbWVzc2FnZScgaW4gZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3IubWVzc2FnZTtcbiAgfVxuICByZXR1cm4gJ1JEVF9TRUxFQ1RfRVJST1InO1xufVxuIl19","import { computed, Directive, effect, inject, input } from '@angular/core';\nimport { RdtOfflineSelectDatasource } from '../datasource';\nimport { RdtSelectStore } from '../state';\nimport * as i0 from \"@angular/core\";\nexport class RdtSelectOfflineDatasourceProviderDirective {\n store = inject(RdtSelectStore);\n optionsInput = input.required({\n alias: 'options',\n });\n options = computed(() => this.parseOptions(this.optionsInput()));\n parseOptions(options) {\n if (!options || options.length === 0) {\n return [];\n }\n if (typeof options[0] === 'object' && options[0]) {\n return options;\n }\n else {\n return options.map((value) => ({\n label: String(value),\n value: value,\n }));\n }\n }\n getDatasourceClass() {\n return RdtOfflineSelectDatasource;\n }\n optionsEffect = effect(() => this.setDatasource());\n setDatasource() {\n const options = this.options();\n const Datasource = this.getDatasourceClass();\n this.store.setDatasource(new Datasource(options));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOfflineDatasourceProviderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtSelectOfflineDatasourceProviderDirective, isStandalone: true, inputs: { optionsInput: { classPropertyName: \"optionsInput\", publicName: \"options\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOfflineDatasourceProviderDirective, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1vZmZsaW5lLWRhdGFzb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9kaXJlY3RpdmVzL3JkdC1zZWxlY3Qtb2ZmbGluZS1kYXRhc291cmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFJMUMsTUFBTSxPQUFnQiwyQ0FBMkM7SUFHdEQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUUvQixZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FFcEM7UUFDQSxLQUFLLEVBQUUsU0FBUztLQUNqQixDQUFDLENBQUM7SUFDTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVsRSxZQUFZLENBQ2xCLE9BQXVEO1FBRXZELElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLE9BQWtDLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFRLE9BQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDcEIsS0FBSyxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sMEJBQTBCLENBQUM7SUFDcEMsQ0FBQztJQUVnQixhQUFhLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBRTVELGFBQWE7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzt1R0F0Q21CLDJDQUEyQzsyRkFBM0MsMkNBQTJDOzsyRkFBM0MsMkNBQTJDO2tCQURoRSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHRPZmZsaW5lU2VsZWN0RGF0YXNvdXJjZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UnO1xuaW1wb3J0IHsgUmR0U2VsZWN0U3RvcmUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQgeyBSZHRMYWJlbFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvbGFiZWwtdmFsdWUtaWQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRTZWxlY3RPZmZsaW5lRGF0YXNvdXJjZVByb3ZpZGVyRGlyZWN0aXZlPFxuICBUVmFsdWUgZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXJcbj4ge1xuICByZWFkb25seSBzdG9yZSA9IGluamVjdChSZHRTZWxlY3RTdG9yZSk7XG5cbiAgcmVhZG9ubHkgb3B0aW9uc0lucHV0ID0gaW5wdXQucmVxdWlyZWQ8XG4gICAgUmR0TGFiZWxWYWx1ZTxUVmFsdWU+W10gfCBUVmFsdWVbXSB8IHVuZGVmaW5lZFxuICA+KHtcbiAgICBhbGlhczogJ29wdGlvbnMnLFxuICB9KTtcbiAgcmVhZG9ubHkgb3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGFyc2VPcHRpb25zKHRoaXMub3B0aW9uc0lucHV0KCkpKTtcblxuICBwcml2YXRlIHBhcnNlT3B0aW9ucyhcbiAgICBvcHRpb25zOiBSZHRMYWJlbFZhbHVlPFRWYWx1ZT5bXSB8IFRWYWx1ZVtdIHwgdW5kZWZpbmVkXG4gICk6IFJkdExhYmVsVmFsdWU8VFZhbHVlPltdIHtcbiAgICBpZiAoIW9wdGlvbnMgfHwgb3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zWzBdID09PSAnb2JqZWN0JyAmJiBvcHRpb25zWzBdKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucyBhcyBSZHRMYWJlbFZhbHVlPFRWYWx1ZT5bXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChvcHRpb25zIGFzIFRWYWx1ZVtdKS5tYXAoKHZhbHVlKSA9PiAoe1xuICAgICAgICBsYWJlbDogU3RyaW5nKHZhbHVlKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRhc291cmNlQ2xhc3MoKTogdHlwZW9mIFJkdE9mZmxpbmVTZWxlY3REYXRhc291cmNlPFRWYWx1ZT4ge1xuICAgIHJldHVybiBSZHRPZmZsaW5lU2VsZWN0RGF0YXNvdXJjZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uc0VmZmVjdCA9IGVmZmVjdCgoKSA9PiB0aGlzLnNldERhdGFzb3VyY2UoKSk7XG5cbiAgcHJpdmF0ZSBzZXREYXRhc291cmNlKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICBjb25zdCBEYXRhc291cmNlID0gdGhpcy5nZXREYXRhc291cmNlQ2xhc3MoKTtcbiAgICB0aGlzLnN0b3JlLnNldERhdGFzb3VyY2UobmV3IERhdGFzb3VyY2Uob3B0aW9ucykpO1xuICB9XG59XG4iXX0=","import { Directive, ElementRef, inject, input, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdtSelectOptionDirective {\n elementRef = inject(ElementRef);\n value = input.required({ alias: 'rdtSelectOption' });\n _selected = signal(false);\n set selected(value) {\n this._selected.set(value);\n }\n get selected() {\n return this._selected();\n }\n _disabled = signal(false);\n set disabled(value) {\n this._disabled.set(value);\n }\n get disabled() {\n return this._disabled();\n }\n setActiveStyles() {\n this.selected = true;\n }\n setInactiveStyles() {\n this.selected = false;\n }\n scrollIntoElement() {\n this.elementRef.nativeElement.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtSelectOptionDirective, isStandalone: true, selector: \"[rdtSelectOption]\", inputs: { value: { classPropertyName: \"value\", publicName: \"rdtSelectOption\", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { \"class.rdt-option-selected\": \"_selected()\", \"class.rdt-option-disabled\": \"_disabled()\" }, classAttribute: \"rdt-option\" }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOptionDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtSelectOption]',\n host: {\n class: 'rdt-option',\n '[class.rdt-option-selected]': '_selected()',\n '[class.rdt-option-disabled]': '_disabled()',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9kaXJlY3RpdmVzL3JkdC1zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVN0UsTUFBTSxPQUFPLHdCQUF3QjtJQUNsQixVQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztJQUNqRSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFFbkQsU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRWtCLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUMzQyxLQUFLLEVBQUUsU0FBUztZQUNoQixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWpDVSx3QkFBd0I7MkZBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFScEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLFlBQVk7d0JBQ25CLDZCQUE2QixFQUFFLGFBQWE7d0JBQzVDLDZCQUE2QixFQUFFLGFBQWE7cUJBQzdDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZHRTZWxlY3RPcHRpb25dJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAncmR0LW9wdGlvbicsXG4gICAgJ1tjbGFzcy5yZHQtb3B0aW9uLXNlbGVjdGVkXSc6ICdfc2VsZWN0ZWQoKScsXG4gICAgJ1tjbGFzcy5yZHQtb3B0aW9uLWRpc2FibGVkXSc6ICdfZGlzYWJsZWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFJkdFNlbGVjdE9wdGlvbkRpcmVjdGl2ZTxUVmFsdWU+IGltcGxlbWVudHMgSGlnaGxpZ2h0YWJsZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5IHZhbHVlID0gaW5wdXQucmVxdWlyZWQ8VFZhbHVlPih7IGFsaWFzOiAncmR0U2VsZWN0T3B0aW9uJyB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3NlbGVjdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQuc2V0KHZhbHVlKTtcbiAgfVxuICBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2Rpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQuc2V0KHZhbHVlKTtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkKCk7XG4gIH1cblxuICBzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRydWU7XG4gIH1cblxuICBzZXRJbmFjdGl2ZVN0eWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBzY3JvbGxJbnRvRWxlbWVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { computed, Directive, effect, inject, input, linkedSignal, untracked, } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal, } from '@angular/core/rxjs-interop';\nimport { FormControl } from '@angular/forms';\nimport { RdtObjectUtils } from '@ngrdt/utils';\nimport { isEqual } from 'lodash-es';\nimport { debounceTime, distinctUntilChanged, switchMap } from 'rxjs';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { RdtSelectStore } from './state/rdt-select-store';\nimport * as i0 from \"@angular/core\";\nexport class RdtBaseSelectCommonComponent extends RdtBaseFormInputComponent {\n manualInitInput = input(false, {\n alias: 'manualInit',\n });\n manualInit = linkedSignal(() => this.manualInitInput());\n datasourceInput = input(null, {\n alias: 'datasource',\n });\n store = inject(RdtSelectStore);\n visibleOptions = this.store.visibleOptions;\n queryValidatorFnInput = input(null, {\n alias: 'inputValidator',\n });\n queryValidatorFn = linkedSignal(() => this.queryValidatorFnInput());\n queryValidatorEffect = effect(() => {\n const validator = this.queryValidatorFn();\n if (validator) {\n this.inputCtrl.setValidators(validator);\n }\n else {\n this.inputCtrl.clearValidators();\n }\n });\n inputCtrl = new FormControl(null);\n inputCtrlEvents = toSignal(this.inputCtrl.events);\n inputErrors = computed(() => {\n this.inputCtrlEvents();\n if (this.inputCtrl.touched && this.inputCtrl.invalid) {\n return this.inputCtrl.errors;\n }\n else {\n return null;\n }\n });\n debounceTimeInput = input(300, {\n alias: 'debounce',\n });\n debounceTime = linkedSignal(() => this.debounceTimeInput());\n debouncedInput$ = toObservable(this.debounceTime).pipe(switchMap((time) => this.inputCtrl.valueChanges.pipe(debounceTime(time))), distinctUntilChanged());\n debouncedInput = toSignal(this.debouncedInput$, {\n initialValue: null,\n });\n pageSizeInput = input(20, {\n alias: 'pageSize',\n });\n pageSizeEffect = effect(() => this.store.setPageSize(this.pageSizeInput()));\n loading = computed(() => {\n return (this.store.loading() ||\n this.loadingInput() ||\n RdtObjectUtils.someValuesTrue(this.loadingMap()));\n });\n datasourceEffect = effect(() => {\n const datasource = this.datasourceInput();\n if (datasource) {\n this.store.setDatasource(datasource);\n }\n });\n ngOnInit() {\n super.ngOnInit();\n const control = this.control();\n if (control && control.value !== null) {\n const arr = Array.isArray(control.value)\n ? control.value\n : [control.value];\n this.store.init(arr);\n }\n else if (!this.manualInit()) {\n this.store.init(null);\n }\n this.debouncedInput$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => this.handleInput(value));\n }\n handleInput(value) {\n this.store.setQuery(value);\n }\n storeValueChangeEffect = effect(() => {\n const selectedMap = this.store.selectedMap();\n const values = Array.from(selectedMap.keys());\n const internalValue = untracked(this.internalValue);\n if (!untracked(this.store.datasource) ||\n !untracked(this.store.initialized)) {\n return;\n }\n if (values.length > 0) {\n const arrayInternalValue = Array.isArray(internalValue)\n ? internalValue\n : internalValue !== null\n ? [internalValue]\n : [];\n if (!isEqual(arrayInternalValue, values)) {\n this.onInternalValueChange(values);\n }\n }\n else if (untracked(this.touched) || untracked(this.focused)) {\n this.onInternalValueChange(null);\n }\n });\n externalValueEffect = effect(() => {\n const externalValue = this.externalValue();\n const selectedMap = untracked(this.store.selectedMap);\n const values = Array.from(selectedMap.keys());\n if (externalValue !== null) {\n const newExternalValue = Array.isArray(externalValue)\n ? externalValue\n : [externalValue];\n if (!isEqual(newExternalValue, values)) {\n this.store.setSelected(newExternalValue);\n }\n }\n else {\n this.store.unselectAll();\n }\n });\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtBaseSelectCommonComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtBaseSelectCommonComponent, isStandalone: true, inputs: { manualInitInput: { classPropertyName: \"manualInitInput\", publicName: \"manualInit\", isSignal: true, isRequired: false, transformFunction: null }, datasourceInput: { classPropertyName: \"datasourceInput\", publicName: \"datasource\", isSignal: true, isRequired: false, transformFunction: null }, queryValidatorFnInput: { classPropertyName: \"queryValidatorFnInput\", publicName: \"inputValidator\", isSignal: true, isRequired: false, transformFunction: null }, debounceTimeInput: { classPropertyName: \"debounceTimeInput\", publicName: \"debounce\", isSignal: true, isRequired: false, transformFunction: null }, pageSizeInput: { classPropertyName: \"pageSizeInput\", publicName: \"pageSize\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtBaseSelectCommonComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3QvcmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFFBQVEsR0FDVCxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUcxRCxNQUFNLE9BQWdCLDRCQUlwQixTQUFRLHlCQUFzQztJQUNyQyxlQUFlLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRTtRQUN0QyxLQUFLLEVBQUUsWUFBWTtLQUNwQixDQUFDLENBQUM7SUFDTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELGVBQWUsR0FBRyxLQUFLLENBQzlCLElBQUksRUFDSjtRQUNFLEtBQUssRUFBRSxZQUFZO0tBQ3BCLENBQ0YsQ0FBQztJQUNPLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUErQixDQUFDO0lBQzdELGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUMzQyxxQkFBcUIsR0FBRyxLQUFLLENBQ3BDLElBQUksRUFDSjtRQUNFLEtBQUssRUFBRSxnQkFBZ0I7S0FDeEIsQ0FDRixDQUFDO0lBQ08sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDNUQsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNsRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNNLFNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFDekMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFELFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ25DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ00saUJBQWlCLEdBQUcsS0FBSyxDQUFTLEdBQUcsRUFBRTtRQUM5QyxLQUFLLEVBQUUsVUFBVTtLQUNsQixDQUFDLENBQUM7SUFDTSxZQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDcEQsZUFBZSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUNyRSxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUN6RSxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO0lBQ08sY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1FBQ3ZELFlBQVksRUFBRSxJQUFJO0tBQ25CLENBQUMsQ0FBQztJQUNNLGFBQWEsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ2pDLEtBQUssRUFBRSxVQUFVO0tBQ2xCLENBQUMsQ0FBQztJQUNjLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUM3QyxDQUFDO0lBRWdCLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3hDLE9BQU8sQ0FDTCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVjLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDOUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzFDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFTSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLO2dCQUNmLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZTthQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFUyxXQUFXLENBQUMsS0FBb0I7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVrQixzQkFBc0IsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ3RELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXBELElBQ0UsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDakMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFDbEMsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxhQUFhO2dCQUNmLENBQUMsQ0FBQyxhQUFhLEtBQUssSUFBSTtvQkFDeEIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO29CQUNqQixDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFZ0IsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNuRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU5QyxJQUFJLGFBQWEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMzQixNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO2dCQUNuRCxDQUFDLENBQUMsYUFBYTtnQkFDZixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVwQixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGdCQUF5QixDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7dUdBeElpQiw0QkFBNEI7MkZBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEakQsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgdGFrZVVudGlsRGVzdHJveWVkLFxuICB0b09ic2VydmFibGUsXG4gIHRvU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgUmR0T2JqZWN0VXRpbHMgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJkdFNlbGVjdERhdGFzb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UvcmR0LXNlbGVjdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdFNlbGVjdFN0b3JlIH0gZnJvbSAnLi9zdGF0ZS9yZHQtc2VsZWN0LXN0b3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0QmFzZVNlbGVjdENvbW1vbkNvbXBvbmVudDxcbiAgVEl0ZW0sXG4gIFRJZCxcbiAgVE91dCBleHRlbmRzIFRJZCB8IFRJZFtdXG4+IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxUT3V0LCBUSWRbXT4ge1xuICByZWFkb25seSBtYW51YWxJbml0SW5wdXQgPSBpbnB1dChmYWxzZSwge1xuICAgIGFsaWFzOiAnbWFudWFsSW5pdCcsXG4gIH0pO1xuICByZWFkb25seSBtYW51YWxJbml0ID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubWFudWFsSW5pdElucHV0KCkpO1xuICByZWFkb25seSBkYXRhc291cmNlSW5wdXQgPSBpbnB1dDxSZHRTZWxlY3REYXRhc291cmNlPFRJdGVtLCBUSWQ+IHwgbnVsbD4oXG4gICAgbnVsbCxcbiAgICB7XG4gICAgICBhbGlhczogJ2RhdGFzb3VyY2UnLFxuICAgIH1cbiAgKTtcbiAgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoUmR0U2VsZWN0U3RvcmUpIGFzIFJkdFNlbGVjdFN0b3JlPFRJdGVtLCBUSWQ+O1xuICByZWFkb25seSB2aXNpYmxlT3B0aW9ucyA9IHRoaXMuc3RvcmUudmlzaWJsZU9wdGlvbnM7XG4gIHJlYWRvbmx5IHF1ZXJ5VmFsaWRhdG9yRm5JbnB1dCA9IGlucHV0PE51bGxhYmxlPFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXT4+KFxuICAgIG51bGwsXG4gICAge1xuICAgICAgYWxpYXM6ICdpbnB1dFZhbGlkYXRvcicsXG4gICAgfVxuICApO1xuICByZWFkb25seSBxdWVyeVZhbGlkYXRvckZuID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMucXVlcnlWYWxpZGF0b3JGbklucHV0KCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5VmFsaWRhdG9yRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLnF1ZXJ5VmFsaWRhdG9yRm4oKTtcbiAgICBpZiAodmFsaWRhdG9yKSB7XG4gICAgICB0aGlzLmlucHV0Q3RybC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXRDdHJsLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgIH1cbiAgfSk7XG4gIHJlYWRvbmx5IGlucHV0Q3RybCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnB1dEN0cmxFdmVudHMgPSB0b1NpZ25hbCh0aGlzLmlucHV0Q3RybC5ldmVudHMpO1xuICByZWFkb25seSBpbnB1dEVycm9ycyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmlucHV0Q3RybEV2ZW50cygpO1xuICAgIGlmICh0aGlzLmlucHV0Q3RybC50b3VjaGVkICYmIHRoaXMuaW5wdXRDdHJsLmludmFsaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmlucHV0Q3RybC5lcnJvcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSk7XG4gIHJlYWRvbmx5IGRlYm91bmNlVGltZUlucHV0ID0gaW5wdXQ8bnVtYmVyPigzMDAsIHtcbiAgICBhbGlhczogJ2RlYm91bmNlJyxcbiAgfSk7XG4gIHJlYWRvbmx5IGRlYm91bmNlVGltZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmRlYm91bmNlVGltZUlucHV0KCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlYm91bmNlZElucHV0JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRlYm91bmNlVGltZSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKHRpbWUpID0+IHRoaXMuaW5wdXRDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aW1lKSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcbiAgcmVhZG9ubHkgZGVib3VuY2VkSW5wdXQgPSB0b1NpZ25hbCh0aGlzLmRlYm91bmNlZElucHV0JCwge1xuICAgIGluaXRpYWxWYWx1ZTogbnVsbCxcbiAgfSk7XG4gIHJlYWRvbmx5IHBhZ2VTaXplSW5wdXQgPSBpbnB1dCgyMCwge1xuICAgIGFsaWFzOiAncGFnZVNpemUnLFxuICB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWdlU2l6ZUVmZmVjdCA9IGVmZmVjdCgoKSA9PlxuICAgIHRoaXMuc3RvcmUuc2V0UGFnZVNpemUodGhpcy5wYWdlU2l6ZUlucHV0KCkpXG4gICk7XG5cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgbG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zdG9yZS5sb2FkaW5nKCkgfHxcbiAgICAgIHRoaXMubG9hZGluZ0lucHV0KCkgfHxcbiAgICAgIFJkdE9iamVjdFV0aWxzLnNvbWVWYWx1ZXNUcnVlKHRoaXMubG9hZGluZ01hcCgpKVxuICAgICk7XG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZUVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZGF0YXNvdXJjZSA9IHRoaXMuZGF0YXNvdXJjZUlucHV0KCk7XG4gICAgaWYgKGRhdGFzb3VyY2UpIHtcbiAgICAgIHRoaXMuc3RvcmUuc2V0RGF0YXNvdXJjZShkYXRhc291cmNlKTtcbiAgICB9XG4gIH0pO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpO1xuICAgIGlmIChjb250cm9sICYmIGNvbnRyb2wudmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGFyciA9IEFycmF5LmlzQXJyYXkoY29udHJvbC52YWx1ZSlcbiAgICAgICAgPyBjb250cm9sLnZhbHVlXG4gICAgICAgIDogW2NvbnRyb2wudmFsdWVdO1xuICAgICAgdGhpcy5zdG9yZS5pbml0KGFyciBhcyBUSWRbXSk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5tYW51YWxJbml0KCkpIHtcbiAgICAgIHRoaXMuc3RvcmUuaW5pdChudWxsKTtcbiAgICB9XG4gICAgdGhpcy5kZWJvdW5jZWRJbnB1dCRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuaGFuZGxlSW5wdXQodmFsdWUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVJbnB1dCh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuc2V0UXVlcnkodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlVmFsdWVDaGFuZ2VFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkTWFwID0gdGhpcy5zdG9yZS5zZWxlY3RlZE1hcCgpO1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmZyb20oc2VsZWN0ZWRNYXAua2V5cygpKTtcbiAgICBjb25zdCBpbnRlcm5hbFZhbHVlID0gdW50cmFja2VkKHRoaXMuaW50ZXJuYWxWYWx1ZSk7XG5cbiAgICBpZiAoXG4gICAgICAhdW50cmFja2VkKHRoaXMuc3RvcmUuZGF0YXNvdXJjZSkgfHxcbiAgICAgICF1bnRyYWNrZWQodGhpcy5zdG9yZS5pbml0aWFsaXplZClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBhcnJheUludGVybmFsVmFsdWUgPSBBcnJheS5pc0FycmF5KGludGVybmFsVmFsdWUpXG4gICAgICAgID8gaW50ZXJuYWxWYWx1ZVxuICAgICAgICA6IGludGVybmFsVmFsdWUgIT09IG51bGxcbiAgICAgICAgPyBbaW50ZXJuYWxWYWx1ZV1cbiAgICAgICAgOiBbXTtcbiAgICAgIGlmICghaXNFcXVhbChhcnJheUludGVybmFsVmFsdWUsIHZhbHVlcykpIHtcbiAgICAgICAgdGhpcy5vbkludGVybmFsVmFsdWVDaGFuZ2UodmFsdWVzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHVudHJhY2tlZCh0aGlzLnRvdWNoZWQpIHx8IHVudHJhY2tlZCh0aGlzLmZvY3VzZWQpKSB7XG4gICAgICB0aGlzLm9uSW50ZXJuYWxWYWx1ZUNoYW5nZShudWxsKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBleHRlcm5hbFZhbHVlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBleHRlcm5hbFZhbHVlID0gdGhpcy5leHRlcm5hbFZhbHVlKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRNYXAgPSB1bnRyYWNrZWQodGhpcy5zdG9yZS5zZWxlY3RlZE1hcCk7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuZnJvbShzZWxlY3RlZE1hcC5rZXlzKCkpO1xuXG4gICAgaWYgKGV4dGVybmFsVmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5ld0V4dGVybmFsVmFsdWUgPSBBcnJheS5pc0FycmF5KGV4dGVybmFsVmFsdWUpXG4gICAgICAgID8gZXh0ZXJuYWxWYWx1ZVxuICAgICAgICA6IFtleHRlcm5hbFZhbHVlXTtcblxuICAgICAgaWYgKCFpc0VxdWFsKG5ld0V4dGVybmFsVmFsdWUsIHZhbHVlcykpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRTZWxlY3RlZChuZXdFeHRlcm5hbFZhbHVlIGFzIFRJZFtdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yZS51bnNlbGVjdEFsbCgpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=","import { computed, Directive } from '@angular/core';\nimport { RdtBaseSelectCommonComponent } from './rdt-base-select.component';\nimport * as i0 from \"@angular/core\";\nexport class RdtMultiSelectComponent extends RdtBaseSelectCommonComponent {\n selected = computed(() => {\n const selected = this.store.selectedItems();\n return selected.length > 0 ? selected : null;\n });\n isEmpty(value) {\n return value === null || value.length === 0;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtMultiSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtMultiSelectComponent, isStandalone: true, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtMultiSelectComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LW11bHRpLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvc2VsZWN0L3JkdC1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUczRSxNQUFNLE9BQWdCLHVCQUdwQixTQUFRLDRCQUErQztJQUM5QyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzVDLE9BQU8sUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0lBRWdCLE9BQU8sQ0FBQyxLQUFZO1FBQ3JDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO3VHQVhtQix1QkFBdUI7MkZBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFENUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEJhc2VTZWxlY3RDb21tb25Db21wb25lbnQgfSBmcm9tICcuL3JkdC1iYXNlLXNlbGVjdC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRNdWx0aVNlbGVjdENvbXBvbmVudDxcbiAgVEl0ZW0sXG4gIFRJZFxuPiBleHRlbmRzIFJkdEJhc2VTZWxlY3RDb21tb25Db21wb25lbnQ8VEl0ZW0sIFRJZCwgVElkW10+IHtcbiAgcmVhZG9ubHkgc2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnN0b3JlLnNlbGVjdGVkSXRlbXMoKTtcbiAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID4gMCA/IHNlbGVjdGVkIDogbnVsbDtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IFRJZFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxufVxuIl19","import { computed, Directive } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { RdtBaseSelectCommonComponent } from './rdt-base-select.component';\nimport * as i0 from \"@angular/core\";\nexport class RdtSingleSelectComponent extends RdtBaseSelectCommonComponent {\n selected = computed(() => {\n const items = this.store.selectedItems();\n return items.length > 0 ? items[0] : null;\n });\n isEmpty(value) {\n return value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSingleSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtSingleSelectComponent, isStandalone: true, providers: [\n {\n provide: RdtBaseFormInputComponent,\n useValue: RdtSingleSelectComponent,\n },\n ], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSingleSelectComponent, decorators: [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: RdtBaseFormInputComponent,\n useValue: RdtSingleSelectComponent,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNpbmdsZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9yZHQtc2luZ2xlLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBVTNFLE1BQU0sT0FBZ0Isd0JBR3BCLFNBQVEsNEJBQTZDO0lBQzVDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFFZ0IsT0FBTyxDQUFDLEtBQVU7UUFDbkMsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3hCLENBQUM7dUdBWG1CLHdCQUF3QjsyRkFBeEIsd0JBQXdCLGlDQVBqQztZQUNUO2dCQUNFLE9BQU8sRUFBRSx5QkFBeUI7Z0JBQ2xDLFFBQVEsRUFBRSx3QkFBd0I7YUFDbkM7U0FDRjs7MkZBRW1CLHdCQUF3QjtrQkFSN0MsU0FBUzttQkFBQztvQkFDVCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsUUFBUSwwQkFBMEI7eUJBQ25DO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmR0QmFzZVNlbGVjdENvbW1vbkNvbXBvbmVudCB9IGZyb20gJy4vcmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50LFxuICAgICAgdXNlVmFsdWU6IFJkdFNpbmdsZVNlbGVjdENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRTaW5nbGVTZWxlY3RDb21wb25lbnQ8XG4gIFRJdGVtLFxuICBUSWRcbj4gZXh0ZW5kcyBSZHRCYXNlU2VsZWN0Q29tbW9uQ29tcG9uZW50PFRJdGVtLCBUSWQsIFRJZD4ge1xuICByZWFkb25seSBzZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuc3RvcmUuc2VsZWN0ZWRJdGVtcygpO1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPiAwID8gaXRlbXNbMF0gOiBudWxsO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNFbXB0eSh2YWx1ZTogVElkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICB9XG59XG4iXX0=","import { Directive, input } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined, nullToUndefinedNumeric, } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtTextAreaComponent extends RdtBaseFormInputComponent {\n autocomplete = input(undefined, {\n transform: nullToUndefined,\n });\n cols = input(undefined, { transform: nullToUndefinedNumeric });\n rows = input(undefined, { transform: nullToUndefinedNumeric });\n wrap = input(undefined, { transform: nullToUndefined });\n isEmpty(value) {\n return value === '' || value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextAreaComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtTextAreaComponent, isStandalone: true, inputs: { autocomplete: { classPropertyName: \"autocomplete\", publicName: \"autocomplete\", isSignal: true, isRequired: false, transformFunction: null }, cols: { classPropertyName: \"cols\", publicName: \"cols\", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: \"rows\", publicName: \"rows\", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: \"wrap\", publicName: \"wrap\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextAreaComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRleHQtYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvdGV4dC1hcmVhL3JkdC10ZXh0LWFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysc0JBQXNCLEdBRXZCLE1BQU0sYUFBYSxDQUFDOztBQUdyQixNQUFNLE9BQWdCLG9CQUFxQixTQUFRLHlCQUdsRDtJQUNVLFlBQVksR0FBRyxLQUFLLENBRzNCLFNBQVMsRUFBRTtRQUNYLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUMsQ0FBQztJQUNNLElBQUksR0FBRyxLQUFLLENBQ25CLFNBQVMsRUFDVCxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxDQUN0QyxDQUFDO0lBQ08sSUFBSSxHQUFHLEtBQUssQ0FDbkIsU0FBUyxFQUNULEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLENBQ3RDLENBQUM7SUFDTyxJQUFJLEdBQUcsS0FBSyxDQUduQixTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUUxQixPQUFPLENBQUMsS0FBb0I7UUFDN0MsT0FBTyxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7SUFDeEMsQ0FBQzt1R0F6Qm1CLG9CQUFvQjsyRkFBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUR6QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgbnVsbFRvVW5kZWZpbmVkLFxuICBudWxsVG9VbmRlZmluZWROdW1lcmljLFxuICBSZHRBdXRvY29tcGxldGVPcHRpb25zLFxufSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdFRleHRBcmVhQ29tcG9uZW50IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxcbiAgc3RyaW5nLFxuICBzdHJpbmdcbj4ge1xuICByZWFkb25seSBhdXRvY29tcGxldGUgPSBpbnB1dDxcbiAgICBSZHRBdXRvY29tcGxldGVPcHRpb25zIHwgdW5kZWZpbmVkLFxuICAgIE51bGxhYmxlPFJkdEF1dG9jb21wbGV0ZU9wdGlvbnM+XG4gID4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQsXG4gIH0pO1xuICByZWFkb25seSBjb2xzID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgTnVsbGFibGU8c3RyaW5nIHwgbnVtYmVyPj4oXG4gICAgdW5kZWZpbmVkLFxuICAgIHsgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWROdW1lcmljIH1cbiAgKTtcbiAgcmVhZG9ubHkgcm93cyA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIE51bGxhYmxlPHN0cmluZyB8IG51bWJlcj4+KFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyB9XG4gICk7XG4gIHJlYWRvbmx5IHdyYXAgPSBpbnB1dDxcbiAgICBOdWxsYWJsZTwnaGFyZCcgfCAnc29mdCcgfCAnb2ZmJz4sXG4gICAgTnVsbGFibGU8J2hhcmQnIHwgJ3NvZnQnIHwgJ29mZic+XG4gID4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkIH0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc0VtcHR5KHZhbHVlOiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbDtcbiAgfVxufVxuIl19","import { Directive, input } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined, nullToUndefinedNumeric, } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtTextInputComponent extends RdtBaseFormInputComponent {\n type = input('text');\n autocomplete = input(undefined, {\n transform: nullToUndefined,\n });\n maxlength = input(undefined, { transform: nullToUndefinedNumeric });\n minlength = input(undefined, { transform: nullToUndefinedNumeric });\n pattern = input(undefined, {\n transform: nullToUndefined,\n });\n isEmpty(value) {\n return value === '' || value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtTextInputComponent, isStandalone: true, inputs: { type: { classPropertyName: \"type\", publicName: \"type\", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: \"autocomplete\", publicName: \"autocomplete\", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: \"maxlength\", publicName: \"maxlength\", isSignal: true, isRequired: false, transformFunction: null }, minlength: { classPropertyName: \"minlength\", publicName: \"minlength\", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: \"pattern\", publicName: \"pattern\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextInputComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRleHQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3RleHQtaW5wdXQvcmR0LXRleHQtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysc0JBQXNCLEdBRXZCLE1BQU0sYUFBYSxDQUFDOztBQUlyQixNQUFNLE9BQWdCLHFCQUFzQixTQUFRLHlCQUduRDtJQUNVLElBQUksR0FBRyxLQUFLLENBQWUsTUFBTSxDQUFDLENBQUM7SUFFbkMsWUFBWSxHQUFHLEtBQUssQ0FHM0IsU0FBUyxFQUFFO1FBQ1gsU0FBUyxFQUFFLGVBQWU7S0FDM0IsQ0FBQyxDQUFDO0lBQ00sU0FBUyxHQUFHLEtBQUssQ0FDeEIsU0FBUyxFQUNULEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLENBQ3RDLENBQUM7SUFDTyxTQUFTLEdBQUcsS0FBSyxDQUN4QixTQUFTLEVBQ1QsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsQ0FDdEMsQ0FBQztJQUNPLE9BQU8sR0FBRyxLQUFLLENBQXFDLFNBQVMsRUFBRTtRQUN0RSxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDLENBQUM7SUFFZ0IsT0FBTyxDQUFDLEtBQW9CO1FBQzdDLE9BQU8sS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3hDLENBQUM7dUdBMUJtQixxQkFBcUI7MkZBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIG51bGxUb1VuZGVmaW5lZCxcbiAgbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyxcbiAgUmR0QXV0b2NvbXBsZXRlT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUmR0SW5wdXRUeXBlIH0gZnJvbSAnLi9pbnB1dC10eXBlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0VGV4dElucHV0Q29tcG9uZW50IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxcbiAgc3RyaW5nLFxuICBzdHJpbmdcbj4ge1xuICByZWFkb25seSB0eXBlID0gaW5wdXQ8UmR0SW5wdXRUeXBlPigndGV4dCcpO1xuXG4gIHJlYWRvbmx5IGF1dG9jb21wbGV0ZSA9IGlucHV0PFxuICAgIFJkdEF1dG9jb21wbGV0ZU9wdGlvbnMgfCB1bmRlZmluZWQsXG4gICAgTnVsbGFibGU8UmR0QXV0b2NvbXBsZXRlT3B0aW9ucz5cbiAgPih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG4gIHJlYWRvbmx5IG1heGxlbmd0aCA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIE51bGxhYmxlPHN0cmluZyB8IG51bWJlcj4+KFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyB9XG4gICk7XG4gIHJlYWRvbmx5IG1pbmxlbmd0aCA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIE51bGxhYmxlPHN0cmluZyB8IG51bWJlcj4+KFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyB9XG4gICk7XG4gIHJlYWRvbmx5IHBhdHRlcm4gPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+LCBOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsO1xuICB9XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const RDT_FORM_ERROR_CODES_PROVIDER = new InjectionToken('RdtFormErrors');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWVycm9yLWNvZGUtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9waXBlcy9wcm92aWRlcnMvcmR0LWVycm9yLWNvZGUtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FFN0QsZUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR0Rm9ybUVycm9yQ29kZU1hcCB9IGZyb20gJy4uL21vZGVscy9yZHQtZXJyb3ItY29kZXMuaW50JztcblxuZXhwb3J0IGNvbnN0IFJEVF9GT1JNX0VSUk9SX0NPREVTX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPFxuICBUeXBlPFJkdEZvcm1FcnJvckNvZGVNYXA+XG4+KCdSZHRGb3JtRXJyb3JzJyk7XG4iXX0=","import { inject, Pipe } from '@angular/core';\nimport { RdtTranslateService } from '@ngrdt/core';\nimport { RDT_FORM_ERROR_CODES_PROVIDER } from './providers/rdt-error-code-provider';\nimport * as i0 from \"@angular/core\";\nexport function getFirstError(errors) {\n if (errors) {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n return null;\n}\nexport const defaultRdtFormErrorCodes = {\n required: () => `RDT_ERROR_REQUIRED`,\n email: () => 'RDT_ERROR_EMAIL_INVALID',\n minlength: (value) => ['RDT_ERROR_MIN_LENGTH', value.requiredLength],\n maxlength: (value) => ['RDT_ERROR_MAX_LENGTH', value.requiredLength],\n notFound: () => 'RDT_ERROR_NOT_FOUND',\n multipleFound: () => 'RDT_ERROR_MULTIPLE_FOUND',\n};\nexport class RdtFormErrorPipe {\n translateService = inject(RdtTranslateService);\n errorCodes = (() => {\n const injected = inject(RDT_FORM_ERROR_CODES_PROVIDER, {\n optional: true,\n });\n if (!injected) {\n console.warn('No provider for RDT_FORM_ERROR_CODES_PROVIDER was found. ' +\n 'Default form error messages are now being used.');\n }\n return injected ?? defaultRdtFormErrorCodes;\n })();\n transform(errors) {\n if (!errors)\n return '';\n const error = getFirstError(errors);\n if (error) {\n const fn = this.errorCodes[error.key];\n if (fn) {\n if (Array.isArray(fn())) {\n return this.translateService.instant(fn()[0], [\n fn().slice(1),\n ]);\n }\n return this.translateService.instant(fn());\n }\n else if (typeof error.value === 'string') {\n return this.translateService.instant(error.value);\n }\n else {\n return this.translateService.instant('RDT_ERROR_UNKNOWN');\n }\n }\n return '';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormErrorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormErrorPipe, isStandalone: true, name: \"rdtFormError\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormErrorPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'rdtFormError',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvcGlwZXMvZm9ybS1lcnJvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR25FLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUVwRixNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQXdCO0lBQ3BELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBd0I7SUFDM0QsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLG9CQUFvQjtJQUNwQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMseUJBQXlCO0lBQ3RDLFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQ3pFLFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQ3pFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUI7SUFDckMsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLDBCQUEwQjtDQUNoRCxDQUFDO0FBTUYsTUFBTSxPQUFPLGdCQUFnQjtJQUNuQixnQkFBZ0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0QyxVQUFVLEdBQXdCLENBQUMsR0FBRyxFQUFFO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsRUFBRTtZQUNyRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQStCLENBQUM7UUFFakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FDViwyREFBMkQ7Z0JBQ3pELGlEQUFpRCxDQUNwRCxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sUUFBUSxJQUFJLHdCQUF3QixDQUFDO0lBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFTCxTQUFTLENBQUMsTUFBMkM7UUFDbkQsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN2QixNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBb0IsRUFBRTt3QkFDL0QsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztxQkFDZCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFxQixDQUFDLENBQUM7WUFDaEUsQ0FBQztpQkFBTSxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUF3QixDQUFDLENBQUM7WUFDdkUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzVELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO3VHQXBDVSxnQkFBZ0I7cUdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmR0VHJhbnNsYXRlS2V5LCBSZHRUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5ncmR0L2NvcmUnO1xuaW1wb3J0IHsgUmR0Rm9ybUVycm9yQ29kZU1hcCB9IGZyb20gJy4vbW9kZWxzL3JkdC1lcnJvci1jb2Rlcy5pbnQnO1xuaW1wb3J0IHsgUmR0RXJyb3JWYWx1ZSB9IGZyb20gJy4vbW9kZWxzL3JkdC1lcnJvci1jb2Rlcy50eXBlcyc7XG5pbXBvcnQgeyBSRFRfRk9STV9FUlJPUl9DT0RFU19QUk9WSURFUiB9IGZyb20gJy4vcHJvdmlkZXJzL3JkdC1lcnJvci1jb2RlLXByb3ZpZGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RXJyb3IoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKTogUmR0RXJyb3JWYWx1ZSB7XG4gIGlmIChlcnJvcnMpIHtcbiAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhlcnJvcnMpWzBdO1xuICAgIGNvbnN0IHZhbHVlID0gZXJyb3JzW2tleV07XG4gICAgcmV0dXJuIHsga2V5LCB2YWx1ZSB9O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJkdEZvcm1FcnJvckNvZGVzOiBSZHRGb3JtRXJyb3JDb2RlTWFwID0ge1xuICByZXF1aXJlZDogKCkgPT4gYFJEVF9FUlJPUl9SRVFVSVJFRGAsXG4gIGVtYWlsOiAoKSA9PiAnUkRUX0VSUk9SX0VNQUlMX0lOVkFMSUQnLFxuICBtaW5sZW5ndGg6ICh2YWx1ZTogYW55KSA9PiBbJ1JEVF9FUlJPUl9NSU5fTEVOR1RIJywgdmFsdWUucmVxdWlyZWRMZW5ndGhdLFxuICBtYXhsZW5ndGg6ICh2YWx1ZTogYW55KSA9PiBbJ1JEVF9FUlJPUl9NQVhfTEVOR1RIJywgdmFsdWUucmVxdWlyZWRMZW5ndGhdLFxuICBub3RGb3VuZDogKCkgPT4gJ1JEVF9FUlJPUl9OT1RfRk9VTkQnLFxuICBtdWx0aXBsZUZvdW5kOiAoKSA9PiAnUkRUX0VSUk9SX01VTFRJUExFX0ZPVU5EJyxcbn07XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3JkdEZvcm1FcnJvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFJkdEZvcm1FcnJvclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFJkdFRyYW5zbGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9yQ29kZXM6IFJkdEZvcm1FcnJvckNvZGVNYXAgPSAoKCkgPT4ge1xuICAgIGNvbnN0IGluamVjdGVkID0gaW5qZWN0KFJEVF9GT1JNX0VSUk9SX0NPREVTX1BST1ZJREVSLCB7XG4gICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICB9KSBhcyBSZHRGb3JtRXJyb3JDb2RlTWFwIHwgbnVsbDtcblxuICAgIGlmICghaW5qZWN0ZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ05vIHByb3ZpZGVyIGZvciBSRFRfRk9STV9FUlJPUl9DT0RFU19QUk9WSURFUiB3YXMgZm91bmQuICcgK1xuICAgICAgICAgICdEZWZhdWx0IGZvcm0gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdyBiZWluZyB1c2VkLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluamVjdGVkID8/IGRlZmF1bHRSZHRGb3JtRXJyb3JDb2RlcztcbiAgfSkoKTtcblxuICB0cmFuc2Zvcm0oZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFlcnJvcnMpIHJldHVybiAnJztcbiAgICBjb25zdCBlcnJvciA9IGdldEZpcnN0RXJyb3IoZXJyb3JzKTtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGZuID0gdGhpcy5lcnJvckNvZGVzW2Vycm9yLmtleV07XG4gICAgICBpZiAoZm4pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm4oKSkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZm4oKVswXSBhcyBSZHRUcmFuc2xhdGVLZXksIFtcbiAgICAgICAgICAgIGZuKCkuc2xpY2UoMSksXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGZuKCkgYXMgUmR0VHJhbnNsYXRlS2V5KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGVycm9yLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IudmFsdWUgYXMgUmR0VHJhbnNsYXRlS2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnUkRUX0VSUk9SX1VOS05PV04nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=","import { FormControl, } from '@angular/forms';\nimport { RdtDateUtils } from '@ngrdt/utils';\nimport { distinctUntilChanged, merge, takeUntil, } from 'rxjs';\nexport class RdtDateValidators {\n static notInFuture = (control) => {\n let value = null;\n if (control.value == null) {\n value = null;\n }\n else if (typeof control.value === 'string') {\n value = Date.parse(control.value);\n }\n else if (typeof control.value === 'number') {\n value = control.value;\n }\n else if (control.value instanceof Date) {\n value = control.value.getTime();\n }\n if (value == null || Date.now() > value) {\n return null;\n }\n return {\n dateInFuture: true,\n };\n };\n static lastDayOfMonth = (control) => {\n if (control.value == null) {\n return null;\n }\n const date = new Date(control.value);\n const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n if (date.getDate() === lastDay.getDate()) {\n return null;\n }\n return {\n lastDayOfMonth: true,\n };\n };\n static greaterOrEqualToField(startDateField, error = 'RDT_DATE_TOO_SOON', unsubscribeSubj) {\n let subbed = false;\n return (endControl) => {\n const startControl = startDateField instanceof FormControl\n ? startDateField\n : endControl.parent?.get(startDateField);\n if (!startControl) {\n return null;\n }\n if (!subbed) {\n subbed = true;\n let change$ = merge(startControl.statusChanges.pipe(distinctUntilChanged()), startControl.valueChanges.pipe(distinctUntilChanged()));\n if (unsubscribeSubj) {\n change$ = change$.pipe(takeUntil(unsubscribeSubj));\n }\n if (change$) {\n change$.subscribe(() => {\n endControl.updateValueAndValidity();\n });\n }\n }\n const startDate = startControl?.value;\n const endDate = endControl.value;\n if (!startDate || !endDate) {\n return null;\n }\n if (Date.parse(startDate) > Date.parse(endDate)) {\n return { dateGreaterOrEqualToField: error };\n }\n return null;\n };\n }\n static lessOrEqualToField(endDateField, error = 'RDT_DATE_TOO_LATE', unsubscribeSubj) {\n let subbed = false;\n return (startControl) => {\n const endControl = endDateField instanceof FormControl\n ? endDateField\n : startControl.parent?.get(endDateField);\n if (!endControl) {\n return null;\n }\n if (!subbed) {\n subbed = true;\n let change$ = merge(endControl.statusChanges.pipe(distinctUntilChanged()), endControl.valueChanges.pipe(distinctUntilChanged()));\n if (unsubscribeSubj) {\n change$ = change$.pipe(takeUntil(unsubscribeSubj));\n }\n change$.subscribe(() => {\n startControl.updateValueAndValidity();\n });\n }\n const startDate = startControl.value;\n const endDate = endControl?.value;\n if (!startDate || !endDate) {\n return null;\n }\n if (Date.parse(startDate) > Date.parse(endDate)) {\n return { dateLessOrEqualToField: error };\n }\n return null;\n };\n }\n static lessOrEqualToConstant(value) {\n return (control) => RdtDateValidators.getDateRangeErrors(control.value, null, value);\n }\n static greaterOrEqualToConstant(value) {\n return (control) => RdtDateValidators.getDateRangeErrors(control.value, value, null);\n }\n static getDateRangeErrors(value, minDate, maxDate) {\n if ((minDate == null && maxDate == null) || value == null) {\n return null;\n }\n const dateValue = Date.parse(value);\n let minDateValue = RdtDateUtils.parse(minDate);\n let maxDateValue = RdtDateUtils.parse(maxDate);\n if (minDateValue) {\n minDateValue = RdtDateUtils.startOfDay(new Date(minDateValue)).getTime();\n }\n if (maxDateValue) {\n maxDateValue = RdtDateUtils.endOfDay(new Date(maxDateValue)).getTime();\n }\n const errors = {};\n if (minDateValue !== null && dateValue < minDateValue) {\n errors['dateGreaterOrEqualToConstant'] = {\n min: RdtDateUtils.formatDate(minDate),\n actual: RdtDateUtils.formatDate(value),\n };\n }\n if (maxDateValue !== null && dateValue > maxDateValue) {\n errors['dateLessOrEqualToConstant'] = {\n max: RdtDateUtils.formatDate(maxDate),\n actual: RdtDateUtils.formatDate(value),\n };\n }\n if (Object.keys(errors).length === 0) {\n return null;\n }\n else {\n return errors;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL3ZhbGlkYXRvcnMvZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsV0FBVyxHQUdaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFZLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLEtBQUssRUFHTCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sQ0FBVSxXQUFXLEdBQWdCLENBQUMsT0FBd0IsRUFBRSxFQUFFO1FBQ3RFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUVqQixJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUIsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNmLENBQUM7YUFBTSxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQzthQUFNLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3hCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDekMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FB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SSxZQUFZLEtBQUssSUFBSSxJQUFJLFNBQVMsR0FBRyxZQUFZLEVBQUUsQ0FBQztZQUN0RCxNQUFNLENBQUMsOEJBQThCLENBQUMsR0FBRztnQkFDdkMsR0FBRyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO2dCQUNyQyxNQUFNLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDdkMsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLFlBQVksS0FBSyxJQUFJLElBQUksU0FBUyxHQUFHLFlBQVksRUFBRSxDQUFDO1lBQ3RELE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxHQUFHO2dCQUNwQyxHQUFHLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3JDLE1BQU0sRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQzthQUN2QyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQ29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yRm4sXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE51bGxhYmxlLCBSZHREYXRlVXRpbHMgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgUmR0RGF0ZVZhbGlkYXRvcnMge1xuICBzdGF0aWMgcmVhZG9ubHkgbm90SW5GdXR1cmU6IFZhbGlkYXRvckZuID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgIGxldCB2YWx1ZSA9IG51bGw7XG5cbiAgICBpZiAoY29udHJvbC52YWx1ZSA9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgY29udHJvbC52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhbHVlID0gRGF0ZS5wYXJzZShjb250cm9sLnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoY29udHJvbC52YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gY29udHJvbC52YWx1ZS5nZXRUaW1lKCk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgRGF0ZS5ub3coKSA+IHZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGVJbkZ1dHVyZTogdHJ1ZSxcbiAgICB9O1xuICB9O1xuXG4gIHN0YXRpYyBsYXN0RGF5T2ZNb250aDogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjb250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBsYXN0RGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAwKTtcbiAgICBpZiAoZGF0ZS5nZXREYXRlKCkgPT09IGxhc3REYXkuZ2V0RGF0ZSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhc3REYXlPZk1vbnRoOiB0cnVlLFxuICAgIH07XG4gIH07XG5cbiAgc3RhdGljIGdyZWF0ZXJPckVxdWFsVG9GaWVsZChcbiAgICBzdGFydERhdGVGaWVsZDogc3RyaW5nIHwgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4sXG4gICAgZXJyb3IgPSAnUkRUX0RBVEVfVE9PX1NPT04nLFxuICAgIHVuc3Vic2NyaWJlU3Viaj86IFN1YmplY3Q8dm9pZD5cbiAgKTogVmFsaWRhdG9yRm4ge1xuICAgIGxldCBzdWJiZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiAoZW5kQ29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBjb25zdCBzdGFydENvbnRyb2wgPVxuICAgICAgICBzdGFydERhdGVGaWVsZCBpbnN0YW5jZW9mIEZvcm1Db250cm9sXG4gICAgICAgICAgPyBzdGFydERhdGVGaWVsZFxuICAgICAgICAgIDogZW5kQ29udHJvbC5wYXJlbnQ/LmdldChzdGFydERhdGVGaWVsZCk7XG5cbiAgICAgIGlmICghc3RhcnRDb250cm9sKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXN1YmJlZCkge1xuICAgICAgICBzdWJiZWQgPSB0cnVlO1xuICAgICAgICBsZXQgY2hhbmdlJDogT2JzZXJ2YWJsZTxhbnk+IHwgdW5kZWZpbmVkID0gbWVyZ2UoXG4gICAgICAgICAgc3RhcnRDb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgICAgICBzdGFydENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHVuc3Vic2NyaWJlU3Viaikge1xuICAgICAgICAgIGNoYW5nZSQgPSBjaGFuZ2UkLnBpcGUodGFrZVVudGlsKHVuc3Vic2NyaWJlU3ViaikpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2UkKSB7XG4gICAgICAgICAgY2hhbmdlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgZW5kQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0Q29udHJvbD8udmFsdWU7XG4gICAgICBjb25zdCBlbmREYXRlID0gZW5kQ29udHJvbC52YWx1ZTtcbiAgICAgIGlmICghc3RhcnREYXRlIHx8ICFlbmREYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKERhdGUucGFyc2Uoc3RhcnREYXRlKSA+IERhdGUucGFyc2UoZW5kRGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0ZUdyZWF0ZXJPckVxdWFsVG9GaWVsZDogZXJyb3IgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgbGVzc09yRXF1YWxUb0ZpZWxkKFxuICAgIGVuZERhdGVGaWVsZDogc3RyaW5nIHwgRm9ybUNvbnRyb2w8c3RyaW5nPiB8IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+LFxuICAgIGVycm9yID0gJ1JEVF9EQVRFX1RPT19MQVRFJyxcbiAgICB1bnN1YnNjcmliZVN1Ymo/OiBTdWJqZWN0PHZvaWQ+XG4gICk6IFZhbGlkYXRvckZuIHtcbiAgICBsZXQgc3ViYmVkID0gZmFsc2U7XG4gICAgcmV0dXJuIChzdGFydENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgY29uc3QgZW5kQ29udHJvbCA9XG4gICAgICAgIGVuZERhdGVGaWVsZCBpbnN0YW5jZW9mIEZvcm1Db250cm9sXG4gICAgICAgICAgPyBlbmREYXRlRmllbGRcbiAgICAgICAgICA6IHN0YXJ0Q29udHJvbC5wYXJlbnQ/LmdldChlbmREYXRlRmllbGQpO1xuICAgICAgaWYgKCFlbmRDb250cm9sKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKCFzdWJiZWQpIHtcbiAgICAgICAgc3ViYmVkID0gdHJ1ZTtcbiAgICAgICAgbGV0IGNoYW5nZSQ6IE9ic2VydmFibGU8YW55PiB8IHVuZGVmaW5lZCA9IG1lcmdlKFxuICAgICAgICAgIGVuZENvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgICAgIGVuZENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHVuc3Vic2NyaWJlU3Viaikge1xuICAgICAgICAgIGNoYW5nZSQgPSBjaGFuZ2UkLnBpcGUodGFrZVVudGlsKHVuc3Vic2NyaWJlU3ViaikpO1xuICAgICAgICB9XG4gICAgICAgIGNoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBzdGFydENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0Q29udHJvbC52YWx1ZTtcbiAgICAgIGNvbnN0IGVuZERhdGUgPSBlbmRDb250cm9sPy52YWx1ZTtcbiAgICAgIGlmICghc3RhcnREYXRlIHx8ICFlbmREYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKERhdGUucGFyc2Uoc3RhcnREYXRlKSA+IERhdGUucGFyc2UoZW5kRGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0ZUxlc3NPckVxdWFsVG9GaWVsZDogZXJyb3IgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgbGVzc09yRXF1YWxUb0NvbnN0YW50KHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+XG4gICAgICBSZHREYXRlVmFsaWRhdG9ycy5nZXREYXRlUmFuZ2VFcnJvcnMoY29udHJvbC52YWx1ZSwgbnVsbCwgdmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIGdyZWF0ZXJPckVxdWFsVG9Db25zdGFudCh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PlxuICAgICAgUmR0RGF0ZVZhbGlkYXRvcnMuZ2V0RGF0ZVJhbmdlRXJyb3JzKGNvbnRyb2wudmFsdWUsIHZhbHVlLCBudWxsKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXREYXRlUmFuZ2VFcnJvcnMoXG4gICAgdmFsdWU6IE51bGxhYmxlPHN0cmluZz4sXG4gICAgbWluRGF0ZTogTnVsbGFibGU8RGF0ZSB8IHN0cmluZz4sXG4gICAgbWF4RGF0ZTogTnVsbGFibGU8RGF0ZSB8IHN0cmluZz5cbiAgKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICgobWluRGF0ZSA9PSBudWxsICYmIG1heERhdGUgPT0gbnVsbCkgfHwgdmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGRhdGVWYWx1ZSA9IERhdGUucGFyc2UodmFsdWUpO1xuICAgIGxldCBtaW5EYXRlVmFsdWUgPSBSZHREYXRlVXRpbHMucGFyc2UobWluRGF0ZSk7XG4gICAgbGV0IG1heERhdGVWYWx1ZSA9IFJkdERhdGVVdGlscy5wYXJzZShtYXhEYXRlKTtcblxuICAgIGlmIChtaW5EYXRlVmFsdWUpIHtcbiAgICAgIG1pbkRhdGVWYWx1ZSA9IFJkdERhdGVVdGlscy5zdGFydE9mRGF5KG5ldyBEYXRlKG1pbkRhdGVWYWx1ZSkpLmdldFRpbWUoKTtcbiAgICB9XG4gICAgaWYgKG1heERhdGVWYWx1ZSkge1xuICAgICAgbWF4RGF0ZVZhbHVlID0gUmR0RGF0ZVV0aWxzLmVuZE9mRGF5KG5ldyBEYXRlKG1heERhdGVWYWx1ZSkpLmdldFRpbWUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB7fTtcblxuICAgIGlmIChtaW5EYXRlVmFsdWUgIT09IG51bGwgJiYgZGF0ZVZhbHVlIDwgbWluRGF0ZVZhbHVlKSB7XG4gICAgICBlcnJvcnNbJ2RhdGVHcmVhdGVyT3JFcXVhbFRvQ29uc3RhbnQnXSA9IHtcbiAgICAgICAgbWluOiBSZHREYXRlVXRpbHMuZm9ybWF0RGF0ZShtaW5EYXRlKSxcbiAgICAgICAgYWN0dWFsOiBSZHREYXRlVXRpbHMuZm9ybWF0RGF0ZSh2YWx1ZSksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAobWF4RGF0ZVZhbHVlICE9PSBudWxsICYmIGRhdGVWYWx1ZSA+IG1heERhdGVWYWx1ZSkge1xuICAgICAgZXJyb3JzWydkYXRlTGVzc09yRXF1YWxUb0NvbnN0YW50J10gPSB7XG4gICAgICAgIG1heDogUmR0RGF0ZVV0aWxzLmZvcm1hdERhdGUobWF4RGF0ZSksXG4gICAgICAgIGFjdHVhbDogUmR0RGF0ZVV0aWxzLmZvcm1hdERhdGUodmFsdWUpLFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { FormGroup, } from '@angular/forms';\nexport class RdtCommonValidators {\n static atLeastOneRequired = () => null;\n static atLeastOneRequiredParent = (control) => {\n if (!(control instanceof FormGroup)) {\n throw new Error('Apply this validator to FormGroup.');\n }\n let someControlsHaveIt = false;\n for (const key in control.controls) {\n const ctrl = control.controls[key];\n if (ctrl.hasValidator(RdtCommonValidators.atLeastOneRequired)) {\n if (ctrl.value !== '' && ctrl.value != null) {\n return null;\n }\n someControlsHaveIt = true;\n }\n }\n if (someControlsHaveIt) {\n return {\n atLeastOneRequired: true,\n };\n }\n return null;\n };\n static cannotContainChars(chars) {\n return (control) => {\n if (!control.value) {\n return null;\n }\n const value = control.value;\n if (chars.some((char) => value.includes(char))) {\n return {\n cannotContainChars: chars,\n };\n }\n return null;\n };\n }\n static startsWithPrefix(text) {\n return (control) => {\n const isValid = control.value?.startsWith(text);\n return isValid\n ? null\n : {\n mustHavePrefix: {\n text,\n },\n };\n };\n }\n static exactLength(length) {\n return (control) => {\n if (!control.value) {\n return null;\n }\n const value = control.value;\n if (value.length !== length) {\n return {\n exactLength: length,\n };\n }\n return null;\n };\n }\n static maxNumLength(length) {\n return (control) => {\n if (!control.value) {\n return null;\n }\n const maxlengthError = { requiredLength: length };\n const constrolValue = control.value + '';\n if (constrolValue.length > length) {\n return {\n maxlength: maxlengthError,\n };\n }\n return null;\n };\n }\n static mustBeLowercase = (control) => {\n if (!control.value) {\n return null;\n }\n const value = control.value;\n if (value !== value.toLowerCase()) {\n return {\n mustBeLowercase: true,\n };\n }\n return null;\n };\n static cannotContainAccents = (control) => {\n if (!control.value) {\n return null;\n }\n const value = control.value;\n if (/^[a-zA-Z0-9]+$/.test(value)) {\n return null;\n }\n else {\n return {\n cannotContainSpecialChars: true,\n };\n }\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL3ZhbGlkYXRvcnMvZ2VuZXJhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxHQUdWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixNQUFNLENBQVUsa0JBQWtCLEdBQWdCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUU3RCxNQUFNLENBQVUsd0JBQXdCLEdBQWdCLENBQ3RELE9BQXdCLEVBQ3hCLEVBQUU7UUFDRixJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRS9CLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztnQkFDOUQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUM1QyxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixPQUFPO2dCQUNMLGtCQUFrQixFQUFFLElBQUk7YUFDekIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFlO1FBQ3ZDLE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQWUsQ0FBQztZQUN0QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxPQUFPO29CQUNMLGtCQUFrQixFQUFFLEtBQUs7aUJBQzFCLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVk7UUFDbEMsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7WUFDM0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEQsT0FBTyxPQUFPO2dCQUNaLENBQUMsQ0FBQyxJQUFJO2dCQUNOLENBQUMsQ0FBQztvQkFDRSxjQUFjLEVBQUU7d0JBQ2QsSUFBSTtxQkFDTDtpQkFDRixDQUFDO1FBQ1IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBYztRQUMvQixPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFlLENBQUM7WUFDdEMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUM1QixPQUFPO29CQUNMLFdBQVcsRUFBRSxNQUFNO2lCQUNwQixDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBYztRQUNoQyxPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELE1BQU0sY0FBYyxHQUFHLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2xELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3pDLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztnQkFDbEMsT0FBTztvQkFDTCxTQUFTLEVBQUUsY0FBYztpQkFDMUIsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxHQUFnQixDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUNqRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFlLENBQUM7UUFDdEMsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDbEMsT0FBTztnQkFDTCxlQUFlLEVBQUUsSUFBSTthQUN0QixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLG9CQUFvQixHQUFnQixDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUN0RSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFlLENBQUM7UUFDdEMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTztnQkFDTCx5QkFBeUIsRUFBRSxJQUFJO2FBQ2hDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjbGFzcyBSZHRDb21tb25WYWxpZGF0b3JzIHtcbiAgc3RhdGljIHJlYWRvbmx5IGF0TGVhc3RPbmVSZXF1aXJlZDogVmFsaWRhdG9yRm4gPSAoKSA9PiBudWxsO1xuXG4gIHN0YXRpYyByZWFkb25seSBhdExlYXN0T25lUmVxdWlyZWRQYXJlbnQ6IFZhbGlkYXRvckZuID0gKFxuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbFxuICApID0+IHtcbiAgICBpZiAoIShjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcHBseSB0aGlzIHZhbGlkYXRvciB0byBGb3JtR3JvdXAuJyk7XG4gICAgfVxuXG4gICAgbGV0IHNvbWVDb250cm9sc0hhdmVJdCA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29udHJvbC5jb250cm9scykge1xuICAgICAgY29uc3QgY3RybCA9IGNvbnRyb2wuY29udHJvbHNba2V5XTtcbiAgICAgIGlmIChjdHJsLmhhc1ZhbGlkYXRvcihSZHRDb21tb25WYWxpZGF0b3JzLmF0TGVhc3RPbmVSZXF1aXJlZCkpIHtcbiAgICAgICAgaWYgKGN0cmwudmFsdWUgIT09ICcnICYmIGN0cmwudmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHNvbWVDb250cm9sc0hhdmVJdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzb21lQ29udHJvbHNIYXZlSXQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF0TGVhc3RPbmVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIHN0YXRpYyBjYW5ub3RDb250YWluQ2hhcnMoY2hhcnM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlIGFzIHN0cmluZztcbiAgICAgIGlmIChjaGFycy5zb21lKChjaGFyKSA9PiB2YWx1ZS5pbmNsdWRlcyhjaGFyKSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjYW5ub3RDb250YWluQ2hhcnM6IGNoYXJzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBzdGFydHNXaXRoUHJlZml4KHRleHQ6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSBjb250cm9sLnZhbHVlPy5zdGFydHNXaXRoKHRleHQpO1xuICAgICAgcmV0dXJuIGlzVmFsaWRcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDoge1xuICAgICAgICAgICAgbXVzdEhhdmVQcmVmaXg6IHtcbiAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGV4YWN0TGVuZ3RoKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlIGFzIHN0cmluZztcbiAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGV4YWN0TGVuZ3RoOiBsZW5ndGgsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIG1heE51bUxlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXhsZW5ndGhFcnJvciA9IHsgcmVxdWlyZWRMZW5ndGg6IGxlbmd0aCB9O1xuICAgICAgY29uc3QgY29uc3Ryb2xWYWx1ZSA9IGNvbnRyb2wudmFsdWUgKyAnJztcbiAgICAgIGlmIChjb25zdHJvbFZhbHVlLmxlbmd0aCA+IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1heGxlbmd0aDogbWF4bGVuZ3RoRXJyb3IsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIG11c3RCZUxvd2VyY2FzZTogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWUgYXMgc3RyaW5nO1xuICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbXVzdEJlTG93ZXJjYXNlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgc3RhdGljIGNhbm5vdENvbnRhaW5BY2NlbnRzOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZSBhcyBzdHJpbmc7XG4gICAgaWYgKC9eW2EtekEtWjAtOV0rJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjYW5ub3RDb250YWluU3BlY2lhbENoYXJzOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtZm9ybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL25ncmR0LWZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngrdt-forms.mjs","sources":["../tmp-esm2022/lib/utils/get-form-control.js","../tmp-esm2022/lib/base/rdt-base-form-input.component.js","../tmp-esm2022/lib/base/rdt-form-input-outlet.directive.js","../tmp-esm2022/lib/inputs/checkbox/providers/rdt-checkbox-base-provider.js","../tmp-esm2022/lib/inputs/checkbox/checkbox-outlet/rdt-checkbox-outlet.directive.js","../tmp-esm2022/lib/inputs/checkbox/rdt-checkbox.component.js","../tmp-esm2022/lib/inputs/date/providers.js","../tmp-esm2022/lib/utils/transform.js","../tmp-esm2022/lib/inputs/date/rdt-date.component.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader-noop.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader-base64.js","../tmp-esm2022/lib/inputs/file-input/tokens/rdt-default-file-reader.js","../tmp-esm2022/lib/inputs/file-input/tokens/rdt-default-label-fn.js","../tmp-esm2022/lib/inputs/file-input/tokens/rdt-default-max-file-size.js","../tmp-esm2022/lib/inputs/file-input/rdt-file-input.component.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader-array-buffer.js","../tmp-esm2022/lib/inputs/file-input/reader/rdt-file-reader-text.js","../tmp-esm2022/lib/inputs/numeric-input/providers/rdt-numeric-input-base-provider.js","../tmp-esm2022/lib/inputs/numeric-input/numeric-input-outlet/rdt-numeric-input-outlet.directive.js","../tmp-esm2022/lib/inputs/numeric-input/rdt-numeric-input.component.js","../tmp-esm2022/lib/inputs/select/utils/paginate.js","../tmp-esm2022/lib/inputs/select/datasource/rdt-select-datasource.js","../tmp-esm2022/lib/inputs/select/datasource/rdt-offline-select-datasource.js","../tmp-esm2022/lib/inputs/select/state/rdt-select-state.js","../tmp-esm2022/lib/inputs/select/utils/request.js","../tmp-esm2022/lib/inputs/select/state/rdt-select-store.js","../tmp-esm2022/lib/inputs/select/directives/rdt-select-offline-datasource.directive.js","../tmp-esm2022/lib/inputs/select/directives/rdt-select-option.directive.js","../tmp-esm2022/lib/inputs/select/providers/rdt-select-base-provider.js","../tmp-esm2022/lib/inputs/select/directives/rdt-select-outlet.directive.js","../tmp-esm2022/lib/inputs/select/rdt-base-select.component.js","../tmp-esm2022/lib/inputs/select/rdt-multi-select.component.js","../tmp-esm2022/lib/inputs/select/rdt-single-select.component.js","../tmp-esm2022/lib/inputs/text-area/rdt-text-area.component.js","../tmp-esm2022/lib/inputs/text-input/rdt-text-input.component.js","../tmp-esm2022/lib/inputs/text-search-input/datasource/rdt-text-search-input-datasource.js","../tmp-esm2022/lib/inputs/text-search-input/rdt-text-search-input.component.js","../tmp-esm2022/lib/pipes/providers/rdt-error-code-provider.js","../tmp-esm2022/lib/pipes/form-error.pipe.js","../tmp-esm2022/lib/validators/date.js","../tmp-esm2022/lib/validators/general.js","../tmp-esm2022/ngrdt-forms.js"],"sourcesContent":["import { FormControlDirective, FormControlName, NgModel, } from '@angular/forms';\nexport function getFormControl(ngControl) {\n if (ngControl instanceof FormControlName) {\n const formGroupDirective = ngControl.formDirective;\n if (formGroupDirective) {\n return formGroupDirective.form.get(ngControl.path);\n }\n else {\n return null;\n }\n }\n else if (ngControl instanceof FormControlDirective ||\n ngControl instanceof NgModel) {\n return ngControl.control;\n }\n else {\n return null;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWZvcm0tY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL3V0aWxzL2dldC1mb3JtLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixlQUFlLEVBR2YsT0FBTyxHQUNSLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUFvQjtJQUNqRCxJQUFJLFNBQVMsWUFBWSxlQUFlLEVBQUUsQ0FBQztRQUN6QyxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxhQUFtQyxDQUFDO1FBQ3pFLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBZ0IsQ0FBQztRQUNwRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7U0FBTSxJQUNMLFNBQVMsWUFBWSxvQkFBb0I7UUFDekMsU0FBUyxZQUFZLE9BQU8sRUFDNUIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUMzQixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBGb3JtQ29udHJvbCxcbiAgRm9ybUNvbnRyb2xEaXJlY3RpdmUsXG4gIEZvcm1Db250cm9sTmFtZSxcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBOZ0NvbnRyb2wsXG4gIE5nTW9kZWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1Db250cm9sKG5nQ29udHJvbDogTmdDb250cm9sKSB7XG4gIGlmIChuZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbE5hbWUpIHtcbiAgICBjb25zdCBmb3JtR3JvdXBEaXJlY3RpdmUgPSBuZ0NvbnRyb2wuZm9ybURpcmVjdGl2ZSBhcyBGb3JtR3JvdXBEaXJlY3RpdmU7XG4gICAgaWYgKGZvcm1Hcm91cERpcmVjdGl2ZSkge1xuICAgICAgcmV0dXJuIGZvcm1Hcm91cERpcmVjdGl2ZS5mb3JtLmdldChuZ0NvbnRyb2wucGF0aCkgYXMgRm9ybUNvbnRyb2w7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSBlbHNlIGlmIChcbiAgICBuZ0NvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbERpcmVjdGl2ZSB8fFxuICAgIG5nQ29udHJvbCBpbnN0YW5jZW9mIE5nTW9kZWxcbiAgKSB7XG4gICAgcmV0dXJuIG5nQ29udHJvbC5jb250cm9sO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=","import { booleanAttribute, computed, Directive, effect, inject, Injector, input, linkedSignal, model, signal, untracked, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl, Validators, } from '@angular/forms';\nimport { RdtInteractiveElementComponent } from '@ngrdt/core';\nimport { startWith } from 'rxjs';\nimport { getFormControl } from '../utils/get-form-control';\nimport * as i0 from \"@angular/core\";\nconst noop = () => { };\nexport class RdtBaseFormInputComponent extends RdtInteractiveElementComponent {\n injector = inject(Injector);\n _control = signal(null);\n control = this._control.asReadonly();\n externalValue = model(null, { alias: 'value' });\n internalValue = linkedSignal(() => this.toInternalValue(this.externalValue()));\n labelInput = input('', { alias: 'label' });\n label = linkedSignal(() => this.labelInput() ?? '');\n placeholderInput = input('', { alias: 'placeholder' });\n placeholder = linkedSignal(() => this.placeholderInput() ?? '');\n nameInput = input('', { alias: 'name' });\n name = linkedSignal(() => this.nameInput() ?? '');\n readonlyInput = input(null, {\n alias: 'readonly',\n transform: booleanAttribute,\n });\n requiredInput = input(null, {\n alias: 'required',\n transform: booleanAttribute,\n });\n requiredFromControl = signal(false);\n required = linkedSignal(() => {\n return this.requiredInput() ?? this.requiredFromControl() ?? false;\n });\n touchedInternal = signal(false);\n touched = computed(() => {\n const control = this.control();\n if (control) {\n return control.touchedReactive();\n }\n else {\n return this.touchedInternal();\n }\n });\n invalid = computed(() => {\n if (this.requiredInput() && this.isEmpty(this.externalValue())) {\n return true;\n }\n const control = this.control();\n if (control) {\n return control.statusReactive() === 'INVALID';\n }\n else {\n return !!this.additionalErrors();\n }\n });\n requiredEffect = effect(() => {\n this.requiredInput();\n this.onValidatorChange();\n });\n requiredError = computed(() => this.getRequiredError(this.externalValue()));\n controlErrors = computed(() => {\n const control = this.control();\n if (control) {\n control.statusReactive();\n return control.errors;\n }\n else {\n return null;\n }\n });\n additionalErrors = signal(null);\n errors = computed(() => this.controlErrors() ?? this.requiredError() ?? this.additionalErrors());\n visibleErrors = computed(() => this.invalid() && this.touched() ? this.errors() : null);\n get ngControl() {\n return this._ngControl;\n }\n _ngControl = null;\n _onChange = noop;\n _onTouch = () => this.touchedInternal.set(true);\n _onValidatorChange = noop;\n get onChange() {\n return this._onChange;\n }\n get onTouch() {\n return this._onTouch;\n }\n get onValidatorChange() {\n return this._onValidatorChange;\n }\n ngOnInit() {\n this._ngControl = this.injector.get(NgControl, null, {\n self: true,\n optional: true,\n });\n if (this._ngControl) {\n const control = getFormControl(this._ngControl);\n this._control.set(control);\n if (control) {\n this.listenControlEvents(control);\n }\n }\n }\n ngOnDestroy() {\n const control = this.control();\n if (this.requiredInput() && control) {\n control.removeValidators(Validators.required);\n control.setErrors(null);\n }\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouch = () => {\n this.touchedInternal.set(true);\n fn();\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n writeValue(value) {\n this.externalValue.set(value);\n }\n // Implemented as a part of Validator.\n validate(control) {\n return this.requiredError();\n }\n registerOnValidatorChange(fn) {\n this._onValidatorChange = fn;\n }\n onInternalValueChange(value) {\n if (value === '') {\n value = null; // Convert empty string to null\n }\n if (!this.areInternalValuesEqual(value, untracked(this.internalValue))) {\n const externalValue = this.toExternalValue(value);\n this.externalValue.set(externalValue);\n this.onChange(externalValue);\n }\n }\n setAdditionalErrors(errors) {\n if (errors === null || Object.keys(errors).length === 0) {\n this.additionalErrors.set(null);\n }\n else {\n this.additionalErrors.set(errors);\n }\n }\n areInternalValuesEqual(value1, value2) {\n return value1 === value2;\n }\n listenControlEvents(control) {\n control.events\n .pipe(startWith(null), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.requiredFromControl.set(control.hasValidator(Validators.required));\n });\n }\n toExternalValue(internalValue) {\n return internalValue;\n }\n toInternalValue(externalValue) {\n return externalValue;\n }\n onBlur() {\n super.onBlur();\n Promise.resolve().then(() => {\n this.onTouch();\n });\n }\n getRequiredError(value) {\n return this.required() && this.isEmpty(value)\n ? RdtBaseFormInputComponent.REQUIRED_ERROR\n : null;\n }\n static REQUIRED_ERROR = { required: true };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtBaseFormInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtBaseFormInputComponent, isStandalone: true, inputs: { externalValue: { classPropertyName: \"externalValue\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null }, labelInput: { classPropertyName: \"labelInput\", publicName: \"label\", isSignal: true, isRequired: false, transformFunction: null }, placeholderInput: { classPropertyName: \"placeholderInput\", publicName: \"placeholder\", isSignal: true, isRequired: false, transformFunction: null }, nameInput: { classPropertyName: \"nameInput\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, readonlyInput: { classPropertyName: \"readonlyInput\", publicName: \"readonly\", isSignal: true, isRequired: false, transformFunction: null }, requiredInput: { classPropertyName: \"requiredInput\", publicName: \"required\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { externalValue: \"valueChange\" }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtBaseFormInputComponent, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFHTCxTQUFTLEVBRVQsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUUzRCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFLdEIsTUFBTSxPQUFnQix5QkFDcEIsU0FBUSw4QkFBOEI7SUFHN0IsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVsQixRQUFRLEdBQUcsTUFBTSxDQUErQixJQUFJLENBQUMsQ0FBQztJQUNoRSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUVyQyxhQUFhLEdBQUcsS0FBSyxDQUFjLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdELGFBQWEsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ3pDLElBQUksQ0FBQyxlQUFlLENB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O2FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxlQUFlLENBQUMsYUFBMEI7UUFDbEQsT0FBTyxhQUE0QixDQUFDO0lBQ3RDLENBQUM7SUFFUyxlQUFlLENBQUMsYUFBMEI7UUFDbEQsT0FBTyxhQUE0QixDQUFDO0lBQ3RDLENBQUM7SUFFUSxNQUFNO1FBQ2IsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWtCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjO1lBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRU8sTUFBTSxDQUFVLGNBQWMsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQzt1R0F4TnhDLHlCQUF5QjsyRkFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUg5QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIGxpbmtlZFNpZ25hbCxcbiAgbW9kZWwsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaWduYWwsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5nQ29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmR0SW50ZXJhY3RpdmVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnQG5ncmR0L2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRGb3JtQ29udHJvbCB9IGZyb20gJy4uL3V0aWxzL2dldC1mb3JtLWNvbnRyb2wnO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50PFRFeHQsIFRJbnQgPSBURXh0PlxuICBleHRlbmRzIFJkdEludGVyYWN0aXZlRWxlbWVudENvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb250cm9sID0gc2lnbmFsPEFic3RyYWN0Q29udHJvbDxURXh0PiB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBjb250cm9sID0gdGhpcy5fY29udHJvbC5hc1JlYWRvbmx5KCk7XG5cbiAgcmVhZG9ubHkgZXh0ZXJuYWxWYWx1ZSA9IG1vZGVsPFRFeHQgfCBudWxsPihudWxsLCB7IGFsaWFzOiAndmFsdWUnIH0pO1xuICByZWFkb25seSBpbnRlcm5hbFZhbHVlID0gbGlua2VkU2lnbmFsKCgpID0+XG4gICAgdGhpcy50b0ludGVybmFsVmFsdWUodGhpcy5leHRlcm5hbFZhbHVlKCkpXG4gICk7XG5cbiAgcmVhZG9ubHkgbGFiZWxJbnB1dCA9IGlucHV0KCcnLCB7IGFsaWFzOiAnbGFiZWwnIH0pO1xuICByZWFkb25seSBsYWJlbCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmxhYmVsSW5wdXQoKSA/PyAnJyk7XG5cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXJJbnB1dCA9IGlucHV0KCcnLCB7IGFsaWFzOiAncGxhY2Vob2xkZXInIH0pO1xuICByZWFkb25seSBwbGFjZWhvbGRlciA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnBsYWNlaG9sZGVySW5wdXQoKSA/PyAnJyk7XG5cbiAgcmVhZG9ubHkgbmFtZUlucHV0ID0gaW5wdXQoJycsIHsgYWxpYXM6ICduYW1lJyB9KTtcbiAgcmVhZG9ubHkgbmFtZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLm5hbWVJbnB1dCgpID8/ICcnKTtcblxuICByZWFkb25seSByZWFkb25seUlucHV0ID0gaW5wdXQ8XG4gICAgYm9vbGVhbiB8IG51bGwsXG4gICAgTnVsbGFibGU8Ym9vbGVhbiB8IHN0cmluZyB8IG51bWJlcj5cbiAgPihudWxsLCB7XG4gICAgYWxpYXM6ICdyZWFkb25seScsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICByZWFkb25seSByZXF1aXJlZElucHV0ID0gaW5wdXQ8XG4gICAgTnVsbGFibGU8Ym9vbGVhbj4sXG4gICAgTnVsbGFibGU8Ym9vbGVhbiB8IHN0cmluZyB8IG51bWJlcj5cbiAgPihudWxsLCB7XG4gICAgYWxpYXM6ICdyZXF1aXJlZCcsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcXVpcmVkRnJvbUNvbnRyb2wgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSByZXF1aXJlZCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZWRJbnB1dCgpID8/IHRoaXMucmVxdWlyZWRGcm9tQ29udHJvbCgpID8/IGZhbHNlO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG91Y2hlZEludGVybmFsID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgdG91Y2hlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sKCkgYXMgYW55O1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICByZXR1cm4gY29udHJvbC50b3VjaGVkUmVhY3RpdmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudG91Y2hlZEludGVybmFsKCk7XG4gICAgfVxuICB9KTtcbiAgcmVhZG9ubHkgaW52YWxpZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5yZXF1aXJlZElucHV0KCkgJiYgdGhpcy5pc0VtcHR5KHRoaXMuZXh0ZXJuYWxWYWx1ZSgpKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2woKSBhcyBhbnk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBjb250cm9sLnN0YXR1c1JlYWN0aXZlKCkgPT09ICdJTlZBTElEJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICEhdGhpcy5hZGRpdGlvbmFsRXJyb3JzKCk7XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVxdWlyZWRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMucmVxdWlyZWRJbnB1dCgpO1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXF1aXJlZEVycm9yID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmdldFJlcXVpcmVkRXJyb3IodGhpcy5leHRlcm5hbFZhbHVlKCkpXG4gICk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRyb2xFcnJvcnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpO1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICAoY29udHJvbCBhcyBhbnkpLnN0YXR1c1JlYWN0aXZlKCk7XG4gICAgICByZXR1cm4gY29udHJvbC5lcnJvcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBhZGRpdGlvbmFsRXJyb3JzID0gc2lnbmFsPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgZXJyb3JzID0gY29tcHV0ZWQoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuY29udHJvbEVycm9ycygpID8/IHRoaXMucmVxdWlyZWRFcnJvcigpID8/IHRoaXMuYWRkaXRpb25hbEVycm9ycygpXG4gICk7XG4gIHJlYWRvbmx5IHZpc2libGVFcnJvcnM6IFNpZ25hbDxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuaW52YWxpZCgpICYmIHRoaXMudG91Y2hlZCgpID8gdGhpcy5lcnJvcnMoKSA6IG51bGxcbiAgKTtcblxuICBnZXQgbmdDb250cm9sKCkge1xuICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2w7XG4gIH1cbiAgcHJpdmF0ZSBfbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIF9vblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy50b3VjaGVkSW50ZXJuYWwuc2V0KHRydWUpO1xuICBwcml2YXRlIF9vblZhbGlkYXRvckNoYW5nZTogKCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgZ2V0IG9uQ2hhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLl9vbkNoYW5nZTtcbiAgfVxuXG4gIGdldCBvblRvdWNoKCkge1xuICAgIHJldHVybiB0aGlzLl9vblRvdWNoO1xuICB9XG5cbiAgZ2V0IG9uVmFsaWRhdG9yQ2hhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLl9vblZhbGlkYXRvckNoYW5nZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX25nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCwge1xuICAgICAgc2VsZjogdHJ1ZSxcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBnZXRGb3JtQ29udHJvbCh0aGlzLl9uZ0NvbnRyb2wpO1xuICAgICAgdGhpcy5fY29udHJvbC5zZXQoY29udHJvbCk7XG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICB0aGlzLmxpc3RlbkNvbnRyb2xFdmVudHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpO1xuICAgIGlmICh0aGlzLnJlcXVpcmVkSW5wdXQoKSAmJiBjb250cm9sKSB7XG4gICAgICBjb250cm9sLnJlbW92ZVZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICBjb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoID0gKCkgPT4ge1xuICAgICAgdGhpcy50b3VjaGVkSW50ZXJuYWwuc2V0KHRydWUpO1xuICAgICAgZm4oKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmV4dGVybmFsVmFsdWUuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBWYWxpZGF0b3IuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxURXh0Pik6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZEVycm9yKCk7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBpc0VtcHR5KHZhbHVlOiBURXh0IHwgbnVsbCk6IGJvb2xlYW47XG5cbiAgb25JbnRlcm5hbFZhbHVlQ2hhbmdlKHZhbHVlOiBUSW50IHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgIHZhbHVlID0gbnVsbDsgLy8gQ29udmVydCBlbXB0eSBzdHJpbmcgdG8gbnVsbFxuICAgIH1cbiAgICBpZiAoIXRoaXMuYXJlSW50ZXJuYWxWYWx1ZXNFcXVhbCh2YWx1ZSwgdW50cmFja2VkKHRoaXMuaW50ZXJuYWxWYWx1ZSkpKSB7XG4gICAgICBjb25zdCBleHRlcm5hbFZhbHVlID0gdGhpcy50b0V4dGVybmFsVmFsdWUodmFsdWUpO1xuICAgICAgdGhpcy5leHRlcm5hbFZhbHVlLnNldChleHRlcm5hbFZhbHVlKTtcbiAgICAgIHRoaXMub25DaGFuZ2UoZXh0ZXJuYWxWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgc2V0QWRkaXRpb25hbEVycm9ycyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGVycm9ycyA9PT0gbnVsbCB8fCBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hZGRpdGlvbmFsRXJyb3JzLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRpdGlvbmFsRXJyb3JzLnNldChlcnJvcnMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhcmVJbnRlcm5hbFZhbHVlc0VxdWFsKFxuICAgIHZhbHVlMTogVEludCB8IG51bGwsXG4gICAgdmFsdWUyOiBUSW50IHwgbnVsbFxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTI7XG4gIH1cblxuICBwcm90ZWN0ZWQgbGlzdGVuQ29udHJvbEV2ZW50cyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBjb250cm9sLmV2ZW50c1xuICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcXVpcmVkRnJvbUNvbnRyb2wuc2V0KGNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvRXh0ZXJuYWxWYWx1ZShpbnRlcm5hbFZhbHVlOiBUSW50IHwgbnVsbCk6IFRFeHQgfCBudWxsIHtcbiAgICByZXR1cm4gaW50ZXJuYWxWYWx1ZSBhcyBURXh0IHwgbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b0ludGVybmFsVmFsdWUoZXh0ZXJuYWxWYWx1ZTogVEV4dCB8IG51bGwpOiBUSW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIGV4dGVybmFsVmFsdWUgYXMgVEludCB8IG51bGw7XG4gIH1cblxuICBvdmVycmlkZSBvbkJsdXIoKSB7XG4gICAgc3VwZXIub25CbHVyKCk7XG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVxdWlyZWRFcnJvcih2YWx1ZTogVEV4dCB8IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZCgpICYmIHRoaXMuaXNFbXB0eSh2YWx1ZSlcbiAgICAgID8gUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudC5SRVFVSVJFRF9FUlJPUlxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUkVRVUlSRURfRVJST1IgPSB7IHJlcXVpcmVkOiB0cnVlIH07XG59XG4iXX0=","import { Directive } from '@angular/core';\nimport { RdtComponentOutletDirective } from '@ngrdt/core';\nimport * as i0 from \"@angular/core\";\nexport class RdtFormInputOutletDirective extends RdtComponentOutletDirective {\n onChangeFn = () => { };\n onTouchedFn = () => { };\n writeValue(value) {\n const instance = this.componentRef?.instance;\n instance.writeValue?.(value);\n }\n registerOnChange(fn) {\n this.onChangeFn = fn;\n const instance = this.componentRef?.instance;\n instance?.registerOnChange?.(fn);\n }\n registerOnTouched(fn) {\n this.onTouchedFn = fn;\n const instance = this.componentRef?.instance;\n instance?.registerOnTouched?.(fn);\n }\n setDisabledState(isDisabled) {\n const instance = this.componentRef?.instance;\n instance?.setDisabledState?.(isDisabled);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormInputOutletDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtFormInputOutletDirective, isStandalone: true, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormInputOutletDirective, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZvcm0taW5wdXQtb3V0bGV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2Jhc2UvcmR0LWZvcm0taW5wdXQtb3V0bGV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFMUQsTUFBTSxPQUFnQiwyQkFDcEIsU0FBUSwyQkFBZ0Q7SUFHOUMsVUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUMzQixXQUFXLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRXRDLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBZSxDQUFDO1FBQ3BELFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQWUsQ0FBQztRQUNwRCxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQWUsQ0FBQztRQUNwRCxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFlLENBQUM7UUFDcEQsUUFBUSxFQUFFLGdCQUFnQixFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQzt1R0EzQm1CLDJCQUEyQjsyRkFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQURoRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJkdENvbXBvbmVudE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZ3JkdC9jb3JlJztcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdEZvcm1JbnB1dE91dGxldERpcmVjdGl2ZTxUQ29tcG9uZW50LCBUSW5wdXRzPlxuICBleHRlbmRzIFJkdENvbXBvbmVudE91dGxldERpcmVjdGl2ZTxUQ29tcG9uZW50LCBUSW5wdXRzPlxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG57XG4gIHByb3RlY3RlZCBvbkNoYW5nZUZuOiBhbnkgPSAoKSA9PiB7fTtcbiAgcHJvdGVjdGVkIG9uVG91Y2hlZEZuOiBhbnkgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcG9uZW50UmVmPy5pbnN0YW5jZSBhcyBhbnk7XG4gICAgaW5zdGFuY2Uud3JpdGVWYWx1ZT8uKHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlIGFzIGFueTtcbiAgICBpbnN0YW5jZT8ucmVnaXN0ZXJPbkNoYW5nZT8uKGZuKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFJlZj8uaW5zdGFuY2UgYXMgYW55O1xuICAgIGluc3RhbmNlPy5yZWdpc3Rlck9uVG91Y2hlZD8uKGZuKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlIGFzIGFueTtcbiAgICBpbnN0YW5jZT8uc2V0RGlzYWJsZWRTdGF0ZT8uKGlzRGlzYWJsZWQpO1xuICB9XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const RDT_CHECKBOX_BASE_PROVIDER = new InjectionToken('RdtCheckbox');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoZWNrYm94LWJhc2UtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvY2hlY2tib3gvcHJvdmlkZXJzL3JkdC1jaGVja2JveC1iYXNlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBRTFELGFBQWEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4nO1xuXG5leHBvcnQgY29uc3QgUkRUX0NIRUNLQk9YX0JBU0VfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gIFR5cGU8UmR0Q2hlY2tib3hDb21wb25lbnQ+XG4+KCdSZHRDaGVja2JveCcpO1xuIl19","import { Directive, forwardRef, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RdtFormInputOutletDirective } from '../../../base';\nimport { RDT_CHECKBOX_BASE_PROVIDER } from '../providers/rdt-checkbox-base-provider';\nimport * as i0 from \"@angular/core\";\nexport class RdtCheckboxOutletDirective extends RdtFormInputOutletDirective {\n componentClass = inject(RDT_CHECKBOX_BASE_PROVIDER);\n constructor() {\n super();\n this.initComponentRef();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtCheckboxOutletDirective, isStandalone: true, selector: \"[rdtCheckboxOutlet]\", providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdtCheckboxOutletDirective),\n multi: true,\n },\n ], exportAs: [\"rdtCheckboxOutlet\"], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxOutletDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtCheckboxOutlet]',\n standalone: true,\n exportAs: 'rdtCheckboxOutlet',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdtCheckboxOutletDirective),\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoZWNrYm94LW91dGxldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvY2hlY2tib3gvY2hlY2tib3gtb3V0bGV0L3JkdC1jaGVja2JveC1vdXRsZXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBZXJGLE1BQU0sT0FBTywwQkFHWCxTQUFRLDJCQUFxRDtJQUNwRCxjQUFjLEdBQUcsTUFBTSxDQUM5QiwwQkFBMEIsQ0FDUCxDQUFDO0lBRXRCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO3VHQVhVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLGtFQVIxQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7Z0JBQ3pELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7MkZBRVUsMEJBQTBCO2tCQVp0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBpbmplY3QsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmR0Rm9ybUlucHV0T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vYmFzZSc7XG5pbXBvcnQgeyBSZHRDaGVja2JveElucHV0SW50IH0gZnJvbSAnLi4vbW9kZWwvcmR0LWNoZWNrYm94LWludCc7XG5pbXBvcnQgeyBSRFRfQ0hFQ0tCT1hfQkFTRV9QUk9WSURFUiB9IGZyb20gJy4uL3Byb3ZpZGVycy9yZHQtY2hlY2tib3gtYmFzZS1wcm92aWRlcic7XG5pbXBvcnQgeyBSZHRDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL3JkdC1jaGVja2JveC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcmR0Q2hlY2tib3hPdXRsZXRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdyZHRDaGVja2JveE91dGxldCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmR0Q2hlY2tib3hPdXRsZXREaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0Q2hlY2tib3hPdXRsZXREaXJlY3RpdmU8XG4gIFRDaGVja0NvbXAgZXh0ZW5kcyBSZHRDaGVja2JveENvbXBvbmVudCxcbiAgVENoZWNrSW5wdXRzIGV4dGVuZHMgUmR0Q2hlY2tib3hJbnB1dEludCA9IFJkdENoZWNrYm94SW5wdXRJbnRcbj4gZXh0ZW5kcyBSZHRGb3JtSW5wdXRPdXRsZXREaXJlY3RpdmU8VENoZWNrQ29tcCwgVENoZWNrSW5wdXRzPiB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudENsYXNzID0gaW5qZWN0KFxuICAgIFJEVF9DSEVDS0JPWF9CQVNFX1BST1ZJREVSXG4gICkgYXMgVHlwZTxUQ2hlY2tDb21wPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaW5pdENvbXBvbmVudFJlZigpO1xuICB9XG59XG4iXX0=","import { booleanAttribute, Directive, input, linkedSignal, } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport * as i0 from \"@angular/core\";\nexport class RdtCheckboxComponent extends RdtBaseFormInputComponent {\n trueValueInput = input(true, {\n alias: 'trueValue',\n });\n trueValue = linkedSignal(() => this.trueValueInput());\n falseValueInput = input(false, {\n alias: 'falseValue',\n });\n falseValue = linkedSignal(() => this.falseValueInput());\n indeterminate = input(false, { transform: booleanAttribute });\n toExternalValue(internalValue) {\n switch (internalValue) {\n case true:\n return this.trueValue();\n case false:\n return this.falseValue();\n default:\n return null;\n }\n }\n toInternalValue(externalValue) {\n switch (externalValue) {\n case this.trueValue():\n return true;\n case this.falseValue():\n return false;\n default:\n return null;\n }\n }\n isEmpty(value) {\n return value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtCheckboxComponent, isStandalone: true, inputs: { trueValueInput: { classPropertyName: \"trueValueInput\", publicName: \"trueValue\", isSignal: true, isRequired: false, transformFunction: null }, falseValueInput: { classPropertyName: \"falseValueInput\", publicName: \"falseValue\", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: \"indeterminate\", publicName: \"indeterminate\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9jaGVja2JveC9yZHQtY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBR3JGLE1BQU0sT0FBZ0Isb0JBR3BCLFNBQVEseUJBQWtEO0lBQ2pELGNBQWMsR0FBRyxLQUFLLENBQVEsSUFBYSxFQUFFO1FBQ3BELEtBQUssRUFBRSxXQUFXO0tBQ25CLENBQUMsQ0FBQztJQUNNLFNBQVMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDdEQsZUFBZSxHQUFHLEtBQUssQ0FBUyxLQUFlLEVBQUU7UUFDeEQsS0FBSyxFQUFFLFlBQVk7S0FDcEIsQ0FBQyxDQUFDO0lBQ00sVUFBVSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUN4RCxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFcEQsZUFBZSxDQUNoQyxhQUE2QjtRQUU3QixRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssSUFBSTtnQkFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0I7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFa0IsZUFBZSxDQUNoQyxhQUFvQztRQUVwQyxRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDO1lBQ2Y7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFa0IsT0FBTyxDQUFDLEtBQTRCO1FBQ3JELE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQztJQUN4QixDQUFDO3VHQTFDbUIsb0JBQW9COzJGQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRHpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBEaXJlY3RpdmUsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRDaGVja2JveENvbXBvbmVudDxcbiAgVFRydWUgPSBhbnksXG4gIFRGYWxzZSA9IGFueVxuPiBleHRlbmRzIFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQ8VFRydWUgfCBURmFsc2UsIGJvb2xlYW4+IHtcbiAgcmVhZG9ubHkgdHJ1ZVZhbHVlSW5wdXQgPSBpbnB1dDxUVHJ1ZT4odHJ1ZSBhcyBUVHJ1ZSwge1xuICAgIGFsaWFzOiAndHJ1ZVZhbHVlJyxcbiAgfSk7XG4gIHJlYWRvbmx5IHRydWVWYWx1ZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnRydWVWYWx1ZUlucHV0KCkpO1xuICByZWFkb25seSBmYWxzZVZhbHVlSW5wdXQgPSBpbnB1dDxURmFsc2U+KGZhbHNlIGFzIFRGYWxzZSwge1xuICAgIGFsaWFzOiAnZmFsc2VWYWx1ZScsXG4gIH0pO1xuICByZWFkb25seSBmYWxzZVZhbHVlID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuZmFsc2VWYWx1ZUlucHV0KCkpO1xuICByZWFkb25seSBpbmRldGVybWluYXRlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB0b0V4dGVybmFsVmFsdWUoXG4gICAgaW50ZXJuYWxWYWx1ZTogYm9vbGVhbiB8IG51bGxcbiAgKTogVFRydWUgfCBURmFsc2UgfCBudWxsIHtcbiAgICBzd2l0Y2ggKGludGVybmFsVmFsdWUpIHtcbiAgICAgIGNhc2UgdHJ1ZTpcbiAgICAgICAgcmV0dXJuIHRoaXMudHJ1ZVZhbHVlKCk7XG4gICAgICBjYXNlIGZhbHNlOlxuICAgICAgICByZXR1cm4gdGhpcy5mYWxzZVZhbHVlKCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdG9JbnRlcm5hbFZhbHVlKFxuICAgIGV4dGVybmFsVmFsdWU6IFRUcnVlIHwgVEZhbHNlIHwgbnVsbFxuICApOiBib29sZWFuIHwgbnVsbCB7XG4gICAgc3dpdGNoIChleHRlcm5hbFZhbHVlKSB7XG4gICAgICBjYXNlIHRoaXMudHJ1ZVZhbHVlKCk6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSB0aGlzLmZhbHNlVmFsdWUoKTpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IFRUcnVlIHwgVEZhbHNlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbDtcbiAgfVxufVxuIl19","import { InjectionToken } from '@angular/core';\nexport const RDT_FORM_CONTROL_DATE_FORMAT = new InjectionToken('RDT_FORM_CONTROL_DATE_FORMAT', { providedIn: 'root', factory: () => 'yyyy-MM-dd' });\nexport const RDT_FORM_CONTROL_DATETIME_FORMAT = new InjectionToken('RDT_FORM_CONTROL_DATETIME_FORMAT', { providedIn: 'root', factory: () => \"yyyy-MM-dd'T'HH:mm:ss\" });\nexport const RDT_FORM_CONTROL_TIME_FORMAT = new InjectionToken('RDT_FORM_CONTROL_TIME_FORMAT', { providedIn: 'root', factory: () => 'HH:mm:ss' });\nexport const RDT_EMPTY_TIME_DATE = new InjectionToken('RDT_EMPTY_TIME_DATE', {\n providedIn: 'root',\n factory: () => new Date('1970-01-01T00:00:00'),\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2RhdGUvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQzVELDhCQUE4QixFQUM5QixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUNwRCxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsSUFBSSxjQUFjLENBQ2hFLGtDQUFrQyxFQUNsQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixFQUFFLENBQy9ELENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDNUQsOEJBQThCLEVBQzlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQ2xELENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRTtJQUMzRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUM7Q0FDL0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IFJEVF9GT1JNX0NPTlRST0xfREFURV9GT1JNQVQgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICdSRFRfRk9STV9DT05UUk9MX0RBVEVfRk9STUFUJyxcbiAgeyBwcm92aWRlZEluOiAncm9vdCcsIGZhY3Rvcnk6ICgpID0+ICd5eXl5LU1NLWRkJyB9XG4pO1xuZXhwb3J0IGNvbnN0IFJEVF9GT1JNX0NPTlRST0xfREFURVRJTUVfRk9STUFUID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnUkRUX0ZPUk1fQ09OVFJPTF9EQVRFVElNRV9GT1JNQVQnLFxuICB7IHByb3ZpZGVkSW46ICdyb290JywgZmFjdG9yeTogKCkgPT4gXCJ5eXl5LU1NLWRkJ1QnSEg6bW06c3NcIiB9XG4pO1xuZXhwb3J0IGNvbnN0IFJEVF9GT1JNX0NPTlRST0xfVElNRV9GT1JNQVQgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICdSRFRfRk9STV9DT05UUk9MX1RJTUVfRk9STUFUJyxcbiAgeyBwcm92aWRlZEluOiAncm9vdCcsIGZhY3Rvcnk6ICgpID0+ICdISDptbTpzcycgfVxuKTtcbmV4cG9ydCBjb25zdCBSRFRfRU1QVFlfVElNRV9EQVRFID0gbmV3IEluamVjdGlvblRva2VuKCdSRFRfRU1QVFlfVElNRV9EQVRFJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IG5ldyBEYXRlKCcxOTcwLTAxLTAxVDAwOjAwOjAwJyksXG59KTtcbiJdfQ==","import { numberAttribute } from '@angular/core';\nexport function nullToUndefined(value) {\n return value === null ? undefined : value;\n}\nexport function nullToUndefinedNumeric(value) {\n return numberAttribute(value, undefined);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvdXRpbHMvdHJhbnNmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEQsTUFBTSxVQUFVLGVBQWUsQ0FBSSxLQUFrQjtJQUNuRCxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBZ0M7SUFDckUsT0FBTyxlQUFlLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBudW1iZXJBdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIG51bGxUb1VuZGVmaW5lZDxUPih2YWx1ZTogTnVsbGFibGU8VD4pOiBUIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBudWxsVG9VbmRlZmluZWROdW1lcmljKHZhbHVlOiBOdWxsYWJsZTxudW1iZXIgfCBzdHJpbmc+KSB7XG4gIHJldHVybiBudW1iZXJBdHRyaWJ1dGUodmFsdWUsIHVuZGVmaW5lZCk7XG59XG4iXX0=","import { computed, Directive, inject, input, linkedSignal, } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined } from '../../utils';\nimport { RDT_EMPTY_TIME_DATE, RDT_FORM_CONTROL_DATE_FORMAT, RDT_FORM_CONTROL_DATETIME_FORMAT, RDT_FORM_CONTROL_TIME_FORMAT, } from './providers';\nimport * as i0 from \"@angular/core\";\nexport class RdtDateComponent extends RdtBaseFormInputComponent {\n formControlDateFormat = inject(RDT_FORM_CONTROL_DATE_FORMAT);\n formControlDateTimeFormat = inject(RDT_FORM_CONTROL_DATETIME_FORMAT);\n formControlTimeFormat = inject(RDT_FORM_CONTROL_TIME_FORMAT);\n emptyTimeDate = inject(RDT_EMPTY_TIME_DATE);\n type = input('date');\n minInput = input(undefined, {\n transform: nullToUndefined,\n });\n min = linkedSignal(() => {\n const minInput = this.minInput();\n return minInput ? this.toInternalValue(minInput) : null;\n });\n maxInput = input(undefined, {\n transform: nullToUndefined,\n });\n max = linkedSignal(() => {\n const maxInput = this.maxInput();\n return maxInput ? this.toInternalValue(maxInput) : null;\n });\n formControlFormat = computed(() => {\n switch (this.type()) {\n case 'datetime-local':\n return this.formControlDateTimeFormat;\n case 'time':\n return this.formControlTimeFormat;\n case 'date':\n default:\n return this.formControlDateFormat;\n }\n });\n isEmpty(value) {\n return value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtDateComponent, isStandalone: true, inputs: { type: { classPropertyName: \"type\", publicName: \"type\", isSignal: true, isRequired: false, transformFunction: null }, minInput: { classPropertyName: \"minInput\", publicName: \"minInput\", isSignal: true, isRequired: false, transformFunction: null }, maxInput: { classPropertyName: \"maxInput\", publicName: \"maxInput\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtDateComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2RhdGUvcmR0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIsZ0NBQWdDLEVBQ2hDLDRCQUE0QixHQUM3QixNQUFNLGFBQWEsQ0FBQzs7QUFHckIsTUFBTSxPQUFnQixnQkFHcEIsU0FBUSx5QkFBcUM7SUFDcEMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDN0QseUJBQXlCLEdBQUcsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDckUscUJBQXFCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDN0QsYUFBYSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTVDLElBQUksR0FBRyxLQUFLLENBQWMsTUFBTSxDQUFDLENBQUM7SUFFbEMsUUFBUSxHQUFHLEtBQUssQ0FBOEIsU0FBUyxFQUFFO1FBQ2hFLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUMsQ0FBQztJQUNNLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFELENBQUMsQ0FBQyxDQUFDO0lBRU0sUUFBUSxHQUFHLEtBQUssQ0FBOEIsU0FBUyxFQUFFO1FBQ2hFLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUMsQ0FBQztJQUNNLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFELENBQUMsQ0FBQyxDQUFDO0lBRU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN6QyxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztZQUN4QyxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDcEMsS0FBSyxNQUFNLENBQUM7WUFDWjtnQkFDRSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFZ0IsT0FBTyxDQUFDLEtBQWtCO1FBQzNDLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQztJQUN4QixDQUFDO3VHQXpDbUIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRHJDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjb21wdXRlZCxcbiAgRGlyZWN0aXZlLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbnVsbFRvVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUmR0RGF0ZVR5cGUgfSBmcm9tICcuL2RhdGUtdHlwZSc7XG5pbXBvcnQge1xuICBSRFRfRU1QVFlfVElNRV9EQVRFLFxuICBSRFRfRk9STV9DT05UUk9MX0RBVEVfRk9STUFULFxuICBSRFRfRk9STV9DT05UUk9MX0RBVEVUSU1FX0ZPUk1BVCxcbiAgUkRUX0ZPUk1fQ09OVFJPTF9USU1FX0ZPUk1BVCxcbn0gZnJvbSAnLi9wcm92aWRlcnMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHREYXRlQ29tcG9uZW50PFxuICBURXh0ID0gc3RyaW5nLFxuICBUSW50ID0gVEV4dFxuPiBleHRlbmRzIFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQ8VEV4dCwgVEludD4ge1xuICByZWFkb25seSBmb3JtQ29udHJvbERhdGVGb3JtYXQgPSBpbmplY3QoUkRUX0ZPUk1fQ09OVFJPTF9EQVRFX0ZPUk1BVCk7XG4gIHJlYWRvbmx5IGZvcm1Db250cm9sRGF0ZVRpbWVGb3JtYXQgPSBpbmplY3QoUkRUX0ZPUk1fQ09OVFJPTF9EQVRFVElNRV9GT1JNQVQpO1xuICByZWFkb25seSBmb3JtQ29udHJvbFRpbWVGb3JtYXQgPSBpbmplY3QoUkRUX0ZPUk1fQ09OVFJPTF9USU1FX0ZPUk1BVCk7XG4gIHJlYWRvbmx5IGVtcHR5VGltZURhdGUgPSBpbmplY3QoUkRUX0VNUFRZX1RJTUVfREFURSk7XG5cbiAgcmVhZG9ubHkgdHlwZSA9IGlucHV0PFJkdERhdGVUeXBlPignZGF0ZScpO1xuXG4gIHJlYWRvbmx5IG1pbklucHV0ID0gaW5wdXQ8TnVsbGFibGU8VEV4dD4sIFRFeHQgfCBudWxsPih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG4gIHJlYWRvbmx5IG1pbiA9IGxpbmtlZFNpZ25hbCgoKSA9PiB7XG4gICAgY29uc3QgbWluSW5wdXQgPSB0aGlzLm1pbklucHV0KCk7XG4gICAgcmV0dXJuIG1pbklucHV0ID8gdGhpcy50b0ludGVybmFsVmFsdWUobWluSW5wdXQpIDogbnVsbDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbWF4SW5wdXQgPSBpbnB1dDxOdWxsYWJsZTxURXh0PiwgVEV4dCB8IG51bGw+KHVuZGVmaW5lZCwge1xuICAgIHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkLFxuICB9KTtcbiAgcmVhZG9ubHkgbWF4ID0gbGlua2VkU2lnbmFsKCgpID0+IHtcbiAgICBjb25zdCBtYXhJbnB1dCA9IHRoaXMubWF4SW5wdXQoKTtcbiAgICByZXR1cm4gbWF4SW5wdXQgPyB0aGlzLnRvSW50ZXJuYWxWYWx1ZShtYXhJbnB1dCkgOiBudWxsO1xuICB9KTtcblxuICByZWFkb25seSBmb3JtQ29udHJvbEZvcm1hdCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSgpKSB7XG4gICAgICBjYXNlICdkYXRldGltZS1sb2NhbCc6XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Db250cm9sRGF0ZVRpbWVGb3JtYXQ7XG4gICAgICBjYXNlICd0aW1lJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUNvbnRyb2xUaW1lRm9ybWF0O1xuICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQ29udHJvbERhdGVGb3JtYXQ7XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNFbXB0eSh2YWx1ZTogVEV4dCB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IG51bGw7XG4gIH1cbn1cbiJdfQ==","import { forkJoin, map, take } from 'rxjs';\nexport class RdtFileReader {\n read(file) {\n return this.extractData(file).pipe(take(1), map((content) => ({\n fileName: file.name,\n content,\n size: file.size,\n mimeType: file.type ?? undefined,\n modified: isNaN(file.lastModified)\n ? undefined\n : new Date(file.lastModified),\n originalFile: file,\n })));\n }\n readAll(files) {\n return forkJoin(files.map((file) => this.read(file)));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2ZpbGUtaW5wdXQvcmVhZGVyL3JkdC1maWxlLXJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkQsTUFBTSxPQUFnQixhQUFhO0lBRWpDLElBQUksQ0FBQyxJQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDaEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNoQixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDbkIsT0FBTztZQUNQLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFFBQVEsRUFBRyxJQUFJLENBQUMsSUFBb0IsSUFBSSxTQUFTO1lBQ2pELFFBQVEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ1gsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDL0IsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLENBQUMsS0FBYTtRQUNuQixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZHRGaWxlLCBSZHRNaW1lVHlwZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgbWFwLCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRGaWxlUmVhZGVyPFQ+IHtcbiAgYWJzdHJhY3QgZXh0cmFjdERhdGEoZmlsZXM6IEZpbGUpOiBPYnNlcnZhYmxlPFQ+O1xuICByZWFkKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPFJkdEZpbGU8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5leHRyYWN0RGF0YShmaWxlKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCgoY29udGVudCkgPT4gKHtcbiAgICAgICAgZmlsZU5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICBtaW1lVHlwZTogKGZpbGUudHlwZSBhcyBSZHRNaW1lVHlwZSkgPz8gdW5kZWZpbmVkLFxuICAgICAgICBtb2RpZmllZDogaXNOYU4oZmlsZS5sYXN0TW9kaWZpZWQpXG4gICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICA6IG5ldyBEYXRlKGZpbGUubGFzdE1vZGlmaWVkKSxcbiAgICAgICAgb3JpZ2luYWxGaWxlOiBmaWxlLFxuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuICByZWFkQWxsKGZpbGVzOiBGaWxlW10pOiBPYnNlcnZhYmxlPFJkdEZpbGU8VD5bXT4ge1xuICAgIHJldHVybiBmb3JrSm9pbihmaWxlcy5tYXAoKGZpbGUpID0+IHRoaXMucmVhZChmaWxlKSkpO1xuICB9XG59XG4iXX0=","import { of } from 'rxjs';\nimport { RdtFileReader } from './rdt-file-reader';\nexport class NoOpFileReader extends RdtFileReader {\n extractData() {\n return of(undefined);\n }\n}\nexport const NO_OP_FILE_READER = new NoOpFileReader();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLW5vb3AuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC9yZWFkZXIvcmR0LWZpbGUtcmVhZGVyLW5vb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxhQUFtQjtJQUNyRCxXQUFXO1FBQ1QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZHRGaWxlUmVhZGVyIH0gZnJvbSAnLi9yZHQtZmlsZS1yZWFkZXInO1xuXG5leHBvcnQgY2xhc3MgTm9PcEZpbGVSZWFkZXIgZXh0ZW5kcyBSZHRGaWxlUmVhZGVyPHZvaWQ+IHtcbiAgZXh0cmFjdERhdGEoKSB7XG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5PX09QX0ZJTEVfUkVBREVSID0gbmV3IE5vT3BGaWxlUmVhZGVyKCk7XG4iXX0=","import { RdtFileUtils } from '@ngrdt/utils';\nimport { from } from 'rxjs';\nimport { RdtFileReader } from './rdt-file-reader';\nexport class RdtFileReaderBase64 extends RdtFileReader {\n removeDataPrefix;\n constructor(removeDataPrefix = false) {\n super();\n this.removeDataPrefix = removeDataPrefix;\n }\n extractData(file) {\n let promise = RdtFileUtils.blobToDataUrl(file);\n if (this.removeDataPrefix) {\n promise = promise.then((dataUrl) => dataUrl.substring(dataUrl.indexOf(',') + 1));\n }\n return from(promise);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLWJhc2U2NC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9maWxlLWlucHV0L3JlYWRlci9yZHQtZmlsZS1yZWFkZXItYmFzZTY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQXFCO0lBQ3hDO0lBQXBCLFlBQW9CLG1CQUFtQixLQUFLO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBRFUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO0lBRTVDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBVTtRQUNwQixJQUFJLE9BQU8sR0FBRyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNqQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzVDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0RmlsZVV0aWxzIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXIgfSBmcm9tICcuL3JkdC1maWxlLXJlYWRlcic7XG5cbmV4cG9ydCBjbGFzcyBSZHRGaWxlUmVhZGVyQmFzZTY0IGV4dGVuZHMgUmR0RmlsZVJlYWRlcjxzdHJpbmc+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW1vdmVEYXRhUHJlZml4ID0gZmFsc2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZXh0cmFjdERhdGEoZmlsZTogRmlsZSkge1xuICAgIGxldCBwcm9taXNlID0gUmR0RmlsZVV0aWxzLmJsb2JUb0RhdGFVcmwoZmlsZSk7XG4gICAgaWYgKHRoaXMucmVtb3ZlRGF0YVByZWZpeCkge1xuICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoZGF0YVVybCkgPT5cbiAgICAgICAgZGF0YVVybC5zdWJzdHJpbmcoZGF0YVVybC5pbmRleE9mKCcsJykgKyAxKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZyb20ocHJvbWlzZSk7XG4gIH1cbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nimport { RdtFileReaderBase64 } from '../reader/rdt-file-reader-base64';\nexport const RDT_DEFAULT_FILE_READER = new InjectionToken('RDT_DEFAULT_FILE_READER', {\n factory: () => new RdtFileReaderBase64(),\n providedIn: 'root',\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlZmF1bHQtZmlsZS1yZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC90b2tlbnMvcmR0LWRlZmF1bHQtZmlsZS1yZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FFdkQseUJBQXlCLEVBQUU7SUFDM0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksbUJBQW1CLEVBQUU7SUFDeEMsVUFBVSxFQUFFLE1BQU07Q0FDbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXIgfSBmcm9tICcuLi9yZWFkZXIvcmR0LWZpbGUtcmVhZGVyJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXJCYXNlNjQgfSBmcm9tICcuLi9yZWFkZXIvcmR0LWZpbGUtcmVhZGVyLWJhc2U2NCc7XG5cbmV4cG9ydCBjb25zdCBSRFRfREVGQVVMVF9GSUxFX1JFQURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgUmR0RmlsZVJlYWRlcjx1bmtub3duPlxuPignUkRUX0RFRkFVTFRfRklMRV9SRUFERVInLCB7XG4gIGZhY3Rvcnk6ICgpID0+IG5ldyBSZHRGaWxlUmVhZGVyQmFzZTY0KCksXG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pO1xuIl19","import { inject, InjectionToken } from '@angular/core';\nimport { RdtTranslateService } from '@ngrdt/core';\nexport function fileLabelTranslate(translate, files) {\n const count = files.length;\n if (count === 0) {\n return translate.instant('RDT_FILE_LABEL_EMPTY');\n }\n if (count === 1) {\n return translate.instant('RDT_FILE_LABEL_SINGLE', {\n fileName: files[0].fileName,\n });\n }\n if (count >= 2 && count <= 4) {\n return translate.instant('RDT_FILE_LABEL_FEW', { count });\n }\n return translate.instant('RDT_FILE_LABEL_MANY', { count });\n}\nexport const RDT_DEFAULT_FILE_LABEL_FN = new InjectionToken('RDT_DEFAULT_FILE_LABEL_FN', {\n providedIn: 'root',\n factory: () => {\n const translate = inject(RdtTranslateService);\n return (files) => fileLabelTranslate(translate, files);\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlZmF1bHQtbGFiZWwtZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC90b2tlbnMvcmR0LWRlZmF1bHQtbGFiZWwtZm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsU0FBOEIsRUFDOUIsS0FBZ0I7SUFFaEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFO1lBQ2hELFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFHRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FDekQsMkJBQTJCLEVBQzNCO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmdyZHQvY29yZSc7XG5pbXBvcnQgeyBSZHRGaWxlIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVMYWJlbFRyYW5zbGF0ZShcbiAgdHJhbnNsYXRlOiBSZHRUcmFuc2xhdGVTZXJ2aWNlLFxuICBmaWxlczogUmR0RmlsZVtdXG4pIHtcbiAgY29uc3QgY291bnQgPSBmaWxlcy5sZW5ndGg7XG4gIGlmIChjb3VudCA9PT0gMCkge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnUkRUX0ZJTEVfTEFCRUxfRU1QVFknKTtcbiAgfVxuICBpZiAoY291bnQgPT09IDEpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ1JEVF9GSUxFX0xBQkVMX1NJTkdMRScsIHtcbiAgICAgIGZpbGVOYW1lOiBmaWxlc1swXS5maWxlTmFtZSxcbiAgICB9KTtcbiAgfVxuICBpZiAoY291bnQgPj0gMiAmJiBjb3VudCA8PSA0KSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdSRFRfRklMRV9MQUJFTF9GRVcnLCB7IGNvdW50IH0pO1xuICB9XG4gIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnUkRUX0ZJTEVfTEFCRUxfTUFOWScsIHsgY291bnQgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFJkdEZpbGVMYWJlbEZuID0gKGZpbGVzOiBSZHRGaWxlW10pID0+IHN0cmluZztcbmV4cG9ydCBjb25zdCBSRFRfREVGQVVMVF9GSUxFX0xBQkVMX0ZOID0gbmV3IEluamVjdGlvblRva2VuPFJkdEZpbGVMYWJlbEZuPihcbiAgJ1JEVF9ERUZBVUxUX0ZJTEVfTEFCRUxfRk4nLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zbGF0ZSA9IGluamVjdChSZHRUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgICAgIHJldHVybiAoZmlsZXM6IFJkdEZpbGVbXSkgPT4gZmlsZUxhYmVsVHJhbnNsYXRlKHRyYW5zbGF0ZSwgZmlsZXMpO1xuICAgIH0sXG4gIH1cbik7XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const RDT_DEFAULT_MAX_FILE_SIZE = new InjectionToken('RDT_DEFAULT_MAX_FILE_SIZE', {\n factory: () => '100 MB',\n providedIn: 'root',\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlZmF1bHQtbWF4LWZpbGUtc2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9maWxlLWlucHV0L3Rva2Vucy9yZHQtZGVmYXVsdC1tYXgtZmlsZS1zaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQ3pELDJCQUEyQixFQUMzQjtJQUNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRO0lBQ3ZCLFVBQVUsRUFBRSxNQUFNO0NBQ25CLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHRGaWxlU2l6ZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBSRFRfREVGQVVMVF9NQVhfRklMRV9TSVpFID0gbmV3IEluamVjdGlvblRva2VuPFJkdEZpbGVTaXplPihcbiAgJ1JEVF9ERUZBVUxUX01BWF9GSUxFX1NJWkUnLFxuICB7XG4gICAgZmFjdG9yeTogKCkgPT4gJzEwMCBNQicsXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICB9XG4pO1xuIl19","import { booleanAttribute, computed, Directive, effect, inject, input, linkedSignal, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl } from '@angular/forms';\nimport { RdtFileUtils, } from '@ngrdt/utils';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined } from '../../utils';\nimport { NO_OP_FILE_READER } from './reader/rdt-file-reader-noop';\nimport { RDT_DEFAULT_FILE_READER } from './tokens/rdt-default-file-reader';\nimport { RDT_DEFAULT_FILE_LABEL_FN } from './tokens/rdt-default-label-fn';\nimport { RDT_DEFAULT_MAX_FILE_SIZE } from './tokens/rdt-default-max-file-size';\nimport * as i0 from \"@angular/core\";\nexport class RdtFileInputComponent extends RdtBaseFormInputComponent {\n defaultFileReader = inject(RDT_DEFAULT_FILE_READER);\n defaultMaxFileSize = inject(RDT_DEFAULT_MAX_FILE_SIZE);\n defaultLabelFn = inject(RDT_DEFAULT_FILE_LABEL_FN);\n readerInput = input(this.defaultFileReader, {\n alias: 'reader',\n });\n reader = linkedSignal(() => this.readerInput());\n acceptInput = input(undefined, { alias: 'accept', transform: nullToUndefined });\n accept = linkedSignal(() => {\n const acceptInput = this.acceptInput();\n return !acceptInput || Array.isArray(acceptInput)\n ? acceptInput\n : [acceptInput];\n });\n jointAccept = computed(() => this.accept()?.join(','));\n maxFileSizeInput = input(this.defaultMaxFileSize, {\n alias: 'maxFileSize',\n transform: nullToUndefined,\n });\n maxFileSize = linkedSignal(() => this.maxFileSizeInput());\n maxFileSizeInBytes = computed(() => {\n const maxFileSize = this.maxFileSize();\n return maxFileSize ? RdtFileUtils.fileSizeToBytes(maxFileSize) : null;\n });\n labelFn = input(this.defaultLabelFn);\n multiple = input(false, { transform: booleanAttribute });\n labelCtrl = new FormControl(null);\n touchedEffect = effect(() => {\n const touched = this.touched();\n if (touched) {\n this.labelCtrl.markAsTouched();\n }\n else {\n this.labelCtrl.markAsUntouched();\n }\n });\n errorEffect = effect(() => {\n this.labelCtrl?.setErrors(this.visibleErrors());\n });\n ngOnInit() {\n super.ngOnInit();\n this.control()?.addValidators(this._maxFileSizeValidator);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.control()?.removeValidators(this._maxFileSizeValidator);\n }\n onFileSelected(event) {\n const target = event.target;\n if (!target.files) {\n return;\n }\n let shouldRead = true;\n const maxBytes = this.maxFileSizeInBytes();\n if (maxBytes !== null) {\n const files = Array.from(target.files);\n for (const file of files) {\n if (file.size > maxBytes) {\n shouldRead = false;\n break;\n }\n }\n }\n const reader = shouldRead\n ? this.reader()\n : NO_OP_FILE_READER;\n reader\n .readAll(Array.from(target.files))\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((files) => {\n this.onChange(files);\n this.writeValue(files);\n });\n }\n writeValue(value) {\n super.writeValue(value);\n this.setInnerValue(value);\n }\n setInnerValue(files) {\n if (this.labelCtrl) {\n const label = this.labelFn()(files ?? []);\n this.labelCtrl.setValue(label);\n }\n }\n clear() {\n this.onInternalValueChange(null);\n }\n _maxFileSizeValidator = (ctrl) => {\n const maxSize = this.maxFileSizeInBytes();\n if (maxSize === null ||\n !Array.isArray(ctrl.value) ||\n ctrl.value.length === 0) {\n return null;\n }\n const files = ctrl.value;\n for (const file of files) {\n if (file['size'] !== undefined && file.size > maxSize) {\n return {\n maxFileSize: {\n max: maxSize,\n actual: file.size,\n },\n };\n }\n }\n return null;\n };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFileInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtFileInputComponent, isStandalone: true, inputs: { readerInput: { classPropertyName: \"readerInput\", publicName: \"reader\", isSignal: true, isRequired: false, transformFunction: null }, acceptInput: { classPropertyName: \"acceptInput\", publicName: \"accept\", isSignal: true, isRequired: false, transformFunction: null }, maxFileSizeInput: { classPropertyName: \"maxFileSizeInput\", publicName: \"maxFileSize\", isSignal: true, isRequired: false, transformFunction: null }, labelFn: { classPropertyName: \"labelFn\", publicName: \"labelFn\", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFileInputComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2ZpbGUtaW5wdXQvcmR0LWZpbGUtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFLTCxZQUFZLEdBRWIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFRL0UsTUFBTSxPQUFnQixxQkFFcEIsU0FBUSx5QkFBK0I7SUFDcEIsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDcEQsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDdkQsY0FBYyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTdELFdBQVcsR0FBRyxLQUFLLENBQzFCLElBQUksQ0FBQyxpQkFB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QyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLO1FBQ2IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxxQkFBcUIsR0FBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQyxJQUNFLE9BQU8sS0FBSyxJQUFJO1lBQ2hCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFDdkIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFrQixDQUFDO1FBQ3RDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7Z0JBQ3RELE9BQU87b0JBQ0wsV0FBVyxFQUFFO3dCQUNYLEdBQUcsRUFBRSxPQUFPO3dCQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtxQkFDbEI7aUJBQ0YsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7dUdBeklrQixxQkFBcUI7MkZBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIE51bGxhYmxlLFxuICBSZHRDb21iaW5lZE1pbWVUeXBlLFxuICBSZHRGaWxlLFxuICBSZHRGaWxlU2l6ZSxcbiAgUmR0RmlsZVV0aWxzLFxuICBSZHRNaW1lVHlwZSxcbn0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IG51bGxUb1VuZGVmaW5lZCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXIgfSBmcm9tICcuL3JlYWRlci9yZHQtZmlsZS1yZWFkZXInO1xuaW1wb3J0IHsgTk9fT1BfRklMRV9SRUFERVIgfSBmcm9tICcuL3JlYWRlci9yZHQtZmlsZS1yZWFkZXItbm9vcCc7XG5pbXBvcnQgeyBSRFRfREVGQVVMVF9GSUxFX1JFQURFUiB9IGZyb20gJy4vdG9rZW5zL3JkdC1kZWZhdWx0LWZpbGUtcmVhZGVyJztcbmltcG9ydCB7IFJEVF9ERUZBVUxUX0ZJTEVfTEFCRUxfRk4gfSBmcm9tICcuL3Rva2Vucy9yZHQtZGVmYXVsdC1sYWJlbC1mbic7XG5pbXBvcnQgeyBSRFRfREVGQVVMVF9NQVhfRklMRV9TSVpFIH0gZnJvbSAnLi90b2tlbnMvcmR0LWRlZmF1bHQtbWF4LWZpbGUtc2l6ZSc7XG5cbnR5cGUgQWNjZXB0VHlwZSA9XG4gIHwgKFJkdE1pbWVUeXBlIHwgUmR0Q29tYmluZWRNaW1lVHlwZSlbXVxuICB8IFJkdE1pbWVUeXBlXG4gIHwgUmR0Q29tYmluZWRNaW1lVHlwZTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0RmlsZUlucHV0Q29tcG9uZW50PFxuICBURXh0ID0gc3RyaW5nXG4+IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxURXh0PiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0RmlsZVJlYWRlciA9IGluamVjdChSRFRfREVGQVVMVF9GSUxFX1JFQURFUik7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0TWF4RmlsZVNpemUgPSBpbmplY3QoUkRUX0RFRkFVTFRfTUFYX0ZJTEVfU0laRSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZWZhdWx0TGFiZWxGbiA9IGluamVjdChSRFRfREVGQVVMVF9GSUxFX0xBQkVMX0ZOKTtcblxuICByZWFkb25seSByZWFkZXJJbnB1dCA9IGlucHV0PFJkdEZpbGVSZWFkZXI8VEV4dD4+KFxuICAgIHRoaXMuZGVmYXVsdEZpbGVSZWFkZXIgYXMgUmR0RmlsZVJlYWRlcjxURXh0PixcbiAgICB7XG4gICAgICBhbGlhczogJ3JlYWRlcicsXG4gICAgfVxuICApO1xuICByZWFkb25seSByZWFkZXIgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5yZWFkZXJJbnB1dCgpKTtcblxuICByZWFkb25seSBhY2NlcHRJbnB1dCA9IGlucHV0PEFjY2VwdFR5cGUgfCB1bmRlZmluZWQsIE51bGxhYmxlPEFjY2VwdFR5cGU+PihcbiAgICB1bmRlZmluZWQsXG4gICAgeyBhbGlhczogJ2FjY2VwdCcsIHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkIH1cbiAgKTtcbiAgcmVhZG9ubHkgYWNjZXB0ID0gbGlua2VkU2lnbmFsKCgpID0+IHtcbiAgICBjb25zdCBhY2NlcHRJbnB1dCA9IHRoaXMuYWNjZXB0SW5wdXQoKTtcbiAgICByZXR1cm4gIWFjY2VwdElucHV0IHx8IEFycmF5LmlzQXJyYXkoYWNjZXB0SW5wdXQpXG4gICAgICA/IGFjY2VwdElucHV0XG4gICAgICA6IFthY2NlcHRJbnB1dF07XG4gIH0pO1xuICByZWFkb25seSBqb2ludEFjY2VwdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWNjZXB0KCk/LmpvaW4oJywnKSk7XG5cbiAgcmVhZG9ubHkgbWF4RmlsZVNpemVJbnB1dCA9IGlucHV0PFxuICAgIE51bGxhYmxlPFJkdEZpbGVTaXplPixcbiAgICBSZHRGaWxlU2l6ZSB8IHVuZGVmaW5lZFxuICA+KHRoaXMuZGVmYXVsdE1heEZpbGVTaXplLCB7XG4gICAgYWxpYXM6ICdtYXhGaWxlU2l6ZScsXG4gICAgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQsXG4gIH0pO1xuICByZWFkb25seSBtYXhGaWxlU2l6ZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLm1heEZpbGVTaXplSW5wdXQoKSk7XG4gIHJlYWRvbmx5IG1heEZpbGVTaXplSW5CeXRlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtYXhGaWxlU2l6ZSA9IHRoaXMubWF4RmlsZVNpemUoKTtcbiAgICByZXR1cm4gbWF4RmlsZVNpemUgPyBSZHRGaWxlVXRpbHMuZmlsZVNpemVUb0J5dGVzKG1heEZpbGVTaXplKSA6IG51bGw7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGxhYmVsRm4gPSBpbnB1dCh0aGlzLmRlZmF1bHRMYWJlbEZuKTtcbiAgcmVhZG9ubHkgbXVsdGlwbGUgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsQ3RybCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG91Y2hlZEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdG91Y2hlZCA9IHRoaXMudG91Y2hlZCgpO1xuICAgIGlmICh0b3VjaGVkKSB7XG4gICAgICB0aGlzLmxhYmVsQ3RybC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGFiZWxDdHJsLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9yRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmxhYmVsQ3RybD8uc2V0RXJyb3JzKHRoaXMudmlzaWJsZUVycm9ycygpKTtcbiAgfSk7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmNvbnRyb2woKT8uYWRkVmFsaWRhdG9ycyh0aGlzLl9tYXhGaWxlU2l6ZVZhbGlkYXRvcik7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuY29udHJvbCgpPy5yZW1vdmVWYWxpZGF0b3JzKHRoaXMuX21heEZpbGVTaXplVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoIXRhcmdldC5maWxlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzaG91bGRSZWFkID0gdHJ1ZTtcbiAgICBjb25zdCBtYXhCeXRlcyA9IHRoaXMubWF4RmlsZVNpemVJbkJ5dGVzKCk7XG4gICAgaWYgKG1heEJ5dGVzICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20odGFyZ2V0LmZpbGVzKTtcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gbWF4Qnl0ZXMpIHtcbiAgICAgICAgICBzaG91bGRSZWFkID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZWFkZXIgPSBzaG91bGRSZWFkXG4gICAgICA/IHRoaXMucmVhZGVyKClcbiAgICAgIDogKE5PX09QX0ZJTEVfUkVBREVSIGFzIHVua25vd24gYXMgUmR0RmlsZVJlYWRlcjxURXh0Pik7XG5cbiAgICByZWFkZXJcbiAgICAgIC5yZWFkQWxsKEFycmF5LmZyb20odGFyZ2V0LmZpbGVzKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoZmlsZXMpID0+IHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShmaWxlcyk7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZShmaWxlcyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIHRoaXMuc2V0SW5uZXJWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldElubmVyVmFsdWUoZmlsZXM6IE51bGxhYmxlPFJkdEZpbGVbXT4pIHtcbiAgICBpZiAodGhpcy5sYWJlbEN0cmwpIHtcbiAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5sYWJlbEZuKCkoZmlsZXMgPz8gW10pO1xuICAgICAgdGhpcy5sYWJlbEN0cmwuc2V0VmFsdWUobGFiZWwpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjbGVhcigpIHtcbiAgICB0aGlzLm9uSW50ZXJuYWxWYWx1ZUNoYW5nZShudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgX21heEZpbGVTaXplVmFsaWRhdG9yOiBWYWxpZGF0b3JGbiA9IChjdHJsKSA9PiB7XG4gICAgY29uc3QgbWF4U2l6ZSA9IHRoaXMubWF4RmlsZVNpemVJbkJ5dGVzKCk7XG4gICAgaWYgKFxuICAgICAgbWF4U2l6ZSA9PT0gbnVsbCB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkoY3RybC52YWx1ZSkgfHxcbiAgICAgIGN0cmwudmFsdWUubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlcyA9IGN0cmwudmFsdWUgYXMgUmR0RmlsZVtdO1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgaWYgKGZpbGVbJ3NpemUnXSAhPT0gdW5kZWZpbmVkICYmIGZpbGUuc2l6ZSA+IG1heFNpemUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtYXhGaWxlU2l6ZToge1xuICAgICAgICAgICAgbWF4OiBtYXhTaXplLFxuICAgICAgICAgICAgYWN0dWFsOiBmaWxlLnNpemUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG59XG4iXX0=","import { RdtFileUtils } from '@ngrdt/utils';\nimport { from } from 'rxjs';\nimport { RdtFileReader } from './rdt-file-reader';\nexport class RdtFileReaderArrayBuffer extends RdtFileReader {\n extractData(file) {\n return from(RdtFileUtils.fileAsArrayBuffer(file));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLWFycmF5LWJ1ZmZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9maWxlLWlucHV0L3JlYWRlci9yZHQtZmlsZS1yZWFkZXItYXJyYXktYnVmZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGFBQTBCO0lBQ3RFLFdBQVcsQ0FBQyxJQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkdEZpbGVVdGlscyB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZHRGaWxlUmVhZGVyIH0gZnJvbSAnLi9yZHQtZmlsZS1yZWFkZXInO1xuXG5leHBvcnQgY2xhc3MgUmR0RmlsZVJlYWRlckFycmF5QnVmZmVyIGV4dGVuZHMgUmR0RmlsZVJlYWRlcjxBcnJheUJ1ZmZlcj4ge1xuICBleHRyYWN0RGF0YShmaWxlOiBGaWxlKSB7XG4gICAgcmV0dXJuIGZyb20oUmR0RmlsZVV0aWxzLmZpbGVBc0FycmF5QnVmZmVyKGZpbGUpKTtcbiAgfVxufVxuIl19","import { RdtFileUtils } from '@ngrdt/utils';\nimport { from } from 'rxjs';\nimport { RdtFileReader } from './rdt-file-reader';\nexport class VnshFileReaderText extends RdtFileReader {\n encoding;\n constructor(encoding) {\n super();\n this.encoding = encoding;\n }\n extractData(file) {\n return from(RdtFileUtils.fileAsText(file, this.encoding));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtcmVhZGVyLXRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC9yZWFkZXIvcmR0LWZpbGUtcmVhZGVyLXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQXFCO0lBQ3hDO0lBQW5CLFlBQW1CLFFBQTZCO1FBQzlDLEtBQUssRUFBRSxDQUFDO1FBRFMsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7SUFFaEQsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFVO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFsbEVuY29kaW5nQWxpYXNlcywgUmR0RmlsZVV0aWxzIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEZpbGVSZWFkZXIgfSBmcm9tICcuL3JkdC1maWxlLXJlYWRlcic7XG5cbmV4cG9ydCBjbGFzcyBWbnNoRmlsZVJlYWRlclRleHQgZXh0ZW5kcyBSZHRGaWxlUmVhZGVyPHN0cmluZz4ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW5jb2Rpbmc/OiBBbGxFbmNvZGluZ0FsaWFzZXMpIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIGV4dHJhY3REYXRhKGZpbGU6IEZpbGUpIHtcbiAgICByZXR1cm4gZnJvbShSZHRGaWxlVXRpbHMuZmlsZUFzVGV4dChmaWxlLCB0aGlzLmVuY29kaW5nKSk7XG4gIH1cbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const RDT_NUMERIC_INPUT_BASE_PROVIDER = new InjectionToken('RdtNumericInput');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LW51bWVyaWMtaW5wdXQtYmFzZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9udW1lcmljLWlucHV0L3Byb3ZpZGVycy9yZHQtbnVtZXJpYy1pbnB1dC1iYXNlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxjQUFjLENBRS9ELGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR0TnVtZXJpY0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4nO1xuXG5leHBvcnQgY29uc3QgUkRUX05VTUVSSUNfSU5QVVRfQkFTRV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgVHlwZTxSZHROdW1lcmljSW5wdXRDb21wb25lbnQ+XG4+KCdSZHROdW1lcmljSW5wdXQnKTtcbiJdfQ==","import { Directive, forwardRef, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RdtFormInputOutletDirective } from '../../../base';\nimport { RDT_NUMERIC_INPUT_BASE_PROVIDER } from '../providers/rdt-numeric-input-base-provider';\nimport * as i0 from \"@angular/core\";\nexport class RdtNumericInputOutletDirective extends RdtFormInputOutletDirective {\n componentClass = inject(RDT_NUMERIC_INPUT_BASE_PROVIDER);\n constructor() {\n super();\n this.initComponentRef();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtNumericInputOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtNumericInputOutletDirective, isStandalone: true, selector: \"[rdtNumericInputOutlet]\", providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdtNumericInputOutletDirective),\n multi: true,\n },\n ], exportAs: [\"rdtNumericInputOutlet\"], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtNumericInputOutletDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtNumericInputOutlet]',\n standalone: true,\n exportAs: 'rdtNumericInputOutlet',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdtNumericInputOutletDirective),\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LW51bWVyaWMtaW5wdXQtb3V0bGV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9udW1lcmljLWlucHV0L251bWVyaWMtaW5wdXQtb3V0bGV0L3JkdC1udW1lcmljLWlucHV0LW91dGxldC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7QUFjL0YsTUFBTSxPQUFPLDhCQUdYLFNBQVEsMkJBQXFEO0lBQ3BELGNBQWMsR0FBRyxNQUFNLENBQzlCLCtCQUErQixDQUNaLENBQUM7SUFFdEI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7dUdBWFUsOEJBQThCOzJGQUE5Qiw4QkFBOEIsc0VBUjlCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztnQkFDN0QsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGOzsyRkFFVSw4QkFBOEI7a0JBWjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwrQkFBK0IsQ0FBQzs0QkFDN0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIGluamVjdCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZHROdW1lcmljSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLic7XG5pbXBvcnQgeyBSZHRGb3JtSW5wdXRPdXRsZXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9iYXNlJztcbmltcG9ydCB7IFJkdE51bWVyaWNJbnB1dEludCB9IGZyb20gJy4uL21vZGVsL3JkdC1udW1iZXItaW5wdXQtaW50JztcbmltcG9ydCB7IFJEVF9OVU1FUklDX0lOUFVUX0JBU0VfUFJPVklERVIgfSBmcm9tICcuLi9wcm92aWRlcnMvcmR0LW51bWVyaWMtaW5wdXQtYmFzZS1wcm92aWRlcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZHROdW1lcmljSW5wdXRPdXRsZXRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdyZHROdW1lcmljSW5wdXRPdXRsZXQnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJkdE51bWVyaWNJbnB1dE91dGxldERpcmVjdGl2ZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZHROdW1lcmljSW5wdXRPdXRsZXREaXJlY3RpdmU8XG4gIFRDaGVja0NvbXAgZXh0ZW5kcyBSZHROdW1lcmljSW5wdXRDb21wb25lbnQsXG4gIFRDaGVja0lucHV0cyBleHRlbmRzIFJkdE51bWVyaWNJbnB1dEludCA9IFJkdE51bWVyaWNJbnB1dEludFxuPiBleHRlbmRzIFJkdEZvcm1JbnB1dE91dGxldERpcmVjdGl2ZTxUQ2hlY2tDb21wLCBUQ2hlY2tJbnB1dHM+IHtcbiAgcmVhZG9ubHkgY29tcG9uZW50Q2xhc3MgPSBpbmplY3QoXG4gICAgUkRUX05VTUVSSUNfSU5QVVRfQkFTRV9QUk9WSURFUlxuICApIGFzIFR5cGU8VENoZWNrQ29tcD47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmluaXRDb21wb25lbnRSZWYoKTtcbiAgfVxufVxuIl19","import { Directive, input } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined, nullToUndefinedNumeric, } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtNumericInputComponent extends RdtBaseFormInputComponent {\n min = input(undefined, {\n transform: nullToUndefinedNumeric,\n });\n max = input(undefined, {\n transform: nullToUndefinedNumeric,\n });\n step = input(undefined, {\n transform: nullToUndefinedNumeric,\n });\n autocomplete = input(undefined, {\n transform: nullToUndefined,\n });\n isEmpty(value) {\n return value === null;\n }\n toExternalValue(internalValue) {\n if (typeof internalValue === 'number') {\n return internalValue;\n }\n else if (internalValue && typeof internalValue === 'string') {\n return parseFloat(internalValue);\n }\n return null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtNumericInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtNumericInputComponent, isStandalone: true, inputs: { min: { classPropertyName: \"min\", publicName: \"min\", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: \"max\", publicName: \"max\", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: \"step\", publicName: \"step\", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: \"autocomplete\", publicName: \"autocomplete\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtNumericInputComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LW51bWVyaWMtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL251bWVyaWMtaW5wdXQvcmR0LW51bWVyaWMtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysc0JBQXNCLEdBRXZCLE1BQU0sYUFBYSxDQUFDOztBQUdyQixNQUFNLE9BQWdCLHdCQUF5QixTQUFRLHlCQUV0RDtJQUNVLEdBQUcsR0FBRyxLQUFLLENBQTJDLFNBQVMsRUFBRTtRQUN4RSxTQUFTLEVBQUUsc0JBQXNCO0tBQ2xDLENBQUMsQ0FBQztJQUNNLEdBQUcsR0FBRyxLQUFLLENBQTJDLFNBQVMsRUFBRTtRQUN4RSxTQUFTLEVBQUUsc0JBQXNCO0tBQ2xDLENBQUMsQ0FBQztJQUNNLElBQUksR0FBRyxLQUFLLENBQTJDLFNBQVMsRUFBRTtRQUN6RSxTQUFTLEVBQUUsc0JBQXNCO0tBQ2xDLENBQUMsQ0FBQztJQUNNLFlBQVksR0FBRyxLQUFLLENBRzNCLFNBQVMsRUFBRTtRQUNYLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUMsQ0FBQztJQUVnQixPQUFPLENBQUMsS0FBb0I7UUFDN0MsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFa0IsZUFBZSxDQUNoQyxhQUE0QjtRQUU1QixJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxJQUFJLGFBQWEsSUFBSSxPQUFPLGFBQWEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5RCxPQUFPLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO3VHQWhDbUIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBRDdDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9yZHQtYmFzZS1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBudWxsVG9VbmRlZmluZWQsXG4gIG51bGxUb1VuZGVmaW5lZE51bWVyaWMsXG4gIFJkdEF1dG9jb21wbGV0ZU9wdGlvbnMsXG59IGZyb20gJy4uLy4uL3V0aWxzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0TnVtZXJpY0lucHV0Q29tcG9uZW50IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxcbiAgbnVtYmVyIHwgbnVsbFxuPiB7XG4gIHJlYWRvbmx5IG1pbiA9IGlucHV0PG51bWJlciB8IG51bGwsIE51bGxhYmxlPG51bWJlciB8IHN0cmluZz4+KHVuZGVmaW5lZCwge1xuICAgIHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyxcbiAgfSk7XG4gIHJlYWRvbmx5IG1heCA9IGlucHV0PG51bWJlciB8IG51bGwsIE51bGxhYmxlPG51bWJlciB8IHN0cmluZz4+KHVuZGVmaW5lZCwge1xuICAgIHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyxcbiAgfSk7XG4gIHJlYWRvbmx5IHN0ZXAgPSBpbnB1dDxudW1iZXIgfCBudWxsLCBOdWxsYWJsZTxudW1iZXIgfCBzdHJpbmc+Pih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZE51bWVyaWMsXG4gIH0pO1xuICByZWFkb25seSBhdXRvY29tcGxldGUgPSBpbnB1dDxcbiAgICBSZHRBdXRvY29tcGxldGVPcHRpb25zIHwgdW5kZWZpbmVkLFxuICAgIE51bGxhYmxlPFJkdEF1dG9jb21wbGV0ZU9wdGlvbnM+XG4gID4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQsXG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc0VtcHR5KHZhbHVlOiBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHRvRXh0ZXJuYWxWYWx1ZShcbiAgICBpbnRlcm5hbFZhbHVlOiBudW1iZXIgfCBudWxsXG4gICk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgaW50ZXJuYWxWYWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBpbnRlcm5hbFZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaW50ZXJuYWxWYWx1ZSAmJiB0eXBlb2YgaW50ZXJuYWxWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KGludGVybmFsVmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19","export function getRdtSelectPage(data, pageIndex, pageSize) {\n if (pageSize < 1) {\n throw new Error('Invalid page size');\n }\n if (pageIndex < 0) {\n throw new Error('Invalid page index');\n }\n if (pageIndex * pageSize > data.length) {\n return {\n data: [],\n totalCount: data.length,\n pageIndex: pageIndex,\n };\n }\n const start = pageIndex * pageSize;\n const end = start + pageSize;\n const items = data.slice(start, end);\n return {\n data: items,\n totalCount: data.length,\n pageIndex: pageIndex,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvc2VsZWN0L3V0aWxzL3BhZ2luYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsSUFBNkIsRUFDN0IsU0FBaUIsRUFDakIsUUFBZ0I7SUFFaEIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksU0FBUyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdkMsT0FBTztZQUNMLElBQUksRUFBRSxFQUFFO1lBQ1IsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ3ZCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUNuQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsUUFBUSxDQUFDO0lBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLE9BQU87UUFDTCxJQUFJLEVBQUUsS0FBSztRQUNYLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTTtRQUN2QixTQUFTLEVBQUUsU0FBUztLQUNyQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkdFNlbGVjdFBhZ2UgfSBmcm9tICcuLi9kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdExhYmVsVmFsdWUgfSBmcm9tICcuL2xhYmVsLXZhbHVlLWlkJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJkdFNlbGVjdFBhZ2U8VFZhbHVlPihcbiAgZGF0YTogUmR0TGFiZWxWYWx1ZTxUVmFsdWU+W10sXG4gIHBhZ2VJbmRleDogbnVtYmVyLFxuICBwYWdlU2l6ZTogbnVtYmVyXG4pOiBSZHRTZWxlY3RQYWdlPFJkdExhYmVsVmFsdWU8VFZhbHVlPj4ge1xuICBpZiAocGFnZVNpemUgPCAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHBhZ2Ugc2l6ZScpO1xuICB9XG4gIGlmIChwYWdlSW5kZXggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHBhZ2UgaW5kZXgnKTtcbiAgfVxuICBpZiAocGFnZUluZGV4ICogcGFnZVNpemUgPiBkYXRhLmxlbmd0aCkge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBbXSxcbiAgICAgIHRvdGFsQ291bnQ6IGRhdGEubGVuZ3RoLFxuICAgICAgcGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgfTtcbiAgfVxuICBjb25zdCBzdGFydCA9IHBhZ2VJbmRleCAqIHBhZ2VTaXplO1xuICBjb25zdCBlbmQgPSBzdGFydCArIHBhZ2VTaXplO1xuICBjb25zdCBpdGVtcyA9IGRhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gIHJldHVybiB7XG4gICAgZGF0YTogaXRlbXMsXG4gICAgdG90YWxDb3VudDogZGF0YS5sZW5ndGgsXG4gICAgcGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gIH07XG59XG4iXX0=","export class RdtSelectDatasource {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9kYXRhc291cmNlL3JkdC1zZWxlY3QtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQWdCLG1CQUFtQjtDQVN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdFNlbGVjdFJlcXVlc3RQYXJhbXMgfSBmcm9tICcuLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IFJkdFNlbGVjdFBhZ2UgfSBmcm9tICcuL3JkdC1zZWxlY3QtcGFnZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRTZWxlY3REYXRhc291cmNlPFRJdGVtLCBUSWQ+IHtcbiAgYWJzdHJhY3QgZ2V0RGF0YShcbiAgICBwYXJhbXM6IFJkdFNlbGVjdFJlcXVlc3RQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxSZHRTZWxlY3RQYWdlPFRJdGVtPj47XG4gIGFic3RyYWN0IGdldExhYmVsKGl0ZW06IFRJdGVtKTogc3RyaW5nO1xuICBhYnN0cmFjdCBnZXRJZChpdGVtOiBUSXRlbSk6IFRJZDtcbiAgYWJzdHJhY3QgZ2V0SXRlbXNCeUlkcyhpZHM6IFRJZFtdKTogT2JzZXJ2YWJsZTxNYXA8VElkLCBUSXRlbT4+O1xuICBhYnN0cmFjdCByZWFkb25seSB0b3RhbENvdW50S25vd246IGJvb2xlYW47XG4gIGFic3RyYWN0IHJlYWRvbmx5IHF1ZXJ5UmVxdWlyZWQ6IGJvb2xlYW47XG59XG4iXX0=","import { of } from 'rxjs';\nimport { getRdtSelectPage } from '../utils/paginate';\nimport { RdtSelectDatasource } from './rdt-select-datasource';\nexport class RdtOfflineSelectDatasource extends RdtSelectDatasource {\n data;\n totalCountKnown = true;\n queryRequired = false;\n preprocessedData;\n constructor(data) {\n super();\n this.data = data;\n this.preprocessedData = this.preprocessData(data);\n }\n getData(params) {\n const page = getRdtSelectPage(this.filterData(params.query), params.pageIndex, params.pageSize);\n return of(page);\n }\n getLabel(item) {\n return item.label;\n }\n getId(item) {\n return item.value;\n }\n getItemsByIds(ids) {\n const result = new Map();\n for (const id of ids) {\n const item = this.preprocessedData.find((item) => item.value === id);\n if (item) {\n result.set(id, item);\n }\n }\n return of(result);\n }\n preprocessLabel(label) {\n return label.trim().toLowerCase();\n }\n preprocessData(data) {\n return data.map((item) => ({\n value: item.value,\n label: item.label,\n prepLabel: this.preprocessLabel(item.label),\n }));\n }\n filterData(query) {\n if (!query) {\n return this.preprocessedData;\n }\n const prepQuery = this.preprocessLabel(query);\n if (!prepQuery) {\n return this.preprocessedData;\n }\n return this.preprocessedData.filter((item) => item.prepLabel.includes(prepQuery));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LW9mZmxpbmUtc2VsZWN0LWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvc2VsZWN0L2RhdGFzb3VyY2UvcmR0LW9mZmxpbmUtc2VsZWN0LWRhdGFzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUc5RCxNQUFNLE9BQU8sMEJBQW1DLFNBQVEsbUJBR3ZEO0lBVXNCO0lBVEgsZUFBZSxHQUFHLElBQUksQ0FBQztJQUN2QixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXJCLGdCQUFnQixDQUkvQjtJQUVKLFlBQXFCLElBQTZCO1FBQ2hELEtBQUssRUFBRSxDQUFDO1FBRFcsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFFaEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVRLE9BQU8sQ0FDZCxNQUE4QjtRQUU5QixNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQzdCLE1BQU0sQ0FBQyxTQUFTLEVBQ2hCLE1BQU0sQ0FBQyxRQUFRLENBQ2hCLENBQUM7UUFDRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ1EsUUFBUSxDQUFDLElBQTJCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ1EsS0FBSyxDQUFDLElBQTJCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRVEsYUFBYSxDQUNwQixHQUFhO1FBRWIsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFDeEQsS0FBSyxNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRVMsZUFBZSxDQUFDLEtBQWE7UUFDckMsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVTLGNBQWMsQ0FDdEIsSUFBNkI7UUFFN0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFUyxVQUFVLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUNuQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdExhYmVsVmFsdWUgfSBmcm9tICcuLi91dGlscy9sYWJlbC12YWx1ZS1pZCc7XG5pbXBvcnQgeyBnZXRSZHRTZWxlY3RQYWdlIH0gZnJvbSAnLi4vdXRpbHMvcGFnaW5hdGUnO1xuaW1wb3J0IHsgUmR0U2VsZWN0UmVxdWVzdFBhcmFtcyB9IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuaW1wb3J0IHsgUmR0U2VsZWN0RGF0YXNvdXJjZSB9IGZyb20gJy4vcmR0LXNlbGVjdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdFNlbGVjdFBhZ2UgfSBmcm9tICcuL3JkdC1zZWxlY3QtcGFnZSc7XG5cbmV4cG9ydCBjbGFzcyBSZHRPZmZsaW5lU2VsZWN0RGF0YXNvdXJjZTxUVmFsdWU+IGV4dGVuZHMgUmR0U2VsZWN0RGF0YXNvdXJjZTxcbiAgUmR0TGFiZWxWYWx1ZTxUVmFsdWU+LFxuICBUVmFsdWVcbj4ge1xuICBvdmVycmlkZSByZWFkb25seSB0b3RhbENvdW50S25vd24gPSB0cnVlO1xuICBvdmVycmlkZSByZWFkb25seSBxdWVyeVJlcXVpcmVkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXByb2Nlc3NlZERhdGE6IHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHByZXBMYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlOiBUVmFsdWU7XG4gIH1bXTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYXRhOiBSZHRMYWJlbFZhbHVlPFRWYWx1ZT5bXSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5wcmVwcm9jZXNzZWREYXRhID0gdGhpcy5wcmVwcm9jZXNzRGF0YShkYXRhKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldERhdGEoXG4gICAgcGFyYW1zOiBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zXG4gICk6IE9ic2VydmFibGU8UmR0U2VsZWN0UGFnZTxSZHRMYWJlbFZhbHVlPFRWYWx1ZT4+PiB7XG4gICAgY29uc3QgcGFnZSA9IGdldFJkdFNlbGVjdFBhZ2UoXG4gICAgICB0aGlzLmZpbHRlckRhdGEocGFyYW1zLnF1ZXJ5KSxcbiAgICAgIHBhcmFtcy5wYWdlSW5kZXgsXG4gICAgICBwYXJhbXMucGFnZVNpemVcbiAgICApO1xuICAgIHJldHVybiBvZihwYWdlKTtcbiAgfVxuICBvdmVycmlkZSBnZXRMYWJlbChpdGVtOiBSZHRMYWJlbFZhbHVlPFRWYWx1ZT4pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLmxhYmVsO1xuICB9XG4gIG92ZXJyaWRlIGdldElkKGl0ZW06IFJkdExhYmVsVmFsdWU8VFZhbHVlPik6IFRWYWx1ZSB7XG4gICAgcmV0dXJuIGl0ZW0udmFsdWU7XG4gIH1cblxuICBvdmVycmlkZSBnZXRJdGVtc0J5SWRzKFxuICAgIGlkczogVFZhbHVlW11cbiAgKTogT2JzZXJ2YWJsZTxNYXA8VFZhbHVlLCBSZHRMYWJlbFZhbHVlPFRWYWx1ZT4+PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcDxUVmFsdWUsIFJkdExhYmVsVmFsdWU8VFZhbHVlPj4oKTtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIGlkcykge1xuICAgICAgY29uc3QgaXRlbSA9IHRoaXMucHJlcHJvY2Vzc2VkRGF0YS5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSBpZCk7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICByZXN1bHQuc2V0KGlkLCBpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9mKHJlc3VsdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJlcHJvY2Vzc0xhYmVsKGxhYmVsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBsYWJlbC50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmVwcm9jZXNzRGF0YShcbiAgICBkYXRhOiBSZHRMYWJlbFZhbHVlPFRWYWx1ZT5bXVxuICApOiB7IGxhYmVsOiBzdHJpbmc7IHByZXBMYWJlbDogc3RyaW5nOyB2YWx1ZTogVFZhbHVlIH1bXSB7XG4gICAgcmV0dXJuIGRhdGEubWFwKChpdGVtKSA9PiAoe1xuICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgIHByZXBMYWJlbDogdGhpcy5wcmVwcm9jZXNzTGFiZWwoaXRlbS5sYWJlbCksXG4gICAgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpbHRlckRhdGEocXVlcnk6IHN0cmluZyB8IG51bGwpOiBSZHRMYWJlbFZhbHVlPFRWYWx1ZT5bXSB7XG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJlcHJvY2Vzc2VkRGF0YTtcbiAgICB9XG4gICAgY29uc3QgcHJlcFF1ZXJ5ID0gdGhpcy5wcmVwcm9jZXNzTGFiZWwocXVlcnkpO1xuICAgIGlmICghcHJlcFF1ZXJ5KSB7XG4gICAgICByZXR1cm4gdGhpcy5wcmVwcm9jZXNzZWREYXRhO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcmVwcm9jZXNzZWREYXRhLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgIGl0ZW0ucHJlcExhYmVsLmluY2x1ZGVzKHByZXBRdWVyeSlcbiAgICApO1xuICB9XG59XG4iXX0=","export const rdtSelectInitialState = {\n initialized: false,\n query: null,\n nextPageIndex: 0,\n pageSize: 20,\n totalCount: 0,\n totalCountKnown: false,\n options: [],\n datasource: null,\n selectedMap: new Map(),\n fetchError: null,\n /* loadingValuePlaceholder: 'Načítání (ID = {id})...',\n missingValuePlaceholder: 'Neznámá hodnota (ID = {id})', */\n loadingValuePlaceholder: 'RDT_SELECT_LOADING_ID',\n missingValuePlaceholder: 'RDT_SELECT_UNKNOWN_ID',\n _fetchRequest: null,\n _fetchMissingRequest: null,\n _missingSelected: [],\n _unfetchableIds: [],\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3Qvc3RhdGUvcmR0LXNlbGVjdC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQkEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQTZCO0lBQzdELFdBQVcsRUFBRSxLQUFLO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLENBQUM7SUFDaEIsUUFBUSxFQUFFLEVBQUU7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLElBQUk7SUFDaEIsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFFO0lBQ3RCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCOzhEQUMwRDtJQUMxRCx1QkFBdUIsRUFBRSx1QkFBdUI7SUFDaEQsdUJBQXVCLEVBQUUsdUJBQXVCO0lBQ2hELGFBQWEsRUFBRSxJQUFJO0lBQ25CLG9CQUFvQixFQUFFLElBQUk7SUFDMUIsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQixlQUFlLEVBQUUsRUFBRTtDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmR0U2VsZWN0RGF0YXNvdXJjZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UvcmR0LXNlbGVjdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdExhYmVsVmFsdWVJZCB9IGZyb20gJy4uL3V0aWxzL2xhYmVsLXZhbHVlLWlkJztcbmltcG9ydCB7XG4gIFJkdFNlbGVjdEZldGNoTWlzc2luZ1JlcXVlc3QsXG4gIFJkdFNlbGVjdEZldGNoUmVxdWVzdCxcbn0gZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmR0U2VsZWN0U3RhdGU8VEl0ZW0sIFRJZD4ge1xuICBpbml0aWFsaXplZDogYm9vbGVhbjtcbiAgcXVlcnk6IHN0cmluZyB8IG51bGw7XG4gIG5leHRQYWdlSW5kZXg6IG51bWJlciB8IG51bGw7XG4gIHBhZ2VTaXplOiBudW1iZXI7XG4gIHRvdGFsQ291bnQ6IG51bWJlcjtcbiAgdG90YWxDb3VudEtub3duOiBib29sZWFuO1xuICBvcHRpb25zOiBSZHRMYWJlbFZhbHVlSWQ8VEl0ZW0sIFRJZD5bXTtcbiAgZGF0YXNvdXJjZTogUmR0U2VsZWN0RGF0YXNvdXJjZTxUSXRlbSwgVElkPiB8IG51bGw7XG4gIHNlbGVjdGVkTWFwOiBNYXA8VElkLCBSZHRMYWJlbFZhbHVlSWQ8VEl0ZW0sIFRJZD4+O1xuICBmZXRjaEVycm9yOiBhbnkgfCBudWxsO1xuICBsb2FkaW5nVmFsdWVQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBtaXNzaW5nVmFsdWVQbGFjZWhvbGRlcjogc3RyaW5nO1xuICBfZmV0Y2hSZXF1ZXN0OiBSZHRTZWxlY3RGZXRjaFJlcXVlc3QgfCBudWxsO1xuICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogUmR0U2VsZWN0RmV0Y2hNaXNzaW5nUmVxdWVzdDxUSWQ+IHwgbnVsbDtcbiAgX21pc3NpbmdTZWxlY3RlZDogVElkW107XG4gIF91bmZldGNoYWJsZUlkczogVElkW107XG59XG5cbmV4cG9ydCBjb25zdCByZHRTZWxlY3RJbml0aWFsU3RhdGU6IFJkdFNlbGVjdFN0YXRlPGFueSwgYW55PiA9IHtcbiAgaW5pdGlhbGl6ZWQ6IGZhbHNlLFxuICBxdWVyeTogbnVsbCxcbiAgbmV4dFBhZ2VJbmRleDogMCxcbiAgcGFnZVNpemU6IDIwLFxuICB0b3RhbENvdW50OiAwLFxuICB0b3RhbENvdW50S25vd246IGZhbHNlLFxuICBvcHRpb25zOiBbXSxcbiAgZGF0YXNvdXJjZTogbnVsbCxcbiAgc2VsZWN0ZWRNYXA6IG5ldyBNYXAoKSxcbiAgZmV0Y2hFcnJvcjogbnVsbCxcbiAgLyogICBsb2FkaW5nVmFsdWVQbGFjZWhvbGRlcjogJ05hxI3DrXTDoW7DrSAoSUQgPSB7aWR9KS4uLicsXG4gIG1pc3NpbmdWYWx1ZVBsYWNlaG9sZGVyOiAnTmV6bsOhbcOhIGhvZG5vdGEgKElEID0ge2lkfSknLCAqL1xuICBsb2FkaW5nVmFsdWVQbGFjZWhvbGRlcjogJ1JEVF9TRUxFQ1RfTE9BRElOR19JRCcsXG4gIG1pc3NpbmdWYWx1ZVBsYWNlaG9sZGVyOiAnUkRUX1NFTEVDVF9VTktOT1dOX0lEJyxcbiAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IG51bGwsXG4gIF9taXNzaW5nU2VsZWN0ZWQ6IFtdLFxuICBfdW5mZXRjaGFibGVJZHM6IFtdLFxufTtcbiJdfQ==","export function compareSelectRequestParams(a, b) {\n return (a.query === b.query &&\n a.pageIndex === b.pageIndex &&\n a.pageSize === b.pageSize);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3QvdXRpbHMvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsTUFBTSxVQUFVLDBCQUEwQixDQUN4QyxDQUF5QixFQUN6QixDQUF5QjtJQUV6QixPQUFPLENBQ0wsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsS0FBSztRQUNuQixDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxTQUFTO1FBQzNCLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zIHtcbiAgcXVlcnk6IHN0cmluZyB8IG51bGw7XG4gIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJkdFNlbGVjdEZldGNoUmVxdWVzdCB7XG4gIHBhcmFtczogUmR0U2VsZWN0UmVxdWVzdFBhcmFtcztcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmR0U2VsZWN0RmV0Y2hNaXNzaW5nUmVxdWVzdDxUSWQ+IHtcbiAgaWRzOiBUSWRbXTtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlU2VsZWN0UmVxdWVzdFBhcmFtcyhcbiAgYTogUmR0U2VsZWN0UmVxdWVzdFBhcmFtcyxcbiAgYjogUmR0U2VsZWN0UmVxdWVzdFBhcmFtc1xuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgYS5xdWVyeSA9PT0gYi5xdWVyeSAmJlxuICAgIGEucGFnZUluZGV4ID09PSBiLnBhZ2VJbmRleCAmJlxuICAgIGEucGFnZVNpemUgPT09IGIucGFnZVNpemVcbiAgKTtcbn1cbiJdfQ==","import { computed, untracked } from '@angular/core';\nimport { patchState, signalStore, withComputed, withHooks, withMethods, withState, } from '@ngrx/signals';\nimport { compareSelectRequestParams, } from '../utils/request';\nimport { rdtSelectInitialState } from './rdt-select-state';\nfunction getRdtSelectStore(initialState = rdtSelectInitialState) {\n return signalStore(withState(initialState), withHooks({\n onDestroy(store) {\n store._fetchMissingRequest()?.subscription.unsubscribe();\n store._fetchRequest()?.subscription.unsubscribe();\n },\n }), withComputed((state) => ({\n hasMore: computed(() => state.nextPageIndex !== null),\n selectedItems: computed(() => {\n return Array.from(state.selectedMap().values());\n }),\n loadingOptions: computed(() => state._fetchRequest() !== null),\n loadingMissing: computed(() => state._fetchMissingRequest() !== null),\n loading: computed(() => state._fetchRequest() !== null ||\n state._fetchMissingRequest() !== null),\n // Shows selected + others while query is empty\n // Shows only query results while query has value\n visibleOptions: computed(() => {\n const items = state.options();\n const query = state.query();\n const selectedMap = state.selectedMap();\n const missing = state._missingSelected();\n const unfetchable = state._unfetchableIds();\n if (query) {\n return items.map((it) => ({\n ...it,\n selected: selectedMap.has(it.id),\n }));\n }\n const selected = [];\n const missingPlaceholder = state.missingValuePlaceholder();\n const loadingPlaceholder = state.loadingValuePlaceholder();\n const loadingPlaceholders = missing.map((id) => ({\n id,\n label: loadingPlaceholder + '::id=' + String(id),\n value: null,\n selected: true,\n }));\n const missingPlaceholders = unfetchable.map((id) => ({\n id,\n label: missingPlaceholder + '::id=' + String(id),\n value: null,\n selected: true,\n }));\n selected.push(...loadingPlaceholders);\n selected.push(...missingPlaceholders);\n items.forEach((item) => {\n selected.push({ ...item, selected: selectedMap.has(item.id) });\n });\n return selected;\n }),\n })), withMethods((store) => ({\n init(initialValue) {\n if (initialValue && initialValue.length > 0) {\n this.setSelected(initialValue ?? []);\n }\n else {\n patchState(store, { initialized: true });\n }\n },\n fetch() {\n const datasource = untracked(store.datasource);\n const index = untracked(store.nextPageIndex);\n const query = untracked(store.query);\n const pageSize = untracked(store.pageSize);\n if (!datasource || index === null) {\n return;\n }\n const params = {\n query: query,\n pageIndex: index,\n pageSize: pageSize,\n };\n const currentRequest = untracked(store._fetchRequest);\n if (currentRequest) {\n if (compareSelectRequestParams(currentRequest.params, params)) {\n return;\n }\n else {\n currentRequest.subscription.unsubscribe();\n }\n }\n const observer = this._getFetchObserver(params);\n const subscription = datasource.getData(params).subscribe(observer);\n // Offline datasource using `of()` emits value synchronously\n if (!subscription.closed) {\n patchState(store, {\n _fetchRequest: { subscription, params: params },\n });\n }\n },\n _getFetchObserver(requestParams) {\n return {\n next: (page) => this._onFetchSuccess(page, requestParams),\n error: (error) => this._onFetchError(error),\n complete: () => this._onFetchComplete(),\n };\n },\n _onFetchSuccess(page, requestParams) {\n let nextPageIndex = page.pageIndex + 1;\n if (page.totalCount === null) {\n if (page.data.length < requestParams.pageSize) {\n nextPageIndex = null;\n }\n }\n else if (requestParams.pageIndex * requestParams.pageSize + page.data.length >=\n page.totalCount) {\n nextPageIndex = null;\n }\n const options = [\n ...untracked(store.options),\n ...this._getLabelValueIds(page.data),\n ];\n patchState(store, {\n totalCount: page.totalCount ??\n Math.max(untracked(store.totalCount), page.pageIndex * requestParams.pageSize + page.data.length),\n nextPageIndex,\n totalCountKnown: page.totalCount !== null ||\n page.data.length < requestParams.pageSize,\n options,\n _fetchRequest: null,\n });\n this._loadMissingSelected();\n },\n _onFetchError(error) {\n patchState(store, {\n fetchError: getRdtSelectError(error),\n _fetchRequest: null,\n });\n },\n _onFetchComplete() {\n patchState(store, {\n _fetchRequest: null,\n });\n },\n setDatasource(datasource) {\n untracked(store._fetchRequest)?.subscription.unsubscribe();\n patchState(store, {\n datasource,\n _fetchRequest: null,\n fetchError: null,\n totalCountKnown: datasource.totalCountKnown,\n nextPageIndex: 0,\n totalCount: 0,\n options: [],\n });\n if (!datasource.queryRequired) {\n this.fetch();\n }\n else {\n this._loadMissingSelected();\n }\n },\n setQuery(query) {\n const datasource = untracked(store.datasource);\n if (query !== untracked(store.query)) {\n this.reset();\n patchState(store, { query });\n if (query || !datasource?.queryRequired) {\n this.fetch();\n }\n }\n },\n reset() {\n patchState(store, {\n query: null,\n nextPageIndex: 0,\n options: [],\n totalCount: 0,\n totalCountKnown: untracked(store.datasource)?.totalCountKnown ?? true,\n });\n },\n resetTotalCountKnown() {\n patchState(store, {\n totalCountKnown: untracked(store.datasource)?.totalCountKnown ?? true,\n });\n },\n setSelected(ids) {\n patchState(store, {\n _unfetchableIds: [],\n _missingSelected: ids,\n selectedMap: new Map(),\n });\n this._loadMissingSelected();\n },\n select(ids) {\n const oldMissing = untracked(store._missingSelected);\n const notInMissing = ids.filter((id) => !oldMissing.includes(id));\n if (notInMissing.length > 0) {\n patchState(store, {\n _missingSelected: oldMissing.concat(notInMissing),\n });\n this._loadMissingSelected();\n }\n },\n unselectAll() {\n const fetchMissingReq = untracked(store._fetchMissingRequest);\n if (fetchMissingReq) {\n fetchMissingReq.subscription.unsubscribe();\n }\n patchState(store, {\n _missingSelected: [],\n selectedMap: new Map(),\n _fetchMissingRequest: null,\n });\n },\n _setAndGetMissing() {\n const unfetchable = untracked(store._unfetchableIds);\n const allMissing = untracked(store._missingSelected);\n const items = untracked(store.options);\n const selectedMap = new Map(untracked(store.selectedMap));\n const newMissing = [];\n let selectedChanged = false;\n for (const id of allMissing) {\n const item = items.find((it) => it.id === id);\n if (item) {\n selectedMap.set(id, item);\n selectedChanged = true;\n }\n else if (!unfetchable.includes(id)) {\n newMissing.push(id);\n }\n }\n if (selectedChanged) {\n patchState(store, { selectedMap });\n }\n if (newMissing.length === 0) {\n this._cancelFetchMissingIfNeeded();\n }\n patchState(store, { _missingSelected: newMissing });\n return newMissing;\n },\n _loadMissingSelected() {\n const datasource = store.datasource();\n const reallyMissing = this._setAndGetMissing();\n if (!untracked(store.loading) && datasource) {\n if (reallyMissing.length > 0) {\n this._fetchMissing(reallyMissing, datasource);\n }\n else {\n patchState(store, { initialized: true });\n }\n }\n },\n _cancelFetchMissingIfNeeded() {\n const fetchMissingReq = untracked(store._fetchMissingRequest);\n const items = untracked(store.options);\n const missingEmpty = untracked(store._missingSelected).length === 0;\n if (fetchMissingReq) {\n if (fetchMissingReq.ids.every((id) => items.some((it) => it.id === id)) ||\n missingEmpty) {\n fetchMissingReq.subscription.unsubscribe();\n patchState(store, {\n _fetchMissingRequest: null,\n _missingSelected: [],\n });\n }\n }\n },\n _fetchMissing(ids, datasource) {\n if (ids.length === 0) {\n return;\n }\n const sub = datasource.getItemsByIds(ids).subscribe((map) => {\n const newMissing = [];\n const newSelected = new Map(untracked(store.selectedMap));\n const unfetchable = [...untracked(store._unfetchableIds)];\n for (const id of untracked(store._missingSelected)) {\n if (map.has(id)) {\n const value = map.get(id);\n const label = datasource.getLabel(value);\n newSelected.set(id, { label, value, id });\n }\n else if (ids.includes(id)) {\n console.error(`Item with id ${JSON.stringify(id)} not found by getItemsByIds().`, datasource);\n unfetchable.push(id);\n }\n else {\n newMissing.push(id);\n }\n }\n patchState(store, {\n _fetchMissingRequest: null,\n _missingSelected: newMissing,\n selectedMap: newSelected,\n _unfetchableIds: [...unfetchable],\n initialized: true,\n });\n this._loadMissingSelected();\n });\n if (!sub.closed) {\n patchState(store, {\n _fetchMissingRequest: { ids, subscription: sub },\n });\n }\n },\n selectSingle(id) {\n this.setSelected([id]);\n },\n toggle(id) {\n const oldMap = untracked(store.selectedMap);\n const datasource = untracked(store.datasource);\n if (!datasource) {\n throw new Error('Datasource is undefined');\n }\n const unfetchableIds = untracked(store._unfetchableIds);\n const missingSelectedIds = untracked(store._missingSelected);\n if (unfetchableIds.includes(id) || missingSelectedIds.includes(id)) {\n const newUnfetchableIds = unfetchableIds.filter((unfetchableId) => unfetchableId !== id);\n const newMissingSelected = missingSelectedIds.filter((missingId) => missingId !== id);\n patchState(store, {\n _unfetchableIds: newUnfetchableIds,\n _missingSelected: newMissingSelected,\n });\n if (newMissingSelected.length === 0) {\n this._cancelFetchMissingIfNeeded();\n }\n }\n else if (oldMap.has(id)) {\n const newMap = new Map(oldMap);\n newMap.delete(id);\n patchState(store, { selectedMap: newMap });\n }\n else {\n const item = untracked(store.options).find((it) => it.id === id);\n if (!item) {\n this.select([id]);\n }\n else {\n const newMap = new Map(oldMap);\n newMap.set(id, item);\n patchState(store, { selectedMap: newMap });\n }\n }\n },\n cancelFetch() {\n untracked(store._fetchRequest)?.subscription.unsubscribe();\n patchState(store, {\n _fetchRequest: null,\n fetchError: null,\n });\n },\n isSelected(item) {\n const datasource = untracked(store.datasource);\n if (!datasource) {\n return false;\n }\n const id = datasource.getId(item);\n return untracked(store.selectedMap).has(id);\n },\n setPageSize(size) {\n patchState(store, { pageSize: size });\n },\n _getLabelValueIds(items) {\n const datasource = untracked(store.datasource);\n if (!datasource) {\n throw new Error('Datasource not set!');\n }\n return items.map((item) => ({\n label: datasource.getLabel(item),\n value: item,\n id: datasource.getId(item),\n }));\n },\n })));\n}\nexport const RdtSelectStore = getRdtSelectStore();\nfunction getRdtSelectError(error) {\n if (typeof error === 'string') {\n return error;\n }\n else if (error instanceof Error) {\n return error.message;\n }\n else if (error && typeof error === 'object' && 'message' in error) {\n return error.message;\n }\n return 'RDT_SELECT_ERROR';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3Qvc3RhdGUvcmR0LXNlbGVjdC1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUNMLDBCQUEwQixHQUUzQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRSxTQUFTLGlCQUFpQixDQUFTLFlBQVksR0FBRyxxQkFBcUI7SUFDckUsT0FBTyxXQUFXLENBQ2hCLFNBQVMsQ0FBQyxZQUFzQyxDQUFDLEVBQ2pELFNBQVMsQ0FBQztRQUNSLFNBQVMsQ0FBQyxLQUFLO1lBQ2IsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pELEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEQsQ0FBQztLQUNGLENBQUMsRUFDRixZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQztRQUNyRCxhQUFhLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQs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Q0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFCLEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDaEMsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsRUFBRSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixFQUFZLENBQUM7QUFLNUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFVO0lBQ25DLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO1NBQU0sSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7U0FBTSxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksU0FBUyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3BFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgcGF0Y2hTdGF0ZSxcbiAgc2lnbmFsU3RvcmUsXG4gIHdpdGhDb21wdXRlZCxcbiAgd2l0aEhvb2tzLFxuICB3aXRoTWV0aG9kcyxcbiAgd2l0aFN0YXRlLFxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZHRTZWxlY3REYXRhc291cmNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9yZHQtc2VsZWN0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgUmR0U2VsZWN0UGFnZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UvcmR0LXNlbGVjdC1wYWdlJztcbmltcG9ydCB7XG4gIFJkdExhYmVsVmFsdWVJZCxcbiAgUmR0UmVuZGVyZWRTZWxlY3RPcHRpb24sXG59IGZyb20gJy4uL3V0aWxzL2xhYmVsLXZhbHVlLWlkJztcbmltcG9ydCB7XG4gIGNvbXBhcmVTZWxlY3RSZXF1ZXN0UGFyYW1zLFxuICBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zLFxufSBmcm9tICcuLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IHJkdFNlbGVjdEluaXRpYWxTdGF0ZSwgUmR0U2VsZWN0U3RhdGUgfSBmcm9tICcuL3JkdC1zZWxlY3Qtc3RhdGUnO1xuXG5mdW5jdGlvbiBnZXRSZHRTZWxlY3RTdG9yZTxULCBUSWQ+KGluaXRpYWxTdGF0ZSA9IHJkdFNlbGVjdEluaXRpYWxTdGF0ZSkge1xuICByZXR1cm4gc2lnbmFsU3RvcmUoXG4gICAgd2l0aFN0YXRlKGluaXRpYWxTdGF0ZSBhcyBSZHRTZWxlY3RTdGF0ZTxULCBUSWQ+KSxcbiAgICB3aXRoSG9va3Moe1xuICAgICAgb25EZXN0cm95KHN0b3JlKSB7XG4gICAgICAgIHN0b3JlLl9mZXRjaE1pc3NpbmdSZXF1ZXN0KCk/LnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICBzdG9yZS5fZmV0Y2hSZXF1ZXN0KCk/LnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfSxcbiAgICB9KSxcbiAgICB3aXRoQ29tcHV0ZWQoKHN0YXRlKSA9PiAoe1xuICAgICAgaGFzTW9yZTogY29tcHV0ZWQoKCkgPT4gc3RhdGUubmV4dFBhZ2VJbmRleCAhPT0gbnVsbCksXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHN0YXRlLnNlbGVjdGVkTWFwKCkudmFsdWVzKCkpO1xuICAgICAgfSksXG4gICAgICBsb2FkaW5nT3B0aW9uczogY29tcHV0ZWQoKCkgPT4gc3RhdGUuX2ZldGNoUmVxdWVzdCgpICE9PSBudWxsKSxcbiAgICAgIGxvYWRpbmdNaXNzaW5nOiBjb21wdXRlZCgoKSA9PiBzdGF0ZS5fZmV0Y2hNaXNzaW5nUmVxdWVzdCgpICE9PSBudWxsKSxcbiAgICAgIGxvYWRpbmc6IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgIHN0YXRlLl9mZXRjaFJlcXVlc3QoKSAhPT0gbnVsbCB8fFxuICAgICAgICAgIHN0YXRlLl9mZXRjaE1pc3NpbmdSZXF1ZXN0KCkgIT09IG51bGxcbiAgICAgICksXG4gICAgICAvLyBTaG93cyBzZWxlY3RlZCArIG90aGVycyB3aGlsZSBxdWVyeSBpcyBlbXB0eVxuICAgICAgLy8gU2hvd3Mgb25seSBxdWVyeSByZXN1bHRzIHdoaWxlIHF1ZXJ5IGhhcyB2YWx1ZVxuICAgICAgdmlzaWJsZU9wdGlvbnM6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBzdGF0ZS5vcHRpb25zKCk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gc3RhdGUucXVlcnkoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRNYXAgPSBzdGF0ZS5zZWxlY3RlZE1hcCgpO1xuICAgICAgICBjb25zdCBtaXNzaW5nID0gc3RhdGUuX21pc3NpbmdTZWxlY3RlZCgpO1xuICAgICAgICBjb25zdCB1bmZldGNoYWJsZSA9IHN0YXRlLl91bmZldGNoYWJsZUlkcygpO1xuXG4gICAgICAgIGlmIChxdWVyeSkge1xuICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKGl0KSA9PiAoe1xuICAgICAgICAgICAgLi4uaXQsXG4gICAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWRNYXAuaGFzKGl0LmlkKSxcbiAgICAgICAgICB9KSkgYXMgUmR0UmVuZGVyZWRTZWxlY3RPcHRpb248VCwgVElkPltdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkOiBSZHRSZW5kZXJlZFNlbGVjdE9wdGlvbjxULCBUSWQ+W10gPSBbXTtcbiAgICAgICAgY29uc3QgbWlzc2luZ1BsYWNlaG9sZGVyID0gc3RhdGUubWlzc2luZ1ZhbHVlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgY29uc3QgbG9hZGluZ1BsYWNlaG9sZGVyID0gc3RhdGUubG9hZGluZ1ZhbHVlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgY29uc3QgbG9hZGluZ1BsYWNlaG9sZGVycyA9IG1pc3NpbmcubWFwKChpZCkgPT4gKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBsYWJlbDogbG9hZGluZ1BsYWNlaG9sZGVyICsgJzo6aWQ9JyArIFN0cmluZyhpZCksXG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc3QgbWlzc2luZ1BsYWNlaG9sZGVycyA9IHVuZmV0Y2hhYmxlLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbGFiZWw6IG1pc3NpbmdQbGFjZWhvbGRlciArICc6OmlkPScgKyBTdHJpbmcoaWQpLFxuICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgIHNlbGVjdGVkOiB0cnVlLFxuICAgICAgICB9KSk7XG4gICAgICAgIHNlbGVjdGVkLnB1c2goLi4ubG9hZGluZ1BsYWNlaG9sZGVycyk7XG4gICAgICAgIHNlbGVjdGVkLnB1c2goLi4ubWlzc2luZ1BsYWNlaG9sZGVycyk7XG5cbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHNlbGVjdGVkLnB1c2goeyAuLi5pdGVtLCBzZWxlY3RlZDogc2VsZWN0ZWRNYXAuaGFzKGl0ZW0uaWQpIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkO1xuICAgICAgfSksXG4gICAgfSkpLFxuICAgIHdpdGhNZXRob2RzKChzdG9yZSkgPT4gKHtcbiAgICAgIGluaXQoaW5pdGlhbFZhbHVlOiBUSWRbXSB8IG51bGwpIHtcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSAmJiBpbml0aWFsVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWQoaW5pdGlhbFZhbHVlID8/IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGluaXRpYWxpemVkOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZmV0Y2goKSB7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdW50cmFja2VkKHN0b3JlLm5leHRQYWdlSW5kZXgpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHVudHJhY2tlZChzdG9yZS5xdWVyeSk7XG4gICAgICAgIGNvbnN0IHBhZ2VTaXplID0gdW50cmFja2VkKHN0b3JlLnBhZ2VTaXplKTtcbiAgICAgICAgaWYgKCFkYXRhc291cmNlIHx8IGluZGV4ID09PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcmFtczogUmR0U2VsZWN0UmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgICAgICBxdWVyeTogcXVlcnksXG4gICAgICAgICAgcGFnZUluZGV4OiBpbmRleCxcbiAgICAgICAgICBwYWdlU2l6ZTogcGFnZVNpemUsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSZXF1ZXN0ID0gdW50cmFja2VkKHN0b3JlLl9mZXRjaFJlcXVlc3QpO1xuICAgICAgICBpZiAoY3VycmVudFJlcXVlc3QpIHtcbiAgICAgICAgICBpZiAoY29tcGFyZVNlbGVjdFJlcXVlc3RQYXJhbXMoY3VycmVudFJlcXVlc3QucGFyYW1zLCBwYXJhbXMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRSZXF1ZXN0LnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvYnNlcnZlciA9IHRoaXMuX2dldEZldGNoT2JzZXJ2ZXIocGFyYW1zKTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZGF0YXNvdXJjZS5nZXREYXRhKHBhcmFtcykuc3Vic2NyaWJlKG9ic2VydmVyKTtcbiAgICAgICAgLy8gT2ZmbGluZSBkYXRhc291cmNlIHVzaW5nIGBvZigpYCBlbWl0cyB2YWx1ZSBzeW5jaHJvbm91c2x5XG4gICAgICAgIGlmICghc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgIF9mZXRjaFJlcXVlc3Q6IHsgc3Vic2NyaXB0aW9uLCBwYXJhbXM6IHBhcmFtcyB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX2dldEZldGNoT2JzZXJ2ZXIoXG4gICAgICAgIHJlcXVlc3RQYXJhbXM6IFJkdFNlbGVjdFJlcXVlc3RQYXJhbXNcbiAgICAgICk6IE9ic2VydmVyPFJkdFNlbGVjdFBhZ2U8VD4+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuZXh0OiAocGFnZSkgPT4gdGhpcy5fb25GZXRjaFN1Y2Nlc3MocGFnZSwgcmVxdWVzdFBhcmFtcyksXG4gICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gdGhpcy5fb25GZXRjaEVycm9yKGVycm9yKSxcbiAgICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5fb25GZXRjaENvbXBsZXRlKCksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgX29uRmV0Y2hTdWNjZXNzKFxuICAgICAgICBwYWdlOiBSZHRTZWxlY3RQYWdlPFQ+LFxuICAgICAgICByZXF1ZXN0UGFyYW1zOiBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zXG4gICAgICApIHtcbiAgICAgICAgbGV0IG5leHRQYWdlSW5kZXg6IG51bWJlciB8IG51bGwgPSBwYWdlLnBhZ2VJbmRleCArIDE7XG4gICAgICAgIGlmIChwYWdlLnRvdGFsQ291bnQgPT09IG51bGwpIHtcbiAgICAgICAgICBpZiAocGFnZS5kYXRhLmxlbmd0aCA8IHJlcXVlc3RQYXJhbXMucGFnZVNpemUpIHtcbiAgICAgICAgICAgIG5leHRQYWdlSW5kZXggPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICByZXF1ZXN0UGFyYW1zLnBhZ2VJbmRleCAqIHJlcXVlc3RQYXJhbXMucGFnZVNpemUgKyBwYWdlLmRhdGEubGVuZ3RoID49XG4gICAgICAgICAgcGFnZS50b3RhbENvdW50XG4gICAgICAgICkge1xuICAgICAgICAgIG5leHRQYWdlSW5kZXggPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBbXG4gICAgICAgICAgLi4udW50cmFja2VkKHN0b3JlLm9wdGlvbnMpLFxuICAgICAgICAgIC4uLnRoaXMuX2dldExhYmVsVmFsdWVJZHMocGFnZS5kYXRhKSxcbiAgICAgICAgXTtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIHRvdGFsQ291bnQ6XG4gICAgICAgICAgICBwYWdlLnRvdGFsQ291bnQgPz9cbiAgICAgICAgICAgIE1hdGgubWF4KFxuICAgICAgICAgICAgICB1bnRyYWNrZWQoc3RvcmUudG90YWxDb3VudCksXG4gICAgICAgICAgICAgIHBhZ2UucGFnZUluZGV4ICogcmVxdWVzdFBhcmFtcy5wYWdlU2l6ZSArIHBhZ2UuZGF0YS5sZW5ndGhcbiAgICAgICAgICAgICksXG4gICAgICAgICAgbmV4dFBhZ2VJbmRleCxcbiAgICAgICAgICB0b3RhbENvdW50S25vd246XG4gICAgICAgICAgICBwYWdlLnRvdGFsQ291bnQgIT09IG51bGwgfHxcbiAgICAgICAgICAgIHBhZ2UuZGF0YS5sZW5ndGggPCByZXF1ZXN0UGFyYW1zLnBhZ2VTaXplLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgIH0sXG4gICAgICBfb25GZXRjaEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIGZldGNoRXJyb3I6IGdldFJkdFNlbGVjdEVycm9yKGVycm9yKSxcbiAgICAgICAgICBfZmV0Y2hSZXF1ZXN0OiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBfb25GZXRjaENvbXBsZXRlKCkge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgc2V0RGF0YXNvdXJjZShkYXRhc291cmNlOiBSZHRTZWxlY3REYXRhc291cmNlPFQsIFRJZD4pIHtcbiAgICAgICAgdW50cmFja2VkKHN0b3JlLl9mZXRjaFJlcXVlc3QpPy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIGRhdGFzb3VyY2UsXG4gICAgICAgICAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgICAgICAgICBmZXRjaEVycm9yOiBudWxsLFxuICAgICAgICAgIHRvdGFsQ291bnRLbm93bjogZGF0YXNvdXJjZS50b3RhbENvdW50S25vd24sXG4gICAgICAgICAgbmV4dFBhZ2VJbmRleDogMCxcbiAgICAgICAgICB0b3RhbENvdW50OiAwLFxuICAgICAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFkYXRhc291cmNlLnF1ZXJ5UmVxdWlyZWQpIHtcbiAgICAgICAgICB0aGlzLmZldGNoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fbG9hZE1pc3NpbmdTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2V0UXVlcnkocXVlcnk6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgY29uc3QgZGF0YXNvdXJjZSA9IHVudHJhY2tlZChzdG9yZS5kYXRhc291cmNlKTtcbiAgICAgICAgaWYgKHF1ZXJ5ICE9PSB1bnRyYWNrZWQoc3RvcmUucXVlcnkpKSB7XG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgcXVlcnkgfSk7XG4gICAgICAgICAgaWYgKHF1ZXJ5IHx8ICFkYXRhc291cmNlPy5xdWVyeVJlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZldGNoKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcmVzZXQoKSB7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBxdWVyeTogbnVsbCxcbiAgICAgICAgICBuZXh0UGFnZUluZGV4OiAwLFxuICAgICAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgICAgIHRvdGFsQ291bnQ6IDAsXG4gICAgICAgICAgdG90YWxDb3VudEtub3duOiB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk/LnRvdGFsQ291bnRLbm93biA/PyB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICByZXNldFRvdGFsQ291bnRLbm93bigpIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIHRvdGFsQ291bnRLbm93bjogdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpPy50b3RhbENvdW50S25vd24gPz8gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgc2V0U2VsZWN0ZWQoaWRzOiBUSWRbXSkge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgX3VuZmV0Y2hhYmxlSWRzOiBbXSxcbiAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBpZHMsXG4gICAgICAgICAgc2VsZWN0ZWRNYXA6IG5ldyBNYXAoKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgIH0sXG4gICAgICBzZWxlY3QoaWRzOiBUSWRbXSkge1xuICAgICAgICBjb25zdCBvbGRNaXNzaW5nID0gdW50cmFja2VkKHN0b3JlLl9taXNzaW5nU2VsZWN0ZWQpO1xuICAgICAgICBjb25zdCBub3RJbk1pc3NpbmcgPSBpZHMuZmlsdGVyKChpZCkgPT4gIW9sZE1pc3NpbmcuaW5jbHVkZXMoaWQpKTtcbiAgICAgICAgaWYgKG5vdEluTWlzc2luZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgX21pc3NpbmdTZWxlY3RlZDogb2xkTWlzc2luZy5jb25jYXQobm90SW5NaXNzaW5nKSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVuc2VsZWN0QWxsKCkge1xuICAgICAgICBjb25zdCBmZXRjaE1pc3NpbmdSZXEgPSB1bnRyYWNrZWQoc3RvcmUuX2ZldGNoTWlzc2luZ1JlcXVlc3QpO1xuICAgICAgICBpZiAoZmV0Y2hNaXNzaW5nUmVxKSB7XG4gICAgICAgICAgZmV0Y2hNaXNzaW5nUmVxLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBbXSxcbiAgICAgICAgICBzZWxlY3RlZE1hcDogbmV3IE1hcCgpLFxuICAgICAgICAgIF9mZXRjaE1pc3NpbmdSZXF1ZXN0OiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBfc2V0QW5kR2V0TWlzc2luZygpIHtcbiAgICAgICAgY29uc3QgdW5mZXRjaGFibGUgPSB1bnRyYWNrZWQoc3RvcmUuX3VuZmV0Y2hhYmxlSWRzKTtcbiAgICAgICAgY29uc3QgYWxsTWlzc2luZyA9IHVudHJhY2tlZChzdG9yZS5fbWlzc2luZ1NlbGVjdGVkKTtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB1bnRyYWNrZWQoc3RvcmUub3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTWFwID0gbmV3IE1hcCh1bnRyYWNrZWQoc3RvcmUuc2VsZWN0ZWRNYXApKTtcbiAgICAgICAgY29uc3QgbmV3TWlzc2luZzogVElkW10gPSBbXTtcblxuICAgICAgICBsZXQgc2VsZWN0ZWRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgaWQgb2YgYWxsTWlzc2luZykge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5maW5kKChpdCkgPT4gaXQuaWQgPT09IGlkKTtcbiAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRNYXAuc2V0KGlkLCBpdGVtKTtcbiAgICAgICAgICAgIHNlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmICghdW5mZXRjaGFibGUuaW5jbHVkZXMoaWQpKSB7XG4gICAgICAgICAgICBuZXdNaXNzaW5nLnB1c2goaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VsZWN0ZWRDaGFuZ2VkKSB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzZWxlY3RlZE1hcCB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV3TWlzc2luZy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLl9jYW5jZWxGZXRjaE1pc3NpbmdJZk5lZWRlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgX21pc3NpbmdTZWxlY3RlZDogbmV3TWlzc2luZyB9KTtcbiAgICAgICAgcmV0dXJuIG5ld01pc3Npbmc7XG4gICAgICB9LFxuICAgICAgX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKSB7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSBzdG9yZS5kYXRhc291cmNlKCk7XG4gICAgICAgIGNvbnN0IHJlYWxseU1pc3NpbmcgPSB0aGlzLl9zZXRBbmRHZXRNaXNzaW5nKCk7XG4gICAgICAgIGlmICghdW50cmFja2VkKHN0b3JlLmxvYWRpbmcpICYmIGRhdGFzb3VyY2UpIHtcbiAgICAgICAgICBpZiAocmVhbGx5TWlzc2luZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9mZXRjaE1pc3NpbmcocmVhbGx5TWlzc2luZywgZGF0YXNvdXJjZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgaW5pdGlhbGl6ZWQ6IHRydWUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX2NhbmNlbEZldGNoTWlzc2luZ0lmTmVlZGVkKCkge1xuICAgICAgICBjb25zdCBmZXRjaE1pc3NpbmdSZXEgPSB1bnRyYWNrZWQoc3RvcmUuX2ZldGNoTWlzc2luZ1JlcXVlc3QpO1xuICAgICAgICBjb25zdCBpdGVtcyA9IHVudHJhY2tlZChzdG9yZS5vcHRpb25zKTtcbiAgICAgICAgY29uc3QgbWlzc2luZ0VtcHR5ID0gdW50cmFja2VkKHN0b3JlLl9taXNzaW5nU2VsZWN0ZWQpLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgaWYgKGZldGNoTWlzc2luZ1JlcSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGZldGNoTWlzc2luZ1JlcS5pZHMuZXZlcnkoKGlkKSA9PlxuICAgICAgICAgICAgICBpdGVtcy5zb21lKChpdCkgPT4gaXQuaWQgPT09IGlkKVxuICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgbWlzc2luZ0VtcHR5XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmZXRjaE1pc3NpbmdSZXEuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgIF9mZXRjaE1pc3NpbmdSZXF1ZXN0OiBudWxsLFxuICAgICAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBbXSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9mZXRjaE1pc3NpbmcoaWRzOiBUSWRbXSwgZGF0YXNvdXJjZTogUmR0U2VsZWN0RGF0YXNvdXJjZTxULCBUSWQ+KSB7XG4gICAgICAgIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YiA9IGRhdGFzb3VyY2UuZ2V0SXRlbXNCeUlkcyhpZHMpLnN1YnNjcmliZSgobWFwKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TWlzc2luZzogVElkW10gPSBbXTtcbiAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZCA9IG5ldyBNYXAodW50cmFja2VkKHN0b3JlLnNlbGVjdGVkTWFwKSk7XG4gICAgICAgICAgY29uc3QgdW5mZXRjaGFibGU6IFRJZFtdID0gWy4uLnVudHJhY2tlZChzdG9yZS5fdW5mZXRjaGFibGVJZHMpXTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGlkIG9mIHVudHJhY2tlZChzdG9yZS5fbWlzc2luZ1NlbGVjdGVkKSkge1xuICAgICAgICAgICAgaWYgKG1hcC5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbWFwLmdldChpZCkhO1xuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGFzb3VyY2UuZ2V0TGFiZWwodmFsdWUpO1xuICAgICAgICAgICAgICBuZXdTZWxlY3RlZC5zZXQoaWQsIHsgbGFiZWwsIHZhbHVlLCBpZCB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaWRzLmluY2x1ZGVzKGlkKSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIGBJdGVtIHdpdGggaWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgIGlkXG4gICAgICAgICAgICAgICAgKX0gbm90IGZvdW5kIGJ5IGdldEl0ZW1zQnlJZHMoKS5gLFxuICAgICAgICAgICAgICAgIGRhdGFzb3VyY2VcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdW5mZXRjaGFibGUucHVzaChpZCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBuZXdNaXNzaW5nLnB1c2goaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogbnVsbCxcbiAgICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IG5ld01pc3NpbmcsXG4gICAgICAgICAgICBzZWxlY3RlZE1hcDogbmV3U2VsZWN0ZWQsXG4gICAgICAgICAgICBfdW5mZXRjaGFibGVJZHM6IFsuLi51bmZldGNoYWJsZV0sXG4gICAgICAgICAgICBpbml0aWFsaXplZDogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLl9sb2FkTWlzc2luZ1NlbGVjdGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXN1Yi5jbG9zZWQpIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogeyBpZHMsIHN1YnNjcmlwdGlvbjogc3ViIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZWxlY3RTaW5nbGUoaWQ6IFRJZCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkKFtpZF0pO1xuICAgICAgfSxcbiAgICAgIHRvZ2dsZShpZDogVElkKSB7XG4gICAgICAgIGNvbnN0IG9sZE1hcCA9IHVudHJhY2tlZChzdG9yZS5zZWxlY3RlZE1hcCk7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk7XG4gICAgICAgIGlmICghZGF0YXNvdXJjZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBpcyB1bmRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1bmZldGNoYWJsZUlkcyA9IHVudHJhY2tlZChzdG9yZS5fdW5mZXRjaGFibGVJZHMpO1xuICAgICAgICBjb25zdCBtaXNzaW5nU2VsZWN0ZWRJZHMgPSB1bnRyYWNrZWQoc3RvcmUuX21pc3NpbmdTZWxlY3RlZCk7XG4gICAgICAgIGlmICh1bmZldGNoYWJsZUlkcy5pbmNsdWRlcyhpZCkgfHwgbWlzc2luZ1NlbGVjdGVkSWRzLmluY2x1ZGVzKGlkKSkge1xuICAgICAgICAgIGNvbnN0IG5ld1VuZmV0Y2hhYmxlSWRzID0gdW5mZXRjaGFibGVJZHMuZmlsdGVyKFxuICAgICAgICAgICAgKHVuZmV0Y2hhYmxlSWQpID0+IHVuZmV0Y2hhYmxlSWQgIT09IGlkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBuZXdNaXNzaW5nU2VsZWN0ZWQgPSBtaXNzaW5nU2VsZWN0ZWRJZHMuZmlsdGVyKFxuICAgICAgICAgICAgKG1pc3NpbmdJZCkgPT4gbWlzc2luZ0lkICE9PSBpZFxuICAgICAgICAgICk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgX3VuZmV0Y2hhYmxlSWRzOiBuZXdVbmZldGNoYWJsZUlkcyxcbiAgICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IG5ld01pc3NpbmdTZWxlY3RlZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAobmV3TWlzc2luZ1NlbGVjdGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fY2FuY2VsRmV0Y2hNaXNzaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAob2xkTWFwLmhhcyhpZCkpIHtcbiAgICAgICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG9sZE1hcCk7XG4gICAgICAgICAgbmV3TWFwLmRlbGV0ZShpZCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzZWxlY3RlZE1hcDogbmV3TWFwIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB1bnRyYWNrZWQoc3RvcmUub3B0aW9ucykuZmluZCgoaXQpID0+IGl0LmlkID09PSBpZCk7XG4gICAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbaWRdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChvbGRNYXApO1xuICAgICAgICAgICAgbmV3TWFwLnNldChpZCwgaXRlbSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHNlbGVjdGVkTWFwOiBuZXdNYXAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FuY2VsRmV0Y2goKSB7XG4gICAgICAgIHVudHJhY2tlZChzdG9yZS5fZmV0Y2hSZXF1ZXN0KT8uc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBfZmV0Y2hSZXF1ZXN0OiBudWxsLFxuICAgICAgICAgIGZldGNoRXJyb3I6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGlzU2VsZWN0ZWQoaXRlbTogVCkge1xuICAgICAgICBjb25zdCBkYXRhc291cmNlID0gdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpO1xuICAgICAgICBpZiAoIWRhdGFzb3VyY2UpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaWQgPSBkYXRhc291cmNlLmdldElkKGl0ZW0pO1xuICAgICAgICByZXR1cm4gdW50cmFja2VkKHN0b3JlLnNlbGVjdGVkTWFwKS5oYXMoaWQpO1xuICAgICAgfSxcbiAgICAgIHNldFBhZ2VTaXplKHNpemU6IG51bWJlcikge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHBhZ2VTaXplOiBzaXplIH0pO1xuICAgICAgfSxcbiAgICAgIF9nZXRMYWJlbFZhbHVlSWRzKGl0ZW1zOiBUW10pOiBSZHRMYWJlbFZhbHVlSWQ8VCwgVElkPltdIHtcbiAgICAgICAgY29uc3QgZGF0YXNvdXJjZSA9IHVudHJhY2tlZChzdG9yZS5kYXRhc291cmNlKTtcbiAgICAgICAgaWYgKCFkYXRhc291cmNlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhc291cmNlIG5vdCBzZXQhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZGF0YXNvdXJjZS5nZXRMYWJlbChpdGVtKSxcbiAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgICBpZDogZGF0YXNvdXJjZS5nZXRJZChpdGVtKSxcbiAgICAgICAgfSkpO1xuICAgICAgfSxcbiAgICB9KSlcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IFJkdFNlbGVjdFN0b3JlID0gZ2V0UmR0U2VsZWN0U3RvcmU8YW55LCBhbnk+KCk7XG5leHBvcnQgdHlwZSBSZHRTZWxlY3RTdG9yZTxUID0gYW55LCBUSWQgPSBudW1iZXI+ID0gSW5zdGFuY2VUeXBlPFxuICBSZXR1cm5UeXBlPHR5cGVvZiBnZXRSZHRTZWxlY3RTdG9yZTxULCBUSWQ+PlxuPjtcblxuZnVuY3Rpb24gZ2V0UmR0U2VsZWN0RXJyb3IoZXJyb3I6IGFueSkge1xuICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlcnJvcjtcbiAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIGVycm9yLm1lc3NhZ2U7XG4gIH0gZWxzZSBpZiAoZXJyb3IgJiYgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiAnbWVzc2FnZScgaW4gZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3IubWVzc2FnZTtcbiAgfVxuICByZXR1cm4gJ1JEVF9TRUxFQ1RfRVJST1InO1xufVxuIl19","import { computed, Directive, effect, inject, input } from '@angular/core';\nimport { RdtOfflineSelectDatasource } from '../datasource';\nimport { RdtSelectStore } from '../state';\nimport * as i0 from \"@angular/core\";\nexport class RdtSelectOfflineDatasourceProviderDirective {\n store = inject(RdtSelectStore);\n optionsInput = input.required({\n alias: 'options',\n });\n options = computed(() => this.parseOptions(this.optionsInput()));\n parseOptions(options) {\n if (!options || options.length === 0) {\n return [];\n }\n if (typeof options[0] === 'object' && options[0]) {\n return options;\n }\n else {\n return options.map((value) => ({\n label: String(value),\n value: value,\n }));\n }\n }\n getDatasourceClass() {\n return RdtOfflineSelectDatasource;\n }\n optionsEffect = effect(() => this.setDatasource());\n setDatasource() {\n const options = this.options();\n const Datasource = this.getDatasourceClass();\n this.store.setDatasource(new Datasource(options));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOfflineDatasourceProviderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtSelectOfflineDatasourceProviderDirective, isStandalone: true, inputs: { optionsInput: { classPropertyName: \"optionsInput\", publicName: \"options\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOfflineDatasourceProviderDirective, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1vZmZsaW5lLWRhdGFzb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9kaXJlY3RpdmVzL3JkdC1zZWxlY3Qtb2ZmbGluZS1kYXRhc291cmNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFJMUMsTUFBTSxPQUFnQiwyQ0FBMkM7SUFDdEQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUUvQixZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FFcEM7UUFDQSxLQUFLLEVBQUUsU0FBUztLQUNqQixDQUFDLENBQUM7SUFDTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVsRSxZQUFZLENBQ2xCLE9BQXVEO1FBRXZELElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLE9BQWtDLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFRLE9BQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDcEIsS0FBSyxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE9BQU8sMEJBQTBCLENBQUM7SUFDcEMsQ0FBQztJQUVnQixhQUFhLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBRTVELGFBQWE7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzt1R0FwQ21CLDJDQUEyQzsyRkFBM0MsMkNBQTJDOzsyRkFBM0MsMkNBQTJDO2tCQURoRSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHRPZmZsaW5lU2VsZWN0RGF0YXNvdXJjZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UnO1xuaW1wb3J0IHsgUmR0U2VsZWN0U3RvcmUgfSBmcm9tICcuLi9zdGF0ZSc7XG5pbXBvcnQgeyBSZHRMYWJlbFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvbGFiZWwtdmFsdWUtaWQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRTZWxlY3RPZmZsaW5lRGF0YXNvdXJjZVByb3ZpZGVyRGlyZWN0aXZlPFRWYWx1ZT4ge1xuICByZWFkb25seSBzdG9yZSA9IGluamVjdChSZHRTZWxlY3RTdG9yZSk7XG5cbiAgcmVhZG9ubHkgb3B0aW9uc0lucHV0ID0gaW5wdXQucmVxdWlyZWQ8XG4gICAgUmR0TGFiZWxWYWx1ZTxUVmFsdWU+W10gfCBUVmFsdWVbXSB8IHVuZGVmaW5lZFxuICA+KHtcbiAgICBhbGlhczogJ29wdGlvbnMnLFxuICB9KTtcbiAgcmVhZG9ubHkgb3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGFyc2VPcHRpb25zKHRoaXMub3B0aW9uc0lucHV0KCkpKTtcblxuICBwcml2YXRlIHBhcnNlT3B0aW9ucyhcbiAgICBvcHRpb25zOiBSZHRMYWJlbFZhbHVlPFRWYWx1ZT5bXSB8IFRWYWx1ZVtdIHwgdW5kZWZpbmVkXG4gICk6IFJkdExhYmVsVmFsdWU8VFZhbHVlPltdIHtcbiAgICBpZiAoIW9wdGlvbnMgfHwgb3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zWzBdID09PSAnb2JqZWN0JyAmJiBvcHRpb25zWzBdKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucyBhcyBSZHRMYWJlbFZhbHVlPFRWYWx1ZT5bXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChvcHRpb25zIGFzIFRWYWx1ZVtdKS5tYXAoKHZhbHVlKSA9PiAoe1xuICAgICAgICBsYWJlbDogU3RyaW5nKHZhbHVlKSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRhc291cmNlQ2xhc3MoKTogdHlwZW9mIFJkdE9mZmxpbmVTZWxlY3REYXRhc291cmNlPFRWYWx1ZT4ge1xuICAgIHJldHVybiBSZHRPZmZsaW5lU2VsZWN0RGF0YXNvdXJjZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uc0VmZmVjdCA9IGVmZmVjdCgoKSA9PiB0aGlzLnNldERhdGFzb3VyY2UoKSk7XG5cbiAgcHJpdmF0ZSBzZXREYXRhc291cmNlKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcbiAgICBjb25zdCBEYXRhc291cmNlID0gdGhpcy5nZXREYXRhc291cmNlQ2xhc3MoKTtcbiAgICB0aGlzLnN0b3JlLnNldERhdGFzb3VyY2UobmV3IERhdGFzb3VyY2Uob3B0aW9ucykpO1xuICB9XG59XG4iXX0=","import { Directive, ElementRef, inject, input, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class RdtSelectOptionDirective {\n elementRef = inject(ElementRef);\n value = input.required({ alias: 'rdtSelectOption' });\n _selected = signal(false);\n set selected(value) {\n this._selected.set(value);\n }\n get selected() {\n return this._selected();\n }\n _disabled = signal(false);\n set disabled(value) {\n this._disabled.set(value);\n }\n get disabled() {\n return this._disabled();\n }\n setActiveStyles() {\n this.selected = true;\n }\n setInactiveStyles() {\n this.selected = false;\n }\n scrollIntoElement() {\n this.elementRef.nativeElement.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtSelectOptionDirective, isStandalone: true, selector: \"[rdtSelectOption]\", inputs: { value: { classPropertyName: \"value\", publicName: \"rdtSelectOption\", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { \"class.rdt-option-selected\": \"_selected()\", \"class.rdt-option-disabled\": \"_disabled()\" }, classAttribute: \"rdt-option\" }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOptionDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtSelectOption]',\n host: {\n class: 'rdt-option',\n '[class.rdt-option-selected]': '_selected()',\n '[class.rdt-option-disabled]': '_disabled()',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9kaXJlY3RpdmVzL3JkdC1zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVN0UsTUFBTSxPQUFPLHdCQUF3QjtJQUNsQixVQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztJQUNqRSxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFFbkQsU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRWtCLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQztZQUMzQyxLQUFLLEVBQUUsU0FBUztZQUNoQixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO3VHQWpDVSx3QkFBd0I7MkZBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFScEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLFlBQVk7d0JBQ25CLDZCQUE2QixFQUFFLGFBQWE7d0JBQzVDLDZCQUE2QixFQUFFLGFBQWE7cUJBQzdDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGlnaGxpZ2h0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyZHRTZWxlY3RPcHRpb25dJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAncmR0LW9wdGlvbicsXG4gICAgJ1tjbGFzcy5yZHQtb3B0aW9uLXNlbGVjdGVkXSc6ICdfc2VsZWN0ZWQoKScsXG4gICAgJ1tjbGFzcy5yZHQtb3B0aW9uLWRpc2FibGVkXSc6ICdfZGlzYWJsZWQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFJkdFNlbGVjdE9wdGlvbkRpcmVjdGl2ZTxUVmFsdWU+IGltcGxlbWVudHMgSGlnaGxpZ2h0YWJsZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5IHZhbHVlID0gaW5wdXQucmVxdWlyZWQ8VFZhbHVlPih7IGFsaWFzOiAncmR0U2VsZWN0T3B0aW9uJyB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3NlbGVjdGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWQuc2V0KHZhbHVlKTtcbiAgfVxuICBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2Rpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQuc2V0KHZhbHVlKTtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkKCk7XG4gIH1cblxuICBzZXRBY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRydWU7XG4gIH1cblxuICBzZXRJbmFjdGl2ZVN0eWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBzY3JvbGxJbnRvRWxlbWVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const RDT_SELECT_BASE_PROVIDER = new InjectionToken('RdtSelect');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1iYXNlLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9wcm92aWRlcnMvcmR0LXNlbGVjdC1iYXNlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBRXhELFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEJhc2VTZWxlY3RDb21tb25Db21wb25lbnQgfSBmcm9tICcuLi9yZHQtYmFzZS1zZWxlY3QuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IFJEVF9TRUxFQ1RfQkFTRV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgVHlwZTxSZHRCYXNlU2VsZWN0Q29tbW9uQ29tcG9uZW50PGFueSwgYW55LCBhbnk+PlxuPignUmR0U2VsZWN0Jyk7XG4iXX0=","import { Directive, effect, forwardRef, inject } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RdtFormInputOutletDirective } from '../../../base';\nimport { RdtOfflineSelectDatasource } from '../datasource';\nimport { RDT_SELECT_BASE_PROVIDER } from '../providers/rdt-select-base-provider';\nimport * as i0 from \"@angular/core\";\nexport class RdtSelectOutletDirective extends RdtFormInputOutletDirective {\n componentClass = inject(RDT_SELECT_BASE_PROVIDER);\n constructor() {\n super();\n this.initComponentRef();\n effect(() => {\n const inputs = this.inputs();\n if (inputs?.options && this.componentRef) {\n const instance = this.componentRef.instance;\n const store = instance?.store;\n if (store) {\n const datasource = new RdtOfflineSelectDatasource(inputs.options);\n store.setDatasource(datasource);\n if (!store.initialized()) {\n store.init(null);\n }\n }\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtSelectOutletDirective, isStandalone: true, selector: \"[rdtSelectOutlet]\", providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdtSelectOutletDirective),\n multi: true,\n },\n ], exportAs: [\"rdtSelectOutlet\"], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSelectOutletDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdtSelectOutlet]',\n standalone: true,\n exportAs: 'rdtSelectOutlet',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RdtSelectOutletDirective),\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1vdXRsZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9kaXJlY3RpdmVzL3JkdC1zZWxlY3Qtb3V0bGV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBZWpGLE1BQU0sT0FBTyx3QkFHWCxTQUFRLDJCQUF1RDtJQUN0RCxjQUFjLEdBQUcsTUFBTSxDQUM5Qix3QkFBd0IsQ0FDSixDQUFDO0lBRXZCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBUyxDQUFDO1lBQ3BDLElBQUksTUFBTSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBZSxDQUFDO2dCQUNuRCxNQUFNLEtBQUssR0FBRyxRQUFRLEVBQUUsS0FBSyxDQUFDO2dCQUM5QixJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLE1BQU0sVUFBVSxHQUFHLElBQUksMEJBQTBCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNsRSxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7d0JBQ3pCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ25CLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBekJVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLGdFQVJ4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3ZELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7MkZBRVUsd0JBQXdCO2tCQVpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUM7NEJBQ3ZELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIGZvcndhcmRSZWYsIGluamVjdCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZHRGb3JtSW5wdXRPdXRsZXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9iYXNlJztcbmltcG9ydCB7IFJkdE9mZmxpbmVTZWxlY3REYXRhc291cmNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBSZHRTZWxlY3RJbnQgfSBmcm9tICcuLi9tb2RlbC9yZHQtc2VsZWN0LWludCc7XG5pbXBvcnQgeyBSRFRfU0VMRUNUX0JBU0VfUFJPVklERVIgfSBmcm9tICcuLi9wcm92aWRlcnMvcmR0LXNlbGVjdC1iYXNlLXByb3ZpZGVyJztcbmltcG9ydCB7IFJkdEJhc2VTZWxlY3RDb21tb25Db21wb25lbnQgfSBmcm9tICcuLi9yZHQtYmFzZS1zZWxlY3QuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3JkdFNlbGVjdE91dGxldF0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ3JkdFNlbGVjdE91dGxldCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmR0U2VsZWN0T3V0bGV0RGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJkdFNlbGVjdE91dGxldERpcmVjdGl2ZTxcbiAgVFNlbGVjdENvbXAgZXh0ZW5kcyBSZHRCYXNlU2VsZWN0Q29tbW9uQ29tcG9uZW50PGFueSwgYW55LCBhbnk+LFxuICBUU2VsZWN0SW5wdXRzIGV4dGVuZHMgUmR0U2VsZWN0SW50ID0gUmR0U2VsZWN0SW50XG4+IGV4dGVuZHMgUmR0Rm9ybUlucHV0T3V0bGV0RGlyZWN0aXZlPFRTZWxlY3RDb21wLCBUU2VsZWN0SW5wdXRzPiB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudENsYXNzID0gaW5qZWN0KFxuICAgIFJEVF9TRUxFQ1RfQkFTRV9QUk9WSURFUlxuICApIGFzIFR5cGU8VFNlbGVjdENvbXA+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Q29tcG9uZW50UmVmKCk7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuaW5wdXRzKCkgYXMgYW55O1xuICAgICAgaWYgKGlucHV0cz8ub3B0aW9ucyAmJiB0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIGFueTtcbiAgICAgICAgY29uc3Qgc3RvcmUgPSBpbnN0YW5jZT8uc3RvcmU7XG4gICAgICAgIGlmIChzdG9yZSkge1xuICAgICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSBuZXcgUmR0T2ZmbGluZVNlbGVjdERhdGFzb3VyY2UoaW5wdXRzLm9wdGlvbnMpO1xuICAgICAgICAgIHN0b3JlLnNldERhdGFzb3VyY2UoZGF0YXNvdXJjZSk7XG4gICAgICAgICAgaWYgKCFzdG9yZS5pbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICBzdG9yZS5pbml0KG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { computed, Directive, effect, inject, input, linkedSignal, untracked, } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal, } from '@angular/core/rxjs-interop';\nimport { FormControl } from '@angular/forms';\nimport { RdtObjectUtils } from '@ngrdt/utils';\nimport { isEqual } from 'lodash-es';\nimport { debounceTime, distinctUntilChanged, switchMap } from 'rxjs';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { RdtSelectStore } from './state/rdt-select-store';\nimport * as i0 from \"@angular/core\";\nexport class RdtBaseSelectCommonComponent extends RdtBaseFormInputComponent {\n manualInitInput = input(false, {\n alias: 'manualInit',\n });\n manualInit = linkedSignal(() => this.manualInitInput());\n datasourceInput = input(null, {\n alias: 'datasource',\n });\n store = inject(RdtSelectStore);\n visibleOptions = this.store.visibleOptions;\n queryValidatorFnInput = input(null, {\n alias: 'inputValidator',\n });\n queryValidatorFn = linkedSignal(() => this.queryValidatorFnInput());\n queryValidatorEffect = effect(() => {\n const validator = this.queryValidatorFn();\n if (validator) {\n this.inputCtrl.setValidators(validator);\n }\n else {\n this.inputCtrl.clearValidators();\n }\n });\n inputCtrl = new FormControl(null);\n inputCtrlEvents = toSignal(this.inputCtrl.events);\n inputErrors = computed(() => {\n this.inputCtrlEvents();\n if (this.inputCtrl.touched && this.inputCtrl.invalid) {\n return this.inputCtrl.errors;\n }\n else {\n return null;\n }\n });\n debounceTimeInput = input(300, {\n alias: 'debounce',\n });\n debounceTime = linkedSignal(() => this.debounceTimeInput());\n debouncedInput$ = toObservable(this.debounceTime).pipe(switchMap((time) => this.inputCtrl.valueChanges.pipe(debounceTime(time))), distinctUntilChanged());\n debouncedInput = toSignal(this.debouncedInput$, {\n initialValue: null,\n });\n pageSizeInput = input(20, {\n alias: 'pageSize',\n });\n pageSizeEffect = effect(() => this.store.setPageSize(this.pageSizeInput()));\n loading = computed(() => {\n return (this.store.loading() ||\n this.loadingInput() ||\n RdtObjectUtils.someValuesTrue(this.loadingMap()));\n });\n datasourceEffect = effect(() => {\n const datasource = this.datasourceInput();\n if (datasource) {\n this.store.setDatasource(datasource);\n }\n });\n ngOnInit() {\n super.ngOnInit();\n const control = this.control();\n if (control && control.value !== null) {\n const arr = Array.isArray(control.value)\n ? control.value\n : [control.value];\n this.store.init(arr);\n }\n else if (!this.manualInit()) {\n this.store.init(null);\n }\n this.debouncedInput$\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => this.handleInput(value));\n }\n handleInput(value) {\n this.store.setQuery(value);\n }\n storeValueChangeEffect = effect(() => {\n const selectedMap = this.store.selectedMap();\n const values = Array.from(selectedMap.keys());\n const internalValue = untracked(this.internalValue);\n if (!untracked(this.store.datasource) ||\n !untracked(this.store.initialized)) {\n return;\n }\n if (values.length > 0) {\n const arrayInternalValue = Array.isArray(internalValue)\n ? internalValue\n : internalValue !== null\n ? [internalValue]\n : [];\n if (!isEqual(arrayInternalValue, values)) {\n this.onInternalValueChange(values);\n }\n }\n else if (untracked(this.touched) || untracked(this.focused)) {\n this.onInternalValueChange(null);\n }\n });\n externalValueEffect = effect(() => {\n const externalValue = this.externalValue();\n const selectedMap = untracked(this.store.selectedMap);\n const values = Array.from(selectedMap.keys());\n if (externalValue !== null) {\n const newExternalValue = Array.isArray(externalValue)\n ? externalValue\n : [externalValue];\n if (!isEqual(newExternalValue, values)) {\n this.store.setSelected(newExternalValue);\n }\n }\n else {\n this.store.unselectAll();\n }\n });\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtBaseSelectCommonComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtBaseSelectCommonComponent, isStandalone: true, inputs: { manualInitInput: { classPropertyName: \"manualInitInput\", publicName: \"manualInit\", isSignal: true, isRequired: false, transformFunction: null }, datasourceInput: { classPropertyName: \"datasourceInput\", publicName: \"datasource\", isSignal: true, isRequired: false, transformFunction: null }, queryValidatorFnInput: { classPropertyName: \"queryValidatorFnInput\", publicName: \"inputValidator\", isSignal: true, isRequired: false, transformFunction: null }, debounceTimeInput: { classPropertyName: \"debounceTimeInput\", publicName: \"debounce\", isSignal: true, isRequired: false, transformFunction: null }, pageSizeInput: { classPropertyName: \"pageSizeInput\", publicName: \"pageSize\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtBaseSelectCommonComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3QvcmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFFBQVEsR0FDVCxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUcxRCxNQUFNLE9BQWdCLDRCQUlwQixTQUFRLHlCQUFzQztJQUNyQyxlQUFlLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRTtRQUN0QyxLQUFLLEVBQUUsWUFBWTtLQUNwQixDQUFDLENBQUM7SUFDTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELGVBQWUsR0FBRyxLQUFLLENBQzlCLElBQUksRUFDSjtRQUNFLEtBQUssRUFBRSxZQUFZO0tBQ3BCLENBQ0YsQ0FBQztJQUNPLEtBQUssR0FBRyxN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LGFBQWEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMzQixNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO2dCQUNuRCxDQUFDLENBQUMsYUFBYTtnQkFDZixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVwQixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGdCQUF5QixDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7dUdBeElpQiw0QkFBNEI7MkZBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEakQsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgdGFrZVVudGlsRGVzdHJveWVkLFxuICB0b09ic2VydmFibGUsXG4gIHRvU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgUmR0T2JqZWN0VXRpbHMgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJkdFNlbGVjdERhdGFzb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UvcmR0LXNlbGVjdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdFNlbGVjdFN0b3JlIH0gZnJvbSAnLi9zdGF0ZS9yZHQtc2VsZWN0LXN0b3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0QmFzZVNlbGVjdENvbW1vbkNvbXBvbmVudDxcbiAgVEl0ZW0sXG4gIFRJZCxcbiAgVE91dCBleHRlbmRzIFRJZCB8IFRJZFtdXG4+IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxUT3V0LCBUSWRbXT4ge1xuICByZWFkb25seSBtYW51YWxJbml0SW5wdXQgPSBpbnB1dChmYWxzZSwge1xuICAgIGFsaWFzOiAnbWFudWFsSW5pdCcsXG4gIH0pO1xuICByZWFkb25seSBtYW51YWxJbml0ID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubWFudWFsSW5pdElucHV0KCkpO1xuICByZWFkb25seSBkYXRhc291cmNlSW5wdXQgPSBpbnB1dDxSZHRTZWxlY3REYXRhc291cmNlPFRJdGVtLCBUSWQ+IHwgbnVsbD4oXG4gICAgbnVsbCxcbiAgICB7XG4gICAgICBhbGlhczogJ2RhdGFzb3VyY2UnLFxuICAgIH1cbiAgKTtcbiAgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoUmR0U2VsZWN0U3RvcmUpIGFzIFJkdFNlbGVjdFN0b3JlPFRJdGVtLCBUSWQ+O1xuICByZWFkb25seSB2aXNpYmxlT3B0aW9ucyA9IHRoaXMuc3RvcmUudmlzaWJsZU9wdGlvbnM7XG4gIHJlYWRvbmx5IHF1ZXJ5VmFsaWRhdG9yRm5JbnB1dCA9IGlucHV0PE51bGxhYmxlPFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXT4+KFxuICAgIG51bGwsXG4gICAge1xuICAgICAgYWxpYXM6ICdpbnB1dFZhbGlkYXRvcicsXG4gICAgfVxuICApO1xuICByZWFkb25seSBxdWVyeVZhbGlkYXRvckZuID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMucXVlcnlWYWxpZGF0b3JGbklucHV0KCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5VmFsaWRhdG9yRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLnF1ZXJ5VmFsaWRhdG9yRm4oKTtcbiAgICBpZiAodmFsaWRhdG9yKSB7XG4gICAgICB0aGlzLmlucHV0Q3RybC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXRDdHJsLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgIH1cbiAgfSk7XG4gIHJlYWRvbmx5IGlucHV0Q3RybCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnB1dEN0cmxFdmVudHMgPSB0b1NpZ25hbCh0aGlzLmlucHV0Q3RybC5ldmVudHMpO1xuICByZWFkb25seSBpbnB1dEVycm9ycyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmlucHV0Q3RybEV2ZW50cygpO1xuICAgIGlmICh0aGlzLmlucHV0Q3RybC50b3VjaGVkICYmIHRoaXMuaW5wdXRDdHJsLmludmFsaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmlucHV0Q3RybC5lcnJvcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSk7XG4gIHJlYWRvbmx5IGRlYm91bmNlVGltZUlucHV0ID0gaW5wdXQ8bnVtYmVyPigzMDAsIHtcbiAgICBhbGlhczogJ2RlYm91bmNlJyxcbiAgfSk7XG4gIHJlYWRvbmx5IGRlYm91bmNlVGltZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmRlYm91bmNlVGltZUlucHV0KCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlYm91bmNlZElucHV0JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRlYm91bmNlVGltZSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKHRpbWUpID0+IHRoaXMuaW5wdXRDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aW1lKSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcbiAgcmVhZG9ubHkgZGVib3VuY2VkSW5wdXQgPSB0b1NpZ25hbCh0aGlzLmRlYm91bmNlZElucHV0JCwge1xuICAgIGluaXRpYWxWYWx1ZTogbnVsbCxcbiAgfSk7XG4gIHJlYWRvbmx5IHBhZ2VTaXplSW5wdXQgPSBpbnB1dCgyMCwge1xuICAgIGFsaWFzOiAncGFnZVNpemUnLFxuICB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWdlU2l6ZUVmZmVjdCA9IGVmZmVjdCgoKSA9PlxuICAgIHRoaXMuc3RvcmUuc2V0UGFnZVNpemUodGhpcy5wYWdlU2l6ZUlucHV0KCkpXG4gICk7XG5cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgbG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zdG9yZS5sb2FkaW5nKCkgfHxcbiAgICAgIHRoaXMubG9hZGluZ0lucHV0KCkgfHxcbiAgICAgIFJkdE9iamVjdFV0aWxzLnNvbWVWYWx1ZXNUcnVlKHRoaXMubG9hZGluZ01hcCgpKVxuICAgICk7XG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YXNvdXJjZUVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZGF0YXNvdXJjZSA9IHRoaXMuZGF0YXNvdXJjZUlucHV0KCk7XG4gICAgaWYgKGRhdGFzb3VyY2UpIHtcbiAgICAgIHRoaXMuc3RvcmUuc2V0RGF0YXNvdXJjZShkYXRhc291cmNlKTtcbiAgICB9XG4gIH0pO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpO1xuICAgIGlmIChjb250cm9sICYmIGNvbnRyb2wudmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGFyciA9IEFycmF5LmlzQXJyYXkoY29udHJvbC52YWx1ZSlcbiAgICAgICAgPyBjb250cm9sLnZhbHVlXG4gICAgICAgIDogW2NvbnRyb2wudmFsdWVdO1xuICAgICAgdGhpcy5zdG9yZS5pbml0KGFyciBhcyBUSWRbXSk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5tYW51YWxJbml0KCkpIHtcbiAgICAgIHRoaXMuc3RvcmUuaW5pdChudWxsKTtcbiAgICB9XG4gICAgdGhpcy5kZWJvdW5jZWRJbnB1dCRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuaGFuZGxlSW5wdXQodmFsdWUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVJbnB1dCh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuc2V0UXVlcnkodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlVmFsdWVDaGFuZ2VFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkTWFwID0gdGhpcy5zdG9yZS5zZWxlY3RlZE1hcCgpO1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmZyb20oc2VsZWN0ZWRNYXAua2V5cygpKTtcbiAgICBjb25zdCBpbnRlcm5hbFZhbHVlID0gdW50cmFja2VkKHRoaXMuaW50ZXJuYWxWYWx1ZSk7XG5cbiAgICBpZiAoXG4gICAgICAhdW50cmFja2VkKHRoaXMuc3RvcmUuZGF0YXNvdXJjZSkgfHxcbiAgICAgICF1bnRyYWNrZWQodGhpcy5zdG9yZS5pbml0aWFsaXplZClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBhcnJheUludGVybmFsVmFsdWUgPSBBcnJheS5pc0FycmF5KGludGVybmFsVmFsdWUpXG4gICAgICAgID8gaW50ZXJuYWxWYWx1ZVxuICAgICAgICA6IGludGVybmFsVmFsdWUgIT09IG51bGxcbiAgICAgICAgPyBbaW50ZXJuYWxWYWx1ZV1cbiAgICAgICAgOiBbXTtcbiAgICAgIGlmICghaXNFcXVhbChhcnJheUludGVybmFsVmFsdWUsIHZhbHVlcykpIHtcbiAgICAgICAgdGhpcy5vbkludGVybmFsVmFsdWVDaGFuZ2UodmFsdWVzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHVudHJhY2tlZCh0aGlzLnRvdWNoZWQpIHx8IHVudHJhY2tlZCh0aGlzLmZvY3VzZWQpKSB7XG4gICAgICB0aGlzLm9uSW50ZXJuYWxWYWx1ZUNoYW5nZShudWxsKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBleHRlcm5hbFZhbHVlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBleHRlcm5hbFZhbHVlID0gdGhpcy5leHRlcm5hbFZhbHVlKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRNYXAgPSB1bnRyYWNrZWQodGhpcy5zdG9yZS5zZWxlY3RlZE1hcCk7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuZnJvbShzZWxlY3RlZE1hcC5rZXlzKCkpO1xuXG4gICAgaWYgKGV4dGVybmFsVmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5ld0V4dGVybmFsVmFsdWUgPSBBcnJheS5pc0FycmF5KGV4dGVybmFsVmFsdWUpXG4gICAgICAgID8gZXh0ZXJuYWxWYWx1ZVxuICAgICAgICA6IFtleHRlcm5hbFZhbHVlXTtcblxuICAgICAgaWYgKCFpc0VxdWFsKG5ld0V4dGVybmFsVmFsdWUsIHZhbHVlcykpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRTZWxlY3RlZChuZXdFeHRlcm5hbFZhbHVlIGFzIFRJZFtdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yZS51bnNlbGVjdEFsbCgpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=","import { computed, Directive } from '@angular/core';\nimport { RdtBaseSelectCommonComponent } from './rdt-base-select.component';\nimport * as i0 from \"@angular/core\";\nexport class RdtMultiSelectComponent extends RdtBaseSelectCommonComponent {\n selected = computed(() => {\n const selected = this.store.selectedItems();\n return selected.length > 0 ? selected : null;\n });\n isEmpty(value) {\n return value === null || value.length === 0;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtMultiSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtMultiSelectComponent, isStandalone: true, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtMultiSelectComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LW11bHRpLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvc2VsZWN0L3JkdC1tdWx0aS1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUczRSxNQUFNLE9BQWdCLHVCQUdwQixTQUFRLDRCQUErQztJQUM5QyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzVDLE9BQU8sUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0lBRWdCLE9BQU8sQ0FBQyxLQUFZO1FBQ3JDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO3VHQVhtQix1QkFBdUI7MkZBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFENUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEJhc2VTZWxlY3RDb21tb25Db21wb25lbnQgfSBmcm9tICcuL3JkdC1iYXNlLXNlbGVjdC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRNdWx0aVNlbGVjdENvbXBvbmVudDxcbiAgVEl0ZW0sXG4gIFRJZFxuPiBleHRlbmRzIFJkdEJhc2VTZWxlY3RDb21tb25Db21wb25lbnQ8VEl0ZW0sIFRJZCwgVElkW10+IHtcbiAgcmVhZG9ubHkgc2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnN0b3JlLnNlbGVjdGVkSXRlbXMoKTtcbiAgICByZXR1cm4gc2VsZWN0ZWQubGVuZ3RoID4gMCA/IHNlbGVjdGVkIDogbnVsbDtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IFRJZFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxufVxuIl19","import { computed, Directive } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { RdtBaseSelectCommonComponent } from './rdt-base-select.component';\nimport * as i0 from \"@angular/core\";\nexport class RdtSingleSelectComponent extends RdtBaseSelectCommonComponent {\n selected = computed(() => {\n const items = this.store.selectedItems();\n return items.length > 0 ? items[0] : null;\n });\n isEmpty(value) {\n return value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSingleSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.0\", type: RdtSingleSelectComponent, isStandalone: true, providers: [\n {\n provide: RdtBaseFormInputComponent,\n useValue: RdtSingleSelectComponent,\n },\n ], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtSingleSelectComponent, decorators: [{\n type: Directive,\n args: [{\n providers: [\n {\n provide: RdtBaseFormInputComponent,\n useValue: RdtSingleSelectComponent,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNpbmdsZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3NlbGVjdC9yZHQtc2luZ2xlLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBVTNFLE1BQU0sT0FBZ0Isd0JBR3BCLFNBQVEsNEJBQTZDO0lBQzVDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFFZ0IsT0FBTyxDQUFDLEtBQVU7UUFDbkMsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3hCLENBQUM7dUdBWG1CLHdCQUF3QjsyRkFBeEIsd0JBQXdCLGlDQVBqQztZQUNUO2dCQUNFLE9BQU8sRUFBRSx5QkFBeUI7Z0JBQ2xDLFFBQVEsRUFBRSx3QkFBd0I7YUFDbkM7U0FDRjs7MkZBRW1CLHdCQUF3QjtrQkFSN0MsU0FBUzttQkFBQztvQkFDVCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsUUFBUSwwQkFBMEI7eUJBQ25DO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmR0QmFzZVNlbGVjdENvbW1vbkNvbXBvbmVudCB9IGZyb20gJy4vcmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50LFxuICAgICAgdXNlVmFsdWU6IFJkdFNpbmdsZVNlbGVjdENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRTaW5nbGVTZWxlY3RDb21wb25lbnQ8XG4gIFRJdGVtLFxuICBUSWRcbj4gZXh0ZW5kcyBSZHRCYXNlU2VsZWN0Q29tbW9uQ29tcG9uZW50PFRJdGVtLCBUSWQsIFRJZD4ge1xuICByZWFkb25seSBzZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuc3RvcmUuc2VsZWN0ZWRJdGVtcygpO1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPiAwID8gaXRlbXNbMF0gOiBudWxsO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNFbXB0eSh2YWx1ZTogVElkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICB9XG59XG4iXX0=","import { Directive, input } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined, nullToUndefinedNumeric, } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtTextAreaComponent extends RdtBaseFormInputComponent {\n autocomplete = input(undefined, {\n transform: nullToUndefined,\n });\n cols = input(undefined, { transform: nullToUndefinedNumeric });\n rows = input(undefined, { transform: nullToUndefinedNumeric });\n wrap = input(undefined, { transform: nullToUndefined });\n isEmpty(value) {\n return value === '' || value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextAreaComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtTextAreaComponent, isStandalone: true, inputs: { autocomplete: { classPropertyName: \"autocomplete\", publicName: \"autocomplete\", isSignal: true, isRequired: false, transformFunction: null }, cols: { classPropertyName: \"cols\", publicName: \"cols\", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: \"rows\", publicName: \"rows\", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: \"wrap\", publicName: \"wrap\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextAreaComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRleHQtYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvdGV4dC1hcmVhL3JkdC10ZXh0LWFyZWEuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysc0JBQXNCLEdBRXZCLE1BQU0sYUFBYSxDQUFDOztBQUdyQixNQUFNLE9BQWdCLG9CQUFxQixTQUFRLHlCQUdsRDtJQUNVLFlBQVksR0FBRyxLQUFLLENBRzNCLFNBQVMsRUFBRTtRQUNYLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUMsQ0FBQztJQUNNLElBQUksR0FBRyxLQUFLLENBQ25CLFNBQVMsRUFDVCxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxDQUN0QyxDQUFDO0lBQ08sSUFBSSxHQUFHLEtBQUssQ0FDbkIsU0FBUyxFQUNULEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLENBQ3RDLENBQUM7SUFDTyxJQUFJLEdBQUcsS0FBSyxDQUduQixTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUUxQixPQUFPLENBQUMsS0FBb0I7UUFDN0MsT0FBTyxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUM7SUFDeEMsQ0FBQzt1R0F6Qm1CLG9CQUFvQjsyRkFBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUR6QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgbnVsbFRvVW5kZWZpbmVkLFxuICBudWxsVG9VbmRlZmluZWROdW1lcmljLFxuICBSZHRBdXRvY29tcGxldGVPcHRpb25zLFxufSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdFRleHRBcmVhQ29tcG9uZW50IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxcbiAgc3RyaW5nLFxuICBzdHJpbmdcbj4ge1xuICByZWFkb25seSBhdXRvY29tcGxldGUgPSBpbnB1dDxcbiAgICBSZHRBdXRvY29tcGxldGVPcHRpb25zIHwgdW5kZWZpbmVkLFxuICAgIE51bGxhYmxlPFJkdEF1dG9jb21wbGV0ZU9wdGlvbnM+XG4gID4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQsXG4gIH0pO1xuICByZWFkb25seSBjb2xzID0gaW5wdXQ8TnVsbGFibGU8bnVtYmVyPiwgTnVsbGFibGU8c3RyaW5nIHwgbnVtYmVyPj4oXG4gICAgdW5kZWZpbmVkLFxuICAgIHsgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWROdW1lcmljIH1cbiAgKTtcbiAgcmVhZG9ubHkgcm93cyA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIE51bGxhYmxlPHN0cmluZyB8IG51bWJlcj4+KFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyB9XG4gICk7XG4gIHJlYWRvbmx5IHdyYXAgPSBpbnB1dDxcbiAgICBOdWxsYWJsZTwnaGFyZCcgfCAnc29mdCcgfCAnb2ZmJz4sXG4gICAgTnVsbGFibGU8J2hhcmQnIHwgJ3NvZnQnIHwgJ29mZic+XG4gID4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkIH0pO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc0VtcHR5KHZhbHVlOiBzdHJpbmcgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbDtcbiAgfVxufVxuIl19","import { Directive, input } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined, nullToUndefinedNumeric, } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtTextInputComponent extends RdtBaseFormInputComponent {\n type = input('text');\n autocomplete = input(undefined, {\n transform: nullToUndefined,\n });\n maxlength = input(undefined, { transform: nullToUndefinedNumeric });\n minlength = input(undefined, { transform: nullToUndefinedNumeric });\n pattern = input(undefined, {\n transform: nullToUndefined,\n });\n isEmpty(value) {\n return value === '' || value === null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtTextInputComponent, isStandalone: true, inputs: { type: { classPropertyName: \"type\", publicName: \"type\", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: \"autocomplete\", publicName: \"autocomplete\", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: \"maxlength\", publicName: \"maxlength\", isSignal: true, isRequired: false, transformFunction: null }, minlength: { classPropertyName: \"minlength\", publicName: \"minlength\", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: \"pattern\", publicName: \"pattern\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextInputComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRleHQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL3RleHQtaW5wdXQvcmR0LXRleHQtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysc0JBQXNCLEdBRXZCLE1BQU0sYUFBYSxDQUFDOztBQUlyQixNQUFNLE9BQWdCLHFCQUFzQixTQUFRLHlCQUduRDtJQUNVLElBQUksR0FBRyxLQUFLLENBQWUsTUFBTSxDQUFDLENBQUM7SUFFbkMsWUFBWSxHQUFHLEtBQUssQ0FHM0IsU0FBUyxFQUFFO1FBQ1gsU0FBUyxFQUFFLGVBQWU7S0FDM0IsQ0FBQyxDQUFDO0lBQ00sU0FBUyxHQUFHLEtBQUssQ0FDeEIsU0FBUyxFQUNULEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLENBQ3RDLENBQUM7SUFDTyxTQUFTLEdBQUcsS0FBSyxDQUN4QixTQUFTLEVBQ1QsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsQ0FDdEMsQ0FBQztJQUNPLE9BQU8sR0FBRyxLQUFLLENBQXFDLFNBQVMsRUFBRTtRQUN0RSxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDLENBQUM7SUFFZ0IsT0FBTyxDQUFDLEtBQW9CO1FBQzdDLE9BQU8sS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3hDLENBQUM7dUdBMUJtQixxQkFBcUI7MkZBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIG51bGxUb1VuZGVmaW5lZCxcbiAgbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyxcbiAgUmR0QXV0b2NvbXBsZXRlT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUmR0SW5wdXRUeXBlIH0gZnJvbSAnLi9pbnB1dC10eXBlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0VGV4dElucHV0Q29tcG9uZW50IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxcbiAgc3RyaW5nLFxuICBzdHJpbmdcbj4ge1xuICByZWFkb25seSB0eXBlID0gaW5wdXQ8UmR0SW5wdXRUeXBlPigndGV4dCcpO1xuXG4gIHJlYWRvbmx5IGF1dG9jb21wbGV0ZSA9IGlucHV0PFxuICAgIFJkdEF1dG9jb21wbGV0ZU9wdGlvbnMgfCB1bmRlZmluZWQsXG4gICAgTnVsbGFibGU8UmR0QXV0b2NvbXBsZXRlT3B0aW9ucz5cbiAgPih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG4gIHJlYWRvbmx5IG1heGxlbmd0aCA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIE51bGxhYmxlPHN0cmluZyB8IG51bWJlcj4+KFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyB9XG4gICk7XG4gIHJlYWRvbmx5IG1pbmxlbmd0aCA9IGlucHV0PE51bGxhYmxlPG51bWJlcj4sIE51bGxhYmxlPHN0cmluZyB8IG51bWJlcj4+KFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IHRyYW5zZm9ybTogbnVsbFRvVW5kZWZpbmVkTnVtZXJpYyB9XG4gICk7XG4gIHJlYWRvbmx5IHBhdHRlcm4gPSBpbnB1dDxOdWxsYWJsZTxzdHJpbmc+LCBOdWxsYWJsZTxzdHJpbmc+Pih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBudWxsO1xuICB9XG59XG4iXX0=","import { RdtSelectDatasource, } from '../../select';\nexport class RdtTextInputSearchDatasource extends RdtSelectDatasource {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRleHQtc2VhcmNoLWlucHV0LWRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvdGV4dC1zZWFyY2gtaW5wdXQvZGF0YXNvdXJjZS9yZHQtdGV4dC1zZWFyY2gtaW5wdXQtZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsbUJBQW1CLEdBR3BCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE1BQU0sT0FBZ0IsNEJBR3BCLFNBQVEsbUJBQStCO0NBTXhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgUmR0U2VsZWN0RGF0YXNvdXJjZSxcbiAgUmR0U2VsZWN0UGFnZSxcbiAgUmR0U2VsZWN0UmVxdWVzdFBhcmFtcyxcbn0gZnJvbSAnLi4vLi4vc2VsZWN0JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdFRleHRJbnB1dFNlYXJjaERhdGFzb3VyY2U8XG4gIFRJdGVtLFxuICBUSWRcbj4gZXh0ZW5kcyBSZHRTZWxlY3REYXRhc291cmNlPFRJdGVtLCBUSWQ+IHtcbiAgYWJzdHJhY3QgZ2V0TGFiZWxGb3JJbnB1dFNlYXJjaChpdGVtOiBUSXRlbSk6IHN0cmluZztcblxuICBhYnN0cmFjdCBnZXREYXRhRm9yVGV4dElucHV0U2VhcmNoKFxuICAgIHBhcmFtczogUmR0U2VsZWN0UmVxdWVzdFBhcmFtc1xuICApOiBPYnNlcnZhYmxlPFJkdFNlbGVjdFBhZ2U8VEl0ZW0+Pjtcbn1cbiJdfQ==","import { Directive, ViewChild, booleanAttribute, computed, effect, inject, input, output, signal, untracked, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, } from '@angular/forms';\nimport { RdtObjectUtils } from '@ngrdt/utils';\nimport { debounceTime, distinctUntilChanged, filter, of, switchMap, tap, } from 'rxjs';\nimport { RdtBaseFormInputComponent } from '../../base';\nimport { RdtSelectStore } from '../select';\nimport * as i0 from \"@angular/core\";\nexport class RdtTextSearchInputComponent extends RdtBaseFormInputComponent {\n hideErrors = input(false, { transform: booleanAttribute });\n textInput = signal(undefined);\n _input;\n isEmpty(value) {\n return value === null || value === undefined;\n }\n focus() {\n this.textInput()?.focus();\n }\n canFocus() {\n return this.textInput()?.canFocus() ?? false;\n }\n datasource = input(null);\n itemResolved = output();\n store = inject(RdtSelectStore);\n ctrl = new FormControl(null);\n lastResult = [];\n initializing = true;\n errorEffect = effect(() => {\n this.ctrl.setErrors(this.visibleErrors());\n });\n touchedEffect = effect(() => {\n if (this.ngControl?.control?.touched) {\n this.ctrl.markAsTouched();\n }\n });\n anyDatasource = computed(() => this.store.datasource() || this.datasource());\n ngOnInit() {\n super.ngOnInit();\n this.ctrl.valueChanges\n .pipe(debounceTime(250), distinctUntilChanged(), filter(() => !this.initializing), takeUntilDestroyed(this.destroyRef), switchMap((inputValue) => this.handleSearchInput$(inputValue)), filter(RdtObjectUtils.notNullGuard))\n .subscribe((res) => {\n this.handleSearchResults(this.ctrl.value ?? '', res);\n });\n }\n ngAfterViewInit() {\n this.textInput.set(this._input);\n this.ngControl?.control?.addValidators(this.resultCountValidator(this.datasource()));\n const initialValue = this.ctrl.value;\n if (initialValue) {\n this.resolveInitialValue(initialValue);\n }\n else {\n this.initializing = false;\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.ngControl?.control?.removeValidators(this.resultCountValidator(this.datasource()));\n }\n resolveInitialValue(id) {\n const datasource = untracked(this.anyDatasource);\n if (!datasource)\n return;\n datasource\n .getItemsByIds([id])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((items) => {\n if (!items || items.size === 0) {\n this.emitResolvedEvent(null, null, null);\n this.initializing = false;\n return;\n }\n const [resolvedId, item] = items.entries().next().value;\n const label = datasource.getLabelForInputSearch(item);\n const inputElement = this.textInput()?.elementRef?.nativeElement;\n if (inputElement) {\n const childInput = inputElement.querySelector('input');\n if (childInput) {\n childInput.value = label;\n }\n }\n this.onChange(resolvedId);\n this.emitResolvedEvent(resolvedId, label, item);\n this.lastResult = [item];\n this.ngControl?.control?.updateValueAndValidity({ emitEvent: false });\n this.initializing = false;\n });\n }\n handleSearchInput$(inputValue) {\n const value = (inputValue ?? '').toString().trim();\n if (!value) {\n return of(null).pipe(tap(() => {\n this.onChange(null);\n this.emitResolvedEvent(null, null, null);\n this.lastResult.length = 0;\n this.ngControl?.control?.updateValueAndValidity({ emitEvent: false });\n }));\n }\n const datasource = untracked(this.anyDatasource);\n if (!datasource) {\n return of(null).pipe(tap(() => {\n const id = value;\n this.onChange(id);\n this.emitResolvedEvent(id, null, null); //todo here?\n }));\n }\n return datasource\n .getDataForTextInputSearch({ query: value, pageIndex: 0, pageSize: 20 })\n .pipe(takeUntilDestroyed(this.destroyRef));\n }\n handleSearchResults(query, page) {\n const datasource = untracked(this.anyDatasource);\n const items = page.data ?? [];\n this.lastResult = [...items];\n this.ngControl?.control?.updateValueAndValidity({ emitEvent: false });\n if (this.lastResult.length === 1) {\n const item = items[0];\n const id = datasource.getId(item);\n const label = datasource.getLabelForInputSearch(item);\n this.onChange(id);\n this.emitResolvedEvent(id, label, item);\n }\n else if (this.lastResult.length === 0) {\n this.emitResolvedEvent(null, null, null);\n if (!this.ctrl.touched) {\n this.ctrl.markAsTouched();\n }\n }\n else {\n this.emitResolvedEvent(null, null, null);\n if (!this.ctrl.touched) {\n this.ctrl.markAsTouched();\n }\n }\n }\n emitResolvedEvent(id, label, item) {\n this.itemResolved.emit({ id, label, item });\n }\n writeValue(value) {\n super.writeValue(value);\n if (value === null || value === undefined) {\n this.ctrl.setValue(null, { emitEvent: false });\n return;\n }\n this.ctrl.setValue(String(value));\n }\n setDisabledState(isDisabled) {\n super.setDisabledState(isDisabled);\n if (untracked(this.disabled)) {\n if (this.ctrl.enabled) {\n this.ctrl.disable({ emitEvent: false });\n }\n }\n else if (this.ctrl.disabled) {\n this.ctrl.enable({ emitEvent: false });\n }\n }\n resultCountValidator = (datasource) => {\n return (ctrl) => {\n const query = this.ctrl.value?.toString().trim();\n if (!query) {\n return null;\n }\n if (this.lastResult.length === 0) {\n return { notFound: true };\n }\n if (this.lastResult.length === 1) {\n const usedLabel = datasource?.getLabelForInputSearch(this.lastResult[0]);\n const usedId = datasource?.getId(this.lastResult[0]);\n if (usedLabel?.toString() === query?.toString() ||\n usedId?.toString() === query?.toString()) {\n return null;\n }\n return { incomplete: true };\n }\n if (this.lastResult.length > 1) {\n return { multipleFound: true };\n }\n return null;\n };\n };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextSearchInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.0\", type: RdtTextSearchInputComponent, isStandalone: true, inputs: { hideErrors: { classPropertyName: \"hideErrors\", publicName: \"hideErrors\", isSignal: true, isRequired: false, transformFunction: null }, datasource: { classPropertyName: \"datasource\", publicName: \"datasource\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemResolved: \"itemResolved\" }, viewQueries: [{ propertyName: \"_input\", first: true, predicate: [\"input\"], descendants: true }], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtTextSearchInputComponent, decorators: [{\n type: Directive\n }], propDecorators: { _input: [{\n type: ViewChild,\n args: ['input', { static: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXRleHQtc2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy90ZXh0LXNlYXJjaC1pbnB1dC9yZHQtdGV4dC1zZWFyY2gtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsU0FBUyxFQUVULGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUdMLFdBQVcsR0FHWixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUVMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEVBQUUsRUFDRixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZELE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQVcxRCxNQUFNLE9BQWdCLDJCQUtwQixTQUFRLHlCQUFxQztJQUdwQyxVQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFFakQsU0FBUyxHQUMxQixNQUFNLENBQThCLFNBQVMsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFtQjtJQUVyRCxPQUFPLENBQUMsS0FBbUI7UUFDNUMsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7SUFDL0Ms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QUFFLEtBQUssS0FBSyxFQUFFLFFBQVEsRUFBRTtvQkFDM0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFDeEMsQ0FBQztvQkFDRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDOUIsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDakMsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO3VHQXhPa0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBRGhELFNBQVM7OEJBY3VDLE1BQU07c0JBQXBELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JGbixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmR0Qm9vbGVhblJlc3VsdCB9IGZyb20gJ0BuZ3JkdC9jb3JlJztcbmltcG9ydCB7IFJkdE9iamVjdFV0aWxzIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgb2YsXG4gIHN3aXRjaE1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlJztcbmltcG9ydCB7IFJkdFNlbGVjdFBhZ2UsIFJkdFNlbGVjdFN0b3JlIH0gZnJvbSAnLi4vc2VsZWN0JztcbmltcG9ydCB7IFJkdFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL3RleHQtaW5wdXQnO1xuaW1wb3J0IHsgUmR0VGV4dElucHV0U2VhcmNoRGF0YXNvdXJjZSB9IGZyb20gJy4vZGF0YXNvdXJjZS9yZHQtdGV4dC1zZWFyY2gtaW5wdXQtZGF0YXNvdXJjZSc7XG5cbmV4cG9ydCB0eXBlIEl0ZW1SZXNvbHZlZDxUSWQsIFRJdGVtPiA9IHtcbiAgaWQ6IFRJZCB8IG51bGw7XG4gIGxhYmVsOiBzdHJpbmcgfCBudWxsO1xuICBpdGVtOiBUSXRlbSB8IG51bGw7XG59O1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRUZXh0U2VhcmNoSW5wdXRDb21wb25lbnQ8XG4gICAgVEl0ZW0sXG4gICAgVElkIGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyLFxuICAgIFRJbnB1dENvbXBvbmVudCBleHRlbmRzIFJkdFRleHRJbnB1dENvbXBvbmVudFxuICA+XG4gIGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxUSXRlbSwgVElkPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgcmVhZG9ubHkgaGlkZUVycm9ycyA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGV4dElucHV0OiBXcml0YWJsZVNpZ25hbDxUSW5wdXRDb21wb25lbnQgfCB1bmRlZmluZWQ+ID1cbiAgICBzaWduYWw8VElucHV0Q29tcG9uZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgX2lucHV0ITogVElucHV0Q29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc0VtcHR5KHZhbHVlOiBUSXRlbSB8IG51bGwpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcbiAgfVxuICBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRJbnB1dCgpPy5mb2N1cygpO1xuICB9XG4gIG92ZXJyaWRlIGNhbkZvY3VzKCk6IFJkdEJvb2xlYW5SZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnRleHRJbnB1dCgpPy5jYW5Gb2N1cygpID8/IGZhbHNlO1xuICB9XG4gIHJlYWRvbmx5IGRhdGFzb3VyY2UgPSBpbnB1dDxSZHRUZXh0SW5wdXRTZWFyY2hEYXRhc291cmNlPFRJdGVtLCBUSWQ+IHwgbnVsbD4oXG4gICAgbnVsbFxuICApO1xuICByZWFkb25seSBpdGVtUmVzb2x2ZWQgPSBvdXRwdXQ8SXRlbVJlc29sdmVkPFRJZCwgVEl0ZW0+PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoUmR0U2VsZWN0U3RvcmUpO1xuICByZWFkb25seSBjdHJsID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgbGFzdFJlc3VsdDogVEl0ZW1bXSA9IFtdO1xuICBwcml2YXRlIGluaXRpYWxpemluZyA9IHRydWU7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9yRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmN0cmwuc2V0RXJyb3JzKHRoaXMudmlzaWJsZUVycm9ycygpKTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHRvdWNoZWRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udG91Y2hlZCkge1xuICAgICAgdGhpcy5jdHJsLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGFueURhdGFzb3VyY2UgPSBjb21wdXRlZChcbiAgICAoKSA9PlxuICAgICAgKHRoaXMuc3RvcmUuZGF0YXNvdXJjZSgpIGFzIFJkdFRleHRJbnB1dFNlYXJjaERhdGFzb3VyY2U8XG4gICAgICAgIFRJdGVtLFxuICAgICAgICBUSWRcbiAgICAgID4gfCBudWxsKSB8fCB0aGlzLmRhdGFzb3VyY2UoKVxuICApO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5jdHJsLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgyNTApLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuaW5pdGlhbGl6aW5nKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgIHN3aXRjaE1hcCgoaW5wdXRWYWx1ZSkgPT4gdGhpcy5oYW5kbGVTZWFyY2hJbnB1dCQoaW5wdXRWYWx1ZSkpLFxuICAgICAgICBmaWx0ZXIoUmR0T2JqZWN0VXRpbHMubm90TnVsbEd1YXJkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlU2VhcmNoUmVzdWx0cyh0aGlzLmN0cmwudmFsdWUgPz8gJycsIHJlcyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRJbnB1dC5zZXQodGhpcy5faW5wdXQpO1xuICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy5hZGRWYWxpZGF0b3JzKFxuICAgICAgdGhpcy5yZXN1bHRDb3VudFZhbGlkYXRvcih0aGlzLmRhdGFzb3VyY2UoKSlcbiAgICApO1xuICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IHRoaXMuY3RybC52YWx1ZTtcbiAgICBpZiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICB0aGlzLnJlc29sdmVJbml0aWFsVmFsdWUoaW5pdGlhbFZhbHVlIGFzIFRJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6aW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8ucmVtb3ZlVmFsaWRhdG9ycyhcbiAgICAgIHRoaXMucmVzdWx0Q291bnRWYWxpZGF0b3IodGhpcy5kYXRhc291cmNlKCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUluaXRpYWxWYWx1ZShpZDogVElkKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YXNvdXJjZSA9IHVudHJhY2tlZCh0aGlzLmFueURhdGFzb3VyY2UpO1xuICAgIGlmICghZGF0YXNvdXJjZSkgcmV0dXJuO1xuICAgIGRhdGFzb3VyY2VcbiAgICAgIC5nZXRJdGVtc0J5SWRzKFtpZF0pXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zOiBNYXA8VElkLCBhbnk+KSA9PiB7XG4gICAgICAgIGlmICghaXRlbXMgfHwgaXRlbXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuZW1pdFJlc29sdmVkRXZlbnQobnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgdGhpcy5pbml0aWFsaXppbmcgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW3Jlc29sdmVkSWQsIGl0ZW1dID0gaXRlbXMuZW50cmllcygpLm5leHQoKS52YWx1ZSE7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YXNvdXJjZS5nZXRMYWJlbEZvcklucHV0U2VhcmNoKGl0ZW0pO1xuICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLnRleHRJbnB1dCgpPy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgY29uc3QgY2hpbGRJbnB1dCA9XG4gICAgICAgICAgICBpbnB1dEVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MSW5wdXRFbGVtZW50PignaW5wdXQnKTtcbiAgICAgICAgICBpZiAoY2hpbGRJbnB1dCkge1xuICAgICAgICAgICAgY2hpbGRJbnB1dC52YWx1ZSA9IGxhYmVsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHJlc29sdmVkSWQpO1xuICAgICAgICB0aGlzLmVtaXRSZXNvbHZlZEV2ZW50KHJlc29sdmVkSWQsIGxhYmVsLCBpdGVtKTtcbiAgICAgICAgdGhpcy5sYXN0UmVzdWx0ID0gW2l0ZW1dO1xuICAgICAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VhcmNoSW5wdXQkKFxuICAgIGlucHV0VmFsdWU6IHN0cmluZyB8IG51bGxcbiAgKTogT2JzZXJ2YWJsZTxSZHRTZWxlY3RQYWdlPFRJdGVtPiB8IG51bGw+IHtcbiAgICBjb25zdCB2YWx1ZSA9IChpbnB1dFZhbHVlID8/ICcnKS50b1N0cmluZygpLnRyaW0oKTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCkucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xuICAgICAgICAgIHRoaXMuZW1pdFJlc29sdmVkRXZlbnQobnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgdGhpcy5sYXN0UmVzdWx0Lmxlbmd0aCA9IDA7XG4gICAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhc291cmNlID0gdW50cmFja2VkKHRoaXMuYW55RGF0YXNvdXJjZSk7XG4gICAgaWYgKCFkYXRhc291cmNlKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCkucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBpZCA9IHZhbHVlIGFzIFRJZDtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKGlkKTtcbiAgICAgICAgICB0aGlzLmVtaXRSZXNvbHZlZEV2ZW50KGlkLCBudWxsLCBudWxsKTsgLy90b2RvIGhlcmU/XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhc291cmNlXG4gICAgICAuZ2V0RGF0YUZvclRleHRJbnB1dFNlYXJjaCh7IHF1ZXJ5OiB2YWx1ZSwgcGFnZUluZGV4OiAwLCBwYWdlU2l6ZTogMjAgfSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VhcmNoUmVzdWx0cyhxdWVyeTogc3RyaW5nLCBwYWdlOiBSZHRTZWxlY3RQYWdlPFRJdGVtPik6IHZvaWQge1xuICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB1bnRyYWNrZWQodGhpcy5hbnlEYXRhc291cmNlKSE7XG4gICAgY29uc3QgaXRlbXMgPSBwYWdlLmRhdGEgPz8gW107XG4gICAgdGhpcy5sYXN0UmVzdWx0ID0gWy4uLml0ZW1zXTtcbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICBpZiAodGhpcy5sYXN0UmVzdWx0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zWzBdO1xuICAgICAgY29uc3QgaWQgPSBkYXRhc291cmNlLmdldElkKGl0ZW0pIGFzIFRJZDtcbiAgICAgIGNvbnN0IGxhYmVsID0gZGF0YXNvdXJjZS5nZXRMYWJlbEZvcklucHV0U2VhcmNoKGl0ZW0pO1xuICAgICAgdGhpcy5vbkNoYW5nZShpZCk7XG4gICAgICB0aGlzLmVtaXRSZXNvbHZlZEV2ZW50KGlkLCBsYWJlbCwgaXRlbSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxhc3RSZXN1bHQubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVtaXRSZXNvbHZlZEV2ZW50KG51bGwsIG51bGwsIG51bGwpO1xuICAgICAgaWYgKCF0aGlzLmN0cmwudG91Y2hlZCkge1xuICAgICAgICB0aGlzLmN0cmwubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXRSZXNvbHZlZEV2ZW50KG51bGwsIG51bGwsIG51bGwpO1xuICAgICAgaWYgKCF0aGlzLmN0cmwudG91Y2hlZCkge1xuICAgICAgICB0aGlzLmN0cmwubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdFJlc29sdmVkRXZlbnQoXG4gICAgaWQ6IFRJZCB8IG51bGwsXG4gICAgbGFiZWw6IHN0cmluZyB8IG51bGwsXG4gICAgaXRlbTogVEl0ZW0gfCBudWxsXG4gICk6IHZvaWQge1xuICAgIHRoaXMuaXRlbVJlc29sdmVkLmVtaXQoeyBpZCwgbGFiZWwsIGl0ZW0gfSk7XG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBUSWQgfCBudWxsKTogdm9pZCB7XG4gICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY3RybC5zZXRWYWx1ZShudWxsLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3RybC5zZXRWYWx1ZShTdHJpbmcodmFsdWUpKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZCk7XG4gICAgaWYgKHVudHJhY2tlZCh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgaWYgKHRoaXMuY3RybC5lbmFibGVkKSB7XG4gICAgICAgIHRoaXMuY3RybC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuY3RybC5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5jdHJsLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXN1bHRDb3VudFZhbGlkYXRvciA9IChcbiAgICBkYXRhc291cmNlOiBSZHRUZXh0SW5wdXRTZWFyY2hEYXRhc291cmNlPFRJdGVtLCBUSWQ+IHwgbnVsbFxuICApOiBWYWxpZGF0b3JGbiA9PiB7XG4gICAgcmV0dXJuIChjdHJsOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCBxdWVyeSA9IHRoaXMuY3RybC52YWx1ZT8udG9TdHJpbmcoKS50cmltKCk7XG4gICAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubGFzdFJlc3VsdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHsgbm90Rm91bmQ6IHRydWUgfTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmxhc3RSZXN1bHQubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGNvbnN0IHVzZWRMYWJlbCA9IGRhdGFzb3VyY2U/LmdldExhYmVsRm9ySW5wdXRTZWFyY2goXG4gICAgICAgICAgdGhpcy5sYXN0UmVzdWx0WzBdXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHVzZWRJZCA9IGRhdGFzb3VyY2U/LmdldElkKHRoaXMubGFzdFJlc3VsdFswXSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB1c2VkTGFiZWw/LnRvU3RyaW5nKCkgPT09IHF1ZXJ5Py50b1N0cmluZygpIHx8XG4gICAgICAgICAgdXNlZElkPy50b1N0cmluZygpID09PSBxdWVyeT8udG9TdHJpbmcoKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpbmNvbXBsZXRlOiB0cnVlIH07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5sYXN0UmVzdWx0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgcmV0dXJuIHsgbXVsdGlwbGVGb3VuZDogdHJ1ZSB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const RDT_FORM_ERROR_CODES_PROVIDER = new InjectionToken('RdtFormErrors');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWVycm9yLWNvZGUtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9waXBlcy9wcm92aWRlcnMvcmR0LWVycm9yLWNvZGUtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FFN0QsZUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR0Rm9ybUVycm9yQ29kZU1hcCB9IGZyb20gJy4uL21vZGVscy9yZHQtZXJyb3ItY29kZXMuaW50JztcblxuZXhwb3J0IGNvbnN0IFJEVF9GT1JNX0VSUk9SX0NPREVTX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPFxuICBUeXBlPFJkdEZvcm1FcnJvckNvZGVNYXA+XG4+KCdSZHRGb3JtRXJyb3JzJyk7XG4iXX0=","import { inject, Pipe } from '@angular/core';\nimport { RdtTranslateService } from '@ngrdt/core';\nimport { RDT_FORM_ERROR_CODES_PROVIDER } from './providers/rdt-error-code-provider';\nimport * as i0 from \"@angular/core\";\nexport function getFirstError(errors) {\n if (errors) {\n const key = Object.keys(errors)[0];\n const value = errors[key];\n return { key, value };\n }\n return null;\n}\nexport const defaultRdtFormErrorCodes = {\n required: () => `RDT_ERROR_REQUIRED`,\n email: () => 'RDT_ERROR_EMAIL_INVALID',\n minlength: (value) => ['RDT_ERROR_MIN_LENGTH', value.requiredLength],\n maxlength: (value) => ['RDT_ERROR_MAX_LENGTH', value.requiredLength],\n notFound: () => 'RDT_ERROR_NOT_FOUND',\n multipleFound: () => 'RDT_ERROR_MULTIPLE_FOUND',\n incomplete: () => 'RDT_ERROR_CODE_INCOMPLETE',\n minValue: (value) => ['RDT_ERROR_MIN_VALUE', value.min],\n};\nexport class RdtFormErrorPipe {\n translateService = inject(RdtTranslateService);\n errorCodes = (() => {\n const injected = inject(RDT_FORM_ERROR_CODES_PROVIDER, {\n optional: true,\n });\n if (!injected) {\n console.warn('No provider for RDT_FORM_ERROR_CODES_PROVIDER was found. ' +\n 'Default form error messages are now being used.');\n }\n return injected ?? defaultRdtFormErrorCodes;\n })();\n transform(errors) {\n if (!errors)\n return '';\n const error = getFirstError(errors);\n if (error) {\n const fn = this.errorCodes[error.key];\n if (fn) {\n if (Array.isArray(fn())) {\n return this.translateService.instant(fn()[0], [\n fn().slice(1),\n ]);\n }\n return this.translateService.instant(fn());\n }\n else if (typeof error.value === 'string') {\n return this.translateService.instant(error.value);\n }\n else {\n return this.translateService.instant('RDT_ERROR_UNKNOWN');\n }\n }\n return '';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormErrorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormErrorPipe, isStandalone: true, name: \"rdtFormError\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtFormErrorPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'rdtFormError',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvcGlwZXMvZm9ybS1lcnJvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQW1CLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR25FLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUVwRixNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQXdCO0lBQ3BELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBd0I7SUFDM0QsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLG9CQUFvQjtJQUNwQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMseUJBQXlCO0lBQ3RDLFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQ3pFLFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDO0lBQ3pFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUI7SUFDckMsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLDBCQUEwQjtJQUMvQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCO0lBQzdDLFFBQVEsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO0NBQzdELENBQUM7QUFNRixNQUFNLE9BQU8sZ0JBQWdCO0lBQ25CLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLFVBQVUsR0FBd0IsQ0FBQyxHQUFHLEVBQUU7UUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixFQUFFO1lBQ3JELFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBK0IsQ0FBQztRQUVqQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsSUFBSSxDQUNWLDJEQUEyRDtnQkFDekQsaURBQWlELENBQ3BELENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxRQUFRLElBQUksd0JBQXdCLENBQUM7SUFDOUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVMLFNBQVMsQ0FBQyxNQUEyQztRQUNuRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDUCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFvQixFQUFFO3dCQUMvRCxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO3FCQUNkLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQXFCLENBQUMsQ0FBQztZQUNoRSxDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQXdCLENBQUMsQ0FBQztZQUN2RSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7dUdBcENVLGdCQUFnQjtxR0FBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUo1QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxjQUFjO29CQUNwQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZHRUcmFuc2xhdGVLZXksIFJkdFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmdyZHQvY29yZSc7XG5pbXBvcnQgeyBSZHRGb3JtRXJyb3JDb2RlTWFwIH0gZnJvbSAnLi9tb2RlbHMvcmR0LWVycm9yLWNvZGVzLmludCc7XG5pbXBvcnQgeyBSZHRFcnJvclZhbHVlIH0gZnJvbSAnLi9tb2RlbHMvcmR0LWVycm9yLWNvZGVzLnR5cGVzJztcbmltcG9ydCB7IFJEVF9GT1JNX0VSUk9SX0NPREVTX1BST1ZJREVSIH0gZnJvbSAnLi9wcm92aWRlcnMvcmR0LWVycm9yLWNvZGUtcHJvdmlkZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3RFcnJvcihlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMpOiBSZHRFcnJvclZhbHVlIHtcbiAgaWYgKGVycm9ycykge1xuICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKGVycm9ycylbMF07XG4gICAgY29uc3QgdmFsdWUgPSBlcnJvcnNba2V5XTtcbiAgICByZXR1cm4geyBrZXksIHZhbHVlIH07XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UmR0Rm9ybUVycm9yQ29kZXM6IFJkdEZvcm1FcnJvckNvZGVNYXAgPSB7XG4gIHJlcXVpcmVkOiAoKSA9PiBgUkRUX0VSUk9SX1JFUVVJUkVEYCxcbiAgZW1haWw6ICgpID0+ICdSRFRfRVJST1JfRU1BSUxfSU5WQUxJRCcsXG4gIG1pbmxlbmd0aDogKHZhbHVlOiBhbnkpID0+IFsnUkRUX0VSUk9SX01JTl9MRU5HVEgnLCB2YWx1ZS5yZXF1aXJlZExlbmd0aF0sXG4gIG1heGxlbmd0aDogKHZhbHVlOiBhbnkpID0+IFsnUkRUX0VSUk9SX01BWF9MRU5HVEgnLCB2YWx1ZS5yZXF1aXJlZExlbmd0aF0sXG4gIG5vdEZvdW5kOiAoKSA9PiAnUkRUX0VSUk9SX05PVF9GT1VORCcsXG4gIG11bHRpcGxlRm91bmQ6ICgpID0+ICdSRFRfRVJST1JfTVVMVElQTEVfRk9VTkQnLFxuICBpbmNvbXBsZXRlOiAoKSA9PiAnUkRUX0VSUk9SX0NPREVfSU5DT01QTEVURScsXG4gIG1pblZhbHVlOiAodmFsdWU6IGFueSkgPT4gWydSRFRfRVJST1JfTUlOX1ZBTFVFJywgdmFsdWUubWluXSxcbn07XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3JkdEZvcm1FcnJvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFJkdEZvcm1FcnJvclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFJkdFRyYW5zbGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9yQ29kZXM6IFJkdEZvcm1FcnJvckNvZGVNYXAgPSAoKCkgPT4ge1xuICAgIGNvbnN0IGluamVjdGVkID0gaW5qZWN0KFJEVF9GT1JNX0VSUk9SX0NPREVTX1BST1ZJREVSLCB7XG4gICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICB9KSBhcyBSZHRGb3JtRXJyb3JDb2RlTWFwIHwgbnVsbDtcblxuICAgIGlmICghaW5qZWN0ZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ05vIHByb3ZpZGVyIGZvciBSRFRfRk9STV9FUlJPUl9DT0RFU19QUk9WSURFUiB3YXMgZm91bmQuICcgK1xuICAgICAgICAgICdEZWZhdWx0IGZvcm0gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdyBiZWluZyB1c2VkLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluamVjdGVkID8/IGRlZmF1bHRSZHRGb3JtRXJyb3JDb2RlcztcbiAgfSkoKTtcblxuICB0cmFuc2Zvcm0oZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFlcnJvcnMpIHJldHVybiAnJztcbiAgICBjb25zdCBlcnJvciA9IGdldEZpcnN0RXJyb3IoZXJyb3JzKTtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IGZuID0gdGhpcy5lcnJvckNvZGVzW2Vycm9yLmtleV07XG4gICAgICBpZiAoZm4pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZm4oKSkpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZm4oKVswXSBhcyBSZHRUcmFuc2xhdGVLZXksIFtcbiAgICAgICAgICAgIGZuKCkuc2xpY2UoMSksXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGZuKCkgYXMgUmR0VHJhbnNsYXRlS2V5KTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGVycm9yLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IudmFsdWUgYXMgUmR0VHJhbnNsYXRlS2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnUkRUX0VSUk9SX1VOS05PV04nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=","import { FormControl, } from '@angular/forms';\nimport { RdtDateUtils } from '@ngrdt/utils';\nimport { distinctUntilChanged, merge, takeUntil, } from 'rxjs';\nexport class RdtDateValidators {\n static notInFuture = (control) => {\n let value = null;\n if (control.value == null) {\n value = null;\n }\n else if (typeof control.value === 'string') {\n value = Date.parse(control.value);\n }\n else if (typeof control.value === 'number') {\n value = control.value;\n }\n else if (control.value instanceof Date) {\n value = control.value.getTime();\n }\n if (value == null || Date.now() > value) {\n return null;\n }\n return {\n dateInFuture: true,\n };\n };\n static lastDayOfMonth = (control) => {\n if (control.value == null) {\n return null;\n }\n const date = new Date(control.value);\n const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n if (date.getDate() === lastDay.getDate()) {\n return null;\n }\n return {\n lastDayOfMonth: true,\n };\n };\n static greaterOrEqualToField(startDateField, error = 'RDT_DATE_TOO_SOON', unsubscribeSubj) {\n let subbed = false;\n return (endControl) => {\n const startControl = startDateField instanceof FormControl\n ? startDateField\n : endControl.parent?.get(startDateField);\n if (!startControl) {\n return null;\n }\n if (!subbed) {\n subbed = true;\n let change$ = merge(startControl.statusChanges.pipe(distinctUntilChanged()), startControl.valueChanges.pipe(distinctUntilChanged()));\n if (unsubscribeSubj) {\n change$ = change$.pipe(takeUntil(unsubscribeSubj));\n }\n if (change$) {\n change$.subscribe(() => {\n endControl.updateValueAndValidity();\n });\n }\n }\n const startDate = startControl?.value;\n const endDate = endControl.value;\n if (!startDate || !endDate) {\n return null;\n }\n if (Date.parse(startDate) > Date.parse(endDate)) {\n return { dateGreaterOrEqualToField: error };\n }\n return null;\n };\n }\n static lessOrEqualToField(endDateField, error = 'RDT_DATE_TOO_LATE', unsubscribeSubj) {\n let subbed = false;\n return (startControl) => {\n const endControl = endDateField instanceof FormControl\n ? endDateField\n : startControl.parent?.get(endDateField);\n if (!endControl) {\n return null;\n }\n if (!subbed) {\n subbed = true;\n let change$ = merge(endControl.statusChanges.pipe(distinctUntilChanged()), endControl.valueChanges.pipe(distinctUntilChanged()));\n if (unsubscribeSubj) {\n change$ = change$.pipe(takeUntil(unsubscribeSubj));\n }\n change$.subscribe(() => {\n startControl.updateValueAndValidity();\n });\n }\n const startDate = startControl.value;\n const endDate = endControl?.value;\n if (!startDate || !endDate) {\n return null;\n }\n if (Date.parse(startDate) > Date.parse(endDate)) {\n return { dateLessOrEqualToField: error };\n }\n return null;\n };\n }\n static lessOrEqualToConstant(value) {\n return (control) => RdtDateValidators.getDateRangeErrors(control.value, null, value);\n }\n static greaterOrEqualToConstant(value) {\n return (control) => RdtDateValidators.getDateRangeErrors(control.value, value, null);\n }\n static getDateRangeErrors(value, minDate, maxDate) {\n if ((minDate == null && maxDate == null) || value == null) {\n return null;\n }\n const dateValue = Date.parse(value);\n let minDateValue = RdtDateUtils.parse(minDate);\n let maxDateValue = RdtDateUtils.parse(maxDate);\n if (minDateValue) {\n minDateValue = RdtDateUtils.startOfDay(new Date(minDateValue)).getTime();\n }\n if (maxDateValue) {\n maxDateValue = RdtDateUtils.endOfDay(new Date(maxDateValue)).getTime();\n }\n const errors = {};\n if (minDateValue !== null && dateValue < minDateValue) {\n errors['dateGreaterOrEqualToConstant'] = {\n min: RdtDateUtils.formatDate(minDate),\n actual: RdtDateUtils.formatDate(value),\n };\n }\n if (maxDateValue !== null && dateValue > maxDateValue) {\n errors['dateLessOrEqualToConstant'] = {\n max: RdtDateUtils.formatDate(maxDate),\n actual: RdtDateUtils.formatDate(value),\n };\n }\n if (Object.keys(errors).length === 0) {\n return null;\n }\n else {\n return errors;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL3ZhbGlkYXRvcnMvZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsV0FBVyxHQUdaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFZLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLEtBQUssRUFHTCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFFZCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sQ0FBVSxXQUFXLEdBQWdCLENBQUMsT0FBd0IsRUFBRSxFQUFFO1FBQ3RFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUVqQixJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUIsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNmLENBQUM7YUFBTSxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQzthQUFNLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3hCLENBQUM7YUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDekMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEMsQ0FBQztRQUVELElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FB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SSxZQUFZLEtBQUssSUFBSSxJQUFJLFNBQVMsR0FBRyxZQUFZLEVBQUUsQ0FBQztZQUN0RCxNQUFNLENBQUMsOEJBQThCLENBQUMsR0FBRztnQkFDdkMsR0FBRyxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO2dCQUNyQyxNQUFNLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDdkMsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLFlBQVksS0FBSyxJQUFJLElBQUksU0FBUyxHQUFHLFlBQVksRUFBRSxDQUFDO1lBQ3RELE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxHQUFHO2dCQUNwQyxHQUFHLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3JDLE1BQU0sRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQzthQUN2QyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQ29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yRm4sXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE51bGxhYmxlLCBSZHREYXRlVXRpbHMgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgUmR0RGF0ZVZhbGlkYXRvcnMge1xuICBzdGF0aWMgcmVhZG9ubHkgbm90SW5GdXR1cmU6IFZhbGlkYXRvckZuID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgIGxldCB2YWx1ZSA9IG51bGw7XG5cbiAgICBpZiAoY29udHJvbC52YWx1ZSA9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgY29udHJvbC52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHZhbHVlID0gRGF0ZS5wYXJzZShjb250cm9sLnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb250cm9sLnZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoY29udHJvbC52YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHZhbHVlID0gY29udHJvbC52YWx1ZS5nZXRUaW1lKCk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgRGF0ZS5ub3coKSA+IHZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGVJbkZ1dHVyZTogdHJ1ZSxcbiAgICB9O1xuICB9O1xuXG4gIHN0YXRpYyBsYXN0RGF5T2ZNb250aDogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjb250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBsYXN0RGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAwKTtcbiAgICBpZiAoZGF0ZS5nZXREYXRlKCkgPT09IGxhc3REYXkuZ2V0RGF0ZSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhc3REYXlPZk1vbnRoOiB0cnVlLFxuICAgIH07XG4gIH07XG5cbiAgc3RhdGljIGdyZWF0ZXJPckVxdWFsVG9GaWVsZChcbiAgICBzdGFydERhdGVGaWVsZDogc3RyaW5nIHwgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4sXG4gICAgZXJyb3IgPSAnUkRUX0RBVEVfVE9PX1NPT04nLFxuICAgIHVuc3Vic2NyaWJlU3Viaj86IFN1YmplY3Q8dm9pZD5cbiAgKTogVmFsaWRhdG9yRm4ge1xuICAgIGxldCBzdWJiZWQgPSBmYWxzZTtcblxuICAgIHJldHVybiAoZW5kQ29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBjb25zdCBzdGFydENvbnRyb2wgPVxuICAgICAgICBzdGFydERhdGVGaWVsZCBpbnN0YW5jZW9mIEZvcm1Db250cm9sXG4gICAgICAgICAgPyBzdGFydERhdGVGaWVsZFxuICAgICAgICAgIDogZW5kQ29udHJvbC5wYXJlbnQ/LmdldChzdGFydERhdGVGaWVsZCk7XG5cbiAgICAgIGlmICghc3RhcnRDb250cm9sKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXN1YmJlZCkge1xuICAgICAgICBzdWJiZWQgPSB0cnVlO1xuICAgICAgICBsZXQgY2hhbmdlJDogT2JzZXJ2YWJsZTxhbnk+IHwgdW5kZWZpbmVkID0gbWVyZ2UoXG4gICAgICAgICAgc3RhcnRDb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgICAgICBzdGFydENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHVuc3Vic2NyaWJlU3Viaikge1xuICAgICAgICAgIGNoYW5nZSQgPSBjaGFuZ2UkLnBpcGUodGFrZVVudGlsKHVuc3Vic2NyaWJlU3ViaikpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2UkKSB7XG4gICAgICAgICAgY2hhbmdlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgZW5kQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0Q29udHJvbD8udmFsdWU7XG4gICAgICBjb25zdCBlbmREYXRlID0gZW5kQ29udHJvbC52YWx1ZTtcbiAgICAgIGlmICghc3RhcnREYXRlIHx8ICFlbmREYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKERhdGUucGFyc2Uoc3RhcnREYXRlKSA+IERhdGUucGFyc2UoZW5kRGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0ZUdyZWF0ZXJPckVxdWFsVG9GaWVsZDogZXJyb3IgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgbGVzc09yRXF1YWxUb0ZpZWxkKFxuICAgIGVuZERhdGVGaWVsZDogc3RyaW5nIHwgRm9ybUNvbnRyb2w8c3RyaW5nPiB8IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+LFxuICAgIGVycm9yID0gJ1JEVF9EQVRFX1RPT19MQVRFJyxcbiAgICB1bnN1YnNjcmliZVN1Ymo/OiBTdWJqZWN0PHZvaWQ+XG4gICk6IFZhbGlkYXRvckZuIHtcbiAgICBsZXQgc3ViYmVkID0gZmFsc2U7XG4gICAgcmV0dXJuIChzdGFydENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgY29uc3QgZW5kQ29udHJvbCA9XG4gICAgICAgIGVuZERhdGVGaWVsZCBpbnN0YW5jZW9mIEZvcm1Db250cm9sXG4gICAgICAgICAgPyBlbmREYXRlRmllbGRcbiAgICAgICAgICA6IHN0YXJ0Q29udHJvbC5wYXJlbnQ/LmdldChlbmREYXRlRmllbGQpO1xuICAgICAgaWYgKCFlbmRDb250cm9sKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKCFzdWJiZWQpIHtcbiAgICAgICAgc3ViYmVkID0gdHJ1ZTtcbiAgICAgICAgbGV0IGNoYW5nZSQ6IE9ic2VydmFibGU8YW55PiB8IHVuZGVmaW5lZCA9IG1lcmdlKFxuICAgICAgICAgIGVuZENvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgICAgIGVuZENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHVuc3Vic2NyaWJlU3Viaikge1xuICAgICAgICAgIGNoYW5nZSQgPSBjaGFuZ2UkLnBpcGUodGFrZVVudGlsKHVuc3Vic2NyaWJlU3ViaikpO1xuICAgICAgICB9XG4gICAgICAgIGNoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBzdGFydENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHN0YXJ0Q29udHJvbC52YWx1ZTtcbiAgICAgIGNvbnN0IGVuZERhdGUgPSBlbmRDb250cm9sPy52YWx1ZTtcbiAgICAgIGlmICghc3RhcnREYXRlIHx8ICFlbmREYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKERhdGUucGFyc2Uoc3RhcnREYXRlKSA+IERhdGUucGFyc2UoZW5kRGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0ZUxlc3NPckVxdWFsVG9GaWVsZDogZXJyb3IgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgbGVzc09yRXF1YWxUb0NvbnN0YW50KHZhbHVlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+XG4gICAgICBSZHREYXRlVmFsaWRhdG9ycy5nZXREYXRlUmFuZ2VFcnJvcnMoY29udHJvbC52YWx1ZSwgbnVsbCwgdmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIGdyZWF0ZXJPckVxdWFsVG9Db25zdGFudCh2YWx1ZTogRGF0ZSB8IHN0cmluZykge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PlxuICAgICAgUmR0RGF0ZVZhbGlkYXRvcnMuZ2V0RGF0ZVJhbmdlRXJyb3JzKGNvbnRyb2wudmFsdWUsIHZhbHVlLCBudWxsKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXREYXRlUmFuZ2VFcnJvcnMoXG4gICAgdmFsdWU6IE51bGxhYmxlPHN0cmluZz4sXG4gICAgbWluRGF0ZTogTnVsbGFibGU8RGF0ZSB8IHN0cmluZz4sXG4gICAgbWF4RGF0ZTogTnVsbGFibGU8RGF0ZSB8IHN0cmluZz5cbiAgKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICgobWluRGF0ZSA9PSBudWxsICYmIG1heERhdGUgPT0gbnVsbCkgfHwgdmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGRhdGVWYWx1ZSA9IERhdGUucGFyc2UodmFsdWUpO1xuICAgIGxldCBtaW5EYXRlVmFsdWUgPSBSZHREYXRlVXRpbHMucGFyc2UobWluRGF0ZSk7XG4gICAgbGV0IG1heERhdGVWYWx1ZSA9IFJkdERhdGVVdGlscy5wYXJzZShtYXhEYXRlKTtcblxuICAgIGlmIChtaW5EYXRlVmFsdWUpIHtcbiAgICAgIG1pbkRhdGVWYWx1ZSA9IFJkdERhdGVVdGlscy5zdGFydE9mRGF5KG5ldyBEYXRlKG1pbkRhdGVWYWx1ZSkpLmdldFRpbWUoKTtcbiAgICB9XG4gICAgaWYgKG1heERhdGVWYWx1ZSkge1xuICAgICAgbWF4RGF0ZVZhbHVlID0gUmR0RGF0ZVV0aWxzLmVuZE9mRGF5KG5ldyBEYXRlKG1heERhdGVWYWx1ZSkpLmdldFRpbWUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB7fTtcblxuICAgIGlmIChtaW5EYXRlVmFsdWUgIT09IG51bGwgJiYgZGF0ZVZhbHVlIDwgbWluRGF0ZVZhbHVlKSB7XG4gICAgICBlcnJvcnNbJ2RhdGVHcmVhdGVyT3JFcXVhbFRvQ29uc3RhbnQnXSA9IHtcbiAgICAgICAgbWluOiBSZHREYXRlVXRpbHMuZm9ybWF0RGF0ZShtaW5EYXRlKSxcbiAgICAgICAgYWN0dWFsOiBSZHREYXRlVXRpbHMuZm9ybWF0RGF0ZSh2YWx1ZSksXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAobWF4RGF0ZVZhbHVlICE9PSBudWxsICYmIGRhdGVWYWx1ZSA+IG1heERhdGVWYWx1ZSkge1xuICAgICAgZXJyb3JzWydkYXRlTGVzc09yRXF1YWxUb0NvbnN0YW50J10gPSB7XG4gICAgICAgIG1heDogUmR0RGF0ZVV0aWxzLmZvcm1hdERhdGUobWF4RGF0ZSksXG4gICAgICAgIGFjdHVhbDogUmR0RGF0ZVV0aWxzLmZvcm1hdERhdGUodmFsdWUpLFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVycm9ycztcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { FormGroup, } from '@angular/forms';\nexport class RdtCommonValidators {\n static atLeastOneRequired = () => null;\n static atLeastOneRequiredParent = (control) => {\n if (!(control instanceof FormGroup)) {\n throw new Error('Apply this validator to FormGroup.');\n }\n let someControlsHaveIt = false;\n for (const key in control.controls) {\n const ctrl = control.controls[key];\n if (ctrl.hasValidator(RdtCommonValidators.atLeastOneRequired)) {\n if (ctrl.value !== '' && ctrl.value != null) {\n return null;\n }\n someControlsHaveIt = true;\n }\n }\n if (someControlsHaveIt) {\n return {\n atLeastOneRequired: true,\n };\n }\n return null;\n };\n static cannotContainChars(chars) {\n return (control) => {\n if (!control.value) {\n return null;\n }\n const value = control.value;\n if (chars.some((char) => value.includes(char))) {\n return {\n cannotContainChars: chars,\n };\n }\n return null;\n };\n }\n static startsWithPrefix(text) {\n return (control) => {\n const isValid = control.value?.startsWith(text);\n return isValid\n ? null\n : {\n mustHavePrefix: {\n text,\n },\n };\n };\n }\n static exactLength(length) {\n return (control) => {\n if (!control.value) {\n return null;\n }\n const value = control.value;\n if (value.length !== length) {\n return {\n exactLength: length,\n };\n }\n return null;\n };\n }\n static maxNumLength(length) {\n return (control) => {\n if (!control.value) {\n return null;\n }\n const maxlengthError = { requiredLength: length };\n const constrolValue = control.value + '';\n if (constrolValue.length > length) {\n return {\n maxlength: maxlengthError,\n };\n }\n return null;\n };\n }\n static mustBeLowercase = (control) => {\n if (!control.value) {\n return null;\n }\n const value = control.value;\n if (value !== value.toLowerCase()) {\n return {\n mustBeLowercase: true,\n };\n }\n return null;\n };\n static cannotContainAccents = (control) => {\n if (!control.value) {\n return null;\n }\n const value = control.value;\n if (/^[a-zA-Z0-9]+$/.test(value)) {\n return null;\n }\n else {\n return {\n cannotContainSpecialChars: true,\n };\n }\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL3ZhbGlkYXRvcnMvZ2VuZXJhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxHQUdWLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixNQUFNLENBQVUsa0JBQWtCLEdBQWdCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUU3RCxNQUFNLENBQVUsd0JBQXdCLEdBQWdCLENBQ3RELE9BQXdCLEVBQ3hCLEVBQUU7UUFDRixJQUFJLENBQUMsQ0FBQyxPQUFPLFlBQVksU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRS9CLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztnQkFDOUQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUM1QyxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixPQUFPO2dCQUNMLGtCQUFrQixFQUFFLElBQUk7YUFDekIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FB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dEMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTztnQkFDTCx5QkFBeUIsRUFBRSxJQUFJO2FBQ2hDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjbGFzcyBSZHRDb21tb25WYWxpZGF0b3JzIHtcbiAgc3RhdGljIHJlYWRvbmx5IGF0TGVhc3RPbmVSZXF1aXJlZDogVmFsaWRhdG9yRm4gPSAoKSA9PiBudWxsO1xuXG4gIHN0YXRpYyByZWFkb25seSBhdExlYXN0T25lUmVxdWlyZWRQYXJlbnQ6IFZhbGlkYXRvckZuID0gKFxuICAgIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbFxuICApID0+IHtcbiAgICBpZiAoIShjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcHBseSB0aGlzIHZhbGlkYXRvciB0byBGb3JtR3JvdXAuJyk7XG4gICAgfVxuXG4gICAgbGV0IHNvbWVDb250cm9sc0hhdmVJdCA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29udHJvbC5jb250cm9scykge1xuICAgICAgY29uc3QgY3RybCA9IGNvbnRyb2wuY29udHJvbHNba2V5XTtcbiAgICAgIGlmIChjdHJsLmhhc1ZhbGlkYXRvcihSZHRDb21tb25WYWxpZGF0b3JzLmF0TGVhc3RPbmVSZXF1aXJlZCkpIHtcbiAgICAgICAgaWYgKGN0cmwudmFsdWUgIT09ICcnICYmIGN0cmwudmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHNvbWVDb250cm9sc0hhdmVJdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzb21lQ29udHJvbHNIYXZlSXQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGF0TGVhc3RPbmVSZXF1aXJlZDogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIHN0YXRpYyBjYW5ub3RDb250YWluQ2hhcnMoY2hhcnM6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlIGFzIHN0cmluZztcbiAgICAgIGlmIChjaGFycy5zb21lKChjaGFyKSA9PiB2YWx1ZS5pbmNsdWRlcyhjaGFyKSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjYW5ub3RDb250YWluQ2hhcnM6IGNoYXJzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBzdGFydHNXaXRoUHJlZml4KHRleHQ6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSBjb250cm9sLnZhbHVlPy5zdGFydHNXaXRoKHRleHQpO1xuICAgICAgcmV0dXJuIGlzVmFsaWRcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDoge1xuICAgICAgICAgICAgbXVzdEhhdmVQcmVmaXg6IHtcbiAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGV4YWN0TGVuZ3RoKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlIGFzIHN0cmluZztcbiAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGV4YWN0TGVuZ3RoOiBsZW5ndGgsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIG1heE51bUxlbmd0aChsZW5ndGg6IG51bWJlcikge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXhsZW5ndGhFcnJvciA9IHsgcmVxdWlyZWRMZW5ndGg6IGxlbmd0aCB9O1xuICAgICAgY29uc3QgY29uc3Ryb2xWYWx1ZSA9IGNvbnRyb2wudmFsdWUgKyAnJztcbiAgICAgIGlmIChjb25zdHJvbFZhbHVlLmxlbmd0aCA+IGxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1heGxlbmd0aDogbWF4bGVuZ3RoRXJyb3IsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIG11c3RCZUxvd2VyY2FzZTogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgaWYgKCFjb250cm9sLnZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWUgYXMgc3RyaW5nO1xuICAgIGlmICh2YWx1ZSAhPT0gdmFsdWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbXVzdEJlTG93ZXJjYXNlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgc3RhdGljIGNhbm5vdENvbnRhaW5BY2NlbnRzOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbC52YWx1ZSBhcyBzdHJpbmc7XG4gICAgaWYgKC9eW2EtekEtWjAtOV0rJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjYW5ub3RDb250YWluU3BlY2lhbENoYXJzOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyZHQtZm9ybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL25ncmR0LWZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;;;;;;AACO,SAAS,cAAc,CAAC,SAAS,EAAE;AAC1C,IAAI,IAAI,SAAS,YAAY,eAAe,EAAE;AAC9C,QAAQ,MAAM,kBAAkB,GAAG,SAAS,CAAC,aAAa;AAC1D,QAAQ,IAAI,kBAAkB,EAAE;AAChC,YAAY,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AAC9D;AACA,aAAa;AACb,YAAY,OAAO,IAAI;AACvB;AACA;AACA,SAAS,IAAI,SAAS,YAAY,oBAAoB;AACtD,QAAQ,SAAS,YAAY,OAAO,EAAE;AACtC,QAAQ,OAAO,SAAS,CAAC,OAAO;AAChC;AACA,SAAS;AACT,QAAQ,OAAO,IAAI;AACnB;AACA;;ACXA,MAAM,IAAI,GAAG,MAAM,GAAG;AACf,MAAM,yBAAyB,SAAS,8BAA8B,CAAC;AAC9E,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC/B,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;AAC3B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACxC,IAAI,aAAa,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACnD,IAAI,aAAa,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAClF,IAAI,UAAU,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC9C,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;AACvD,IAAI,gBAAgB,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAC1D,IAAI,WAAW,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;AACnE,IAAI,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC5C,IAAI,IAAI,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;AACrD,IAAI,aAAa,GAAG,KAAK,CAAC,IAAI,EAAE;AAChC,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,SAAS,EAAE,gBAAgB;AACnC,KAAK,CAAC;AACN,IAAI,aAAa,GAAG,KAAK,CAAC,IAAI,EAAE;AAChC,QAAQ,KAAK,EAAE,UAAU;AACzB,QAAQ,SAAS,EAAE,gBAAgB;AACnC,KAAK,CAAC;AACN,IAAI,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC;AACvC,IAAI,QAAQ,GAAG,YAAY,CAAC,MAAM;AAClC,QAAQ,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,mBAAmB,EAAE,IAAI,KAAK;AAC1E,KAAK,CAAC;AACN,IAAI,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;AACnC,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM;AAC7B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,OAAO,OAAO,CAAC,eAAe,EAAE;AAC5C;AACA,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,eAAe,EAAE;AACzC;AACA,KAAK,CAAC;AACN,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM;AAC7B,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE;AACxE,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,OAAO,OAAO,CAAC,cAAc,EAAE,KAAK,SAAS;AACzD;AACA,aAAa;AACb,YAAY,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC5C;AACA,KAAK,CAAC;AACN,IAAI,cAAc,GAAG,MAAM,CAAC,MAAM;AAClC,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,KAAK,CAAC;AACN,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAC/E,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM;AACnC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,OAAO,CAAC,cAAc,EAAE;AACpC,YAAY,OAAO,OAAO,CAAC,MAAM;AACjC;AACA,aAAa;AACb,YAAY,OAAO,IAAI;AACvB;AACA,KAAK,CAAC;AACN,IAAI,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC;AACnC,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACpG,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;AAC3F,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B;AACA,IAAI,UAAU,GAAG,IAAI;AACrB,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AACnD,IAAI,kBAAkB,GAAG,IAAI;AAC7B,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC7B;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,QAAQ;AAC5B;AACA,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,kBAAkB;AACtC;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE;AAC7D,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,QAAQ,EAAE,IAAI;AAC1B,SAAS,CAAC;AACV,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAY,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3D,YAAY,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AACtC,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;AACjD;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,OAAO,EAAE;AAC7C,YAAY,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC;AACzD,YAAY,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACnC;AACA;AACA,IAAI,gBAAgB,CAAC,EAAE,EAAE;AACzB,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;AAC3B;AACA,IAAI,iBAAiB,CAAC,EAAE,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM;AAC9B,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C,YAAY,EAAE,EAAE;AAChB,SAAS;AACT;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,aAAa,EAAE;AACnC;AACA,IAAI,yBAAyB,CAAC,EAAE,EAAE;AAClC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,EAAE;AACpC;AACA,IAAI,qBAAqB,CAAC,KAAK,EAAE;AACjC,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;AAC1B,YAAY,KAAK,GAAG,IAAI,CAAC;AACzB;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE;AAChF,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC7D,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC;AACjD,YAAY,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;AACxC;AACA;AACA,IAAI,mBAAmB,CAAC,MAAM,EAAE;AAChC,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjE,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3C;AACA,aAAa;AACb,YAAY,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7C;AACA;AACA,IAAI,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE;AAC3C,QAAQ,OAAO,MAAM,KAAK,MAAM;AAChC;AACA,IAAI,mBAAmB,CAAC,OAAO,EAAE;AACjC,QAAQ,OAAO,CAAC;AAChB,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACtE,aAAa,SAAS,CAAC,MAAM;AAC7B,YAAY,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnF,SAAS,CAAC;AACV;AACA,IAAI,eAAe,CAAC,aAAa,EAAE;AACnC,QAAQ,OAAO,aAAa;AAC5B;AACA,IAAI,eAAe,CAAC,aAAa,EAAE;AACnC,QAAQ,OAAO,aAAa;AAC5B;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,KAAK,CAAC,MAAM,EAAE;AACtB,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AACrC,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,IAAI;AAClB;AACA,IAAI,OAAO,cAAc,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC9C,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACrL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC1hC;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,IAAI;AACpC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACnLN,MAAM,2BAA2B,SAAS,2BAA2B,CAAC;AAC7E,IAAI,UAAU,GAAG,MAAM,GAAG;AAC1B,IAAI,WAAW,GAAG,MAAM,GAAG;AAC3B,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ;AACpD,QAAQ,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC;AACpC;AACA,IAAI,gBAAgB,CAAC,EAAE,EAAE;AACzB,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE;AAC5B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ;AACpD,QAAQ,QAAQ,EAAE,gBAAgB,GAAG,EAAE,CAAC;AACxC;AACA,IAAI,iBAAiB,CAAC,EAAE,EAAE;AAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;AAC7B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ;AACpD,QAAQ,QAAQ,EAAE,iBAAiB,GAAG,EAAE,CAAC;AACzC;AACA,IAAI,gBAAgB,CAAC,UAAU,EAAE;AACjC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ;AACpD,QAAQ,QAAQ,EAAE,gBAAgB,GAAG,UAAU,CAAC;AAChD;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACvL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAClL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AC5BD,MAAC,0BAA0B,GAAG,IAAI,cAAc,CAAC,aAAa;;ACInE,MAAM,0BAA0B,SAAS,2BAA2B,CAAC;AAC5E,IAAI,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC;AACvD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACpL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAAE,SAAS,EAAE;AACvL,YAAY;AACZ,gBAAgB,OAAO,EAAE,iBAAiB;AAC1C,gBAAgB,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC;AACzE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,SAAS,EAAE,QAAQ,EAAE,CAAC,mBAAmB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAClF;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,qBAAqB;AACnD,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,QAAQ,EAAE,mBAAmB;AACjD,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,iBAAiB;AACtD,4BAA4B,WAAW,EAAE,UAAU,CAAC,MAAM,0BAA0B,CAAC;AACrF,4BAA4B,KAAK,EAAE,IAAI;AACvC,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC/BhC,MAAM,oBAAoB,SAAS,yBAAyB,CAAC;AACpE,IAAI,cAAc,GAAG,KAAK,CAAC,IAAI,EAAE;AACjC,QAAQ,KAAK,EAAE,WAAW;AAC1B,KAAK,CAAC;AACN,IAAI,SAAS,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AACzD,IAAI,eAAe,GAAG,KAAK,CAAC,KAAK,EAAE;AACnC,QAAQ,KAAK,EAAE,YAAY;AAC3B,KAAK,CAAC;AACN,IAAI,UAAU,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3D,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACjE,IAAI,eAAe,CAAC,aAAa,EAAE;AACnC,QAAQ,QAAQ,aAAa;AAC7B,YAAY,KAAK,IAAI;AACrB,gBAAgB,OAAO,IAAI,CAAC,SAAS,EAAE;AACvC,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,IAAI,CAAC,UAAU,EAAE;AACxC,YAAY;AACZ,gBAAgB,OAAO,IAAI;AAC3B;AACA;AACA,IAAI,eAAe,CAAC,aAAa,EAAE;AACnC,QAAQ,QAAQ,aAAa;AAC7B,YAAY,KAAK,IAAI,CAAC,SAAS,EAAE;AACjC,gBAAgB,OAAO,IAAI;AAC3B,YAAY,KAAK,IAAI,CAAC,UAAU,EAAE;AAClC,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,gBAAgB,OAAO,IAAI;AAC3B;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,KAAK,KAAK,IAAI;AAC7B;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAChL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACtmB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACxCD,MAAC,4BAA4B,GAAG,IAAI,cAAc,CAAC,8BAA8B,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,YAAY,EAAE;AACtI,MAAC,gCAAgC,GAAG,IAAI,cAAc,CAAC,kCAAkC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,uBAAuB,EAAE;AACzJ,MAAC,4BAA4B,GAAG,IAAI,cAAc,CAAC,8BAA8B,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,EAAE;AACpI,MAAC,mBAAmB,GAAG,IAAI,cAAc,CAAC,qBAAqB,EAAE;AAC7E,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC;AAClD,CAAC;;ACNM,SAAS,eAAe,CAAC,KAAK,EAAE;AACvC,IAAI,OAAO,KAAK,KAAK,IAAI,GAAG,SAAS,GAAG,KAAK;AAC7C;AACO,SAAS,sBAAsB,CAAC,KAAK,EAAE;AAC9C,IAAI,OAAO,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC;AAC5C;;ACDO,MAAM,gBAAgB,SAAS,yBAAyB,CAAC;AAChE,IAAI,qBAAqB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAChE,IAAI,yBAAyB,GAAG,MAAM,CAAC,gCAAgC,CAAC;AACxE,IAAI,qBAAqB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAChE,IAAI,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC/C,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;AACxB,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE;AAChC,QAAQ,SAAS,EAAE,eAAe;AAClC,KAAK,CAAC;AACN,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM;AAC7B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAQ,OAAO,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,IAAI;AAC/D,KAAK,CAAC;AACN,IAAI,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAE;AAChC,QAAQ,SAAS,EAAE,eAAe;AAClC,KAAK,CAAC;AACN,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM;AAC7B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAQ,OAAO,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,IAAI;AAC/D,KAAK,CAAC;AACN,IAAI,iBAAiB,GAAG,QAAQ,CAAC,MAAM;AACvC,QAAQ,QAAQ,IAAI,CAAC,IAAI,EAAE;AAC3B,YAAY,KAAK,gBAAgB;AACjC,gBAAgB,OAAO,IAAI,CAAC,yBAAyB;AACrD,YAAY,KAAK,MAAM;AACvB,gBAAgB,OAAO,IAAI,CAAC,qBAAqB;AACjD,YAAY,KAAK,MAAM;AACvB,YAAY;AACZ,gBAAgB,OAAO,IAAI,CAAC,qBAAqB;AACjD;AACA,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,KAAK,KAAK,IAAI;AAC7B;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC5K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC1iB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AC3CN,MAAM,aAAa,CAAC;AAC3B,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,MAAM;AACtE,YAAY,QAAQ,EAAE,IAAI,CAAC,IAAI;AAC/B,YAAY,OAAO;AACnB,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;AAC3B,YAAY,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;AAC5C,YAAY,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;AAC7C,kBAAkB;AAClB,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7C,YAAY,YAAY,EAAE,IAAI;AAC9B,SAAS,CAAC,CAAC,CAAC;AACZ;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D;AACA;;ACfO,MAAM,cAAc,SAAS,aAAa,CAAC;AAClD,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,EAAE,CAAC,SAAS,CAAC;AAC5B;AACA;AACY,MAAC,iBAAiB,GAAG,IAAI,cAAc;;ACJ5C,MAAM,mBAAmB,SAAS,aAAa,CAAC;AACvD,IAAI,gBAAgB;AACpB,IAAI,WAAW,CAAC,gBAAgB,GAAG,KAAK,EAAE;AAC1C,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;AAChD;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC;AACtD,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5F;AACA,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B;AACA;;ACdY,MAAC,uBAAuB,GAAG,IAAI,cAAc,CAAC,yBAAyB,EAAE;AACrF,IAAI,OAAO,EAAE,MAAM,IAAI,mBAAmB,EAAE;AAC5C,IAAI,UAAU,EAAE,MAAM;AACtB,CAAC;;ACHM,SAAS,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE;AACrD,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;AAC9B,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC;AACxD;AACA,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,uBAAuB,EAAE;AAC1D,YAAY,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;AACvC,SAAS,CAAC;AACV;AACA,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;AAClC,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,CAAC;AACjE;AACA,IAAI,OAAO,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,CAAC;AAC9D;AACY,MAAC,yBAAyB,GAAG,IAAI,cAAc,CAAC,2BAA2B,EAAE;AACzF,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,OAAO,EAAE,MAAM;AACnB,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACrD,QAAQ,OAAO,CAAC,KAAK,KAAK,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC;AAC9D,KAAK;AACL,CAAC;;ACtBW,MAAC,yBAAyB,GAAG,IAAI,cAAc,CAAC,2BAA2B,EAAE;AACzF,IAAI,OAAO,EAAE,MAAM,QAAQ;AAC3B,IAAI,UAAU,EAAE,MAAM;AACtB,CAAC;;ACOM,MAAM,qBAAqB,SAAS,yBAAyB,CAAC;AACrE,IAAI,iBAAiB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACvD,IAAI,kBAAkB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC1D,IAAI,cAAc,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACtD,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAChD,QAAQ,KAAK,EAAE,QAAQ;AACvB,KAAK,CAAC;AACN,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACnD,IAAI,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AACnF,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM;AAChC,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9C,QAAQ,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW;AACxD,cAAc;AACd,cAAc,CAAC,WAAW,CAAC;AAC3B,KAAK,CAAC;AACN,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,IAAI,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACtD,QAAQ,KAAK,EAAE,aAAa;AAC5B,QAAQ,SAAS,EAAE,eAAe;AAClC,KAAK,CAAC;AACN,IAAI,WAAW,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7D,IAAI,kBAAkB,GAAG,QAAQ,CAAC,MAAM;AACxC,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9C,QAAQ,OAAO,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,IAAI;AAC7E,KAAK,CAAC;AACN,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;AACxC,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC5D,IAAI,SAAS,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC;AACrC,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM;AACjC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;AAC1C;AACA,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;AAC5C;AACA,KAAK,CAAC;AACN,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM;AAC/B,QAAQ,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AACvD,KAAK,CAAC;AACN,IAAI,QAAQ,GAAG;AACf,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACjE;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,WAAW,EAAE;AAC3B,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACpE;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AACnC,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC3B,YAAY;AACZ;AACA,QAAQ,IAAI,UAAU,GAAG,IAAI;AAC7B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAClD,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC/B,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAClD,YAAY,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtC,gBAAgB,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE;AAC1C,oBAAoB,UAAU,GAAG,KAAK;AACtC,oBAAoB;AACpB;AACA;AACA;AACA,QAAQ,MAAM,MAAM,GAAG;AACvB,cAAc,IAAI,CAAC,MAAM;AACzB,cAAc,iBAAiB;AAC/B,QAAQ;AACR,aAAa,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7C,aAAa,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,aAAa,SAAS,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChC,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAClC,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACjC;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;AACrD,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC1C;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AACxC;AACA,IAAI,qBAAqB,GAAG,CAAC,IAAI,KAAK;AACtC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACjD,QAAQ,IAAI,OAAO,KAAK,IAAI;AAC5B,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AAChC,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE;AACnE,gBAAgB,OAAO;AACvB,oBAAoB,WAAW,EAAE;AACjC,wBAAwB,GAAG,EAAE,OAAO;AACpC,wBAAwB,MAAM,EAAE,IAAI,CAAC,IAAI;AACzC,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,QAAQ,OAAO,IAAI;AACnB,KAAK;AACL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACjL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACr1B;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACzHN,MAAM,wBAAwB,SAAS,aAAa,CAAC;AAC5D,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACzD;AACA;;ACJO,MAAM,kBAAkB,SAAS,aAAa,CAAC;AACtD,IAAI,QAAQ;AACZ,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjE;AACA;;ACXY,MAAC,+BAA+B,GAAG,IAAI,cAAc,CAAC,iBAAiB;;ACI5E,MAAM,8BAA8B,SAAS,2BAA2B,CAAC;AAChF,IAAI,cAAc,GAAG,MAAM,CAAC,+BAA+B,CAAC;AAC5D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACxL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,yBAAyB,EAAE,SAAS,EAAE;AAC/L,YAAY;AACZ,gBAAgB,OAAO,EAAE,iBAAiB;AAC1C,gBAAgB,WAAW,EAAE,UAAU,CAAC,MAAM,8BAA8B,CAAC;AAC7E,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,SAAS,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACtF;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,yBAAyB;AACvD,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,QAAQ,EAAE,uBAAuB;AACrD,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,iBAAiB;AACtD,4BAA4B,WAAW,EAAE,UAAU,CAAC,MAAM,8BAA8B,CAAC;AACzF,4BAA4B,KAAK,EAAE,IAAI;AACvC,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC9BhC,MAAM,wBAAwB,SAAS,yBAAyB,CAAC;AACxE,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE;AAC3B,QAAQ,SAAS,EAAE,sBAAsB;AACzC,KAAK,CAAC;AACN,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE;AAC3B,QAAQ,SAAS,EAAE,sBAAsB;AACzC,KAAK,CAAC;AACN,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE;AAC5B,QAAQ,SAAS,EAAE,sBAAsB;AACzC,KAAK,CAAC;AACN,IAAI,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE;AACpC,QAAQ,SAAS,EAAE,eAAe;AAClC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,KAAK,KAAK,IAAI;AAC7B;AACA,IAAI,eAAe,CAAC,aAAa,EAAE;AACnC,QAAQ,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;AAC/C,YAAY,OAAO,aAAa;AAChC;AACA,aAAa,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;AACrE,YAAY,OAAO,UAAU,CAAC,aAAa,CAAC;AAC5C;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACpL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACjqB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AClCN,SAAS,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE;AAC5D,IAAI,IAAI,QAAQ,GAAG,CAAC,EAAE;AACtB,QAAQ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;AAC5C;AACA,IAAI,IAAI,SAAS,GAAG,CAAC,EAAE;AACvB,QAAQ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;AAC7C;AACA,IAAI,IAAI,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5C,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,EAAE;AACpB,YAAY,UAAU,EAAE,IAAI,CAAC,MAAM;AACnC,YAAY,SAAS,EAAE,SAAS;AAChC,SAAS;AACT;AACA,IAAI,MAAM,KAAK,GAAG,SAAS,GAAG,QAAQ;AACtC,IAAI,MAAM,GAAG,GAAG,KAAK,GAAG,QAAQ;AAChC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACxC,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,KAAK;AACnB,QAAQ,UAAU,EAAE,IAAI,CAAC,MAAM;AAC/B,QAAQ,SAAS,EAAE,SAAS;AAC5B,KAAK;AACL;;ACtBO,MAAM,mBAAmB,CAAC;AACjC;;ACEO,MAAM,0BAA0B,SAAS,mBAAmB,CAAC;AACpE,IAAI,IAAI;AACR,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,aAAa,GAAG,KAAK;AACzB,IAAI,gBAAgB;AACpB,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACzD;AACA,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,QAAQ,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;AACvG,QAAQ,OAAO,EAAE,CAAC,IAAI,CAAC;AACvB;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,KAAK;AACzB;AACA,IAAI,KAAK,CAAC,IAAI,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,KAAK;AACzB;AACA,IAAI,aAAa,CAAC,GAAG,EAAE;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE;AAChC,QAAQ,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;AAC9B,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;AAChF,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC;AACpC;AACA;AACA,QAAQ,OAAO,EAAE,CAAC,MAAM,CAAC;AACzB;AACA,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACzC;AACA,IAAI,cAAc,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACnC,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;AACvD,SAAS,CAAC,CAAC;AACX;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,OAAO,IAAI,CAAC,gBAAgB;AACxC;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACrD,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,OAAO,IAAI,CAAC,gBAAgB;AACxC;AACA,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzF;AACA;;ACrDY,MAAC,qBAAqB,GAAG;AACrC,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,aAAa,EAAE,CAAC;AACpB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,WAAW,EAAE,IAAI,GAAG,EAAE;AAC1B,IAAI,UAAU,EAAE,IAAI;AACpB;AACA;AACA,IAAI,uBAAuB,EAAE,uBAAuB;AACpD,IAAI,uBAAuB,EAAE,uBAAuB;AACpD,IAAI,aAAa,EAAE,IAAI;AACvB,IAAI,oBAAoB,EAAE,IAAI;AAC9B,IAAI,gBAAgB,EAAE,EAAE;AACxB,IAAI,eAAe,EAAE,EAAE;AACvB;;ACnBO,SAAS,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE;AACjD,IAAI,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;AAC/B,QAAQ,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;AACnC,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;AACjC;;ACAA,SAAS,iBAAiB,CAAC,YAAY,GAAG,qBAAqB,EAAE;AACjE,IAAI,OAAO,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;AAC1D,QAAQ,SAAS,CAAC,KAAK,EAAE;AACzB,YAAY,KAAK,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,WAAW,EAAE;AACpE,YAAY,KAAK,CAAC,aAAa,EAAE,EAAE,YAAY,CAAC,WAAW,EAAE;AAC7D,SAAS;AACT,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK,MAAM;AACjC,QAAQ,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;AAC7D,QAAQ,aAAa,EAAE,QAAQ,CAAC,MAAM;AACtC,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;AAC3D,SAAS,CAAC;AACV,QAAQ,cAAc,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC;AACtE,QAAQ,cAAc,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,oBAAoB,EAAE,KAAK,IAAI,CAAC;AAC7E,QAAQ,OAAO,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,aAAa,EAAE,KAAK,IAAI;AAC9D,YAAY,KAAK,CAAC,oBAAoB,EAAE,KAAK,IAAI,CAAC;AAClD;AACA;AACA,QAAQ,cAAc,EAAE,QAAQ,CAAC,MAAM;AACvC,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE;AACzC,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE;AACnD,YAAY,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,EAAE;AACpD,YAAY,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,EAAE;AACvD,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;AAC1C,oBAAoB,GAAG,EAAE;AACzB,oBAAoB,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;AACpD,iBAAiB,CAAC,CAAC;AACnB;AACA,YAAY,MAAM,QAAQ,GAAG,EAAE;AAC/B,YAAY,MAAM,kBAAkB,GAAG,KAAK,CAAC,uBAAuB,EAAE;AACtE,YAAY,MAAM,kBAAkB,GAAG,KAAK,CAAC,uBAAuB,EAAE;AACtE,YAAY,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;AAC7D,gBAAgB,EAAE;AAClB,gBAAgB,KAAK,EAAE,kBAAkB,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;AAChE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;AACjE,gBAAgB,EAAE;AAClB,gBAAgB,KAAK,EAAE,kBAAkB,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;AAChE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,aAAa,CAAC,CAAC;AACf,YAAY,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC;AACjD,YAAY,QAAQ,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC;AACjD,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACpC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9E,aAAa,CAAC;AACd,YAAY,OAAO,QAAQ;AAC3B,SAAS,CAAC;AACV,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,KAAK,MAAM;AACjC,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACzD,gBAAgB,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;AACpD;AACA,iBAAiB;AACjB,gBAAgB,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AACxD;AACA,SAAS;AACT,QAAQ,KAAK,GAAG;AAChB,YAAY,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;AACxD,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;AAChD,YAAY,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;AACtD,YAAY,IAAI,CAAC,UAAU,IAAI,KAAK,KAAK,IAAI,EAAE;AAC/C,gBAAgB;AAChB;AACA,YAAY,MAAM,MAAM,GAAG;AAC3B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,SAAS,EAAE,KAAK;AAChC,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,aAAa;AACb,YAAY,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;AACjE,YAAY,IAAI,cAAc,EAAE;AAChC,gBAAgB,IAAI,0BAA0B,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;AAC/E,oBAAoB;AACpB;AACA,qBAAqB;AACrB,oBAAoB,cAAc,CAAC,YAAY,CAAC,WAAW,EAAE;AAC7D;AACA;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAC3D,YAAY,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC/E;AACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACtC,gBAAgB,UAAU,CAAC,KAAK,EAAE;AAClC,oBAAoB,aAAa,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;AACnE,iBAAiB,CAAC;AAClB;AACA,SAAS;AACT,QAAQ,iBAAiB,CAAC,aAAa,EAAE;AACzC,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC;AACzE,gBAAgB,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3D,gBAAgB,QAAQ,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE;AACvD,aAAa;AACb,SAAS;AACT,QAAQ,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE;AAC7C,YAAY,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;AAClD,YAAY,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;AAC1C,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE;AAC/D,oBAAoB,aAAa,GAAG,IAAI;AACxC;AACA;AACA,iBAAiB,IAAI,aAAa,CAAC,SAAS,GAAG,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;AACxF,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,aAAa,GAAG,IAAI;AACpC;AACA,YAAY,MAAM,OAAO,GAAG;AAC5B,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AAC3C,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AACpD,aAAa;AACb,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,gBAAgB,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3C,oBAAoB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACrH,gBAAgB,aAAa;AAC7B,gBAAgB,eAAe,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI;AACzD,oBAAoB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ;AAC7D,gBAAgB,OAAO;AACvB,gBAAgB,aAAa,EAAE,IAAI;AACnC,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,oBAAoB,EAAE;AACvC,SAAS;AACT,QAAQ,aAAa,CAAC,KAAK,EAAE;AAC7B,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,gBAAgB,UAAU,EAAE,iBAAiB,CAAC,KAAK,CAAC;AACpD,gBAAgB,aAAa,EAAE,IAAI;AACnC,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,gBAAgB,GAAG;AAC3B,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,gBAAgB,aAAa,EAAE,IAAI;AACnC,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,aAAa,CAAC,UAAU,EAAE;AAClC,YAAY,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,WAAW,EAAE;AACtE,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,gBAAgB,UAAU;AAC1B,gBAAgB,aAAa,EAAE,IAAI;AACnC,gBAAgB,UAAU,EAAE,IAAI;AAChC,gBAAgB,eAAe,EAAE,UAAU,CAAC,eAAe;AAC3D,gBAAgB,aAAa,EAAE,CAAC;AAChC,gBAAgB,UAAU,EAAE,CAAC;AAC7B,gBAAgB,OAAO,EAAE,EAAE;AAC3B,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC3C,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,oBAAoB,EAAE;AAC3C;AACA,SAAS;AACT,QAAQ,QAAQ,CAAC,KAAK,EAAE;AACxB,YAAY,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,YAAY,IAAI,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAClD,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC;AAC5C,gBAAgB,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE;AACzD,oBAAoB,IAAI,CAAC,KAAK,EAAE;AAChC;AACA;AACA,SAAS;AACT,QAAQ,KAAK,GAAG;AAChB,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,aAAa,EAAE,CAAC;AAChC,gBAAgB,OAAO,EAAE,EAAE;AAC3B,gBAAgB,UAAU,EAAE,CAAC;AAC7B,gBAAgB,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,eAAe,IAAI,IAAI;AACrF,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,oBAAoB,GAAG;AAC/B,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,gBAAgB,eAAe,EAAE,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,eAAe,IAAI,IAAI;AACrF,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,WAAW,CAAC,GAAG,EAAE;AACzB,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,gBAAgB,eAAe,EAAE,EAAE;AACnC,gBAAgB,gBAAgB,EAAE,GAAG;AACrC,gBAAgB,WAAW,EAAE,IAAI,GAAG,EAAE;AACtC,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,oBAAoB,EAAE;AACvC,SAAS;AACT,QAAQ,MAAM,CAAC,GAAG,EAAE;AACpB,YAAY,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAChE,YAAY,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7E,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,gBAAgB,UAAU,CAAC,KAAK,EAAE;AAClC,oBAAoB,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;AACrE,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,oBAAoB,EAAE;AAC3C;AACA,SAAS;AACT,QAAQ,WAAW,GAAG;AACtB,YAAY,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC;AACzE,YAAY,IAAI,eAAe,EAAE;AACjC,gBAAgB,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE;AAC1D;AACA,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,gBAAgB,gBAAgB,EAAE,EAAE;AACpC,gBAAgB,WAAW,EAAE,IAAI,GAAG,EAAE;AACtC,gBAAgB,oBAAoB,EAAE,IAAI;AAC1C,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,iBAAiB,GAAG;AAC5B,YAAY,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC;AAChE,YAAY,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAChE,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,YAAY,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACrE,YAAY,MAAM,UAAU,GAAG,EAAE;AACjC,YAAY,IAAI,eAAe,GAAG,KAAK;AACvC,YAAY,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;AACzC,gBAAgB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AAC7D,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC;AAC7C,oBAAoB,eAAe,GAAG,IAAI;AAC1C;AACA,qBAAqB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACpD,oBAAoB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AACvC;AACA;AACA,YAAY,IAAI,eAAe,EAAE;AACjC,gBAAgB,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC;AAClD;AACA,YAAY,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,gBAAgB,IAAI,CAAC,2BAA2B,EAAE;AAClD;AACA,YAAY,UAAU,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC/D,YAAY,OAAO,UAAU;AAC7B,SAAS;AACT,QAAQ,oBAAoB,GAAG;AAC/B,YAAY,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE;AACjD,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC1D,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,UAAU,EAAE;AACzD,gBAAgB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,oBAAoB,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,CAAC;AACjE;AACA,qBAAqB;AACrB,oBAAoB,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC5D;AACA;AACA,SAAS;AACT,QAAQ,2BAA2B,GAAG;AACtC,YAAY,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC;AACzE,YAAY,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;AAClD,YAAY,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC;AAC/E,YAAY,IAAI,eAAe,EAAE;AACjC,gBAAgB,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACvF,oBAAoB,YAAY,EAAE;AAClC,oBAAoB,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE;AAC9D,oBAAoB,UAAU,CAAC,KAAK,EAAE;AACtC,wBAAwB,oBAAoB,EAAE,IAAI;AAClD,wBAAwB,gBAAgB,EAAE,EAAE;AAC5C,qBAAqB,CAAC;AACtB;AACA;AACA,SAAS;AACT,QAAQ,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE;AACvC,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,gBAAgB;AAChB;AACA,YAAY,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK;AACzE,gBAAgB,MAAM,UAAU,GAAG,EAAE;AACrC,gBAAgB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACzE,gBAAgB,MAAM,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;AACzE,gBAAgB,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AACpE,oBAAoB,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACrC,wBAAwB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACjD,wBAAwB,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChE,wBAAwB,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjE;AACA,yBAAyB,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AAC/C,wBAAwB,OAAO,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,8BAA8B,CAAC,EAAE,UAAU,CAAC;AACrH,wBAAwB,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;AAC5C;AACA,yBAAyB;AACzB,wBAAwB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3C;AACA;AACA,gBAAgB,UAAU,CAAC,KAAK,EAAE;AAClC,oBAAoB,oBAAoB,EAAE,IAAI;AAC9C,oBAAoB,gBAAgB,EAAE,UAAU;AAChD,oBAAoB,WAAW,EAAE,WAAW;AAC5C,oBAAoB,eAAe,EAAE,CAAC,GAAG,WAAW,CAAC;AACrD,oBAAoB,WAAW,EAAE,IAAI;AACrC,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,oBAAoB,EAAE;AAC3C,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AAC7B,gBAAgB,UAAU,CAAC,KAAK,EAAE;AAClC,oBAAoB,oBAAoB,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE;AACpE,iBAAiB,CAAC;AAClB;AACA,SAAS;AACT,QAAQ,YAAY,CAAC,EAAE,EAAE;AACzB,YAAY,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,SAAS;AACT,QAAQ,MAAM,CAAC,EAAE,EAAE;AACnB,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;AACvD,YAAY,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,gBAAgB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;AAC1D;AACA,YAAY,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC;AACnE,YAAY,MAAM,kBAAkB,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;AACxE,YAAY,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AAChF,gBAAgB,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,aAAa,KAAK,aAAa,KAAK,EAAE,CAAC;AACxG,gBAAgB,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,KAAK,EAAE,CAAC;AACrG,gBAAgB,UAAU,CAAC,KAAK,EAAE;AAClC,oBAAoB,eAAe,EAAE,iBAAiB;AACtD,oBAAoB,gBAAgB,EAAE,kBAAkB;AACxD,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;AACrD,oBAAoB,IAAI,CAAC,2BAA2B,EAAE;AACtD;AACA;AACA,iBAAiB,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACrC,gBAAgB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;AAC9C,gBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACjC,gBAAgB,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC1D;AACA,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AAChF,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,oBAAoB,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACrC;AACA,qBAAqB;AACrB,oBAAoB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;AAClD,oBAAoB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC;AACxC,oBAAoB,UAAU,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC9D;AACA;AACA,SAAS;AACT,QAAQ,WAAW,GAAG;AACtB,YAAY,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,WAAW,EAAE;AACtE,YAAY,UAAU,CAAC,KAAK,EAAE;AAC9B,gBAAgB,aAAa,EAAE,IAAI;AACnC,gBAAgB,UAAU,EAAE,IAAI;AAChC,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,UAAU,CAAC,IAAI,EAAE;AACzB,YAAY,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,gBAAgB,OAAO,KAAK;AAC5B;AACA,YAAY,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C,YAAY,OAAO,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AACvD,SAAS;AACT,QAAQ,WAAW,CAAC,IAAI,EAAE;AAC1B,YAAY,UAAU,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjD,SAAS;AACT,QAAQ,iBAAiB,CAAC,KAAK,EAAE;AACjC,YAAY,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,gBAAgB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC;AACtD;AACA,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACxC,gBAAgB,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;AAChD,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;AAC1C,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK,CAAC,CAAC,CAAC;AACR;AACY,MAAC,cAAc,GAAG,iBAAiB;AAC/C,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,OAAO,KAAK;AACpB;AACA,SAAS,IAAI,KAAK,YAAY,KAAK,EAAE;AACrC,QAAQ,OAAO,KAAK,CAAC,OAAO;AAC5B;AACA,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE;AACvE,QAAQ,OAAO,KAAK,CAAC,OAAO;AAC5B;AACA,IAAI,OAAO,kBAAkB;AAC7B;;AC1XO,MAAM,2CAA2C,CAAC;AACzD,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAClC,IAAI,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC;AAClC,QAAQ,KAAK,EAAE,SAAS;AACxB,KAAK,CAAC;AACN,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AACpE,IAAI,YAAY,CAAC,OAAO,EAAE;AAC1B,QAAQ,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,YAAY,OAAO,EAAE;AACrB;AACA,QAAQ,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;AAC1D,YAAY,OAAO,OAAO;AAC1B;AACA,aAAa;AACb,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AAC3C,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;AACpC,gBAAgB,KAAK,EAAE,KAAK;AAC5B,aAAa,CAAC,CAAC;AACf;AACA;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,OAAO,0BAA0B;AACzC;AACA,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AACtD,IAAI,aAAa,GAAG;AACpB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpD,QAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AACzD;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2CAA2C,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACrM,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2CAA2C,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC9T;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2CAA2C,EAAE,UAAU,EAAE,CAAC;AACrJ,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACpCN,MAAM,wBAAwB,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACxD,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,EAAE;AAC/B;AACA,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;AAC7B,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,EAAE;AAC/B;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC;AACrD,YAAY,KAAK,EAAE,SAAS;AAC5B,YAAY,QAAQ,EAAE,QAAQ;AAC9B,SAAS,CAAC;AACV;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAClL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,2BAA2B,EAAE,aAAa,EAAE,2BAA2B,EAAE,aAAa,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACpd;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,mBAAmB;AACjD,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,KAAK,EAAE,YAAY;AAC3C,wBAAwB,6BAA6B,EAAE,aAAa;AACpE,wBAAwB,6BAA6B,EAAE,aAAa;AACpE,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AC3CD,MAAC,wBAAwB,GAAG,IAAI,cAAc,CAAC,WAAW;;ACK/D,MAAM,wBAAwB,SAAS,2BAA2B,CAAC;AAC1E,IAAI,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACrD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,IAAI,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE;AACtD,gBAAgB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ;AAC3D,gBAAgB,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK;AAC7C,gBAAgB,IAAI,KAAK,EAAE;AAC3B,oBAAoB,MAAM,UAAU,GAAG,IAAI,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC;AACrF,oBAAoB,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;AACnD,oBAAoB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE;AAC9C,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACxC;AACA;AACA;AACA,SAAS,CAAC;AACV;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAClL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE;AACnL,YAAY;AACZ,gBAAgB,OAAO,EAAE,iBAAiB;AAC1C,gBAAgB,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACvE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,SAAS,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAChF;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,mBAAmB;AACjD,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,QAAQ,EAAE,iBAAiB;AAC/C,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,iBAAiB;AACtD,4BAA4B,WAAW,EAAE,UAAU,CAAC,MAAM,wBAAwB,CAAC;AACnF,4BAA4B,KAAK,EAAE,IAAI;AACvC,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACxChC,MAAM,4BAA4B,SAAS,yBAAyB,CAAC;AAC5E,IAAI,eAAe,GAAG,KAAK,CAAC,KAAK,EAAE;AACnC,QAAQ,KAAK,EAAE,YAAY;AAC3B,KAAK,CAAC;AACN,IAAI,UAAU,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3D,IAAI,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE;AAClC,QAAQ,KAAK,EAAE,YAAY;AAC3B,KAAK,CAAC;AACN,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAClC,IAAI,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc;AAC9C,IAAI,qBAAqB,GAAG,KAAK,CAAC,IAAI,EAAE;AACxC,QAAQ,KAAK,EAAE,gBAAgB;AAC/B,KAAK,CAAC;AACN,IAAI,gBAAgB,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACvE,IAAI,oBAAoB,GAAG,MAAM,CAAC,MAAM;AACxC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACjD,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC;AACnD;AACA,aAAa;AACb,YAAY,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;AAC5C;AACA,KAAK,CAAC;AACN,IAAI,SAAS,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC;AACrC,IAAI,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AACrD,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM;AACjC,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC9B,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AAC9D,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM;AACxC;AACA,aAAa;AACb,YAAY,OAAO,IAAI;AACvB;AACA,KAAK,CAAC;AACN,IAAI,iBAAiB,GAAG,KAAK,CAAC,GAAG,EAAE;AACnC,QAAQ,KAAK,EAAE,UAAU;AACzB,KAAK,CAAC;AACN,IAAI,YAAY,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC/D,IAAI,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC;AAC7J,IAAI,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE;AACpD,QAAQ,YAAY,EAAE,IAAI;AAC1B,KAAK,CAAC;AACN,IAAI,aAAa,GAAG,KAAK,CAAC,EAAE,EAAE;AAC9B,QAAQ,KAAK,EAAE,UAAU;AACzB,KAAK,CAAC;AACN,IAAI,cAAc,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAC/E,IAAI,OAAO,GAAG,QAAQ,CAAC,MAAM;AAC7B,QAAQ,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpC,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAY,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5D,KAAK,CAAC;AACN,IAAI,gBAAgB,GAAG,MAAM,CAAC,MAAM;AACpC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE;AACjD,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;AAChD;AACA,KAAK,CAAC;AACN,IAAI,QAAQ,GAAG;AACf,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AACtC,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE;AAC/C,YAAY,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;AACnD,kBAAkB,OAAO,CAAC;AAC1B,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC;AACjC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC;AACA,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACrC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC;AACA,QAAQ,IAAI,CAAC;AACb,aAAa,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,aAAa,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC1D;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAClC;AACA,IAAI,sBAAsB,GAAG,MAAM,CAAC,MAAM;AAC1C,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACpD,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACrD,QAAQ,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3D,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC7C,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AAChD,YAAY;AACZ;AACA,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAY,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa;AAClE,kBAAkB;AAClB,kBAAkB,aAAa,KAAK;AACpC,sBAAsB,CAAC,aAAa;AACpC,sBAAsB,EAAE;AACxB,YAAY,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE;AACtD,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;AAClD;AACA;AACA,aAAa,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACrE,YAAY,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AAC5C;AACA,KAAK,CAAC;AACN,IAAI,mBAAmB,GAAG,MAAM,CAAC,MAAM;AACvC,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AAClD,QAAQ,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AAC7D,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACrD,QAAQ,IAAI,aAAa,KAAK,IAAI,EAAE;AACpC,YAAY,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa;AAChE,kBAAkB;AAClB,kBAAkB,CAAC,aAAa,CAAC;AACjC,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE;AACpD,gBAAgB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC;AACxD;AACA;AACA,aAAa;AACb,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;AACpC;AACA,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACxL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,qBAAqB,EAAE,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACh6B;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AC7HN,MAAM,uBAAuB,SAAS,4BAA4B,CAAC;AAC1E,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM;AAC9B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AACnD,QAAQ,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI;AACpD,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AACnD;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC9K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACZN,MAAM,wBAAwB,SAAS,4BAA4B,CAAC;AAC3E,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM;AAC9B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AAChD,QAAQ,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;AACjD,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,KAAK,KAAK,IAAI;AAC7B;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACpL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;AACpJ,YAAY;AACZ,gBAAgB,OAAO,EAAE,yBAAyB;AAClD,gBAAgB,QAAQ,EAAE,wBAAwB;AAClD,aAAa;AACb,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACjD;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,yBAAyB;AAC9D,4BAA4B,QAAQ,EAAE,wBAAwB;AAC9D,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AC1BN,MAAM,oBAAoB,SAAS,yBAAyB,CAAC;AACpE,IAAI,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE;AACpC,QAAQ,SAAS,EAAE,eAAe;AAClC,KAAK,CAAC;AACN,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;AAClE,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;AAClE,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AAC3D,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI;AAC7C;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAChL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACnqB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACfN,MAAM,qBAAqB,SAAS,yBAAyB,CAAC;AACrE,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;AACxB,IAAI,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE;AACpC,QAAQ,SAAS,EAAE,eAAe;AAClC,KAAK,CAAC;AACN,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;AACvE,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC;AACvE,IAAI,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE;AAC/B,QAAQ,SAAS,EAAE,eAAe;AAClC,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI;AAC7C;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACjL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACh0B;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACrBN,MAAM,4BAA4B,SAAS,mBAAmB,CAAC;AACtE;;ACMO,MAAM,2BAA2B,SAAS,yBAAyB,CAAC;AAC3E,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC9D,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AACjC,IAAI,MAAM;AACV,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AACpD;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE;AACjC;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,KAAK;AACpD;AACA,IAAI,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;AAC5B,IAAI,YAAY,GAAG,MAAM,EAAE;AAC3B,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAClC,IAAI,IAAI,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC;AAChC,IAAI,UAAU,GAAG,EAAE;AACnB,IAAI,YAAY,GAAG,IAAI;AACvB,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM;AAC/B,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AACjD,KAAK,CAAC;AACN,IAAI,aAAa,GAAG,MAAM,CAAC,MAAM;AACjC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;AAC9C,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrC;AACA,KAAK,CAAC;AACN,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AAChF,IAAI,QAAQ,GAAG;AACf,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,CAAC,IAAI,CAAC;AAClB,aAAa,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC;AACvO,aAAa,SAAS,CAAC,CAAC,GAAG,KAAK;AAChC,YAAY,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC;AAChE,SAAS,CAAC;AACV;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AACvC,QAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC5F,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;AAC5C,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;AAClD;AACA,aAAa;AACb,YAAY,IAAI,CAAC,YAAY,GAAG,KAAK;AACrC;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,WAAW,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/F;AACA,IAAI,mBAAmB,CAAC,EAAE,EAAE;AAC5B,QAAQ,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;AACxD,QAAQ,IAAI,CAAC,UAAU;AACvB,YAAY;AACZ,QAAQ;AACR,aAAa,aAAa,CAAC,CAAC,EAAE,CAAC;AAC/B,aAAa,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACrD,aAAa,SAAS,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;AAC5C,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACxD,gBAAgB,IAAI,CAAC,YAAY,GAAG,KAAK;AACzC,gBAAgB;AAChB;AACA,YAAY,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK;AACnE,YAAY,MAAM,KAAK,GAAG,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC;AACjE,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,aAAa;AAC5E,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC;AACtE,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoB,UAAU,CAAC,KAAK,GAAG,KAAK;AAC5C;AACA;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AACrC,YAAY,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC;AAC3D,YAAY,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC;AACpC,YAAY,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACjF,YAAY,IAAI,CAAC,YAAY,GAAG,KAAK;AACrC,SAAS,CAAC;AACV;AACA,IAAI,kBAAkB,CAAC,UAAU,EAAE;AACnC,QAAQ,MAAM,KAAK,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;AAC1D,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AAC3C,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnC,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACxD,gBAAgB,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;AAC1C,gBAAgB,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACrF,aAAa,CAAC,CAAC;AACf;AACA,QAAQ,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;AACxD,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;AAC3C,gBAAgB,MAAM,EAAE,GAAG,KAAK;AAChC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjC,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvD,aAAa,CAAC,CAAC;AACf;AACA,QAAQ,OAAO;AACf,aAAa,yBAAyB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;AACnF,aAAa,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD;AACA,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE;AACrC,QAAQ,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;AACxD,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;AACrC,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC;AACpC,QAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC7E,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,YAAY,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACjC,YAAY,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7C,YAAY,MAAM,KAAK,GAAG,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC;AACjE,YAAY,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7B,YAAY,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC;AACnD;AACA,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/C,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACpD,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACpC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACzC;AACA;AACA,aAAa;AACb,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACpD,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACpC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACzC;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AACvC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACnD;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;AAC/B,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACnD,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC1D,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC;AACA,IAAI,gBAAgB,CAAC,UAAU,EAAE;AACjC,QAAQ,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAC1C,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACtC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACvD;AACA;AACA,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACrC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAClD;AACA;AACA,IAAI,oBAAoB,GAAG,CAAC,UAAU,KAAK;AAC3C,QAAQ,OAAO,CAAC,IAAI,KAAK;AACzB,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;AAC5D,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,gBAAgB,OAAO,IAAI;AAC3B;AACA,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,gBAAgB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;AACzC;AACA,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,gBAAgB,MAAM,SAAS,GAAG,UAAU,EAAE,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACxF,gBAAgB,MAAM,MAAM,GAAG,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACpE,gBAAgB,IAAI,SAAS,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE;AAC/D,oBAAoB,MAAM,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,EAAE;AAC9D,oBAAoB,OAAO,IAAI;AAC/B;AACA,gBAAgB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;AAC3C;AACA,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,gBAAgB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE;AAC9C;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACvL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACxlB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;AACvC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;AACjD,aAAa,CAAC,EAAE,EAAE,CAAC;;AC5LP,MAAC,6BAA6B,GAAG,IAAI,cAAc,CAAC,eAAe;;ACGxE,SAAS,aAAa,CAAC,MAAM,EAAE;AACtC,IAAI,IAAI,MAAM,EAAE;AAChB,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACjC,QAAQ,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE;AAC7B;AACA,IAAI,OAAO,IAAI;AACf;AACY,MAAC,wBAAwB,GAAG;AACxC,IAAI,QAAQ,EAAE,MAAM,CAAC,kBAAkB,CAAC;AACxC,IAAI,KAAK,EAAE,MAAM,yBAAyB;AAC1C,IAAI,SAAS,EAAE,CAAC,KAAK,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,cAAc,CAAC;AACxE,IAAI,SAAS,EAAE,CAAC,KAAK,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,cAAc,CAAC;AACxE,IAAI,QAAQ,EAAE,MAAM,qBAAqB;AACzC,IAAI,aAAa,EAAE,MAAM,0BAA0B;AACnD,IAAI,UAAU,EAAE,MAAM,2BAA2B;AACjD,IAAI,QAAQ,EAAE,CAAC,KAAK,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,GAAG,CAAC;AAC3D;AACO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAClD,IAAI,UAAU,GAAG,CAAC,MAAM;AACxB,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,6BAA6B,EAAE;AAC/D,YAAY,QAAQ,EAAE,IAAI;AAC1B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,OAAO,CAAC,IAAI,CAAC,2DAA2D;AACpF,gBAAgB,iDAAiD,CAAC;AAClE;AACA,QAAQ,OAAO,QAAQ,IAAI,wBAAwB;AACnD,KAAK,GAAG;AACR,IAAI,SAAS,CAAC,MAAM,EAAE;AACtB,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY,OAAO,EAAE;AACrB,QAAQ,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC;AAC3C,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AACjD,YAAY,IAAI,EAAE,EAAE;AACpB,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE;AACzC,oBAAoB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;AAClE,wBAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,qBAAqB,CAAC;AACtB;AACA,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAC1D;AACA,iBAAiB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;AACtD,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACjE;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,mBAAmB,CAAC;AACzE;AACA;AACA,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AACrK,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAClK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,IAAI,EAAE,cAAc;AACxC,oBAAoB,UAAU,EAAE,IAAI;AACpC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AC/DN,MAAM,iBAAiB,CAAC;AAC/B,IAAI,OAAO,WAAW,GAAG,CAAC,OAAO,KAAK;AACtC,QAAQ,IAAI,KAAK,GAAG,IAAI;AACxB,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;AACnC,YAAY,KAAK,GAAG,IAAI;AACxB;AACA,aAAa,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;AACpD,YAAY,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7C;AACA,aAAa,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE;AACpD,YAAY,KAAK,GAAG,OAAO,CAAC,KAAK;AACjC;AACA,aAAa,IAAI,OAAO,CAAC,KAAK,YAAY,IAAI,EAAE;AAChD,YAAY,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;AAC3C;AACA,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE;AACjD,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO;AACf,YAAY,YAAY,EAAE,IAAI;AAC9B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,cAAc,GAAG,CAAC,OAAO,KAAK;AACzC,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;AACnC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5C,QAAQ,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5E,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,EAAE,EAAE;AAClD,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO;AACf,YAAY,cAAc,EAAE,IAAI;AAChC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,qBAAqB,CAAC,cAAc,EAAE,KAAK,GAAG,mBAAmB,EAAE,eAAe,EAAE;AAC/F,QAAQ,IAAI,MAAM,GAAG,KAAK;AAC1B,QAAQ,OAAO,CAAC,UAAU,KAAK;AAC/B,YAAY,MAAM,YAAY,GAAG,cAAc,YAAY;AAC3D,kBAAkB;AAClB,kBAAkB,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC;AACxD,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,gBAAgB,OAAO,IAAI;AAC3B;AACA,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB,MAAM,GAAG,IAAI;AAC7B,gBAAgB,IAAI,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;AACpJ,gBAAgB,IAAI,eAAe,EAAE;AACrC,oBAAoB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;AACtE;AACA,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,OAAO,CAAC,SAAS,CAAC,MAAM;AAC5C,wBAAwB,UAAU,CAAC,sBAAsB,EAAE;AAC3D,qBAAqB,CAAC;AACtB;AACA;AACA,YAAY,MAAM,SAAS,GAAG,YAAY,EAAE,KAAK;AACjD,YAAY,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK;AAC5C,YAAY,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;AACxC,gBAAgB,OAAO,IAAI;AAC3B;AACA,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7D,gBAAgB,OAAO,EAAE,yBAAyB,EAAE,KAAK,EAAE;AAC3D;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT;AACA,IAAI,OAAO,kBAAkB,CAAC,YAAY,EAAE,KAAK,GAAG,mBAAmB,EAAE,eAAe,EAAE;AAC1F,QAAQ,IAAI,MAAM,GAAG,KAAK;AAC1B,QAAQ,OAAO,CAAC,YAAY,KAAK;AACjC,YAAY,MAAM,UAAU,GAAG,YAAY,YAAY;AACvD,kBAAkB;AAClB,kBAAkB,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC;AACxD,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,gBAAgB,OAAO,IAAI;AAC3B;AACA,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB,MAAM,GAAG,IAAI;AAC7B,gBAAgB,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAChJ,gBAAgB,IAAI,eAAe,EAAE;AACrC,oBAAoB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;AACtE;AACA,gBAAgB,OAAO,CAAC,SAAS,CAAC,MAAM;AACxC,oBAAoB,YAAY,CAAC,sBAAsB,EAAE;AACzD,iBAAiB,CAAC;AAClB;AACA,YAAY,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK;AAChD,YAAY,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK;AAC7C,YAAY,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;AACxC,gBAAgB,OAAO,IAAI;AAC3B;AACA,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AAC7D,gBAAgB,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE;AACxD;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT;AACA,IAAI,OAAO,qBAAqB,CAAC,KAAK,EAAE;AACxC,QAAQ,OAAO,CAAC,OAAO,KAAK,iBAAiB,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5F;AACA,IAAI,OAAO,wBAAwB,CAAC,KAAK,EAAE;AAC3C,QAAQ,OAAO,CAAC,OAAO,KAAK,iBAAiB,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;AAC5F;AACA,IAAI,OAAO,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AACvD,QAAQ,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE;AACnE,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC3C,QAAQ,IAAI,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;AACtD,QAAQ,IAAI,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;AACtD,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE;AACpF;AACA,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE;AAClF;AACA,QAAQ,MAAM,MAAM,GAAG,EAAE;AACzB,QAAQ,IAAI,YAAY,KAAK,IAAI,IAAI,SAAS,GAAG,YAAY,EAAE;AAC/D,YAAY,MAAM,CAAC,8BAA8B,CAAC,GAAG;AACrD,gBAAgB,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;AACrD,gBAAgB,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;AACtD,aAAa;AACb;AACA,QAAQ,IAAI,YAAY,KAAK,IAAI,IAAI,SAAS,GAAG,YAAY,EAAE;AAC/D,YAAY,MAAM,CAAC,2BAA2B,CAAC,GAAG;AAClD,gBAAgB,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;AACrD,gBAAgB,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC;AACtD,aAAa;AACb;AACA,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,YAAY,OAAO,IAAI;AACvB;AACA,aAAa;AACb,YAAY,OAAO,MAAM;AACzB;AACA;AACA;;AC1IO,MAAM,mBAAmB,CAAC;AACjC,IAAI,OAAO,kBAAkB,GAAG,MAAM,IAAI;AAC1C,IAAI,OAAO,wBAAwB,GAAG,CAAC,OAAO,KAAK;AACnD,QAAQ,IAAI,EAAE,OAAO,YAAY,SAAS,CAAC,EAAE;AAC7C,YAAY,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;AACjE;AACA,QAAQ,IAAI,kBAAkB,GAAG,KAAK;AACtC,QAAQ,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC5C,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9C,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE;AAC3E,gBAAgB,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;AAC7D,oBAAoB,OAAO,IAAI;AAC/B;AACA,gBAAgB,kBAAkB,GAAG,IAAI;AACzC;AACA;AACA,QAAQ,IAAI,kBAAkB,EAAE;AAChC,YAAY,OAAO;AACnB,gBAAgB,kBAAkB,EAAE,IAAI;AACxC,aAAa;AACb;AACA,QAAQ,OAAO,IAAI;AACnB,KAAK;AACL,IAAI,OAAO,kBAAkB,CAAC,KAAK,EAAE;AACrC,QAAQ,OAAO,CAAC,OAAO,KAAK;AAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAChC,gBAAgB,OAAO,IAAI;AAC3B;AACA,YAAY,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACvC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;AAC5D,gBAAgB,OAAO;AACvB,oBAAoB,kBAAkB,EAAE,KAAK;AAC7C,iBAAiB;AACjB;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT;AACA,IAAI,OAAO,gBAAgB,CAAC,IAAI,EAAE;AAClC,QAAQ,OAAO,CAAC,OAAO,KAAK;AAC5B,YAAY,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;AAC3D,YAAY,OAAO;AACnB,kBAAkB;AAClB,kBAAkB;AAClB,oBAAoB,cAAc,EAAE;AACpC,wBAAwB,IAAI;AAC5B,qBAAqB;AACrB,iBAAiB;AACjB,SAAS;AACT;AACA,IAAI,OAAO,WAAW,CAAC,MAAM,EAAE;AAC/B,QAAQ,OAAO,CAAC,OAAO,KAAK;AAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAChC,gBAAgB,OAAO,IAAI;AAC3B;AACA,YAAY,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACvC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;AACzC,gBAAgB,OAAO;AACvB,oBAAoB,WAAW,EAAE,MAAM;AACvC,iBAAiB;AACjB;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT;AACA,IAAI,OAAO,YAAY,CAAC,MAAM,EAAE;AAChC,QAAQ,OAAO,CAAC,OAAO,KAAK;AAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAChC,gBAAgB,OAAO,IAAI;AAC3B;AACA,YAAY,MAAM,cAAc,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE;AAC7D,YAAY,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,GAAG,EAAE;AACpD,YAAY,IAAI,aAAa,CAAC,MAAM,GAAG,MAAM,EAAE;AAC/C,gBAAgB,OAAO;AACvB,oBAAoB,SAAS,EAAE,cAAc;AAC7C,iBAAiB;AACjB;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT;AACA,IAAI,OAAO,eAAe,GAAG,CAAC,OAAO,KAAK;AAC1C,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC5B,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE,EAAE;AAC3C,YAAY,OAAO;AACnB,gBAAgB,eAAe,EAAE,IAAI;AACrC,aAAa;AACb;AACA,QAAQ,OAAO,IAAI;AACnB,KAAK;AACL,IAAI,OAAO,oBAAoB,GAAG,CAAC,OAAO,KAAK;AAC/C,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC5B,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AACnC,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC1C,YAAY,OAAO,IAAI;AACvB;AACA,aAAa;AACb,YAAY,OAAO;AACnB,gBAAgB,yBAAyB,EAAE,IAAI;AAC/C,aAAa;AACb;AACA,KAAK;AACL;;ACzGA;AACA;AACA;;;;"}
|