@lucca-front/ng 22.1.0 → 22.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/lucca-front-ng-activity-feed.mjs +8 -4
- package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-approbation-inbox.mjs +46 -25
- package/fesm2022/lucca-front-ng-approbation-inbox.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-department.mjs +2 -0
- package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-establishment.mjs +2 -0
- package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +2 -0
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +6 -6
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +62 -12
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +3 -2
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills.mjs +4 -4
- package/fesm2022/lucca-front-ng-form-field.mjs +6 -2
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +3 -2
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-highlight-section.mjs +3 -0
- package/fesm2022/lucca-front-ng-highlight-section.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-impersonation.mjs +3 -1
- package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-link.mjs +33 -9
- package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listing.mjs +17 -7
- package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +6 -6
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +2 -2
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-priority-level.mjs +128 -0
- package/fesm2022/lucca-front-ng-priority-level.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +2 -2
- package/fesm2022/lucca-front-ng-segmented-control.mjs +2 -2
- package/fesm2022/lucca-front-ng-simple-select.mjs +4 -4
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tree-select.mjs +2 -2
- package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +11 -4
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/package.json +11 -8
- package/schematics/lu-button/migration.js +59 -33
- package/src/components/_sidepanel.scss +2 -2
- package/src/components/cdk/_global.scss +4 -0
- package/src/components/cdk/_overlay.scss +1 -1
- package/types/lucca-front-ng-activity-feed.d.ts +13 -9
- package/types/lucca-front-ng-api.d.ts +28 -28
- package/types/lucca-front-ng-approbation-inbox.d.ts +19 -11
- package/types/lucca-front-ng-bubble-icon.d.ts +1 -1
- package/types/lucca-front-ng-callout.d.ts +17 -17
- package/types/lucca-front-ng-chip.d.ts +6 -6
- package/types/lucca-front-ng-clear.d.ts +1 -1
- package/types/lucca-front-ng-color.d.ts +3 -3
- package/types/lucca-front-ng-comment.d.ts +11 -11
- package/types/lucca-front-ng-container.d.ts +1 -1
- package/types/lucca-front-ng-core-select-api.d.ts +7 -7
- package/types/lucca-front-ng-core-select-department.d.ts +7 -5
- package/types/lucca-front-ng-core-select-establishment.d.ts +7 -5
- package/types/lucca-front-ng-core-select-job-qualification.d.ts +2 -2
- package/types/lucca-front-ng-core-select-legal-units.d.ts +3 -3
- package/types/lucca-front-ng-core-select-occupation-category.d.ts +2 -2
- package/types/lucca-front-ng-core-select-user.d.ts +14 -12
- package/types/lucca-front-ng-core-select.d.ts +39 -39
- package/types/lucca-front-ng-core.d.ts +2 -2
- package/types/lucca-front-ng-data-table.d.ts +33 -33
- package/types/lucca-front-ng-date.d.ts +11 -11
- package/types/lucca-front-ng-date2.d.ts +52 -36
- package/types/lucca-front-ng-dialog.d.ts +8 -8
- package/types/lucca-front-ng-divider.d.ts +2 -2
- package/types/lucca-front-ng-dropdown.d.ts +2 -2
- package/types/lucca-front-ng-empty-state.d.ts +20 -20
- package/types/lucca-front-ng-establishment.d.ts +13 -13
- package/types/lucca-front-ng-fancy-box.d.ts +12 -12
- package/types/lucca-front-ng-file-upload.d.ts +13 -13
- package/types/lucca-front-ng-filter-pills.d.ts +17 -17
- package/types/lucca-front-ng-footer.d.ts +1 -1
- package/types/lucca-front-ng-form-field.d.ts +19 -19
- package/types/lucca-front-ng-form-label.d.ts +4 -4
- package/types/lucca-front-ng-form.d.ts +1 -1
- package/types/lucca-front-ng-forms-phone-number-input.d.ts +11 -11
- package/types/lucca-front-ng-forms-rich-text-input.d.ts +11 -11
- package/types/lucca-front-ng-forms.d.ts +50 -50
- package/types/lucca-front-ng-grid.d.ts +23 -23
- package/types/lucca-front-ng-highlight-data.d.ts +5 -5
- package/types/lucca-front-ng-highlight-section.d.ts +6 -3
- package/types/lucca-front-ng-horizontal-navigation.d.ts +4 -4
- package/types/lucca-front-ng-impersonation.d.ts +8 -6
- package/types/lucca-front-ng-index-table.d.ts +18 -18
- package/types/lucca-front-ng-inline-message.d.ts +2 -2
- package/types/lucca-front-ng-link.d.ts +17 -4
- package/types/lucca-front-ng-listbox.d.ts +9 -9
- package/types/lucca-front-ng-listing.d.ts +14 -3
- package/types/lucca-front-ng-loading.d.ts +4 -4
- package/types/lucca-front-ng-main-layout.d.ts +9 -9
- package/types/lucca-front-ng-modal.d.ts +2 -2
- package/types/lucca-front-ng-multi-select.d.ts +20 -20
- package/types/lucca-front-ng-option.d.ts +3 -3
- package/types/lucca-front-ng-page-header.d.ts +2 -2
- package/types/lucca-front-ng-pagination.d.ts +3 -3
- package/types/lucca-front-ng-popover.d.ts +18 -18
- package/types/lucca-front-ng-popover2.d.ts +8 -8
- package/types/lucca-front-ng-popup.d.ts +2 -2
- package/types/{lucca-front-ng-priority-levels.d.ts → lucca-front-ng-priority-level.d.ts} +11 -11
- package/types/lucca-front-ng-progress-bar.d.ts +1 -1
- package/types/lucca-front-ng-progress-stepper.d.ts +2 -2
- package/types/lucca-front-ng-read-more.d.ts +4 -4
- package/types/lucca-front-ng-resource-card.d.ts +3 -3
- package/types/lucca-front-ng-segmented-control-tabs.d.ts +5 -5
- package/types/lucca-front-ng-segmented-control.d.ts +3 -3
- package/types/lucca-front-ng-select.d.ts +9 -9
- package/types/lucca-front-ng-simple-select.d.ts +8 -8
- package/types/lucca-front-ng-software-icon.d.ts +1 -1
- package/types/lucca-front-ng-sortable-list.d.ts +1 -1
- package/types/lucca-front-ng-status-badge.d.ts +1 -1
- package/types/lucca-front-ng-time.d.ts +19 -19
- package/types/lucca-front-ng-toast.d.ts +1 -1
- package/types/lucca-front-ng-tree-select.d.ts +2 -2
- package/types/lucca-front-ng-user-popover.d.ts +1 -1
- package/types/lucca-front-ng-user.d.ts +24 -18
- package/types/lucca-front-ng-vertical-navigation.d.ts +5 -5
- package/fesm2022/lucca-front-ng-priority-levels.mjs +0 -128
- package/fesm2022/lucca-front-ng-priority-levels.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field-size.ts","../../../packages/ng/form-field/form-field.type.ts","../../../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.type.ts","../../../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/data-presentation/data-presentation.component.ts","../../../packages/ng/form-field/value-presentation/data-presentation/data-presentation.component.html","../../../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":["export const FORM_FIELD_SIZE = ['XS', 'S', 'M'] as const;\nexport type FormFieldSize = (typeof FORM_FIELD_SIZE)[number];\n","/**\n * Available FormFieldComponent types\n */\n\nexport const FORM_FIELD_WIDTH = [10, 20, 30, 40, 50, 60] as const;\nexport type FormFieldWidth = (typeof FORM_FIELD_WIDTH)[number];\n\nexport const FORM_FIELD_LAYOUT = ['default', 'checkable', 'fieldset'] as const;\nexport type FormFieldLayout = (typeof FORM_FIELD_LAYOUT)[number];\n","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\tpl: {\n\t\tcounter: 'Liczba znaków publikacji wynosi {{current}}. Dozwolona maksymalna liczba znaków wynosi {{max}}.',\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\tOnDestroy,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, NgControl, ReactiveFormsModule, RequiredValidator, Validators } from '@angular/forms';\nimport { FormField } from '@angular/forms/signals';\nimport { SafeHtml } from '@angular/platform-browser';\nimport {\n\tintlInputOptions,\n\tisNotNil,\n\tluBooleanAttribute,\n\tLuClass,\n\tluNullableBooleanAttribute,\n\tluNullableNumberAttribute,\n\tluNumberAttribute,\n\tPortalContent,\n\tPortalDirective,\n\tɵeffectWithDeps,\n} from '@lucca-front/ng/core';\nimport { LU_FORM_INSTANCE } from '@lucca-front/ng/form';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\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 { FormFieldLayout, FormFieldWidth } from './form-field.type';\nimport { InputDirective } from './input.directive';\nimport { INPUT_FRAMED_INSTANCE } from './public-api';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\timports: [NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, PortalDirective, FormLabelComponent],\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\tprotected parentForm = inject(LU_FORM_INSTANCE, { optional: true });\n\n\treadonly framed = 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\treadonly ngFormFields = contentChildren(FormField, { 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\treadonly ignoredFormFields = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngFormFields())));\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\treadonly ownFormFields = computed(() => this.ngFormFields().filter((c) => !this.ignoredFormFields().has(c)));\n\n\treadonly #hasInputRequired = signal(false);\n\treadonly forceInputRequired = 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: luBooleanAttribute });\n\n\treadonly rolePresentationLabel = model(false);\n\n\treadonly labelIsPresentation = computed(() => this.rolePresentationLabel() || this.presentation());\n\n\treadonly inline = input(false, { transform: luBooleanAttribute });\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: luBooleanAttribute });\n\treadonly iconAItooltip = input<string | null>(null);\n\treadonly iconAIalt = input<string | null>(null);\n\n\treadonly width = input(null, { transform: luNullableNumberAttribute<FormFieldWidth> });\n\n\treadonly #invalidStatus = signal(false);\n\tinvalidStatus = this.#invalidStatus.asReadonly();\n\n\treadonly invalid = input(null, { transform: luNullableBooleanAttribute });\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<FormFieldLayout>('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(0, { transform: luNumberAttribute });\n\n\treadonly contentLength = signal<number>(0);\n\n\treadonly presentation = input(false, { transform: luBooleanAttribute });\n\n\treadonly presentationMode = computed(() => this.parentForm?.presentation() || this.presentation());\n\n\treadonly presentationDisplayTpl = signal<TemplateRef<unknown> | null>(null);\n\n\treadonly hasInlineMessage = computed(() => !this.presentationMode() && !!(this.inlineMessage() || (this.invalidStatus() ? this.errorInlineMessage() : false)));\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tthis.prepareInput();\n\t\t\t},\n\t\t\t{ injector: this.#injector },\n\t\t);\n\t}\n\n\t/**\n\t * Unregisters an input that's being destroyed — e.g. one side of an `@if`/`@else` toggling which\n\t * element carries `luInput` (a text field swapping for a button below a breakpoint, say). Without\n\t * this, the detached element lingers in `#inputs` forever: `prepareInput` keeps reassigning it a\n\t * fresh id on every future change, and each one gets added to `aria-labelledby` and never removed.\n\t */\n\tpublic removeInput(input: InputDirective): void {\n\t\tthis.#inputs = this.#inputs.filter((existing) => existing !== input);\n\t\tif (this.#inputs.length > 0) {\n\t\t\tafterNextRender(\n\t\t\t\t() => {\n\t\t\t\t\tthis.prepareInput();\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\treadonly id = signal<string>('');\n\n\treadonly ready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\treadonly #ariaLabelledBy = signal<string[]>([]);\n\n\t/**\n\t * Ids labelling the inputs of this field, applied by each non-standalone `luInput`\n\t */\n\treadonly ariaLabelledBy = this.#ariaLabelledBy.asReadonly();\n\n\t/**\n\t * Ids describing the inputs of this field, applied by each non-standalone `luInput`\n\t */\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (!this.id()) {\n\t\t\treturn [];\n\t\t}\n\t\tconst message = this.hasInlineMessage() ? [`${this.id()}-message`] : [];\n\t\treturn [...message, ...this.extraDescribedBy().split(/\\s+/).filter(Boolean)];\n\t});\n\n\t// The `-label` id `updateAria` contributes to `#ariaLabelledBy` on this field's own behalf, tracked so\n\t// that a later, different id (`this.id()` changing, e.g. `prepareInput` reassigning ids after an input\n\t// was added/removed) replaces it instead of piling up next to it.\n\t#selfLabelledById: string | null = null;\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.isInputRequired, this.invalidStatus], () => {\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'form-field': this.layout() !== 'fieldset' && !this.presentationMode(),\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\tthis.#ariaLabelledBy.update((ids) => (prepend ? [id, ...ids] : [...ids, id]));\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy.update((ids) => ids.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});\n\t\tconst selfLabelledById = this.id() ? `${this.id()}-label` : null;\n\t\tif (selfLabelledById !== this.#selfLabelledById) {\n\t\t\tif (this.#selfLabelledById) {\n\t\t\t\tthis.removeLabelledBy(this.#selfLabelledById);\n\t\t\t}\n\t\t\tif (selfLabelledById) {\n\t\t\t\tthis.addLabelledBy(selfLabelledById);\n\t\t\t}\n\t\t\tthis.#selfLabelledById = selfLabelledById;\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\tthis.contentLength.set((this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value?.length ?? 0);\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\tconst hasRequiredFormField = this.ownFormFields().some((c) => c.state().required());\n\t\treturn hasRequiredFormField || hasRequiredNgModel || hasRequiredFormControl;\n\t}\n\n\t#hasInvalidStatus(): boolean {\n\t\tconst isInvalidOverride = isNotNil(this.invalid());\n\t\tif (isInvalidOverride) {\n\t\t\treturn this.invalid() ?? false;\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 (presentationMode()) {\n\t<dl class=\"presentation\">\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\" && !presentationMode()) {\n\t\t<fieldset class=\"form-fieldset\" [class.mod-inline]=\"inline()\" [class.mod-S]=\"size() === 'S'\">\n\t\t\t<legend luFormLabel [tooltip]=\"tooltip()\" [tag]=\"tag()\" [required]=\"isInputRequired()\" [class.pr-u-mask]=\"hiddenLabel()\">\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t</legend>\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t@if (hasInlineMessage()) {\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() ?? undefined)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</fieldset>\n\t} @else {\n\t\t@if (presentationMode()) {\n\t\t\t<dt class=\"presentation-term\">\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t\t@if (tooltip(); as tooltip) {\n\t\t\t\t\t<lu-icon class=\"presentation-term-info\" icon=\"signHelp\" [alt]=\"'?'\" [luTooltip]=\"tooltip\" />\n\t\t\t\t}\n\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\tluFormLabel\n\t\t\t\t[counterStatus]=\"contentLength()\"\n\t\t\t\t[counterMax]=\"counter()\"\n\t\t\t\t[error]=\"invalidStatus()\"\n\t\t\t\t[tag]=\"tag()\"\n\t\t\t\t[tooltip]=\"tooltip()\"\n\t\t\t\t[required]=\"isInputRequired()\"\n\t\t\t\t[counterId]=\"`${id()}-counter`\"\n\t\t\t\t[attr.id]=\"`${id()}-label`\"\n\t\t\t\t[attr.for]=\"id()\"\n\t\t\t\t[attr.role]=\"rolePresentationLabel() ? 'presentation' : null\"\n\t\t\t\t[class.pr-u-mask]=\"hiddenLabel()\"\n\t\t\t\t[class.inputFramed-header-label]=\"framed\"\n\t\t\t>\n\t\t\t\t<span><ng-container *luPortal=\"label()\" /></span>\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() ?? undefined\"\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 (hasInlineMessage()) {\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() ?? undefined)\"\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 (presentationMode() && presentationDisplayTpl()) {\n\t\t<dd class=\"presentation-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","/**\n * Available InputFramedComponent sizes\n */\n\nexport const INPUT_FRAMED_SIZE = ['L'] as const;\nexport type InputFramedSize = (typeof INPUT_FRAMED_SIZE)[number];\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 { ChangeDetectionStrategy, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\nimport { luBooleanAttribute, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { InputFramedSize } from './input-framed.type';\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: luBooleanAttribute });\n\treadonly size = input<InputFramedSize | 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(); as framedPortal) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal\" /></div>\n\t}\n</div>\n","import { computed, Directive, effect, ElementRef, inject, input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { luBooleanAttribute } from '@lucca-front/ng/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\nfunction splitIds(ids: string | null): string[] {\n\treturn ids?.split(/\\s+/).filter(Boolean) ?? [];\n}\n\nfunction mergeIds(...lists: string[][]): string {\n\treturn [...new Set(lists.flat())].join(' ');\n}\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, OnDestroy {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\treadonly #renderer = inject(Renderer2);\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\treadonly standalone = input(false, { transform: luBooleanAttribute, alias: 'luInputStandalone' });\n\n\t/**\n\t * Space-separated ids labelling the input, appended to the ones provided by the parent form field.\n\t * Use it instead of binding `aria-labelledby`, which the form field would override.\n\t */\n\treadonly labelledBy = input<string | null>(null, { alias: 'luInputLabelledBy' });\n\n\t/**\n\t * Space-separated ids describing the input, placed before the ones provided by the parent form field.\n\t * Use it instead of binding `aria-describedby`, which the form field would override.\n\t */\n\treadonly describedBy = input<string | null>(null, { alias: 'luInputDescribedBy' });\n\n\treadonly #linkedFormField = computed(() => (this.standalone() ? null : this.formFieldRef));\n\n\treadonly #ariaLabelledBy = computed(() => mergeIds(this.#linkedFormField()?.ariaLabelledBy() ?? [], splitIds(this.labelledBy())));\n\n\t// Own descriptions (e.g. instructions) are read before the form field ones, so an error message comes last\n\treadonly #ariaDescribedBy = computed(() => mergeIds(splitIds(this.describedBy()), this.#linkedFormField()?.ariaDescribedBy() ?? []));\n\n\tconstructor() {\n\t\tthis.#syncAttribute('aria-labelledby', this.#ariaLabelledBy);\n\t\tthis.#syncAttribute('aria-describedby', this.#ariaDescribedBy);\n\t}\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\tngOnDestroy(): void {\n\t\tthis.formFieldRef?.removeInput(this);\n\t}\n\n\t/**\n\t * This directive is the only writer of the attribute while it has ids to set.\n\t * It never touches the attribute otherwise, so a value bound by the consumer on a standalone input is kept.\n\t */\n\t#syncAttribute(name: string, value: () => string): void {\n\t\tlet written = false;\n\t\teffect(() => {\n\t\t\tconst ids = value();\n\t\t\tif (ids) {\n\t\t\t\tthis.#renderer.setAttribute(this.host.nativeElement, name, ids);\n\t\t\t\twritten = true;\n\t\t\t} else if (written) {\n\t\t\t\tthis.#renderer.removeAttribute(this.host.nativeElement, name);\n\t\t\t\twritten = false;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { luBooleanAttribute, PortalContent, PortalDirective } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-data-presentation',\n\timports: [PortalDirective],\n\ttemplateUrl: './data-presentation.component.html',\n\tstyleUrl: './data-presentation.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataPresentationComponent {\n\treadonly label = input.required<PortalContent>();\n\treadonly noValue = input(false, { transform: luBooleanAttribute });\n\treadonly size = input<'S' | null>(null);\n}\n","<dl class=\"presentation\" [class.mod-S]=\"size() === 'S'\">\n\t<dt class=\"presentation-term\">\n\t\t<ng-container *luPortal=\"label()\" />\n\t</dt>\n\t<dd class=\"presentation-definition\">\n\t\t@if (noValue()) {\n\t\t\t<div aria-hidden=\"true\" data-content-before=\"–\"></div>\n\t\t}\n\t\t<ng-content />\n\t</dd>\n</dl>\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\treadonly defaultDisplay = 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-size.ts","../../../packages/ng/form-field/form-field.type.ts","../../../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.type.ts","../../../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/data-presentation/data-presentation.component.ts","../../../packages/ng/form-field/value-presentation/data-presentation/data-presentation.component.html","../../../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":["export const FORM_FIELD_SIZE = ['XS', 'S', 'M'] as const;\nexport type FormFieldSize = (typeof FORM_FIELD_SIZE)[number];\n","/**\n * Available FormFieldComponent types\n */\n\nexport const FORM_FIELD_WIDTH = [10, 20, 30, 40, 50, 60] as const;\nexport type FormFieldWidth = (typeof FORM_FIELD_WIDTH)[number];\n\nexport const FORM_FIELD_LAYOUT = ['default', 'checkable', 'fieldset'] as const;\nexport type FormFieldLayout = (typeof FORM_FIELD_LAYOUT)[number];\n","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\tpl: {\n\t\tcounter: 'Liczba znaków publikacji wynosi {{current}}. Dozwolona maksymalna liczba znaków wynosi {{max}}.',\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\tApplicationRef,\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\tOnDestroy,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, NgControl, ReactiveFormsModule, RequiredValidator, Validators } from '@angular/forms';\nimport { FormField } from '@angular/forms/signals';\nimport { SafeHtml } from '@angular/platform-browser';\nimport {\n\tintlInputOptions,\n\tisNotNil,\n\tluBooleanAttribute,\n\tLuClass,\n\tluNullableBooleanAttribute,\n\tluNullableNumberAttribute,\n\tluNumberAttribute,\n\tPortalContent,\n\tPortalDirective,\n\tɵeffectWithDeps,\n} from '@lucca-front/ng/core';\nimport { LU_FORM_INSTANCE } from '@lucca-front/ng/form';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\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 { FormFieldLayout, FormFieldWidth } from './form-field.type';\nimport { InputDirective } from './input.directive';\nimport { INPUT_FRAMED_INSTANCE } from './public-api';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\timports: [NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, PortalDirective, FormLabelComponent],\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#appRef = inject(ApplicationRef);\n\t#renderer = inject(Renderer2);\n\tprotected parentForm = inject(LU_FORM_INSTANCE, { optional: true });\n\n\treadonly framed = 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\treadonly ngFormFields = contentChildren(FormField, { 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\treadonly ignoredFormFields = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngFormFields())));\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\treadonly ownFormFields = computed(() => this.ngFormFields().filter((c) => !this.ignoredFormFields().has(c)));\n\n\treadonly #hasInputRequired = signal(false);\n\treadonly forceInputRequired = 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: luBooleanAttribute });\n\n\treadonly rolePresentationLabel = model(false);\n\n\treadonly labelIsPresentation = computed(() => this.rolePresentationLabel() || this.presentation());\n\n\treadonly inline = input(false, { transform: luBooleanAttribute });\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: luBooleanAttribute });\n\treadonly iconAItooltip = input<string | null>(null);\n\treadonly iconAIalt = input<string | null>(null);\n\n\treadonly width = input(null, { transform: luNullableNumberAttribute<FormFieldWidth> });\n\n\treadonly #invalidStatus = signal(false);\n\tinvalidStatus = this.#invalidStatus.asReadonly();\n\n\treadonly invalid = input(null, { transform: luNullableBooleanAttribute });\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<FormFieldLayout>('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(0, { transform: luNumberAttribute });\n\n\treadonly contentLength = signal<number>(0);\n\n\treadonly presentation = input(false, { transform: luBooleanAttribute });\n\n\treadonly presentationMode = computed(() => this.parentForm?.presentation() || this.presentation());\n\n\treadonly presentationDisplayTpl = signal<TemplateRef<unknown> | null>(null);\n\n\treadonly hasInlineMessage = computed(() => !this.presentationMode() && !!(this.inlineMessage() || (this.invalidStatus() ? this.errorInlineMessage() : false)));\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tthis.prepareInput();\n\t\t\t},\n\t\t\t{ injector: this.#injector },\n\t\t);\n\t}\n\n\t/**\n\t * Unregisters an input that's being destroyed — e.g. one side of an `@if`/`@else` toggling which\n\t * element carries `luInput` (a text field swapping for a button below a breakpoint, say). Without\n\t * this, the detached element lingers in `#inputs` forever: `prepareInput` keeps reassigning it a\n\t * fresh id on every future change, and each one gets added to `aria-labelledby` and never removed.\n\t */\n\tpublic removeInput(input: InputDirective): void {\n\t\tthis.#inputs = this.#inputs.filter((existing) => existing !== input);\n\t\t// When the whole application is being torn down, its injector is destroyed before the views: there is\n\t\t// nothing left to update, and scheduling a render would throw (NG0205).\n\t\tif (this.#inputs.length > 0 && !this.#appRef.injector.destroyed) {\n\t\t\tafterNextRender(\n\t\t\t\t() => {\n\t\t\t\t\tthis.prepareInput();\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\treadonly id = signal<string>('');\n\n\treadonly ready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\treadonly #ariaLabelledBy = signal<string[]>([]);\n\n\t/**\n\t * Ids labelling the inputs of this field, applied by each non-standalone `luInput`\n\t */\n\treadonly ariaLabelledBy = this.#ariaLabelledBy.asReadonly();\n\n\t/**\n\t * Ids describing the inputs of this field, applied by each non-standalone `luInput`\n\t */\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (!this.id()) {\n\t\t\treturn [];\n\t\t}\n\t\tconst message = this.hasInlineMessage() ? [`${this.id()}-message`] : [];\n\t\treturn [...message, ...this.extraDescribedBy().split(/\\s+/).filter(Boolean)];\n\t});\n\n\t// The `-label` id `updateAria` contributes to `#ariaLabelledBy` on this field's own behalf, tracked so\n\t// that a later, different id (`this.id()` changing, e.g. `prepareInput` reassigning ids after an input\n\t// was added/removed) replaces it instead of piling up next to it.\n\t#selfLabelledById: string | null = null;\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.isInputRequired, this.invalidStatus], () => {\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'form-field': this.layout() !== 'fieldset' && !this.presentationMode(),\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\tthis.#ariaLabelledBy.update((ids) => (prepend ? [id, ...ids] : [...ids, id]));\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy.update((ids) => ids.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});\n\t\tconst selfLabelledById = this.id() ? `${this.id()}-label` : null;\n\t\tif (selfLabelledById !== this.#selfLabelledById) {\n\t\t\tif (this.#selfLabelledById) {\n\t\t\t\tthis.removeLabelledBy(this.#selfLabelledById);\n\t\t\t}\n\t\t\tif (selfLabelledById) {\n\t\t\t\tthis.addLabelledBy(selfLabelledById);\n\t\t\t}\n\t\t\tthis.#selfLabelledById = selfLabelledById;\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\tthis.contentLength.set((this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value?.length ?? 0);\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\tconst hasRequiredFormField = this.ownFormFields().some((c) => c.state().required());\n\t\treturn hasRequiredFormField || hasRequiredNgModel || hasRequiredFormControl;\n\t}\n\n\t#hasInvalidStatus(): boolean {\n\t\tconst isInvalidOverride = isNotNil(this.invalid());\n\t\tif (isInvalidOverride) {\n\t\t\treturn this.invalid() ?? false;\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 (presentationMode()) {\n\t<dl class=\"presentation\">\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\" && !presentationMode()) {\n\t\t<fieldset class=\"form-fieldset\" [class.mod-inline]=\"inline()\" [class.mod-S]=\"size() === 'S'\">\n\t\t\t<legend luFormLabel [tooltip]=\"tooltip()\" [tag]=\"tag()\" [required]=\"isInputRequired()\" [class.pr-u-mask]=\"hiddenLabel()\">\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t</legend>\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t@if (hasInlineMessage()) {\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() ?? undefined)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</fieldset>\n\t} @else {\n\t\t@if (presentationMode()) {\n\t\t\t<dt class=\"presentation-term\">\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t\t@if (tooltip(); as tooltip) {\n\t\t\t\t\t<lu-icon class=\"presentation-term-info\" icon=\"signHelp\" [alt]=\"'?'\" [luTooltip]=\"tooltip\" />\n\t\t\t\t}\n\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\tluFormLabel\n\t\t\t\t[counterStatus]=\"contentLength()\"\n\t\t\t\t[counterMax]=\"counter()\"\n\t\t\t\t[error]=\"invalidStatus()\"\n\t\t\t\t[tag]=\"tag()\"\n\t\t\t\t[tooltip]=\"tooltip()\"\n\t\t\t\t[required]=\"isInputRequired()\"\n\t\t\t\t[counterId]=\"`${id()}-counter`\"\n\t\t\t\t[attr.id]=\"`${id()}-label`\"\n\t\t\t\t[attr.for]=\"id()\"\n\t\t\t\t[attr.role]=\"rolePresentationLabel() ? 'presentation' : null\"\n\t\t\t\t[class.pr-u-mask]=\"hiddenLabel()\"\n\t\t\t\t[class.inputFramed-header-label]=\"framed\"\n\t\t\t>\n\t\t\t\t<span><ng-container *luPortal=\"label()\" /></span>\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() ?? undefined\"\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 (hasInlineMessage()) {\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() ?? undefined)\"\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 (presentationMode() && presentationDisplayTpl()) {\n\t\t<dd class=\"presentation-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","/**\n * Available InputFramedComponent sizes\n */\n\nexport const INPUT_FRAMED_SIZE = ['L'] as const;\nexport type InputFramedSize = (typeof INPUT_FRAMED_SIZE)[number];\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 { ChangeDetectionStrategy, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\nimport { luBooleanAttribute, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { InputFramedSize } from './input-framed.type';\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: luBooleanAttribute });\n\treadonly size = input<InputFramedSize | 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(); as framedPortal) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal\" /></div>\n\t}\n</div>\n","import { computed, Directive, effect, ElementRef, inject, input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { luBooleanAttribute } from '@lucca-front/ng/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\nfunction splitIds(ids: string | null): string[] {\n\treturn ids?.split(/\\s+/).filter(Boolean) ?? [];\n}\n\nfunction mergeIds(...lists: string[][]): string {\n\treturn [...new Set(lists.flat())].join(' ');\n}\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, OnDestroy {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\treadonly #renderer = inject(Renderer2);\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\treadonly standalone = input(false, { transform: luBooleanAttribute, alias: 'luInputStandalone' });\n\n\t/**\n\t * Space-separated ids labelling the input, appended to the ones provided by the parent form field.\n\t * Use it instead of binding `aria-labelledby`, which the form field would override.\n\t */\n\treadonly labelledBy = input<string | null>(null, { alias: 'luInputLabelledBy' });\n\n\t/**\n\t * Space-separated ids describing the input, placed before the ones provided by the parent form field.\n\t * Use it instead of binding `aria-describedby`, which the form field would override.\n\t */\n\treadonly describedBy = input<string | null>(null, { alias: 'luInputDescribedBy' });\n\n\treadonly #linkedFormField = computed(() => (this.standalone() ? null : this.formFieldRef));\n\n\treadonly #ariaLabelledBy = computed(() => mergeIds(this.#linkedFormField()?.ariaLabelledBy() ?? [], splitIds(this.labelledBy())));\n\n\t// Own descriptions (e.g. instructions) are read before the form field ones, so an error message comes last\n\treadonly #ariaDescribedBy = computed(() => mergeIds(splitIds(this.describedBy()), this.#linkedFormField()?.ariaDescribedBy() ?? []));\n\n\tconstructor() {\n\t\tthis.#syncAttribute('aria-labelledby', this.#ariaLabelledBy);\n\t\tthis.#syncAttribute('aria-describedby', this.#ariaDescribedBy);\n\t}\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\tngOnDestroy(): void {\n\t\tthis.formFieldRef?.removeInput(this);\n\t}\n\n\t/**\n\t * This directive is the only writer of the attribute while it has ids to set.\n\t * It never touches the attribute otherwise, so a value bound by the consumer on a standalone input is kept.\n\t */\n\t#syncAttribute(name: string, value: () => string): void {\n\t\tlet written = false;\n\t\teffect(() => {\n\t\t\tconst ids = value();\n\t\t\tif (ids) {\n\t\t\t\tthis.#renderer.setAttribute(this.host.nativeElement, name, ids);\n\t\t\t\twritten = true;\n\t\t\t} else if (written) {\n\t\t\t\tthis.#renderer.removeAttribute(this.host.nativeElement, name);\n\t\t\t\twritten = false;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { luBooleanAttribute, PortalContent, PortalDirective } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-data-presentation',\n\timports: [PortalDirective],\n\ttemplateUrl: './data-presentation.component.html',\n\tstyleUrl: './data-presentation.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataPresentationComponent {\n\treadonly label = input.required<PortalContent>();\n\treadonly noValue = input(false, { transform: luBooleanAttribute });\n\treadonly size = input<'S' | null>(null);\n}\n","<dl class=\"presentation\" [class.mod-S]=\"size() === 'S'\">\n\t<dt class=\"presentation-term\">\n\t\t<ng-container *luPortal=\"label()\" />\n\t</dt>\n\t<dd class=\"presentation-definition\">\n\t\t@if (noValue()) {\n\t\t\t<div aria-hidden=\"true\" data-content-before=\"–\"></div>\n\t\t}\n\t\t<ng-content />\n\t</dd>\n</dl>\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\treadonly defaultDisplay = 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":";;;;;;;;;;;;;;AAAO,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG;;ACA9C;;AAEG;AAEI,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAGhD,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU;;MCJvD,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;AACD,IAAA,EAAE,EAAE;AACH,QAAA,OAAO,EAAE,iGAAiG;AAC1G,KAAA;CACD;;MCxBY,0BAA0B,GAAG,IAAI,cAAc,CAAC,yBAAyB,EAAE;AACvF,IAAA,OAAO,EAAE,MAAM,uBAAuB;AACtC,CAAA;AAMM,MAAM,uBAAuB,GAA2C;;ACsC/E,IAAI,MAAM,GAAG,CAAC;MAoBD,kBAAkB,CAAA;AAG9B,IAAA,QAAQ;AACR,IAAA,SAAS;AACT,IAAA,OAAO;AACP,IAAA,SAAS;AAmBA,IAAA,iBAAiB;AA6BjB,IAAA,cAAc;AA0BvB,IAAA,OAAO;AAiBA,IAAA,QAAQ,CAAC,KAAqB,EAAA;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,eAAe,CACd,MAAK;YACJ,IAAI,CAAC,YAAY,EAAE;QACpB,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAC5B;IACF;AAEA;;;;;AAKG;AACI,IAAA,WAAW,CAAC,KAAqB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,KAAK,KAAK,CAAC;;;AAGpE,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE;YAChE,eAAe,CACd,MAAK;gBACJ,IAAI,CAAC,YAAY,EAAE;YACpB,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAC5B;QACF;IACD;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;AAES,IAAA,eAAe;;;;AAqBxB,IAAA,iBAAiB;AAEjB,IAAA,WAAA,GAAA;AAjKS,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,0BAA0B,CAAC;iFAAC;AAEtE,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnB,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE1D,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI;QAEnE,IAAA,CAAA,iBAAiB,GAAG,eAAe,CAAC,kBAAkB,yFAAI,WAAW,EAAE,IAAI,EAAA,CAAG;QAE9E,IAAA,CAAA,kBAAkB,GAAG,eAAe,CAAC,iBAAiB,0FAAI,WAAW,EAAE,IAAI,EAAA,CAAG;QAC9E,IAAA,CAAA,UAAU,GAAG,eAAe,CAAC,SAAS,kFAAI,WAAW,EAAE,IAAI,EAAA,CAAG;QAC9D,IAAA,CAAA,YAAY,GAAG,eAAe,CAAC,SAAS,oFAAI,WAAW,EAAE,IAAI,EAAA,CAAG;QAEhE,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;sGAAC;QACpH,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;4FAAC;QAClG,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;8FAAC;AAEtG,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;kGAAC;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;wFAAC;AAC7F,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;0FAAC;QAEnG,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,KAAK;8FAAC;QACjC,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,KAAK;+FAAC;AAClC,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;4FAAC;QAEvF,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAiB;AAEhD;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,kBAAkB,EAAA,CAAG;QAE7D,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAC,KAAK;kGAAC;AAEpC,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;gGAAC;QAEzF,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,8EAAI,SAAS,EAAE,kBAAkB,EAAA,CAAG;QAExD,IAAA,CAAA,aAAa,GAAG,KAAK,CAAyB,IAAI;0FAAC;QAEnD,IAAA,CAAA,OAAO,GAAG,KAAK,CAA2B,IAAI;oFAAC;QAE/C,IAAA,CAAA,GAAG,GAAG,KAAK,CAAgB,IAAI;gFAAC;QAEhC,IAAA,CAAA,EAAE,GAAG,KAAK,CAAC,KAAK,0EAAI,SAAS,EAAE,kBAAkB,EAAA,CAAG;QACpD,IAAA,CAAA,aAAa,GAAG,KAAK,CAAgB,IAAI;0FAAC;QAC1C,IAAA,CAAA,SAAS,GAAG,KAAK,CAAgB,IAAI;sFAAC;QAEtC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,IAAI,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,GAAE,yBAAyC,CAAA,EAAA,CAAG;QAE7E,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,KAAK;2FAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;QAEvC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,IAAI,+EAAI,SAAS,EAAE,0BAA0B,EAAA,CAAG;QAEhE,IAAA,CAAA,aAAa,GAAG,KAAK,CAAuB,IAAI;0FAAC;AAE1D;;AAEG;QACM,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAuB,IAAI;+FAAC;AAE/D;;AAEG;QACM,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAA4B,IAAI;+FAAC;QAE3D,IAAA,CAAA,IAAI,GAAG,KAAK,CAAuB,IAAI;iFAAC;AAEjD;;AAEG;QACM,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAS,EAAE;6FAAC;QAEpC,IAAA,CAAA,MAAM,GAAG,KAAK,CAAkB,SAAS;mFAAC;QAEnD,IAAA,CAAA,OAAO,GAAqB,EAAE;AAE9B;;AAEG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,CAAC,+EAAI,SAAS,EAAE,iBAAiB,EAAA,CAAG;QAEpD,IAAA,CAAA,aAAa,GAAG,MAAM,CAAS,CAAC;0FAAC;QAEjC,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,KAAK,oFAAI,SAAS,EAAE,kBAAkB,EAAA,CAAG;AAE9D,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;6FAAC;QAEzF,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAA8B,IAAI;mGAAC;AAElE,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,KAAK,CAAC,CAAC;6FAAC;QAoCrJ,IAAA,CAAA,EAAE,GAAG,MAAM,CAAS,EAAE;+EAAC;AAEvB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;QAM5C,IAAA,CAAA,eAAe,GAAG,MAAM,CAAW,EAAE;4FAAC;AAE/C;;AAEG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AAE3D;;AAEG;AACM,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE;AACf,gBAAA,OAAO,EAAE;YACV;YACA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA,QAAA,CAAU,CAAC,GAAG,EAAE;YACvE,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC;4FAAC;;;;QAKF,IAAA,CAAA,iBAAiB,GAAkB,IAAI;AAGtC,QAAAA,eAAe,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,MAAK;YAChE,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,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACtE,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;AACxC,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9E;AAEA,IAAA,gBAAgB,CAAC,EAAU,EAAA;QAC1B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,UAAU,KAAK,UAAU,KAAK,EAAE,CAAC,CAAC;IACpF;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,EAAE;AACrC,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;AAC3G,QAAA,CAAC,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA,MAAA,CAAQ,GAAG,IAAI;AAChE,QAAA,IAAI,gBAAgB,KAAK,IAAI,CAAC,iBAAiB,EAAE;AAChD,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC3B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC9C;YACA,IAAI,gBAAgB,EAAE;AACrB,gBAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;YACrC;AACA,YAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB;QAC1C;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;YACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAkC,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;AACvG,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,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnF,QAAA,OAAO,oBAAoB,IAAI,kBAAkB,IAAI,sBAAsB;IAC5E;IAEA,iBAAiB,GAAA;QAChB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,iBAAiB,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK;QAC/B;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;8GA3PY,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,EAkB4C,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,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EACP,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrFlD,+pGA0FA,EAAA,MAAA,EAAA,CAAA,o51EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDpCW,gBAAgB,oJAAE,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,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,+BAAE,aAAa,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,MAAA,EAAA,eAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAgBhI,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,eAAe,EAAE,kBAAkB,CAAC,EAAA,SAAA,EAGlI;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,+pGAAA,EAAA,MAAA,EAAA,CAAA,o51EAAA,CAAA,EAAA;AAaF,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,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,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,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,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAC9B,SAAS,CAAA,EAAA,EAAA,GAAE,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,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AErFzE;;AAEG;AAEI,MAAM,iBAAiB,GAAG,CAAC,GAAG;;MCDxB,qBAAqB,GAAG,IAAI,cAAc,CAAuB,uBAAuB;;MCexF,oBAAoB,CAAA;AAbjC,IAAA,WAAA,GAAA;QAcU,IAAA,CAAA,YAAY,GAAG,KAAK,CAAuB,IAAI;yFAAC;QAChD,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,8EAAI,SAAS,EAAE,kBAAkB,EAAA,CAAG;QACxD,IAAA,CAAA,IAAI,GAAG,KAAK,CAAyB,IAAI;iFAAC;AACnD,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,ECfF,mjBAYA,4CDLW,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,mjBAAA,EAAA;;;AEZhD,SAAS,QAAQ,CAAC,GAAkB,EAAA;AACnC,IAAA,OAAO,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;AAC/C;AAEA,SAAS,QAAQ,CAAC,GAAG,KAAiB,EAAA;AACrC,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5C;MASa,cAAc,CAAA;AAKjB,IAAA,SAAS;AAmBT,IAAA,gBAAgB;AAEhB,IAAA,eAAe;;AAGf,IAAA,gBAAgB;AAEzB,IAAA,WAAA,GAAA;AA9BgB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;QAElD,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAErE,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAEtC;;AAEG;AACM,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,GAAG;AAEjG;;;AAGG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAgB,IAAI,kFAAI,KAAK,EAAE,mBAAmB,EAAA,CAAG;AAEhF;;;AAGG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgB,IAAI,mFAAI,KAAK,EAAE,oBAAoB,EAAA,CAAG;QAEzE,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;6FAAC;QAEjF,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;4FAAC;;QAGxH,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;6FAAC;QAGnI,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC;IAC/D;IAEA,QAAQ,GAAA;;AAEP,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjC;IACD;IAEA,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC;IACrC;AAEA;;;AAGG;IACH,cAAc,CAAC,IAAY,EAAE,KAAmB,EAAA;QAC/C,IAAI,OAAO,GAAG,KAAK;QACnB,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,GAAG,GAAG,KAAK,EAAE;YACnB,IAAI,GAAG,EAAE;AACR,gBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC;gBAC/D,OAAO,GAAG,IAAI;YACf;iBAAO,IAAI,OAAO,EAAE;AACnB,gBAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;gBAC7D,OAAO,GAAG,KAAK;YAChB;AACD,QAAA,CAAC,CAAC;IACH;8GA/DY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,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;;;MCPY,yBAAyB,CAAA;AARtC,IAAA,WAAA,GAAA;QASU,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAiB;QACvC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,kBAAkB,EAAA,CAAG;QACzD,IAAA,CAAA,IAAI,GAAG,KAAK,CAAa,IAAI;iFAAC;AACvC,IAAA;8GAJY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,QAAA,EAAA,EAAA,EAAA,QAAA,ECXtC,4UAWA,EAAA,MAAA,EAAA,CAAA,uvCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNW,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;;2FAMb,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;+BACC,sBAAsB,EAAA,OAAA,EACvB,CAAC,eAAe,CAAC,EAAA,aAAA,EAGX,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4UAAA,EAAA,MAAA,EAAA,CAAA,uvCAAA,CAAA,EAAA;;;MEHnC,4BAA4B,CAAA;AAHzC,IAAA,WAAA,GAAA;QAIC,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE9C,QAAA,IAAA,CAAA,WAAW,GAAyB,MAAM,CAAC,WAAW,CAAC;AAEvE,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEtB,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,KAAK;2FAAC;AAevC,IAAA;AArBA,IAAA,aAAa;AAIb,IAAA,IAAI;IAIJ,QAAQ,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;;AAEvB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;gBAC3E,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YAChE;QACD;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IAClB;AAEO,IAAA,OAAO,sBAAsB,CAAC,IAAkC,EAAE,IAAa,EAAA;AACrF,QAAA,OAAO,IAAI;IACZ;8GArBY,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,iBAAA;;;MCEY,oCAAoC,CAAA;AAChD,IAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAE3D,IAAA,WAAA,GAAA;QACC,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;IACnD;AAEO,IAAA,OAAO,sBAAsB,CAAC,IAA0C,EAAE,IAAa,EAAA;AAC7F,QAAA,OAAO,IAAI;IACZ;8GATY,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,4BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAJhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,gCAAgC;oBAC1C,cAAc,EAAE,CAAC,4BAA4B,CAAC;AAC9C,iBAAA;;;ACND;;AAEG;;"}
|
|
@@ -661,10 +661,11 @@ class HeadingsComponent {
|
|
|
661
661
|
}
|
|
662
662
|
setDisabledState(isDisabled) {
|
|
663
663
|
if (isDisabled) {
|
|
664
|
-
this.formControl.disable();
|
|
664
|
+
this.formControl.disable({ emitEvent: false });
|
|
665
665
|
}
|
|
666
666
|
else {
|
|
667
|
-
|
|
667
|
+
// Emitting would dispatch FORMAT_HEADINGS on the block holding the selection
|
|
668
|
+
this.formControl.enable({ emitEvent: false });
|
|
668
669
|
}
|
|
669
670
|
}
|
|
670
671
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.1", ngImport: i0, type: HeadingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|