@lucca-front/ng 21.1.0-rc.0 → 21.1.0-split.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/lucca-front-ng-a11y.mjs +6 -6
- package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-api.mjs +3 -3
- package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-box.mjs +1 -1
- package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-breadcrumbs.mjs +5 -5
- package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-bubble-icon.mjs +51 -0
- package/fesm2022/lucca-front-ng-bubble-icon.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-bubble-illustration.mjs +135 -0
- package/fesm2022/lucca-front-ng-bubble-illustration.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-button.mjs +1 -98
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +7 -7
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-chip.mjs +6 -6
- package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-clear.mjs +6 -6
- package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-color.mjs +28 -0
- package/fesm2022/lucca-front-ng-color.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-container.mjs +2 -2
- package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +12 -12
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +67 -48
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +15 -75
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-data-table.mjs +8 -8
- package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date.mjs +63 -64
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +41 -45
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-department.mjs +7 -7
- package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +31 -8
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-empty-state.mjs +52 -10
- package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-establishment.mjs +10 -10
- package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs +40 -34
- package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills.mjs +14 -13
- package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +9 -63
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form.mjs +2 -2
- package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-formly.mjs +4 -4
- package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +8 -9
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +48 -48
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +119 -98
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +2 -2
- package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-icon.mjs +1 -27
- package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-index-table.mjs +3 -3
- package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-input.mjs +7 -7
- package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-link.mjs +6 -6
- package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listbox.mjs +1 -1
- package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listing.mjs +1 -1
- package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-main-layout.mjs +2 -2
- package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-mobile-push.mjs +6 -6
- package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +29 -29
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-option.mjs +26 -24
- package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-pagination.mjs +5 -5
- package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-plg-push.mjs +5 -5
- package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +13 -13
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-read-more.mjs +23 -21
- package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-resource-card.mjs +2 -2
- package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +18 -27
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-skeleton.mjs +2 -2
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-sortable-list.mjs +1 -1
- package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tag.mjs +1 -1
- package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-time.mjs +13 -13
- package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-toast.mjs +5 -5
- package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tooltip.mjs +8 -6
- package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tree-select.mjs +1 -1
- package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user-popover.mjs +6 -6
- package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +11 -11
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs +2 -2
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -1
- package/package.json +17 -3
- package/schematics/lib/local-deps/package-lock.json +2 -0
- package/schematics/lib/local-deps/package.json +1 -2
- package/types/lucca-front-ng-a11y.d.ts +3 -3
- package/types/lucca-front-ng-breadcrumbs.d.ts +9 -9
- package/types/lucca-front-ng-bubble-icon.d.ts +20 -0
- package/types/lucca-front-ng-bubble-illustration.d.ts +24 -0
- package/types/lucca-front-ng-button.d.ts +1 -40
- package/types/lucca-front-ng-callout.d.ts +2 -2
- package/types/lucca-front-ng-chip.d.ts +2 -2
- package/types/lucca-front-ng-clear.d.ts +2 -2
- package/types/lucca-front-ng-color.d.ts +12 -0
- package/types/lucca-front-ng-core-select.d.ts +21 -17
- package/types/lucca-front-ng-core.d.ts +25 -19
- package/types/lucca-front-ng-data-table.d.ts +2 -2
- package/types/lucca-front-ng-date.d.ts +5 -5
- package/types/lucca-front-ng-date2.d.ts +7 -7
- package/types/lucca-front-ng-department.d.ts +2 -2
- package/types/lucca-front-ng-dialog.d.ts +12 -5
- package/types/lucca-front-ng-empty-state.d.ts +6 -4
- package/types/lucca-front-ng-establishment.d.ts +2 -2
- package/types/lucca-front-ng-file-upload.d.ts +18 -8
- package/types/lucca-front-ng-filter-pills.d.ts +6 -5
- package/types/lucca-front-ng-form-field.d.ts +5 -26
- package/types/lucca-front-ng-forms-phone-number-input.d.ts +0 -1
- package/types/lucca-front-ng-forms-rich-text-input.d.ts +14 -16
- package/types/lucca-front-ng-forms.d.ts +40 -23
- package/types/lucca-front-ng-icon.d.ts +1 -17
- package/types/lucca-front-ng-input.d.ts +2 -2
- package/types/lucca-front-ng-link.d.ts +2 -2
- package/types/lucca-front-ng-mobile-push.d.ts +2 -2
- package/types/lucca-front-ng-multi-select.d.ts +26 -24
- package/types/lucca-front-ng-option.d.ts +8 -8
- package/types/lucca-front-ng-pagination.d.ts +2 -2
- package/types/lucca-front-ng-plg-push.d.ts +2 -2
- package/types/lucca-front-ng-popover2.d.ts +4 -4
- package/types/lucca-front-ng-read-more.d.ts +9 -9
- package/types/lucca-front-ng-simple-select.d.ts +5 -4
- package/types/lucca-front-ng-time.d.ts +6 -6
- package/types/lucca-front-ng-toast.d.ts +2 -2
- package/types/lucca-front-ng-tooltip.d.ts +5 -3
- package/types/lucca-front-ng-user-popover.d.ts +6 -7
- package/types/lucca-front-ng-user.d.ts +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/translations.ts","../../../packages/ng/form-field/form-field.translate.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input-framed/input-framed.token.ts","../../../packages/ng/form-field/input-framed/input-framed.component.ts","../../../packages/ng/form-field/input-framed/input-framed.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/value-presentation/presentation-display.directive.ts","../../../packages/ng/form-field/value-presentation/presentation-display-default.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","export const Translations = {\n\tpt: {\n\t\tcounter: '{{current}} {{max}} A sua publicação tem um comprimento de caracteres, sendo permitido um máximo de caracteres.',\n\t},\n\tes: {\n\t\tcounter: 'Su publicación tiene {{current}} caracteres. Se permite un máximo de {{max}} caracteres.',\n\t},\n\t'nl-BE': {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tnl: {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tit: {\n\t\tcounter: 'La tua pubblicazione è lunga {{current}} caratteri. È consentito un numero di massimo {{max}} caratteri.',\n\t},\n\tde: {\n\t\tcounter: 'Ihr Beitrag ist {{current}} Zeichen lang. Maximal sind {{max}} Zeichen erlaubt.',\n\t},\n\tfr: {\n\t\tcounter: 'Votre publication fait {{current}} caractères de long. {{max}} caractères maximum sont autorisés.',\n\t},\n\ten: {\n\t\tcounter: 'Your message is {{current}} characters long. A maximum of {{max}} characters is allowed.',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FORM_FIELD_TRANSLATIONS = new InjectionToken('LuFormFieldTranslations', {\n\tfactory: () => luFormFieldTranslations,\n});\n\nexport interface LuFormFieldTranslations {\n\tcounter: string;\n}\n\nexport const luFormFieldTranslations: LuTranslation<LuFormFieldTranslations> = Translations;\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\tDoCheck,\n\teffect,\n\tforwardRef,\n\tinject,\n\tInjector,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, NgControl, ReactiveFormsModule, RequiredValidator, Validators } from '@angular/forms';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { getIntl, IntlParamsPipe, LuClass, PortalContent, PortalDirective, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { BehaviorSubject } from 'rxjs';\nimport { FormFieldSize } from './form-field-size';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\nimport { LU_FORM_FIELD_TRANSLATIONS } from './form-field.translate';\nimport { InputDirective } from './input.directive';\nimport { INPUT_FRAMED_INSTANCE } from './public-api';\n\nlet nextId = 0;\n\ntype FormFieldWidth = 20 | 30 | 40 | 50 | 60;\n\n@Component({\n\tselector: 'lu-form-field',\n\timports: [NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, IntlParamsPipe, PortalDirective],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrl: './form-field.component.scss',\n\tproviders: [\n\t\tLuClass,\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\thost: {\n\t\t'[class.inputFramed-header-field]': 'framed',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormFieldComponent implements OnDestroy, DoCheck {\n\treadonly intl = getIntl(LU_FORM_FIELD_TRANSLATIONS);\n\n\t#luClass = inject(LuClass);\n\t#injector = inject(Injector);\n\t#renderer = inject(Renderer2);\n\n\tframed = inject(INPUT_FRAMED_INSTANCE, { optional: true }) !== null;\n\n\treadonly formFieldChildren = contentChildren(FormFieldComponent, { descendants: true });\n\n\treadonly requiredValidators = contentChildren(RequiredValidator, { descendants: true });\n\treadonly ngControls = contentChildren(NgControl, { descendants: true });\n\n\treadonly ignoredRequiredValidators = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.requiredValidators())));\n\treadonly ignoredControls = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngControls())));\n\n\treadonly ownRequiredValidators = computed(() => this.requiredValidators().filter((c) => !this.ignoredRequiredValidators().has(c)));\n\treadonly ownControls = computed(() => this.ngControls().filter((c) => !this.ignoredControls().has(c)));\n\n\t#hasInputRequired = signal(false);\n\tforceInputRequired = signal(false);\n\treadonly isInputRequired = computed(() => this.forceInputRequired() || this.#hasInputRequired());\n\n\treadonly label = input.required<PortalContent>();\n\n\t/**\n\t * Hide field label, while keeping it in DOM for screen readers\n\t */\n\treadonly hiddenLabel = input(false, { transform: booleanAttribute });\n\n\trolePresentationLabel = model(false);\n\n\tlabelIsPresentation = computed(() => this.rolePresentationLabel() || this.presentation());\n\n\treadonly inline = input(false, { transform: booleanAttribute });\n\n\treadonly statusControl = input<AbstractControl | null>(null);\n\n\treadonly tooltip = input<string | SafeHtml | null>(null);\n\n\treadonly tag = input<string | null>(null);\n\n\treadonly AI = input(false, { transform: booleanAttribute });\n\treadonly iconAItooltip = input<string | null>(null);\n\treadonly iconAIalt = input<string | null>(null);\n\n\treadonly width = input<FormFieldWidth, FormFieldWidth | `${FormFieldWidth}`>(null, {\n\t\ttransform: numberAttribute as (value: FormFieldWidth | `${FormFieldWidth}`) => FormFieldWidth,\n\t});\n\n\t#invalidStatus = signal(false);\n\tinvalidStatus = this.#invalidStatus.asReadonly();\n\n\tinvalid = input<boolean | null, boolean>(null, { transform: booleanAttribute });\n\n\treadonly inlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * Inline message for when the control is in error state\n\t */\n\treadonly errorInlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\treadonly inlineMessageState = input<InlineMessageState | null>(null);\n\n\treadonly size = input<FormFieldSize | null>(null);\n\n\t/**\n\t * Extra aria-describedby attribute\n\t */\n\treadonly extraDescribedBy = input<string>('');\n\n\treadonly layout = model<'default' | 'checkable' | 'fieldset'>('default');\n\n\t#inputs: InputDirective[] = [];\n\n\t/**\n\t * Max amount of characters allowed, defaults to 0, which means hidden, no maximum\n\t */\n\treadonly counter = input<number>(0);\n\n\treadonly presentation = input(false, { transform: booleanAttribute });\n\n\treadonly presentationDisplayTpl = signal<TemplateRef<unknown> | null>(null);\n\n\tget contentLength(): number {\n\t\treturn (this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value?.length || 0;\n\t}\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\t/* We have to put this in the next cycle to make sure it'll be applied properly\n\t\t * and that it won't trigger a change detection error\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tthis.prepareInput();\n\t\t});\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\tid = signal<string>('');\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.isInputRequired, this.invalidStatus, this.extraDescribedBy], () => {\n\t\t\tthis.updateAria();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.#luClass.setState({\n\t\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t\t'mod-checkable': this.layout() === 'checkable',\n\t\t\t\tformPresentation: this.presentation(),\n\t\t\t\t'form-field': this.layout() !== 'fieldset' && !this.presentation(),\n\t\t\t\t[`mod-width${this.width()}`]: !!this.width(),\n\t\t\t});\n\t\t});\n\t}\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tthis.#inputs.forEach((input) => {\n\t\t\tif (!input.standalone) {\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t\t}\n\t\t});\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\tprepareInput(): void {\n\t\tif (this.#inputs.length === 0) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.inputs\n\t\t\t.filter((input) => !input.standalone)\n\t\t\t.forEach((input) => {\n\t\t\t\tconst inputId = `${input.host.nativeElement.tagName.toLowerCase()}-${++nextId}`;\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'id', inputId);\n\t\t\t});\n\t\t// We're using the id from the first input available\n\t\tthis.id.set(this.#inputs[0].host.nativeElement.id);\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tthis.#inputs.forEach((input) => {\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-invalid', this.invalidStatus()?.toString());\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-required', this.isInputRequired()?.toString());\n\t\t\tif (!input.standalone) {\n\t\t\t\tlet ariaDescribedBy = `${input.host.nativeElement.id}-message`;\n\t\t\t\tif (this.extraDescribedBy()) {\n\t\t\t\t\tariaDescribedBy += ` ${this.extraDescribedBy()}`;\n\t\t\t\t}\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-describedby', ariaDescribedBy);\n\t\t\t}\n\t\t});\n\t\tif (this.id() && !this.#ariaLabelledBy.includes(`${this.id()}-label`)) {\n\t\t\tthis.addLabelledBy(`${this.id()}-label`);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tthis.#hasInputRequired.set(this.#isInputRequired());\n\t\t\t\tthis.#invalidStatus.set(this.#hasInvalidStatus());\n\t\t\t},\n\t\t\t{\n\t\t\t\tinjector: this.#injector,\n\t\t\t},\n\t\t);\n\t}\n\n\t#isInputRequired(): boolean {\n\t\tconst hasRequiredFormControl = this.ownControls().some((c) => c.control?.hasValidator(Validators.required));\n\t\tconst hasRequiredNgModel = this.ownRequiredValidators().some((c) => booleanAttribute(c.required));\n\t\treturn hasRequiredNgModel || hasRequiredFormControl;\n\t}\n\n\t#hasInvalidStatus(): boolean {\n\t\tconst isInvalidOverride = this.invalid() !== undefined && this.invalid() !== null;\n\t\tif (isInvalidOverride) {\n\t\t\treturn this.invalid();\n\t\t}\n\t\tconst statusControlOverride = this.statusControl();\n\t\tif (statusControlOverride) {\n\t\t\treturn statusControlOverride.invalid && this.ownControls().some((c) => c?.touched);\n\t\t}\n\t\treturn this.ownControls().some((c) => c.invalid && c.touched);\n\t}\n}\n","@if (presentation()) {\n\t<dl class=\"formPresentation-description\">\n\t\t<ng-container *ngTemplateOutlet=\"inputLayoutTpl\" />\n\t</dl>\n} @else {\n\t<ng-container *ngTemplateOutlet=\"inputLayoutTpl\" />\n}\n\n<ng-template #inputLayoutTpl>\n\t@if (layout() === \"fieldset\") {\n\t\t<fieldset class=\"form-fieldset\" [class.mod-inline]=\"inline()\" [class.mod-S]=\"size() === 'S'\">\n\t\t\t<legend class=\"formLabel\" [class.pr-u-mask]=\"hiddenLabel()\" attr.aria-hidden=\"{{ hiddenLabel() }}\">\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t\t@if (isInputRequired()) {\n\t\t\t\t\t<sup class=\"formLabel-required\" aria-hidden=\"true\">*</sup>\n\t\t\t\t}\n\t\t\t\t@if (tooltip()) {\n\t\t\t\t\t<lu-icon\n\t\t\t\t\t\tclass=\"formLabel-info\"\n\t\t\t\t\t\ticon=\"signHelp\"\n\t\t\t\t\t\t[alt]=\"'?'\"\n\t\t\t\t\t\t[luTooltip]=\"tooltip()\"\n\t\t\t\t\t\t[color]=\"invalidStatus() ? 'error' : 'inherit'\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\t@if (tag()) {\n\t\t\t\t\t<span class=\"tag formLabel-tag\">{{ tag() }}</span>\n\t\t\t\t}\n\t\t\t</legend>\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t\t\t<lu-inline-message\n\t\t\t\t\tid=\"{{ id() }}-message\"\n\t\t\t\t\t[label]=\"invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()\"\n\t\t\t\t\t[state]=\"invalidStatus() ? 'error' : inlineMessageState()\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</fieldset>\n\t} @else {\n\t\t@if (presentation()) {\n\t\t\t<dt class=\"formPresentation-description-term\">\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t\t@if (tooltip()) {\n\t\t\t\t\t<lu-icon class=\"formLabel-info\" icon=\"signHelp\" [alt]=\"'?'\" [luTooltip]=\"tooltip()\" />\n\t\t\t\t}\n\t\t\t\t@if (tag()) {\n\t\t\t\t\t<span class=\"formLabel-tag tag\">{{ tag() }}</span>\n\t\t\t\t}\n\t\t\t</dt>\n\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t} @else {\n\t\t\t<label\n\t\t\t\t[class.formLabel]=\"!presentation()\"\n\t\t\t\t[class.inputFramed-header-label]=\"framed\"\n\t\t\t\t[class.is-error]=\"invalidStatus()\"\n\t\t\t\t[class.mod-counter]=\"counter() > 0\"\n\t\t\t\tid=\"{{ id() }}-label\"\n\t\t\t\tfor=\"{{ id() }}\"\n\t\t\t\t[class.pr-u-mask]=\"hiddenLabel()\"\n\t\t\t\tattr.role=\"{{ labelIsPresentation() ? 'presentation' : null }}\"\n\t\t\t>\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t\t@if (!presentation() && isInputRequired()) {\n\t\t\t\t\t<sup class=\"formLabel-required\" aria-hidden=\"true\">*</sup>\n\t\t\t\t}\n\t\t\t\t@if (tooltip()) {\n\t\t\t\t\t<lu-icon\n\t\t\t\t\t\tclass=\"formLabel-info\"\n\t\t\t\t\t\ticon=\"signHelp\"\n\t\t\t\t\t\t[alt]=\"'?'\"\n\t\t\t\t\t\t[luTooltip]=\"tooltip()\"\n\t\t\t\t\t\t[color]=\"invalidStatus() ? 'error' : 'inherit'\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\t@if (tag()) {\n\t\t\t\t\t<span class=\"formLabel-tag tag\">{{ tag() }}</span>\n\t\t\t\t}\n\t\t\t\t@if (!presentation() && counter() > 0) {\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"formLabel-counter\"\n\t\t\t\t\t\t[class.pr-u-colorTextCritical]=\"contentLength > counter()\"\n\t\t\t\t\t\tid=\"{{ id() }}-counter\"\n\t\t\t\t\t\taria-live=\"polite\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span aria-hidden=\"true\">{{ contentLength }}/{{ counter() }}</span>\n\t\t\t\t\t\t<span class=\"pr-u-mask\">{{ intl.counter | intlParams: { current: contentLength, max: counter() } }}</span>\n\t\t\t\t\t</span>\n\t\t\t\t}\n\t\t\t</label>\n\t\t\t@if (AI()) {\n\t\t\t\t<div class=\"form-field-contentOptional\">\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t\t\t<lu-icon\n\t\t\t\t\t\tclass=\"pr-u-focusVisible pr-u-borderRadiusSmall\"\n\t\t\t\t\t\t[luTooltip]=\"iconAItooltip()\"\n\t\t\t\t\t\tsize=\"S\"\n\t\t\t\t\t\tAI\n\t\t\t\t\t\ticon=\"weatherStars\"\n\t\t\t\t\t\t[alt]=\"iconAIalt()\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t} @else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t}\n\t\t\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t\t\t<lu-inline-message\n\t\t\t\t\tid=\"{{ id() }}-message\"\n\t\t\t\t\t[label]=\"invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()\"\n\t\t\t\t\t[state]=\"invalidStatus() ? 'error' : inlineMessageState()\"\n\t\t\t\t/>\n\t\t\t}\n\t\t}\n\t}\n</ng-template>\n\n<ng-template #projectionTpl>\n\t@if (presentation() && presentationDisplayTpl()) {\n\t\t<dd class=\"formPresentation-description-definition\">\n\t\t\t<ng-container *ngTemplateOutlet=\"presentationDisplayTpl()\" />\n\t\t</dd>\n\t} @else {\n\t\t<ng-content />\n\t}\n</ng-template>\n","import { InjectionToken } from '@angular/core';\nimport { InputFramedComponent } from './input-framed.component';\n\nexport const INPUT_FRAMED_INSTANCE = new InjectionToken<InputFramedComponent>('INPUT_FRAMED_INSTANCE');\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { INPUT_FRAMED_INSTANCE } from './input-framed.token';\n\n@Component({\n\tselector: 'lu-input-framed',\n\timports: [PortalDirective],\n\ttemplateUrl: './input-framed.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: INPUT_FRAMED_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => InputFramedComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputFramedComponent {\n\treadonly framedPortal = input<PortalContent | null>(null);\n\treadonly center = input(false, { transform: booleanAttribute });\n\treadonly size = input<'L' | null>(null);\n}\n","<div class=\"inputFramed\" [class.mod-center]=\"center()\" [class.mod-L]=\"size() === 'L'\">\n\t<div class=\"inputFramed-header\">\n\t\t<div class=\"form-field inputFramed-header-field\">\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<div class=\"inputFramed-header-illustration\"><ng-content select=\"[illustration]\" /></div>\n\t\t<div class=\"inputFramed-header-info\"><ng-content select=\"[info]\" /></div>\n\t</div>\n\t@if (framedPortal()) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal()\" /></div>\n\t}\n</div>\n","import { booleanAttribute, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\thost: {\n\t\t// Used to autofocus in dialog boxes, do not change except if you know what you're doing\n\t\tclass: 'luNativeInput',\n\t},\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\t/**\n\t * Prevents message and label ids from being propagated, useful if the input holds its own message and label (like for radios)\n\t */\n\t@Input({ transform: booleanAttribute, alias: 'luInputStandalone' })\n\tstandalone = false;\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.addInput(this);\n\t\t}\n\t}\n}\n","import { Directive, inject, OnInit, signal, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { FormFieldComponent } from '../form-field.component';\n\n@Directive({\n\tselector: '[luPresentationDisplay]',\n})\nexport class PresentationDisplayDirective implements OnInit {\n\t#formFieldRef = inject(FormFieldComponent, { optional: true });\n\n\tpublic readonly templateRef: TemplateRef<unknown> = inject(TemplateRef);\n\n\t#vcr = inject(ViewContainerRef);\n\n\tdefaultDisplay = signal(false);\n\n\tngOnInit() {\n\t\tif (this.#formFieldRef) {\n\t\t\t// If it's default display, we do not override the existing value, this way consumers can override easily without any kind of race condition.\n\t\t\tif (!this.#formFieldRef.presentationDisplayTpl() || !this.defaultDisplay()) {\n\t\t\t\tthis.#formFieldRef.presentationDisplayTpl.set(this.templateRef);\n\t\t\t}\n\t\t}\n\t\tthis.#vcr.clear();\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: PresentationDisplayDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { PresentationDisplayDirective } from './presentation-display.directive';\n\n@Directive({\n\tselector: '[luPresentationDisplayDefault]',\n\thostDirectives: [PresentationDisplayDirective],\n})\nexport class ɵPresentationDisplayDefaultDirective {\n\t#displayDirectiveRef = inject(PresentationDisplayDirective);\n\n\tconstructor() {\n\t\tthis.#displayDirectiveRef.defaultDisplay.set(true);\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: ɵPresentationDisplayDefaultDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps","i1.PresentationDisplayDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/translations.ts","../../../packages/ng/form-field/form-field.translate.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input-framed/input-framed.token.ts","../../../packages/ng/form-field/input-framed/input-framed.component.ts","../../../packages/ng/form-field/input-framed/input-framed.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","export const Translations = {\n\tpt: {\n\t\tcounter: '{{current}} {{max}} A sua publicação tem um comprimento de caracteres, sendo permitido um máximo de caracteres.',\n\t},\n\tes: {\n\t\tcounter: 'Su publicación tiene {{current}} caracteres. Se permite un máximo de {{max}} caracteres.',\n\t},\n\t'nl-BE': {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tnl: {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tit: {\n\t\tcounter: 'La tua pubblicazione è lunga {{current}} caratteri. È consentito un numero di massimo {{max}} caratteri.',\n\t},\n\tde: {\n\t\tcounter: 'Ihr Beitrag ist {{current}} Zeichen lang. Maximal sind {{max}} Zeichen erlaubt.',\n\t},\n\tfr: {\n\t\tcounter: 'Votre publication fait {{current}} caractères de long. {{max}} caractères maximum sont autorisés.',\n\t},\n\ten: {\n\t\tcounter: 'Your message is {{current}} characters long. A maximum of {{max}} characters is allowed.',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FORM_FIELD_TRANSLATIONS = new InjectionToken('LuFormFieldTranslations', {\n\tfactory: () => luFormFieldTranslations,\n});\n\nexport interface LuFormFieldTranslations {\n\tcounter: string;\n}\n\nexport const luFormFieldTranslations: LuTranslation<LuFormFieldTranslations> = Translations;\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\tDoCheck,\n\teffect,\n\tforwardRef,\n\tinject,\n\tInjector,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, NgControl, ReactiveFormsModule, RequiredValidator, Validators } from '@angular/forms';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { intlInputOptions, IntlParamsPipe, LuClass, PortalContent, PortalDirective, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { BehaviorSubject } from 'rxjs';\nimport { FormFieldSize } from './form-field-size';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\nimport { LU_FORM_FIELD_TRANSLATIONS } from './form-field.translate';\nimport { InputDirective } from './input.directive';\nimport { INPUT_FRAMED_INSTANCE } from './public-api';\n\nlet nextId = 0;\n\ntype FormFieldWidth = 20 | 30 | 40 | 50 | 60;\n\n@Component({\n\tselector: 'lu-form-field',\n\timports: [NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, IntlParamsPipe, PortalDirective],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrl: './form-field.component.scss',\n\tproviders: [\n\t\tLuClass,\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\thost: {\n\t\t'[class.inputFramed-header-field]': 'framed',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormFieldComponent implements OnDestroy, DoCheck {\n\treadonly intl = input(...intlInputOptions(LU_FORM_FIELD_TRANSLATIONS));\n\n\t#luClass = inject(LuClass);\n\t#injector = inject(Injector);\n\t#renderer = inject(Renderer2);\n\n\tframed = inject(INPUT_FRAMED_INSTANCE, { optional: true }) !== null;\n\n\treadonly formFieldChildren = contentChildren(FormFieldComponent, { descendants: true });\n\n\treadonly requiredValidators = contentChildren(RequiredValidator, { descendants: true });\n\treadonly ngControls = contentChildren(NgControl, { descendants: true });\n\n\treadonly ignoredRequiredValidators = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.requiredValidators())));\n\treadonly ignoredControls = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngControls())));\n\n\treadonly ownRequiredValidators = computed(() => this.requiredValidators().filter((c) => !this.ignoredRequiredValidators().has(c)));\n\treadonly ownControls = computed(() => this.ngControls().filter((c) => !this.ignoredControls().has(c)));\n\n\t#hasInputRequired = signal(false);\n\tforceInputRequired = signal(false);\n\treadonly isInputRequired = computed(() => this.forceInputRequired() || this.#hasInputRequired());\n\n\treadonly label = input.required<PortalContent>();\n\n\t/**\n\t * Hide field label, while keeping it in DOM for screen readers\n\t */\n\treadonly hiddenLabel = input(false, { transform: booleanAttribute });\n\n\trolePresentationLabel = model(false);\n\n\treadonly inline = input(false, { transform: booleanAttribute });\n\n\treadonly statusControl = input<AbstractControl | null>(null);\n\n\treadonly tooltip = input<string | SafeHtml | null>(null);\n\n\treadonly tag = input<string | null>(null);\n\n\treadonly AI = input(false, { transform: booleanAttribute });\n\treadonly iconAItooltip = input<string | null>(null);\n\treadonly iconAIalt = input<string | null>(null);\n\n\treadonly width = input<FormFieldWidth, FormFieldWidth | `${FormFieldWidth}`>(null, {\n\t\ttransform: numberAttribute as (value: FormFieldWidth | `${FormFieldWidth}`) => FormFieldWidth,\n\t});\n\n\t#invalidStatus = signal(false);\n\tinvalidStatus = this.#invalidStatus.asReadonly();\n\n\tinvalid = input<boolean | null, boolean>(null, { transform: booleanAttribute });\n\n\treadonly inlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * Inline message for when the control is in error state\n\t */\n\treadonly errorInlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\treadonly inlineMessageState = input<InlineMessageState | null>(null);\n\n\treadonly size = input<FormFieldSize | null>(null);\n\n\t/**\n\t * Extra aria-describedby attribute\n\t */\n\treadonly extraDescribedBy = input<string>('');\n\n\tlayout = model<'default' | 'checkable' | 'fieldset'>('default');\n\n\t#inputs: InputDirective[] = [];\n\n\t/**\n\t * Max amount of characters allowed, defaults to 0, which means hidden, no maximum\n\t */\n\treadonly counter = input<number>(0);\n\n\tget contentLength(): number {\n\t\treturn (this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value?.length || 0;\n\t}\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\t/* We have to put this in the next cycle to make sure it'll be applied properly\n\t\t * and that it won't trigger a change detection error\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tthis.prepareInput();\n\t\t});\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\tid = signal<string>('');\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.isInputRequired, this.invalidStatus, this.extraDescribedBy], () => {\n\t\t\tthis.updateAria();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.#luClass.setState({\n\t\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t\t'mod-checkable': this.layout() === 'checkable',\n\t\t\t\t'form-field': this.layout() !== 'fieldset',\n\t\t\t\t[`mod-width${this.width()}`]: !!this.width(),\n\t\t\t});\n\t\t});\n\t}\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tthis.#inputs.forEach((input) => {\n\t\t\tif (!input.standalone) {\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t\t}\n\t\t});\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\tprepareInput(): void {\n\t\tif (this.#inputs.length === 0) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.inputs\n\t\t\t.filter((input) => !input.standalone)\n\t\t\t.forEach((input) => {\n\t\t\t\tconst inputId = `${input.host.nativeElement.tagName.toLowerCase()}-${++nextId}`;\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'id', inputId);\n\t\t\t});\n\t\t// We're using the id from the first input available\n\t\tthis.id.set(this.#inputs[0].host.nativeElement.id);\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tthis.#inputs.forEach((input) => {\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-invalid', this.invalidStatus()?.toString());\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-required', this.isInputRequired()?.toString());\n\t\t\tif (!input.standalone) {\n\t\t\t\tlet ariaDescribedBy = `${input.host.nativeElement.id}-message`;\n\t\t\t\tif (this.extraDescribedBy()) {\n\t\t\t\t\tariaDescribedBy += ` ${this.extraDescribedBy()}`;\n\t\t\t\t}\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-describedby', ariaDescribedBy);\n\t\t\t}\n\t\t});\n\t\tif (this.id() && !this.#ariaLabelledBy.includes(`${this.id()}-label`)) {\n\t\t\tthis.addLabelledBy(`${this.id()}-label`);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tthis.#hasInputRequired.set(this.#isInputRequired());\n\t\t\t\tthis.#invalidStatus.set(this.#hasInvalidStatus());\n\t\t\t},\n\t\t\t{\n\t\t\t\tinjector: this.#injector,\n\t\t\t},\n\t\t);\n\t}\n\n\t#isInputRequired(): boolean {\n\t\tconst hasRequiredFormControl = this.ownControls().some((c) => c.control?.hasValidator(Validators.required));\n\t\tconst hasRequiredNgModel = this.ownRequiredValidators().some((c) => booleanAttribute(c.required));\n\t\treturn hasRequiredNgModel || hasRequiredFormControl;\n\t}\n\n\t#hasInvalidStatus(): boolean {\n\t\tconst isInvalidOverride = this.invalid() !== undefined && this.invalid() !== null;\n\t\tif (isInvalidOverride) {\n\t\t\treturn this.invalid();\n\t\t}\n\t\tconst statusControlOverride = this.statusControl();\n\t\tif (statusControlOverride) {\n\t\t\treturn statusControlOverride.invalid && this.ownControls().some((c) => c?.touched);\n\t\t}\n\t\treturn this.ownControls().some((c) => c.invalid && c.touched);\n\t}\n}\n","@if (layout() === \"fieldset\") {\n\t<fieldset class=\"form-fieldset\" [class.mod-inline]=\"inline()\" [class.mod-S]=\"size() === 'S'\">\n\t\t<legend class=\"formLabel\" [class.pr-u-mask]=\"hiddenLabel()\" attr.aria-hidden=\"{{ hiddenLabel() }}\">\n\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t@if (isInputRequired()) {\n\t\t\t\t<sup class=\"formLabel-required\" aria-hidden=\"true\">*</sup>\n\t\t\t}\n\t\t\t@if (tooltip()) {\n\t\t\t\t<lu-icon\n\t\t\t\t\tclass=\"formLabel-info\"\n\t\t\t\t\ticon=\"signHelp\"\n\t\t\t\t\t[alt]=\"'?'\"\n\t\t\t\t\t[luTooltip]=\"tooltip()\"\n\t\t\t\t\t[color]=\"invalidStatus() ? 'error' : 'inherit'\"\n\t\t\t\t/>\n\t\t\t}\n\t\t\t@if (tag()) {\n\t\t\t\t<span class=\"tag formLabel-tag\">{{ tag() }}</span>\n\t\t\t}\n\t\t</legend>\n\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t\t<lu-inline-message\n\t\t\t\tid=\"{{ id() }}-message\"\n\t\t\t\t[label]=\"invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()\"\n\t\t\t\t[state]=\"invalidStatus() ? 'error' : inlineMessageState()\"\n\t\t\t/>\n\t\t}\n\t</fieldset>\n} @else {\n\t<label\n\t\tclass=\"formLabel\"\n\t\t[class.inputFramed-header-label]=\"framed\"\n\t\t[class.is-error]=\"invalidStatus()\"\n\t\t[class.mod-counter]=\"counter() > 0\"\n\t\tid=\"{{ id() }}-label\"\n\t\tfor=\"{{ id() }}\"\n\t\t[class.pr-u-mask]=\"hiddenLabel()\"\n\t\tattr.role=\"{{ rolePresentationLabel() ? 'presentation' : null }}\"\n\t>\n\t\t<ng-container *luPortal=\"label()\" />\n\t\t@if (isInputRequired()) {\n\t\t\t<sup class=\"formLabel-required\" aria-hidden=\"true\">*</sup>\n\t\t}\n\t\t@if (tooltip()) {\n\t\t\t<lu-icon class=\"formLabel-info\" icon=\"signHelp\" [alt]=\"'?'\" [luTooltip]=\"tooltip()\" [color]=\"invalidStatus() ? 'error' : 'inherit'\" />\n\t\t}\n\t\t@if (tag()) {\n\t\t\t<span class=\"formLabel-tag tag\">{{ tag() }}</span>\n\t\t}\n\t\t@if (counter() > 0) {\n\t\t\t<span class=\"formLabel-counter\" [class.pr-u-colorTextCritical]=\"contentLength > counter()\" id=\"{{ id() }}-counter\" aria-live=\"polite\">\n\t\t\t\t<span aria-hidden=\"true\">{{ contentLength }}/{{ counter() }}</span>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl().counter | intlParams: { current: contentLength, max: counter() } }}</span>\n\t\t\t</span>\n\t\t}\n\t</label>\n\t@if (AI()) {\n\t\t<div class=\"form-field-contentOptional\">\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t<lu-icon\n\t\t\t\tclass=\"pr-u-focusVisible pr-u-borderRadiusSmall\"\n\t\t\t\t[luTooltip]=\"iconAItooltip()\"\n\t\t\t\tsize=\"S\"\n\t\t\t\tAI\n\t\t\t\ticon=\"weatherStars\"\n\t\t\t\t[alt]=\"iconAIalt()\"\n\t\t\t/>\n\t\t</div>\n\t} @else {\n\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t}\n\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t<lu-inline-message\n\t\t\tid=\"{{ id() }}-message\"\n\t\t\t[label]=\"invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()\"\n\t\t\t[state]=\"invalidStatus() ? 'error' : inlineMessageState()\"\n\t\t/>\n\t}\n}\n\n<ng-template #projectionTpl>\n\t<ng-content />\n</ng-template>\n","import { InjectionToken } from '@angular/core';\nimport { InputFramedComponent } from './input-framed.component';\n\nexport const INPUT_FRAMED_INSTANCE = new InjectionToken<InputFramedComponent>('INPUT_FRAMED_INSTANCE');\n","import { booleanAttribute, ChangeDetectionStrategy, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { INPUT_FRAMED_INSTANCE } from './input-framed.token';\n\n@Component({\n\tselector: 'lu-input-framed',\n\timports: [PortalDirective],\n\ttemplateUrl: './input-framed.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: INPUT_FRAMED_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => InputFramedComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputFramedComponent {\n\treadonly framedPortal = input<PortalContent | null>(null);\n\treadonly center = input(false, { transform: booleanAttribute });\n\treadonly size = input<'L' | null>(null);\n}\n","<div class=\"inputFramed\" [class.mod-center]=\"center()\" [class.mod-L]=\"size() === 'L'\">\n\t<div class=\"inputFramed-header\">\n\t\t<div class=\"form-field inputFramed-header-field\">\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<div class=\"inputFramed-header-illustration\"><ng-content select=\"[illustration]\" /></div>\n\t\t<div class=\"inputFramed-header-info\"><ng-content select=\"[info]\" /></div>\n\t</div>\n\t@if (framedPortal()) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal()\" /></div>\n\t}\n</div>\n","import { booleanAttribute, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\thost: {\n\t\t// Used to autofocus in dialog boxes, do not change except if you know what you're doing\n\t\tclass: 'luNativeInput',\n\t},\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\t/**\n\t * Prevents message and label ids from being propagated, useful if the input holds its own message and label (like for radios)\n\t */\n\t@Input({ transform: booleanAttribute, alias: 'luInputStandalone' })\n\tstandalone = false;\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.addInput(this);\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":";;;;;;;;;;;MAGa,mBAAmB,GAAG,IAAI,cAAc,CAAqB,qBAAqB;;ACHxF,MAAM,YAAY,GAAG;AAC3B,IAAA,EAAE,EAAE;AACH,QAAA,OAAO,EAAE,iHAAiH;AAC1H,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,OAAO,EAAE,0FAA0F;AACnG,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,OAAO,EAAE,+EAA+E;AACxF,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,OAAO,EAAE,+EAA+E;AACxF,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,OAAO,EAAE,0GAA0G;AACnH,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,OAAO,EAAE,iFAAiF;AAC1F,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,OAAO,EAAE,mGAAmG;AAC5G,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,OAAO,EAAE,0FAA0F;AACnG,KAAA;CACD;;MCrBY,0BAA0B,GAAG,IAAI,cAAc,CAAC,yBAAyB,EAAE;AACvF,IAAA,OAAO,EAAE,MAAM,uBAAuB;AACtC,CAAA;AAMM,MAAM,uBAAuB,GAA2C;;ACsB/E,IAAI,MAAM,GAAG,CAAC;MAsBD,kBAAkB,CAAA;AAG9B,IAAA,QAAQ;AACR,IAAA,SAAS;AACT,IAAA,SAAS;AAeT,IAAA,iBAAiB;AA6BjB,IAAA,cAAc;AA0Bd,IAAA,OAAO;AAOP,IAAA,IAAI,aAAa,GAAA;AAChB,QAAA,OAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAkC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;IACtF;AAEO,IAAA,QAAQ,CAAC,KAAqB,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB;;AAEG;QACH,UAAU,CAAC,MAAK;YACf,IAAI,CAAC,YAAY,EAAE;AACpB,QAAA,CAAC,CAAC;IACH;AAEA,IAAA,IAAW,MAAM,GAAA;QAChB,OAAO,IAAI,CAAC,OAAO;IACpB;AAMA,IAAA,IAAW,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;IACzB;AAEA,IAAA,eAAe;AAEf,IAAA,WAAA,GAAA;QA7GS,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,0BAA0B,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEtE,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAE7B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI;QAE1D,IAAA,CAAA,iBAAiB,GAAG,eAAe,CAAC,kBAAkB,8DAAI,WAAW,EAAE,IAAI,EAAA,CAAG;QAE9E,IAAA,CAAA,kBAAkB,GAAG,eAAe,CAAC,iBAAiB,+DAAI,WAAW,EAAE,IAAI,EAAA,CAAG;QAC9E,IAAA,CAAA,UAAU,GAAG,eAAe,CAAC,SAAS,uDAAI,WAAW,EAAE,IAAI,EAAA,CAAG;AAE9D,QAAA,IAAA,CAAA,yBAAyB,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,2BAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AACpH,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAElG,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iEAAC;AACzH,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uDAAC;AAEtG,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK,6DAAC;AACjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,KAAK,8DAAC;AACzB,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE,2DAAC;AAEvF,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAiB;AAEhD;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,wDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEpE,QAAA,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAC,KAAK,iEAAC;QAE3B,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEtD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAyB,IAAI,yDAAC;AAEnD,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAA2B,IAAI,mDAAC;AAE/C,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAgB,IAAI,+CAAC;QAEhC,IAAA,CAAA,EAAE,GAAG,KAAK,CAAC,KAAK,+CAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAClD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAgB,IAAI,yDAAC;AAC1C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI,qDAAC;QAEtC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAuD,IAAI,kDAChF,SAAS,EAAE,eAAkF,EAAA,CAC5F;AAEF,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,KAAK,0DAAC;AAC9B,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;QAEhD,IAAA,CAAA,OAAO,GAAG,KAAK,CAA0B,IAAI,oDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEtE,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAuB,IAAI,yDAAC;AAE1D;;AAEG;AACM,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAuB,IAAI,8DAAC;AAE/D;;AAEG;AACM,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAA4B,IAAI,8DAAC;AAE3D,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAuB,IAAI,gDAAC;AAEjD;;AAEG;AACM,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAS,EAAE,4DAAC;AAE7C,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAuC,SAAS,kDAAC;QAE/D,IAAA,CAAA,OAAO,GAAqB,EAAE;AAE9B;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAS,CAAC,mDAAC;AAoBnC,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAS,EAAE,8CAAC;AAEvB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;QAM5C,IAAA,CAAA,eAAe,GAAa,EAAE;AAG7B,QAAAA,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,MAAK;YACvF,IAAI,CAAC,UAAU,EAAE;AAClB,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACX,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtB,gBAAA,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACrC,gBAAA,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,WAAW;AAC9C,gBAAA,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,UAAU;AAC1C,gBAAA,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,KAAK,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AAC5C,aAAA,CAAC;AACH,QAAA,CAAC,CAAC;IACH;AAEA,IAAA,aAAa,CAAC,EAAU,EAAE,OAAO,GAAG,KAAK,EAAA;QACxC,IAAI,OAAO,EAAE;YACZ,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC;QACrD;aAAO;YACN,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACrD;QACA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACtB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzG;AACD,QAAA,CAAC,CAAC;IACH;AAEA,IAAA,gBAAgB,CAAC,EAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,UAAU,KAAK,UAAU,KAAK,EAAE,CAAC;IACtF;IAEA,YAAY,GAAA;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC;QAC/G;AACA,QAAA,IAAI,CAAC;aACH,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU;AACnC,aAAA,OAAO,CAAC,CAAC,KAAK,KAAI;AAClB,YAAA,MAAM,OAAO,GAAG,CAAA,EAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;AAC/E,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC;AACrE,QAAA,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB;IAEQ,UAAU,GAAA;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YAC9B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC;YACvG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC1G,YAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACtB,IAAI,eAAe,GAAG,CAAA,EAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAA,QAAA,CAAU;AAC9D,gBAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC5B,oBAAA,eAAe,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBACjD;AACA,gBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,kBAAkB,EAAE,eAAe,CAAC;YAC3F;AACD,QAAA,CAAC,CAAC;QACF,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,CAAC,EAAE;YACtE,IAAI,CAAC,aAAa,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,CAAC;QACzC;IACD;IAEA,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;IACvB;IAEA,SAAS,GAAA;QACR,eAAe,CACd,MAAK;YACJ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAClD,QAAA,CAAC,EACD;YACC,QAAQ,EAAE,IAAI,CAAC,SAAS;AACxB,SAAA,CACD;IACF;IAEA,gBAAgB,GAAA;QACf,MAAM,sBAAsB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3G,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjG,OAAO,kBAAkB,IAAI,sBAAsB;IACpD;IAEA,iBAAiB,GAAA;AAChB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI;QACjF,IAAI,iBAAiB,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,OAAO,EAAE;QACtB;AACA,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,EAAE;QAClD,IAAI,qBAAqB,EAAE;YAC1B,OAAO,qBAAqB,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QACnF;QACA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;IAC9D;8GA/MY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,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,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,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,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EAbnB;YACV,OAAO;AACP,YAAA;AACC,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,aAAA;SACD,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,SAAA,EAgB4C,kBAAkB,wFAEjB,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EACzB,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpEhD,umGAoFA,kt8DD5CW,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,sBAAsB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,uUAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAkB,eAAe,2FAA/B,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAgB3G,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlB9B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,WAChB,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,EAAA,SAAA,EAG9H;wBACV,OAAO;AACP,wBAAA;AACC,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACjD,yBAAA;qBACD,EAAA,IAAA,EACK;AACL,wBAAA,kCAAkC,EAAE,QAAQ;AAC5C,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,umGAAA,EAAA,MAAA,EAAA,CAAA,0p8DAAA,CAAA,EAAA;2NAWF,kBAAkB,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAExC,iBAAiB,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAChD,SAAS,QAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEjE1D,qBAAqB,GAAG,IAAI,cAAc,CAAuB,uBAAuB;;MCcxF,oBAAoB,CAAA;AAbjC,IAAA,WAAA,GAAA;AAcU,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAuB,IAAI,wDAAC;QAChD,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACtD,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAa,IAAI,gDAAC;AACvC,IAAA;8GAJY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EARrB;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,qBAAqB;AAC9B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,aAAA;SACD,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdF,oiBAYA,4CDNW,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAWb,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;+BACC,iBAAiB,EAAA,OAAA,EAClB,CAAC,eAAe,CAAC,iBAEX,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,qBAAqB;AAC9B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B,CAAC;AACnD,yBAAA;qBACD,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,oiBAAA,EAAA;;;MELnC,cAAc,CAAA;AAP3B,IAAA,WAAA,GAAA;AAQiB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;QAElD,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE9E;;AAEG;QAEH,IAAA,CAAA,UAAU,GAAG,KAAK;AAQlB,IAAA;IANA,QAAQ,GAAA;;AAEP,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjC;IACD;8GAhBY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,uGAQN,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FARxB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,IAAI,EAAE;;AAEL,wBAAA,KAAK,EAAE,eAAe;AACtB,qBAAA;AACD,iBAAA;;sBASC,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,mBAAmB,EAAE;;;AClBnE;;AAEG;;;;"}
|