@iamgld/ui 1.1.1 → 1.1.2

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.
@@ -51,7 +51,9 @@ class InputErrorComponent {
51
51
  });
52
52
  hasContent = signal(false);
53
53
  constructor() {
54
- effect(() => this.hasContent.set(this.content()?.length ? true : false));
54
+ effect(() => this.hasContent.set(this.content()?.length ? true : false), {
55
+ allowSignalWrites: true,
56
+ });
55
57
  }
56
58
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: InputErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
59
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: InputErrorComponent, isStandalone: true, selector: "gld-input-error", inputs: { errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: true, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", predicate: SelectInputErrorMessageDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<section class=\"error\" [class.error--with-border]=\"border()\">\r\n <span class=\"error__message\">\r\n @if (hasContent()) {\r\n <ng-content />\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"errorsMessageDefault\" />\r\n }\r\n </span>\r\n</section>\r\n\r\n<ng-template #errorsMessageDefault>\r\n @switch (true) {\r\n @case (Boolean(this.errors()?.['required'])) {\r\n This field is required!\r\n }\r\n @case (Boolean(this.errors()?.['email'])) {\r\n {{ this.errors()?.['email'] }}\r\n }\r\n @case (Boolean(this.errors()?.['maxlength'])) {\r\n This field must have a maximum of\r\n {{ this.errors()?.['maxlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['minlength'])) {\r\n This field must have a minimum of\r\n {{ this.errors()?.['minlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['isDate'])) {\r\n {{ this.errors()?.['isDate'] }}\r\n }\r\n @case (Boolean(this.errors()?.['minimumAge'])) {\r\n This field must meet the minimum age requirement of\r\n {{ this.errors()?.['minimumAge'].requiredAge }} years\r\n }\r\n @case (Boolean(this.errors()?.['naturalNumber'])) {\r\n {{ this.errors()?.['naturalNumber'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustMatch'])) {\r\n {{ this.errors()?.['mustMatch'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustUnmatch'])) {\r\n {{ this.errors()?.['mustUnmatch'] }}\r\n }\r\n @default {\r\n empty error message\r\n }\r\n }\r\n</ng-template>\r\n", styles: [".error{--gld-color: var(--gld-red);--gld-background: var(--gld-red-transparent--010);--gld-radius: var(--gld-radius--xxxs);--gld-border-color: var(--gld-red);color:var(--gld-color);background:var(--gld-background);border-radius:0 0 var(--gld-radius) var(--gld-radius);padding:var(--gld-spacing--xxxs) var(--gld-spacing--xxs);display:flex;align-items:flex-start;gap:var(--gld-spacing--xxxs)}.error__icon{display:flex;align-items:center}.error__message{font-family:var(--gld-font--poppins);font-size:var(--gld-font-size--small);font-weight:400;line-height:1.25;text-transform:lowercase}.error__message:first-letter{text-transform:uppercase}.error--with-border{border-top:var(--gld-border-size) solid var(--gld-border-color)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -1 +1 @@
1
- {"version":3,"file":"iamgld-ui.mjs","sources":["../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.html","../../../projects/iamgld-ui/src/lib/directives/select-input-error-message/select-input-error-message.directive.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.html","../../../projects/iamgld-ui/src/lib/utils/date/date.util.ts","../../../projects/iamgld-ui/src/lib/utils/string/string.util.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.html","../../../projects/iamgld-ui/src/lib/models/icon/icon.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/select.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/radio.model.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.html","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.html","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.html","../../../projects/iamgld-ui/src/lib/validators/is-date/is-date.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-document/is-document.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-email/is-email.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-form-select-item/is-form-select-item.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-license-plate/is-license-plate.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-natural-number/is-natural-number.validator.ts","../../../projects/iamgld-ui/src/lib/validators/minimum-age/minimum-age.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-match/must-match.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-unmatch/must-unmatch.validator.ts","../../../projects/iamgld-ui/src/public-api.ts","../../../projects/iamgld-ui/src/iamgld-ui.ts"],"sourcesContent":["// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input, output } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'gld-button',\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.scss',\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n name = input.required<string>()\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n // hasIcon = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n // icon = input<Icons>(Icons.addLine)\r\n // iconSize = input<keyof typeof IconsSize>(IconsSize.small)\r\n // iconMoveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n // iconMoveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n color = input<ButtonColor>('pink')\r\n size = input<ButtonSize>('normal')\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n}\r\n\r\nexport type ButtonColor = 'pink' | 'purple' | 'mustard' | 'orange' | 'red' | 'blue' | 'green'\r\nexport type ButtonSize = 'tiny' | 'small' | 'normal' | 'medium' | 'large'\r\n","<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"Button Button--{{ color() }} Button--{{ size() }}\"\r\n [class.Button--disabled]=\"disabled()\"\r\n (click)=\"emitClick()\">\r\n <span>\r\n <ng-content />\r\n </span>\r\n</button>\r\n","import { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldErrorMessage]',\n})\nexport class SelectInputErrorMessageDirective {}\n\n","// Angular Imports\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n contentChildren,\r\n signal,\r\n effect,\r\n} from '@angular/core'\r\nimport { ValidationErrors } from '@angular/forms'\r\n// This Module Imports\r\nimport { SelectInputErrorMessageDirective } from '../../../directives'\r\n\r\n@Component({\r\n selector: 'gld-input-error',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n templateUrl: './input-error.component.html',\r\n styleUrl: './input-error.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputErrorComponent {\r\n readonly Boolean = Boolean\r\n errors = input.required<ValidationErrors | null>()\r\n border = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n content = contentChildren(SelectInputErrorMessageDirective, {\r\n descendants: true,\r\n })\r\n\r\n hasContent = signal(false)\r\n\r\n constructor() {\r\n effect(() => this.hasContent.set(this.content()?.length ? true : false))\r\n }\r\n}\r\n","<section class=\"error\" [class.error--with-border]=\"border()\">\r\n <span class=\"error__message\">\r\n @if (hasContent()) {\r\n <ng-content />\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"errorsMessageDefault\" />\r\n }\r\n </span>\r\n</section>\r\n\r\n<ng-template #errorsMessageDefault>\r\n @switch (true) {\r\n @case (Boolean(this.errors()?.['required'])) {\r\n This field is required!\r\n }\r\n @case (Boolean(this.errors()?.['email'])) {\r\n {{ this.errors()?.['email'] }}\r\n }\r\n @case (Boolean(this.errors()?.['maxlength'])) {\r\n This field must have a maximum of\r\n {{ this.errors()?.['maxlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['minlength'])) {\r\n This field must have a minimum of\r\n {{ this.errors()?.['minlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['isDate'])) {\r\n {{ this.errors()?.['isDate'] }}\r\n }\r\n @case (Boolean(this.errors()?.['minimumAge'])) {\r\n This field must meet the minimum age requirement of\r\n {{ this.errors()?.['minimumAge'].requiredAge }} years\r\n }\r\n @case (Boolean(this.errors()?.['naturalNumber'])) {\r\n {{ this.errors()?.['naturalNumber'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustMatch'])) {\r\n {{ this.errors()?.['mustMatch'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustUnmatch'])) {\r\n {{ this.errors()?.['mustUnmatch'] }}\r\n }\r\n @default {\r\n empty error message\r\n }\r\n }\r\n</ng-template>\r\n","export function formatDateToISO(outerDate: string | Date): string | null {\n\tconst date = new Date(outerDate)\n\tif (!isNaN(date.getTime())) return date.toISOString()\n\telse return null\n}\n\n// export function formatDateFromISOToDDMMYYYY(dateAsString: string): string | null {\n// \tconst [year, month, day] = dateAsString.split('-')\n// \tif (year && month && day) return `${day}/${month}/${year}`\n// \telse return null\n// }\n\nexport function formatDateFromISOToYYYYMMDD(dateAsString: string | null): string | null {\n\tif (!dateAsString) return null\n\tconst [date] = dateAsString.split('T')\n\n\tif (date) return date\n\telse return null\n}\n\nexport function getDateWithOffsetInYears({ years }: { years: number }): Date {\n\tconst today = new Date()\n\ttoday.setFullYear(today.getFullYear() + years) // Agrega o resta años\n\treturn today\n}\n\n","export function capitalizeFirstLetter(str: string): string {\n\tif (!str) return str // Maneja el caso de string vacío\n\treturn str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n OnInit,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n signal,\n} from '@angular/core'\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\nimport {\n ReactiveFormsModule,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n} from '@angular/forms'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Module Imports\nimport { InputErrorComponent } from '../input-error/input-error.component'\nimport { formatDateToISO, formatDateFromISOToYYYYMMDD } from '../../../utils'\n// Thirdparty Imports\nimport { debounceTime } from 'rxjs'\n\nconst components = [InputErrorComponent]\n\n@Component({\n selector: 'gld-input-date',\n standalone: true,\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\n templateUrl: './input-date.component.html',\n styleUrl: './input-date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputDateComponent),\n multi: true,\n },\n ],\n})\nexport class InputDateComponent implements ControlValueAccessor, OnInit {\n readonly #destroyRef = inject(DestroyRef)\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\n\n control = input.required<FormControl<unknown>>()\n name = input.required<string>()\n label = input<string>('')\n min = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n max = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n placeholder = input<string>('')\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n\n innerControl = signal(new FormControl<string>('', { nonNullable: true }))\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n onChange = (value: unknown) => {}\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {}\n\n constructor() {\n this.innerControl()\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\n .subscribe((value) => {\n const valueTransformed = formatDateToISO(value)\n this.onChange(valueTransformed)\n })\n }\n\n ngOnInit(): void {\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\n this.control()\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\n .subscribe(() => this.#changeDetectorRef.detectChanges())\n }\n\n writeValue(value: unknown): void {\n // console.log('writeValue')\n if (value !== this.innerControl().value) this.innerControl().setValue(String(value))\n }\n\n registerOnChange(onChange: (value: unknown) => void): void {\n // console.log('registerOnChange')\n this.onChange = onChange\n }\n\n registerOnTouched(onTouched: () => void): void {\n // console.log('registerOnTouched')\n this.onTouched = onTouched\n }\n}\n\n","@let errors = control().invalid && (control().dirty || control().touched);\n@let disabled = control().disabled || (control().pending && control().disabled);\n\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\n\t<!-- Label -->\n\t@if (label()) {\n\t\t<label [for]=\"name()\">\n\t\t\t{{ label() }}\n\t\t</label>\n\t}\n\n\t<!-- Input -->\n\t<input\n\t\ttype=\"date\"\n\t\tid=\"input-date-{{ name() }}\"\n\t\t[name]=\"name()\"\n\t\t[attr.min]=\"min()\"\n\t\t[attr.max]=\"max()\"\n\t\t[placeholder]=\"placeholder()\"\n\t\t[formControl]=\"innerControl()\"\n\t\t(blur)=\"onTouched()\" />\n\n\t<!-- Suffix -->\n\t@if (suffix()) {\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\n\t}\n</section>\n<!-- Errors -->\n@if (errors) {\n\t<ng-content select=\"gld-input-error\">\n\t\t<gld-input-error [errors]=\"control().errors\" />\n\t</ng-content>\n} @else {\n\t<!-- Hint -->\n\t<ng-content select=\"gld-input-hint\" />\n}\n\n<!-- Suffix Template -->\n<ng-template #suffixTemplate>\n\t<span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\n\t\t<ng-content select=\"[inputSuffix]\" />\n\t</span>\n</ng-template>\n\n<!-- <h3>Debugging</h3> -->\n<!-- <section>errors: {{ control().errors | json }}</section> -->\n<!-- <section>errors: {{ errors }}</section> -->\n<!-- <section>invalid: {{ control().invalid }}</section> -->\n<!-- <section>dirty: {{ control().dirty }}</section> -->\n<!-- <section>touched: {{ control().touched }}</section> -->\n<!-- <section>disable: {{ control().disabled }}</section> -->\n<!-- <section>status: {{ control().status }}</section> -->\n\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core'\r\n\r\n@Component({\r\n\tselector: 'gld-input-hint',\r\n\tstandalone: true,\r\n\timports: [],\r\n\ttemplateUrl: './input-hint.component.html',\r\n\tstyleUrl: './input-hint.component.scss',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputHintComponent {}\r\n","<section class=\"hint\">\r\n\t<span class=\"hint__message\">\r\n\t\t<ng-content>hint empty</ng-content>\r\n\t</span>\r\n</section>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n OnInit,\r\n booleanAttribute,\r\n forwardRef,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core'\r\nimport {\r\n ReactiveFormsModule,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-input',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './input.component.html',\r\n styleUrl: './input.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n innerControl = signal(new FormControl<unknown>(''))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <input\r\n id=\"input-{{ name() }}\"\r\n [tabindex]=\"disabled ? '-1' : '0'\"\r\n [name]=\"name()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\" />\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\r\n// Shared Imports\r\nimport { InputValue } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-radio-button',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './radio-button.component.html',\r\n styleUrl: './radio-button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioButtonComponent {\r\n value = input.required<InputValue>()\r\n changeValue = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n current = signal<InputValue>(null)\r\n disabled = signal<boolean>(false)\r\n error = signal<boolean>(false)\r\n selected = computed(() => Boolean(this.current() === this.value()))\r\n\r\n select(value: InputValue) {\r\n this.changeValue.emit(value)\r\n }\r\n\r\n keyup(value: InputValue) {\r\n this.select(value)\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n\t[tabindex]=\"disabled() ? '-1' : '0'\"\r\n\t(keyup.enter)=\"keyup(value())\"\r\n\t(click)=\"select(value())\"\r\n\tclass=\"radio\"\r\n\t[class.radio--selected]=\"selected()\"\r\n\t[class.radio--disabled]=\"disabled()\"\r\n\t[class.radio--error]=\"error()\"\r\n\t(focus)=\"onFocus()\"\r\n\t(blur)=\"onBlur()\"\r\n\t(keyup.escape)=\"onBlur()\">\r\n\t<span class=\"radio__icon\" [class.radio__icon--selected]=\"selected()\"></span>\r\n\r\n\t<span class=\"radio__label\">\r\n\t\t<ng-content>empty radio button</ng-content>\r\n\t</span>\r\n</button>\r\n","export enum Icons {\r\n arrowDownSLine = 'arrow-down-s-line',\r\n arrowUpSLine = 'arrow-up-s-line',\r\n checkboxCircleLine = 'checkbox-circle-line',\r\n checkboxBlankCircleLine = 'checkbox-blank-circle-line',\r\n loader4Fill = 'loader-4-fill',\r\n}\r\n\r\nexport enum IconsSize {\r\n tiny = 'tiny',\r\n small = 'small',\r\n normal = 'normal',\r\n medium = 'medium',\r\n large = 'large',\r\n}\r\n","export enum SelectType {\r\n default = 'default',\r\n inline = 'inline',\r\n}\r\n","export enum RadioDirection {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n","// Angular Imports\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n contentChildren,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { RadioDirection, InputValue } from '../../../models'\r\nimport { RadioButtonComponent } from '../radio-button/radio-button.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-radio-group',\r\n standalone: true,\r\n imports: [...components],\r\n templateUrl: './radio-group.component.html',\r\n styleUrl: './radio-group.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioGroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RadioGroupComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n direction = input<keyof typeof RadioDirection>(RadioDirection.horizontal)\r\n\r\n radioButtonChildren = contentChildren<RadioButtonComponent>(RadioButtonComponent)\r\n innerControl = signal(new FormControl<unknown>(''))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => {\r\n this.updateErrorInChildren(\r\n this.control().invalid && (this.control().dirty || this.control().touched),\r\n )\r\n this.#changeDetectorRef.detectChanges()\r\n })\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) => {\r\n radioButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\r\n radioButton.changeFocus.subscribe((focus) => {\r\n if (!focus) this.onTouched()\r\n })\r\n })\r\n }\r\n\r\n updateCurrentInChildren(value: InputValue) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent, index: number) => {\r\n radioButton.current.set(value)\r\n // Set current one time\r\n if (index === 0) this.onChange(value)\r\n })\r\n }\r\n\r\n updateErrorInChildren(error: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.error.set(error),\r\n )\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n // console.log('setDisabledState')\r\n this.#updateDisabledInChildren(disabled)\r\n }\r\n\r\n #updateDisabledInChildren(disabled: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.disabled.set(disabled),\r\n )\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<article class=\"radio\" [class.radio--disabled]=\"disabled\" [attr.name]=\"name()\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label class=\"radio__label\" [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n <section class=\"radio__items radio__items--{{ direction() }}\">\r\n <ng-content select=\"gld-radio-button\" />\r\n </section>\r\n</article>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error border [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input, output } from '@angular/core'\r\n// This Module Imports\r\nimport { InputValue } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-select-option',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './select-option.component.html',\r\n styleUrl: './select-option.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectOptionComponent {\r\n value = input.required<InputValue>()\r\n disabled = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n selected = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n select(): void {\r\n if (!this.disabled()) this.selected.emit(this.value())\r\n }\r\n\r\n keyup() {\r\n this.select()\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n [tabindex]=\"disabled() ? '-1' : '0'\"\r\n (keyup.enter)=\"keyup()\"\r\n (click)=\"select()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keyup.escape)=\"onBlur()\">\r\n <span><ng-content> an option </ng-content></span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// Shared Imports\r\nimport { Icons, IconsSize } from '../../models'\r\n\r\n@Component({\r\n selector: 'gld-icon',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './icon.component.html',\r\n styleUrl: './icon.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconComponent {\r\n readonly IconsSpace = IconsSpace\r\n readonly Icons = Icons\r\n\r\n icon = input<Icons>(Icons.arrowDownSLine)\r\n size = input<keyof typeof IconsSize>(IconsSize.normal)\r\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n\r\nenum IconsSpace {\r\n left = 'left',\r\n right = 'right',\r\n none = 'none',\r\n}\r\n","<span\r\n tabindex=\"-1\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n class=\"Icon Icon--{{ size() }}\"\r\n [class.Icon--left]=\"space() === IconsSpace.left\"\r\n [class.Icon--right]=\"space() === IconsSpace.right\"\r\n [style.right.px]=\"moveLeftToRight()\"\r\n [style.top.px]=\"moveTopToBottom()\">\r\n @switch (icon()) {\r\n @case (Icons.arrowDownSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.arrowUpSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11.0026 16L6.75999 11.7574L8.17421 10.3431L11.0026 13.1716L16.6595 7.51472L18.0737 8.92893L11.0026 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxBlankCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loader4Fill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.364 5.63604L16.9497 7.05025C15.683 5.7835 13.933 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12H21C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C14.4853 3 16.7353 4.00736 18.364 5.63604Z\"></path>\r\n </svg>\r\n }\r\n }\r\n</span>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChildren,\r\n AfterContentInit,\r\n ElementRef,\r\n forwardRef,\r\n input,\r\n viewChild,\r\n effect,\r\n OnInit,\r\n inject,\r\n DestroyRef,\r\n ChangeDetectorRef,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { IconComponent } from '../../icon/icon.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\nimport { SelectOptionComponent } from '../select-option/select-option.component'\r\nimport { Icons, InputValue } from '../../../models'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [IconComponent, InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-select',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './select.component.html',\r\n styleUrl: './select.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SelectComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n readonly Icons = Icons\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n transform = input<(value: unknown) => string>((value: unknown) => String(value))\r\n\r\n selectElement = viewChild<ElementRef<HTMLElement>>('selectElement')\r\n selectOptionChildren = contentChildren<SelectOptionComponent>(SelectOptionComponent)\r\n\r\n innerControl = signal(new FormControl<unknown>(''))\r\n isMenuOpen = signal(false)\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.selectOptionChildren()) this.#detectSelectOptionChildren()\r\n })\r\n\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => this.onChange(value))\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.#detectSelectOptionChildren()\r\n\r\n this.selectOptionChildren().map((selectOption: SelectOptionComponent) => {\r\n selectOption.changeFocus.subscribe((focus) => {\r\n // console.log('focus', focus)\r\n if (focus) this.onFocus()\r\n else this.onBlur()\r\n })\r\n })\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n // const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n // console.log('blur')\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n\r\n arrowIconClicked() {\r\n // FIXME: This is a workaround to prevent the menu from closing when the arrow icon is clicked.\r\n // console.log('clicked - init', this.isMenuOpen())\r\n if (this.isMenuOpen()) this.onTouched()\r\n this.isMenuOpen.update((open) => !open)\r\n // console.log('clicked - end', this.isMenuOpen())\r\n }\r\n\r\n #transformValue(value: unknown): string | null {\r\n let valueTransformed: string | null\r\n\r\n if (value === null || value === undefined) valueTransformed = null\r\n else valueTransformed = this.transform()(value)\r\n\r\n return valueTransformed\r\n }\r\n\r\n #detectSelectOptionChildren() {\r\n const selectOptionChildren = this.selectOptionChildren()\r\n const selectElement: HTMLElement | undefined = this.selectElement()?.nativeElement\r\n selectElement?.style.setProperty('--gld-option-items', String(selectOptionChildren.length))\r\n const clientHeight: number | undefined =\r\n selectElement?.querySelector('gld-select-option')?.clientHeight\r\n if (clientHeight) selectElement?.style.setProperty('--gld-option-height', `${clientHeight}px`)\r\n\r\n selectOptionChildren.map((selectOption) => {\r\n selectOption.selected.subscribe((value: InputValue) => {\r\n if (value) {\r\n const buttons = Array.from(\r\n selectElement?.querySelectorAll('gld-select-option button') ?? [],\r\n ) as HTMLButtonElement[]\r\n buttons.map((button) => button.blur())\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n this.onChange(value)\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n","\r\n@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section #selectElement class=\"select\">\r\n\t<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n\t\t<!-- Label -->\r\n\t\t@if (label()) {\r\n\t\t\t<label [for]=\"name()\">\r\n\t\t\t\t{{ label() }}\r\n\t\t\t</label>\r\n\t\t}\r\n\t\t<!-- Input -->\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\tid=\"input-select-{{ name() }}\"\r\n\t\t\t[tabindex]=\"disabled ? '-1' : '0'\"\r\n\t\t\t[name]=\"name()\"\r\n\t\t\t[placeholder]=\"placeholder()\"\r\n\t\t\t[formControl]=\"innerControl()\"\r\n\t\t\t(focus)=\"onFocus()\"\r\n\t\t\t(blur)=\"onBlur()\"\r\n\t\t\t(keyup.escape)=\"onBlur()\" />\r\n\r\n\t\t<!-- Suffix -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n\r\n\t\t<!-- Menu -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"menuTemplate\" />\r\n\t</section>\r\n\t<!-- Errors -->\r\n\t@if (errors) {\r\n\t\t<ng-content select=\"gld-input-error\">\r\n\t\t\t<gld-input-error [errors]=\"control().errors\" />\r\n\t\t</ng-content>\r\n\t} @else {\r\n\t\t<!-- Hint -->\r\n\t\t<ng-content select=\"gld-input-hint\" />\r\n\t}\r\n</section>\r\n\r\n<!-- Menu Template -->\r\n<ng-template #menuTemplate>\r\n\t<section class=\"select-menu\" [class.select-menu--opened]=\"isMenuOpen()\">\r\n\t\t<ng-content select=\"gld-select-option\" />\r\n\t</section>\r\n</ng-template>\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t@if (control().pending) {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon input-icon--animated\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.loader4Fill\"\r\n\t\t\t[disabled]=\"disabled\" />\r\n\t} @else {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon\"\r\n\t\t\t[class.input-icon--rotated]=\"isMenuOpen()\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.arrowDownSLine\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t\t(clicked)=\"arrowIconClicked()\" />\r\n\t}\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t<gld-icon\r\n\t\tsize=\"small\"\r\n\t\tclass=\"input-icon\"\r\n\t\t[class.input-icon--error]=\"errors\"\r\n\t\t[icon]=\"Icons.arrowDownSLine\" />\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n ReactiveFormsModule,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models/controls'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-textarea',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './textarea.component.html',\r\n styleUrl: './textarea.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TextareaComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n innerControl = signal(new FormControl<unknown>(''))\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <textarea\r\n id=\"input-textarea-{{ name() }}\"\r\n [name]=\"name()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\"></textarea>\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix emplate -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3>\r\n<section>errors: {{ errors }}</section>\r\n<section>invalid: {{ control().invalid }}</section>\r\n<section>dirty: {{ control().dirty }}</section>\r\n<section>touched: {{ control().touched }}</section>\r\n<section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\n// Regex to validate the ISO date format (YYYY-MM-DD)\nconst ISO_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/\n\nexport function isDateValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n if (!ISO_DATE_REGEX.test(value))\n return { isDate: 'This field must be a valid date in the format YYYY-MM-DD!' }\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const date = new Date(year, month - 1, day)\n\n // Verify if the date is logical and corresponds to the format\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day)\n return null\n return { isDate: 'This field must be a valid date!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isDocumentValidator({ documentType }: { documentType: DocumentType }): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns: Patterns = {\n\t\t\tDNI: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{7,8}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener entre 7 y 8 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCT: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCL: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[documentType]\n\n\t\tif (!value) return null\n\n\t\tconst pattern = patternsToValid.find((pattern) => !pattern.regex.test(value))\n\n\t\treturn pattern ? { isDocument: pattern.message } : null\n\t}\n}\n\ntype DocumentType = 'DNI' | 'CT' | 'CL'\n\ninterface ValidationPattern {\n\tregex: RegExp\n\tmessage: string\n}\n\ninterface Patterns {\n\tDNI: ValidationPattern[]\n\tCT: ValidationPattern[]\n\tCL: ValidationPattern[]\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar emails\nconst EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/\n\nexport function isEmailValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\n\t\tif (EMAIL_REGEX.test(value)) return null\n\t\t return { email: 'This field must be a valid email!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isFormSelectItemValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\t\tif (typeof value === 'string')\n\t\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\n\t\tif (typeof value === 'object') {\n\t\t\tif ('value' in value && 'label' in value) return null\n\t\t}\n\n\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isLicensePlateValidator({\n\tvehicleType,\n}: {\n\tvehicleType: 'AUTO' | 'MOTO' | 'BOTH'\n}): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns = {\n\t\t\tAUTO: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t],\n\t\t\tMOTO: [\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t\tBOTH: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[vehicleType]\n\n\t\tif (!value) return null\n\n\t\tconst isValid = patternsToValid.some((pattern) => pattern.test(value))\n\n\t\treturn isValid ? null : { isLicensePlate: 'El campo debe ser una patente valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar números naturales (0, 1, 2, 3, ...)\nconst NATURAL_NUMBER_REGEX = /^[0-9]+$/\n\nexport function isNaturalNumberValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value\n\n if (!value) return null\n\n if (NATURAL_NUMBER_REGEX.test(value)) return null\n return { naturalNumber: 'This field must contain only valid numbers!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\nexport function minimumAgeValidator({ minAge }: { minAge: number }): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const birthDay = new Date(year, month - 1, day)\n\n // Get the current date and calculate the difference in years\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const age = today.getFullYear() - birthDay.getFullYear()\n const isMonthPast = today.getMonth() > birthDay.getMonth()\n const isSameMonthDayPast =\n today.getMonth() === birthDay.getMonth() && today.getDate() >= birthDay.getDate()\n\n const isValidAge = age > minAge || (age === minAge && (isMonthPast || isSameMonthDayPast))\n\n // Retornar el error si la edad es menor al mínimo\n return isValidAge ? null : { minimumAge: { requiredAge: minAge, actualAge: age } }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustMatchValidator({\n\tcontrolName,\n\tmustMatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustMatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustMatchControl = formGroup.get(mustMatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustMatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value !== mustMatchControl.value) {\n\t\t\tmustMatchControl.setErrors({ ...mustMatchControl.errors, mustMatch: errorMessage ?? true })\n\t\t\treturn { mustMatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustUnmatchValidator({\n\tcontrolName,\n\tmustUnmatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustUnmatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustUnmatchControl = formGroup.get(mustUnmatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustUnmatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value === mustUnmatchControl.value) {\n\t\t\tmustUnmatchControl.setErrors({\n\t\t\t\t...mustUnmatchControl.errors,\n\t\t\t\tmustUnmatch: errorMessage ?? true,\n\t\t\t})\n\t\t\treturn { mustUnmatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","/*\n * Public API Surface of iamgld-ui\n */\n\nexport * from './lib/components'\nexport * from './lib/validators'\nexport * from './lib/utils'\nexport * from './lib/directives'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["components"],"mappings":";;;;;;;;AAAA;MAUa,eAAe,CAAA;AAC1B,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;IAC/B,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;;;;;AAMnF,IAAA,KAAK,GAAG,KAAK,CAAc,MAAM,CAAC;AAClC,IAAA,IAAI,GAAG,KAAK,CAAa,QAAQ,CAAC;IAClC,OAAO,GAAG,MAAM,EAAQ;IAExB,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;uGAbhC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,qlBCV5B,oRAUA,EAAA,MAAA,EAAA,CAAA,sxGAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDAa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGb,OAAA,EAAA,EAAE,EACM,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,oRAAA,EAAA,MAAA,EAAA,CAAA,sxGAAA,CAAA,EAAA;;;MEHpC,gCAAgC,CAAA;uGAAhC,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAH5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA;;;ACJD;MAuBa,mBAAmB,CAAA;IACrB,OAAO,GAAG,OAAO;AAC1B,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAA2B;IAClD,MAAM,GAAG,KAAK,CAA4B,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACjF,IAAA,OAAO,GAAG,eAAe,CAAC,gCAAgC,EAAE;AAC1D,QAAA,WAAW,EAAE,IAAI;AAClB,KAAA,CAAC;AAEF,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;AAE1B,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;;uGAX/D,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAIJ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gCAAgC,EC3B5D,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0lDAiDA,8wBD/BY,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAKf,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACP,OAAA,EAAA,CAAC,gBAAgB,CAAC,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0lDAAA,EAAA,MAAA,EAAA,CAAA,stBAAA,CAAA,EAAA;;;AErB3C,SAAU,eAAe,CAAC,SAAwB,EAAA;AACvD,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;AAChC,IAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;AAChD,QAAA,OAAO,IAAI;AACjB;AAEA;AACA;AACA;AACA;AACA;AAEM,SAAU,2BAA2B,CAAC,YAA2B,EAAA;AACtE,IAAA,IAAI,CAAC,YAAY;AAAE,QAAA,OAAO,IAAI;IAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;AAEtC,IAAA,IAAI,IAAI;AAAE,QAAA,OAAO,IAAI;;AAChB,QAAA,OAAO,IAAI;AACjB;AAEgB,SAAA,wBAAwB,CAAC,EAAE,KAAK,EAAqB,EAAA;AACpE,IAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AACxB,IAAA,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAA;AAC9C,IAAA,OAAO,KAAK;AACb;;ACxBM,SAAU,qBAAqB,CAAC,GAAW,EAAA;AAChD,IAAA,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;AACpB,IAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;AAChE;;ACHA;AA2BA,MAAMA,YAAU,GAAG,CAAC,mBAAmB,CAAC;MAiB3B,kBAAkB,CAAA;AACpB,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEvD,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAwB;AAChD,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC/B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,IAAA,GAAG,GAAG,KAAK,CAAwB,EAAE,EAAE;QACrC,SAAS,EAAE,CAAC,KAAa,KAAK,2BAA2B,CAAC,KAAK,CAAC;AACjE,KAAA,CAAC;AACF,IAAA,GAAG,GAAG,KAAK,CAAwB,EAAE,EAAE;QACrC,SAAS,EAAE,CAAC,KAAa,KAAK,2BAA2B,CAAC,KAAK,CAAC;AACjE,KAAA,CAAC;AACF,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,CAAC;IAC/B,MAAM,GAAG,KAAK,CAA4B,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAEjF,IAAA,YAAY,GAAG,MAAM,CAAC,IAAI,WAAW,CAAS,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;;AAGzE,IAAA,QAAQ,GAAG,CAAC,KAAc,KAAI,GAAG;;AAEjC,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,YAAY;AACd,aAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AACzE,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC;AAC/C,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACjC,SAAC,CAAC;;IAGN,QAAQ,GAAA;;QAEN,IAAI,CAAC,OAAO;AACT,aAAA,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;aACnE,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;;AAG7D,IAAA,UAAU,CAAC,KAAc,EAAA;;AAEvB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK;YAAE,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;AAGtF,IAAA,gBAAgB,CAAC,QAAkC,EAAA;;AAEjD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B,IAAA,iBAAiB,CAAC,SAAqB,EAAA;;AAErC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;uGAnDjB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EARlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1CH,0mDAqDA,EDrBY,MAAA,EAAA,CAAA,24DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAL7B,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAiB1B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAf9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACd,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,GAAGA,YAAU,CAAC,EAAA,eAAA,EAG9C,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACjD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,0mDAAA,EAAA,MAAA,EAAA,CAAA,24DAAA,CAAA,EAAA;;;AE1CH;MAWa,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,0ECX/B,wIAKA,EAAA,MAAA,EAAA,CAAA,imBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDMa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cACd,IAAI,EAAA,OAAA,EACP,EAAE,EAGM,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,imBAAA,CAAA,EAAA;;;AEThD;AA2BA,MAAMA,YAAU,GAAG,CAAC,mBAAmB,CAAC;MAiB3B,cAAc,CAAA;AAChB,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEvD,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAwB;AAChD,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC/B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,CAAC;AAC/B,IAAA,IAAI,GAAG,KAAK,CAAY,MAAM,CAAC;IAC/B,MAAM,GAAG,KAAK,CAA4B,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAEjF,YAAY,GAAG,MAAM,CAAC,IAAI,WAAW,CAAU,EAAE,CAAC,CAAC;;AAGnD,IAAA,QAAQ,GAAG,CAAC,KAAc,KAAI,GAAG;;AAEjC,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,YAAY;AACd,aAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AACzE,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,MAAM,gBAAgB,GAAG,KAAK;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACjC,SAAC,CAAC;;IAGN,QAAQ,GAAA;;QAEN,IAAI,CAAC,OAAO;AACT,aAAA,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;aACnE,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;;AAG7D,IAAA,UAAU,CAAC,KAAc,EAAA;;AAEvB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK;YAAE,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAG9E,IAAA,gBAAgB,CAAC,QAAkC,EAAA;;AAEjD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B,IAAA,iBAAiB,CAAC,SAAqB,EAAA;;AAErC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;IAG5B,OAAO,GAAA;;;IAIP,MAAM,GAAA;QACJ,IAAI,CAAC,SAAS,EAAE;;;uGAtDP,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EARd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAC7C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1CH,mwDAqDA,EDrBY,MAAA,EAAA,CAAA,24DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAL7B,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAiB1B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAf1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACT,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,GAAGA,YAAU,CAAC,EAAA,eAAA,EAG9C,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAC7C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,mwDAAA,EAAA,MAAA,EAAA,CAAA,24DAAA,CAAA,EAAA;;;AE1CH;MAaa,oBAAoB,CAAA;AAC/B,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAc;IACpC,WAAW,GAAG,MAAM,EAAc;IAClC,WAAW,GAAG,MAAM,EAAW;AAE/B,IAAA,OAAO,GAAG,MAAM,CAAa,IAAI,CAAC;AAClC,IAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,CAAC;AACjC,IAAA,KAAK,GAAG,MAAM,CAAU,KAAK,CAAC;AAC9B,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAEnE,IAAA,MAAM,CAAC,KAAiB,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG9B,IAAA,KAAK,CAAC,KAAiB,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;IAGpB,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG7B,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;uGAvBnB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,oRCbjC,mjBAiBA,EAAA,MAAA,EAAA,CAAA,woDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDJa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAChB,IAAI,EAAA,OAAA,EACP,EAAE,EAGM,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mjBAAA,EAAA,MAAA,EAAA,CAAA,woDAAA,CAAA,EAAA;;;AEXjD,IAAY,KAMX;AAND,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,mBAAoC;AACpC,IAAA,KAAA,CAAA,cAAA,CAAA,GAAA,iBAAgC;AAChC,IAAA,KAAA,CAAA,oBAAA,CAAA,GAAA,sBAA2C;AAC3C,IAAA,KAAA,CAAA,yBAAA,CAAA,GAAA,4BAAsD;AACtD,IAAA,KAAA,CAAA,aAAA,CAAA,GAAA,eAA6B;AAC/B,CAAC,EANW,KAAK,KAAL,KAAK,GAMhB,EAAA,CAAA,CAAA;AAED,IAAY,SAMX;AAND,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EANW,SAAS,KAAT,SAAS,GAMpB,EAAA,CAAA,CAAA;;ACdD,IAAY,UAGX;AAHD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA;;ACHD,IAAY,cAGX;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA;;ACHD;AAuBA,MAAMA,YAAU,GAAG,CAAC,mBAAmB,CAAC;MAiB3B,mBAAmB,CAAA;AACrB,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEvD,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAwB;AAChD,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC/B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,IAAA,SAAS,GAAG,KAAK,CAA8B,cAAc,CAAC,UAAU,CAAC;AAEzE,IAAA,mBAAmB,GAAG,eAAe,CAAuB,oBAAoB,CAAC;IACjF,YAAY,GAAG,MAAM,CAAC,IAAI,WAAW,CAAU,EAAE,CAAC,CAAC;;AAGnD,IAAA,QAAQ,GAAG,CAAC,KAAc,KAAI,GAAG;;AAEjC,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,YAAY;AACd,aAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AACzE,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,MAAM,gBAAgB,GAAG,KAAK;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACjC,SAAC,CAAC;;IAGN,QAAQ,GAAA;;QAEN,IAAI,CAAC,OAAO;AACT,aAAA,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;aACnE,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,qBAAqB,CACxB,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAC3E;AACD,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;AACzC,SAAC,CAAC;;IAGN,kBAAkB,GAAA;QAChB,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,WAAiC,KAAI;AACnE,YAAA,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACjF,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC1C,gBAAA,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,SAAS,EAAE;AAC9B,aAAC,CAAC;AACJ,SAAC,CAAC;;AAGJ,IAAA,uBAAuB,CAAC,KAAiB,EAAA;QACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,WAAiC,EAAE,KAAa,KAAI;AAClF,YAAA,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;YAE9B,IAAI,KAAK,KAAK,CAAC;AAAE,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACvC,SAAC,CAAC;;AAGJ,IAAA,qBAAqB,CAAC,KAAc,EAAA;QAClC,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,WAAiC,KAC/D,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAC7B;;AAGH,IAAA,UAAU,CAAC,KAAc,EAAA;;QAEvB,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE;YACvC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;;;AAIvC,IAAA,gBAAgB,CAAC,QAAkC,EAAA;;AAEjD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B,IAAA,iBAAiB,CAAC,SAAqB,EAAA;;AAErC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AAG5B,IAAA,gBAAgB,CAAC,QAAiB,EAAA;;AAEhC,QAAA,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC;;AAG1C,IAAA,yBAAyB,CAAC,QAAiB,EAAA;QACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,WAAiC,KAC/D,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CACnC;;uGAtFQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EARnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EAW2D,oBAAoB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjDlF,srCA+BA,EAAA,MAAA,EAAA,CAAA,wfAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDRoB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAiB1B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,GAAGA,YAAU,CAAC,EAGP,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,srCAAA,EAAA,MAAA,EAAA,CAAA,wfAAA,CAAA,EAAA;;;AEtCH;MAaa,qBAAqB,CAAA;AAChC,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAc;IACpC,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IACnF,QAAQ,GAAG,MAAM,EAAc;IAC/B,WAAW,GAAG,MAAM,EAAW;IAE/B,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;;IAGxD,KAAK,GAAA;QACH,IAAI,CAAC,MAAM,EAAE;;IAGf,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG7B,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;uGAnBnB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,gZCblC,4QASA,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDIa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cACjB,IAAI,EAAA,OAAA,EACP,EAAE,EAGM,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4QAAA,EAAA,MAAA,EAAA,CAAA,6uBAAA,CAAA,EAAA;;;AEXjD;MAoBa,aAAa,CAAA;IACf,UAAU,GAAG,UAAU;IACvB,KAAK,GAAG,KAAK;AAEtB,IAAA,IAAI,GAAG,KAAK,CAAQ,KAAK,CAAC,cAAc,CAAC;AACzC,IAAA,IAAI,GAAG,KAAK,CAAyB,SAAS,CAAC,MAAM,CAAC;AACtD,IAAA,KAAK,GAAG,KAAK,CAA0B,UAAU,CAAC,IAAI,CAAC;IACvD,eAAe,GAAG,KAAK,CAA0B,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IACnF,eAAe,GAAG,KAAK,CAA0B,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IACnF,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IACnF,OAAO,GAAG,MAAM,EAAQ;IAExB,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;;IAG3C,KAAK,GAAA;QACH,IAAI,CAAC,SAAS,EAAE;;uGAjBP,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,g4BCpB1B,i4EA0CA,EAAA,MAAA,EAAA,CAAA,qjBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDtBa,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,cACR,IAAI,EAAA,OAAA,EACP,EAAE,EAGM,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,i4EAAA,EAAA,MAAA,EAAA,CAAA,qjBAAA,CAAA,EAAA;;AAuBjD,IAAK,UAIJ;AAJD,CAAA,UAAK,UAAU,EAAA;AACb,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EAJI,UAAU,KAAV,UAAU,GAId,EAAA,CAAA,CAAA;;AE7CD;AAiCA,MAAMA,YAAU,GAAG,CAAC,aAAa,EAAE,mBAAmB,CAAC;MAiB1C,eAAe,CAAA;AACjB,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC9C,KAAK,GAAG,KAAK;AAEtB,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAwB;AAChD,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC/B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,CAAC;AAC/B,IAAA,SAAS,GAAG,KAAK,CAA6B,CAAC,KAAc,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;AAEhF,IAAA,aAAa,GAAG,SAAS,CAA0B,eAAe,CAAC;AACnE,IAAA,oBAAoB,GAAG,eAAe,CAAwB,qBAAqB,CAAC;IAEpF,YAAY,GAAG,MAAM,CAAC,IAAI,WAAW,CAAU,EAAE,CAAC,CAAC;AACnD,IAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;;AAG1B,IAAA,QAAQ,GAAG,CAAC,KAAc,KAAI,GAAG;;AAEjC,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAAE,IAAI,CAAC,2BAA2B,EAAE;AACrE,SAAC,CAAC;QAEF,IAAI,CAAC,YAAY;AACd,aAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AACzE,aAAA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;IAG/C,QAAQ,GAAA;;QAEN,IAAI,CAAC,OAAO;AACT,aAAA,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;aACnE,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;;IAG7D,kBAAkB,GAAA;QAChB,IAAI,CAAC,2BAA2B,EAAE;QAElC,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAC,CAAC,YAAmC,KAAI;YACtE,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;;AAE3C,gBAAA,IAAI,KAAK;oBAAE,IAAI,CAAC,OAAO,EAAE;;oBACpB,IAAI,CAAC,MAAM,EAAE;AACpB,aAAC,CAAC;AACJ,SAAC,CAAC;;AAGJ,IAAA,UAAU,CAAC,KAAc,EAAA;;QAEvB,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE;;YAEvC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;;;AAIvC,IAAA,gBAAgB,CAAC,QAAkC,EAAA;;AAEjD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B,IAAA,iBAAiB,CAAC,SAAqB,EAAA;;AAErC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;IAG5B,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;;IAG3B,MAAM,GAAA;;QAEJ,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;;IAG5B,gBAAgB,GAAA;;;QAGd,IAAI,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,SAAS,EAAE;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;;;AAIzC,IAAA,eAAe,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,gBAA+B;AAEnC,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,gBAAgB,GAAG,IAAI;;YAC7D,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC;AAE/C,QAAA,OAAO,gBAAgB;;IAGzB,2BAA2B,GAAA;AACzB,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE;QACxD,MAAM,aAAa,GAA4B,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa;AAClF,QAAA,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC3F,MAAM,YAAY,GAChB,aAAa,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,YAAY;AACjE,QAAA,IAAI,YAAY;YAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAG,EAAA,YAAY,CAAI,EAAA,CAAA,CAAC;AAE9F,QAAA,oBAAoB,CAAC,GAAG,CAAC,CAAC,YAAY,KAAI;YACxC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAiB,KAAI;gBACpD,IAAI,KAAK,EAAE;AACT,oBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,aAAa,EAAE,gBAAgB,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAC3C;AACxB,oBAAA,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;oBACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACpD,oBAAA,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACpE,oBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACpB,IAAI,CAAC,SAAS,EAAE;AAChB,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;;AAE9B,aAAC,CAAC;AACJ,SAAC,CAAC;;uGAtHO,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EARf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAc6D,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,qBAAqB,EC9DrF,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,grGA8FA,EDxDY,MAAA,EAAA,CAAA,++FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,0kBAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAL7B,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAiBzC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACV,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,GAAGA,YAAU,CAAC,EAAA,eAAA,EAG9C,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,grGAAA,EAAA,MAAA,EAAA,CAAA,++FAAA,CAAA,EAAA;;;AEhDH;AA2BA,MAAM,UAAU,GAAG,CAAC,mBAAmB,CAAC;MAiB3B,iBAAiB,CAAA;AACnB,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEvD,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAwB;AAChD,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC/B,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,IAAA,WAAW,GAAG,KAAK,CAAS,EAAE,CAAC;AAC/B,IAAA,IAAI,GAAG,KAAK,CAAY,MAAM,CAAC;IAC/B,MAAM,GAAG,KAAK,CAA4B,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;AAGjF,IAAA,QAAQ,GAAG,CAAC,KAAc,KAAI,GAAG;;AAEjC,IAAA,SAAS,GAAG,MAAK,GAAG;IAEpB,YAAY,GAAG,MAAM,CAAC,IAAI,WAAW,CAAU,EAAE,CAAC,CAAC;AAEnD,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,YAAY;AACd,aAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;AACzE,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,MAAM,gBAAgB,GAAG,KAAK;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACjC,SAAC,CAAC;;IAGN,QAAQ,GAAA;;QAEN,IAAI,CAAC,OAAO;AACT,aAAA,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;aACnE,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;;AAG7D,IAAA,UAAU,CAAC,KAAc,EAAA;;AAEvB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK;YAAE,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAG9E,IAAA,gBAAgB,CAAC,QAAkC,EAAA;;AAEjD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAG1B,IAAA,iBAAiB,CAAC,SAAqB,EAAA;;AAErC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;IAG5B,OAAO,GAAA;;;IAIP,MAAM,GAAA;QACJ,IAAI,CAAC,SAAS,EAAE;;;uGAtDP,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EARjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1CH,kiDAiDA,EDjBY,MAAA,EAAA,CAAA,u+DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAL7B,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAiB1B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAf7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACZ,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC,EAAA,eAAA,EAG9C,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AAChD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,kiDAAA,EAAA,MAAA,EAAA,CAAA,u+DAAA,CAAA,EAAA;;;AExCH;AAGA;AACA,MAAM,cAAc,GAAG,oDAAoD;SAE3D,eAAe,GAAA;IAC7B,OAAO,CAAC,OAAwB,KAA6B;QAC3D,MAAM,KAAK,GAAG,2BAA2B,CAAC,OAAO,CAAC,KAAK,CAAC;AAExD,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;AAEvB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,YAAA,OAAO,EAAE,MAAM,EAAE,2DAA2D,EAAE;;AAGhF,QAAA,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AACvD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;;QAG3C,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG;AACxF,YAAA,OAAO,IAAI;AACb,QAAA,OAAO,EAAE,MAAM,EAAE,kCAAkC,EAAE;AACvD,KAAC;AACH;;ACvBgB,SAAA,mBAAmB,CAAC,EAAE,YAAY,EAAkC,EAAA;IACnF,OAAO,CAAC,OAAwB,KAA6B;AAC5D,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;;AAG3B,QAAA,MAAM,QAAQ,GAAa;AAC1B,YAAA,GAAG,EAAE;AACJ,gBAAA;AACC,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,OAAO,EAAE,wCAAwC;AACjD,iBAAA;AACD,gBAAA;AACC,oBAAA,KAAK,EAAE,UAAU;AACjB,oBAAA,OAAO,EAAE,+CAA+C;AACxD,iBAAA;AACD,aAAA;AACD,YAAA,EAAE,EAAE;AACH,gBAAA;AACC,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,OAAO,EAAE,wCAAwC;AACjD,iBAAA;AACD,gBAAA;AACC,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,OAAO,EAAE,sCAAsC;AAC/C,iBAAA;AACD,aAAA;AACD,YAAA,EAAE,EAAE;AACH,gBAAA;AACC,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,OAAO,EAAE,wCAAwC;AACjD,iBAAA;AACD,gBAAA;AACC,oBAAA,KAAK,EAAE,SAAS;AAChB,oBAAA,OAAO,EAAE,sCAAsC;AAC/C,iBAAA;AACD,aAAA;SACD;AAED,QAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAC;AAE9C,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;QAEvB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAE7E,QAAA,OAAO,OAAO,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI;AACxD,KAAC;AACF;;AC9CA;AACA,MAAM,WAAW,GAAG,mDAAmD;SAEvD,gBAAgB,GAAA;IAC/B,OAAO,CAAC,OAAwB,KAA6B;AAC5D,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AAE3B,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;AAEvB,QAAA,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;AACvC,QAAA,OAAO,EAAE,KAAK,EAAE,mCAAmC,EAAE;AACvD,KAAC;AACF;;SCZgB,yBAAyB,GAAA;IACxC,OAAO,CAAC,OAAwB,KAA6B;AAC5D,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AAE3B,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ;AAC5B,YAAA,OAAO,EAAE,gBAAgB,EAAE,wCAAwC,EAAE;AAEtE,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC9B,YAAA,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK;AAAE,gBAAA,OAAO,IAAI;;AAGtD,QAAA,OAAO,EAAE,gBAAgB,EAAE,wCAAwC,EAAE;AACtE,KAAC;AACF;;ACdgB,SAAA,uBAAuB,CAAC,EACvC,WAAW,GAGX,EAAA;IACA,OAAO,CAAC,OAAwB,KAA6B;AAC5D,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;;AAG3B,QAAA,MAAM,QAAQ,GAAG;AAChB,YAAA,IAAI,EAAE;AACL,gBAAA,sBAAsB;AACtB,gBAAA,iCAAiC;AACjC,aAAA;AACD,YAAA,IAAI,EAAE;AACL,gBAAA,sBAAsB;AACtB,gBAAA,iCAAiC;AACjC,aAAA;AACD,YAAA,IAAI,EAAE;AACL,gBAAA,sBAAsB;AACtB,gBAAA,iCAAiC;AACjC,gBAAA,sBAAsB;AACtB,gBAAA,iCAAiC;AACjC,aAAA;SACD;AAED,QAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC;AAE7C,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;AAEvB,QAAA,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEtE,QAAA,OAAO,OAAO,GAAG,IAAI,GAAG,EAAE,cAAc,EAAE,uCAAuC,EAAE;AACpF,KAAC;AACF;;AClCA;AACA,MAAM,oBAAoB,GAAG,UAAU;SAEvB,wBAAwB,GAAA;IACtC,OAAO,CAAC,OAAwB,KAA6B;AAC3D,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AAE3B,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;AAEvB,QAAA,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;AACjD,QAAA,OAAO,EAAE,aAAa,EAAE,6CAA6C,EAAE;AACzE,KAAC;AACH;;ACbA;AAGgB,SAAA,mBAAmB,CAAC,EAAE,MAAM,EAAsB,EAAA;IAChE,OAAO,CAAC,OAAwB,KAA6B;QAC3D,MAAM,KAAK,GAAG,2BAA2B,CAAC,OAAO,CAAC,KAAK,CAAC;AAExD,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;;AAGvB,QAAA,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AACvD,QAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;;AAG/C,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;QACxB,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE;QACxD,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE;QAC1D,MAAM,kBAAkB,GACtB,KAAK,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;AAEnF,QAAA,MAAM,UAAU,GAAG,GAAG,GAAG,MAAM,KAAK,GAAG,KAAK,MAAM,KAAK,WAAW,IAAI,kBAAkB,CAAC,CAAC;;QAG1F,OAAO,UAAU,GAAG,IAAI,GAAG,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE;AACpF,KAAC;AACH;;ACzBM,SAAU,kBAAkB,CAAC,EAClC,WAAW,EACX,oBAAoB,EACpB,YAAY,GAKZ,EAAA;IACA,OAAO,CAAC,SAA0B,KAA6B;QAC9D,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;QAC/C,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC;;AAG5D,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,gBAAgB;AAAE,YAAA,OAAO,IAAI;;AAGnD,QAAA,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,EAAE;AACxE,YAAA,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,IAAI,IAAI,EAAE,CAAC;AAC3F,YAAA,OAAO,EAAE,SAAS,EAAE,YAAY,IAAI,IAAI,EAAE;;QAG3C,OAAO,IAAI,CAAA;AACZ,KAAC;AACF;;ACxBM,SAAU,oBAAoB,CAAC,EACpC,WAAW,EACX,sBAAsB,EACtB,YAAY,GAKZ,EAAA;IACA,OAAO,CAAC,SAA0B,KAA6B;QAC9D,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;QAC/C,MAAM,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC;;AAGhE,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,kBAAkB;AAAE,YAAA,OAAO,IAAI;;AAGrD,QAAA,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,KAAK,kBAAkB,CAAC,KAAK,EAAE;YAC1E,kBAAkB,CAAC,SAAS,CAAC;gBAC5B,GAAG,kBAAkB,CAAC,MAAM;gBAC5B,WAAW,EAAE,YAAY,IAAI,IAAI;AACjC,aAAA,CAAC;AACF,YAAA,OAAO,EAAE,WAAW,EAAE,YAAY,IAAI,IAAI,EAAE;;QAG7C,OAAO,IAAI,CAAA;AACZ,KAAC;AACF;;AC9BA;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"iamgld-ui.mjs","sources":["../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.html","../../../projects/iamgld-ui/src/lib/directives/select-input-error-message/select-input-error-message.directive.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.html","../../../projects/iamgld-ui/src/lib/utils/date/date.util.ts","../../../projects/iamgld-ui/src/lib/utils/string/string.util.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.html","../../../projects/iamgld-ui/src/lib/models/icon/icon.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/select.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/radio.model.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.html","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.html","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.html","../../../projects/iamgld-ui/src/lib/validators/is-date/is-date.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-document/is-document.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-email/is-email.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-form-select-item/is-form-select-item.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-license-plate/is-license-plate.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-natural-number/is-natural-number.validator.ts","../../../projects/iamgld-ui/src/lib/validators/minimum-age/minimum-age.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-match/must-match.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-unmatch/must-unmatch.validator.ts","../../../projects/iamgld-ui/src/public-api.ts","../../../projects/iamgld-ui/src/iamgld-ui.ts"],"sourcesContent":["// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input, output } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'gld-button',\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.scss',\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n name = input.required<string>()\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n // hasIcon = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n // icon = input<Icons>(Icons.addLine)\r\n // iconSize = input<keyof typeof IconsSize>(IconsSize.small)\r\n // iconMoveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n // iconMoveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n color = input<ButtonColor>('pink')\r\n size = input<ButtonSize>('normal')\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n}\r\n\r\nexport type ButtonColor = 'pink' | 'purple' | 'mustard' | 'orange' | 'red' | 'blue' | 'green'\r\nexport type ButtonSize = 'tiny' | 'small' | 'normal' | 'medium' | 'large'\r\n","<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"Button Button--{{ color() }} Button--{{ size() }}\"\r\n [class.Button--disabled]=\"disabled()\"\r\n (click)=\"emitClick()\">\r\n <span>\r\n <ng-content />\r\n </span>\r\n</button>\r\n","import { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldErrorMessage]',\n})\nexport class SelectInputErrorMessageDirective {}\n\n","// Angular Imports\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n contentChildren,\r\n signal,\r\n effect,\r\n} from '@angular/core'\r\nimport { ValidationErrors } from '@angular/forms'\r\n// This Module Imports\r\nimport { SelectInputErrorMessageDirective } from '../../../directives'\r\n\r\n@Component({\r\n selector: 'gld-input-error',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n templateUrl: './input-error.component.html',\r\n styleUrl: './input-error.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputErrorComponent {\r\n readonly Boolean = Boolean\r\n errors = input.required<ValidationErrors | null>()\r\n border = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n content = contentChildren(SelectInputErrorMessageDirective, {\r\n descendants: true,\r\n })\r\n\r\n hasContent = signal(false)\r\n\r\n constructor() {\r\n effect(() => this.hasContent.set(this.content()?.length ? true : false), {\r\n allowSignalWrites: true,\r\n })\r\n }\r\n}\r\n","<section class=\"error\" [class.error--with-border]=\"border()\">\r\n <span class=\"error__message\">\r\n @if (hasContent()) {\r\n <ng-content />\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"errorsMessageDefault\" />\r\n }\r\n </span>\r\n</section>\r\n\r\n<ng-template #errorsMessageDefault>\r\n @switch (true) {\r\n @case (Boolean(this.errors()?.['required'])) {\r\n This field is required!\r\n }\r\n @case (Boolean(this.errors()?.['email'])) {\r\n {{ this.errors()?.['email'] }}\r\n }\r\n @case (Boolean(this.errors()?.['maxlength'])) {\r\n This field must have a maximum of\r\n {{ this.errors()?.['maxlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['minlength'])) {\r\n This field must have a minimum of\r\n {{ this.errors()?.['minlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['isDate'])) {\r\n {{ this.errors()?.['isDate'] }}\r\n }\r\n @case (Boolean(this.errors()?.['minimumAge'])) {\r\n This field must meet the minimum age requirement of\r\n {{ this.errors()?.['minimumAge'].requiredAge }} years\r\n }\r\n @case (Boolean(this.errors()?.['naturalNumber'])) {\r\n {{ this.errors()?.['naturalNumber'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustMatch'])) {\r\n {{ this.errors()?.['mustMatch'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustUnmatch'])) {\r\n {{ this.errors()?.['mustUnmatch'] }}\r\n }\r\n @default {\r\n empty error message\r\n }\r\n }\r\n</ng-template>\r\n","export function formatDateToISO(outerDate: string | Date): string | null {\n\tconst date = new Date(outerDate)\n\tif (!isNaN(date.getTime())) return date.toISOString()\n\telse return null\n}\n\n// export function formatDateFromISOToDDMMYYYY(dateAsString: string): string | null {\n// \tconst [year, month, day] = dateAsString.split('-')\n// \tif (year && month && day) return `${day}/${month}/${year}`\n// \telse return null\n// }\n\nexport function formatDateFromISOToYYYYMMDD(dateAsString: string | null): string | null {\n\tif (!dateAsString) return null\n\tconst [date] = dateAsString.split('T')\n\n\tif (date) return date\n\telse return null\n}\n\nexport function getDateWithOffsetInYears({ years }: { years: number }): Date {\n\tconst today = new Date()\n\ttoday.setFullYear(today.getFullYear() + years) // Agrega o resta años\n\treturn today\n}\n\n","export function capitalizeFirstLetter(str: string): string {\n\tif (!str) return str // Maneja el caso de string vacío\n\treturn str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n OnInit,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n signal,\n} from '@angular/core'\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\nimport {\n ReactiveFormsModule,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n} from '@angular/forms'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Module Imports\nimport { InputErrorComponent } from '../input-error/input-error.component'\nimport { formatDateToISO, formatDateFromISOToYYYYMMDD } from '../../../utils'\n// Thirdparty Imports\nimport { debounceTime } from 'rxjs'\n\nconst components = [InputErrorComponent]\n\n@Component({\n selector: 'gld-input-date',\n standalone: true,\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\n templateUrl: './input-date.component.html',\n styleUrl: './input-date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputDateComponent),\n multi: true,\n },\n ],\n})\nexport class InputDateComponent implements ControlValueAccessor, OnInit {\n readonly #destroyRef = inject(DestroyRef)\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\n\n control = input.required<FormControl<unknown>>()\n name = input.required<string>()\n label = input<string>('')\n min = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n max = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n placeholder = input<string>('')\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n\n innerControl = signal(new FormControl<string>('', { nonNullable: true }))\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n onChange = (value: unknown) => {}\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {}\n\n constructor() {\n this.innerControl()\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\n .subscribe((value) => {\n const valueTransformed = formatDateToISO(value)\n this.onChange(valueTransformed)\n })\n }\n\n ngOnInit(): void {\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\n this.control()\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\n .subscribe(() => this.#changeDetectorRef.detectChanges())\n }\n\n writeValue(value: unknown): void {\n // console.log('writeValue')\n if (value !== this.innerControl().value) this.innerControl().setValue(String(value))\n }\n\n registerOnChange(onChange: (value: unknown) => void): void {\n // console.log('registerOnChange')\n this.onChange = onChange\n }\n\n registerOnTouched(onTouched: () => void): void {\n // console.log('registerOnTouched')\n this.onTouched = onTouched\n }\n}\n\n","@let errors = control().invalid && (control().dirty || control().touched);\n@let disabled = control().disabled || (control().pending && control().disabled);\n\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\n\t<!-- Label -->\n\t@if (label()) {\n\t\t<label [for]=\"name()\">\n\t\t\t{{ label() }}\n\t\t</label>\n\t}\n\n\t<!-- Input -->\n\t<input\n\t\ttype=\"date\"\n\t\tid=\"input-date-{{ name() }}\"\n\t\t[name]=\"name()\"\n\t\t[attr.min]=\"min()\"\n\t\t[attr.max]=\"max()\"\n\t\t[placeholder]=\"placeholder()\"\n\t\t[formControl]=\"innerControl()\"\n\t\t(blur)=\"onTouched()\" />\n\n\t<!-- Suffix -->\n\t@if (suffix()) {\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\n\t}\n</section>\n<!-- Errors -->\n@if (errors) {\n\t<ng-content select=\"gld-input-error\">\n\t\t<gld-input-error [errors]=\"control().errors\" />\n\t</ng-content>\n} @else {\n\t<!-- Hint -->\n\t<ng-content select=\"gld-input-hint\" />\n}\n\n<!-- Suffix Template -->\n<ng-template #suffixTemplate>\n\t<span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\n\t\t<ng-content select=\"[inputSuffix]\" />\n\t</span>\n</ng-template>\n\n<!-- <h3>Debugging</h3> -->\n<!-- <section>errors: {{ control().errors | json }}</section> -->\n<!-- <section>errors: {{ errors }}</section> -->\n<!-- <section>invalid: {{ control().invalid }}</section> -->\n<!-- <section>dirty: {{ control().dirty }}</section> -->\n<!-- <section>touched: {{ control().touched }}</section> -->\n<!-- <section>disable: {{ control().disabled }}</section> -->\n<!-- <section>status: {{ control().status }}</section> -->\n\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core'\r\n\r\n@Component({\r\n\tselector: 'gld-input-hint',\r\n\tstandalone: true,\r\n\timports: [],\r\n\ttemplateUrl: './input-hint.component.html',\r\n\tstyleUrl: './input-hint.component.scss',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputHintComponent {}\r\n","<section class=\"hint\">\r\n\t<span class=\"hint__message\">\r\n\t\t<ng-content>hint empty</ng-content>\r\n\t</span>\r\n</section>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n OnInit,\r\n booleanAttribute,\r\n forwardRef,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core'\r\nimport {\r\n ReactiveFormsModule,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-input',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './input.component.html',\r\n styleUrl: './input.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n innerControl = signal(new FormControl<unknown>(''))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <input\r\n id=\"input-{{ name() }}\"\r\n [tabindex]=\"disabled ? '-1' : '0'\"\r\n [name]=\"name()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\" />\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\r\n// Shared Imports\r\nimport { InputValue } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-radio-button',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './radio-button.component.html',\r\n styleUrl: './radio-button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioButtonComponent {\r\n value = input.required<InputValue>()\r\n changeValue = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n current = signal<InputValue>(null)\r\n disabled = signal<boolean>(false)\r\n error = signal<boolean>(false)\r\n selected = computed(() => Boolean(this.current() === this.value()))\r\n\r\n select(value: InputValue) {\r\n this.changeValue.emit(value)\r\n }\r\n\r\n keyup(value: InputValue) {\r\n this.select(value)\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n\t[tabindex]=\"disabled() ? '-1' : '0'\"\r\n\t(keyup.enter)=\"keyup(value())\"\r\n\t(click)=\"select(value())\"\r\n\tclass=\"radio\"\r\n\t[class.radio--selected]=\"selected()\"\r\n\t[class.radio--disabled]=\"disabled()\"\r\n\t[class.radio--error]=\"error()\"\r\n\t(focus)=\"onFocus()\"\r\n\t(blur)=\"onBlur()\"\r\n\t(keyup.escape)=\"onBlur()\">\r\n\t<span class=\"radio__icon\" [class.radio__icon--selected]=\"selected()\"></span>\r\n\r\n\t<span class=\"radio__label\">\r\n\t\t<ng-content>empty radio button</ng-content>\r\n\t</span>\r\n</button>\r\n","export enum Icons {\r\n arrowDownSLine = 'arrow-down-s-line',\r\n arrowUpSLine = 'arrow-up-s-line',\r\n checkboxCircleLine = 'checkbox-circle-line',\r\n checkboxBlankCircleLine = 'checkbox-blank-circle-line',\r\n loader4Fill = 'loader-4-fill',\r\n}\r\n\r\nexport enum IconsSize {\r\n tiny = 'tiny',\r\n small = 'small',\r\n normal = 'normal',\r\n medium = 'medium',\r\n large = 'large',\r\n}\r\n","export enum SelectType {\r\n default = 'default',\r\n inline = 'inline',\r\n}\r\n","export enum RadioDirection {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n","// Angular Imports\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n contentChildren,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { RadioDirection, InputValue } from '../../../models'\r\nimport { RadioButtonComponent } from '../radio-button/radio-button.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-radio-group',\r\n standalone: true,\r\n imports: [...components],\r\n templateUrl: './radio-group.component.html',\r\n styleUrl: './radio-group.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioGroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RadioGroupComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n direction = input<keyof typeof RadioDirection>(RadioDirection.horizontal)\r\n\r\n radioButtonChildren = contentChildren<RadioButtonComponent>(RadioButtonComponent)\r\n innerControl = signal(new FormControl<unknown>(''))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => {\r\n this.updateErrorInChildren(\r\n this.control().invalid && (this.control().dirty || this.control().touched),\r\n )\r\n this.#changeDetectorRef.detectChanges()\r\n })\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) => {\r\n radioButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\r\n radioButton.changeFocus.subscribe((focus) => {\r\n if (!focus) this.onTouched()\r\n })\r\n })\r\n }\r\n\r\n updateCurrentInChildren(value: InputValue) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent, index: number) => {\r\n radioButton.current.set(value)\r\n // Set current one time\r\n if (index === 0) this.onChange(value)\r\n })\r\n }\r\n\r\n updateErrorInChildren(error: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.error.set(error),\r\n )\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n // console.log('setDisabledState')\r\n this.#updateDisabledInChildren(disabled)\r\n }\r\n\r\n #updateDisabledInChildren(disabled: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.disabled.set(disabled),\r\n )\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<article class=\"radio\" [class.radio--disabled]=\"disabled\" [attr.name]=\"name()\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label class=\"radio__label\" [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n <section class=\"radio__items radio__items--{{ direction() }}\">\r\n <ng-content select=\"gld-radio-button\" />\r\n </section>\r\n</article>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error border [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input, output } from '@angular/core'\r\n// This Module Imports\r\nimport { InputValue } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-select-option',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './select-option.component.html',\r\n styleUrl: './select-option.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectOptionComponent {\r\n value = input.required<InputValue>()\r\n disabled = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n selected = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n select(): void {\r\n if (!this.disabled()) this.selected.emit(this.value())\r\n }\r\n\r\n keyup() {\r\n this.select()\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n [tabindex]=\"disabled() ? '-1' : '0'\"\r\n (keyup.enter)=\"keyup()\"\r\n (click)=\"select()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keyup.escape)=\"onBlur()\">\r\n <span><ng-content> an option </ng-content></span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// Shared Imports\r\nimport { Icons, IconsSize } from '../../models'\r\n\r\n@Component({\r\n selector: 'gld-icon',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './icon.component.html',\r\n styleUrl: './icon.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconComponent {\r\n readonly IconsSpace = IconsSpace\r\n readonly Icons = Icons\r\n\r\n icon = input<Icons>(Icons.arrowDownSLine)\r\n size = input<keyof typeof IconsSize>(IconsSize.normal)\r\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n\r\nenum IconsSpace {\r\n left = 'left',\r\n right = 'right',\r\n none = 'none',\r\n}\r\n","<span\r\n tabindex=\"-1\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n class=\"Icon Icon--{{ size() }}\"\r\n [class.Icon--left]=\"space() === IconsSpace.left\"\r\n [class.Icon--right]=\"space() === IconsSpace.right\"\r\n [style.right.px]=\"moveLeftToRight()\"\r\n [style.top.px]=\"moveTopToBottom()\">\r\n @switch (icon()) {\r\n @case (Icons.arrowDownSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.arrowUpSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11.0026 16L6.75999 11.7574L8.17421 10.3431L11.0026 13.1716L16.6595 7.51472L18.0737 8.92893L11.0026 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxBlankCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loader4Fill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.364 5.63604L16.9497 7.05025C15.683 5.7835 13.933 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12H21C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C14.4853 3 16.7353 4.00736 18.364 5.63604Z\"></path>\r\n </svg>\r\n }\r\n }\r\n</span>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChildren,\r\n AfterContentInit,\r\n ElementRef,\r\n forwardRef,\r\n input,\r\n viewChild,\r\n effect,\r\n OnInit,\r\n inject,\r\n DestroyRef,\r\n ChangeDetectorRef,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { IconComponent } from '../../icon/icon.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\nimport { SelectOptionComponent } from '../select-option/select-option.component'\r\nimport { Icons, InputValue } from '../../../models'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [IconComponent, InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-select',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './select.component.html',\r\n styleUrl: './select.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SelectComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n readonly Icons = Icons\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n transform = input<(value: unknown) => string>((value: unknown) => String(value))\r\n\r\n selectElement = viewChild<ElementRef<HTMLElement>>('selectElement')\r\n selectOptionChildren = contentChildren<SelectOptionComponent>(SelectOptionComponent)\r\n\r\n innerControl = signal(new FormControl<unknown>(''))\r\n isMenuOpen = signal(false)\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.selectOptionChildren()) this.#detectSelectOptionChildren()\r\n })\r\n\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => this.onChange(value))\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.#detectSelectOptionChildren()\r\n\r\n this.selectOptionChildren().map((selectOption: SelectOptionComponent) => {\r\n selectOption.changeFocus.subscribe((focus) => {\r\n // console.log('focus', focus)\r\n if (focus) this.onFocus()\r\n else this.onBlur()\r\n })\r\n })\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n // const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n // console.log('blur')\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n\r\n arrowIconClicked() {\r\n // FIXME: This is a workaround to prevent the menu from closing when the arrow icon is clicked.\r\n // console.log('clicked - init', this.isMenuOpen())\r\n if (this.isMenuOpen()) this.onTouched()\r\n this.isMenuOpen.update((open) => !open)\r\n // console.log('clicked - end', this.isMenuOpen())\r\n }\r\n\r\n #transformValue(value: unknown): string | null {\r\n let valueTransformed: string | null\r\n\r\n if (value === null || value === undefined) valueTransformed = null\r\n else valueTransformed = this.transform()(value)\r\n\r\n return valueTransformed\r\n }\r\n\r\n #detectSelectOptionChildren() {\r\n const selectOptionChildren = this.selectOptionChildren()\r\n const selectElement: HTMLElement | undefined = this.selectElement()?.nativeElement\r\n selectElement?.style.setProperty('--gld-option-items', String(selectOptionChildren.length))\r\n const clientHeight: number | undefined =\r\n selectElement?.querySelector('gld-select-option')?.clientHeight\r\n if (clientHeight) selectElement?.style.setProperty('--gld-option-height', `${clientHeight}px`)\r\n\r\n selectOptionChildren.map((selectOption) => {\r\n selectOption.selected.subscribe((value: InputValue) => {\r\n if (value) {\r\n const buttons = Array.from(\r\n selectElement?.querySelectorAll('gld-select-option button') ?? [],\r\n ) as HTMLButtonElement[]\r\n buttons.map((button) => button.blur())\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n this.onChange(value)\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n","\r\n@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section #selectElement class=\"select\">\r\n\t<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n\t\t<!-- Label -->\r\n\t\t@if (label()) {\r\n\t\t\t<label [for]=\"name()\">\r\n\t\t\t\t{{ label() }}\r\n\t\t\t</label>\r\n\t\t}\r\n\t\t<!-- Input -->\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\tid=\"input-select-{{ name() }}\"\r\n\t\t\t[tabindex]=\"disabled ? '-1' : '0'\"\r\n\t\t\t[name]=\"name()\"\r\n\t\t\t[placeholder]=\"placeholder()\"\r\n\t\t\t[formControl]=\"innerControl()\"\r\n\t\t\t(focus)=\"onFocus()\"\r\n\t\t\t(blur)=\"onBlur()\"\r\n\t\t\t(keyup.escape)=\"onBlur()\" />\r\n\r\n\t\t<!-- Suffix -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n\r\n\t\t<!-- Menu -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"menuTemplate\" />\r\n\t</section>\r\n\t<!-- Errors -->\r\n\t@if (errors) {\r\n\t\t<ng-content select=\"gld-input-error\">\r\n\t\t\t<gld-input-error [errors]=\"control().errors\" />\r\n\t\t</ng-content>\r\n\t} @else {\r\n\t\t<!-- Hint -->\r\n\t\t<ng-content select=\"gld-input-hint\" />\r\n\t}\r\n</section>\r\n\r\n<!-- Menu Template -->\r\n<ng-template #menuTemplate>\r\n\t<section class=\"select-menu\" [class.select-menu--opened]=\"isMenuOpen()\">\r\n\t\t<ng-content select=\"gld-select-option\" />\r\n\t</section>\r\n</ng-template>\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t@if (control().pending) {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon input-icon--animated\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.loader4Fill\"\r\n\t\t\t[disabled]=\"disabled\" />\r\n\t} @else {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon\"\r\n\t\t\t[class.input-icon--rotated]=\"isMenuOpen()\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.arrowDownSLine\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t\t(clicked)=\"arrowIconClicked()\" />\r\n\t}\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t<gld-icon\r\n\t\tsize=\"small\"\r\n\t\tclass=\"input-icon\"\r\n\t\t[class.input-icon--error]=\"errors\"\r\n\t\t[icon]=\"Icons.arrowDownSLine\" />\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n ReactiveFormsModule,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models/controls'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-textarea',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './textarea.component.html',\r\n styleUrl: './textarea.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TextareaComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n innerControl = signal(new FormControl<unknown>(''))\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <textarea\r\n id=\"input-textarea-{{ name() }}\"\r\n [name]=\"name()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\"></textarea>\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix emplate -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3>\r\n<section>errors: {{ errors }}</section>\r\n<section>invalid: {{ control().invalid }}</section>\r\n<section>dirty: {{ control().dirty }}</section>\r\n<section>touched: {{ control().touched }}</section>\r\n<section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\n// Regex to validate the ISO date format (YYYY-MM-DD)\nconst ISO_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/\n\nexport function isDateValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n if (!ISO_DATE_REGEX.test(value))\n return { isDate: 'This field must be a valid date in the format YYYY-MM-DD!' }\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const date = new Date(year, month - 1, day)\n\n // Verify if the date is logical and corresponds to the format\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day)\n return null\n return { isDate: 'This field must be a valid date!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isDocumentValidator({ documentType }: { documentType: DocumentType }): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns: Patterns = {\n\t\t\tDNI: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{7,8}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener entre 7 y 8 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCT: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCL: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[documentType]\n\n\t\tif (!value) return null\n\n\t\tconst pattern = patternsToValid.find((pattern) => !pattern.regex.test(value))\n\n\t\treturn pattern ? { isDocument: pattern.message } : null\n\t}\n}\n\ntype DocumentType = 'DNI' | 'CT' | 'CL'\n\ninterface ValidationPattern {\n\tregex: RegExp\n\tmessage: string\n}\n\ninterface Patterns {\n\tDNI: ValidationPattern[]\n\tCT: ValidationPattern[]\n\tCL: ValidationPattern[]\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar emails\nconst EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/\n\nexport function isEmailValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\n\t\tif (EMAIL_REGEX.test(value)) return null\n\t\t return { email: 'This field must be a valid email!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isFormSelectItemValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\t\tif (typeof value === 'string')\n\t\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\n\t\tif (typeof value === 'object') {\n\t\t\tif ('value' in value && 'label' in value) return null\n\t\t}\n\n\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isLicensePlateValidator({\n\tvehicleType,\n}: {\n\tvehicleType: 'AUTO' | 'MOTO' | 'BOTH'\n}): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns = {\n\t\t\tAUTO: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t],\n\t\t\tMOTO: [\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t\tBOTH: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[vehicleType]\n\n\t\tif (!value) return null\n\n\t\tconst isValid = patternsToValid.some((pattern) => pattern.test(value))\n\n\t\treturn isValid ? null : { isLicensePlate: 'El campo debe ser una patente valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar números naturales (0, 1, 2, 3, ...)\nconst NATURAL_NUMBER_REGEX = /^[0-9]+$/\n\nexport function isNaturalNumberValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value\n\n if (!value) return null\n\n if (NATURAL_NUMBER_REGEX.test(value)) return null\n return { naturalNumber: 'This field must contain only valid numbers!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\nexport function minimumAgeValidator({ minAge }: { minAge: number }): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const birthDay = new Date(year, month - 1, day)\n\n // Get the current date and calculate the difference in years\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const age = today.getFullYear() - birthDay.getFullYear()\n const isMonthPast = today.getMonth() > birthDay.getMonth()\n const isSameMonthDayPast =\n today.getMonth() === birthDay.getMonth() && today.getDate() >= birthDay.getDate()\n\n const isValidAge = age > minAge || (age === minAge && (isMonthPast || isSameMonthDayPast))\n\n // Retornar el error si la edad es menor al mínimo\n return isValidAge ? null : { minimumAge: { requiredAge: minAge, actualAge: age } }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustMatchValidator({\n\tcontrolName,\n\tmustMatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustMatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustMatchControl = formGroup.get(mustMatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustMatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value !== mustMatchControl.value) {\n\t\t\tmustMatchControl.setErrors({ ...mustMatchControl.errors, mustMatch: errorMessage ?? true })\n\t\t\treturn { mustMatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustUnmatchValidator({\n\tcontrolName,\n\tmustUnmatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustUnmatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustUnmatchControl = formGroup.get(mustUnmatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustUnmatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value === mustUnmatchControl.value) {\n\t\t\tmustUnmatchControl.setErrors({\n\t\t\t\t...mustUnmatchControl.errors,\n\t\t\t\tmustUnmatch: errorMessage ?? true,\n\t\t\t})\n\t\t\treturn { mustUnmatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","/*\n * Public API Surface of iamgld-ui\n */\n\nexport * from './lib/components'\nexport * from './lib/validators'\nexport * from './lib/utils'\nexport * from './lib/directives'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["components"],"mappings":"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"}
@@ -4,7 +4,7 @@ export declare class IconComponent {
4
4
  readonly IconsSpace: typeof IconsSpace;
5
5
  readonly Icons: typeof Icons;
6
6
  icon: import("@angular/core").InputSignal<Icons>;
7
- size: import("@angular/core").InputSignal<"small" | "tiny" | "normal" | "medium" | "large">;
7
+ size: import("@angular/core").InputSignal<"tiny" | "small" | "normal" | "medium" | "large">;
8
8
  space: import("@angular/core").InputSignal<"left" | "right" | "none">;
9
9
  moveTopToBottom: import("@angular/core").InputSignalWithTransform<number, string | number>;
10
10
  moveLeftToRight: import("@angular/core").InputSignalWithTransform<number, string | number>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamgld/ui",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },