@ngrdt/forms 0.0.63 → 0.0.65
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 +7 -3
- package/fesm2022/ngrdt-forms.mjs.map +1 -1
- package/index.d.ts +3 -1
- 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/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 dataTestIdInput = input(undefined, { alias: 'dataTestId' });\n dataTestId = linkedSignal(() => this.dataTestIdInput() ?? this.label() ?? '');\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 = noop;\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 (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 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 }, dataTestIdInput: { classPropertyName: \"dataTestIdInput\", publicName: \"dataTestId\", 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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Q3BELE9BQU8sQ0FBQyxNQUFNO2FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUQsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUyxlQUFlLENBQUMsYUFBMEI7UUFDbEQsT0FBTyxhQUE0QixDQUFDO0lBQ3RDLENBQUM7SUFFUyxlQUFlLENBQUMsYUFBMEI7UUFDbEQsT0FBTyxhQUE0QixDQUFDO0lBQ3RDLENBQUM7SUFFUSxNQUFNO1FBQ2IsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWtCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjO1lBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRU8sTUFBTSxDQUFVLGNBQWMsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQzt1R0F0TnhDLHlCQUF5QjsyRkFBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUg5QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIGxpbmtlZFNpZ25hbCxcbiAgbW9kZWwsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaWduYWwsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5nQ29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmR0SW50ZXJhY3RpdmVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnQG5ncmR0L2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBnZXRGb3JtQ29udHJvbCB9IGZyb20gJy4uL3V0aWxzL2dldC1mb3JtLWNvbnRyb2wnO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50PFRFeHQsIFRJbnQgPSBURXh0PlxuICBleHRlbmRzIFJkdEludGVyYWN0aXZlRWxlbWVudENvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb250cm9sID0gc2lnbmFsPEFic3RyYWN0Q29udHJvbDxURXh0PiB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBjb250cm9sID0gdGhpcy5fY29udHJvbC5hc1JlYWRvbmx5KCk7XG5cbiAgcmVhZG9ubHkgZXh0ZXJuYWxWYWx1ZSA9IG1vZGVsPFRFeHQgfCBudWxsPihudWxsLCB7IGFsaWFzOiAndmFsdWUnIH0pO1xuICByZWFkb25seSBpbnRlcm5hbFZhbHVlID0gbGlua2VkU2lnbmFsKCgpID0+XG4gICAgdGhpcy50b0ludGVybmFsVmFsdWUodGhpcy5leHRlcm5hbFZhbHVlKCkpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0YVRlc3RJZElucHV0ID0gaW5wdXQodW5kZWZpbmVkLCB7IGFsaWFzOiAnZGF0YVRlc3RJZCcgfSk7XG4gIHJlYWRvbmx5IGRhdGFUZXN0SWQgPSBsaW5rZWRTaWduYWwoXG4gICAgKCkgPT4gdGhpcy5kYXRhVGVzdElkSW5wdXQoKSA/PyB0aGlzLmxhYmVsKCkgPz8gJydcbiAgKTtcblxuICByZWFkb25seSBsYWJlbElucHV0ID0gaW5wdXQoJycsIHsgYWxpYXM6ICdsYWJlbCcgfSk7XG4gIHJlYWRvbmx5IGxhYmVsID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubGFiZWxJbnB1dCgpID8/ICcnKTtcblxuICByZWFkb25seSBwbGFjZWhvbGRlcklucHV0ID0gaW5wdXQoJycsIHsgYWxpYXM6ICdwbGFjZWhvbGRlcicgfSk7XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMucGxhY2Vob2xkZXJJbnB1dCgpID8/ICcnKTtcblxuICByZWFkb25seSBuYW1lSW5wdXQgPSBpbnB1dCgnJywgeyBhbGlhczogJ25hbWUnIH0pO1xuICByZWFkb25seSBuYW1lID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubmFtZUlucHV0KCkgPz8gJycpO1xuXG4gIHJlYWRvbmx5IHJlYWRvbmx5SW5wdXQgPSBpbnB1dDxcbiAgICBib29sZWFuIHwgbnVsbCxcbiAgICBOdWxsYWJsZTxib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyPlxuICA+KG51bGwsIHtcbiAgICBhbGlhczogJ3JlYWRvbmx5JyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJlcXVpcmVkSW5wdXQgPSBpbnB1dDxcbiAgICBOdWxsYWJsZTxib29sZWFuPixcbiAgICBOdWxsYWJsZTxib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyPlxuICA+KG51bGwsIHtcbiAgICBhbGlhczogJ3JlcXVpcmVkJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVxdWlyZWRGcm9tQ29udHJvbCA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHJlcXVpcmVkID0gbGlua2VkU2lnbmFsKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZElucHV0KCkgPz8gdGhpcy5yZXF1aXJlZEZyb21Db250cm9sKCkgPz8gZmFsc2U7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0b3VjaGVkSW50ZXJuYWwgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSB0b3VjaGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2woKSBhcyBhbnk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBjb250cm9sLnRvdWNoZWRSZWFjdGl2ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy50b3VjaGVkSW50ZXJuYWwoKTtcbiAgICB9XG4gIH0pO1xuICByZWFkb25seSBpbnZhbGlkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLnJlcXVpcmVkSW5wdXQoKSAmJiB0aGlzLmlzRW1wdHkodGhpcy5leHRlcm5hbFZhbHVlKCkpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpIGFzIGFueTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgcmV0dXJuIGNvbnRyb2wuc3RhdHVzUmVhY3RpdmUoKSA9PT0gJ0lOVkFMSUQnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gISF0aGlzLmFkZGl0aW9uYWxFcnJvcnMoKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZXF1aXJlZEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgdGhpcy5yZXF1aXJlZElucHV0KCk7XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSgpO1xuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVpcmVkRXJyb3IgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZ2V0UmVxdWlyZWRFcnJvcih0aGlzLmV4dGVybmFsVmFsdWUoKSlcbiAgKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udHJvbEVycm9ycyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sKCk7XG4gICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgIChjb250cm9sIGFzIGFueSkuc3RhdHVzUmVhY3RpdmUoKTtcbiAgICAgIHJldHVybiBjb250cm9sLmVycm9ycztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkZGl0aW9uYWxFcnJvcnMgPSBzaWduYWw8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBlcnJvcnMgPSBjb21wdXRlZChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5jb250cm9sRXJyb3JzKCkgPz8gdGhpcy5yZXF1aXJlZEVycm9yKCkgPz8gdGhpcy5hZGRpdGlvbmFsRXJyb3JzKClcbiAgKTtcbiAgcmVhZG9ubHkgdmlzaWJsZUVycm9yczogU2lnbmFsPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5pbnZhbGlkKCkgJiYgdGhpcy50b3VjaGVkKCkgPyB0aGlzLmVycm9ycygpIDogbnVsbFxuICApO1xuXG4gIGdldCBuZ0NvbnRyb2woKSB7XG4gICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbDtcbiAgfVxuICBwcml2YXRlIF9uZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gIHByaXZhdGUgX29uVG91Y2g6ICgpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIF9vblZhbGlkYXRvckNoYW5nZTogKCkgPT4gdm9pZCA9IG5vb3A7XG5cbiAgZ2V0IG9uQ2hhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLl9vbkNoYW5nZTtcbiAgfVxuXG4gIGdldCBvblRvdWNoKCkge1xuICAgIHJldHVybiB0aGlzLl9vblRvdWNoO1xuICB9XG5cbiAgZ2V0IG9uVmFsaWRhdG9yQ2hhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLl9vblZhbGlkYXRvckNoYW5nZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX25nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCwge1xuICAgICAgc2VsZjogdHJ1ZSxcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0pO1xuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBnZXRGb3JtQ29udHJvbCh0aGlzLl9uZ0NvbnRyb2wpO1xuICAgICAgdGhpcy5fY29udHJvbC5zZXQoY29udHJvbCk7XG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICB0aGlzLmxpc3RlbkNvbnRyb2xFdmVudHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpO1xuICAgIGlmICh0aGlzLnJlcXVpcmVkSW5wdXQoKSAmJiBjb250cm9sKSB7XG4gICAgICBjb250cm9sLnJlbW92ZVZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICBjb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoID0gKCkgPT4ge1xuICAgICAgdGhpcy50b3VjaGVkSW50ZXJuYWwuc2V0KHRydWUpO1xuICAgICAgZm4oKTtcbiAgICB9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmV4dGVybmFsVmFsdWUuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIC8vIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBWYWxpZGF0b3IuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxURXh0Pik6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZEVycm9yKCk7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBpc0VtcHR5KHZhbHVlOiBURXh0IHwgbnVsbCk6IGJvb2xlYW47XG5cbiAgb25JbnRlcm5hbFZhbHVlQ2hhbmdlKHZhbHVlOiBUSW50IHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgIHZhbHVlID0gbnVsbDsgLy8gQ29udmVydCBlbXB0eSBzdHJpbmcgdG8gbnVsbFxuICAgIH1cbiAgICBpZiAodmFsdWUgIT09IHVudHJhY2tlZCh0aGlzLmludGVybmFsVmFsdWUpKSB7XG4gICAgICBjb25zdCBleHRlcm5hbFZhbHVlID0gdGhpcy50b0V4dGVybmFsVmFsdWUodmFsdWUpO1xuICAgICAgdGhpcy5leHRlcm5hbFZhbHVlLnNldChleHRlcm5hbFZhbHVlKTtcbiAgICAgIHRoaXMub25DaGFuZ2UoZXh0ZXJuYWxWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgc2V0QWRkaXRpb25hbEVycm9ycyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGVycm9ycyA9PT0gbnVsbCB8fCBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hZGRpdGlvbmFsRXJyb3JzLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRpdGlvbmFsRXJyb3JzLnNldChlcnJvcnMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBsaXN0ZW5Db250cm9sRXZlbnRzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGNvbnRyb2wuZXZlbnRzXG4gICAgICAucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVxdWlyZWRGcm9tQ29udHJvbC5zZXQoY29udHJvbC5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9FeHRlcm5hbFZhbHVlKGludGVybmFsVmFsdWU6IFRJbnQgfCBudWxsKTogVEV4dCB8IG51bGwge1xuICAgIHJldHVybiBpbnRlcm5hbFZhbHVlIGFzIFRFeHQgfCBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvSW50ZXJuYWxWYWx1ZShleHRlcm5hbFZhbHVlOiBURXh0IHwgbnVsbCk6IFRJbnQgfCBudWxsIHtcbiAgICByZXR1cm4gZXh0ZXJuYWxWYWx1ZSBhcyBUSW50IHwgbnVsbDtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uQmx1cigpIHtcbiAgICBzdXBlci5vbkJsdXIoKTtcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXF1aXJlZEVycm9yKHZhbHVlOiBURXh0IHwgbnVsbCkge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVkKCkgJiYgdGhpcy5pc0VtcHR5KHZhbHVlKVxuICAgICAgPyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50LlJFUVVJUkVEX0VSUk9SXG4gICAgICA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBSRVFVSVJFRF9FUlJPUiA9IHsgcmVxdWlyZWQ6IHRydWUgfTtcbn1cbiJdfQ==","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, output, signal, } 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 value = input();\n checked = input(false);\n checkedChange = output();\n checkedState = signal(this.checked());\n constructor() {\n super();\n }\n //Needed because of our custom boolean types\n writeValue(value) {\n const external = value;\n const newInternal = this.toInternalValue(external);\n if (newInternal !== this.checkedState()) {\n this.checkedState.set(newInternal ?? false);\n this.externalValue.set(value);\n }\n }\n handleValueChange(newInternal) {\n this.checkedState.set(newInternal);\n const external = this.toExternalValue(newInternal);\n this.onChange(external);\n this.onTouch();\n this.checkedChange.emit(newInternal);\n }\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: [], 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 }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: \"checked\", publicName: \"checked\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedChange: \"checkedChange\" }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9jaGVja2JveC9yZHQtY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFHckYsTUFBTSxPQUFnQixvQkFHcEIsU0FBUSx5QkFBa0Q7SUFDakQsY0FBYyxHQUFHLEtBQUssQ0FBUSxJQUFhLEVBQUU7UUFDcEQsS0FBSyxFQUFFLFdBQVc7S0FDbkIsQ0FBQyxDQUFDO0lBQ00sU0FBUyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUN0RCxlQUFlLEdBQUcsS0FBSyxDQUFTLEtBQWUsRUFBRTtRQUN4RCxLQUFLLEVBQUUsWUFBWTtLQUNwQixDQUFDLENBQUM7SUFDTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELGFBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUM5RCxLQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDeEIsT0FBTyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNoQyxhQUFhLEdBQUcsTUFBTSxFQUFXLENBQUM7SUFDbEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUUvQztRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELDRDQUE0QztJQUNuQyxVQUFVLENBQUMsS0FBcUI7UUFDdkMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsSUFBSSxXQUFXLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRVMsaUJBQWlCLENBQUMsV0FBb0I7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFa0IsZUFBZSxDQUNoQyxhQUE2QjtRQUU3QixRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssSUFBSTtnQkFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0I7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFa0IsZUFBZSxDQUNoQyxhQUFvQztRQUVwQyxRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDO1lBQ2Y7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFa0IsT0FBTyxDQUFDLEtBQTRCO1FBQ3JELE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQztJQUN4QixDQUFDO3VHQXBFbUIsb0JBQW9COzJGQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRHpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBEaXJlY3RpdmUsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0Q2hlY2tib3hDb21wb25lbnQ8XG4gIFRUcnVlID0gYW55LFxuICBURmFsc2UgPSBhbnlcbj4gZXh0ZW5kcyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50PFRUcnVlIHwgVEZhbHNlLCBib29sZWFuPiB7XG4gIHJlYWRvbmx5IHRydWVWYWx1ZUlucHV0ID0gaW5wdXQ8VFRydWU+KHRydWUgYXMgVFRydWUsIHtcbiAgICBhbGlhczogJ3RydWVWYWx1ZScsXG4gIH0pO1xuICByZWFkb25seSB0cnVlVmFsdWUgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy50cnVlVmFsdWVJbnB1dCgpKTtcbiAgcmVhZG9ubHkgZmFsc2VWYWx1ZUlucHV0ID0gaW5wdXQ8VEZhbHNlPihmYWxzZSBhcyBURmFsc2UsIHtcbiAgICBhbGlhczogJ2ZhbHNlVmFsdWUnLFxuICB9KTtcbiAgcmVhZG9ubHkgZmFsc2VWYWx1ZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmZhbHNlVmFsdWVJbnB1dCgpKTtcbiAgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgcmVhZG9ubHkgdmFsdWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNoZWNrZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGNoZWNrZWRDaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgY2hlY2tlZFN0YXRlID0gc2lnbmFsKHRoaXMuY2hlY2tlZCgpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLy9OZWVkZWQgYmVjYXVzZSBvZiBvdXIgY3VzdG9tIGJvb2xlYW4gdHlwZXNcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVEZhbHNlIHwgVFRydWUpOiB2b2lkIHtcbiAgICBjb25zdCBleHRlcm5hbCA9IHZhbHVlO1xuICAgIGNvbnN0IG5ld0ludGVybmFsID0gdGhpcy50b0ludGVybmFsVmFsdWUoZXh0ZXJuYWwpO1xuICAgIGlmIChuZXdJbnRlcm5hbCAhPT0gdGhpcy5jaGVja2VkU3RhdGUoKSkge1xuICAgICAgdGhpcy5jaGVja2VkU3RhdGUuc2V0KG5ld0ludGVybmFsID8/IGZhbHNlKTtcbiAgICAgIHRoaXMuZXh0ZXJuYWxWYWx1ZS5zZXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVWYWx1ZUNoYW5nZShuZXdJbnRlcm5hbDogYm9vbGVhbikge1xuICAgIHRoaXMuY2hlY2tlZFN0YXRlLnNldChuZXdJbnRlcm5hbCk7XG4gICAgY29uc3QgZXh0ZXJuYWwgPSB0aGlzLnRvRXh0ZXJuYWxWYWx1ZShuZXdJbnRlcm5hbCk7XG4gICAgdGhpcy5vbkNoYW5nZShleHRlcm5hbCk7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQobmV3SW50ZXJuYWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHRvRXh0ZXJuYWxWYWx1ZShcbiAgICBpbnRlcm5hbFZhbHVlOiBib29sZWFuIHwgbnVsbFxuICApOiBUVHJ1ZSB8IFRGYWxzZSB8IG51bGwge1xuICAgIHN3aXRjaCAoaW50ZXJuYWxWYWx1ZSkge1xuICAgICAgY2FzZSB0cnVlOlxuICAgICAgICByZXR1cm4gdGhpcy50cnVlVmFsdWUoKTtcbiAgICAgIGNhc2UgZmFsc2U6XG4gICAgICAgIHJldHVybiB0aGlzLmZhbHNlVmFsdWUoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB0b0ludGVybmFsVmFsdWUoXG4gICAgZXh0ZXJuYWxWYWx1ZTogVFRydWUgfCBURmFsc2UgfCBudWxsXG4gICk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICBzd2l0Y2ggKGV4dGVybmFsVmFsdWUpIHtcbiAgICAgIGNhc2UgdGhpcy50cnVlVmFsdWUoKTpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlIHRoaXMuZmFsc2VWYWx1ZSgpOlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNFbXB0eSh2YWx1ZTogVFRydWUgfCBURmFsc2UgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICB9XG59XG4iXX0=","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 { Directive, input, linkedSignal } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtDateComponent extends RdtBaseFormInputComponent {\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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2RhdGUvcmR0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUk5QyxNQUFNLE9BQWdCLGdCQUdwQixTQUFRLHlCQUFxQztJQUNwQyxJQUFJLEdBQUcsS0FBSyxDQUFjLE1BQU0sQ0FBQyxDQUFDO0lBRWxDLFFBQVEsR0FBRyxLQUFLLENBQThCLFNBQVMsRUFBRTtRQUNoRSxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDLENBQUM7SUFDTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRTtRQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztJQUVNLFFBQVEsR0FBRyxLQUFLLENBQThCLFNBQVMsRUFBRTtRQUNoRSxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDLENBQUM7SUFDTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRTtRQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztJQUVnQixPQUFPLENBQUMsS0FBa0I7UUFDM0MsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3hCLENBQUM7dUdBeEJtQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFEckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQsIGxpbmtlZFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbnVsbFRvVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUmR0RGF0ZVR5cGUgfSBmcm9tICcuL2RhdGUtdHlwZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdERhdGVDb21wb25lbnQ8XG4gIFRFeHQgPSBzdHJpbmcsXG4gIFRJbnQgPSBURXh0XG4+IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxURXh0LCBUSW50PiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBpbnB1dDxSZHREYXRlVHlwZT4oJ2RhdGUnKTtcblxuICByZWFkb25seSBtaW5JbnB1dCA9IGlucHV0PE51bGxhYmxlPFRFeHQ+LCBURXh0IHwgbnVsbD4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQsXG4gIH0pO1xuICByZWFkb25seSBtaW4gPSBsaW5rZWRTaWduYWwoKCkgPT4ge1xuICAgIGNvbnN0IG1pbklucHV0ID0gdGhpcy5taW5JbnB1dCgpO1xuICAgIHJldHVybiBtaW5JbnB1dCA/IHRoaXMudG9JbnRlcm5hbFZhbHVlKG1pbklucHV0KSA6IG51bGw7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG1heElucHV0ID0gaW5wdXQ8TnVsbGFibGU8VEV4dD4sIFRFeHQgfCBudWxsPih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG4gIHJlYWRvbmx5IG1heCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB7XG4gICAgY29uc3QgbWF4SW5wdXQgPSB0aGlzLm1heElucHV0KCk7XG4gICAgcmV0dXJuIG1heElucHV0ID8gdGhpcy50b0ludGVybmFsVmFsdWUobWF4SW5wdXQpIDogbnVsbDtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IFRFeHQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICB9XG59XG4iXX0=","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 { InjectionToken } from '@angular/core';\nexport function czechFileLabelFn(files) {\n switch (files.length) {\n case 0:\n return 'Vyberte soubor';\n case 1:\n return files[0].fileName;\n case 2:\n case 3:\n case 4:\n return `Vybrány ${files.length} soubory`;\n default:\n return `Vybráno ${files.length} souborů`;\n }\n}\nexport const RDT_DEFAULT_FILE_LABEL_FN = new InjectionToken('RDT_DEFAULT_FILE_LABEL_FN', {\n providedIn: 'root',\n factory: () => czechFileLabelFn,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlZmF1bHQtbGFiZWwtZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC90b2tlbnMvcmR0LWRlZmF1bHQtbGFiZWwtZm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBZ0I7SUFDL0MsUUFBUSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsS0FBSyxDQUFDO1lBQ0osT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixLQUFLLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDM0IsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssQ0FBQztZQUNKLE9BQU8sV0FBVyxLQUFLLENBQUMsTUFBTSxVQUFVLENBQUM7UUFDM0M7WUFDRSxPQUFPLFdBQVcsS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDO0FBR0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQ3pELDJCQUEyQixFQUMzQjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0I7Q0FDaEMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEZpbGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3plY2hGaWxlTGFiZWxGbihmaWxlczogUmR0RmlsZVtdKSB7XG4gIHN3aXRjaCAoZmlsZXMubGVuZ3RoKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmV0dXJuICdWeWJlcnRlIHNvdWJvcic7XG4gICAgY2FzZSAxOlxuICAgICAgcmV0dXJuIGZpbGVzWzBdLmZpbGVOYW1lO1xuICAgIGNhc2UgMjpcbiAgICBjYXNlIDM6XG4gICAgY2FzZSA0OlxuICAgICAgcmV0dXJuIGBWeWJyw6FueSAke2ZpbGVzLmxlbmd0aH0gc291Ym9yeWA7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBgVnlicsOhbm8gJHtmaWxlcy5sZW5ndGh9IHNvdWJvcsWvYDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBSZHRGaWxlTGFiZWxGbiA9IChmaWxlczogUmR0RmlsZVtdKSA9PiBzdHJpbmc7XG5leHBvcnQgY29uc3QgUkRUX0RFRkFVTFRfRklMRV9MQUJFTF9GTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHRGaWxlTGFiZWxGbj4oXG4gICdSRFRfREVGQVVMVF9GSUxFX0xBQkVMX0ZOJyxcbiAge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiAoKSA9PiBjemVjaEZpbGVMYWJlbEZuLFxuICB9XG4pO1xuIl19","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 labelDataTestId = computed(() => this.dataTestId() + '-label');\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 console.log(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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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgY29tcHV0ZWQsXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgTnVsbGFibGUsXG4gIFJkdENvbWJpbmVkTWltZVR5cGUsXG4gIFJkdEZpbGUsXG4gIFJkdEZpbGVTaXplLFxuICBSZHRGaWxlVXRpbHMsXG4gIFJkdE1pbWVUeXBlLFxufSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbnVsbFRvVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUmR0RmlsZVJlYWRlciB9IGZyb20gJy4vcmVhZGVyL3JkdC1maWxlLXJlYWRlcic7XG5pbXBvcnQgeyBOT19PUF9GSUxFX1JFQURFUiB9IGZyb20gJy4vcmVhZGVyL3JkdC1maWxlLXJlYWRlci1ub29wJztcbmltcG9ydCB7IFJEVF9ERUZBVUxUX0ZJTEVfUkVBREVSIH0gZnJvbSAnLi90b2tlbnMvcmR0LWRlZmF1bHQtZmlsZS1yZWFkZXInO1xuaW1wb3J0IHsgUkRUX0RFRkFVTFRfRklMRV9MQUJFTF9GTiB9IGZyb20gJy4vdG9rZW5zL3JkdC1kZWZhdWx0LWxhYmVsLWZuJztcbmltcG9ydCB7IFJEVF9ERUZBVUxUX01BWF9GSUxFX1NJWkUgfSBmcm9tICcuL3Rva2Vucy9yZHQtZGVmYXVsdC1tYXgtZmlsZS1zaXplJztcblxudHlwZSBBY2NlcHRUeXBlID1cbiAgfCAoUmR0TWltZVR5cGUgfCBSZHRDb21iaW5lZE1pbWVUeXBlKVtdXG4gIHwgUmR0TWltZVR5cGVcbiAgfCBSZHRDb21iaW5lZE1pbWVUeXBlO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRGaWxlSW5wdXRDb21wb25lbnQ8XG4gIFRFeHQgPSBzdHJpbmdcbj4gZXh0ZW5kcyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50PFRFeHQ+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRGaWxlUmVhZGVyID0gaW5qZWN0KFJEVF9ERUZBVUxUX0ZJTEVfUkVBREVSKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRNYXhGaWxlU2l6ZSA9IGluamVjdChSRFRfREVGQVVMVF9NQVhfRklMRV9TSVpFKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRMYWJlbEZuID0gaW5qZWN0KFJEVF9ERUZBVUxUX0ZJTEVfTEFCRUxfRk4pO1xuXG4gIHJlYWRvbmx5IHJlYWRlcklucHV0ID0gaW5wdXQ8UmR0RmlsZVJlYWRlcjxURXh0Pj4oXG4gICAgdGhpcy5kZWZhdWx0RmlsZVJlYWRlciBhcyBSZHRGaWxlUmVhZGVyPFRFeHQ+LFxuICAgIHtcbiAgICAgIGFsaWFzOiAncmVhZGVyJyxcbiAgICB9XG4gICk7XG4gIHJlYWRvbmx5IHJlYWRlciA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnJlYWRlcklucHV0KCkpO1xuXG4gIHJlYWRvbmx5IGFjY2VwdElucHV0ID0gaW5wdXQ8QWNjZXB0VHlwZSB8IHVuZGVmaW5lZCwgTnVsbGFibGU8QWNjZXB0VHlwZT4+KFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IGFsaWFzOiAnYWNjZXB0JywgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQgfVxuICApO1xuICByZWFkb25seSBhY2NlcHQgPSBsaW5rZWRTaWduYWwoKCkgPT4ge1xuICAgIGNvbnN0IGFjY2VwdElucHV0ID0gdGhpcy5hY2NlcHRJbnB1dCgpO1xuICAgIHJldHVybiAhYWNjZXB0SW5wdXQgfHwgQXJyYXkuaXNBcnJheShhY2NlcHRJbnB1dClcbiAgICAgID8gYWNjZXB0SW5wdXRcbiAgICAgIDogW2FjY2VwdElucHV0XTtcbiAgfSk7XG4gIHJlYWRvbmx5IGpvaW50QWNjZXB0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hY2NlcHQoKT8uam9pbignLCcpKTtcblxuICByZWFkb25seSBtYXhGaWxlU2l6ZUlucHV0ID0gaW5wdXQ8XG4gICAgTnVsbGFibGU8UmR0RmlsZVNpemU+LFxuICAgIFJkdEZpbGVTaXplIHwgdW5kZWZpbmVkXG4gID4odGhpcy5kZWZhdWx0TWF4RmlsZVNpemUsIHtcbiAgICBhbGlhczogJ21heEZpbGVTaXplJyxcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG4gIHJlYWRvbmx5IG1heEZpbGVTaXplID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubWF4RmlsZVNpemVJbnB1dCgpKTtcbiAgcmVhZG9ubHkgbWF4RmlsZVNpemVJbkJ5dGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1heEZpbGVTaXplID0gdGhpcy5tYXhGaWxlU2l6ZSgpO1xuICAgIHJldHVybiBtYXhGaWxlU2l6ZSA/IFJkdEZpbGVVdGlscy5maWxlU2l6ZVRvQnl0ZXMobWF4RmlsZVNpemUpIDogbnVsbDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbGFiZWxGbiA9IGlucHV0KHRoaXMuZGVmYXVsdExhYmVsRm4pO1xuICByZWFkb25seSBtdWx0aXBsZSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFiZWxDdHJsID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBsYWJlbERhdGFUZXN0SWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGFUZXN0SWQoKSArICctbGFiZWwnKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG91Y2hlZEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdG91Y2hlZCA9IHRoaXMudG91Y2hlZCgpO1xuICAgIGlmICh0b3VjaGVkKSB7XG4gICAgICB0aGlzLmxhYmVsQ3RybC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGFiZWxDdHJsLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9yRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmxhYmVsQ3RybD8uc2V0RXJyb3JzKHRoaXMudmlzaWJsZUVycm9ycygpKTtcbiAgfSk7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmNvbnRyb2woKT8uYWRkVmFsaWRhdG9ycyh0aGlzLl9tYXhGaWxlU2l6ZVZhbGlkYXRvcik7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuY29udHJvbCgpPy5yZW1vdmVWYWxpZGF0b3JzKHRoaXMuX21heEZpbGVTaXplVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoIXRhcmdldC5maWxlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzaG91bGRSZWFkID0gdHJ1ZTtcbiAgICBjb25zdCBtYXhCeXRlcyA9IHRoaXMubWF4RmlsZVNpemVJbkJ5dGVzKCk7XG4gICAgaWYgKG1heEJ5dGVzICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20odGFyZ2V0LmZpbGVzKTtcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gbWF4Qnl0ZXMpIHtcbiAgICAgICAgICBzaG91bGRSZWFkID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZWFkZXIgPSBzaG91bGRSZWFkXG4gICAgICA/IHRoaXMucmVhZGVyKClcbiAgICAgIDogKE5PX09QX0ZJTEVfUkVBREVSIGFzIHVua25vd24gYXMgUmR0RmlsZVJlYWRlcjxURXh0Pik7XG5cbiAgICByZWFkZXJcbiAgICAgIC5yZWFkQWxsKEFycmF5LmZyb20odGFyZ2V0LmZpbGVzKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoZmlsZXMpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZmlsZXMpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKGZpbGVzKTtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKGZpbGVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zZXRJbm5lclZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5uZXJWYWx1ZShmaWxlczogTnVsbGFibGU8UmR0RmlsZVtdPikge1xuICAgIGlmICh0aGlzLmxhYmVsQ3RybCkge1xuICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVsRm4oKShmaWxlcyA/PyBbXSk7XG4gICAgICB0aGlzLmxhYmVsQ3RybC5zZXRWYWx1ZShsYWJlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyKCkge1xuICAgIHRoaXMub25JbnRlcm5hbFZhbHVlQ2hhbmdlKG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWF4RmlsZVNpemVWYWxpZGF0b3I6IFZhbGlkYXRvckZuID0gKGN0cmwpID0+IHtcbiAgICBjb25zdCBtYXhTaXplID0gdGhpcy5tYXhGaWxlU2l6ZUluQnl0ZXMoKTtcbiAgICBpZiAoXG4gICAgICBtYXhTaXplID09PSBudWxsIHx8XG4gICAgICAhQXJyYXkuaXNBcnJheShjdHJsLnZhbHVlKSB8fFxuICAgICAgY3RybC52YWx1ZS5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVzID0gY3RybC52YWx1ZSBhcyBSZHRGaWxlW107XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICBpZiAoZmlsZVsnc2l6ZSddICE9PSB1bmRlZmluZWQgJiYgZmlsZS5zaXplID4gbWF4U2l6ZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1heEZpbGVTaXplOiB7XG4gICAgICAgICAgICBtYXg6IG1heFNpemUsXG4gICAgICAgICAgICBhY3R1YWw6IGZpbGUuc2l6ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcbn1cbiJdfQ==","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 missingValuePlaceholder: 'Načítání (ID = {id})...',\n _fetchRequest: null,\n _fetchMissingRequest: null,\n _missingSelected: [],\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3Qvc3RhdGUvcmR0LXNlbGVjdC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3QkEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQTZCO0lBQzdELFdBQVcsRUFBRSxLQUFLO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLENBQUM7SUFDaEIsUUFBUSxFQUFFLEVBQUU7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLElBQUk7SUFDaEIsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFFO0lBQ3RCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLHVCQUF1QixFQUFFLHlCQUF5QjtJQUNsRCxhQUFhLEVBQUUsSUFBSTtJQUNuQixvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLGdCQUFnQixFQUFFLEVBQUU7Q0FDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkdFNlbGVjdERhdGFzb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlL3JkdC1zZWxlY3QtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBSZHRMYWJlbFZhbHVlSWQgfSBmcm9tICcuLi91dGlscy9sYWJlbC12YWx1ZS1pZCc7XG5pbXBvcnQge1xuICBSZHRTZWxlY3RGZXRjaE1pc3NpbmdSZXF1ZXN0LFxuICBSZHRTZWxlY3RGZXRjaFJlcXVlc3QsXG59IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJkdFNlbGVjdFN0YXRlPFRJdGVtLCBUSWQ+IHtcbiAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG4gIHF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xuICBuZXh0UGFnZUluZGV4OiBudW1iZXIgfCBudWxsO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIHRvdGFsQ291bnRLbm93bjogYm9vbGVhbjtcbiAgb3B0aW9uczogUmR0TGFiZWxWYWx1ZUlkPFRJdGVtLCBUSWQ+W107XG4gIGRhdGFzb3VyY2U6IFJkdFNlbGVjdERhdGFzb3VyY2U8VEl0ZW0sIFRJZD4gfCBudWxsO1xuICBzZWxlY3RlZE1hcDogTWFwPFRJZCwgUmR0TGFiZWxWYWx1ZUlkPFRJdGVtLCBUSWQ+PjtcbiAgZmV0Y2hFcnJvcjogYW55IHwgbnVsbDtcbiAgbWlzc2luZ1ZhbHVlUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgX2ZldGNoUmVxdWVzdDogUmR0U2VsZWN0RmV0Y2hSZXF1ZXN0IHwgbnVsbDtcbiAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IFJkdFNlbGVjdEZldGNoTWlzc2luZ1JlcXVlc3Q8VElkPiB8IG51bGw7XG4gIF9taXNzaW5nU2VsZWN0ZWQ6IFRJZFtdO1xufVxuXG5leHBvcnQgY29uc3QgcmR0U2VsZWN0SW5pdGlhbFN0YXRlOiBSZHRTZWxlY3RTdGF0ZTxhbnksIGFueT4gPSB7XG4gIGluaXRpYWxpemVkOiBmYWxzZSxcbiAgcXVlcnk6IG51bGwsXG4gIG5leHRQYWdlSW5kZXg6IDAsXG4gIHBhZ2VTaXplOiAyMCxcbiAgdG90YWxDb3VudDogMCxcbiAgdG90YWxDb3VudEtub3duOiBmYWxzZSxcbiAgb3B0aW9uczogW10sXG4gIGRhdGFzb3VyY2U6IG51bGwsXG4gIHNlbGVjdGVkTWFwOiBuZXcgTWFwKCksXG4gIGZldGNoRXJyb3I6IG51bGwsXG4gIG1pc3NpbmdWYWx1ZVBsYWNlaG9sZGVyOiAnTmHEjcOtdMOhbsOtIChJRCA9IHtpZH0pLi4uJyxcbiAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IG51bGwsXG4gIF9taXNzaW5nU2VsZWN0ZWQ6IFtdLFxufTtcbiJdfQ==","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 if (query) {\n return items.map((it) => ({\n ...it,\n selected: selectedMap.has(it.id),\n }));\n }\n const selected = Array.from(selectedMap.values()).map((it) => ({ ...it, selected: true }));\n const missingPlaceholder = state.missingValuePlaceholder();\n const placeholders = missing.map((id) => ({\n id,\n label: missingPlaceholder.replace('{id}', String(id)),\n value: null,\n selected: true,\n }));\n placeholders.forEach((pl) => selected.push(pl));\n items.forEach((item) => {\n if (!selectedMap.has(item.id)) {\n selected.push({ ...item, selected: false });\n }\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 _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 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 {\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 if (fetchMissingReq?.ids.every((id) => items.some((it) => it.id === id))) {\n fetchMissingReq.subscription.unsubscribe();\n patchState(store, {\n _fetchMissingRequest: null,\n _missingSelected: [],\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 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 {\n newMissing.push(id);\n }\n }\n patchState(store, {\n _fetchMissingRequest: null,\n _missingSelected: newMissing,\n selectedMap: newSelected,\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 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 'Nastala chyba.';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3Qvc3RhdGUvcmR0LXNlbGVjdC1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUNMLDBCQUEwQixHQUUzQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRSxTQUFTLGlCQUFpQixDQUFTLFlBQVksR0FBRyxxQkFBcUI7SUFDckUsT0FBTyxXQUFXLENBQ2hCLFNBQVMsQ0FBQyxZQUFzQyxDQUFDLEVBQ2pELFNBQVMsQ0FBQztRQUNSLFNBQVMsQ0FBQyxLQUFLO1lBQ2IsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pELEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEQsQ0FBQztLQUNGLENBQUMsRUFDRixZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQztRQUNyRCxhQUFhLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQs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QVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztTQUFNLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO1NBQU0sSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFNBQVMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNwRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDdkIsQ0FBQztJQUNELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHBhdGNoU3RhdGUsXG4gIHNpZ25hbFN0b3JlLFxuICB3aXRoQ29tcHV0ZWQsXG4gIHdpdGhIb29rcyxcbiAgd2l0aE1ldGhvZHMsXG4gIHdpdGhTdGF0ZSxcbn0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmR0U2VsZWN0RGF0YXNvdXJjZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UvcmR0LXNlbGVjdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdFNlbGVjdFBhZ2UgfSBmcm9tICcuLi9kYXRhc291cmNlL3JkdC1zZWxlY3QtcGFnZSc7XG5pbXBvcnQge1xuICBSZHRMYWJlbFZhbHVlSWQsXG4gIFJkdFJlbmRlcmVkU2VsZWN0T3B0aW9uLFxufSBmcm9tICcuLi91dGlscy9sYWJlbC12YWx1ZS1pZCc7XG5pbXBvcnQge1xuICBjb21wYXJlU2VsZWN0UmVxdWVzdFBhcmFtcyxcbiAgUmR0U2VsZWN0UmVxdWVzdFBhcmFtcyxcbn0gZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgeyByZHRTZWxlY3RJbml0aWFsU3RhdGUsIFJkdFNlbGVjdFN0YXRlIH0gZnJvbSAnLi9yZHQtc2VsZWN0LXN0YXRlJztcblxuZnVuY3Rpb24gZ2V0UmR0U2VsZWN0U3RvcmU8VCwgVElkPihpbml0aWFsU3RhdGUgPSByZHRTZWxlY3RJbml0aWFsU3RhdGUpIHtcbiAgcmV0dXJuIHNpZ25hbFN0b3JlKFxuICAgIHdpdGhTdGF0ZShpbml0aWFsU3RhdGUgYXMgUmR0U2VsZWN0U3RhdGU8VCwgVElkPiksXG4gICAgd2l0aEhvb2tzKHtcbiAgICAgIG9uRGVzdHJveShzdG9yZSkge1xuICAgICAgICBzdG9yZS5fZmV0Y2hNaXNzaW5nUmVxdWVzdCgpPy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgc3RvcmUuX2ZldGNoUmVxdWVzdCgpPy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgd2l0aENvbXB1dGVkKChzdGF0ZSkgPT4gKHtcbiAgICAgIGhhc01vcmU6IGNvbXB1dGVkKCgpID0+IHN0YXRlLm5leHRQYWdlSW5kZXggIT09IG51bGwpLFxuICAgICAgc2VsZWN0ZWRJdGVtczogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzdGF0ZS5zZWxlY3RlZE1hcCgpLnZhbHVlcygpKTtcbiAgICAgIH0pLFxuICAgICAgbG9hZGluZ09wdGlvbnM6IGNvbXB1dGVkKCgpID0+IHN0YXRlLl9mZXRjaFJlcXVlc3QoKSAhPT0gbnVsbCksXG4gICAgICBsb2FkaW5nTWlzc2luZzogY29tcHV0ZWQoKCkgPT4gc3RhdGUuX2ZldGNoTWlzc2luZ1JlcXVlc3QoKSAhPT0gbnVsbCksXG4gICAgICBsb2FkaW5nOiBjb21wdXRlZChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBzdGF0ZS5fZmV0Y2hSZXF1ZXN0KCkgIT09IG51bGwgfHxcbiAgICAgICAgICBzdGF0ZS5fZmV0Y2hNaXNzaW5nUmVxdWVzdCgpICE9PSBudWxsXG4gICAgICApLFxuICAgICAgLy8gU2hvd3Mgc2VsZWN0ZWQgKyBvdGhlcnMgd2hpbGUgcXVlcnkgaXMgZW1wdHlcbiAgICAgIC8vIFNob3dzIG9ubHkgcXVlcnkgcmVzdWx0cyB3aGlsZSBxdWVyeSBoYXMgdmFsdWVcbiAgICAgIHZpc2libGVPcHRpb25zOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gc3RhdGUub3B0aW9ucygpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHN0YXRlLnF1ZXJ5KCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTWFwID0gc3RhdGUuc2VsZWN0ZWRNYXAoKTtcbiAgICAgICAgY29uc3QgbWlzc2luZyA9IHN0YXRlLl9taXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXQpID0+ICh7XG4gICAgICAgICAgICAuLi5pdCxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZE1hcC5oYXMoaXQuaWQpLFxuICAgICAgICAgIH0pKSBhcyBSZHRSZW5kZXJlZFNlbGVjdE9wdGlvbjxULCBUSWQ+W107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQ6IFJkdFJlbmRlcmVkU2VsZWN0T3B0aW9uPFQsIFRJZD5bXSA9IEFycmF5LmZyb20oXG4gICAgICAgICAgc2VsZWN0ZWRNYXAudmFsdWVzKClcbiAgICAgICAgKS5tYXAoKGl0KSA9PiAoeyAuLi5pdCwgc2VsZWN0ZWQ6IHRydWUgfSkpO1xuICAgICAgICBjb25zdCBtaXNzaW5nUGxhY2Vob2xkZXIgPSBzdGF0ZS5taXNzaW5nVmFsdWVQbGFjZWhvbGRlcigpO1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnMgPSBtaXNzaW5nLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbGFiZWw6IG1pc3NpbmdQbGFjZWhvbGRlci5yZXBsYWNlKCd7aWR9JywgU3RyaW5nKGlkKSksXG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgIH0pKTtcbiAgICAgICAgcGxhY2Vob2xkZXJzLmZvckVhY2goKHBsKSA9PiBzZWxlY3RlZC5wdXNoKHBsKSk7XG5cbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmICghc2VsZWN0ZWRNYXAuaGFzKGl0ZW0uaWQpKSB7XG4gICAgICAgICAgICBzZWxlY3RlZC5wdXNoKHsgLi4uaXRlbSwgc2VsZWN0ZWQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZDtcbiAgICAgIH0pLFxuICAgIH0pKSxcbiAgICB3aXRoTWV0aG9kcygoc3RvcmUpID0+ICh7XG4gICAgICBpbml0KGluaXRpYWxWYWx1ZTogVElkW10gfCBudWxsKSB7XG4gICAgICAgIGlmIChpbml0aWFsVmFsdWUgJiYgaW5pdGlhbFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkKGluaXRpYWxWYWx1ZSA/PyBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBpbml0aWFsaXplZDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGZldGNoKCkge1xuICAgICAgICBjb25zdCBkYXRhc291cmNlID0gdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpO1xuICAgICAgICBjb25zdCBpbmRleCA9IHVudHJhY2tlZChzdG9yZS5uZXh0UGFnZUluZGV4KTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB1bnRyYWNrZWQoc3RvcmUucXVlcnkpO1xuICAgICAgICBjb25zdCBwYWdlU2l6ZSA9IHVudHJhY2tlZChzdG9yZS5wYWdlU2l6ZSk7XG4gICAgICAgIGlmICghZGF0YXNvdXJjZSB8fCBpbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJhbXM6IFJkdFNlbGVjdFJlcXVlc3RQYXJhbXMgPSB7XG4gICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICAgIHBhZ2VJbmRleDogaW5kZXgsXG4gICAgICAgICAgcGFnZVNpemU6IHBhZ2VTaXplLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjdXJyZW50UmVxdWVzdCA9IHVudHJhY2tlZChzdG9yZS5fZmV0Y2hSZXF1ZXN0KTtcbiAgICAgICAgaWYgKGN1cnJlbnRSZXF1ZXN0KSB7XG4gICAgICAgICAgaWYgKGNvbXBhcmVTZWxlY3RSZXF1ZXN0UGFyYW1zKGN1cnJlbnRSZXF1ZXN0LnBhcmFtcywgcGFyYW1zKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50UmVxdWVzdC5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSB0aGlzLl9nZXRGZXRjaE9ic2VydmVyKHBhcmFtcyk7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGRhdGFzb3VyY2UuZ2V0RGF0YShwYXJhbXMpLnN1YnNjcmliZShvYnNlcnZlcik7XG4gICAgICAgIC8vIE9mZmxpbmUgZGF0YXNvdXJjZSB1c2luZyBgb2YoKWAgZW1pdHMgdmFsdWUgc3luY2hyb25vdXNseVxuICAgICAgICBpZiAoIXN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hSZXF1ZXN0OiB7IHN1YnNjcmlwdGlvbiwgcGFyYW1zOiBwYXJhbXMgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9nZXRGZXRjaE9ic2VydmVyKFxuICAgICAgICByZXF1ZXN0UGFyYW1zOiBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zXG4gICAgICApOiBPYnNlcnZlcjxSZHRTZWxlY3RQYWdlPFQ+PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmV4dDogKHBhZ2UpID0+IHRoaXMuX29uRmV0Y2hTdWNjZXNzKHBhZ2UsIHJlcXVlc3RQYXJhbXMpLFxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuX29uRmV0Y2hFcnJvcihlcnJvciksXG4gICAgICAgICAgY29tcGxldGU6ICgpID0+IHRoaXMuX29uRmV0Y2hDb21wbGV0ZSgpLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIF9vbkZldGNoU3VjY2VzcyhcbiAgICAgICAgcGFnZTogUmR0U2VsZWN0UGFnZTxUPixcbiAgICAgICAgcmVxdWVzdFBhcmFtczogUmR0U2VsZWN0UmVxdWVzdFBhcmFtc1xuICAgICAgKSB7XG4gICAgICAgIGxldCBuZXh0UGFnZUluZGV4OiBudW1iZXIgfCBudWxsID0gcGFnZS5wYWdlSW5kZXggKyAxO1xuICAgICAgICBpZiAocGFnZS50b3RhbENvdW50ID09PSBudWxsKSB7XG4gICAgICAgICAgaWYgKHBhZ2UuZGF0YS5sZW5ndGggPCByZXF1ZXN0UGFyYW1zLnBhZ2VTaXplKSB7XG4gICAgICAgICAgICBuZXh0UGFnZUluZGV4ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcy5wYWdlSW5kZXggKiByZXF1ZXN0UGFyYW1zLnBhZ2VTaXplICsgcGFnZS5kYXRhLmxlbmd0aCA+PVxuICAgICAgICAgIHBhZ2UudG90YWxDb3VudFxuICAgICAgICApIHtcbiAgICAgICAgICBuZXh0UGFnZUluZGV4ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zID0gW1xuICAgICAgICAgIC4uLnVudHJhY2tlZChzdG9yZS5vcHRpb25zKSxcbiAgICAgICAgICAuLi50aGlzLl9nZXRMYWJlbFZhbHVlSWRzKHBhZ2UuZGF0YSksXG4gICAgICAgIF07XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICB0b3RhbENvdW50OlxuICAgICAgICAgICAgcGFnZS50b3RhbENvdW50ID8/XG4gICAgICAgICAgICBNYXRoLm1heChcbiAgICAgICAgICAgICAgdW50cmFja2VkKHN0b3JlLnRvdGFsQ291bnQpLFxuICAgICAgICAgICAgICBwYWdlLnBhZ2VJbmRleCAqIHJlcXVlc3RQYXJhbXMucGFnZVNpemUgKyBwYWdlLmRhdGEubGVuZ3RoXG4gICAgICAgICAgICApLFxuICAgICAgICAgIG5leHRQYWdlSW5kZXgsXG4gICAgICAgICAgdG90YWxDb3VudEtub3duOlxuICAgICAgICAgICAgcGFnZS50b3RhbENvdW50ICE9PSBudWxsIHx8XG4gICAgICAgICAgICBwYWdlLmRhdGEubGVuZ3RoIDwgcmVxdWVzdFBhcmFtcy5wYWdlU2l6ZSxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIF9mZXRjaFJlcXVlc3Q6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9sb2FkTWlzc2luZ1NlbGVjdGVkKCk7XG4gICAgICB9LFxuICAgICAgX29uRmV0Y2hFcnJvcihlcnJvcjogYW55KSB7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBmZXRjaEVycm9yOiBnZXRSZHRTZWxlY3RFcnJvcihlcnJvciksXG4gICAgICAgICAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgX29uRmV0Y2hDb21wbGV0ZSgpIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIF9mZXRjaFJlcXVlc3Q6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHNldERhdGFzb3VyY2UoZGF0YXNvdXJjZTogUmR0U2VsZWN0RGF0YXNvdXJjZTxULCBUSWQ+KSB7XG4gICAgICAgIHVudHJhY2tlZChzdG9yZS5fZmV0Y2hSZXF1ZXN0KT8uc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBkYXRhc291cmNlLFxuICAgICAgICAgIF9mZXRjaFJlcXVlc3Q6IG51bGwsXG4gICAgICAgICAgZmV0Y2hFcnJvcjogbnVsbCxcbiAgICAgICAgICB0b3RhbENvdW50S25vd246IGRhdGFzb3VyY2UudG90YWxDb3VudEtub3duLFxuICAgICAgICAgIG5leHRQYWdlSW5kZXg6IDAsXG4gICAgICAgICAgdG90YWxDb3VudDogMCxcbiAgICAgICAgICBvcHRpb25zOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghZGF0YXNvdXJjZS5xdWVyeVJlcXVpcmVkKSB7XG4gICAgICAgICAgdGhpcy5mZXRjaCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNldFF1ZXJ5KHF1ZXJ5OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk7XG4gICAgICAgIGlmIChxdWVyeSAhPT0gdW50cmFja2VkKHN0b3JlLnF1ZXJ5KSkge1xuICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHF1ZXJ5IH0pO1xuICAgICAgICAgIGlmIChxdWVyeSB8fCAhZGF0YXNvdXJjZT8ucXVlcnlSZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy5mZXRjaCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJlc2V0KCkge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgcXVlcnk6IG51bGwsXG4gICAgICAgICAgbmV4dFBhZ2VJbmRleDogMCxcbiAgICAgICAgICBvcHRpb25zOiBbXSxcbiAgICAgICAgICB0b3RhbENvdW50OiAwLFxuICAgICAgICAgIHRvdGFsQ291bnRLbm93bjogdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpPy50b3RhbENvdW50S25vd24gPz8gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgcmVzZXRUb3RhbENvdW50S25vd24oKSB7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICB0b3RhbENvdW50S25vd246IHVudHJhY2tlZChzdG9yZS5kYXRhc291cmNlKT8udG90YWxDb3VudEtub3duID8/IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHNldFNlbGVjdGVkKGlkczogVElkW10pIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IGlkcyxcbiAgICAgICAgICBzZWxlY3RlZE1hcDogbmV3IE1hcCgpLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fbG9hZE1pc3NpbmdTZWxlY3RlZCgpO1xuICAgICAgfSxcbiAgICAgIHNlbGVjdChpZHM6IFRJZFtdKSB7XG4gICAgICAgIGNvbnN0IG9sZE1pc3NpbmcgPSB1bnRyYWNrZWQoc3RvcmUuX21pc3NpbmdTZWxlY3RlZCk7XG4gICAgICAgIGNvbnN0IG5vdEluTWlzc2luZyA9IGlkcy5maWx0ZXIoKGlkKSA9PiAhb2xkTWlzc2luZy5pbmNsdWRlcyhpZCkpO1xuICAgICAgICBpZiAobm90SW5NaXNzaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBvbGRNaXNzaW5nLmNvbmNhdChub3RJbk1pc3NpbmcpLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5fbG9hZE1pc3NpbmdTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdW5zZWxlY3RBbGwoKSB7XG4gICAgICAgIGNvbnN0IGZldGNoTWlzc2luZ1JlcSA9IHVudHJhY2tlZChzdG9yZS5fZmV0Y2hNaXNzaW5nUmVxdWVzdCk7XG4gICAgICAgIGlmIChmZXRjaE1pc3NpbmdSZXEpIHtcbiAgICAgICAgICBmZXRjaE1pc3NpbmdSZXEuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IFtdLFxuICAgICAgICAgIHNlbGVjdGVkTWFwOiBuZXcgTWFwKCksXG4gICAgICAgICAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIF9zZXRBbmRHZXRNaXNzaW5nKCkge1xuICAgICAgICBjb25zdCBhbGxNaXNzaW5nID0gdW50cmFja2VkKHN0b3JlLl9taXNzaW5nU2VsZWN0ZWQpO1xuICAgICAgICBjb25zdCBpdGVtcyA9IHVudHJhY2tlZChzdG9yZS5vcHRpb25zKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRNYXAgPSBuZXcgTWFwKHVudHJhY2tlZChzdG9yZS5zZWxlY3RlZE1hcCkpO1xuICAgICAgICBjb25zdCBuZXdNaXNzaW5nOiBUSWRbXSA9IFtdO1xuXG4gICAgICAgIGxldCBzZWxlY3RlZENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBpZCBvZiBhbGxNaXNzaW5nKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zLmZpbmQoKGl0KSA9PiBpdC5pZCA9PT0gaWQpO1xuICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICBzZWxlY3RlZE1hcC5zZXQoaWQsIGl0ZW0pO1xuICAgICAgICAgICAgc2VsZWN0ZWRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3TWlzc2luZy5wdXNoKGlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkQ2hhbmdlZCkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgc2VsZWN0ZWRNYXAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5ld01pc3NpbmcubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fY2FuY2VsRmV0Y2hNaXNzaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IF9taXNzaW5nU2VsZWN0ZWQ6IG5ld01pc3NpbmcgfSk7XG4gICAgICAgIHJldHVybiBuZXdNaXNzaW5nO1xuICAgICAgfSxcbiAgICAgIF9sb2FkTWlzc2luZ1NlbGVjdGVkKCkge1xuICAgICAgICBjb25zdCBkYXRhc291cmNlID0gc3RvcmUuZGF0YXNvdXJjZSgpO1xuICAgICAgICBjb25zdCByZWFsbHlNaXNzaW5nID0gdGhpcy5fc2V0QW5kR2V0TWlzc2luZygpO1xuICAgICAgICBpZiAoIXVudHJhY2tlZChzdG9yZS5sb2FkaW5nKSAmJiBkYXRhc291cmNlKSB7XG4gICAgICAgICAgaWYgKHJlYWxseU1pc3NpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fZmV0Y2hNaXNzaW5nKHJlYWxseU1pc3NpbmcsIGRhdGFzb3VyY2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGluaXRpYWxpemVkOiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9jYW5jZWxGZXRjaE1pc3NpbmdJZk5lZWRlZCgpIHtcbiAgICAgICAgY29uc3QgZmV0Y2hNaXNzaW5nUmVxID0gdW50cmFja2VkKHN0b3JlLl9mZXRjaE1pc3NpbmdSZXF1ZXN0KTtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB1bnRyYWNrZWQoc3RvcmUub3B0aW9ucyk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBmZXRjaE1pc3NpbmdSZXE/Lmlkcy5ldmVyeSgoaWQpID0+IGl0ZW1zLnNvbWUoKGl0KSA9PiBpdC5pZCA9PT0gaWQpKVxuICAgICAgICApIHtcbiAgICAgICAgICBmZXRjaE1pc3NpbmdSZXEuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IG51bGwsXG4gICAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBbXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9mZXRjaE1pc3NpbmcoaWRzOiBUSWRbXSwgZGF0YXNvdXJjZTogUmR0U2VsZWN0RGF0YXNvdXJjZTxULCBUSWQ+KSB7XG4gICAgICAgIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YiA9IGRhdGFzb3VyY2UuZ2V0SXRlbXNCeUlkcyhpZHMpLnN1YnNjcmliZSgobWFwKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TWlzc2luZzogVElkW10gPSBbXTtcbiAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZCA9IG5ldyBNYXAodW50cmFja2VkKHN0b3JlLnNlbGVjdGVkTWFwKSk7XG4gICAgICAgICAgZm9yIChjb25zdCBpZCBvZiB1bnRyYWNrZWQoc3RvcmUuX21pc3NpbmdTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIGlmIChtYXAuaGFzKGlkKSkge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG1hcC5nZXQoaWQpITtcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhc291cmNlLmdldExhYmVsKHZhbHVlKTtcbiAgICAgICAgICAgICAgbmV3U2VsZWN0ZWQuc2V0KGlkLCB7IGxhYmVsLCB2YWx1ZSwgaWQgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBuZXdNaXNzaW5nLnB1c2goaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogbnVsbCxcbiAgICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IG5ld01pc3NpbmcsXG4gICAgICAgICAgICBzZWxlY3RlZE1hcDogbmV3U2VsZWN0ZWQsXG4gICAgICAgICAgICBpbml0aWFsaXplZDogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLl9sb2FkTWlzc2luZ1NlbGVjdGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXN1Yi5jbG9zZWQpIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogeyBpZHMsIHN1YnNjcmlwdGlvbjogc3ViIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZWxlY3RTaW5nbGUoaWQ6IFRJZCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkKFtpZF0pO1xuICAgICAgfSxcbiAgICAgIHRvZ2dsZShpZDogVElkKSB7XG4gICAgICAgIGNvbnN0IG9sZE1hcCA9IHVudHJhY2tlZChzdG9yZS5zZWxlY3RlZE1hcCk7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk7XG4gICAgICAgIGlmICghZGF0YXNvdXJjZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBpcyB1bmRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2xkTWFwLmhhcyhpZCkpIHtcbiAgICAgICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG9sZE1hcCk7XG4gICAgICAgICAgbmV3TWFwLmRlbGV0ZShpZCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzZWxlY3RlZE1hcDogbmV3TWFwIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB1bnRyYWNrZWQoc3RvcmUub3B0aW9ucykuZmluZCgoaXQpID0+IGl0LmlkID09PSBpZCk7XG4gICAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbaWRdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChvbGRNYXApO1xuICAgICAgICAgICAgbmV3TWFwLnNldChpZCwgaXRlbSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHNlbGVjdGVkTWFwOiBuZXdNYXAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FuY2VsRmV0Y2goKSB7XG4gICAgICAgIHVudHJhY2tlZChzdG9yZS5fZmV0Y2hSZXF1ZXN0KT8uc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBfZmV0Y2hSZXF1ZXN0OiBudWxsLFxuICAgICAgICAgIGZldGNoRXJyb3I6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGlzU2VsZWN0ZWQoaXRlbTogVCkge1xuICAgICAgICBjb25zdCBkYXRhc291cmNlID0gdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpO1xuICAgICAgICBpZiAoIWRhdGFzb3VyY2UpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaWQgPSBkYXRhc291cmNlLmdldElkKGl0ZW0pO1xuICAgICAgICByZXR1cm4gdW50cmFja2VkKHN0b3JlLnNlbGVjdGVkTWFwKS5oYXMoaWQpO1xuICAgICAgfSxcbiAgICAgIHNldFBhZ2VTaXplKHNpemU6IG51bWJlcikge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHBhZ2VTaXplOiBzaXplIH0pO1xuICAgICAgfSxcbiAgICAgIF9nZXRMYWJlbFZhbHVlSWRzKGl0ZW1zOiBUW10pOiBSZHRMYWJlbFZhbHVlSWQ8VCwgVElkPltdIHtcbiAgICAgICAgY29uc3QgZGF0YXNvdXJjZSA9IHVudHJhY2tlZChzdG9yZS5kYXRhc291cmNlKTtcbiAgICAgICAgaWYgKCFkYXRhc291cmNlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhc291cmNlIG5vdCBzZXQhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZGF0YXNvdXJjZS5nZXRMYWJlbChpdGVtKSxcbiAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgICBpZDogZGF0YXNvdXJjZS5nZXRJZChpdGVtKSxcbiAgICAgICAgfSkpO1xuICAgICAgfSxcbiAgICB9KSlcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IFJkdFNlbGVjdFN0b3JlID0gZ2V0UmR0U2VsZWN0U3RvcmU8YW55LCBhbnk+KCk7XG5leHBvcnQgdHlwZSBSZHRTZWxlY3RTdG9yZTxUID0gYW55LCBUSWQgPSBudW1iZXI+ID0gSW5zdGFuY2VUeXBlPFxuICBSZXR1cm5UeXBlPHR5cGVvZiBnZXRSZHRTZWxlY3RTdG9yZTxULCBUSWQ+PlxuPjtcblxuZnVuY3Rpb24gZ2V0UmR0U2VsZWN0RXJyb3IoZXJyb3I6IGFueSkge1xuICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlcnJvcjtcbiAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIGVycm9yLm1lc3NhZ2U7XG4gIH0gZWxzZSBpZiAoZXJyb3IgJiYgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiAnbWVzc2FnZScgaW4gZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3IubWVzc2FnZTtcbiAgfVxuICByZXR1cm4gJ05hc3RhbGEgY2h5YmEuJztcbn1cbiJdfQ==","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 datasourceInput = input(null);\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 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 {\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 {\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: { datasourceInput: { classPropertyName: \"datasourceInput\", publicName: \"datasourceInput\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3QvcmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFFBQVEsR0FDVCxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUcxRCxNQUFNLE9BQWdCLDRCQUlwQixTQUFRLHlCQUFzQztJQUNyQyxlQUFlLEdBQUcsS0FBSyxDQUM5QixJQUFJLENBQ0wsQ0FBQztJQUNPLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUErQixDQUFDO0lBQzdELGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztJQUMzQyxxQkFBcUIsR0FBRyxLQUFLLENBQ3BDLElBQUksRUFDSjtRQUNFLEtBQUssRUFBRSxnQkFBZ0I7S0FDeEIsQ0FDRixDQUFDO0lBQ08sZ0JBQWdCLEdBQUcsWUFBWSxDQUFD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IGluamVjdCxcbiAgaW5wdXQsXG4gIGxpbmtlZFNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHRha2VVbnRpbERlc3Ryb3llZCxcbiAgdG9PYnNlcnZhYmxlLFxuICB0b1NpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTnVsbGFibGUsIFJkdE9iamVjdFV0aWxzIH0gZnJvbSAnQG5ncmR0L3V0aWxzJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9yZHQtYmFzZS1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZHRTZWxlY3REYXRhc291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlL3JkdC1zZWxlY3QtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBSZHRTZWxlY3RTdG9yZSB9IGZyb20gJy4vc3RhdGUvcmR0LXNlbGVjdC1zdG9yZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdEJhc2VTZWxlY3RDb21tb25Db21wb25lbnQ8XG4gIFRJdGVtLFxuICBUSWQsXG4gIFRPdXQgZXh0ZW5kcyBUSWQgfCBUSWRbXVxuPiBleHRlbmRzIFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQ8VE91dCwgVElkW10+IHtcbiAgcmVhZG9ubHkgZGF0YXNvdXJjZUlucHV0ID0gaW5wdXQ8UmR0U2VsZWN0RGF0YXNvdXJjZTxUSXRlbSwgVElkPiB8IG51bGw+KFxuICAgIG51bGxcbiAgKTtcbiAgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoUmR0U2VsZWN0U3RvcmUpIGFzIFJkdFNlbGVjdFN0b3JlPFRJdGVtLCBUSWQ+O1xuICByZWFkb25seSB2aXNpYmxlT3B0aW9ucyA9IHRoaXMuc3RvcmUudmlzaWJsZU9wdGlvbnM7XG4gIHJlYWRvbmx5IHF1ZXJ5VmFsaWRhdG9yRm5JbnB1dCA9IGlucHV0PE51bGxhYmxlPFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXT4+KFxuICAgIG51bGwsXG4gICAge1xuICAgICAgYWxpYXM6ICdpbnB1dFZhbGlkYXRvcicsXG4gICAgfVxuICApO1xuICByZWFkb25seSBxdWVyeVZhbGlkYXRvckZuID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMucXVlcnlWYWxpZGF0b3JGbklucHV0KCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5VmFsaWRhdG9yRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLnF1ZXJ5VmFsaWRhdG9yRm4oKTtcbiAgICBpZiAodmFsaWRhdG9yKSB7XG4gICAgICB0aGlzLmlucHV0Q3RybC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXRDdHJsLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgIH1cbiAgfSk7XG4gIHJlYWRvbmx5IGlucHV0Q3RybCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnB1dEN0cmxFdmVudHMgPSB0b1NpZ25hbCh0aGlzLmlucHV0Q3RybC5ldmVudHMpO1xuICByZWFkb25seSBpbnB1dEVycm9ycyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmlucHV0Q3RybEV2ZW50cygpO1xuICAgIGlmICh0aGlzLmlucHV0Q3RybC50b3VjaGVkICYmIHRoaXMuaW5wdXRDdHJsLmludmFsaWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmlucHV0Q3RybC5lcnJvcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSk7XG4gIHJlYWRvbmx5IGRlYm91bmNlVGltZUlucHV0ID0gaW5wdXQ8bnVtYmVyPigzMDAsIHtcbiAgICBhbGlhczogJ2RlYm91bmNlJyxcbiAgfSk7XG4gIHJlYWRvbmx5IGRlYm91bmNlVGltZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmRlYm91bmNlVGltZUlucHV0KCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlYm91bmNlZElucHV0JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRlYm91bmNlVGltZSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKHRpbWUpID0+IHRoaXMuaW5wdXRDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSh0aW1lKSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcbiAgcmVhZG9ubHkgZGVib3VuY2VkSW5wdXQgPSB0b1NpZ25hbCh0aGlzLmRlYm91bmNlZElucHV0JCwge1xuICAgIGluaXRpYWxWYWx1ZTogbnVsbCxcbiAgfSk7XG4gIHJlYWRvbmx5IHBhZ2VTaXplSW5wdXQgPSBpbnB1dCgyMCwge1xuICAgIGFsaWFzOiAncGFnZVNpemUnLFxuICB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWdlU2l6ZUVmZmVjdCA9IGVmZmVjdCgoKSA9PlxuICAgIHRoaXMuc3RvcmUuc2V0UGFnZVNpemUodGhpcy5wYWdlU2l6ZUlucHV0KCkpXG4gICk7XG5cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgbG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zdG9yZS5sb2FkaW5nKCkgfHxcbiAgICAgIHRoaXMubG9hZGluZ0lucHV0KCkgfHxcbiAgICAgIFJkdE9iamVjdFV0aWxzLnNvbWVWYWx1ZXNUcnVlKHRoaXMubG9hZGluZ01hcCgpKVxuICAgICk7XG4gIH0pO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpO1xuICAgIGlmIChjb250cm9sICYmIGNvbnRyb2wudmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGFyciA9IEFycmF5LmlzQXJyYXkoY29udHJvbC52YWx1ZSlcbiAgICAgICAgPyBjb250cm9sLnZhbHVlXG4gICAgICAgIDogW2NvbnRyb2wudmFsdWVdO1xuICAgICAgdGhpcy5zdG9yZS5pbml0KGFyciBhcyBUSWRbXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuaW5pdChudWxsKTtcbiAgICB9XG4gICAgdGhpcy5kZWJvdW5jZWRJbnB1dCRcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuaGFuZGxlSW5wdXQodmFsdWUpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVJbnB1dCh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuc2V0UXVlcnkodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlVmFsdWVDaGFuZ2VFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkTWFwID0gdGhpcy5zdG9yZS5zZWxlY3RlZE1hcCgpO1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmZyb20oc2VsZWN0ZWRNYXAua2V5cygpKTtcbiAgICBjb25zdCBpbnRlcm5hbFZhbHVlID0gdW50cmFja2VkKHRoaXMuaW50ZXJuYWxWYWx1ZSk7XG5cbiAgICBpZiAoXG4gICAgICAhdW50cmFja2VkKHRoaXMuc3RvcmUuZGF0YXNvdXJjZSkgfHxcbiAgICAgICF1bnRyYWNrZWQodGhpcy5zdG9yZS5pbml0aWFsaXplZClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBhcnJheUludGVybmFsVmFsdWUgPSBBcnJheS5pc0FycmF5KGludGVybmFsVmFsdWUpXG4gICAgICAgID8gaW50ZXJuYWxWYWx1ZVxuICAgICAgICA6IGludGVybmFsVmFsdWUgIT09IG51bGxcbiAgICAgICAgPyBbaW50ZXJuYWxWYWx1ZV1cbiAgICAgICAgOiBbXTtcbiAgICAgIGlmICghaXNFcXVhbChhcnJheUludGVybmFsVmFsdWUsIHZhbHVlcykpIHtcbiAgICAgICAgdGhpcy5vbkludGVybmFsVmFsdWVDaGFuZ2UodmFsdWVzKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkludGVybmFsVmFsdWVDaGFuZ2UobnVsbCk7XG4gICAgfVxuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXh0ZXJuYWxWYWx1ZUVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZXh0ZXJuYWxWYWx1ZSA9IHRoaXMuZXh0ZXJuYWxWYWx1ZSgpO1xuICAgIGNvbnN0IHNlbGVjdGVkTWFwID0gdW50cmFja2VkKHRoaXMuc3RvcmUuc2VsZWN0ZWRNYXApO1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmZyb20oc2VsZWN0ZWRNYXAua2V5cygpKTtcblxuICAgIGlmIChleHRlcm5hbFZhbHVlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBuZXdFeHRlcm5hbFZhbHVlID0gQXJyYXkuaXNBcnJheShleHRlcm5hbFZhbHVlKVxuICAgICAgICA/IGV4dGVybmFsVmFsdWVcbiAgICAgICAgOiBbZXh0ZXJuYWxWYWx1ZV07XG5cbiAgICAgIGlmICghaXNFcXVhbChuZXdFeHRlcm5hbFZhbHVlLCB2YWx1ZXMpKSB7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0U2VsZWN0ZWQobmV3RXh0ZXJuYWxWYWx1ZSBhcyBUSWRbXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUudW5zZWxlY3RBbGwoKTtcbiAgICB9XG4gIH0pO1xufVxuIl19","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 { 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: () => `Povinné pole.`,\n email: () => 'Neplatný email.',\n minlength: (value) => `Minimální délka je ${value.requiredLength} znaků.`,\n maxlength: (value) => `Maximální délka je ${value.requiredLength} znaků.`,\n notFound: () => 'Pro zadaný kód nebyla nalezena žádná položka.',\n multipleFound: () => 'Pro zadaný kód bylo nalezeno více položek.',\n};\nexport class RdtFormErrorPipe {\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 return fn(error.value);\n }\n else if (typeof error.value === 'string') {\n return error.value;\n }\n else {\n return 'Neznámá chyba';\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvcGlwZXMvZm9ybS1lcnJvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUk1RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFcEYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUF3QjtJQUNwRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXdCO0lBQzNELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlO0lBQy9CLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUI7SUFDOUIsU0FBUyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDeEIsc0JBQXNCLEtBQUssQ0FBQyxjQUFjLFNBQVM7SUFDckQsU0FBUyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDeEIsc0JBQXNCLEtBQUssQ0FBQyxjQUFjLFNBQVM7SUFDckQsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLCtDQUErQztJQUMvRCxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsNENBQTRDO0NBQ2xFLENBQUM7QUFNRixNQUFNLE9BQU8sZ0JBQWdCO0lBQ1YsVUFBVSxHQUF3QixDQUFDLEdBQUcsRUFBRTtRQUN2RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsNkJBQTZCLEVBQUU7WUFDckQsUUFBUSxFQUFFLElBQUk7U0FDZixDQUErQixDQUFDO1FBRWpDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQ1YsMkRBQTJEO2dCQUN6RCxpREFBaUQsQ0FDcEQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQztJQUM5QyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRUwsU0FBUyxDQUFDLE1BQTJDO1FBQ25ELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdkIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNQLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDckIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sZUFBZSxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO3VHQS9CVSxnQkFBZ0I7cUdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmR0Rm9ybUVycm9yQ29kZU1hcCB9IGZyb20gJy4vbW9kZWxzL3JkdC1lcnJvci1jb2Rlcy5pbnQnO1xuaW1wb3J0IHsgUmR0RXJyb3JWYWx1ZSB9IGZyb20gJy4vbW9kZWxzL3JkdC1lcnJvci1jb2Rlcy50eXBlcyc7XG5pbXBvcnQgeyBSRFRfRk9STV9FUlJPUl9DT0RFU19QUk9WSURFUiB9IGZyb20gJy4vcHJvdmlkZXJzL3JkdC1lcnJvci1jb2RlLXByb3ZpZGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RXJyb3IoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKTogUmR0RXJyb3JWYWx1ZSB7XG4gIGlmIChlcnJvcnMpIHtcbiAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhlcnJvcnMpWzBdO1xuICAgIGNvbnN0IHZhbHVlID0gZXJyb3JzW2tleV07XG4gICAgcmV0dXJuIHsga2V5LCB2YWx1ZSB9O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJkdEZvcm1FcnJvckNvZGVzOiBSZHRGb3JtRXJyb3JDb2RlTWFwID0ge1xuICByZXF1aXJlZDogKCkgPT4gYFBvdmlubsOpIHBvbGUuYCxcbiAgZW1haWw6ICgpID0+ICdOZXBsYXRuw70gZW1haWwuJyxcbiAgbWlubGVuZ3RoOiAodmFsdWU6IGFueSkgPT5cbiAgICBgTWluaW3DoWxuw60gZMOpbGthIGplICR7dmFsdWUucmVxdWlyZWRMZW5ndGh9IHpuYWvFry5gLFxuICBtYXhsZW5ndGg6ICh2YWx1ZTogYW55KSA9PlxuICAgIGBNYXhpbcOhbG7DrSBkw6lsa2EgamUgJHt2YWx1ZS5yZXF1aXJlZExlbmd0aH0gem5ha8WvLmAsXG4gIG5vdEZvdW5kOiAoKSA9PiAnUHJvIHphZGFuw70ga8OzZCBuZWJ5bGEgbmFsZXplbmEgxb7DoWRuw6EgcG9sb8W+a2EuJyxcbiAgbXVsdGlwbGVGb3VuZDogKCkgPT4gJ1BybyB6YWRhbsO9IGvDs2QgYnlsbyBuYWxlemVubyB2w61jZSBwb2xvxb5lay4nLFxufTtcblxuQFBpcGUoe1xuICBuYW1lOiAncmR0Rm9ybUVycm9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0Rm9ybUVycm9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9yQ29kZXM6IFJkdEZvcm1FcnJvckNvZGVNYXAgPSAoKCkgPT4ge1xuICAgIGNvbnN0IGluamVjdGVkID0gaW5qZWN0KFJEVF9GT1JNX0VSUk9SX0NPREVTX1BST1ZJREVSLCB7XG4gICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICB9KSBhcyBSZHRGb3JtRXJyb3JDb2RlTWFwIHwgbnVsbDtcblxuICAgIGlmICghaW5qZWN0ZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ05vIHByb3ZpZGVyIGZvciBSRFRfRk9STV9FUlJPUl9DT0RFU19QUk9WSURFUiB3YXMgZm91bmQuICcgK1xuICAgICAgICAgICdEZWZhdWx0IGZvcm0gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdyBiZWluZyB1c2VkLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluamVjdGVkID8/IGRlZmF1bHRSZHRGb3JtRXJyb3JDb2RlcztcbiAgfSkoKTtcblxuICB0cmFuc2Zvcm0oZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFlcnJvcnMpIHJldHVybiAnJztcblxuICAgIGNvbnN0IGVycm9yID0gZ2V0Rmlyc3RFcnJvcihlcnJvcnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY29uc3QgZm4gPSB0aGlzLmVycm9yQ29kZXNbZXJyb3Iua2V5XTtcbiAgICAgIGlmIChmbikge1xuICAgICAgICByZXR1cm4gZm4oZXJyb3IudmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXJyb3IudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBlcnJvci52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnTmV6bsOhbcOhIGNoeWJhJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=","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 = 'Platnost do musí být později než platnost od.', 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 = 'Platnost od musí být dříve než platnost do.', 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+IHZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGVJbkZ1dHVyZTogdHJ1ZSxcbiAgICB9O1xuICB9O1xuXG4gIHN0YXRpYyBsYXN0RGF5T2ZNb250aDogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjb250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBsYXN0RGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAwKTtcbiAgICBpZiAoZGF0ZS5nZXREYXRlKCkgPT09IGxhc3REYXkuZ2V0RGF0ZSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhc3REYXlPZk1vbnRoOiB0cnVlLFxuICAgIH07XG4gIH07XG5cbiAgc3RhdGljIGdyZWF0ZXJPckVxdWFsVG9GaWVsZChcbiAgICBzdGFydERhdGVGaWVsZDogc3RyaW5nIHwgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4sXG4gICAgZXJyb3IgPSAnUGxhdG5vc3QgZG8gbXVzw60gYsO9dCBwb3pkxJtqaSBuZcW+IHBsYXRub3N0IG9kLicsXG4gICAgdW5zdWJzY3JpYmVTdWJqPzogU3ViamVjdDx2b2lkPlxuICApOiBWYWxpZGF0b3JGbiB7XG4gICAgbGV0IHN1YmJlZCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIChlbmRDb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0Q29udHJvbCA9XG4gICAgICAgIHN0YXJ0RGF0ZUZpZWxkIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xcbiAgICAgICAgICA/IHN0YXJ0RGF0ZUZpZWxkXG4gICAgICAgICAgOiBlbmRDb250cm9sLnBhcmVudD8uZ2V0KHN0YXJ0RGF0ZUZpZWxkKTtcblxuICAgICAgaWYgKCFzdGFydENvbnRyb2wpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmICghc3ViYmVkKSB7XG4gICAgICAgIHN1YmJlZCA9IHRydWU7XG4gICAgICAgIGxldCBjaGFuZ2UkOiBPYnNlcnZhYmxlPGFueT4gfCB1bmRlZmluZWQgPSBtZXJnZShcbiAgICAgICAgICBzdGFydENvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgICAgIHN0YXJ0Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgICApO1xuICAgICAgICBpZiAodW5zdWJzY3JpYmVTdWJqKSB7XG4gICAgICAgICAgY2hhbmdlJCA9IGNoYW5nZSQucGlwZSh0YWtlVW50aWwodW5zdWJzY3JpYmVTdWJqKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZSQpIHtcbiAgICAgICAgICBjaGFuZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBlbmRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgc3RhcnREYXRlID0gc3RhcnRDb250cm9sPy52YWx1ZTtcbiAgICAgIGNvbnN0IGVuZERhdGUgPSBlbmRDb250cm9sLnZhbHVlO1xuICAgICAgaWYgKCFzdGFydERhdGUgfHwgIWVuZERhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoRGF0ZS5wYXJzZShzdGFydERhdGUpID4gRGF0ZS5wYXJzZShlbmREYXRlKSkge1xuICAgICAgICByZXR1cm4geyBkYXRlR3JlYXRlck9yRXF1YWxUb0ZpZWxkOiBlcnJvciB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBsZXNzT3JFcXVhbFRvRmllbGQoXG4gICAgZW5kRGF0ZUZpZWxkOiBzdHJpbmcgfCBGb3JtQ29udHJvbDxzdHJpbmc+IHwgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4sXG4gICAgZXJyb3IgPSAnUGxhdG5vc3Qgb2QgbXVzw60gYsO9dCBkxZnDrXZlIG5lxb4gcGxhdG5vc3QgZG8uJyxcbiAgICB1bnN1YnNjcmliZVN1Ymo/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":"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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/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 dataTestIdInput = input(undefined, { alias: 'dataTestId' });\n dataTestId = linkedSignal(() => this.dataTestIdInput() ?? this.label() ?? '');\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 (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 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 }, dataTestIdInput: { classPropertyName: \"dataTestIdInput\", publicName: \"dataTestId\", 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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ZSxcbiAgY29tcHV0ZWQsXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBtb2RlbCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFNpZ25hbCxcbiAgc2lnbmFsLFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZHRJbnRlcmFjdGl2ZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tICdAbmdyZHQvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BuZ3JkdC91dGlscyc7XG5pbXBvcnQgeyBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldEZvcm1Db250cm9sIH0gZnJvbSAnLi4vdXRpbHMvZ2V0LWZvcm0tY29udHJvbCc7XG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7fTtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQ8VEV4dCwgVEludCA9IFRFeHQ+XG4gIGV4dGVuZHMgUmR0SW50ZXJhY3RpdmVFbGVtZW50Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbnRyb2wgPSBzaWduYWw8QWJzdHJhY3RDb250cm9sPFRFeHQ+IHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGNvbnRyb2wgPSB0aGlzLl9jb250cm9sLmFzUmVhZG9ubHkoKTtcblxuICByZWFkb25seSBleHRlcm5hbFZhbHVlID0gbW9kZWw8VEV4dCB8IG51bGw+KG51bGwsIHsgYWxpYXM6ICd2YWx1ZScgfSk7XG4gIHJlYWRvbmx5IGludGVybmFsVmFsdWUgPSBsaW5rZWRTaWduYWwoKCkgPT5cbiAgICB0aGlzLnRvSW50ZXJuYWxWYWx1ZSh0aGlzLmV4dGVybmFsVmFsdWUoKSlcbiAgKTtcblxuICByZWFkb25seSBkYXRhVGVzdElkSW5wdXQgPSBpbnB1dCh1bmRlZmluZWQsIHsgYWxpYXM6ICdkYXRhVGVzdElkJyB9KTtcbiAgcmVhZG9ubHkgZGF0YVRlc3RJZCA9IGxpbmtlZFNpZ25hbChcbiAgICAoKSA9PiB0aGlzLmRhdGFUZXN0SWRJbnB1dCgpID8/IHRoaXMubGFiZWwoKSA/PyAnJ1xuICApO1xuXG4gIHJlYWRvbmx5IGxhYmVsSW5wdXQgPSBpbnB1dCgnJywgeyBhbGlhczogJ2xhYmVsJyB9KTtcbiAgcmVhZG9ubHkgbGFiZWwgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5sYWJlbElucHV0KCkgPz8gJycpO1xuXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVySW5wdXQgPSBpbnB1dCgnJywgeyBhbGlhczogJ3BsYWNlaG9sZGVyJyB9KTtcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5wbGFjZWhvbGRlcklucHV0KCkgPz8gJycpO1xuXG4gIHJlYWRvbmx5IG5hbWVJbnB1dCA9IGlucHV0KCcnLCB7IGFsaWFzOiAnbmFtZScgfSk7XG4gIHJlYWRvbmx5IG5hbWUgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5uYW1lSW5wdXQoKSA/PyAnJyk7XG5cbiAgcmVhZG9ubHkgcmVhZG9ubHlJbnB1dCA9IGlucHV0PFxuICAgIGJvb2xlYW4gfCBudWxsLFxuICAgIE51bGxhYmxlPGJvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXI+XG4gID4obnVsbCwge1xuICAgIGFsaWFzOiAncmVhZG9ubHknLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmVxdWlyZWRJbnB1dCA9IGlucHV0PFxuICAgIE51bGxhYmxlPGJvb2xlYW4+LFxuICAgIE51bGxhYmxlPGJvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXI+XG4gID4obnVsbCwge1xuICAgIGFsaWFzOiAncmVxdWlyZWQnLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSByZXF1aXJlZEZyb21Db250cm9sID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVxdWlyZWQgPSBsaW5rZWRTaWduYWwoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVkSW5wdXQoKSA/PyB0aGlzLnJlcXVpcmVkRnJvbUNvbnRyb2woKSA/PyBmYWxzZTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvdWNoZWRJbnRlcm5hbCA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHRvdWNoZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29udHJvbCgpIGFzIGFueTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgcmV0dXJuIGNvbnRyb2wudG91Y2hlZFJlYWN0aXZlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnRvdWNoZWRJbnRlcm5hbCgpO1xuICAgIH1cbiAgfSk7XG4gIHJlYWRvbmx5IGludmFsaWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMucmVxdWlyZWRJbnB1dCgpICYmIHRoaXMuaXNFbXB0eSh0aGlzLmV4dGVybmFsVmFsdWUoKSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sKCkgYXMgYW55O1xuICAgIGlmIChjb250cm9sKSB7XG4gICAgICByZXR1cm4gY29udHJvbC5zdGF0dXNSZWFjdGl2ZSgpID09PSAnSU5WQUxJRCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAhIXRoaXMuYWRkaXRpb25hbEVycm9ycygpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcXVpcmVkRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLnJlcXVpcmVkSW5wdXQoKTtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlKCk7XG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWlyZWRFcnJvciA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5nZXRSZXF1aXJlZEVycm9yKHRoaXMuZXh0ZXJuYWxWYWx1ZSgpKVxuICApO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb250cm9sRXJyb3JzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2woKTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgKGNvbnRyb2wgYXMgYW55KS5zdGF0dXNSZWFjdGl2ZSgpO1xuICAgICAgcmV0dXJuIGNvbnRyb2wuZXJyb3JzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWRkaXRpb25hbEVycm9ycyA9IHNpZ25hbDxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGVycm9ycyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICB0aGlzLmNvbnRyb2xFcnJvcnMoKSA/PyB0aGlzLnJlcXVpcmVkRXJyb3IoKSA/PyB0aGlzLmFkZGl0aW9uYWxFcnJvcnMoKVxuICApO1xuICByZWFkb25seSB2aXNpYmxlRXJyb3JzOiBTaWduYWw8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmludmFsaWQoKSAmJiB0aGlzLnRvdWNoZWQoKSA/IHRoaXMuZXJyb3JzKCkgOiBudWxsXG4gICk7XG5cbiAgZ2V0IG5nQ29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbmdDb250cm9sO1xuICB9XG4gIHByaXZhdGUgX25nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gbm9vcDtcbiAgcHJpdmF0ZSBfb25Ub3VjaDogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMudG91Y2hlZEludGVybmFsLnNldCh0cnVlKTtcbiAgcHJpdmF0ZSBfb25WYWxpZGF0b3JDaGFuZ2U6ICgpID0+IHZvaWQgPSBub29wO1xuXG4gIGdldCBvbkNoYW5nZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fb25DaGFuZ2U7XG4gIH1cblxuICBnZXQgb25Ub3VjaCgpIHtcbiAgICByZXR1cm4gdGhpcy5fb25Ub3VjaDtcbiAgfVxuXG4gIGdldCBvblZhbGlkYXRvckNoYW5nZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fb25WYWxpZGF0b3JDaGFuZ2U7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwsIHtcbiAgICAgIHNlbGY6IHRydWUsXG4gICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICB9KTtcbiAgICBpZiAodGhpcy5fbmdDb250cm9sKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gZ2V0Rm9ybUNvbnRyb2wodGhpcy5fbmdDb250cm9sKTtcbiAgICAgIHRoaXMuX2NvbnRyb2wuc2V0KGNvbnRyb2wpO1xuICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5saXN0ZW5Db250cm9sRXZlbnRzKGNvbnRyb2wpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNvbnRyb2woKTtcbiAgICBpZiAodGhpcy5yZXF1aXJlZElucHV0KCkgJiYgY29udHJvbCkge1xuICAgICAgY29udHJvbC5yZW1vdmVWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaCA9ICgpID0+IHtcbiAgICAgIHRoaXMudG91Y2hlZEludGVybmFsLnNldCh0cnVlKTtcbiAgICAgIGZuKCk7XG4gICAgfTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5leHRlcm5hbFZhbHVlLnNldCh2YWx1ZSk7XG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBhIHBhcnQgb2YgVmFsaWRhdG9yLlxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2w8VEV4dD4pOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWlyZWRFcnJvcigpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uVmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaXNFbXB0eSh2YWx1ZTogVEV4dCB8IG51bGwpOiBib29sZWFuO1xuXG4gIG9uSW50ZXJuYWxWYWx1ZUNoYW5nZSh2YWx1ZTogVEludCB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgPT09ICcnKSB7XG4gICAgICB2YWx1ZSA9IG51bGw7IC8vIENvbnZlcnQgZW1wdHkgc3RyaW5nIHRvIG51bGxcbiAgICB9XG4gICAgaWYgKHZhbHVlICE9PSB1bnRyYWNrZWQodGhpcy5pbnRlcm5hbFZhbHVlKSkge1xuICAgICAgY29uc3QgZXh0ZXJuYWxWYWx1ZSA9IHRoaXMudG9FeHRlcm5hbFZhbHVlKHZhbHVlKTtcbiAgICAgIHRoaXMuZXh0ZXJuYWxWYWx1ZS5zZXQoZXh0ZXJuYWxWYWx1ZSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKGV4dGVybmFsVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHNldEFkZGl0aW9uYWxFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChlcnJvcnMgPT09IG51bGwgfHwgT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWRkaXRpb25hbEVycm9ycy5zZXQobnVsbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkaXRpb25hbEVycm9ycy5zZXQoZXJyb3JzKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbGlzdGVuQ29udHJvbEV2ZW50cyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBjb250cm9sLmV2ZW50c1xuICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcXVpcmVkRnJvbUNvbnRyb2wuc2V0KGNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvRXh0ZXJuYWxWYWx1ZShpbnRlcm5hbFZhbHVlOiBUSW50IHwgbnVsbCk6IFRFeHQgfCBudWxsIHtcbiAgICByZXR1cm4gaW50ZXJuYWxWYWx1ZSBhcyBURXh0IHwgbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b0ludGVybmFsVmFsdWUoZXh0ZXJuYWxWYWx1ZTogVEV4dCB8IG51bGwpOiBUSW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIGV4dGVybmFsVmFsdWUgYXMgVEludCB8IG51bGw7XG4gIH1cblxuICBvdmVycmlkZSBvbkJsdXIoKSB7XG4gICAgc3VwZXIub25CbHVyKCk7XG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLm9uVG91Y2goKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVxdWlyZWRFcnJvcih2YWx1ZTogVEV4dCB8IG51bGwpIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZCgpICYmIHRoaXMuaXNFbXB0eSh2YWx1ZSlcbiAgICAgID8gUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudC5SRVFVSVJFRF9FUlJPUlxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUkVRVUlSRURfRVJST1IgPSB7IHJlcXVpcmVkOiB0cnVlIH07XG59XG4iXX0=","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, output, signal, } 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 value = input();\n checked = input(false);\n checkedChange = output();\n checkedState = signal(this.checked());\n constructor() {\n super();\n }\n //Needed because of our custom boolean types\n writeValue(value) {\n const external = value;\n const newInternal = this.toInternalValue(external);\n if (newInternal !== this.checkedState()) {\n this.checkedState.set(newInternal ?? false);\n this.externalValue.set(value);\n }\n }\n handleValueChange(newInternal) {\n this.checkedState.set(newInternal);\n const external = this.toExternalValue(newInternal);\n this.onChange(external);\n this.onTouch();\n this.checkedChange.emit(newInternal);\n }\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: [], 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 }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: \"checked\", publicName: \"checked\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checkedChange: \"checkedChange\" }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: RdtCheckboxComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9jaGVja2JveC9yZHQtY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFHckYsTUFBTSxPQUFnQixvQkFHcEIsU0FBUSx5QkFBa0Q7SUFDakQsY0FBYyxHQUFHLEtBQUssQ0FBUSxJQUFhLEVBQUU7UUFDcEQsS0FBSyxFQUFFLFdBQVc7S0FDbkIsQ0FBQyxDQUFDO0lBQ00sU0FBUyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUN0RCxlQUFlLEdBQUcsS0FBSyxDQUFTLEtBQWUsRUFBRTtRQUN4RCxLQUFLLEVBQUUsWUFBWTtLQUNwQixDQUFDLENBQUM7SUFDTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELGFBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUM5RCxLQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDeEIsT0FBTyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNoQyxhQUFhLEdBQUcsTUFBTSxFQUFXLENBQUM7SUFDbEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUUvQztRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELDRDQUE0QztJQUNuQyxVQUFVLENBQUMsS0FBcUI7UUFDdkMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsSUFBSSxXQUFXLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRVMsaUJBQWlCLENBQUMsV0FBb0I7UUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFa0IsZUFBZSxDQUNoQyxhQUE2QjtRQUU3QixRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssSUFBSTtnQkFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0I7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFa0IsZUFBZSxDQUNoQyxhQUFvQztRQUVwQyxRQUFRLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDO1lBQ2Y7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFa0IsT0FBTyxDQUFDLEtBQTRCO1FBQ3JELE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQztJQUN4QixDQUFDO3VHQXBFbUIsb0JBQW9COzJGQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRHpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBEaXJlY3RpdmUsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0Q2hlY2tib3hDb21wb25lbnQ8XG4gIFRUcnVlID0gYW55LFxuICBURmFsc2UgPSBhbnlcbj4gZXh0ZW5kcyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50PFRUcnVlIHwgVEZhbHNlLCBib29sZWFuPiB7XG4gIHJlYWRvbmx5IHRydWVWYWx1ZUlucHV0ID0gaW5wdXQ8VFRydWU+KHRydWUgYXMgVFRydWUsIHtcbiAgICBhbGlhczogJ3RydWVWYWx1ZScsXG4gIH0pO1xuICByZWFkb25seSB0cnVlVmFsdWUgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy50cnVlVmFsdWVJbnB1dCgpKTtcbiAgcmVhZG9ubHkgZmFsc2VWYWx1ZUlucHV0ID0gaW5wdXQ8VEZhbHNlPihmYWxzZSBhcyBURmFsc2UsIHtcbiAgICBhbGlhczogJ2ZhbHNlVmFsdWUnLFxuICB9KTtcbiAgcmVhZG9ubHkgZmFsc2VWYWx1ZSA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmZhbHNlVmFsdWVJbnB1dCgpKTtcbiAgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgcmVhZG9ubHkgdmFsdWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNoZWNrZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGNoZWNrZWRDaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgY2hlY2tlZFN0YXRlID0gc2lnbmFsKHRoaXMuY2hlY2tlZCgpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLy9OZWVkZWQgYmVjYXVzZSBvZiBvdXIgY3VzdG9tIGJvb2xlYW4gdHlwZXNcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogVEZhbHNlIHwgVFRydWUpOiB2b2lkIHtcbiAgICBjb25zdCBleHRlcm5hbCA9IHZhbHVlO1xuICAgIGNvbnN0IG5ld0ludGVybmFsID0gdGhpcy50b0ludGVybmFsVmFsdWUoZXh0ZXJuYWwpO1xuICAgIGlmIChuZXdJbnRlcm5hbCAhPT0gdGhpcy5jaGVja2VkU3RhdGUoKSkge1xuICAgICAgdGhpcy5jaGVja2VkU3RhdGUuc2V0KG5ld0ludGVybmFsID8/IGZhbHNlKTtcbiAgICAgIHRoaXMuZXh0ZXJuYWxWYWx1ZS5zZXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVWYWx1ZUNoYW5nZShuZXdJbnRlcm5hbDogYm9vbGVhbikge1xuICAgIHRoaXMuY2hlY2tlZFN0YXRlLnNldChuZXdJbnRlcm5hbCk7XG4gICAgY29uc3QgZXh0ZXJuYWwgPSB0aGlzLnRvRXh0ZXJuYWxWYWx1ZShuZXdJbnRlcm5hbCk7XG4gICAgdGhpcy5vbkNoYW5nZShleHRlcm5hbCk7XG4gICAgdGhpcy5vblRvdWNoKCk7XG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQobmV3SW50ZXJuYWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHRvRXh0ZXJuYWxWYWx1ZShcbiAgICBpbnRlcm5hbFZhbHVlOiBib29sZWFuIHwgbnVsbFxuICApOiBUVHJ1ZSB8IFRGYWxzZSB8IG51bGwge1xuICAgIHN3aXRjaCAoaW50ZXJuYWxWYWx1ZSkge1xuICAgICAgY2FzZSB0cnVlOlxuICAgICAgICByZXR1cm4gdGhpcy50cnVlVmFsdWUoKTtcbiAgICAgIGNhc2UgZmFsc2U6XG4gICAgICAgIHJldHVybiB0aGlzLmZhbHNlVmFsdWUoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB0b0ludGVybmFsVmFsdWUoXG4gICAgZXh0ZXJuYWxWYWx1ZTogVFRydWUgfCBURmFsc2UgfCBudWxsXG4gICk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICBzd2l0Y2ggKGV4dGVybmFsVmFsdWUpIHtcbiAgICAgIGNhc2UgdGhpcy50cnVlVmFsdWUoKTpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlIHRoaXMuZmFsc2VWYWx1ZSgpOlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNFbXB0eSh2YWx1ZTogVFRydWUgfCBURmFsc2UgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICB9XG59XG4iXX0=","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 { Directive, input, linkedSignal } from '@angular/core';\nimport { RdtBaseFormInputComponent } from '../../base/rdt-base-form-input.component';\nimport { nullToUndefined } from '../../utils';\nimport * as i0 from \"@angular/core\";\nexport class RdtDateComponent extends RdtBaseFormInputComponent {\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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2RhdGUvcmR0LWRhdGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUk5QyxNQUFNLE9BQWdCLGdCQUdwQixTQUFRLHlCQUFxQztJQUNwQyxJQUFJLEdBQUcsS0FBSyxDQUFjLE1BQU0sQ0FBQyxDQUFDO0lBRWxDLFFBQVEsR0FBRyxLQUFLLENBQThCLFNBQVMsRUFBRTtRQUNoRSxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDLENBQUM7SUFDTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRTtRQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztJQUVNLFFBQVEsR0FBRyxLQUFLLENBQThCLFNBQVMsRUFBRTtRQUNoRSxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDLENBQUM7SUFDTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRTtRQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMxRCxDQUFDLENBQUMsQ0FBQztJQUVnQixPQUFPLENBQUMsS0FBa0I7UUFDM0MsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDO0lBQ3hCLENBQUM7dUdBeEJtQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFEckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQsIGxpbmtlZFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbnVsbFRvVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUmR0RGF0ZVR5cGUgfSBmcm9tICcuL2RhdGUtdHlwZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJkdERhdGVDb21wb25lbnQ8XG4gIFRFeHQgPSBzdHJpbmcsXG4gIFRJbnQgPSBURXh0XG4+IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxURXh0LCBUSW50PiB7XG4gIHJlYWRvbmx5IHR5cGUgPSBpbnB1dDxSZHREYXRlVHlwZT4oJ2RhdGUnKTtcblxuICByZWFkb25seSBtaW5JbnB1dCA9IGlucHV0PE51bGxhYmxlPFRFeHQ+LCBURXh0IHwgbnVsbD4odW5kZWZpbmVkLCB7XG4gICAgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQsXG4gIH0pO1xuICByZWFkb25seSBtaW4gPSBsaW5rZWRTaWduYWwoKCkgPT4ge1xuICAgIGNvbnN0IG1pbklucHV0ID0gdGhpcy5taW5JbnB1dCgpO1xuICAgIHJldHVybiBtaW5JbnB1dCA/IHRoaXMudG9JbnRlcm5hbFZhbHVlKG1pbklucHV0KSA6IG51bGw7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG1heElucHV0ID0gaW5wdXQ8TnVsbGFibGU8VEV4dD4sIFRFeHQgfCBudWxsPih1bmRlZmluZWQsIHtcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG4gIHJlYWRvbmx5IG1heCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB7XG4gICAgY29uc3QgbWF4SW5wdXQgPSB0aGlzLm1heElucHV0KCk7XG4gICAgcmV0dXJuIG1heElucHV0ID8gdGhpcy50b0ludGVybmFsVmFsdWUobWF4SW5wdXQpIDogbnVsbDtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzRW1wdHkodmFsdWU6IFRFeHQgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xuICB9XG59XG4iXX0=","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 { InjectionToken } from '@angular/core';\nexport function czechFileLabelFn(files) {\n switch (files.length) {\n case 0:\n return 'Vyberte soubor';\n case 1:\n return files[0].fileName;\n case 2:\n case 3:\n case 4:\n return `Vybrány ${files.length} soubory`;\n default:\n return `Vybráno ${files.length} souborů`;\n }\n}\nexport const RDT_DEFAULT_FILE_LABEL_FN = new InjectionToken('RDT_DEFAULT_FILE_LABEL_FN', {\n providedIn: 'root',\n factory: () => czechFileLabelFn,\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWRlZmF1bHQtbGFiZWwtZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9AbmdyZHQvZm9ybXMvc3JjL2xpYi9pbnB1dHMvZmlsZS1pbnB1dC90b2tlbnMvcmR0LWRlZmF1bHQtbGFiZWwtZm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBZ0I7SUFDL0MsUUFBUSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsS0FBSyxDQUFDO1lBQ0osT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixLQUFLLENBQUM7WUFDSixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDM0IsS0FBSyxDQUFDLENBQUM7UUFDUCxLQUFLLENBQUMsQ0FBQztRQUNQLEtBQUssQ0FBQztZQUNKLE9BQU8sV0FBVyxLQUFLLENBQUMsTUFBTSxVQUFVLENBQUM7UUFDM0M7WUFDRSxPQUFPLFdBQVcsS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDO0FBR0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQ3pELDJCQUEyQixFQUMzQjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0I7Q0FDaEMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkdEZpbGUgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3plY2hGaWxlTGFiZWxGbihmaWxlczogUmR0RmlsZVtdKSB7XG4gIHN3aXRjaCAoZmlsZXMubGVuZ3RoKSB7XG4gICAgY2FzZSAwOlxuICAgICAgcmV0dXJuICdWeWJlcnRlIHNvdWJvcic7XG4gICAgY2FzZSAxOlxuICAgICAgcmV0dXJuIGZpbGVzWzBdLmZpbGVOYW1lO1xuICAgIGNhc2UgMjpcbiAgICBjYXNlIDM6XG4gICAgY2FzZSA0OlxuICAgICAgcmV0dXJuIGBWeWJyw6FueSAke2ZpbGVzLmxlbmd0aH0gc291Ym9yeWA7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBgVnlicsOhbm8gJHtmaWxlcy5sZW5ndGh9IHNvdWJvcsWvYDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBSZHRGaWxlTGFiZWxGbiA9IChmaWxlczogUmR0RmlsZVtdKSA9PiBzdHJpbmc7XG5leHBvcnQgY29uc3QgUkRUX0RFRkFVTFRfRklMRV9MQUJFTF9GTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHRGaWxlTGFiZWxGbj4oXG4gICdSRFRfREVGQVVMVF9GSUxFX0xBQkVMX0ZOJyxcbiAge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiAoKSA9PiBjemVjaEZpbGVMYWJlbEZuLFxuICB9XG4pO1xuIl19","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 labelDataTestId = computed(() => this.dataTestId() + '-label');\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 console.log(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWZpbGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvaW5wdXRzL2ZpbGUtaW5wdXQvcmR0LWZpbGUtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFLTCxZQUFZLEdBRWIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFRL0UsTUFBTSxPQUFnQixxQkFFcEIsU0FBUSx5QkFBK0I7SUFDcEIsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDcEQsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDdkQsY0FBYyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTdELFdBQVcsR0FBRyxLQUFLLENBQzFCLElBQUksQ0FBQyxpQkFBd0MsRUFDN0M7UUFDRSxLQUFLLEVBQUUsUUFBUTtLQUNoQixDQUNGLENBQUM7SUFDTyxNQUFNLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRWhELFdBQVcsR0FBRyxLQUFLLENBQzFCLFNBQVMsRUFDVCxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUNoRCxDQUFDO0lBQ08sTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUU7UUFDbEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDL0MsQ0FBQyxDQUFDLFdBQVc7WUFDYixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztJQUNNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRXZELGdCQUFnQixHQUFHLEtBQUssQ0FHL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1FBQ3pCLEtBQUssRUFBRSxhQUFhO1FBQ3BCLFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUMsQ0FBQztJQUNNLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMxRCxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzFDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBRU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLFNBQVMsR0FBRyxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFDM0QsZUFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFFckQsYUFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2pDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFZ0IsV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDM0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFFTSxRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQVk7UUFDbkMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztRQUN0QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN0QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN6QixJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxFQUFFLENBQUM7b0JBQ3pCLFVBQVUsR0FBRyxLQUFLLENBQUM7b0JBQ25CLE1BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsVUFBVTtZQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLENBQUMsQ0FBRSxpQkFBb0QsQ0FBQztRQUUxRCxNQUFNO2FBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVEsVUFBVSxDQUFDLEtBQVU7UUFDNUIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBMEI7UUFDOUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVTLEtBQUs7UUFDYixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVPLHFCQUFxQixHQUFnQixDQUFDLElBQUksRUFBRSxFQUFFO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFDLElBQ0UsT0FBTyxLQUFLLElBQUk7WUFDaEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUN2QixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQWtCLENBQUM7UUFDdEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsQ0FBQztnQkFDdEQsT0FBTztvQkFDTCxXQUFXLEVBQUU7d0JBQ1gsR0FBRyxFQUFFLE9BQU87d0JBQ1osTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJO3FCQUNsQjtpQkFDRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQzt1R0EzSWtCLHFCQUFxQjsyRkFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUQxQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgY29tcHV0ZWQsXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgTnVsbGFibGUsXG4gIFJkdENvbWJpbmVkTWltZVR5cGUsXG4gIFJkdEZpbGUsXG4gIFJkdEZpbGVTaXplLFxuICBSZHRGaWxlVXRpbHMsXG4gIFJkdE1pbWVUeXBlLFxufSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvcmR0LWJhc2UtZm9ybS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbnVsbFRvVW5kZWZpbmVkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgUmR0RmlsZVJlYWRlciB9IGZyb20gJy4vcmVhZGVyL3JkdC1maWxlLXJlYWRlcic7XG5pbXBvcnQgeyBOT19PUF9GSUxFX1JFQURFUiB9IGZyb20gJy4vcmVhZGVyL3JkdC1maWxlLXJlYWRlci1ub29wJztcbmltcG9ydCB7IFJEVF9ERUZBVUxUX0ZJTEVfUkVBREVSIH0gZnJvbSAnLi90b2tlbnMvcmR0LWRlZmF1bHQtZmlsZS1yZWFkZXInO1xuaW1wb3J0IHsgUkRUX0RFRkFVTFRfRklMRV9MQUJFTF9GTiB9IGZyb20gJy4vdG9rZW5zL3JkdC1kZWZhdWx0LWxhYmVsLWZuJztcbmltcG9ydCB7IFJEVF9ERUZBVUxUX01BWF9GSUxFX1NJWkUgfSBmcm9tICcuL3Rva2Vucy9yZHQtZGVmYXVsdC1tYXgtZmlsZS1zaXplJztcblxudHlwZSBBY2NlcHRUeXBlID1cbiAgfCAoUmR0TWltZVR5cGUgfCBSZHRDb21iaW5lZE1pbWVUeXBlKVtdXG4gIHwgUmR0TWltZVR5cGVcbiAgfCBSZHRDb21iaW5lZE1pbWVUeXBlO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZHRGaWxlSW5wdXRDb21wb25lbnQ8XG4gIFRFeHQgPSBzdHJpbmdcbj4gZXh0ZW5kcyBSZHRCYXNlRm9ybUlucHV0Q29tcG9uZW50PFRFeHQ+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRGaWxlUmVhZGVyID0gaW5qZWN0KFJEVF9ERUZBVUxUX0ZJTEVfUkVBREVSKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRNYXhGaWxlU2l6ZSA9IGluamVjdChSRFRfREVGQVVMVF9NQVhfRklMRV9TSVpFKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlZmF1bHRMYWJlbEZuID0gaW5qZWN0KFJEVF9ERUZBVUxUX0ZJTEVfTEFCRUxfRk4pO1xuXG4gIHJlYWRvbmx5IHJlYWRlcklucHV0ID0gaW5wdXQ8UmR0RmlsZVJlYWRlcjxURXh0Pj4oXG4gICAgdGhpcy5kZWZhdWx0RmlsZVJlYWRlciBhcyBSZHRGaWxlUmVhZGVyPFRFeHQ+LFxuICAgIHtcbiAgICAgIGFsaWFzOiAncmVhZGVyJyxcbiAgICB9XG4gICk7XG4gIHJlYWRvbmx5IHJlYWRlciA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLnJlYWRlcklucHV0KCkpO1xuXG4gIHJlYWRvbmx5IGFjY2VwdElucHV0ID0gaW5wdXQ8QWNjZXB0VHlwZSB8IHVuZGVmaW5lZCwgTnVsbGFibGU8QWNjZXB0VHlwZT4+KFxuICAgIHVuZGVmaW5lZCxcbiAgICB7IGFsaWFzOiAnYWNjZXB0JywgdHJhbnNmb3JtOiBudWxsVG9VbmRlZmluZWQgfVxuICApO1xuICByZWFkb25seSBhY2NlcHQgPSBsaW5rZWRTaWduYWwoKCkgPT4ge1xuICAgIGNvbnN0IGFjY2VwdElucHV0ID0gdGhpcy5hY2NlcHRJbnB1dCgpO1xuICAgIHJldHVybiAhYWNjZXB0SW5wdXQgfHwgQXJyYXkuaXNBcnJheShhY2NlcHRJbnB1dClcbiAgICAgID8gYWNjZXB0SW5wdXRcbiAgICAgIDogW2FjY2VwdElucHV0XTtcbiAgfSk7XG4gIHJlYWRvbmx5IGpvaW50QWNjZXB0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hY2NlcHQoKT8uam9pbignLCcpKTtcblxuICByZWFkb25seSBtYXhGaWxlU2l6ZUlucHV0ID0gaW5wdXQ8XG4gICAgTnVsbGFibGU8UmR0RmlsZVNpemU+LFxuICAgIFJkdEZpbGVTaXplIHwgdW5kZWZpbmVkXG4gID4odGhpcy5kZWZhdWx0TWF4RmlsZVNpemUsIHtcbiAgICBhbGlhczogJ21heEZpbGVTaXplJyxcbiAgICB0cmFuc2Zvcm06IG51bGxUb1VuZGVmaW5lZCxcbiAgfSk7XG4gIHJlYWRvbmx5IG1heEZpbGVTaXplID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubWF4RmlsZVNpemVJbnB1dCgpKTtcbiAgcmVhZG9ubHkgbWF4RmlsZVNpemVJbkJ5dGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1heEZpbGVTaXplID0gdGhpcy5tYXhGaWxlU2l6ZSgpO1xuICAgIHJldHVybiBtYXhGaWxlU2l6ZSA/IFJkdEZpbGVVdGlscy5maWxlU2l6ZVRvQnl0ZXMobWF4RmlsZVNpemUpIDogbnVsbDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbGFiZWxGbiA9IGlucHV0KHRoaXMuZGVmYXVsdExhYmVsRm4pO1xuICByZWFkb25seSBtdWx0aXBsZSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGFiZWxDdHJsID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBsYWJlbERhdGFUZXN0SWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGFUZXN0SWQoKSArICctbGFiZWwnKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG91Y2hlZEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdG91Y2hlZCA9IHRoaXMudG91Y2hlZCgpO1xuICAgIGlmICh0b3VjaGVkKSB7XG4gICAgICB0aGlzLmxhYmVsQ3RybC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGFiZWxDdHJsLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVycm9yRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmxhYmVsQ3RybD8uc2V0RXJyb3JzKHRoaXMudmlzaWJsZUVycm9ycygpKTtcbiAgfSk7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmNvbnRyb2woKT8uYWRkVmFsaWRhdG9ycyh0aGlzLl9tYXhGaWxlU2l6ZVZhbGlkYXRvcik7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuY29udHJvbCgpPy5yZW1vdmVWYWxpZGF0b3JzKHRoaXMuX21heEZpbGVTaXplVmFsaWRhdG9yKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBpZiAoIXRhcmdldC5maWxlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzaG91bGRSZWFkID0gdHJ1ZTtcbiAgICBjb25zdCBtYXhCeXRlcyA9IHRoaXMubWF4RmlsZVNpemVJbkJ5dGVzKCk7XG4gICAgaWYgKG1heEJ5dGVzICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBmaWxlcyA9IEFycmF5LmZyb20odGFyZ2V0LmZpbGVzKTtcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gbWF4Qnl0ZXMpIHtcbiAgICAgICAgICBzaG91bGRSZWFkID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZWFkZXIgPSBzaG91bGRSZWFkXG4gICAgICA/IHRoaXMucmVhZGVyKClcbiAgICAgIDogKE5PX09QX0ZJTEVfUkVBREVSIGFzIHVua25vd24gYXMgUmR0RmlsZVJlYWRlcjxURXh0Pik7XG5cbiAgICByZWFkZXJcbiAgICAgIC5yZWFkQWxsKEFycmF5LmZyb20odGFyZ2V0LmZpbGVzKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgoZmlsZXMpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZmlsZXMpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKGZpbGVzKTtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlKGZpbGVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5zZXRJbm5lclZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5uZXJWYWx1ZShmaWxlczogTnVsbGFibGU8UmR0RmlsZVtdPikge1xuICAgIGlmICh0aGlzLmxhYmVsQ3RybCkge1xuICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVsRm4oKShmaWxlcyA/PyBbXSk7XG4gICAgICB0aGlzLmxhYmVsQ3RybC5zZXRWYWx1ZShsYWJlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsZWFyKCkge1xuICAgIHRoaXMub25JbnRlcm5hbFZhbHVlQ2hhbmdlKG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWF4RmlsZVNpemVWYWxpZGF0b3I6IFZhbGlkYXRvckZuID0gKGN0cmwpID0+IHtcbiAgICBjb25zdCBtYXhTaXplID0gdGhpcy5tYXhGaWxlU2l6ZUluQnl0ZXMoKTtcbiAgICBpZiAoXG4gICAgICBtYXhTaXplID09PSBudWxsIHx8XG4gICAgICAhQXJyYXkuaXNBcnJheShjdHJsLnZhbHVlKSB8fFxuICAgICAgY3RybC52YWx1ZS5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVzID0gY3RybC52YWx1ZSBhcyBSZHRGaWxlW107XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICBpZiAoZmlsZVsnc2l6ZSddICE9PSB1bmRlZmluZWQgJiYgZmlsZS5zaXplID4gbWF4U2l6ZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1heEZpbGVTaXplOiB7XG4gICAgICAgICAgICBtYXg6IG1heFNpemUsXG4gICAgICAgICAgICBhY3R1YWw6IGZpbGUuc2l6ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcbn1cbiJdfQ==","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 missingValuePlaceholder: 'Načítání (ID = {id})...',\n _fetchRequest: null,\n _fetchMissingRequest: null,\n _missingSelected: [],\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3Qvc3RhdGUvcmR0LXNlbGVjdC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3QkEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQTZCO0lBQzdELFdBQVcsRUFBRSxLQUFLO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLENBQUM7SUFDaEIsUUFBUSxFQUFFLEVBQUU7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLGVBQWUsRUFBRSxLQUFLO0lBQ3RCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLElBQUk7SUFDaEIsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFFO0lBQ3RCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLHVCQUF1QixFQUFFLHlCQUF5QjtJQUNsRCxhQUFhLEVBQUUsSUFBSTtJQUNuQixvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLGdCQUFnQixFQUFFLEVBQUU7Q0FDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJkdFNlbGVjdERhdGFzb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlL3JkdC1zZWxlY3QtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBSZHRMYWJlbFZhbHVlSWQgfSBmcm9tICcuLi91dGlscy9sYWJlbC12YWx1ZS1pZCc7XG5pbXBvcnQge1xuICBSZHRTZWxlY3RGZXRjaE1pc3NpbmdSZXF1ZXN0LFxuICBSZHRTZWxlY3RGZXRjaFJlcXVlc3QsXG59IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJkdFNlbGVjdFN0YXRlPFRJdGVtLCBUSWQ+IHtcbiAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG4gIHF1ZXJ5OiBzdHJpbmcgfCBudWxsO1xuICBuZXh0UGFnZUluZGV4OiBudW1iZXIgfCBudWxsO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIHRvdGFsQ291bnRLbm93bjogYm9vbGVhbjtcbiAgb3B0aW9uczogUmR0TGFiZWxWYWx1ZUlkPFRJdGVtLCBUSWQ+W107XG4gIGRhdGFzb3VyY2U6IFJkdFNlbGVjdERhdGFzb3VyY2U8VEl0ZW0sIFRJZD4gfCBudWxsO1xuICBzZWxlY3RlZE1hcDogTWFwPFRJZCwgUmR0TGFiZWxWYWx1ZUlkPFRJdGVtLCBUSWQ+PjtcbiAgZmV0Y2hFcnJvcjogYW55IHwgbnVsbDtcbiAgbWlzc2luZ1ZhbHVlUGxhY2Vob2xkZXI6IHN0cmluZztcbiAgX2ZldGNoUmVxdWVzdDogUmR0U2VsZWN0RmV0Y2hSZXF1ZXN0IHwgbnVsbDtcbiAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IFJkdFNlbGVjdEZldGNoTWlzc2luZ1JlcXVlc3Q8VElkPiB8IG51bGw7XG4gIF9taXNzaW5nU2VsZWN0ZWQ6IFRJZFtdO1xufVxuXG5leHBvcnQgY29uc3QgcmR0U2VsZWN0SW5pdGlhbFN0YXRlOiBSZHRTZWxlY3RTdGF0ZTxhbnksIGFueT4gPSB7XG4gIGluaXRpYWxpemVkOiBmYWxzZSxcbiAgcXVlcnk6IG51bGwsXG4gIG5leHRQYWdlSW5kZXg6IDAsXG4gIHBhZ2VTaXplOiAyMCxcbiAgdG90YWxDb3VudDogMCxcbiAgdG90YWxDb3VudEtub3duOiBmYWxzZSxcbiAgb3B0aW9uczogW10sXG4gIGRhdGFzb3VyY2U6IG51bGwsXG4gIHNlbGVjdGVkTWFwOiBuZXcgTWFwKCksXG4gIGZldGNoRXJyb3I6IG51bGwsXG4gIG1pc3NpbmdWYWx1ZVBsYWNlaG9sZGVyOiAnTmHEjcOtdMOhbsOtIChJRCA9IHtpZH0pLi4uJyxcbiAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IG51bGwsXG4gIF9taXNzaW5nU2VsZWN0ZWQ6IFtdLFxufTtcbiJdfQ==","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 if (query) {\n return items.map((it) => ({\n ...it,\n selected: selectedMap.has(it.id),\n }));\n }\n const selected = Array.from(selectedMap.values()).map((it) => ({ ...it, selected: true }));\n const missingPlaceholder = state.missingValuePlaceholder();\n const placeholders = missing.map((id) => ({\n id,\n label: missingPlaceholder.replace('{id}', String(id)),\n value: null,\n selected: true,\n }));\n placeholders.forEach((pl) => selected.push(pl));\n items.forEach((item) => {\n if (!selectedMap.has(item.id)) {\n selected.push({ ...item, selected: false });\n }\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 _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 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 {\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 if (fetchMissingReq?.ids.every((id) => items.some((it) => it.id === id))) {\n fetchMissingReq.subscription.unsubscribe();\n patchState(store, {\n _fetchMissingRequest: null,\n _missingSelected: [],\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 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 {\n newMissing.push(id);\n }\n }\n patchState(store, {\n _fetchMissingRequest: null,\n _missingSelected: newMissing,\n selectedMap: newSelected,\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 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 'Nastala chyba.';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LXNlbGVjdC1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3Qvc3RhdGUvcmR0LXNlbGVjdC1zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFRdkIsT0FBTyxFQUNMLDBCQUEwQixHQUUzQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsTUFBTSxvQkFBb0IsQ0FBQztBQUUzRSxTQUFTLGlCQUFpQixDQUFTLFlBQVksR0FBRyxxQkFBcUI7SUFDckUsT0FBTyxXQUFXLENBQ2hCLFNBQVMsQ0FBQyxZQUFzQyxDQUFDLEVBQ2pELFNBQVMsQ0FBQztRQUNSLFNBQVMsQ0FBQyxLQUFLO1lBQ2IsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pELEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEQsQ0FBQztLQUNGLENBQUMsRUFDRixZQUFZLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQztRQUNyRCxhQUFhLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEQs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QVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztTQUFNLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN2QixDQUFDO1NBQU0sSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFNBQVMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNwRSxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDdkIsQ0FBQztJQUNELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHBhdGNoU3RhdGUsXG4gIHNpZ25hbFN0b3JlLFxuICB3aXRoQ29tcHV0ZWQsXG4gIHdpdGhIb29rcyxcbiAgd2l0aE1ldGhvZHMsXG4gIHdpdGhTdGF0ZSxcbn0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmR0U2VsZWN0RGF0YXNvdXJjZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UvcmR0LXNlbGVjdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdFNlbGVjdFBhZ2UgfSBmcm9tICcuLi9kYXRhc291cmNlL3JkdC1zZWxlY3QtcGFnZSc7XG5pbXBvcnQge1xuICBSZHRMYWJlbFZhbHVlSWQsXG4gIFJkdFJlbmRlcmVkU2VsZWN0T3B0aW9uLFxufSBmcm9tICcuLi91dGlscy9sYWJlbC12YWx1ZS1pZCc7XG5pbXBvcnQge1xuICBjb21wYXJlU2VsZWN0UmVxdWVzdFBhcmFtcyxcbiAgUmR0U2VsZWN0UmVxdWVzdFBhcmFtcyxcbn0gZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgeyByZHRTZWxlY3RJbml0aWFsU3RhdGUsIFJkdFNlbGVjdFN0YXRlIH0gZnJvbSAnLi9yZHQtc2VsZWN0LXN0YXRlJztcblxuZnVuY3Rpb24gZ2V0UmR0U2VsZWN0U3RvcmU8VCwgVElkPihpbml0aWFsU3RhdGUgPSByZHRTZWxlY3RJbml0aWFsU3RhdGUpIHtcbiAgcmV0dXJuIHNpZ25hbFN0b3JlKFxuICAgIHdpdGhTdGF0ZShpbml0aWFsU3RhdGUgYXMgUmR0U2VsZWN0U3RhdGU8VCwgVElkPiksXG4gICAgd2l0aEhvb2tzKHtcbiAgICAgIG9uRGVzdHJveShzdG9yZSkge1xuICAgICAgICBzdG9yZS5fZmV0Y2hNaXNzaW5nUmVxdWVzdCgpPy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgc3RvcmUuX2ZldGNoUmVxdWVzdCgpPy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgd2l0aENvbXB1dGVkKChzdGF0ZSkgPT4gKHtcbiAgICAgIGhhc01vcmU6IGNvbXB1dGVkKCgpID0+IHN0YXRlLm5leHRQYWdlSW5kZXggIT09IG51bGwpLFxuICAgICAgc2VsZWN0ZWRJdGVtczogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzdGF0ZS5zZWxlY3RlZE1hcCgpLnZhbHVlcygpKTtcbiAgICAgIH0pLFxuICAgICAgbG9hZGluZ09wdGlvbnM6IGNvbXB1dGVkKCgpID0+IHN0YXRlLl9mZXRjaFJlcXVlc3QoKSAhPT0gbnVsbCksXG4gICAgICBsb2FkaW5nTWlzc2luZzogY29tcHV0ZWQoKCkgPT4gc3RhdGUuX2ZldGNoTWlzc2luZ1JlcXVlc3QoKSAhPT0gbnVsbCksXG4gICAgICBsb2FkaW5nOiBjb21wdXRlZChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBzdGF0ZS5fZmV0Y2hSZXF1ZXN0KCkgIT09IG51bGwgfHxcbiAgICAgICAgICBzdGF0ZS5fZmV0Y2hNaXNzaW5nUmVxdWVzdCgpICE9PSBudWxsXG4gICAgICApLFxuICAgICAgLy8gU2hvd3Mgc2VsZWN0ZWQgKyBvdGhlcnMgd2hpbGUgcXVlcnkgaXMgZW1wdHlcbiAgICAgIC8vIFNob3dzIG9ubHkgcXVlcnkgcmVzdWx0cyB3aGlsZSBxdWVyeSBoYXMgdmFsdWVcbiAgICAgIHZpc2libGVPcHRpb25zOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gc3RhdGUub3B0aW9ucygpO1xuICAgICAgICBjb25zdCBxdWVyeSA9IHN0YXRlLnF1ZXJ5KCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTWFwID0gc3RhdGUuc2VsZWN0ZWRNYXAoKTtcbiAgICAgICAgY29uc3QgbWlzc2luZyA9IHN0YXRlLl9taXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXQpID0+ICh7XG4gICAgICAgICAgICAuLi5pdCxcbiAgICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZE1hcC5oYXMoaXQuaWQpLFxuICAgICAgICAgIH0pKSBhcyBSZHRSZW5kZXJlZFNlbGVjdE9wdGlvbjxULCBUSWQ+W107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQ6IFJkdFJlbmRlcmVkU2VsZWN0T3B0aW9uPFQsIFRJZD5bXSA9IEFycmF5LmZyb20oXG4gICAgICAgICAgc2VsZWN0ZWRNYXAudmFsdWVzKClcbiAgICAgICAgKS5tYXAoKGl0KSA9PiAoeyAuLi5pdCwgc2VsZWN0ZWQ6IHRydWUgfSkpO1xuICAgICAgICBjb25zdCBtaXNzaW5nUGxhY2Vob2xkZXIgPSBzdGF0ZS5taXNzaW5nVmFsdWVQbGFjZWhvbGRlcigpO1xuICAgICAgICBjb25zdCBwbGFjZWhvbGRlcnMgPSBtaXNzaW5nLm1hcCgoaWQpID0+ICh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbGFiZWw6IG1pc3NpbmdQbGFjZWhvbGRlci5yZXBsYWNlKCd7aWR9JywgU3RyaW5nKGlkKSksXG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgIH0pKTtcbiAgICAgICAgcGxhY2Vob2xkZXJzLmZvckVhY2goKHBsKSA9PiBzZWxlY3RlZC5wdXNoKHBsKSk7XG5cbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmICghc2VsZWN0ZWRNYXAuaGFzKGl0ZW0uaWQpKSB7XG4gICAgICAgICAgICBzZWxlY3RlZC5wdXNoKHsgLi4uaXRlbSwgc2VsZWN0ZWQ6IGZhbHNlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZDtcbiAgICAgIH0pLFxuICAgIH0pKSxcbiAgICB3aXRoTWV0aG9kcygoc3RvcmUpID0+ICh7XG4gICAgICBpbml0KGluaXRpYWxWYWx1ZTogVElkW10gfCBudWxsKSB7XG4gICAgICAgIGlmIChpbml0aWFsVmFsdWUgJiYgaW5pdGlhbFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkKGluaXRpYWxWYWx1ZSA/PyBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBpbml0aWFsaXplZDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGZldGNoKCkge1xuICAgICAgICBjb25zdCBkYXRhc291cmNlID0gdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpO1xuICAgICAgICBjb25zdCBpbmRleCA9IHVudHJhY2tlZChzdG9yZS5uZXh0UGFnZUluZGV4KTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB1bnRyYWNrZWQoc3RvcmUucXVlcnkpO1xuICAgICAgICBjb25zdCBwYWdlU2l6ZSA9IHVudHJhY2tlZChzdG9yZS5wYWdlU2l6ZSk7XG4gICAgICAgIGlmICghZGF0YXNvdXJjZSB8fCBpbmRleCA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJhbXM6IFJkdFNlbGVjdFJlcXVlc3RQYXJhbXMgPSB7XG4gICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxuICAgICAgICAgIHBhZ2VJbmRleDogaW5kZXgsXG4gICAgICAgICAgcGFnZVNpemU6IHBhZ2VTaXplLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjdXJyZW50UmVxdWVzdCA9IHVudHJhY2tlZChzdG9yZS5fZmV0Y2hSZXF1ZXN0KTtcbiAgICAgICAgaWYgKGN1cnJlbnRSZXF1ZXN0KSB7XG4gICAgICAgICAgaWYgKGNvbXBhcmVTZWxlY3RSZXF1ZXN0UGFyYW1zKGN1cnJlbnRSZXF1ZXN0LnBhcmFtcywgcGFyYW1zKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50UmVxdWVzdC5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSB0aGlzLl9nZXRGZXRjaE9ic2VydmVyKHBhcmFtcyk7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IGRhdGFzb3VyY2UuZ2V0RGF0YShwYXJhbXMpLnN1YnNjcmliZShvYnNlcnZlcik7XG4gICAgICAgIC8vIE9mZmxpbmUgZGF0YXNvdXJjZSB1c2luZyBgb2YoKWAgZW1pdHMgdmFsdWUgc3luY2hyb25vdXNseVxuICAgICAgICBpZiAoIXN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hSZXF1ZXN0OiB7IHN1YnNjcmlwdGlvbiwgcGFyYW1zOiBwYXJhbXMgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9nZXRGZXRjaE9ic2VydmVyKFxuICAgICAgICByZXF1ZXN0UGFyYW1zOiBSZHRTZWxlY3RSZXF1ZXN0UGFyYW1zXG4gICAgICApOiBPYnNlcnZlcjxSZHRTZWxlY3RQYWdlPFQ+PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbmV4dDogKHBhZ2UpID0+IHRoaXMuX29uRmV0Y2hTdWNjZXNzKHBhZ2UsIHJlcXVlc3RQYXJhbXMpLFxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHRoaXMuX29uRmV0Y2hFcnJvcihlcnJvciksXG4gICAgICAgICAgY29tcGxldGU6ICgpID0+IHRoaXMuX29uRmV0Y2hDb21wbGV0ZSgpLFxuICAgICAgICB9O1xuICAgICAgfSxcbiAgICAgIF9vbkZldGNoU3VjY2VzcyhcbiAgICAgICAgcGFnZTogUmR0U2VsZWN0UGFnZTxUPixcbiAgICAgICAgcmVxdWVzdFBhcmFtczogUmR0U2VsZWN0UmVxdWVzdFBhcmFtc1xuICAgICAgKSB7XG4gICAgICAgIGxldCBuZXh0UGFnZUluZGV4OiBudW1iZXIgfCBudWxsID0gcGFnZS5wYWdlSW5kZXggKyAxO1xuICAgICAgICBpZiAocGFnZS50b3RhbENvdW50ID09PSBudWxsKSB7XG4gICAgICAgICAgaWYgKHBhZ2UuZGF0YS5sZW5ndGggPCByZXF1ZXN0UGFyYW1zLnBhZ2VTaXplKSB7XG4gICAgICAgICAgICBuZXh0UGFnZUluZGV4ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcy5wYWdlSW5kZXggKiByZXF1ZXN0UGFyYW1zLnBhZ2VTaXplICsgcGFnZS5kYXRhLmxlbmd0aCA+PVxuICAgICAgICAgIHBhZ2UudG90YWxDb3VudFxuICAgICAgICApIHtcbiAgICAgICAgICBuZXh0UGFnZUluZGV4ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcHRpb25zID0gW1xuICAgICAgICAgIC4uLnVudHJhY2tlZChzdG9yZS5vcHRpb25zKSxcbiAgICAgICAgICAuLi50aGlzLl9nZXRMYWJlbFZhbHVlSWRzKHBhZ2UuZGF0YSksXG4gICAgICAgIF07XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICB0b3RhbENvdW50OlxuICAgICAgICAgICAgcGFnZS50b3RhbENvdW50ID8/XG4gICAgICAgICAgICBNYXRoLm1heChcbiAgICAgICAgICAgICAgdW50cmFja2VkKHN0b3JlLnRvdGFsQ291bnQpLFxuICAgICAgICAgICAgICBwYWdlLnBhZ2VJbmRleCAqIHJlcXVlc3RQYXJhbXMucGFnZVNpemUgKyBwYWdlLmRhdGEubGVuZ3RoXG4gICAgICAgICAgICApLFxuICAgICAgICAgIG5leHRQYWdlSW5kZXgsXG4gICAgICAgICAgdG90YWxDb3VudEtub3duOlxuICAgICAgICAgICAgcGFnZS50b3RhbENvdW50ICE9PSBudWxsIHx8XG4gICAgICAgICAgICBwYWdlLmRhdGEubGVuZ3RoIDwgcmVxdWVzdFBhcmFtcy5wYWdlU2l6ZSxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIF9mZXRjaFJlcXVlc3Q6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9sb2FkTWlzc2luZ1NlbGVjdGVkKCk7XG4gICAgICB9LFxuICAgICAgX29uRmV0Y2hFcnJvcihlcnJvcjogYW55KSB7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBmZXRjaEVycm9yOiBnZXRSZHRTZWxlY3RFcnJvcihlcnJvciksXG4gICAgICAgICAgX2ZldGNoUmVxdWVzdDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgX29uRmV0Y2hDb21wbGV0ZSgpIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIF9mZXRjaFJlcXVlc3Q6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHNldERhdGFzb3VyY2UoZGF0YXNvdXJjZTogUmR0U2VsZWN0RGF0YXNvdXJjZTxULCBUSWQ+KSB7XG4gICAgICAgIHVudHJhY2tlZChzdG9yZS5fZmV0Y2hSZXF1ZXN0KT8uc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBkYXRhc291cmNlLFxuICAgICAgICAgIF9mZXRjaFJlcXVlc3Q6IG51bGwsXG4gICAgICAgICAgZmV0Y2hFcnJvcjogbnVsbCxcbiAgICAgICAgICB0b3RhbENvdW50S25vd246IGRhdGFzb3VyY2UudG90YWxDb3VudEtub3duLFxuICAgICAgICAgIG5leHRQYWdlSW5kZXg6IDAsXG4gICAgICAgICAgdG90YWxDb3VudDogMCxcbiAgICAgICAgICBvcHRpb25zOiBbXSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICghZGF0YXNvdXJjZS5xdWVyeVJlcXVpcmVkKSB7XG4gICAgICAgICAgdGhpcy5mZXRjaCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2xvYWRNaXNzaW5nU2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNldFF1ZXJ5KHF1ZXJ5OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk7XG4gICAgICAgIGlmIChxdWVyeSAhPT0gdW50cmFja2VkKHN0b3JlLnF1ZXJ5KSkge1xuICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHF1ZXJ5IH0pO1xuICAgICAgICAgIGlmIChxdWVyeSB8fCAhZGF0YXNvdXJjZT8ucXVlcnlSZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy5mZXRjaCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJlc2V0KCkge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgcXVlcnk6IG51bGwsXG4gICAgICAgICAgbmV4dFBhZ2VJbmRleDogMCxcbiAgICAgICAgICBvcHRpb25zOiBbXSxcbiAgICAgICAgICB0b3RhbENvdW50OiAwLFxuICAgICAgICAgIHRvdGFsQ291bnRLbm93bjogdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpPy50b3RhbENvdW50S25vd24gPz8gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgcmVzZXRUb3RhbENvdW50S25vd24oKSB7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICB0b3RhbENvdW50S25vd246IHVudHJhY2tlZChzdG9yZS5kYXRhc291cmNlKT8udG90YWxDb3VudEtub3duID8/IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIHNldFNlbGVjdGVkKGlkczogVElkW10pIHtcbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IGlkcyxcbiAgICAgICAgICBzZWxlY3RlZE1hcDogbmV3IE1hcCgpLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fbG9hZE1pc3NpbmdTZWxlY3RlZCgpO1xuICAgICAgfSxcbiAgICAgIHNlbGVjdChpZHM6IFRJZFtdKSB7XG4gICAgICAgIGNvbnN0IG9sZE1pc3NpbmcgPSB1bnRyYWNrZWQoc3RvcmUuX21pc3NpbmdTZWxlY3RlZCk7XG4gICAgICAgIGNvbnN0IG5vdEluTWlzc2luZyA9IGlkcy5maWx0ZXIoKGlkKSA9PiAhb2xkTWlzc2luZy5pbmNsdWRlcyhpZCkpO1xuICAgICAgICBpZiAobm90SW5NaXNzaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBvbGRNaXNzaW5nLmNvbmNhdChub3RJbk1pc3NpbmcpLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5fbG9hZE1pc3NpbmdTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdW5zZWxlY3RBbGwoKSB7XG4gICAgICAgIGNvbnN0IGZldGNoTWlzc2luZ1JlcSA9IHVudHJhY2tlZChzdG9yZS5fZmV0Y2hNaXNzaW5nUmVxdWVzdCk7XG4gICAgICAgIGlmIChmZXRjaE1pc3NpbmdSZXEpIHtcbiAgICAgICAgICBmZXRjaE1pc3NpbmdSZXEuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IFtdLFxuICAgICAgICAgIHNlbGVjdGVkTWFwOiBuZXcgTWFwKCksXG4gICAgICAgICAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIF9zZXRBbmRHZXRNaXNzaW5nKCkge1xuICAgICAgICBjb25zdCBhbGxNaXNzaW5nID0gdW50cmFja2VkKHN0b3JlLl9taXNzaW5nU2VsZWN0ZWQpO1xuICAgICAgICBjb25zdCBpdGVtcyA9IHVudHJhY2tlZChzdG9yZS5vcHRpb25zKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRNYXAgPSBuZXcgTWFwKHVudHJhY2tlZChzdG9yZS5zZWxlY3RlZE1hcCkpO1xuICAgICAgICBjb25zdCBuZXdNaXNzaW5nOiBUSWRbXSA9IFtdO1xuXG4gICAgICAgIGxldCBzZWxlY3RlZENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBpZCBvZiBhbGxNaXNzaW5nKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zLmZpbmQoKGl0KSA9PiBpdC5pZCA9PT0gaWQpO1xuICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICBzZWxlY3RlZE1hcC5zZXQoaWQsIGl0ZW0pO1xuICAgICAgICAgICAgc2VsZWN0ZWRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3TWlzc2luZy5wdXNoKGlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkQ2hhbmdlZCkge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgc2VsZWN0ZWRNYXAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5ld01pc3NpbmcubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5fY2FuY2VsRmV0Y2hNaXNzaW5nSWZOZWVkZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IF9taXNzaW5nU2VsZWN0ZWQ6IG5ld01pc3NpbmcgfSk7XG4gICAgICAgIHJldHVybiBuZXdNaXNzaW5nO1xuICAgICAgfSxcbiAgICAgIF9sb2FkTWlzc2luZ1NlbGVjdGVkKCkge1xuICAgICAgICBjb25zdCBkYXRhc291cmNlID0gc3RvcmUuZGF0YXNvdXJjZSgpO1xuICAgICAgICBjb25zdCByZWFsbHlNaXNzaW5nID0gdGhpcy5fc2V0QW5kR2V0TWlzc2luZygpO1xuICAgICAgICBpZiAoIXVudHJhY2tlZChzdG9yZS5sb2FkaW5nKSAmJiBkYXRhc291cmNlKSB7XG4gICAgICAgICAgaWYgKHJlYWxseU1pc3NpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fZmV0Y2hNaXNzaW5nKHJlYWxseU1pc3NpbmcsIGRhdGFzb3VyY2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IGluaXRpYWxpemVkOiB0cnVlIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9jYW5jZWxGZXRjaE1pc3NpbmdJZk5lZWRlZCgpIHtcbiAgICAgICAgY29uc3QgZmV0Y2hNaXNzaW5nUmVxID0gdW50cmFja2VkKHN0b3JlLl9mZXRjaE1pc3NpbmdSZXF1ZXN0KTtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB1bnRyYWNrZWQoc3RvcmUub3B0aW9ucyk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBmZXRjaE1pc3NpbmdSZXE/Lmlkcy5ldmVyeSgoaWQpID0+IGl0ZW1zLnNvbWUoKGl0KSA9PiBpdC5pZCA9PT0gaWQpKVxuICAgICAgICApIHtcbiAgICAgICAgICBmZXRjaE1pc3NpbmdSZXEuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgX2ZldGNoTWlzc2luZ1JlcXVlc3Q6IG51bGwsXG4gICAgICAgICAgICBfbWlzc2luZ1NlbGVjdGVkOiBbXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIF9mZXRjaE1pc3NpbmcoaWRzOiBUSWRbXSwgZGF0YXNvdXJjZTogUmR0U2VsZWN0RGF0YXNvdXJjZTxULCBUSWQ+KSB7XG4gICAgICAgIGlmIChpZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YiA9IGRhdGFzb3VyY2UuZ2V0SXRlbXNCeUlkcyhpZHMpLnN1YnNjcmliZSgobWFwKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3TWlzc2luZzogVElkW10gPSBbXTtcbiAgICAgICAgICBjb25zdCBuZXdTZWxlY3RlZCA9IG5ldyBNYXAodW50cmFja2VkKHN0b3JlLnNlbGVjdGVkTWFwKSk7XG4gICAgICAgICAgZm9yIChjb25zdCBpZCBvZiB1bnRyYWNrZWQoc3RvcmUuX21pc3NpbmdTZWxlY3RlZCkpIHtcbiAgICAgICAgICAgIGlmIChtYXAuaGFzKGlkKSkge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG1hcC5nZXQoaWQpITtcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhc291cmNlLmdldExhYmVsKHZhbHVlKTtcbiAgICAgICAgICAgICAgbmV3U2VsZWN0ZWQuc2V0KGlkLCB7IGxhYmVsLCB2YWx1ZSwgaWQgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBuZXdNaXNzaW5nLnB1c2goaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogbnVsbCxcbiAgICAgICAgICAgIF9taXNzaW5nU2VsZWN0ZWQ6IG5ld01pc3NpbmcsXG4gICAgICAgICAgICBzZWxlY3RlZE1hcDogbmV3U2VsZWN0ZWQsXG4gICAgICAgICAgICBpbml0aWFsaXplZDogdHJ1ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLl9sb2FkTWlzc2luZ1NlbGVjdGVkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXN1Yi5jbG9zZWQpIHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICBfZmV0Y2hNaXNzaW5nUmVxdWVzdDogeyBpZHMsIHN1YnNjcmlwdGlvbjogc3ViIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZWxlY3RTaW5nbGUoaWQ6IFRJZCkge1xuICAgICAgICB0aGlzLnNldFNlbGVjdGVkKFtpZF0pO1xuICAgICAgfSxcbiAgICAgIHRvZ2dsZShpZDogVElkKSB7XG4gICAgICAgIGNvbnN0IG9sZE1hcCA9IHVudHJhY2tlZChzdG9yZS5zZWxlY3RlZE1hcCk7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSB1bnRyYWNrZWQoc3RvcmUuZGF0YXNvdXJjZSk7XG4gICAgICAgIGlmICghZGF0YXNvdXJjZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBpcyB1bmRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2xkTWFwLmhhcyhpZCkpIHtcbiAgICAgICAgICBjb25zdCBuZXdNYXAgPSBuZXcgTWFwKG9sZE1hcCk7XG4gICAgICAgICAgbmV3TWFwLmRlbGV0ZShpZCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzZWxlY3RlZE1hcDogbmV3TWFwIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB1bnRyYWNrZWQoc3RvcmUub3B0aW9ucykuZmluZCgoaXQpID0+IGl0LmlkID09PSBpZCk7XG4gICAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbaWRdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmV3TWFwID0gbmV3IE1hcChvbGRNYXApO1xuICAgICAgICAgICAgbmV3TWFwLnNldChpZCwgaXRlbSk7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHNlbGVjdGVkTWFwOiBuZXdNYXAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FuY2VsRmV0Y2goKSB7XG4gICAgICAgIHVudHJhY2tlZChzdG9yZS5fZmV0Y2hSZXF1ZXN0KT8uc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICBfZmV0Y2hSZXF1ZXN0OiBudWxsLFxuICAgICAgICAgIGZldGNoRXJyb3I6IG51bGwsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGlzU2VsZWN0ZWQoaXRlbTogVCkge1xuICAgICAgICBjb25zdCBkYXRhc291cmNlID0gdW50cmFja2VkKHN0b3JlLmRhdGFzb3VyY2UpO1xuICAgICAgICBpZiAoIWRhdGFzb3VyY2UpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaWQgPSBkYXRhc291cmNlLmdldElkKGl0ZW0pO1xuICAgICAgICByZXR1cm4gdW50cmFja2VkKHN0b3JlLnNlbGVjdGVkTWFwKS5oYXMoaWQpO1xuICAgICAgfSxcbiAgICAgIHNldFBhZ2VTaXplKHNpemU6IG51bWJlcikge1xuICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7IHBhZ2VTaXplOiBzaXplIH0pO1xuICAgICAgfSxcbiAgICAgIF9nZXRMYWJlbFZhbHVlSWRzKGl0ZW1zOiBUW10pOiBSZHRMYWJlbFZhbHVlSWQ8VCwgVElkPltdIHtcbiAgICAgICAgY29uc3QgZGF0YXNvdXJjZSA9IHVudHJhY2tlZChzdG9yZS5kYXRhc291cmNlKTtcbiAgICAgICAgaWYgKCFkYXRhc291cmNlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhc291cmNlIG5vdCBzZXQhJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZGF0YXNvdXJjZS5nZXRMYWJlbChpdGVtKSxcbiAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgICBpZDogZGF0YXNvdXJjZS5nZXRJZChpdGVtKSxcbiAgICAgICAgfSkpO1xuICAgICAgfSxcbiAgICB9KSlcbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IFJkdFNlbGVjdFN0b3JlID0gZ2V0UmR0U2VsZWN0U3RvcmU8YW55LCBhbnk+KCk7XG5leHBvcnQgdHlwZSBSZHRTZWxlY3RTdG9yZTxUID0gYW55LCBUSWQgPSBudW1iZXI+ID0gSW5zdGFuY2VUeXBlPFxuICBSZXR1cm5UeXBlPHR5cGVvZiBnZXRSZHRTZWxlY3RTdG9yZTxULCBUSWQ+PlxuPjtcblxuZnVuY3Rpb24gZ2V0UmR0U2VsZWN0RXJyb3IoZXJyb3I6IGFueSkge1xuICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlcnJvcjtcbiAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIGVycm9yLm1lc3NhZ2U7XG4gIH0gZWxzZSBpZiAoZXJyb3IgJiYgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiAnbWVzc2FnZScgaW4gZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3IubWVzc2FnZTtcbiAgfVxuICByZXR1cm4gJ05hc3RhbGEgY2h5YmEuJztcbn1cbiJdfQ==","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 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 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 {\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: \"datasourceInput\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL0BuZ3JkdC9mb3Jtcy9zcmMvbGliL2lucHV0cy9zZWxlY3QvcmR0LWJhc2Utc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFFBQVEsR0FDVCxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQVksY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUcxRCxNQUFNLE9BQWdCLDRCQUlwQixTQUFRLHlCQUFzQztJQUNyQyxlQUFlLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRTtRQUN0QyxLQUFLLEVBQUUsWUFBWTtLQUNwQixDQUFDLENBQUM7SUFDTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELGVBQWUsR0FBRyxLQUFLLENBQzlCLElBQUksQ0FDTCxDQUFDO0lBQ08sS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQStCLENBQUM7SUFDN0Qs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QUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7dUdBOUhpQiw0QkFBNEI7MkZBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEakQsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgdGFrZVVudGlsRGVzdHJveWVkLFxuICB0b09ic2VydmFibGUsXG4gIHRvU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgUmR0T2JqZWN0VXRpbHMgfSBmcm9tICdAbmdyZHQvdXRpbHMnO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJkdEJhc2VGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL3JkdC1iYXNlLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJkdFNlbGVjdERhdGFzb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UvcmR0LXNlbGVjdC1kYXRhc291cmNlJztcbmltcG9ydCB7IFJkdFNlbGVjdFN0b3JlIH0gZnJvbSAnLi9zdGF0ZS9yZHQtc2VsZWN0LXN0b3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmR0QmFzZVNlbGVjdENvbW1vbkNvbXBvbmVudDxcbiAgVEl0ZW0sXG4gIFRJZCxcbiAgVE91dCBleHRlbmRzIFRJZCB8IFRJZFtdXG4+IGV4dGVuZHMgUmR0QmFzZUZvcm1JbnB1dENvbXBvbmVudDxUT3V0LCBUSWRbXT4ge1xuICByZWFkb25seSBtYW51YWxJbml0SW5wdXQgPSBpbnB1dChmYWxzZSwge1xuICAgIGFsaWFzOiAnbWFudWFsSW5pdCcsXG4gIH0pO1xuICByZWFkb25seSBtYW51YWxJbml0ID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMubWFudWFsSW5pdElucHV0KCkpO1xuICByZWFkb25seSBkYXRhc291cmNlSW5wdXQgPSBpbnB1dDxSZHRTZWxlY3REYXRhc291cmNlPFRJdGVtLCBUSWQ+IHwgbnVsbD4oXG4gICAgbnVsbFxuICApO1xuICByZWFkb25seSBzdG9yZSA9IGluamVjdChSZHRTZWxlY3RTdG9yZSkgYXMgUmR0U2VsZWN0U3RvcmU8VEl0ZW0sIFRJZD47XG4gIHJlYWRvbmx5IHZpc2libGVPcHRpb25zID0gdGhpcy5zdG9yZS52aXNpYmxlT3B0aW9ucztcbiAgcmVhZG9ubHkgcXVlcnlWYWxpZGF0b3JGbklucHV0ID0gaW5wdXQ8TnVsbGFibGU8VmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdPj4oXG4gICAgbnVsbCxcbiAgICB7XG4gICAgICBhbGlhczogJ2lucHV0VmFsaWRhdG9yJyxcbiAgICB9XG4gICk7XG4gIHJlYWRvbmx5IHF1ZXJ5VmFsaWRhdG9yRm4gPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5xdWVyeVZhbGlkYXRvckZuSW5wdXQoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcXVlcnlWYWxpZGF0b3JFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHZhbGlkYXRvciA9IHRoaXMucXVlcnlWYWxpZGF0b3JGbigpO1xuICAgIGlmICh2YWxpZGF0b3IpIHtcbiAgICAgIHRoaXMuaW5wdXRDdHJsLnNldFZhbGlkYXRvcnModmFsaWRhdG9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dEN0cmwuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgfVxuICB9KTtcbiAgcmVhZG9ubHkgaW5wdXRDdHJsID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlucHV0Q3RybEV2ZW50cyA9IHRvU2lnbmFsKHRoaXMuaW5wdXRDdHJsLmV2ZW50cyk7XG4gIHJlYWRvbmx5IGlucHV0RXJyb3JzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaW5wdXRDdHJsRXZlbnRzKCk7XG4gICAgaWYgKHRoaXMuaW5wdXRDdHJsLnRvdWNoZWQgJiYgdGhpcy5pbnB1dEN0cmwuaW52YWxpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuaW5wdXRDdHJsLmVycm9ycztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9KTtcbiAgcmVhZG9ubHkgZGVib3VuY2VUaW1lSW5wdXQgPSBpbnB1dDxudW1iZXI+KDMwMCwge1xuICAgIGFsaWFzOiAnZGVib3VuY2UnLFxuICB9KTtcbiAgcmVhZG9ubHkgZGVib3VuY2VUaW1lID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuZGVib3VuY2VUaW1lSW5wdXQoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVib3VuY2VkSW5wdXQkID0gdG9PYnNlcnZhYmxlKHRoaXMuZGVib3VuY2VUaW1lKS5waXBlKFxuICAgIHN3aXRjaE1hcCgodGltZSkgPT4gdGhpcy5pbnB1dEN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKHRpbWUpKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuICByZWFkb25seSBkZWJvdW5jZWRJbnB1dCA9IHRvU2lnbmFsKHRoaXMuZGVib3VuY2VkSW5wdXQkLCB7XG4gICAgaW5pdGlhbFZhbHVlOiBudWxsLFxuICB9KTtcbiAgcmVhZG9ubHkgcGFnZVNpemVJbnB1dCA9IGlucHV0KDIwLCB7XG4gICAgYWxpYXM6ICdwYWdlU2l6ZScsXG4gIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VTaXplRWZmZWN0ID0gZWZmZWN0KCgpID0+XG4gICAgdGhpcy5zdG9yZS5zZXRQYWdlU2l6ZSh0aGlzLnBhZ2VTaXplSW5wdXQoKSlcbiAgKTtcblxuICBvdmVycmlkZSByZWFkb25seSBsb2FkaW5nID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnN0b3JlLmxvYWRpbmcoKSB8fFxuICAgICAgdGhpcy5sb2FkaW5nSW5wdXQoKSB8fFxuICAgICAgUmR0T2JqZWN0VXRpbHMuc29tZVZhbHVlc1RydWUodGhpcy5sb2FkaW5nTWFwKCkpXG4gICAgKTtcbiAgfSk7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sKCk7XG4gICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgYXJyID0gQXJyYXkuaXNBcnJheShjb250cm9sLnZhbHVlKVxuICAgICAgICA/IGNvbnRyb2wudmFsdWVcbiAgICAgICAgOiBbY29udHJvbC52YWx1ZV07XG4gICAgICB0aGlzLnN0b3JlLmluaXQoYXJyIGFzIFRJZFtdKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLm1hbnVhbEluaXQoKSkge1xuICAgICAgdGhpcy5zdG9yZS5pbml0KG51bGwpO1xuICAgIH1cbiAgICB0aGlzLmRlYm91bmNlZElucHV0JFxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5oYW5kbGVJbnB1dCh2YWx1ZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUlucHV0KHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5zZXRRdWVyeSh2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmVWYWx1ZUNoYW5nZUVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRNYXAgPSB0aGlzLnN0b3JlLnNlbGVjdGVkTWFwKCk7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuZnJvbShzZWxlY3RlZE1hcC5rZXlzKCkpO1xuICAgIGNvbnN0IGludGVybmFsVmFsdWUgPSB1bnRyYWNrZWQodGhpcy5pbnRlcm5hbFZhbHVlKTtcblxuICAgIGlmIChcbiAgICAgICF1bnRyYWNrZWQodGhpcy5zdG9yZS5kYXRhc291cmNlKSB8fFxuICAgICAgIXVudHJhY2tlZCh0aGlzLnN0b3JlLmluaXRpYWxpemVkKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGFycmF5SW50ZXJuYWxWYWx1ZSA9IEFycmF5LmlzQXJyYXkoaW50ZXJuYWxWYWx1ZSlcbiAgICAgICAgPyBpbnRlcm5hbFZhbHVlXG4gICAgICAgIDogaW50ZXJuYWxWYWx1ZSAhPT0gbnVsbFxuICAgICAgICA/IFtpbnRlcm5hbFZhbHVlXVxuICAgICAgICA6IFtdO1xuICAgICAgaWYgKCFpc0VxdWFsKGFycmF5SW50ZXJuYWxWYWx1ZSwgdmFsdWVzKSkge1xuICAgICAgICB0aGlzLm9uSW50ZXJuYWxWYWx1ZUNoYW5nZSh2YWx1ZXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uSW50ZXJuYWxWYWx1ZUNoYW5nZShudWxsKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBleHRlcm5hbFZhbHVlRWZmZWN0ID0gZWZmZWN0KCgpID0+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 { 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: () => `Povinné pole.`,\n email: () => 'Neplatný email.',\n minlength: (value) => `Minimální délka je ${value.requiredLength} znaků.`,\n maxlength: (value) => `Maximální délka je ${value.requiredLength} znaků.`,\n notFound: () => 'Pro zadaný kód nebyla nalezena žádná položka.',\n multipleFound: () => 'Pro zadaný kód bylo nalezeno více položek.',\n};\nexport class RdtFormErrorPipe {\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 return fn(error.value);\n }\n else if (typeof error.value === 'string') {\n return error.value;\n }\n else {\n return 'Neznámá chyba';\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQG5ncmR0L2Zvcm1zL3NyYy9saWIvcGlwZXMvZm9ybS1lcnJvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUk1RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFcEYsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUF3QjtJQUNwRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQXdCO0lBQzNELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlO0lBQy9CLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQkFBaUI7SUFDOUIsU0FBUyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDeEIsc0JBQXNCLEtBQUssQ0FBQyxjQUFjLFNBQVM7SUFDckQsU0FBUyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FDeEIsc0JBQXNCLEtBQUssQ0FBQyxjQUFjLFNBQVM7SUFDckQsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLCtDQUErQztJQUMvRCxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsNENBQTRDO0NBQ2xFLENBQUM7QUFNRixNQUFNLE9BQU8sZ0JBQWdCO0lBQ1YsVUFBVSxHQUF3QixDQUFDLEdBQUcsRUFBRTtRQUN2RCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsNkJBQTZCLEVBQUU7WUFDckQsUUFBUSxFQUFFLElBQUk7U0FDZixDQUErQixDQUFDO1FBRWpDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQ1YsMkRBQTJEO2dCQUN6RCxpREFBaUQsQ0FDcEQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQztJQUM5QyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRUwsU0FBUyxDQUFDLE1BQTJDO1FBQ25ELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdkIsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNQLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDckIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sZUFBZSxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO3VHQS9CVSxnQkFBZ0I7cUdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmR0Rm9ybUVycm9yQ29kZU1hcCB9IGZyb20gJy4vbW9kZWxzL3JkdC1lcnJvci1jb2Rlcy5pbnQnO1xuaW1wb3J0IHsgUmR0RXJyb3JWYWx1ZSB9IGZyb20gJy4vbW9kZWxzL3JkdC1lcnJvci1jb2Rlcy50eXBlcyc7XG5pbXBvcnQgeyBSRFRfRk9STV9FUlJPUl9DT0RFU19QUk9WSURFUiB9IGZyb20gJy4vcHJvdmlkZXJzL3JkdC1lcnJvci1jb2RlLXByb3ZpZGVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpcnN0RXJyb3IoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzKTogUmR0RXJyb3JWYWx1ZSB7XG4gIGlmIChlcnJvcnMpIHtcbiAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhlcnJvcnMpWzBdO1xuICAgIGNvbnN0IHZhbHVlID0gZXJyb3JzW2tleV07XG4gICAgcmV0dXJuIHsga2V5LCB2YWx1ZSB9O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdFJkdEZvcm1FcnJvckNvZGVzOiBSZHRGb3JtRXJyb3JDb2RlTWFwID0ge1xuICByZXF1aXJlZDogKCkgPT4gYFBvdmlubsOpIHBvbGUuYCxcbiAgZW1haWw6ICgpID0+ICdOZXBsYXRuw70gZW1haWwuJyxcbiAgbWlubGVuZ3RoOiAodmFsdWU6IGFueSkgPT5cbiAgICBgTWluaW3DoWxuw60gZMOpbGthIGplICR7dmFsdWUucmVxdWlyZWRMZW5ndGh9IHpuYWvFry5gLFxuICBtYXhsZW5ndGg6ICh2YWx1ZTogYW55KSA9PlxuICAgIGBNYXhpbcOhbG7DrSBkw6lsa2EgamUgJHt2YWx1ZS5yZXF1aXJlZExlbmd0aH0gem5ha8WvLmAsXG4gIG5vdEZvdW5kOiAoKSA9PiAnUHJvIHphZGFuw70ga8OzZCBuZWJ5bGEgbmFsZXplbmEgxb7DoWRuw6EgcG9sb8W+a2EuJyxcbiAgbXVsdGlwbGVGb3VuZDogKCkgPT4gJ1BybyB6YWRhbsO9IGvDs2QgYnlsbyBuYWxlemVubyB2w61jZSBwb2xvxb5lay4nLFxufTtcblxuQFBpcGUoe1xuICBuYW1lOiAncmR0Rm9ybUVycm9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUmR0Rm9ybUVycm9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9yQ29kZXM6IFJkdEZvcm1FcnJvckNvZGVNYXAgPSAoKCkgPT4ge1xuICAgIGNvbnN0IGluamVjdGVkID0gaW5qZWN0KFJEVF9GT1JNX0VSUk9SX0NPREVTX1BST1ZJREVSLCB7XG4gICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICB9KSBhcyBSZHRGb3JtRXJyb3JDb2RlTWFwIHwgbnVsbDtcblxuICAgIGlmICghaW5qZWN0ZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ05vIHByb3ZpZGVyIGZvciBSRFRfRk9STV9FUlJPUl9DT0RFU19QUk9WSURFUiB3YXMgZm91bmQuICcgK1xuICAgICAgICAgICdEZWZhdWx0IGZvcm0gZXJyb3IgbWVzc2FnZXMgYXJlIG5vdyBiZWluZyB1c2VkLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluamVjdGVkID8/IGRlZmF1bHRSZHRGb3JtRXJyb3JDb2RlcztcbiAgfSkoKTtcblxuICB0cmFuc2Zvcm0oZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgdW5kZWZpbmVkIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKCFlcnJvcnMpIHJldHVybiAnJztcblxuICAgIGNvbnN0IGVycm9yID0gZ2V0Rmlyc3RFcnJvcihlcnJvcnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY29uc3QgZm4gPSB0aGlzLmVycm9yQ29kZXNbZXJyb3Iua2V5XTtcbiAgICAgIGlmIChmbikge1xuICAgICAgICByZXR1cm4gZm4oZXJyb3IudmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXJyb3IudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBlcnJvci52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnTmV6bsOhbcOhIGNoeWJhJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=","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 = 'Platnost do musí být později než platnost od.', 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 = 'Platnost od musí být dříve než platnost do.', 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+IHZhbHVlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGVJbkZ1dHVyZTogdHJ1ZSxcbiAgICB9O1xuICB9O1xuXG4gIHN0YXRpYyBsYXN0RGF5T2ZNb250aDogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjb250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBsYXN0RGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAwKTtcbiAgICBpZiAoZGF0ZS5nZXREYXRlKCkgPT09IGxhc3REYXkuZ2V0RGF0ZSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhc3REYXlPZk1vbnRoOiB0cnVlLFxuICAgIH07XG4gIH07XG5cbiAgc3RhdGljIGdyZWF0ZXJPckVxdWFsVG9GaWVsZChcbiAgICBzdGFydERhdGVGaWVsZDogc3RyaW5nIHwgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4sXG4gICAgZXJyb3IgPSAnUGxhdG5vc3QgZG8gbXVzw60gYsO9dCBwb3pkxJtqaSBuZcW+IHBsYXRub3N0IG9kLicsXG4gICAgdW5zdWJzY3JpYmVTdWJqPzogU3ViamVjdDx2b2lkPlxuICApOiBWYWxpZGF0b3JGbiB7XG4gICAgbGV0IHN1YmJlZCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIChlbmRDb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0Q29udHJvbCA9XG4gICAgICAgIHN0YXJ0RGF0ZUZpZWxkIGluc3RhbmNlb2YgRm9ybUNvbnRyb2xcbiAgICAgICAgICA/IHN0YXJ0RGF0ZUZpZWxkXG4gICAgICAgICAgOiBlbmRDb250cm9sLnBhcmVudD8uZ2V0KHN0YXJ0RGF0ZUZpZWxkKTtcblxuICAgICAgaWYgKCFzdGFydENvbnRyb2wpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmICghc3ViYmVkKSB7XG4gICAgICAgIHN1YmJlZCA9IHRydWU7XG4gICAgICAgIGxldCBjaGFuZ2UkOiBPYnNlcnZhYmxlPGFueT4gfCB1bmRlZmluZWQgPSBtZXJnZShcbiAgICAgICAgICBzdGFydENvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgICAgIHN0YXJ0Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgICApO1xuICAgICAgICBpZiAodW5zdWJzY3JpYmVTdWJqKSB7XG4gICAgICAgICAgY2hhbmdlJCA9IGNoYW5nZSQucGlwZSh0YWtlVW50aWwodW5zdWJzY3JpYmVTdWJqKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZSQpIHtcbiAgICAgICAgICBjaGFuZ2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBlbmRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgc3RhcnREYXRlID0gc3RhcnRDb250cm9sPy52YWx1ZTtcbiAgICAgIGNvbnN0IGVuZERhdGUgPSBlbmRDb250cm9sLnZhbHVlO1xuICAgICAgaWYgKCFzdGFydERhdGUgfHwgIWVuZERhdGUpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoRGF0ZS5wYXJzZShzdGFydERhdGUpID4gRGF0ZS5wYXJzZShlbmREYXRlKSkge1xuICAgICAgICByZXR1cm4geyBkYXRlR3JlYXRlck9yRXF1YWxUb0ZpZWxkOiBlcnJvciB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBsZXNzT3JFcXVhbFRvRmllbGQoXG4gICAgZW5kRGF0ZUZpZWxkOiBzdHJpbmcgfCBGb3JtQ29udHJvbDxzdHJpbmc+IHwgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4sXG4gICAgZXJyb3IgPSAnUGxhdG5vc3Qgb2QgbXVzw60gYsO9dCBkxZnDrXZlIG5lxb4gcGxhdG5vc3QgZG8uJyxcbiAgICB1bnN1YnNjcmliZVN1Ymo/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,eAAe,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAC/D,IAAI,UAAU,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;AACjF,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,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AACrD,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,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,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,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,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;AAC3qC;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;;AClLN,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,KAAK,GAAG,KAAK,EAAE;AACnB,IAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1B,IAAI,aAAa,GAAG,MAAM,EAAE;AAC5B,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,MAAM,QAAQ,GAAG,KAAK;AAC9B,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AAC1D,QAAQ,IAAI,WAAW,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE;AACjD,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC;AACvD,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AACzC;AACA;AACA,IAAI,iBAAiB,CAAC,WAAW,EAAE;AACnC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;AAC1C,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;AAC1D,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC/B,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5C;AACA,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,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC9K,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,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,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,OAAO,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACz4B;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,EAAE,MAAM,EAAE,EAAE,CAAC;;AC/DhC,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;;ACFO,MAAM,gBAAgB,SAAS,yBAAyB,CAAC;AAChE,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,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;;AC3BN,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;;ACJM,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACxC,IAAI,QAAQ,KAAK,CAAC,MAAM;AACxB,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,gBAAgB;AACnC,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;AACpC,QAAQ,KAAK,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,QAAQ,KAAK,CAAC;AACd,YAAY,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AACpD,QAAQ;AACR,YAAY,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AACpD;AACA;AACY,MAAC,yBAAyB,GAAG,IAAI,cAAc,CAAC,2BAA2B,EAAE;AACzF,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,OAAO,EAAE,MAAM,gBAAgB;AACnC,CAAC;;ACjBW,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,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC;AAClE,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,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAC9B,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;;AC3HN,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;;ACRO,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,IAAI,uBAAuB,EAAE,yBAAyB;AACtD,IAAI,aAAa,EAAE,IAAI;AACvB,IAAI,oBAAoB,EAAE,IAAI;AAC9B,IAAI,gBAAgB,EAAE,EAAE;AACxB;;ACfO,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,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,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACtG,YAAY,MAAM,kBAAkB,GAAG,KAAK,CAAC,uBAAuB,EAAE;AACtE,YAAY,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;AACtD,gBAAgB,EAAE;AAClB,gBAAgB,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AACrE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,aAAa,CAAC,CAAC;AACf,YAAY,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3D,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACpC,gBAAgB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC/C,oBAAoB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/D;AACA,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,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,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;AACrB,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,IAAI,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE;AACtF,gBAAgB,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE;AAC1D,gBAAgB,UAAU,CAAC,KAAK,EAAE;AAClC,oBAAoB,oBAAoB,EAAE,IAAI;AAC9C,oBAAoB,gBAAgB,EAAE,EAAE;AACxC,iBAAiB,CAAC;AAClB;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,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;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,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,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AAChC,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,gBAAgB;AAC3B;;AC1VO,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;;ACnCN,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,CAAC;AACjC,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,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;AACb,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,iBAAiB,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;AACr6B;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;;ACrHN,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;;ACrBD,MAAC,6BAA6B,GAAG,IAAI,cAAc,CAAC,eAAe;;ACExE,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,aAAa,CAAC;AACnC,IAAI,KAAK,EAAE,MAAM,iBAAiB;AAClC,IAAI,SAAS,EAAE,CAAC,KAAK,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;AAC7E,IAAI,SAAS,EAAE,CAAC,KAAK,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;AAC7E,IAAI,QAAQ,EAAE,MAAM,+CAA+C;AACnE,IAAI,aAAa,EAAE,MAAM,4CAA4C;AACrE;AACO,MAAM,gBAAgB,CAAC;AAC9B,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,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AACtC;AACA,iBAAiB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;AACtD,gBAAgB,OAAO,KAAK,CAAC,KAAK;AAClC;AACA,iBAAiB;AACjB,gBAAgB,OAAO,eAAe;AACtC;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;;ACtDN,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,+CAA+C,EAAE,eAAe,EAAE;AAC3H,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,6CAA6C,EAAE,eAAe,EAAE;AACpH,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;;;;"}
|