@slotted/angular 0.1.0-beta.4 → 0.1.0-beta.6
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/docs/AGENTS.snippet.md +2 -0
- package/docs/app-shell.examples.md +1 -1
- package/docs/app-shell.json +4 -4
- package/docs/app-shell.md +2 -2
- package/docs/guidelines/README.md +2 -2
- package/docs/guidelines/index.md +1 -1
- package/docs/guidelines/own-elements.md +1 -1
- package/docs/page-header.json +1 -0
- package/docs/page-header.md +1 -1
- package/docs/segmented-control.json +7 -11
- package/docs/segmented-control.md +1 -1
- package/docs/skills/build-own-element/SKILL.md +6 -6
- package/docs/skills/compose-screen/SKILL.md +6 -6
- package/docs/skills/review-screen/SKILL.md +6 -6
- package/docs/skills/theme-app/SKILL.md +1 -1
- package/docs/skills/waiting-states/SKILL.md +2 -2
- package/docs/tabs.json +16 -3
- package/docs/tabs.md +3 -2
- package/fesm2022/slotted-angular-app-shell.mjs +15 -9
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-cascader.mjs +7 -1
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +13 -3
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +4 -6
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +4 -6
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-picker.mjs +4 -6
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +4 -6
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +7 -1
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-page-header.mjs +2 -2
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-popover.mjs +7 -1
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-scroll-area.mjs +6 -2
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +2 -2
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +49 -17
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +2 -2
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +11 -4
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +13 -6
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-picker.mjs +4 -6
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +4 -6
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +7 -1
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-app-shell.d.ts +5 -3
- package/types/slotted-angular-app-shell.d.ts.map +1 -1
- package/types/slotted-angular-cascader.d.ts.map +1 -1
- package/types/slotted-angular-chart.d.ts +1 -0
- package/types/slotted-angular-chart.d.ts.map +1 -1
- package/types/slotted-angular-date-picker.d.ts +0 -1
- package/types/slotted-angular-date-picker.d.ts.map +1 -1
- package/types/slotted-angular-date-range-picker.d.ts +0 -1
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- package/types/slotted-angular-popover.d.ts.map +1 -1
- package/types/slotted-angular-scroll-area.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +12 -2
- package/types/slotted-angular-select.d.ts.map +1 -1
- package/types/slotted-angular-table.d.ts +1 -0
- package/types/slotted-angular-table.d.ts.map +1 -1
- package/types/slotted-angular-tabs.d.ts +3 -4
- package/types/slotted-angular-tabs.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts +0 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts +0 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-tooltip.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-entity-picker.mjs","sources":["../../entity-picker/src/entity-picker-defaults.ts","../../entity-picker/src/entity-picker.ts","../../entity-picker/src/slotted-angular-entity-picker.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { Entity } from '@slotted/core/entity-picker';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\nexport type {\n Entity,\n EntityAvatar,\n EntitySearchRequest,\n EntitySearchResult,\n EntitySource,\n} from '@slotted/core/entity-picker';\n\nexport type EntityPickerSize = 'sm' | 'md' | 'lg';\nexport type EntityPickerVariant = 'outline' | 'subtle' | 'plain';\nexport type EntityPickerMedia = 'avatar' | 'none';\nexport type EntityPickerOverflow = 'collapse' | 'wrap';\nexport type EntityPickerOpenOn = 'input' | 'focus' | 'manual';\nexport type EntityPickerSide = 'bottom' | 'top';\nexport type EntityPickerWidth = 'anchor' | 'content';\nexport type EntityPickerStrategy = 'absolute' | 'fixed';\nexport type EntityPickerSelectionMode = 'single' | 'multiple';\n\n/** An id in `single`, an array of ids in `multiple`. */\nexport type EntityPickerValue = string | null | readonly string[];\n\nexport type EntityPickerValueReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'select' | 'remove' | 'clear' | 'submit' | 'programmatic'\n>;\nexport type EntityPickerInputReason = Extract<\n ChangeReason,\n 'keyboard' | 'select' | 'clear' | 'blur' | 'programmatic'\n>;\nexport type EntityPickerOpenReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'select' | 'blur' | 'programmatic'\n>;\nexport type EntityPickerHighlightReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'programmatic'\n>;\nexport type EntityPickerScopeReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'programmatic'\n>;\n\n/** A request to change the chosen ids, carrying the records known for them. */\nexport interface EntityPickerValueRequest extends ChangeRequest<EntityPickerValue> {\n readonly entities: readonly Entity[];\n}\n\nexport interface EntityPickerScope {\n readonly id: string;\n readonly label: string;\n}\n\n/** What an option template receives. */\nexport interface EntityPickerOptionContext {\n readonly $implicit: Entity;\n readonly query: string;\n readonly selected: boolean;\n readonly current: boolean;\n readonly disabled: boolean;\n}\n\n/** What a chip template receives. */\nexport interface EntityPickerChipContext {\n readonly $implicit: Entity;\n}\n\n/** What an application sets once for every picker under it. */\nexport interface EntityPickerDefaults {\n clearable: boolean;\n disabled: boolean;\n fullWidth: boolean;\n highlightMatch: boolean;\n invalid: boolean;\n loop: boolean;\n media: EntityPickerMedia;\n minQueryLength: number;\n openOn: EntityPickerOpenOn;\n overflow: EntityPickerOverflow;\n portal: boolean;\n readOnly: boolean;\n required: boolean;\n searchDelay: number;\n side: EntityPickerSide;\n size: EntityPickerSize;\n strategy: EntityPickerStrategy;\n variant: EntityPickerVariant;\n width: EntityPickerWidth;\n}\n\n/** The contract's defaults, `specs/components/entity-picker/contract.json`. */\nexport const ENTITY_PICKER_FALLBACK: EntityPickerDefaults = {\n clearable: true,\n disabled: false,\n fullWidth: true,\n highlightMatch: true,\n invalid: false,\n loop: false,\n media: 'avatar',\n minQueryLength: 0,\n openOn: 'input',\n overflow: 'collapse',\n portal: true,\n readOnly: false,\n required: false,\n searchDelay: 250,\n side: 'bottom',\n size: 'md',\n strategy: 'absolute',\n variant: 'outline',\n width: 'content',\n};\n\nexport const ENTITY_PICKER_DEFAULTS = new InjectionToken<EntityPickerDefaults>(\n 'slotted entity picker defaults',\n { providedIn: 'root', factory: () => ENTITY_PICKER_FALLBACK },\n);\n\n/**\n * An application decides once how its pickers look and how long they wait. A\n * picker that states any of it itself still wins, and a nested provider\n * overrides only what it names. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideEntityPickerDefaults(defaults: Partial<EntityPickerDefaults>) {\n return {\n provide: ENTITY_PICKER_DEFAULTS,\n useFactory: (): EntityPickerDefaults => {\n const inherited = inject(ENTITY_PICKER_DEFAULTS, { skipSelf: true, optional: true });\n const merged: EntityPickerDefaults = { ...(inherited ?? ENTITY_PICKER_FALLBACK) };\n for (const [key, value] of Object.entries(defaults)) {\n if (value !== undefined) (merged as unknown as Record<string, unknown>)[key] = value;\n }\n return merged;\n },\n };\n}\n\nexport function injectEntityPickerDefaults(): EntityPickerDefaults {\n return inject(ENTITY_PICKER_DEFAULTS);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { EmbeddedViewRef } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlAvatar } from '@slotted/angular/avatar';\nimport { SlField } from '@slotted/angular/field';\nimport { SlHighlight } from '@slotted/angular/highlight';\nimport { SlSelect, SlSelectItem } from '@slotted/angular/select';\nimport { moveIndex } from '@slotted/core/collection';\nimport type { MoveIntent } from '@slotted/core/collection';\nimport { createDismissableLayer, pressOrigin } from '@slotted/core/dismissable-layer';\nimport type { DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport {\n CREATE_OPTION,\n RETRY_OPTION,\n createEntityCache,\n createEntityResolver,\n createEntitySearch,\n entityInitials,\n entityName,\n entityOptions,\n entityPickerKey,\n entitySections,\n localEntitySource,\n offersCreation,\n} from '@slotted/core/entity-picker';\nimport type {\n Entity,\n EntityOption,\n EntityResolver,\n EntitySearchSession,\n EntitySearchState,\n EntitySource,\n} from '@slotted/core/entity-picker';\nimport { createArrowNavigation, createRemovalFocus } from '@slotted/core/focus';\nimport type { ArrowNavigationHandle, RemovalFocusHandle } from '@slotted/core/focus';\nimport {\n entityPickerMessages,\n type EntityPickerMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createCollapse } from '@slotted/core/overflow';\nimport type { CollapseHandle } from '@slotted/core/overflow';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport type { PositionerHandle } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceHandle } from '@slotted/core/presence';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport { injectEntityPickerDefaults } from './entity-picker-defaults';\nimport type {\n EntityPickerChipContext,\n EntityPickerHighlightReason,\n EntityPickerInputReason,\n EntityPickerMedia,\n EntityPickerOpenOn,\n EntityPickerOpenReason,\n EntityPickerOptionContext,\n EntityPickerOverflow,\n EntityPickerScope,\n EntityPickerScopeReason,\n EntityPickerSelectionMode,\n EntityPickerSide,\n EntityPickerSize,\n EntityPickerStrategy,\n EntityPickerValue,\n EntityPickerValueReason,\n EntityPickerValueRequest,\n EntityPickerVariant,\n EntityPickerWidth,\n} from './entity-picker-defaults';\n\n/** Replaces the content of an option; the face, the check and the row stay the family's. */\n@Directive({ selector: 'ng-template[slEntityPickerOption]', standalone: true })\nexport class SlEntityPickerOption {\n readonly template = inject<TemplateRef<EntityPickerOptionContext>>(TemplateRef);\n\n static ngTemplateContextGuard(\n _directive: SlEntityPickerOption,\n context: unknown,\n ): context is EntityPickerOptionContext {\n return context !== null;\n }\n}\n\n/** Replaces the words of a chip; the face and the remove button stay the family's. */\n@Directive({ selector: 'ng-template[slEntityPickerChip]', standalone: true })\nexport class SlEntityPickerChip {\n readonly template = inject<TemplateRef<EntityPickerChipContext>>(TemplateRef);\n\n static ngTemplateContextGuard(\n _directive: SlEntityPickerChip,\n context: unknown,\n ): context is EntityPickerChipContext {\n return context !== null;\n }\n}\n\ntype Entry = 'selected' | 'first' | 'last' | 'keep';\n\nconst CHIP_SELECTOR = \"[data-part='chips'] > [data-ui='tag']:not([data-count])\";\nconst EMPTY: readonly Entity[] = [];\n\nfunction idsOf(value: EntityPickerValue | undefined): readonly string[] {\n if (Array.isArray(value)) return value as readonly string[];\n return typeof value === 'string' ? [value] : [];\n}\n\nfunction sameIds(a: readonly string[], b: readonly string[]) {\n return a.length === b.length && a.every((id, index) => id === b[index]);\n}\n\n/**\n * A field that chooses records from a remote collection.\n *\n * The value is an id — or, with `selectionMode=\"multiple\"`, an array of ids —\n * and every request to change it carries the records the family knows for\n * the new value. The search, the next page and the resolution of an id\n * nobody showed the family are `source`'s; the delay, the abort and the cache\n * are the family's, in `@slotted/core/entity-picker`, shared with React.\n *\n * The field is one line in a form: a chosen set collapses into a \"+N\" chip\n * whose records the popup lists first, and a scope stands in front of the\n * field, not above it.\n */\n@Component({\n selector: 'sl-entity-picker',\n standalone: true,\n exportAs: 'slEntityPicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, SlAvatar, SlGlyph, SlHighlight, SlIcon, SlSelect, SlSelectItem],\n styleUrls: [\n '../../../styles/src/entity-picker/entity-picker.css',\n '../../../styles/src/tag/tag.css',\n '../../../styles/src/spinner/spinner.css',\n '../../../styles/src/skeleton/skeleton.css',\n ],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlEntityPicker), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlEntityPicker), multi: true },\n ],\n host: {\n 'data-ui': 'entity-picker',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-selection-mode]': 'selectionMode()',\n '[attr.data-overflow]': 'resolvedOverflow()',\n '[attr.data-full-width]': \"resolvedFullWidth() ? '' : null\",\n '[attr.data-open]': \"isOpen() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() ? '' : null\",\n '[attr.data-required]': \"resolvedRequired() ? '' : null\",\n '[attr.data-loading]': \"busy() ? '' : null\",\n '[attr.data-complete]': \"complete() ? '' : null\",\n '[attr.role]': \"hasScopes() ? 'group' : null\",\n '[attr.aria-labelledby]': 'hasScopes() ? (field?.ids()?.label ?? null) : null',\n '[attr.aria-label]': 'hasScopes() && !field ? (ariaLabel() ?? null) : null',\n },\n template: `\n @if (hasScopes()) {\n <div data-part=\"scope\">\n <sl-select\n [value]=\"scope()\"\n [items]=\"scopeItems()\"\n [size]=\"resolvedSize()\"\n [variant]=\"resolvedVariant()\"\n [disabled]=\"resolvedDisabled() || resolvedReadOnly()\"\n [aria-label]=\"t('scope')\"\n (valueChangeRequest)=\"onScopeRequest($event)\"\n >\n @for (item of scopes(); track item.id) {\n <sl-select-item [value]=\"item.id\" [label]=\"item.label\" />\n }\n </sl-select>\n </div>\n }\n <div data-part=\"control\" #control>\n @if (showSelection(); as chosen) {\n <span data-part=\"selection\" aria-hidden=\"true\">\n <span\n slAvatar\n decorative\n size=\"xs\"\n [name]=\"chosen.avatar?.name ?? chosen.label\"\n [initials]=\"initials(chosen)\"\n [src]=\"chosen.avatar?.src\"\n [shape]=\"chosen.avatar?.shape ?? 'circle'\"\n [locale]=\"resolvedLocale()\"\n ></span>\n </span>\n }\n @if (multiple()) {\n <div data-part=\"values\" role=\"grid\" [attr.aria-label]=\"chipsLabel()\">\n <div data-part=\"chips\" role=\"row\" #chips>\n @for (id of chosen(); track id) {\n <span\n data-ui=\"tag\"\n data-part=\"root\"\n data-size=\"sm\"\n data-tone=\"secondary\"\n role=\"gridcell\"\n tabindex=\"-1\"\n [attr.data-value]=\"id\"\n [attr.data-variant]=\"record(id) ? 'soft' : 'outline'\"\n [attr.data-loading]=\"resolution(id) === 'pending' ? '' : null\"\n [attr.data-unresolved]=\"resolution(id) === 'missing' ? '' : null\"\n [attr.data-disabled]=\"resolvedDisabled() ? '' : null\"\n [attr.aria-busy]=\"resolution(id) === 'pending' ? true : null\"\n [attr.aria-label]=\"chipName(id)\"\n (keydown)=\"onChipKey(id, $event)\"\n >\n <span data-part=\"body\">\n @if (resolvedMedia() === 'avatar' && record(id)?.avatar !== null) {\n <span data-part=\"start\">\n @if (record(id); as entity) {\n <span\n slAvatar\n decorative\n size=\"xs\"\n [name]=\"entity.avatar?.name ?? entity.label\"\n [initials]=\"initials(entity)\"\n [src]=\"entity.avatar?.src\"\n [shape]=\"entity.avatar?.shape ?? 'circle'\"\n [locale]=\"resolvedLocale()\"\n ></span>\n } @else if (resolution(id) === 'pending') {\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"circle\"\n data-size=\"xs\"\n data-loading\n aria-hidden=\"true\"\n ></span>\n } @else if (resolution(id) === 'missing') {\n <span slIcon><svg slGlyph name=\"circle-alert\"></svg></span>\n }\n </span>\n }\n <span data-part=\"label\">\n @if (resolution(id) === 'pending' && !record(id)) {\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"text\"\n data-loading\n aria-hidden=\"true\"\n ></span>\n } @else if (record(id) && chipTemplate(); as chip) {\n <ng-container\n [ngTemplateOutlet]=\"chip.template\"\n [ngTemplateOutletContext]=\"{ $implicit: record(id)! }\"\n />\n } @else {\n {{ record(id)?.label ?? t('unresolved') }}\n }\n </span>\n </span>\n @if (!resolvedReadOnly() && !resolvedDisabled()) {\n <button\n type=\"button\"\n data-part=\"remove\"\n tabindex=\"-1\"\n [attr.aria-label]=\"removeLabel(id)\"\n (click)=\"onRemoveClick(id, $event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n </span>\n }\n @if (collapsing()) {\n <span\n #count\n data-ui=\"tag\"\n data-part=\"root\"\n data-size=\"sm\"\n data-tone=\"secondary\"\n data-variant=\"outline\"\n data-count\n role=\"gridcell\"\n tabindex=\"-1\"\n hidden\n [attr.aria-label]=\"moreLabel()\"\n (click)=\"onCountClick($event)\"\n >\n <span data-part=\"body\">\n <span data-part=\"label\">{{ moreText() }}</span>\n </span>\n </span>\n }\n <span data-part=\"field\" role=\"gridcell\">\n <ng-container [ngTemplateOutlet]=\"field_\" />\n </span>\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"field_\" />\n }\n @if (showClear()) {\n <button\n type=\"button\"\n data-part=\"clear\"\n [attr.aria-label]=\"t('clear')\"\n (click)=\"onClear($event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n <button\n type=\"button\"\n tabindex=\"-1\"\n data-part=\"trigger\"\n [disabled]=\"resolvedDisabled()\"\n [attr.aria-label]=\"t('trigger')\"\n (click)=\"onToggle($event)\"\n >\n @if (busy()) {\n <span data-part=\"busy\" data-ui=\"spinner\" aria-hidden=\"true\"></span>\n } @else {\n <span data-part=\"arrow\"\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></span>\n }\n </button>\n </div>\n\n <ng-template #field_>\n <input\n #input\n type=\"text\"\n role=\"combobox\"\n data-part=\"input\"\n autocomplete=\"off\"\n aria-autocomplete=\"list\"\n [id]=\"controlId()\"\n [value]=\"inputValue()\"\n [disabled]=\"resolvedDisabled()\"\n [readOnly]=\"resolvedReadOnly()\"\n [required]=\"resolvedRequired() && chosen().length === 0\"\n [placeholder]=\"placeholder()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"isOpen() ? contentId : null\"\n [attr.aria-activedescendant]=\"activeDescendant()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-describedby]=\"field?.describedBy() ?? null\"\n [attr.aria-readonly]=\"resolvedReadOnly() ? true : null\"\n [attr.aria-invalid]=\"resolvedInvalid() ? true : null\"\n [attr.aria-busy]=\"pendingSingle() ? true : null\"\n (input)=\"onInput($event)\"\n (click)=\"onInputClick($event)\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur($event)\"\n />\n </ng-template>\n\n <ng-template #layer>\n <div\n data-ui=\"entity-picker\"\n data-part=\"positioner\"\n data-align=\"start\"\n [attr.data-size]=\"resolvedSize()\"\n [attr.data-width]=\"resolvedWidth()\"\n [attr.data-open]=\"isOpen() && positioned() ? '' : null\"\n [attr.inert]=\"isOpen() ? null : ''\"\n >\n <div\n data-part=\"content\"\n role=\"listbox\"\n [id]=\"contentId\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-multiselectable]=\"multiple() ? true : null\"\n [attr.aria-busy]=\"search().status === 'loading' ? true : null\"\n [attr.data-loading]=\"refreshing() ? '' : null\"\n >\n @if (!(failed() && search().items.length === 0)) {\n @for (section of sections().sections; track section.key) {\n @if (sections().headings) {\n <div\n data-part=\"group\"\n role=\"group\"\n [attr.aria-labelledby]=\"contentId + '-' + section.key\"\n >\n <div data-part=\"group-label\" [id]=\"contentId + '-' + section.key\">\n {{ section.label }}\n </div>\n @for (entity of section.entities; track entity.id) {\n <ng-container\n [ngTemplateOutlet]=\"row\"\n [ngTemplateOutletContext]=\"{ $implicit: entity }\"\n />\n }\n </div>\n } @else {\n @for (entity of section.entities; track entity.id) {\n <ng-container\n [ngTemplateOutlet]=\"row\"\n [ngTemplateOutletContext]=\"{ $implicit: entity }\"\n />\n }\n }\n }\n }\n @if (firstPage() && search().indicator) {\n <div data-part=\"placeholder\" aria-hidden=\"true\">\n @for (row of [0, 1, 2]; track row) {\n <div>\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"circle\"\n data-size=\"xs\"\n data-loading\n ></span>\n <span data-ui=\"skeleton\" data-part=\"root\" data-shape=\"text\" data-loading></span>\n <span data-ui=\"skeleton\" data-part=\"root\" data-shape=\"text\" data-loading></span>\n </div>\n }\n </div>\n }\n @if (search().loadingMore && search().indicator) {\n <div data-part=\"more\" aria-hidden=\"true\">\n <div>\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"circle\"\n data-size=\"xs\"\n data-loading\n ></span>\n <span data-ui=\"skeleton\" data-part=\"root\" data-shape=\"text\" data-loading></span>\n <span data-ui=\"skeleton\" data-part=\"root\" data-shape=\"text\" data-loading></span>\n </div>\n </div>\n }\n <div data-sentinel></div>\n @if (offerCreate()) {\n <div\n role=\"option\"\n data-part=\"item\"\n data-create\n aria-selected=\"false\"\n [attr.data-value]=\"CREATE\"\n [id]=\"optionId(CREATE)\"\n [attr.data-current]=\"highlightedValue() === CREATE ? '' : null\"\n [attr.data-loading]=\"creating() ? '' : null\"\n (pointerdown)=\"keepFocus($event)\"\n (pointerenter)=\"setHighlighted(CREATE, 'pointer', $event)\"\n (click)=\"activate(CREATE, 'pointer', $event)\"\n >\n <span data-part=\"media\" aria-hidden=\"true\"\n ><span slIcon><svg slGlyph name=\"plus\"></svg></span\n ></span>\n <span data-part=\"label\">{{ createText() }}</span>\n </div>\n }\n @if (failed()) {\n <div data-part=\"error\">\n <span slIcon><svg slGlyph name=\"circle-alert\"></svg></span>{{ t('error') }}\n </div>\n <div\n role=\"option\"\n data-part=\"item\"\n data-retry\n aria-selected=\"false\"\n [attr.data-value]=\"RETRY\"\n [id]=\"optionId(RETRY)\"\n [attr.data-current]=\"highlightedValue() === RETRY ? '' : null\"\n (pointerdown)=\"keepFocus($event)\"\n (pointerenter)=\"setHighlighted(RETRY, 'pointer', $event)\"\n (click)=\"activate(RETRY, 'pointer', $event)\"\n >\n <span data-part=\"media\" aria-hidden=\"true\"\n ><span slIcon><svg slGlyph name=\"rotate-ccw\"></svg></span\n ></span>\n <span data-part=\"label\">{{ t('retry') }}</span>\n </div>\n }\n @if (showEmpty()) {\n <div data-part=\"empty\">{{ t('empty') }}</div>\n }\n <div data-part=\"status\" role=\"status\" aria-live=\"polite\">{{ statusMessage() }}</div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #row let-entity>\n <div\n role=\"option\"\n data-part=\"item\"\n [attr.data-value]=\"entity.id\"\n [id]=\"optionId(entity.id)\"\n [attr.aria-selected]=\"isChosen(entity.id)\"\n [attr.aria-disabled]=\"isDisabled(entity) ? true : null\"\n [attr.data-selected]=\"isChosen(entity.id) ? '' : null\"\n [attr.data-current]=\"highlightedValue() === entity.id ? '' : null\"\n [attr.data-disabled]=\"isDisabled(entity) ? '' : null\"\n (pointerdown)=\"keepFocus($event)\"\n (pointerenter)=\"onRowEnter(entity, $event)\"\n (click)=\"onRowClick(entity, $event)\"\n >\n @if (resolvedMedia() === 'avatar' && entity.avatar !== null) {\n <span data-part=\"media\">\n <span\n slAvatar\n decorative\n size=\"xs\"\n [name]=\"entity.avatar?.name ?? entity.label\"\n [initials]=\"initials(entity)\"\n [src]=\"entity.avatar?.src\"\n [shape]=\"entity.avatar?.shape ?? 'circle'\"\n [locale]=\"resolvedLocale()\"\n ></span>\n </span>\n }\n @if (optionTemplate(); as custom) {\n <ng-container\n [ngTemplateOutlet]=\"custom.template\"\n [ngTemplateOutletContext]=\"{\n $implicit: entity,\n query: query(),\n selected: isChosen(entity.id),\n current: highlightedValue() === entity.id,\n disabled: isDisabled(entity),\n }\"\n />\n } @else {\n <span data-part=\"label\">\n @if (resolvedHighlightMatch() && query() !== '') {\n <span\n slHighlight\n [text]=\"entity.label\"\n [query]=\"query()\"\n [locale]=\"resolvedLocale()\"\n ></span>\n } @else {\n {{ entity.label }}\n }\n </span>\n @if (entity.description) {\n <span data-part=\"description\">{{ entity.description }}</span>\n }\n @if (entity.meta) {\n <span data-part=\"meta\">{{ entity.meta }}</span>\n }\n }\n <span data-part=\"indicator\"\n ><span slIcon><svg slGlyph name=\"check\"></svg></span\n ></span>\n </div>\n </ng-template>\n `,\n})\nexport class SlEntityPicker implements ControlValueAccessor, Validator {\n protected readonly CREATE = CREATE_OPTION;\n protected readonly RETRY = RETRY_OPTION;\n\n private static readonly flag = (given: boolean | string | undefined) =>\n given === undefined ? undefined : booleanAttribute(given);\n private static readonly count = (given: number | string | undefined) =>\n given === undefined ? undefined : numberAttribute(given);\n\n // ── Inputs and models ──────────────────────────────────────────────────\n\n readonly selectionMode = input<EntityPickerSelectionMode>('single');\n readonly value = model<EntityPickerValue>(null);\n readonly valueChangeRequest = output<EntityPickerValueRequest>();\n readonly defaultValue = input<EntityPickerValue | undefined>(undefined);\n readonly inputValue = model<string>('');\n readonly inputValueChangeRequest = output<ChangeRequest<string>>();\n readonly open = model<boolean>(false);\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n readonly highlightedValue = model<string | null>(null);\n readonly highlightedValueChangeRequest = output<ChangeRequest<string | null>>();\n readonly scope = model<string | null>(null);\n readonly scopeChangeRequest = output<ChangeRequest<string | null>>();\n /** The reader asked to create what they typed. */\n readonly create = output<{ query: string; reason: EntityPickerValueReason }>();\n\n readonly source = input<EntitySource | undefined>(undefined);\n readonly items = input<readonly Entity[] | undefined>(undefined);\n readonly entities = input<readonly Entity[]>(EMPTY);\n readonly favorites = input<readonly Entity[]>(EMPTY);\n readonly recent = input<readonly Entity[]>(EMPTY);\n readonly scopes = input<readonly EntityPickerScope[]>([]);\n /**\n * Makes a record for what the reader typed. A record returned is chosen,\n * with reason `submit`; the `create` output fires either way.\n */\n readonly createEntity = input<\n ((query: string) => Entity | null | undefined | Promise<Entity | null | undefined>) | undefined\n >(undefined);\n\n readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n readonly placeholder = input<string>('');\n readonly name = input<string | undefined>(undefined);\n readonly form = input<string | undefined>(undefined);\n /** BCP 47, for the local filter and the mark. The language in force when absent. */\n readonly locale = input<string | undefined>(undefined);\n readonly max = input(undefined, { transform: SlEntityPicker.count });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * buttons, the sections, the chips, and the sentences the popup and the\n * announcer say.\n */\n readonly messages = input<PartialMessages<EntityPickerMessages> | undefined>(undefined);\n\n readonly size = input<EntityPickerSize | undefined>(undefined);\n readonly variant = input<EntityPickerVariant | undefined>(undefined);\n readonly media = input<EntityPickerMedia | undefined>(undefined);\n readonly overflow = input<EntityPickerOverflow | undefined>(undefined);\n /**\n * What opens the popup besides the trigger and the arrows. `input` (default): typing or a\n * press on the input; `focus`: every focus as well; `manual`: typing filters without opening.\n */\n readonly openOn = input<EntityPickerOpenOn | undefined>(undefined);\n readonly side = input<EntityPickerSide | undefined>(undefined);\n readonly width = input<EntityPickerWidth | undefined>(undefined);\n readonly strategy = input<EntityPickerStrategy | undefined>(undefined);\n readonly searchDelay = input(undefined, { transform: SlEntityPicker.count });\n readonly minQueryLength = input(undefined, { transform: SlEntityPicker.count });\n readonly clearable = input(undefined, { transform: SlEntityPicker.flag });\n readonly loop = input(undefined, { transform: SlEntityPicker.flag });\n readonly highlightMatch = input(undefined, { transform: SlEntityPicker.flag });\n readonly portal = input(undefined, { transform: SlEntityPicker.flag });\n readonly fullWidth = input(undefined, { transform: SlEntityPicker.flag });\n readonly disabled = input(undefined, { transform: SlEntityPicker.flag });\n readonly readOnly = input(undefined, { transform: SlEntityPicker.flag });\n readonly required = input(undefined, { transform: SlEntityPicker.flag });\n readonly invalid = input(undefined, { transform: SlEntityPicker.flag });\n\n protected readonly optionTemplate = contentChild(SlEntityPickerOption);\n protected readonly chipTemplate = contentChild(SlEntityPickerChip);\n\n // ── Wiring ─────────────────────────────────────────────────────────────\n\n private readonly defaults = injectEntityPickerDefaults();\n readonly field = inject(SlField, { optional: true });\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly hostId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly layerTemplate = viewChild.required<TemplateRef<unknown>>('layer');\n private readonly controlRef = viewChild.required<ElementRef<HTMLDivElement>>('control');\n private readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('input');\n private readonly chipsRef = viewChild<ElementRef<HTMLDivElement>>('chips');\n private readonly countRef = viewChild<ElementRef<HTMLSpanElement>>('count');\n\n private readonly identifier = Math.random().toString(36).slice(2, 8);\n readonly contentId = `sl-entity-picker-${this.identifier}`;\n private readonly ownId = `sl-entity-picker-input-${this.identifier}`;\n\n private readonly cache = createEntityCache();\n private readonly version = signal(0);\n private readonly searchState = signal<EntitySearchState | null>(null);\n private readonly typed = signal(false);\n protected readonly positioned = signal(false);\n protected readonly creating = signal(false);\n private readonly collapsedCount = signal(0);\n private readonly disabledByForm = signal<boolean | undefined>(undefined);\n private entry: Entry = 'keep';\n private readonly sessionConfig = { delay: 250, minQueryLength: 0 };\n private seeded = false;\n\n private readonly session: EntitySearchSession;\n private readonly resolver: EntityResolver;\n\n private view: EmbeddedViewRef<unknown> | null = null;\n private layerNode: HTMLElement | null = null;\n private surfaceNode: HTMLElement | null = null;\n private portalRoot: PortalRootHandle | null = null;\n private positionerHandle: PositionerHandle | null = null;\n private layer: DismissableLayerHandle | null = null;\n private presence: PresenceHandle | null = null;\n private observer: IntersectionObserver | null = null;\n private navigation: ArrowNavigationHandle | null = null;\n private removal: RemovalFocusHandle | null = null;\n private collapse: CollapseHandle | null = null;\n\n private onChange: (value: EntityPickerValue) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n // ── Resolution ─────────────────────────────────────────────────────────\n\n /** The family's words in the language in force, with this picker's `messages` laid over them. */\n readonly t = injectMessages(entityPickerMessages, this.messages);\n private readonly inForceLocale = injectLocale();\n /** The locale the local filter and the mark compare in: the `locale` input, or the language in force. */\n readonly resolvedLocale = computed(() => this.locale() ?? this.inForceLocale());\n readonly multiple = computed(() => this.selectionMode() === 'multiple');\n readonly resolvedSize = computed(() => this.size() ?? this.field?.size() ?? this.defaults.size);\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedMedia = computed(() => this.media() ?? this.defaults.media);\n readonly resolvedOverflow = computed(() => this.overflow() ?? this.defaults.overflow);\n readonly resolvedOpenOn = computed(() => this.openOn() ?? this.defaults.openOn);\n readonly resolvedWidth = computed(() => this.width() ?? this.defaults.width);\n readonly resolvedFullWidth = computed(() => this.fullWidth() ?? this.defaults.fullWidth);\n readonly resolvedHighlightMatch = computed(\n () => this.highlightMatch() ?? this.defaults.highlightMatch,\n );\n readonly resolvedDisabled = computed(\n () =>\n this.disabled() ?? this.disabledByForm() ?? this.field?.disabled() ?? this.defaults.disabled,\n );\n readonly resolvedReadOnly = computed(\n () => this.readOnly() ?? this.field?.readOnly() ?? this.defaults.readOnly,\n );\n readonly resolvedRequired = computed(\n () => this.required() ?? this.field?.required() ?? this.defaults.required,\n );\n readonly resolvedInvalid = computed(\n () => this.invalid() ?? this.field?.invalid() ?? this.defaults.invalid,\n );\n private readonly resolvedMinQuery = computed(\n () => this.minQueryLength() ?? this.defaults.minQueryLength,\n );\n private readonly resolvedSource = computed<EntitySource>(\n () =>\n this.source() ?? localEntitySource(this.items() ?? EMPTY, { locale: this.resolvedLocale() }),\n );\n\n readonly hasScopes = computed(() => this.scopes().length > 0);\n /** The labels the select shows before its options are built. */\n protected readonly scopeItems = computed(() =>\n this.scopes().map((item) => ({ value: item.id, label: item.label })),\n );\n readonly isOpen = computed(() => this.open() && !this.resolvedDisabled());\n readonly controlId = computed(() => this.hostId ?? this.field?.ids().control ?? this.ownId);\n readonly chosen = computed(() => idsOf(this.value()));\n readonly collapsing = computed(() => this.multiple() && this.resolvedOverflow() === 'collapse');\n readonly maxResolved = computed(() => (this.multiple() ? (this.max() ?? null) : null));\n readonly complete = computed(() => {\n const max = this.maxResolved();\n return max !== null && this.chosen().length >= max;\n });\n\n readonly query = computed(() =>\n this.multiple() ? this.inputValue() : this.typed() ? this.inputValue() : '',\n );\n\n readonly search = computed<EntitySearchState>(() => this.searchState() ?? this.session.state);\n\n readonly sections = computed(() => {\n this.version();\n const search = this.search();\n const results = search.answered || search.status === 'loading' ? search.items : EMPTY;\n return entitySections({\n query: this.query(),\n scope: this.scope(),\n chosen: this.multiple() ? this.cache.pick(this.chosen()) : EMPTY,\n favorites: this.favorites(),\n recent: this.recent(),\n results: search.status === 'error' || search.status === 'short' ? search.items : results,\n searchedEmpty: this.resolvedMinQuery() === 0,\n labels: {\n chosen: this.t('chosen'),\n favorites: this.t('favorites'),\n recent: this.t('recent'),\n results: this.t('results'),\n },\n });\n });\n\n readonly offerCreate = computed(\n () =>\n !this.creating() &&\n offersCreation({\n enabled: this.createEntity() !== undefined,\n query: this.query(),\n answered: this.search().status === 'ready',\n results: this.search().items,\n locale: this.resolvedLocale(),\n }),\n );\n\n readonly failed = computed(() => this.search().status === 'error');\n readonly firstPage = computed(\n () => this.search().status === 'loading' && this.search().items.length === 0,\n );\n readonly refreshing = computed(\n () =>\n this.search().status === 'loading' &&\n this.search().items.length > 0 &&\n this.search().indicator,\n );\n\n private readonly blocked = computed(() => {\n if (!this.complete()) return undefined;\n const chosen = new Set(this.chosen());\n return new Set(\n this.sections()\n .sections.flatMap((section) => section.entities)\n .map((entity) => entity.id)\n .filter((id) => !chosen.has(id)),\n );\n });\n\n readonly options = computed<readonly EntityOption[]>(() => {\n const blocked = this.blocked();\n const records = entityOptions({\n sections: this.sections().sections,\n create: this.offerCreate(),\n ...(blocked === undefined ? {} : { blocked }),\n });\n return this.failed()\n ? [\n ...records.filter((option) => option.key !== CREATE_OPTION),\n { key: RETRY_OPTION, disabled: false },\n ]\n : records;\n });\n\n readonly showEmpty = computed(() => {\n const records = this.options().filter(\n (option) => option.key !== CREATE_OPTION && option.key !== RETRY_OPTION,\n ).length;\n const status = this.search().status;\n return (\n records === 0 &&\n !this.offerCreate() &&\n !this.failed() &&\n !this.firstPage() &&\n status !== 'waiting' &&\n status !== 'short'\n );\n });\n\n readonly statusMessage = computed(() => {\n const search = this.search();\n if (search.status === 'short') {\n return this.t('minQuery', { count: this.resolvedMinQuery() });\n }\n if (search.status === 'error') return '';\n if (search.indicator && (this.firstPage() || search.loadingMore)) return this.t('loading');\n if (search.status === 'ready' && this.query() !== '') {\n return this.t('count', { count: search.total ?? search.items.length });\n }\n return '';\n });\n\n readonly activeDescendant = computed(() => {\n const held = this.highlightedValue();\n return this.isOpen() && held !== null ? this.optionId(held) : null;\n });\n\n readonly pendingSingle = computed(() => {\n this.version();\n const first = this.chosen()[0];\n return !this.multiple() && first !== undefined && this.resolver.status(first) === 'pending';\n });\n\n readonly busy = computed(() => this.search().indicator || this.pendingSingle());\n\n readonly showClear = computed(\n () =>\n (this.clearable() ?? this.defaults.clearable) &&\n !this.resolvedDisabled() &&\n !this.resolvedReadOnly() &&\n (this.chosen().length > 0 || this.inputValue() !== ''),\n );\n\n readonly showSelection = computed(() => {\n this.version();\n if (this.multiple() || this.resolvedMedia() !== 'avatar') return null;\n const first = this.chosen()[0];\n const entity = first === undefined ? undefined : this.cache.get(first);\n if (entity === undefined || entity.avatar === null) return null;\n return this.inputValue() === entity.label ? entity : null;\n });\n\n readonly chipsLabel = computed(() =>\n this.t('chips', {\n label: this.ariaLabel() ?? '',\n count: this.chosen().length,\n }).replace(/^, /, ''),\n );\n\n readonly moreText = computed(() => this.t('more', { count: Math.max(this.collapsedCount(), 1) }));\n readonly moreLabel = computed(() =>\n this.t('moreLabel', { count: Math.max(this.collapsedCount(), 1) }),\n );\n readonly createText = computed(() => this.t('create', { query: this.query().trim() }));\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /* The session is made before the inputs exist; it reads these two numbers\n at the time of each search, and `runSearch` writes them first. */\n const config = this.sessionConfig;\n this.session = createEntitySearch({\n source: {\n search: (request, options) => this.resolvedSource().search(request, options),\n },\n get delay() {\n return config.delay;\n },\n get minQueryLength() {\n return config.minQueryLength;\n },\n onChange: (state) => this.searchState.set(state),\n onResults: (found) => this.cache.remember(found),\n });\n\n this.resolver = createEntityResolver({\n source: {\n search: (request, options) => this.resolvedSource().search(request, options),\n resolve: (ids, options) => {\n const source = this.resolvedSource();\n return source.resolve === undefined\n ? Promise.reject(new Error('no resolve'))\n : source.resolve(ids, options);\n },\n },\n cache: this.cache,\n onChange: () => this.version.update((count) => count + 1),\n });\n\n /* What the application hands over is known before anything is asked. */\n effect(() => {\n this.cache.remember(this.entities());\n this.cache.remember(this.favorites());\n this.cache.remember(this.recent());\n untracked(() => this.version.update((count) => count + 1));\n });\n\n /* An id nobody showed the family is asked for once. */\n effect(() => {\n const ids = this.chosen();\n this.version();\n untracked(() => this.resolver.require(ids));\n });\n\n /* In single, the field reads the chosen name whenever the reader is not typing. */\n effect(() => {\n this.version();\n if (this.multiple() || this.typed()) return;\n const first = this.chosen()[0];\n const name = first === undefined ? '' : (this.cache.get(first)?.label ?? '');\n untracked(() => {\n if (this.inputValue() !== name) this.inputValue.set(name);\n });\n });\n\n /* The search follows the open popup, the query and the scope. */\n effect(() => {\n if (!this.isOpen()) return;\n const query = this.query();\n const scope = this.scope();\n untracked(() => this.runSearch(query, scope));\n });\n\n effect(() => {\n const open = this.isOpen();\n untracked(() => (open ? this.show() : this.hide()));\n });\n\n /* Where the highlight lands as the list changes. */\n effect(() => {\n const options = this.options();\n if (!this.isOpen()) return;\n untracked(() => this.placeHighlight(options));\n });\n\n /* The failure is said once, by the announcer. */\n effect(() => {\n if (!this.failed() || !this.isOpen()) return;\n untracked(() => this.announce(this.t('error')));\n });\n\n afterRenderEffect(() => {\n this.chosen();\n this.version();\n this.collapse?.refresh();\n this.observeEnd();\n });\n\n afterNextRender(() => this.wireChips());\n\n destroyRef.onDestroy(() => {\n this.session.dispose();\n this.resolver.dispose();\n this.navigation?.destroy();\n this.removal?.destroy();\n this.collapse?.destroy();\n this.teardown();\n });\n }\n\n ngOnInit() {\n const seed = this.defaultValue();\n if (seed !== undefined && !this.seeded && this.chosen().length === 0) {\n this.seeded = true;\n this.value.set(this.multiple() ? idsOf(seed) : (idsOf(seed)[0] ?? null));\n }\n }\n\n // ── Reading ────────────────────────────────────────────────────────────\n\n optionId(key: string): string {\n return `${this.contentId}-option-${encodeURIComponent(key)}`;\n }\n\n protected record(id: string): Entity | undefined {\n this.version();\n return this.cache.get(id);\n }\n\n protected resolution(id: string) {\n this.version();\n return this.resolver.status(id);\n }\n\n protected initials(entity: Entity) {\n return entityInitials(entity);\n }\n\n protected chipName(id: string) {\n const entity = this.record(id);\n if (entity !== undefined) return entityName(entity);\n return this.resolution(id) === 'missing'\n ? this.t('unresolvedChip', { id })\n : this.t('loadingChip', { id });\n }\n\n protected removeLabel(id: string) {\n return this.t('remove', {\n label: this.record(id)?.label ?? this.t('unresolved'),\n });\n }\n\n protected isChosen(id: string) {\n return this.chosen().includes(id);\n }\n\n protected isDisabled(entity: Entity) {\n return entity.disabled === true || this.blocked()?.has(entity.id) === true;\n }\n\n // ── Imperative ─────────────────────────────────────────────────────────\n\n focus() {\n this.inputRef()?.nativeElement.focus({ preventScroll: true });\n }\n\n /** Asks the source again for the current query. */\n refresh() {\n this.session.refresh();\n }\n\n // ── Requests ───────────────────────────────────────────────────────────\n\n setOpen(next: boolean, reason: EntityPickerOpenReason, source?: Event) {\n if (next === this.isOpen()) return;\n const state = createControllable<boolean>({\n initial: this.isOpen(),\n onRequest: (request) => this.openChangeRequest.emit(request),\n });\n if (!state.request(next, reason, source)) return;\n this.open.set(next);\n if (!next) {\n this.highlightedValue.set(null);\n this.entry = 'keep';\n }\n }\n\n setHighlighted(next: string | null, reason: EntityPickerHighlightReason, source?: Event) {\n if (next === this.highlightedValue()) return;\n const state = createControllable<string | null>({\n initial: this.highlightedValue(),\n onRequest: (request) => this.highlightedValueChangeRequest.emit(request),\n });\n if (!state.request(next, reason, source)) return;\n this.highlightedValue.set(next);\n if (next !== null) {\n const option = this.surfaceNode?.ownerDocument.getElementById(this.optionId(next));\n if (typeof option?.scrollIntoView === 'function') option.scrollIntoView({ block: 'nearest' });\n }\n }\n\n private setInput(next: string, reason: EntityPickerInputReason, source?: Event) {\n if (next === this.inputValue()) return;\n const state = createControllable<string>({\n initial: this.inputValue(),\n onRequest: (request) => this.inputValueChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.inputValue.set(next);\n }\n\n private requestIds(next: readonly string[], reason: EntityPickerValueReason, source?: Event) {\n const before = this.chosen();\n if (sameIds(before, next)) return false;\n const toValue = (ids: readonly string[]): EntityPickerValue =>\n this.multiple() ? ids : (ids[0] ?? null);\n const state = createControllable<EntityPickerValue>({\n initial: toValue(before),\n equals: (a, b) => sameIds(idsOf(a), idsOf(b)),\n onRequest: (request) =>\n this.valueChangeRequest.emit(\n Object.assign(request, { entities: this.cache.pick(next) }) as EntityPickerValueRequest,\n ),\n });\n if (!state.request(toValue(next), reason, source)) return false;\n this.value.set(toValue(next));\n this.onChange(toValue(next));\n this.onTouched();\n return true;\n }\n\n private setScope(next: string | null, reason: EntityPickerScopeReason, source?: Event) {\n if (next === this.scope()) return;\n const state = createControllable<string | null>({\n initial: this.scope(),\n onRequest: (request) => this.scopeChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.scope.set(next);\n }\n\n private announce(message: string) {\n getLiveAnnouncer(this.host.nativeElement.ownerDocument).announce(message, { repeat: true });\n }\n\n private labelOf(id: string | undefined) {\n return id === undefined ? '' : (this.cache.get(id)?.label ?? '');\n }\n\n private runSearch(query: string, scope: string | null) {\n this.sessionConfig.delay = this.searchDelay() ?? this.defaults.searchDelay;\n this.sessionConfig.minQueryLength = this.resolvedMinQuery();\n this.session.search({ query, scope, selected: this.chosen() });\n }\n\n activate(key: string, reason: EntityPickerValueReason, source?: Event) {\n if (key === RETRY_OPTION) {\n this.session.retry();\n this.focus();\n return;\n }\n if (key === CREATE_OPTION) {\n this.makeEntity(reason, source);\n if (!this.multiple()) this.setOpen(false, 'select', source);\n this.focus();\n return;\n }\n const entity = this.cache.get(key);\n if (entity?.disabled === true || this.blocked()?.has(key) === true) return;\n if (this.multiple()) {\n this.toggle(key, reason, source);\n return;\n }\n this.requestIds([key], reason, source);\n this.typed.set(false);\n this.setInput(this.labelOf(key), 'select', source);\n this.setOpen(false, 'select', source);\n }\n\n private toggle(id: string, reason: EntityPickerValueReason, source?: Event) {\n const chosen = this.chosen();\n if (chosen.includes(id)) {\n const next = chosen.filter((item) => item !== id);\n if (this.requestIds(next, reason, source)) {\n this.announce(this.t('removed', { label: this.labelOf(id), count: next.length }));\n }\n } else {\n const max = this.maxResolved();\n if (max !== null && chosen.length >= max) return;\n const next = [...chosen, id];\n if (this.requestIds(next, reason, source)) {\n this.announce(this.t('added', { label: this.labelOf(id), count: next.length }));\n if (max !== null && next.length === max) {\n this.announce(this.t('complete', { max }));\n }\n }\n }\n this.setInput('', 'select', source);\n }\n\n remove(id: string, source?: Event) {\n const next = this.chosen().filter((item) => item !== id);\n if (this.requestIds(next, 'remove', source)) {\n this.announce(\n this.t('removed', {\n label: this.labelOf(id) || this.t('unresolved'),\n count: next.length,\n }),\n );\n }\n }\n\n clear(source?: Event) {\n this.requestIds([], 'clear', source);\n this.typed.set(false);\n this.setInput('', 'clear', source);\n }\n\n private makeEntity(reason: EntityPickerValueReason, source?: Event) {\n const text = this.inputValue().trim();\n if (text === '') return;\n this.create.emit({ query: text, reason });\n const maker = this.createEntity();\n if (maker === undefined) return;\n const adopt = (made: Entity | null | undefined) => {\n this.creating.set(false);\n if (made === null || made === undefined) return;\n this.cache.remember([made]);\n this.version.update((count) => count + 1);\n if (this.multiple()) {\n const chosen = this.chosen();\n if (!chosen.includes(made.id)) {\n this.requestIds([...chosen, made.id], 'submit', source);\n this.announce(this.t('added', { label: made.label, count: chosen.length + 1 }));\n }\n this.setInput('', 'select', source);\n } else {\n this.requestIds([made.id], 'submit', source);\n this.typed.set(false);\n this.setInput(made.label, 'select', source);\n }\n };\n const result = maker(text);\n if (result instanceof Promise) {\n this.creating.set(true);\n result.then(adopt, () => this.creating.set(false));\n } else {\n adopt(result);\n }\n }\n\n // ── Events ─────────────────────────────────────────────────────────────\n\n protected onInput(event: Event) {\n const next = (event.target as HTMLInputElement).value;\n this.typed.set(true);\n this.setInput(next, 'keyboard', event);\n if (!this.isOpen() && !this.resolvedReadOnly() && this.resolvedOpenOn() !== 'manual') {\n this.entry = 'keep';\n this.setOpen(true, 'keyboard', event);\n }\n }\n\n protected onFocus() {\n if (this.resolvedOpenOn() !== 'focus' || this.resolvedReadOnly() || this.isOpen()) return;\n this.entry = this.multiple() ? 'keep' : 'selected';\n this.setOpen(true, 'keyboard');\n }\n\n protected onInputClick(event: MouseEvent) {\n if (\n event.defaultPrevented ||\n this.resolvedOpenOn() === 'manual' ||\n this.resolvedDisabled() ||\n this.resolvedReadOnly() ||\n this.isOpen()\n ) {\n return;\n }\n this.entry = this.multiple() ? 'keep' : 'selected';\n this.setOpen(true, 'pointer', event);\n }\n\n protected onBlur(event: FocusEvent) {\n this.onTouched();\n const next = event.relatedTarget;\n const control = this.controlRef().nativeElement;\n if (next instanceof Node && (this.surfaceNode?.contains(next) || control.contains(next)))\n return;\n const began = pressOrigin(control.ownerDocument);\n if (began instanceof Node && this.surfaceNode?.contains(began) === true) return;\n this.settle(event);\n if (this.isOpen()) this.setOpen(false, 'blur', event);\n }\n\n /** Text that is not the chosen name goes back to it; an emptied field clears the choice. */\n private settle(source?: Event) {\n if (this.multiple() || !this.typed()) return;\n if (this.inputValue().trim() === '') {\n if (this.chosen().length > 0) this.requestIds([], 'clear', source);\n this.typed.set(false);\n return;\n }\n this.typed.set(false);\n this.setInput(this.labelOf(this.chosen()[0]), 'blur', source);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (this.resolvedDisabled()) return;\n const input = event.target as HTMLInputElement;\n const action = entityPickerKey({\n key: event.key,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n composing: event.isComposing,\n open: this.isOpen(),\n selectionMode: this.selectionMode(),\n readOnly: this.resolvedReadOnly(),\n highlighted: this.highlightedValue() !== null,\n empty: input.value === '',\n caretAtStart: input.selectionStart === 0 && input.selectionEnd === 0,\n chips: this.chosen().length,\n dir: getComputedStyle(input).direction === 'rtl' ? 'rtl' : 'ltr',\n });\n\n switch (action.type) {\n case 'none':\n if (event.key === 'Tab' && this.isOpen()) this.setOpen(false, 'blur', event);\n return;\n case 'open':\n event.preventDefault();\n this.entry = action.highlight;\n this.setOpen(true, 'keyboard', event);\n return;\n case 'close':\n event.preventDefault();\n this.setOpen(false, action.reason, event);\n return;\n case 'move':\n event.preventDefault();\n this.move(action.intent, event);\n return;\n case 'activate': {\n event.preventDefault();\n const held = this.highlightedValue();\n if (held !== null) this.activate(held, 'keyboard', event);\n return;\n }\n case 'revert':\n event.preventDefault();\n this.revert(event);\n return;\n case 'clearQuery':\n event.preventDefault();\n this.setInput('', 'clear', event);\n return;\n case 'focusChip': {\n event.preventDefault();\n const chips = [\n ...(this.chipsRef()?.nativeElement.querySelectorAll<HTMLElement>(CHIP_SELECTOR) ?? []),\n ].filter((chip) => !chip.hidden);\n chips.at(-1)?.focus({ preventScroll: true });\n return;\n }\n }\n }\n\n private revert(source?: Event) {\n const first = this.chosen()[0];\n if (first === undefined) {\n this.typed.set(false);\n this.setInput('', 'programmatic', source);\n return;\n }\n const name = this.labelOf(first);\n if (this.inputValue() === name) {\n this.clear(source);\n return;\n }\n this.typed.set(false);\n this.setInput(name, 'programmatic', source);\n }\n\n private move(intent: MoveIntent, source?: Event) {\n const options = this.options();\n const from = options.findIndex((option) => option.key === this.highlightedValue());\n const next = moveIndex({\n enabled: options.map((option) => !option.disabled),\n from,\n intent,\n loop: this.loop() ?? this.defaults.loop,\n });\n if (next >= 0) this.setHighlighted(options[next]!.key, 'keyboard', source);\n }\n\n private placeHighlight(options: readonly EntityOption[]) {\n if (this.entry !== 'keep') {\n const enabled = options.filter((option) => !option.disabled);\n const chosen = this.chosen();\n const target =\n this.entry === 'last'\n ? enabled.at(-1)\n : this.entry === 'selected'\n ? options.find((option) => chosen.includes(option.key))\n : enabled[0];\n if (target !== undefined || this.entry !== 'selected') {\n this.entry = 'keep';\n if (target !== undefined) this.setHighlighted(target.key, 'keyboard');\n }\n return;\n }\n const held = this.highlightedValue();\n if (held !== null && !options.some((option) => option.key === held)) {\n this.setHighlighted(null, 'keyboard');\n }\n }\n\n protected onChipKey(id: string, event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const frozen = this.resolvedReadOnly() || this.resolvedDisabled();\n switch (event.key) {\n case 'Delete':\n case 'Backspace':\n if (frozen) return;\n event.preventDefault();\n this.remove(id, event);\n return;\n case 'Escape':\n event.preventDefault();\n this.focus();\n return;\n default:\n if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {\n this.focus();\n }\n }\n }\n\n protected onRemoveClick(id: string, event: MouseEvent) {\n event.stopPropagation();\n this.remove(id, event);\n this.focus();\n }\n\n protected onCountClick(event: MouseEvent) {\n this.typed.set(true);\n this.setInput('', 'programmatic', event);\n this.entry = 'keep';\n this.setOpen(true, 'pointer', event);\n this.focus();\n }\n\n protected onClear(event: MouseEvent) {\n this.clear(event);\n this.focus();\n }\n\n protected onToggle(event: MouseEvent) {\n if (this.resolvedDisabled() || this.resolvedReadOnly()) return;\n this.entry = this.multiple() ? 'keep' : 'selected';\n this.setOpen(!this.isOpen(), 'pointer', event);\n this.focus();\n }\n\n protected onScopeRequest(request: ChangeRequest<unknown>) {\n const next = typeof request.value === 'string' ? request.value : null;\n const reason =\n request.reason === 'pointer' || request.reason === 'keyboard'\n ? request.reason\n : 'programmatic';\n this.setScope(next, reason, request.source as Event | undefined);\n }\n\n protected onRowEnter(entity: Entity, event: PointerEvent) {\n if (this.isDisabled(entity)) return;\n this.setHighlighted(entity.id, 'pointer', event);\n }\n\n protected onRowClick(entity: Entity, event: MouseEvent) {\n if (this.isDisabled(entity)) return;\n this.activate(entity.id, 'pointer', event);\n this.focus();\n }\n\n protected keepFocus(event: PointerEvent) {\n if (event.defaultPrevented) return;\n event.preventDefault();\n }\n\n // ── The chips ──────────────────────────────────────────────────────────\n\n private wireChips() {\n const row = this.chipsRef()?.nativeElement;\n if (row === undefined) return;\n this.navigation = createArrowNavigation(row, {\n itemSelector: `${CHIP_SELECTOR}, [data-part='field'] > [data-part='input']`,\n loop: false,\n ownedKeys: (item) =>\n item instanceof HTMLInputElement && item.value !== ''\n ? ['ArrowLeft', 'ArrowRight', 'Home', 'End']\n : [],\n });\n this.removal = createRemovalFocus(row, {\n itemSelector: CHIP_SELECTOR,\n fallback: () => this.inputRef()?.nativeElement ?? null,\n });\n if (!this.collapsing()) return;\n this.collapse = createCollapse(row, {\n collapsible: (unit) => unit.dataset['part'] !== 'field',\n fixedSize: (unit) =>\n unit.dataset['part'] === 'field'\n ? Number.parseFloat(getComputedStyle(unit).minInlineSize) || 0\n : undefined,\n onChange: (units) => this.collapsedCount.set(units.length),\n trigger: () => this.countRef()?.nativeElement ?? null,\n units: () =>\n [...row.children].filter(\n (unit): unit is HTMLElement =>\n unit instanceof HTMLElement && !unit.hasAttribute('data-count'),\n ),\n });\n }\n\n // ── The layer ──────────────────────────────────────────────────────────\n\n private show() {\n this.build();\n this.position();\n this.bind();\n }\n\n private build() {\n if (this.view !== null) {\n this.presence?.sync(true);\n this.view.detectChanges();\n return;\n }\n const origin = this.inputRef()?.nativeElement ?? this.host.nativeElement;\n this.portalRoot = createPortalRoot({ origin, disabled: this.portal() === false });\n this.view = this.viewContainer.createEmbeddedView(this.layerTemplate());\n this.view.detectChanges();\n this.layerNode = this.view.rootNodes.find(\n (node: unknown): node is HTMLElement => node instanceof HTMLElement,\n ) as HTMLElement | null;\n this.surfaceNode = this.layerNode?.querySelector<HTMLElement>(\"[data-part='content']\") ?? null;\n if (this.layerNode === null) return;\n this.portalRoot.container?.append(this.layerNode);\n this.presence = createPresence({ present: true });\n this.presence.setNode(this.layerNode);\n }\n\n private position() {\n if (this.layerNode === null) return;\n this.positionerHandle?.destroy();\n this.positionerHandle = createPositioner(this.controlRef().nativeElement, this.layerNode, {\n align: 'start',\n alignOffset: 0,\n boundaryPadding: 8,\n flip: true,\n hideWhenDetached: true,\n matchWidth: this.resolvedWidth() === 'anchor',\n shift: true,\n side: this.side() ?? this.defaults.side,\n sideOffset: 4,\n strategy: this.strategy() ?? this.defaults.strategy,\n });\n void this.positionerHandle.update().then(() => this.positioned.set(true));\n }\n\n private bind() {\n if (this.layerNode === null) return;\n this.layer = createDismissableLayer(this.layerNode, {\n branches: [this.controlRef().nativeElement],\n escape: true,\n focusOutside: false,\n modal: false,\n outsidePress: true,\n scrollLock: false,\n onDismiss: (request) => {\n this.setOpen(\n false,\n request.reason === 'escape' ? 'escape' : 'outsidePress',\n request.source as Event | undefined,\n );\n },\n });\n }\n\n private observeEnd() {\n this.observer?.disconnect();\n this.observer = null;\n const root = this.surfaceNode;\n if (root === null || !this.search().hasMore || typeof IntersectionObserver !== 'function')\n return;\n const sentinel = root.querySelector<HTMLElement>('[data-sentinel]');\n if (sentinel === null) return;\n this.observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) this.session.more();\n },\n { root },\n );\n this.observer.observe(sentinel);\n }\n\n private hide() {\n this.layer?.destroy();\n this.positionerHandle?.destroy();\n this.observer?.disconnect();\n this.layer = null;\n this.positionerHandle = null;\n this.observer = null;\n this.positioned.set(false);\n this.teardown();\n }\n\n private teardown() {\n this.layer?.destroy();\n this.positionerHandle?.destroy();\n this.presence?.destroy();\n this.portalRoot?.release();\n this.layerNode?.remove();\n this.view?.destroy();\n this.layer = null;\n this.positionerHandle = null;\n this.presence = null;\n this.portalRoot = null;\n this.layerNode = null;\n this.surfaceNode = null;\n this.view = null;\n }\n\n // ── Forms ──────────────────────────────────────────────────────────────\n\n writeValue(value: EntityPickerValue) {\n this.value.set(this.multiple() ? idsOf(value ?? []) : (idsOf(value)[0] ?? null));\n this.typed.set(false);\n }\n\n registerOnChange(fn: (value: EntityPickerValue) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabledByForm.set(isDisabled);\n }\n\n validate(): ValidationErrors | null {\n this.version();\n const chosen = this.chosen();\n if (this.resolvedRequired() && chosen.length === 0) return { required: true };\n const missing = chosen.filter((id) => this.resolver.status(id) === 'missing');\n return missing.length > 0 ? { unresolved: { ids: missing } } : null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA6FA;AACO,MAAM,sBAAsB,GAAyB;AAC1D,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,MAAM,EAAE,OAAO;AACf,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,SAAS;;MAGL,sBAAsB,GAAG,IAAI,cAAc,CACtD,gCAAgC,EAChC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,sBAAsB,EAAE;AAG/D;;;;;AAKG;AACG,SAAU,2BAA2B,CAAC,QAAuC,EAAA;IACjF,OAAO;AACL,QAAA,OAAO,EAAE,sBAAsB;QAC/B,UAAU,EAAE,MAA2B;AACrC,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACpF,MAAM,MAAM,GAAyB,EAAE,IAAI,SAAS,IAAI,sBAAsB,CAAC,EAAE;AACjF,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACnD,IAAI,KAAK,KAAK,SAAS;AAAG,oBAAA,MAA6C,CAAC,GAAG,CAAC,GAAG,KAAK;YACtF;AACA,YAAA,OAAO,MAAM;QACf,CAAC;KACF;AACH;SAEgB,0BAA0B,GAAA;AACxC,IAAA,OAAO,MAAM,CAAC,sBAAsB,CAAC;AACvC;;ACvCA;MAEa,oBAAoB,CAAA;AACtB,IAAA,QAAQ,GAAG,MAAM,CAAyC,WAAW,CAAC;AAE/E,IAAA,OAAO,sBAAsB,CAC3B,UAAgC,EAChC,OAAgB,EAAA;QAEhB,OAAO,OAAO,KAAK,IAAI;IACzB;uGARW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,mCAAmC,EAAE,UAAU,EAAE,IAAI,EAAE;;AAY9E;MAEa,kBAAkB,CAAA;AACpB,IAAA,QAAQ,GAAG,MAAM,CAAuC,WAAW,CAAC;AAE7E,IAAA,OAAO,sBAAsB,CAC3B,UAA8B,EAC9B,OAAgB,EAAA;QAEhB,OAAO,OAAO,KAAK,IAAI;IACzB;uGARW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,iCAAiC,EAAE,UAAU,EAAE,IAAI,EAAE;;AAc5E,MAAM,aAAa,GAAG,yDAAyD;AAC/E,MAAM,KAAK,GAAsB,EAAE;AAEnC,SAAS,KAAK,CAAC,KAAoC,EAAA;AACjD,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,KAA0B;AAC3D,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AACjD;AAEA,SAAS,OAAO,CAAC,CAAoB,EAAE,CAAoB,EAAA;IACzD,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,KAAK,KAAK,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;AACzE;AAEA;;;;;;;;;;;;AAYG;MAibU,cAAc,CAAA;IACN,MAAM,GAAG,aAAa;IACtB,KAAK,GAAG,YAAY;IAE/B,OAAgB,IAAI,GAAG,CAAC,KAAmC,KACjE,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC;IACnD,OAAgB,KAAK,GAAG,CAAC,KAAkC,KACjE,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;;IAIjD,aAAa,GAAG,KAAK,CAA4B,QAAQ;sFAAC;IAC1D,KAAK,GAAG,KAAK,CAAoB,IAAI;8EAAC;IACtC,kBAAkB,GAAG,MAAM,EAA4B;IACvD,YAAY,GAAG,KAAK,CAAgC,SAAS;qFAAC;IAC9D,UAAU,GAAG,KAAK,CAAS,EAAE;mFAAC;IAC9B,uBAAuB,GAAG,MAAM,EAAyB;IACzD,IAAI,GAAG,KAAK,CAAU,KAAK;6EAAC;IAC5B,iBAAiB,GAAG,MAAM,EAA0B;IACpD,gBAAgB,GAAG,KAAK,CAAgB,IAAI;yFAAC;IAC7C,6BAA6B,GAAG,MAAM,EAAgC;IACtE,KAAK,GAAG,KAAK,CAAgB,IAAI;8EAAC;IAClC,kBAAkB,GAAG,MAAM,EAAgC;;IAE3D,MAAM,GAAG,MAAM,EAAsD;IAErE,MAAM,GAAG,KAAK,CAA2B,SAAS;+EAAC;IACnD,KAAK,GAAG,KAAK,CAAgC,SAAS;8EAAC;IACvD,QAAQ,GAAG,KAAK,CAAoB,KAAK;iFAAC;IAC1C,SAAS,GAAG,KAAK,CAAoB,KAAK;kFAAC;IAC3C,MAAM,GAAG,KAAK,CAAoB,KAAK;+EAAC;IACxC,MAAM,GAAG,KAAK,CAA+B,EAAE;+EAAC;AACzD;;;AAGG;IACM,YAAY,GAAG,KAAK,CAE3B,SAAS;qFAAC;IAEH,SAAS,GAAG,KAAK,CAAqB,SAAS,iFAAI,KAAK,EAAE,YAAY,EAAA,CAAG;IACzE,WAAW,GAAG,KAAK,CAAS,EAAE;oFAAC;IAC/B,IAAI,GAAG,KAAK,CAAqB,SAAS;6EAAC;IAC3C,IAAI,GAAG,KAAK,CAAqB,SAAS;6EAAC;;IAE3C,MAAM,GAAG,KAAK,CAAqB,SAAS;+EAAC;IAC7C,GAAG,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,KAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,KAAK,EAAA,CAAG;AACpE;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAoD,SAAS;iFAAC;IAE9E,IAAI,GAAG,KAAK,CAA+B,SAAS;6EAAC;IACrD,OAAO,GAAG,KAAK,CAAkC,SAAS;gFAAC;IAC3D,KAAK,GAAG,KAAK,CAAgC,SAAS;8EAAC;IACvD,QAAQ,GAAG,KAAK,CAAmC,SAAS;iFAAC;AACtE;;;AAGG;IACM,MAAM,GAAG,KAAK,CAAiC,SAAS;+EAAC;IACzD,IAAI,GAAG,KAAK,CAA+B,SAAS;6EAAC;IACrD,KAAK,GAAG,KAAK,CAAgC,SAAS;8EAAC;IACvD,QAAQ,GAAG,KAAK,CAAmC,SAAS;iFAAC;IAC7D,WAAW,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,aAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,KAAK,EAAA,CAAG;IACnE,cAAc,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,KAAK,EAAA,CAAG;IACtE,SAAS,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,IAAI,EAAA,CAAG;IAChE,IAAI,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,MAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,IAAI,EAAA,CAAG;IAC3D,cAAc,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,IAAI,EAAA,CAAG;IACrE,MAAM,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,IAAI,EAAA,CAAG;IAC7D,SAAS,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,IAAI,EAAA,CAAG;IAChE,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,IAAI,EAAA,CAAG;IAC/D,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,IAAI,EAAA,CAAG;IAC/D,QAAQ,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,IAAI,EAAA,CAAG;IAC/D,OAAO,GAAG,KAAK,CAAC,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,SAAS,EAAE,cAAc,CAAC,IAAI,EAAA,CAAG;IAEpD,cAAc,GAAG,YAAY,CAAC,oBAAoB;uFAAC;IACnD,YAAY,GAAG,YAAY,CAAC,kBAAkB;qFAAC;;IAIjD,QAAQ,GAAG,0BAA0B,EAAE;IAC/C,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACnC,IAAA,IAAI,GAAG,MAAM,CAA0B,UAAU,CAAC;AAClD,IAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,IAAA,MAAM,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE,IAAA,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAuB,OAAO;sFAAC;AACjE,IAAA,UAAU,GAAG,SAAS,CAAC,QAAQ,CAA6B,SAAS;mFAAC;IACtE,QAAQ,GAAG,SAAS,CAA+B,OAAO;iFAAC;IAC3D,QAAQ,GAAG,SAAS,CAA6B,OAAO;iFAAC;IACzD,QAAQ,GAAG,SAAS,CAA8B,OAAO;iFAAC;AAE1D,IAAA,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,IAAA,SAAS,GAAG,CAAA,iBAAA,EAAoB,IAAI,CAAC,UAAU,EAAE;AACzC,IAAA,KAAK,GAAG,CAAA,uBAAA,EAA0B,IAAI,CAAC,UAAU,EAAE;IAEnD,KAAK,GAAG,iBAAiB,EAAE;IAC3B,OAAO,GAAG,MAAM,CAAC,CAAC;gFAAC;IACnB,WAAW,GAAG,MAAM,CAA2B,IAAI;oFAAC;IACpD,KAAK,GAAG,MAAM,CAAC,KAAK;8EAAC;IACnB,UAAU,GAAG,MAAM,CAAC,KAAK;mFAAC;IAC1B,QAAQ,GAAG,MAAM,CAAC,KAAK;iFAAC;IAC1B,cAAc,GAAG,MAAM,CAAC,CAAC;uFAAC;IAC1B,cAAc,GAAG,MAAM,CAAsB,SAAS;uFAAC;IAChE,KAAK,GAAU,MAAM;IACZ,aAAa,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE;IAC1D,MAAM,GAAG,KAAK;AAEL,IAAA,OAAO;AACP,IAAA,QAAQ;IAEjB,IAAI,GAAoC,IAAI;IAC5C,SAAS,GAAuB,IAAI;IACpC,WAAW,GAAuB,IAAI;IACtC,UAAU,GAA4B,IAAI;IAC1C,gBAAgB,GAA4B,IAAI;IAChD,KAAK,GAAkC,IAAI;IAC3C,QAAQ,GAA0B,IAAI;IACtC,QAAQ,GAAgC,IAAI;IAC5C,UAAU,GAAiC,IAAI;IAC/C,OAAO,GAA8B,IAAI;IACzC,QAAQ,GAA0B,IAAI;AAEtC,IAAA,QAAQ,GAAuC,MAAM,SAAS;AAC9D,IAAA,SAAS,GAAe,MAAM,SAAS;;;IAKtC,CAAC,GAAG,cAAc,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC/C,aAAa,GAAG,YAAY,EAAE;;AAEtC,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;uFAAC;IACtE,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,KAAK,UAAU;iFAAC;IAC9D,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;qFAAC;AACtF,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;wFAAC;AACzE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;sFAAC;AACnE,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAAC;AAC5E,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;uFAAC;AACtE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;sFAAC;AACnE,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS;0FAAC;AAC/E,IAAA,sBAAsB,GAAG,QAAQ,CACxC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc;+FAC5D;IACQ,gBAAgB,GAAG,QAAQ,CAClC,MACE,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAC/F;IACQ,gBAAgB,GAAG,QAAQ,CAClC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAC1E;IACQ,gBAAgB,GAAG,QAAQ,CAClC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAC1E;IACQ,eAAe,GAAG,QAAQ,CACjC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;wFACvE;AACgB,IAAA,gBAAgB,GAAG,QAAQ,CAC1C,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc;yFAC5D;AACgB,IAAA,cAAc,GAAG,QAAQ,CACxC,MACE,IAAI,CAAC,MAAM,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;uFAC/F;AAEQ,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC;kFAAC;;AAE1C,IAAA,UAAU,GAAG,QAAQ,CAAC,MACvC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;mFACrE;AACQ,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;+EAAC;IAChE,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK;kFAAC;AAClF,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;+EAAC;AAC5C,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,UAAU;mFAAC;IACtF,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC;oFAAC;AAC7E,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;AAC9B,QAAA,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,GAAG;IACpD,CAAC;iFAAC;AAEO,IAAA,KAAK,GAAG,QAAQ,CAAC,MACxB,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;8EAC5E;AAEQ,IAAA,MAAM,GAAG,QAAQ,CAAoB,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;+EAAC;AAEpF,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;QAChC,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK;AACrF,QAAA,OAAO,cAAc,CAAC;AACpB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK;AAChE,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,OAAO;AACxF,YAAA,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC;AAC5C,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,gBAAA,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;AAC9B,gBAAA,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3B,aAAA;AACF,SAAA,CAAC;IACJ,CAAC;iFAAC;IAEO,WAAW,GAAG,QAAQ,CAC7B,MACE,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,QAAA,cAAc,CAAC;AACb,YAAA,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,SAAS;AAC1C,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YACnB,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,OAAO;AAC1C,YAAA,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK;AAC5B,YAAA,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE;SAC9B,CAAC;oFACL;AAEQ,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,OAAO;+EAAC;IACzD,SAAS,GAAG,QAAQ,CAC3B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;kFAC7E;AACQ,IAAA,UAAU,GAAG,QAAQ,CAC5B,MACE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,SAAS;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS;mFAC1B;AAEgB,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,SAAS;QACtC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACrC,QAAA,OAAO,IAAI,GAAG,CACZ,IAAI,CAAC,QAAQ;aACV,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ;aAC9C,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;AACzB,aAAA,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACnC;IACH,CAAC;gFAAC;AAEO,IAAA,OAAO,GAAG,QAAQ,CAA0B,MAAK;AACxD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,MAAM,OAAO,GAAG,aAAa,CAAC;AAC5B,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ;AAClC,YAAA,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAA,IAAI,OAAO,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAC9C,SAAA,CAAC;QACF,OAAO,IAAI,CAAC,MAAM;AAChB,cAAE;AACE,gBAAA,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,KAAK,aAAa,CAAC;AAC3D,gBAAA,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE;AACvC;cACD,OAAO;IACb,CAAC;gFAAC;AAEO,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACjC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CACnC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,KAAK,aAAa,IAAI,MAAM,CAAC,GAAG,KAAK,YAAY,CACxE,CAAC,MAAM;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM;QACnC,QACE,OAAO,KAAK,CAAC;YACb,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,MAAM,KAAK,SAAS;YACpB,MAAM,KAAK,OAAO;IAEtB,CAAC;kFAAC;AAEO,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AACrC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC/D;AACA,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;AAAE,YAAA,OAAO,EAAE;AACxC,QAAA,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC,WAAW,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1F,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACpD,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxE;AACA,QAAA,OAAO,EAAE;IACX,CAAC;sFAAC;AAEO,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AACxC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACpC,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI;IACpE,CAAC;yFAAC;AAEO,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;QACrC,IAAI,CAAC,OAAO,EAAE;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;IAC7F,CAAC;sFAAC;AAEO,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE;6EAAC;AAEtE,IAAA,SAAS,GAAG,QAAQ,CAC3B,MACE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS;QAC5C,CAAC,IAAI,CAAC,gBAAgB,EAAE;QACxB,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxB,SAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;kFACzD;AAEQ,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;QACrC,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ;AAAE,YAAA,OAAO,IAAI;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACtE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;AAC/D,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI;IAC3D,CAAC;sFAAC;IAEO,UAAU,GAAG,QAAQ,CAAC,MAC7B,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;AACd,QAAA,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE;AAC7B,QAAA,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM;AAC5B,KAAA,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;mFACtB;IAEQ,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;iFAAC;IACxF,SAAS,GAAG,QAAQ,CAAC,MAC5B,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;kFACnE;IACQ,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;mFAAC;AAEtF,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAErC;AACoE;AACpE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa;AACjC,QAAA,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC;AAChC,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;AAC7E,aAAA;AACD,YAAA,IAAI,KAAK,GAAA;gBACP,OAAO,MAAM,CAAC,KAAK;YACrB,CAAC;AACD,YAAA,IAAI,cAAc,GAAA;gBAChB,OAAO,MAAM,CAAC,cAAc;YAC9B,CAAC;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAChD,YAAA,SAAS,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AACjD,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;AACnC,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;AAC5E,gBAAA,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAI;AACxB,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;AACpC,oBAAA,OAAO,MAAM,CAAC,OAAO,KAAK;0BACtB,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC;0BACtC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC;gBAClC,CAAC;AACF,aAAA;YACD,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC;AAC1D,SAAA,CAAC;;QAGF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;AAC5D,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;YACzB,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7C,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;gBAAE;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;YAC5E,SAAS,CAAC,MAAK;AACb,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI;AAAE,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3D,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAE;AACpB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/C,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;YAC1B,SAAS,CAAC,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACrD,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAE;YACpB,SAAS,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC/C,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAE;AACtC,YAAA,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,QAAA,CAAC,CAAC;QAEF,iBAAiB,CAAC,MAAK;YACrB,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YACxB,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;QAEF,eAAe,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AAEvC,QAAA,UAAU,CAAC,SAAS,CAAC,MAAK;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;YACxB,IAAI,CAAC,QAAQ,EAAE;AACjB,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;AAChC,QAAA,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACpE,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1E;IACF;;AAIA,IAAA,QAAQ,CAAC,GAAW,EAAA;QAClB,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,QAAA,EAAW,kBAAkB,CAAC,GAAG,CAAC,CAAA,CAAE;IAC9D;AAEU,IAAA,MAAM,CAAC,EAAU,EAAA;QACzB,IAAI,CAAC,OAAO,EAAE;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3B;AAEU,IAAA,UAAU,CAAC,EAAU,EAAA;QAC7B,IAAI,CAAC,OAAO,EAAE;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IACjC;AAEU,IAAA,QAAQ,CAAC,MAAc,EAAA;AAC/B,QAAA,OAAO,cAAc,CAAC,MAAM,CAAC;IAC/B;AAEU,IAAA,QAAQ,CAAC,EAAU,EAAA;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS;AAAE,YAAA,OAAO,UAAU,CAAC,MAAM,CAAC;AACnD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK;cAC3B,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE;cAC/B,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC;IACnC;AAEU,IAAA,WAAW,CAAC,EAAU,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;AACtB,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;AACtD,SAAA,CAAC;IACJ;AAEU,IAAA,QAAQ,CAAC,EAAU,EAAA;QAC3B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnC;AAEU,IAAA,UAAU,CAAC,MAAc,EAAA;AACjC,QAAA,OAAO,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI;IAC5E;;IAIA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAC/D;;IAGA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACxB;;AAIA,IAAA,OAAO,CAAC,IAAa,EAAE,MAA8B,EAAE,MAAc,EAAA;AACnE,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;YAAE;QAC5B,MAAM,KAAK,GAAG,kBAAkB,CAAU;AACxC,YAAA,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;AACtB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7D,SAAA,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YAAE;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM;QACrB;IACF;AAEA,IAAA,cAAc,CAAC,IAAmB,EAAE,MAAmC,EAAE,MAAc,EAAA;AACrF,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,gBAAgB,EAAE;YAAE;QACtC,MAAM,KAAK,GAAG,kBAAkB,CAAgB;AAC9C,YAAA,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAChC,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;AACzE,SAAA,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YAAE;AAC1C,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClF,YAAA,IAAI,OAAO,MAAM,EAAE,cAAc,KAAK,UAAU;gBAAE,MAAM,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC/F;IACF;AAEQ,IAAA,QAAQ,CAAC,IAAY,EAAE,MAA+B,EAAE,MAAc,EAAA;AAC5E,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE;YAAE;QAChC,MAAM,KAAK,GAAG,kBAAkB,CAAS;AACvC,YAAA,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;AAC1B,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;AACnE,SAAA,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAAE,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IACpE;AAEQ,IAAA,UAAU,CAAC,IAAuB,EAAE,MAA+B,EAAE,MAAc,EAAA;AACzF,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;AAAE,YAAA,OAAO,KAAK;QACvC,MAAM,OAAO,GAAG,CAAC,GAAsB,KACrC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC1C,MAAM,KAAK,GAAG,kBAAkB,CAAoB;AAClD,YAAA,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;AACxB,YAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,YAAA,SAAS,EAAE,CAAC,OAAO,KACjB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAA6B,CACxF;AACJ,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;AAAE,YAAA,OAAO,KAAK;QAC/D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,QAAQ,CAAC,IAAmB,EAAE,MAA+B,EAAE,MAAc,EAAA;AACnF,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;YAAE;QAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAgB;AAC9C,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;AACrB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,SAAA,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/D;AAEQ,IAAA,QAAQ,CAAC,OAAe,EAAA;QAC9B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7F;AAEQ,IAAA,OAAO,CAAC,EAAsB,EAAA;QACpC,OAAO,EAAE,KAAK,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IAClE;IAEQ,SAAS,CAAC,KAAa,EAAE,KAAoB,EAAA;AACnD,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW;QAC1E,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC3D,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IAChE;AAEA,IAAA,QAAQ,CAAC,GAAW,EAAE,MAA+B,EAAE,MAAc,EAAA;AACnE,QAAA,IAAI,GAAG,KAAK,YAAY,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACpB,IAAI,CAAC,KAAK,EAAE;YACZ;QACF;AACA,QAAA,IAAI,GAAG,KAAK,aAAa,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;AAC/B,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC3D,IAAI,CAAC,KAAK,EAAE;YACZ;QACF;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,QAAA,IAAI,MAAM,EAAE,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE;AACpE,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;YAChC;QACF;QACA,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;IACvC;AAEQ,IAAA,MAAM,CAAC,EAAU,EAAE,MAA+B,EAAE,MAAc,EAAA;AACxE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACvB,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACnF;QACF;aAAO;AACL,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE;YAC9B,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG;gBAAE;YAC1C,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/E,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;AACvC,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5C;YACF;QACF;QACA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC;IACrC;IAEA,MAAM,CAAC,EAAU,EAAE,MAAc,EAAA;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;YAC3C,IAAI,CAAC,QAAQ,CACX,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;AAChB,gBAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;gBAC/C,KAAK,EAAE,IAAI,CAAC,MAAM;AACnB,aAAA,CAAC,CACH;QACH;IACF;AAEA,IAAA,KAAK,CAAC,MAAc,EAAA;QAClB,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC;IACpC;IAEQ,UAAU,CAAC,MAA+B,EAAE,MAAc,EAAA;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;QACrC,IAAI,IAAI,KAAK,EAAE;YAAE;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE;QACjC,IAAI,KAAK,KAAK,SAAS;YAAE;AACzB,QAAA,MAAM,KAAK,GAAG,CAAC,IAA+B,KAAI;AAChD,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;gBAAE;YACzC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC;AACzC,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AAC7B,oBAAA,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC;oBACvD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;gBACjF;gBACA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC;YACrC;iBAAO;AACL,gBAAA,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC5C,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC7C;AACF,QAAA,CAAC;AACD,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,MAAM,YAAY,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpD;aAAO;YACL,KAAK,CAAC,MAAM,CAAC;QACf;IACF;;AAIU,IAAA,OAAO,CAAC,KAAY,EAAA;AAC5B,QAAA,MAAM,IAAI,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK;AACrD,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,QAAQ,EAAE;AACpF,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;QACvC;IACF;IAEU,OAAO,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE;AACnF,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,UAAU;AAClD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;IAChC;AAEU,IAAA,YAAY,CAAC,KAAiB,EAAA;QACtC,IACE,KAAK,CAAC,gBAAgB;AACtB,YAAA,IAAI,CAAC,cAAc,EAAE,KAAK,QAAQ;YAClC,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,EAAE,EACb;YACA;QACF;AACA,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,UAAU;QAClD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;IACtC;AAEU,IAAA,MAAM,CAAC,KAAiB,EAAA;QAChC,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa;QAC/C,IAAI,IAAI,YAAY,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtF;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC;AAChD,QAAA,IAAI,KAAK,YAAY,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE;AACzE,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;IACvD;;AAGQ,IAAA,MAAM,CAAC,MAAc,EAAA;QAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAAE;QACtC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AACnC,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC;AAClE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YACrB;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;IAC/D;AAEU,IAAA,SAAS,CAAC,KAAoB,EAAA;QACtC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE;AAC7B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;QAC9C,MAAM,MAAM,GAAG,eAAe,CAAC;YAC7B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,WAAW;AAC5B,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;AACnB,YAAA,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;AACnC,YAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACjC,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI;AAC7C,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,EAAE;YACzB,YAAY,EAAE,KAAK,CAAC,cAAc,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,CAAC;AACpE,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM;AAC3B,YAAA,GAAG,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,KAAK,GAAG,KAAK,GAAG,KAAK;AACjE,SAAA,CAAC;AAEF,QAAA,QAAQ,MAAM,CAAC,IAAI;AACjB,YAAA,KAAK,MAAM;gBACT,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;oBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;gBAC5E;AACF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS;gBAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;gBACrC;AACF,YAAA,KAAK,OAAO;gBACV,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;gBACzC;AACF,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;gBAC/B;YACF,KAAK,UAAU,EAAE;gBACf,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;gBACpC,IAAI,IAAI,KAAK,IAAI;oBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;gBACzD;YACF;AACA,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAClB;AACF,YAAA,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC;gBACjC;YACF,KAAK,WAAW,EAAE;gBAChB,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,MAAM,KAAK,GAAG;AACZ,oBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,gBAAgB,CAAc,aAAa,CAAC,IAAI,EAAE,CAAC;AACvF,iBAAA,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAChC,gBAAA,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBAC5C;YACF;;IAEJ;AAEQ,IAAA,MAAM,CAAC,MAAc,EAAA;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9B,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC;YACzC;QACF;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAClB;QACF;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC;IAC7C;IAEQ,IAAI,CAAC,MAAkB,EAAE,MAAc,EAAA;AAC7C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClF,MAAM,IAAI,GAAG,SAAS,CAAC;AACrB,YAAA,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;YAClD,IAAI;YACJ,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;AACxC,SAAA,CAAC;QACF,IAAI,IAAI,IAAI,CAAC;AAAE,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC;IAC5E;AAEQ,IAAA,cAAc,CAAC,OAAgC,EAAA;AACrD,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;AACzB,YAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC5D,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,YAAA,MAAM,MAAM,GACV,IAAI,CAAC,KAAK,KAAK;AACb,kBAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACf,kBAAE,IAAI,CAAC,KAAK,KAAK;AACf,sBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;AACtD,sBAAE,OAAO,CAAC,CAAC,CAAC;YAClB,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;AACrD,gBAAA,IAAI,CAAC,KAAK,GAAG,MAAM;gBACnB,IAAI,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC;YACvE;YACA;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE;QACpC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE;AACnE,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC;QACvC;IACF;IAEU,SAAS,CAAC,EAAU,EAAE,KAAoB,EAAA;QAClD,IAAI,KAAK,CAAC,gBAAgB;YAAE;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACjE,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,QAAQ;AACb,YAAA,KAAK,WAAW;AACd,gBAAA,IAAI,MAAM;oBAAE;gBACZ,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;gBACtB;AACF,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,KAAK,EAAE;gBACZ;AACF,YAAA;gBACE,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC/E,IAAI,CAAC,KAAK,EAAE;gBACd;;IAEN;IAEU,aAAa,CAAC,EAAU,EAAE,KAAiB,EAAA;QACnD,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE;IACd;AAEU,IAAA,YAAY,CAAC,KAAiB,EAAA;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE;IACd;AAEU,IAAA,OAAO,CAAC,KAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACjB,IAAI,CAAC,KAAK,EAAE;IACd;AAEU,IAAA,QAAQ,CAAC,KAAiB,EAAA;QAClC,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAAE;AACxD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,UAAU;AAClD,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE;IACd;AAEU,IAAA,cAAc,CAAC,OAA+B,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI;AACrE,QAAA,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK;cAC/C,OAAO,CAAC;cACR,cAAc;QACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAA2B,CAAC;IAClE;IAEU,UAAU,CAAC,MAAc,EAAE,KAAmB,EAAA;AACtD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE;QAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;IAClD;IAEU,UAAU,CAAC,MAAc,EAAE,KAAiB,EAAA;AACpD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE;IACd;AAEU,IAAA,SAAS,CAAC,KAAmB,EAAA;QACrC,IAAI,KAAK,CAAC,gBAAgB;YAAE;QAC5B,KAAK,CAAC,cAAc,EAAE;IACxB;;IAIQ,SAAS,GAAA;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa;QAC1C,IAAI,GAAG,KAAK,SAAS;YAAE;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE;YAC3C,YAAY,EAAE,CAAA,EAAG,aAAa,CAAA,2CAAA,CAA6C;AAC3E,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,SAAS,EAAE,CAAC,IAAI,KACd,IAAI,YAAY,gBAAgB,IAAI,IAAI,CAAC,KAAK,KAAK;kBAC/C,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK;AAC3C,kBAAE,EAAE;AACT,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE;AACrC,YAAA,YAAY,EAAE,aAAa;YAC3B,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,IAAI,IAAI;AACvD,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE;AAClC,YAAA,WAAW,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO;AACvD,YAAA,SAAS,EAAE,CAAC,IAAI,KACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;AACvB,kBAAE,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI;AAC7D,kBAAE,SAAS;AACf,YAAA,QAAQ,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1D,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,IAAI,IAAI;AACrD,YAAA,KAAK,EAAE,MACL,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CACtB,CAAC,IAAI,KACH,IAAI,YAAY,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAClE;AACJ,SAAA,CAAC;IACJ;;IAIQ,IAAI,GAAA;QACV,IAAI,CAAC,KAAK,EAAE;QACZ,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,IAAI,EAAE;IACb;IAEQ,KAAK,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACzB;QACF;AACA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa;AACxE,QAAA,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,EAAE,CAAC;AACjF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AACvE,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CACvC,CAAC,IAAa,KAA0B,IAAI,YAAY,WAAW,CAC9C;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAc,uBAAuB,CAAC,IAAI,IAAI;AAC9F,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE;QAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IACvC;IAEQ,QAAQ,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE;AACxF,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,eAAe,EAAE,CAAC;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,QAAQ;AAC7C,YAAA,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;AACvC,YAAA,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACpD,SAAA,CAAC;QACF,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3E;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI;YAAE;QAC7B,IAAI,CAAC,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE;YAClD,QAAQ,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC;AAC3C,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAI;gBACrB,IAAI,CAAC,OAAO,CACV,KAAK,EACL,OAAO,CAAC,MAAM,KAAK,QAAQ,GAAG,QAAQ,GAAG,cAAc,EACvD,OAAO,CAAC,MAA2B,CACpC;YACH,CAAC;AACF,SAAA,CAAC;IACJ;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW;AAC7B,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,IAAI,OAAO,oBAAoB,KAAK,UAAU;YACvF;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAc,iBAAiB,CAAC;QACnE,IAAI,QAAQ,KAAK,IAAI;YAAE;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CACtC,CAAC,OAAO,KAAI;AACV,YAAA,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,CAAC;AAAE,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACxE,QAAA,CAAC,EACD,EAAE,IAAI,EAAE,CACT;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC;IAEQ,IAAI,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AACrB,QAAA,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE;AAChC,QAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEQ,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;AACrB,QAAA,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE;AAChC,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE;AACxB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AACxB,QAAA,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;;AAIA,IAAA,UAAU,CAAC,KAAwB,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB;AAEA,IAAA,gBAAgB,CAAC,EAAsC,EAAA;AACrD,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;IACrC;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS,CAAC;QAC7E,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI;IACrE;uGAxjCW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,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,KAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,KAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,iCAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,mBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,sBAAA,EAAA,oDAAA,EAAA,iBAAA,EAAA,sDAAA,EAAA,EAAA,EAAA,SAAA,EAnad;AACT,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1F,YAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;SACvF,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA8egD,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACtB,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA3dvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0YT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2k8BAAA,EAAA,kgZAAA,EAAA,i2FAAA,EAAA,y3MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAxaS,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,0BAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA0a/E,cAAc,EAAA,UAAA,EAAA,CAAA;kBAhb1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAAA,UAAA,EAChB,IAAI,EAAA,QAAA,EACN,gBAAgB,EAAA,eAAA,EACT,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAA,SAAA,EAOhF;AACT,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1F,wBAAA,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;qBACvF,EAAA,IAAA,EACK;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,kBAAkB,EAAE,gBAAgB;AACpC,wBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,wBAAA,4BAA4B,EAAE,iBAAiB;AAC/C,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,wBAAwB,EAAE,iCAAiC;AAC3D,wBAAA,kBAAkB,EAAE,sBAAsB;AAC1C,wBAAA,sBAAsB,EAAE,gCAAgC;AACxD,wBAAA,sBAAsB,EAAE,gCAAgC;AACxD,wBAAA,qBAAqB,EAAE,+BAA+B;AACtD,wBAAA,sBAAsB,EAAE,gCAAgC;AACxD,wBAAA,qBAAqB,EAAE,oBAAoB;AAC3C,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,aAAa,EAAE,8BAA8B;AAC7C,wBAAA,wBAAwB,EAAE,oDAAoD;AAC9E,wBAAA,mBAAmB,EAAE,sDAAsD;qBAC5E,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0YT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,2k8BAAA,EAAA,kgZAAA,EAAA,i2FAAA,EAAA,y3MAAA,CAAA,EAAA;2gJAgFgD,oBAAoB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MACtB,kBAAkB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CASS,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACJ,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAClB,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACT,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACN,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACzqB5E;;AAEG;;"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-entity-picker.mjs","sources":["../../entity-picker/src/entity-picker-defaults.ts","../../entity-picker/src/entity-picker.ts","../../entity-picker/src/slotted-angular-entity-picker.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { Entity } from '@slotted/core/entity-picker';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\nexport type {\n Entity,\n EntityAvatar,\n EntitySearchRequest,\n EntitySearchResult,\n EntitySource,\n} from '@slotted/core/entity-picker';\n\nexport type EntityPickerSize = 'sm' | 'md' | 'lg';\nexport type EntityPickerVariant = 'outline' | 'subtle' | 'plain';\nexport type EntityPickerMedia = 'avatar' | 'none';\nexport type EntityPickerOverflow = 'collapse' | 'wrap';\nexport type EntityPickerOpenOn = 'input' | 'focus' | 'manual';\nexport type EntityPickerSide = 'bottom' | 'top';\nexport type EntityPickerWidth = 'anchor' | 'content';\nexport type EntityPickerStrategy = 'absolute' | 'fixed';\nexport type EntityPickerSelectionMode = 'single' | 'multiple';\n\n/** An id in `single`, an array of ids in `multiple`. */\nexport type EntityPickerValue = string | null | readonly string[];\n\nexport type EntityPickerValueReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'select' | 'remove' | 'clear' | 'submit' | 'programmatic'\n>;\nexport type EntityPickerInputReason = Extract<\n ChangeReason,\n 'keyboard' | 'select' | 'clear' | 'blur' | 'programmatic'\n>;\nexport type EntityPickerOpenReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'select' | 'blur' | 'programmatic'\n>;\nexport type EntityPickerHighlightReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'programmatic'\n>;\nexport type EntityPickerScopeReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'programmatic'\n>;\n\n/** A request to change the chosen ids, carrying the records known for them. */\nexport interface EntityPickerValueRequest extends ChangeRequest<EntityPickerValue> {\n readonly entities: readonly Entity[];\n}\n\nexport interface EntityPickerScope {\n readonly id: string;\n readonly label: string;\n}\n\n/** What an option template receives. */\nexport interface EntityPickerOptionContext {\n readonly $implicit: Entity;\n readonly query: string;\n readonly selected: boolean;\n readonly current: boolean;\n readonly disabled: boolean;\n}\n\n/** What a chip template receives. */\nexport interface EntityPickerChipContext {\n readonly $implicit: Entity;\n}\n\n/** What an application sets once for every picker under it. */\nexport interface EntityPickerDefaults {\n clearable: boolean;\n disabled: boolean;\n fullWidth: boolean;\n highlightMatch: boolean;\n invalid: boolean;\n loop: boolean;\n media: EntityPickerMedia;\n minQueryLength: number;\n openOn: EntityPickerOpenOn;\n overflow: EntityPickerOverflow;\n portal: boolean;\n readOnly: boolean;\n required: boolean;\n searchDelay: number;\n side: EntityPickerSide;\n size: EntityPickerSize;\n strategy: EntityPickerStrategy;\n variant: EntityPickerVariant;\n width: EntityPickerWidth;\n}\n\n/** The contract's defaults, `specs/components/entity-picker/contract.json`. */\nexport const ENTITY_PICKER_FALLBACK: EntityPickerDefaults = {\n clearable: true,\n disabled: false,\n fullWidth: true,\n highlightMatch: true,\n invalid: false,\n loop: false,\n media: 'avatar',\n minQueryLength: 0,\n openOn: 'input',\n overflow: 'collapse',\n portal: true,\n readOnly: false,\n required: false,\n searchDelay: 250,\n side: 'bottom',\n size: 'md',\n strategy: 'absolute',\n variant: 'outline',\n width: 'content',\n};\n\nexport const ENTITY_PICKER_DEFAULTS = new InjectionToken<EntityPickerDefaults>(\n 'slotted entity picker defaults',\n { providedIn: 'root', factory: () => ENTITY_PICKER_FALLBACK },\n);\n\n/**\n * An application decides once how its pickers look and how long they wait. A\n * picker that states any of it itself still wins, and a nested provider\n * overrides only what it names. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideEntityPickerDefaults(defaults: Partial<EntityPickerDefaults>) {\n return {\n provide: ENTITY_PICKER_DEFAULTS,\n useFactory: (): EntityPickerDefaults => {\n const inherited = inject(ENTITY_PICKER_DEFAULTS, { skipSelf: true, optional: true });\n const merged: EntityPickerDefaults = { ...(inherited ?? ENTITY_PICKER_FALLBACK) };\n for (const [key, value] of Object.entries(defaults)) {\n if (value !== undefined) (merged as unknown as Record<string, unknown>)[key] = value;\n }\n return merged;\n },\n };\n}\n\nexport function injectEntityPickerDefaults(): EntityPickerDefaults {\n return inject(ENTITY_PICKER_DEFAULTS);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { EmbeddedViewRef } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlAvatar } from '@slotted/angular/avatar';\nimport { SlField } from '@slotted/angular/field';\nimport { SlHighlight } from '@slotted/angular/highlight';\nimport { SlSelect, SlSelectItem } from '@slotted/angular/select';\nimport { moveIndex } from '@slotted/core/collection';\nimport type { MoveIntent } from '@slotted/core/collection';\nimport { createDismissableLayer, pressOrigin } from '@slotted/core/dismissable-layer';\nimport type { DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport {\n CREATE_OPTION,\n RETRY_OPTION,\n createEntityCache,\n createEntityResolver,\n createEntitySearch,\n entityInitials,\n entityName,\n entityOptions,\n entityPickerKey,\n entitySections,\n localEntitySource,\n offersCreation,\n} from '@slotted/core/entity-picker';\nimport type {\n Entity,\n EntityOption,\n EntityResolver,\n EntitySearchSession,\n EntitySearchState,\n EntitySource,\n} from '@slotted/core/entity-picker';\nimport { createArrowNavigation, createRemovalFocus } from '@slotted/core/focus';\nimport type { ArrowNavigationHandle, RemovalFocusHandle } from '@slotted/core/focus';\nimport {\n entityPickerMessages,\n type EntityPickerMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createCollapse } from '@slotted/core/overflow';\nimport type { CollapseHandle } from '@slotted/core/overflow';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport type { PositionerHandle } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceHandle } from '@slotted/core/presence';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport { injectEntityPickerDefaults } from './entity-picker-defaults';\nimport type {\n EntityPickerChipContext,\n EntityPickerHighlightReason,\n EntityPickerInputReason,\n EntityPickerMedia,\n EntityPickerOpenOn,\n EntityPickerOpenReason,\n EntityPickerOptionContext,\n EntityPickerOverflow,\n EntityPickerScope,\n EntityPickerScopeReason,\n EntityPickerSelectionMode,\n EntityPickerSide,\n EntityPickerSize,\n EntityPickerStrategy,\n EntityPickerValue,\n EntityPickerValueReason,\n EntityPickerValueRequest,\n EntityPickerVariant,\n EntityPickerWidth,\n} from './entity-picker-defaults';\n\n/** Replaces the content of an option; the face, the check and the row stay the family's. */\n@Directive({ selector: 'ng-template[slEntityPickerOption]', standalone: true })\nexport class SlEntityPickerOption {\n readonly template = inject<TemplateRef<EntityPickerOptionContext>>(TemplateRef);\n\n static ngTemplateContextGuard(\n _directive: SlEntityPickerOption,\n context: unknown,\n ): context is EntityPickerOptionContext {\n return context !== null;\n }\n}\n\n/** Replaces the words of a chip; the face and the remove button stay the family's. */\n@Directive({ selector: 'ng-template[slEntityPickerChip]', standalone: true })\nexport class SlEntityPickerChip {\n readonly template = inject<TemplateRef<EntityPickerChipContext>>(TemplateRef);\n\n static ngTemplateContextGuard(\n _directive: SlEntityPickerChip,\n context: unknown,\n ): context is EntityPickerChipContext {\n return context !== null;\n }\n}\n\ntype Entry = 'selected' | 'first' | 'last' | 'keep';\n\nconst CHIP_SELECTOR = \"[data-part='chips'] > [data-ui='tag']:not([data-count])\";\nconst EMPTY: readonly Entity[] = [];\n\nfunction idsOf(value: EntityPickerValue | undefined): readonly string[] {\n if (Array.isArray(value)) return value as readonly string[];\n return typeof value === 'string' ? [value] : [];\n}\n\nfunction sameIds(a: readonly string[], b: readonly string[]) {\n return a.length === b.length && a.every((id, index) => id === b[index]);\n}\n\n/**\n * A field that chooses records from a remote collection.\n *\n * The value is an id — or, with `selectionMode=\"multiple\"`, an array of ids —\n * and every request to change it carries the records the family knows for\n * the new value. The search, the next page and the resolution of an id\n * nobody showed the family are `source`'s; the delay, the abort and the cache\n * are the family's, in `@slotted/core/entity-picker`, shared with React.\n *\n * The field is one line in a form: a chosen set collapses into a \"+N\" chip\n * whose records the popup lists first, and a scope stands in front of the\n * field, not above it.\n */\n@Component({\n selector: 'sl-entity-picker',\n standalone: true,\n exportAs: 'slEntityPicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, SlAvatar, SlGlyph, SlHighlight, SlIcon, SlSelect, SlSelectItem],\n styleUrls: [\n '../../../styles/src/entity-picker/entity-picker.css',\n '../../../styles/src/tag/tag.css',\n '../../../styles/src/spinner/spinner.css',\n '../../../styles/src/skeleton/skeleton.css',\n ],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlEntityPicker), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlEntityPicker), multi: true },\n ],\n host: {\n 'data-ui': 'entity-picker',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-selection-mode]': 'selectionMode()',\n '[attr.data-overflow]': 'resolvedOverflow()',\n '[attr.data-full-width]': \"resolvedFullWidth() ? '' : null\",\n '[attr.data-open]': \"isOpen() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() ? '' : null\",\n '[attr.data-required]': \"resolvedRequired() ? '' : null\",\n '[attr.data-loading]': \"busy() ? '' : null\",\n '[attr.data-complete]': \"complete() ? '' : null\",\n '[attr.role]': \"hasScopes() ? 'group' : null\",\n '[attr.aria-labelledby]': 'hasScopes() ? (field?.ids()?.label ?? null) : null',\n '[attr.aria-label]': 'hasScopes() && !field ? (ariaLabel() ?? null) : null',\n },\n template: `\n @if (hasScopes()) {\n <div data-part=\"scope\">\n <sl-select\n [value]=\"scope()\"\n [items]=\"scopeItems()\"\n [size]=\"resolvedSize()\"\n [variant]=\"resolvedVariant()\"\n [disabled]=\"resolvedDisabled() || resolvedReadOnly()\"\n [aria-label]=\"t('scope')\"\n (valueChangeRequest)=\"onScopeRequest($event)\"\n >\n @for (item of scopes(); track item.id) {\n <sl-select-item [value]=\"item.id\" [label]=\"item.label\" />\n }\n </sl-select>\n </div>\n }\n <div data-part=\"control\" #control>\n @if (showSelection(); as chosen) {\n <span data-part=\"selection\" aria-hidden=\"true\">\n <span\n slAvatar\n decorative\n size=\"xs\"\n [name]=\"chosen.avatar?.name ?? chosen.label\"\n [initials]=\"initials(chosen)\"\n [src]=\"chosen.avatar?.src\"\n [shape]=\"chosen.avatar?.shape ?? 'circle'\"\n [locale]=\"resolvedLocale()\"\n ></span>\n </span>\n }\n @if (multiple()) {\n <div data-part=\"values\" role=\"grid\" [attr.aria-label]=\"chipsLabel()\">\n <div data-part=\"chips\" role=\"row\" #chips>\n @for (id of chosen(); track id) {\n <span\n data-ui=\"tag\"\n data-part=\"root\"\n data-size=\"sm\"\n data-tone=\"secondary\"\n role=\"gridcell\"\n tabindex=\"-1\"\n [attr.data-value]=\"id\"\n [attr.data-variant]=\"record(id) ? 'soft' : 'outline'\"\n [attr.data-loading]=\"resolution(id) === 'pending' ? '' : null\"\n [attr.data-unresolved]=\"resolution(id) === 'missing' ? '' : null\"\n [attr.data-disabled]=\"resolvedDisabled() ? '' : null\"\n [attr.aria-busy]=\"resolution(id) === 'pending' ? true : null\"\n [attr.aria-label]=\"chipName(id)\"\n (keydown)=\"onChipKey(id, $event)\"\n >\n <span data-part=\"body\">\n @if (resolvedMedia() === 'avatar' && record(id)?.avatar !== null) {\n <span data-part=\"start\">\n @if (record(id); as entity) {\n <span\n slAvatar\n decorative\n size=\"xs\"\n [name]=\"entity.avatar?.name ?? entity.label\"\n [initials]=\"initials(entity)\"\n [src]=\"entity.avatar?.src\"\n [shape]=\"entity.avatar?.shape ?? 'circle'\"\n [locale]=\"resolvedLocale()\"\n ></span>\n } @else if (resolution(id) === 'pending') {\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"circle\"\n data-size=\"xs\"\n data-loading\n aria-hidden=\"true\"\n ></span>\n } @else if (resolution(id) === 'missing') {\n <span slIcon><svg slGlyph name=\"circle-alert\"></svg></span>\n }\n </span>\n }\n <span data-part=\"label\">\n @if (resolution(id) === 'pending' && !record(id)) {\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"text\"\n data-loading\n aria-hidden=\"true\"\n ></span>\n } @else if (record(id) && chipTemplate(); as chip) {\n <ng-container\n [ngTemplateOutlet]=\"chip.template\"\n [ngTemplateOutletContext]=\"{ $implicit: record(id)! }\"\n />\n } @else {\n {{ record(id)?.label ?? t('unresolved') }}\n }\n </span>\n </span>\n @if (!resolvedReadOnly() && !resolvedDisabled()) {\n <button\n type=\"button\"\n data-part=\"remove\"\n tabindex=\"-1\"\n [attr.aria-label]=\"removeLabel(id)\"\n (click)=\"onRemoveClick(id, $event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n </span>\n }\n @if (collapsing()) {\n <span\n #count\n data-ui=\"tag\"\n data-part=\"root\"\n data-size=\"sm\"\n data-tone=\"secondary\"\n data-variant=\"outline\"\n data-count\n role=\"gridcell\"\n tabindex=\"-1\"\n hidden\n [attr.aria-label]=\"moreLabel()\"\n (click)=\"onCountClick($event)\"\n >\n <span data-part=\"body\">\n <span data-part=\"label\">{{ moreText() }}</span>\n </span>\n </span>\n }\n <span data-part=\"field\" role=\"gridcell\">\n <ng-container [ngTemplateOutlet]=\"field_\" />\n </span>\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"field_\" />\n }\n @if (showClear()) {\n <button\n type=\"button\"\n data-part=\"clear\"\n [attr.aria-label]=\"t('clear')\"\n (click)=\"onClear($event)\"\n >\n <span slIcon><svg slGlyph name=\"x\"></svg></span>\n </button>\n }\n <button\n type=\"button\"\n tabindex=\"-1\"\n data-part=\"trigger\"\n [disabled]=\"resolvedDisabled()\"\n [attr.aria-label]=\"t('trigger')\"\n (click)=\"onToggle($event)\"\n >\n @if (busy()) {\n <span data-part=\"busy\" data-ui=\"spinner\" aria-hidden=\"true\"></span>\n } @else {\n <span data-part=\"arrow\"\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></span>\n }\n </button>\n </div>\n\n <ng-template #field_>\n <input\n #input\n type=\"text\"\n role=\"combobox\"\n data-part=\"input\"\n autocomplete=\"off\"\n aria-autocomplete=\"list\"\n [id]=\"controlId()\"\n [value]=\"inputValue()\"\n [disabled]=\"resolvedDisabled()\"\n [readOnly]=\"resolvedReadOnly()\"\n [required]=\"resolvedRequired() && chosen().length === 0\"\n [placeholder]=\"placeholder()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"isOpen() ? contentId : null\"\n [attr.aria-activedescendant]=\"activeDescendant()\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-describedby]=\"field?.describedBy() ?? null\"\n [attr.aria-readonly]=\"resolvedReadOnly() ? true : null\"\n [attr.aria-invalid]=\"resolvedInvalid() ? true : null\"\n [attr.aria-busy]=\"pendingSingle() ? true : null\"\n (input)=\"onInput($event)\"\n (click)=\"onInputClick($event)\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur($event)\"\n />\n </ng-template>\n\n <ng-template #layer>\n <div\n data-ui=\"entity-picker\"\n data-part=\"positioner\"\n data-align=\"start\"\n [attr.data-size]=\"resolvedSize()\"\n [attr.data-width]=\"resolvedWidth()\"\n [attr.data-open]=\"isOpen() && positioned() ? '' : null\"\n [attr.inert]=\"isOpen() ? null : ''\"\n >\n <div\n data-part=\"content\"\n role=\"listbox\"\n [id]=\"contentId\"\n [attr.aria-label]=\"ariaLabel() ?? null\"\n [attr.aria-multiselectable]=\"multiple() ? true : null\"\n [attr.aria-busy]=\"search().status === 'loading' ? true : null\"\n [attr.data-loading]=\"refreshing() ? '' : null\"\n >\n @if (!(failed() && search().items.length === 0)) {\n @for (section of sections().sections; track section.key) {\n @if (sections().headings) {\n <div\n data-part=\"group\"\n role=\"group\"\n [attr.aria-labelledby]=\"contentId + '-' + section.key\"\n >\n <div data-part=\"group-label\" [id]=\"contentId + '-' + section.key\">\n {{ section.label }}\n </div>\n @for (entity of section.entities; track entity.id) {\n <ng-container\n [ngTemplateOutlet]=\"row\"\n [ngTemplateOutletContext]=\"{ $implicit: entity }\"\n />\n }\n </div>\n } @else {\n @for (entity of section.entities; track entity.id) {\n <ng-container\n [ngTemplateOutlet]=\"row\"\n [ngTemplateOutletContext]=\"{ $implicit: entity }\"\n />\n }\n }\n }\n }\n @if (firstPage() && search().indicator) {\n <div data-part=\"placeholder\" aria-hidden=\"true\">\n @for (row of [0, 1, 2]; track row) {\n <div>\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"circle\"\n data-size=\"xs\"\n data-loading\n ></span>\n <span data-ui=\"skeleton\" data-part=\"root\" data-shape=\"text\" data-loading></span>\n <span data-ui=\"skeleton\" data-part=\"root\" data-shape=\"text\" data-loading></span>\n </div>\n }\n </div>\n }\n @if (search().loadingMore && search().indicator) {\n <div data-part=\"more\" aria-hidden=\"true\">\n <div>\n <span\n data-ui=\"skeleton\"\n data-part=\"root\"\n data-shape=\"circle\"\n data-size=\"xs\"\n data-loading\n ></span>\n <span data-ui=\"skeleton\" data-part=\"root\" data-shape=\"text\" data-loading></span>\n <span data-ui=\"skeleton\" data-part=\"root\" data-shape=\"text\" data-loading></span>\n </div>\n </div>\n }\n <div data-sentinel></div>\n @if (offerCreate()) {\n <div\n role=\"option\"\n data-part=\"item\"\n data-create\n aria-selected=\"false\"\n [attr.data-value]=\"CREATE\"\n [id]=\"optionId(CREATE)\"\n [attr.data-current]=\"highlightedValue() === CREATE ? '' : null\"\n [attr.data-loading]=\"creating() ? '' : null\"\n (pointerdown)=\"keepFocus($event)\"\n (pointerenter)=\"setHighlighted(CREATE, 'pointer', $event)\"\n (click)=\"activate(CREATE, 'pointer', $event)\"\n >\n <span data-part=\"media\" aria-hidden=\"true\"\n ><span slIcon><svg slGlyph name=\"plus\"></svg></span\n ></span>\n <span data-part=\"label\">{{ createText() }}</span>\n </div>\n }\n @if (failed()) {\n <div data-part=\"error\">\n <span slIcon><svg slGlyph name=\"circle-alert\"></svg></span>{{ t('error') }}\n </div>\n <div\n role=\"option\"\n data-part=\"item\"\n data-retry\n aria-selected=\"false\"\n [attr.data-value]=\"RETRY\"\n [id]=\"optionId(RETRY)\"\n [attr.data-current]=\"highlightedValue() === RETRY ? '' : null\"\n (pointerdown)=\"keepFocus($event)\"\n (pointerenter)=\"setHighlighted(RETRY, 'pointer', $event)\"\n (click)=\"activate(RETRY, 'pointer', $event)\"\n >\n <span data-part=\"media\" aria-hidden=\"true\"\n ><span slIcon><svg slGlyph name=\"rotate-ccw\"></svg></span\n ></span>\n <span data-part=\"label\">{{ t('retry') }}</span>\n </div>\n }\n @if (showEmpty()) {\n <div data-part=\"empty\">{{ t('empty') }}</div>\n }\n <div data-part=\"status\" role=\"status\" aria-live=\"polite\">{{ statusMessage() }}</div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #row let-entity>\n <div\n role=\"option\"\n data-part=\"item\"\n [attr.data-value]=\"entity.id\"\n [id]=\"optionId(entity.id)\"\n [attr.aria-selected]=\"isChosen(entity.id)\"\n [attr.aria-disabled]=\"isDisabled(entity) ? true : null\"\n [attr.data-selected]=\"isChosen(entity.id) ? '' : null\"\n [attr.data-current]=\"highlightedValue() === entity.id ? '' : null\"\n [attr.data-disabled]=\"isDisabled(entity) ? '' : null\"\n (pointerdown)=\"keepFocus($event)\"\n (pointerenter)=\"onRowEnter(entity, $event)\"\n (click)=\"onRowClick(entity, $event)\"\n >\n @if (resolvedMedia() === 'avatar' && entity.avatar !== null) {\n <span data-part=\"media\">\n <span\n slAvatar\n decorative\n size=\"xs\"\n [name]=\"entity.avatar?.name ?? entity.label\"\n [initials]=\"initials(entity)\"\n [src]=\"entity.avatar?.src\"\n [shape]=\"entity.avatar?.shape ?? 'circle'\"\n [locale]=\"resolvedLocale()\"\n ></span>\n </span>\n }\n @if (optionTemplate(); as custom) {\n <ng-container\n [ngTemplateOutlet]=\"custom.template\"\n [ngTemplateOutletContext]=\"{\n $implicit: entity,\n query: query(),\n selected: isChosen(entity.id),\n current: highlightedValue() === entity.id,\n disabled: isDisabled(entity),\n }\"\n />\n } @else {\n <span data-part=\"label\">\n @if (resolvedHighlightMatch() && query() !== '') {\n <span\n slHighlight\n [text]=\"entity.label\"\n [query]=\"query()\"\n [locale]=\"resolvedLocale()\"\n ></span>\n } @else {\n {{ entity.label }}\n }\n </span>\n @if (entity.description) {\n <span data-part=\"description\">{{ entity.description }}</span>\n }\n @if (entity.meta) {\n <span data-part=\"meta\">{{ entity.meta }}</span>\n }\n }\n <span data-part=\"indicator\"\n ><span slIcon><svg slGlyph name=\"check\"></svg></span\n ></span>\n </div>\n </ng-template>\n `,\n})\nexport class SlEntityPicker implements ControlValueAccessor, Validator {\n protected readonly CREATE = CREATE_OPTION;\n protected readonly RETRY = RETRY_OPTION;\n\n private static readonly flag = (given: boolean | string | undefined) =>\n given === undefined ? undefined : booleanAttribute(given);\n private static readonly count = (given: number | string | undefined) =>\n given === undefined ? undefined : numberAttribute(given);\n\n // ── Inputs and models ──────────────────────────────────────────────────\n\n readonly selectionMode = input<EntityPickerSelectionMode>('single');\n readonly value = model<EntityPickerValue>(null);\n readonly valueChangeRequest = output<EntityPickerValueRequest>();\n readonly defaultValue = input<EntityPickerValue | undefined>(undefined);\n readonly inputValue = model<string>('');\n readonly inputValueChangeRequest = output<ChangeRequest<string>>();\n readonly open = model<boolean>(false);\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n readonly highlightedValue = model<string | null>(null);\n readonly highlightedValueChangeRequest = output<ChangeRequest<string | null>>();\n readonly scope = model<string | null>(null);\n readonly scopeChangeRequest = output<ChangeRequest<string | null>>();\n /** The reader asked to create what they typed. */\n readonly create = output<{ query: string; reason: EntityPickerValueReason }>();\n\n readonly source = input<EntitySource | undefined>(undefined);\n readonly items = input<readonly Entity[] | undefined>(undefined);\n readonly entities = input<readonly Entity[]>(EMPTY);\n readonly favorites = input<readonly Entity[]>(EMPTY);\n readonly recent = input<readonly Entity[]>(EMPTY);\n readonly scopes = input<readonly EntityPickerScope[]>([]);\n /**\n * Makes a record for what the reader typed. A record returned is chosen,\n * with reason `submit`; the `create` output fires either way.\n */\n readonly createEntity = input<\n ((query: string) => Entity | null | undefined | Promise<Entity | null | undefined>) | undefined\n >(undefined);\n\n readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n readonly placeholder = input<string>('');\n readonly name = input<string | undefined>(undefined);\n readonly form = input<string | undefined>(undefined);\n /** BCP 47, for the local filter and the mark. The language in force when absent. */\n readonly locale = input<string | undefined>(undefined);\n readonly max = input(undefined, { transform: SlEntityPicker.count });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * buttons, the sections, the chips, and the sentences the popup and the\n * announcer say.\n */\n readonly messages = input<PartialMessages<EntityPickerMessages> | undefined>(undefined);\n\n readonly size = input<EntityPickerSize | undefined>(undefined);\n readonly variant = input<EntityPickerVariant | undefined>(undefined);\n readonly media = input<EntityPickerMedia | undefined>(undefined);\n readonly overflow = input<EntityPickerOverflow | undefined>(undefined);\n /**\n * What opens the popup besides the trigger and the arrows. `input` (default): typing or a\n * press on the input; `focus`: every focus as well; `manual`: typing filters without opening.\n */\n readonly openOn = input<EntityPickerOpenOn | undefined>(undefined);\n readonly side = input<EntityPickerSide | undefined>(undefined);\n readonly width = input<EntityPickerWidth | undefined>(undefined);\n readonly strategy = input<EntityPickerStrategy | undefined>(undefined);\n readonly searchDelay = input(undefined, { transform: SlEntityPicker.count });\n readonly minQueryLength = input(undefined, { transform: SlEntityPicker.count });\n readonly clearable = input(undefined, { transform: SlEntityPicker.flag });\n readonly loop = input(undefined, { transform: SlEntityPicker.flag });\n readonly highlightMatch = input(undefined, { transform: SlEntityPicker.flag });\n readonly portal = input(undefined, { transform: SlEntityPicker.flag });\n readonly fullWidth = input(undefined, { transform: SlEntityPicker.flag });\n readonly disabled = input(undefined, { transform: SlEntityPicker.flag });\n readonly readOnly = input(undefined, { transform: SlEntityPicker.flag });\n readonly required = input(undefined, { transform: SlEntityPicker.flag });\n readonly invalid = input(undefined, { transform: SlEntityPicker.flag });\n\n protected readonly optionTemplate = contentChild(SlEntityPickerOption);\n protected readonly chipTemplate = contentChild(SlEntityPickerChip);\n\n // ── Wiring ─────────────────────────────────────────────────────────────\n\n private readonly defaults = injectEntityPickerDefaults();\n readonly field = inject(SlField, { optional: true });\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly hostId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly layerTemplate = viewChild.required<TemplateRef<unknown>>('layer');\n private readonly controlRef = viewChild.required<ElementRef<HTMLDivElement>>('control');\n private readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('input');\n private readonly chipsRef = viewChild<ElementRef<HTMLDivElement>>('chips');\n private readonly countRef = viewChild<ElementRef<HTMLSpanElement>>('count');\n\n private readonly identifier = Math.random().toString(36).slice(2, 8);\n readonly contentId = `sl-entity-picker-${this.identifier}`;\n private readonly ownId = `sl-entity-picker-input-${this.identifier}`;\n\n private readonly cache = createEntityCache();\n private readonly version = signal(0);\n private readonly searchState = signal<EntitySearchState | null>(null);\n private readonly typed = signal(false);\n protected readonly positioned = signal(false);\n protected readonly creating = signal(false);\n private readonly collapsedCount = signal(0);\n private readonly disabledByForm = signal<boolean | undefined>(undefined);\n private entry: Entry = 'keep';\n private readonly sessionConfig = { delay: 250, minQueryLength: 0 };\n private seeded = false;\n\n private readonly session: EntitySearchSession;\n private readonly resolver: EntityResolver;\n\n private view: EmbeddedViewRef<unknown> | null = null;\n private layerNode: HTMLElement | null = null;\n private surfaceNode: HTMLElement | null = null;\n private portalRoot: PortalRootHandle | null = null;\n private positionerHandle: PositionerHandle | null = null;\n private layer: DismissableLayerHandle | null = null;\n private presence: PresenceHandle | null = null;\n private observer: IntersectionObserver | null = null;\n private navigation: ArrowNavigationHandle | null = null;\n private removal: RemovalFocusHandle | null = null;\n private collapse: CollapseHandle | null = null;\n\n private onChange: (value: EntityPickerValue) => void = () => undefined;\n private onTouched: () => void = () => undefined;\n\n // ── Resolution ─────────────────────────────────────────────────────────\n\n /** The family's words in the language in force, with this picker's `messages` laid over them. */\n readonly t = injectMessages(entityPickerMessages, this.messages);\n private readonly inForceLocale = injectLocale();\n /** The locale the local filter and the mark compare in: the `locale` input, or the language in force. */\n readonly resolvedLocale = computed(() => this.locale() ?? this.inForceLocale());\n readonly multiple = computed(() => this.selectionMode() === 'multiple');\n readonly resolvedSize = computed(() => this.size() ?? this.field?.size() ?? this.defaults.size);\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedMedia = computed(() => this.media() ?? this.defaults.media);\n readonly resolvedOverflow = computed(() => this.overflow() ?? this.defaults.overflow);\n readonly resolvedOpenOn = computed(() => this.openOn() ?? this.defaults.openOn);\n readonly resolvedWidth = computed(() => this.width() ?? this.defaults.width);\n readonly resolvedFullWidth = computed(() => this.fullWidth() ?? this.defaults.fullWidth);\n readonly resolvedHighlightMatch = computed(\n () => this.highlightMatch() ?? this.defaults.highlightMatch,\n );\n readonly resolvedDisabled = computed(\n () =>\n this.disabled() ?? this.disabledByForm() ?? this.field?.disabled() ?? this.defaults.disabled,\n );\n readonly resolvedReadOnly = computed(\n () => this.readOnly() ?? this.field?.readOnly() ?? this.defaults.readOnly,\n );\n readonly resolvedRequired = computed(\n () => this.required() ?? this.field?.required() ?? this.defaults.required,\n );\n readonly resolvedInvalid = computed(\n () => this.invalid() ?? this.field?.invalid() ?? this.defaults.invalid,\n );\n private readonly resolvedMinQuery = computed(\n () => this.minQueryLength() ?? this.defaults.minQueryLength,\n );\n private readonly resolvedSource = computed<EntitySource>(\n () =>\n this.source() ?? localEntitySource(this.items() ?? EMPTY, { locale: this.resolvedLocale() }),\n );\n\n readonly hasScopes = computed(() => this.scopes().length > 0);\n /** The labels the select shows before its options are built. */\n protected readonly scopeItems = computed(() =>\n this.scopes().map((item) => ({ value: item.id, label: item.label })),\n );\n readonly isOpen = computed(() => this.open() && !this.resolvedDisabled());\n readonly controlId = computed(() => this.hostId ?? this.field?.ids().control ?? this.ownId);\n readonly chosen = computed(() => idsOf(this.value()));\n readonly collapsing = computed(() => this.multiple() && this.resolvedOverflow() === 'collapse');\n readonly maxResolved = computed(() => (this.multiple() ? (this.max() ?? null) : null));\n readonly complete = computed(() => {\n const max = this.maxResolved();\n return max !== null && this.chosen().length >= max;\n });\n\n readonly query = computed(() =>\n this.multiple() ? this.inputValue() : this.typed() ? this.inputValue() : '',\n );\n\n readonly search = computed<EntitySearchState>(() => this.searchState() ?? this.session.state);\n\n readonly sections = computed(() => {\n this.version();\n const search = this.search();\n const results = search.answered || search.status === 'loading' ? search.items : EMPTY;\n return entitySections({\n query: this.query(),\n scope: this.scope(),\n chosen: this.multiple() ? this.cache.pick(this.chosen()) : EMPTY,\n favorites: this.favorites(),\n recent: this.recent(),\n results: search.status === 'error' || search.status === 'short' ? search.items : results,\n searchedEmpty: this.resolvedMinQuery() === 0,\n labels: {\n chosen: this.t('chosen'),\n favorites: this.t('favorites'),\n recent: this.t('recent'),\n results: this.t('results'),\n },\n });\n });\n\n readonly offerCreate = computed(\n () =>\n !this.creating() &&\n offersCreation({\n enabled: this.createEntity() !== undefined,\n query: this.query(),\n answered: this.search().status === 'ready',\n results: this.search().items,\n locale: this.resolvedLocale(),\n }),\n );\n\n readonly failed = computed(() => this.search().status === 'error');\n readonly firstPage = computed(\n () => this.search().status === 'loading' && this.search().items.length === 0,\n );\n readonly refreshing = computed(\n () =>\n this.search().status === 'loading' &&\n this.search().items.length > 0 &&\n this.search().indicator,\n );\n\n private readonly blocked = computed(() => {\n if (!this.complete()) return undefined;\n const chosen = new Set(this.chosen());\n return new Set(\n this.sections()\n .sections.flatMap((section) => section.entities)\n .map((entity) => entity.id)\n .filter((id) => !chosen.has(id)),\n );\n });\n\n readonly options = computed<readonly EntityOption[]>(() => {\n const blocked = this.blocked();\n const records = entityOptions({\n sections: this.sections().sections,\n create: this.offerCreate(),\n ...(blocked === undefined ? {} : { blocked }),\n });\n return this.failed()\n ? [\n ...records.filter((option) => option.key !== CREATE_OPTION),\n { key: RETRY_OPTION, disabled: false },\n ]\n : records;\n });\n\n readonly showEmpty = computed(() => {\n const records = this.options().filter(\n (option) => option.key !== CREATE_OPTION && option.key !== RETRY_OPTION,\n ).length;\n const status = this.search().status;\n return (\n records === 0 &&\n !this.offerCreate() &&\n !this.failed() &&\n !this.firstPage() &&\n status !== 'waiting' &&\n status !== 'short'\n );\n });\n\n readonly statusMessage = computed(() => {\n const search = this.search();\n if (search.status === 'short') {\n return this.t('minQuery', { count: this.resolvedMinQuery() });\n }\n if (search.status === 'error') return '';\n if (search.indicator && (this.firstPage() || search.loadingMore)) return this.t('loading');\n if (search.status === 'ready' && this.query() !== '') {\n return this.t('count', { count: search.total ?? search.items.length });\n }\n return '';\n });\n\n readonly activeDescendant = computed(() => {\n const held = this.highlightedValue();\n return this.isOpen() && held !== null ? this.optionId(held) : null;\n });\n\n readonly pendingSingle = computed(() => {\n this.version();\n const first = this.chosen()[0];\n return !this.multiple() && first !== undefined && this.resolver.status(first) === 'pending';\n });\n\n readonly busy = computed(() => this.search().indicator || this.pendingSingle());\n\n readonly showClear = computed(\n () =>\n (this.clearable() ?? this.defaults.clearable) &&\n !this.resolvedDisabled() &&\n !this.resolvedReadOnly() &&\n (this.chosen().length > 0 || this.inputValue() !== ''),\n );\n\n readonly showSelection = computed(() => {\n this.version();\n if (this.multiple() || this.resolvedMedia() !== 'avatar') return null;\n const first = this.chosen()[0];\n const entity = first === undefined ? undefined : this.cache.get(first);\n if (entity === undefined || entity.avatar === null) return null;\n return this.inputValue() === entity.label ? entity : null;\n });\n\n readonly chipsLabel = computed(() =>\n this.t('chips', {\n label: this.ariaLabel() ?? '',\n count: this.chosen().length,\n }).replace(/^, /, ''),\n );\n\n readonly moreText = computed(() => this.t('more', { count: Math.max(this.collapsedCount(), 1) }));\n readonly moreLabel = computed(() =>\n this.t('moreLabel', { count: Math.max(this.collapsedCount(), 1) }),\n );\n readonly createText = computed(() => this.t('create', { query: this.query().trim() }));\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /* The session is made before the inputs exist; it reads these two numbers\n at the time of each search, and `runSearch` writes them first. */\n const config = this.sessionConfig;\n this.session = createEntitySearch({\n source: {\n search: (request, options) => this.resolvedSource().search(request, options),\n },\n get delay() {\n return config.delay;\n },\n get minQueryLength() {\n return config.minQueryLength;\n },\n onChange: (state) => this.searchState.set(state),\n onResults: (found) => this.cache.remember(found),\n });\n\n this.resolver = createEntityResolver({\n source: {\n search: (request, options) => this.resolvedSource().search(request, options),\n resolve: (ids, options) => {\n const source = this.resolvedSource();\n return source.resolve === undefined\n ? Promise.reject(new Error('no resolve'))\n : source.resolve(ids, options);\n },\n },\n cache: this.cache,\n onChange: () => this.version.update((count) => count + 1),\n });\n\n /* What the application hands over is known before anything is asked. */\n effect(() => {\n this.cache.remember(this.entities());\n this.cache.remember(this.favorites());\n this.cache.remember(this.recent());\n untracked(() => this.version.update((count) => count + 1));\n });\n\n /* An id nobody showed the family is asked for once. */\n effect(() => {\n const ids = this.chosen();\n this.version();\n untracked(() => this.resolver.require(ids));\n });\n\n /* In single, the field reads the chosen name whenever the reader is not typing. */\n effect(() => {\n this.version();\n if (this.multiple() || this.typed()) return;\n const first = this.chosen()[0];\n const name = first === undefined ? '' : (this.cache.get(first)?.label ?? '');\n untracked(() => {\n if (this.inputValue() !== name) this.inputValue.set(name);\n });\n });\n\n /* The search follows the open popup, the query and the scope. */\n effect(() => {\n if (!this.isOpen()) return;\n const query = this.query();\n const scope = this.scope();\n untracked(() => this.runSearch(query, scope));\n });\n\n effect(() => {\n const open = this.isOpen();\n untracked(() => (open ? this.show() : this.hide()));\n });\n\n /* Where the highlight lands as the list changes. */\n effect(() => {\n const options = this.options();\n if (!this.isOpen()) return;\n untracked(() => this.placeHighlight(options));\n });\n\n /* The failure is said once, by the announcer. */\n effect(() => {\n if (!this.failed() || !this.isOpen()) return;\n untracked(() => this.announce(this.t('error')));\n });\n\n afterRenderEffect(() => {\n this.chosen();\n this.version();\n this.collapse?.refresh();\n this.observeEnd();\n });\n\n afterNextRender(() => this.wireChips());\n\n destroyRef.onDestroy(() => {\n this.session.dispose();\n this.resolver.dispose();\n this.navigation?.destroy();\n this.removal?.destroy();\n this.collapse?.destroy();\n this.teardown();\n });\n }\n\n ngOnInit() {\n const seed = this.defaultValue();\n if (seed !== undefined && !this.seeded && this.chosen().length === 0) {\n this.seeded = true;\n this.value.set(this.multiple() ? idsOf(seed) : (idsOf(seed)[0] ?? null));\n }\n }\n\n // ── Reading ────────────────────────────────────────────────────────────\n\n optionId(key: string): string {\n return `${this.contentId}-option-${encodeURIComponent(key)}`;\n }\n\n protected record(id: string): Entity | undefined {\n this.version();\n return this.cache.get(id);\n }\n\n protected resolution(id: string) {\n this.version();\n return this.resolver.status(id);\n }\n\n protected initials(entity: Entity) {\n return entityInitials(entity);\n }\n\n protected chipName(id: string) {\n const entity = this.record(id);\n if (entity !== undefined) return entityName(entity);\n return this.resolution(id) === 'missing'\n ? this.t('unresolvedChip', { id })\n : this.t('loadingChip', { id });\n }\n\n protected removeLabel(id: string) {\n return this.t('remove', {\n label: this.record(id)?.label ?? this.t('unresolved'),\n });\n }\n\n protected isChosen(id: string) {\n return this.chosen().includes(id);\n }\n\n protected isDisabled(entity: Entity) {\n return entity.disabled === true || this.blocked()?.has(entity.id) === true;\n }\n\n // ── Imperative ─────────────────────────────────────────────────────────\n\n focus() {\n this.inputRef()?.nativeElement.focus({ preventScroll: true });\n }\n\n /** Asks the source again for the current query. */\n refresh() {\n this.session.refresh();\n }\n\n // ── Requests ───────────────────────────────────────────────────────────\n\n setOpen(next: boolean, reason: EntityPickerOpenReason, source?: Event) {\n if (next === this.isOpen()) return;\n const state = createControllable<boolean>({\n initial: this.isOpen(),\n onRequest: (request) => this.openChangeRequest.emit(request),\n });\n if (!state.request(next, reason, source)) return;\n this.open.set(next);\n if (!next) {\n this.highlightedValue.set(null);\n this.entry = 'keep';\n }\n }\n\n setHighlighted(next: string | null, reason: EntityPickerHighlightReason, source?: Event) {\n if (next === this.highlightedValue()) return;\n const state = createControllable<string | null>({\n initial: this.highlightedValue(),\n onRequest: (request) => this.highlightedValueChangeRequest.emit(request),\n });\n if (!state.request(next, reason, source)) return;\n this.highlightedValue.set(next);\n if (next !== null) {\n const option = this.surfaceNode?.ownerDocument.getElementById(this.optionId(next));\n if (typeof option?.scrollIntoView === 'function') option.scrollIntoView({ block: 'nearest' });\n }\n }\n\n private setInput(next: string, reason: EntityPickerInputReason, source?: Event) {\n if (next === this.inputValue()) return;\n const state = createControllable<string>({\n initial: this.inputValue(),\n onRequest: (request) => this.inputValueChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.inputValue.set(next);\n }\n\n private requestIds(next: readonly string[], reason: EntityPickerValueReason, source?: Event) {\n const before = this.chosen();\n if (sameIds(before, next)) return false;\n const toValue = (ids: readonly string[]): EntityPickerValue =>\n this.multiple() ? ids : (ids[0] ?? null);\n const state = createControllable<EntityPickerValue>({\n initial: toValue(before),\n equals: (a, b) => sameIds(idsOf(a), idsOf(b)),\n onRequest: (request) =>\n this.valueChangeRequest.emit(\n Object.assign(request, { entities: this.cache.pick(next) }) as EntityPickerValueRequest,\n ),\n });\n if (!state.request(toValue(next), reason, source)) return false;\n this.value.set(toValue(next));\n this.onChange(toValue(next));\n this.onTouched();\n return true;\n }\n\n private setScope(next: string | null, reason: EntityPickerScopeReason, source?: Event) {\n if (next === this.scope()) return;\n const state = createControllable<string | null>({\n initial: this.scope(),\n onRequest: (request) => this.scopeChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.scope.set(next);\n }\n\n private announce(message: string) {\n getLiveAnnouncer(this.host.nativeElement.ownerDocument).announce(message, { repeat: true });\n }\n\n private labelOf(id: string | undefined) {\n return id === undefined ? '' : (this.cache.get(id)?.label ?? '');\n }\n\n private runSearch(query: string, scope: string | null) {\n this.sessionConfig.delay = this.searchDelay() ?? this.defaults.searchDelay;\n this.sessionConfig.minQueryLength = this.resolvedMinQuery();\n this.session.search({ query, scope, selected: this.chosen() });\n }\n\n activate(key: string, reason: EntityPickerValueReason, source?: Event) {\n if (key === RETRY_OPTION) {\n this.session.retry();\n this.focus();\n return;\n }\n if (key === CREATE_OPTION) {\n this.makeEntity(reason, source);\n if (!this.multiple()) this.setOpen(false, 'select', source);\n this.focus();\n return;\n }\n const entity = this.cache.get(key);\n if (entity?.disabled === true || this.blocked()?.has(key) === true) return;\n if (this.multiple()) {\n this.toggle(key, reason, source);\n return;\n }\n this.requestIds([key], reason, source);\n this.typed.set(false);\n this.setInput(this.labelOf(key), 'select', source);\n this.setOpen(false, 'select', source);\n }\n\n private toggle(id: string, reason: EntityPickerValueReason, source?: Event) {\n const chosen = this.chosen();\n if (chosen.includes(id)) {\n const next = chosen.filter((item) => item !== id);\n if (this.requestIds(next, reason, source)) {\n this.announce(this.t('removed', { label: this.labelOf(id), count: next.length }));\n }\n } else {\n const max = this.maxResolved();\n if (max !== null && chosen.length >= max) return;\n const next = [...chosen, id];\n if (this.requestIds(next, reason, source)) {\n this.announce(this.t('added', { label: this.labelOf(id), count: next.length }));\n if (max !== null && next.length === max) {\n this.announce(this.t('complete', { max }));\n }\n }\n }\n this.setInput('', 'select', source);\n }\n\n remove(id: string, source?: Event) {\n const next = this.chosen().filter((item) => item !== id);\n if (this.requestIds(next, 'remove', source)) {\n this.announce(\n this.t('removed', {\n label: this.labelOf(id) || this.t('unresolved'),\n count: next.length,\n }),\n );\n }\n }\n\n clear(source?: Event) {\n this.requestIds([], 'clear', source);\n this.typed.set(false);\n this.setInput('', 'clear', source);\n }\n\n private makeEntity(reason: EntityPickerValueReason, source?: Event) {\n const text = this.inputValue().trim();\n if (text === '') return;\n this.create.emit({ query: text, reason });\n const maker = this.createEntity();\n if (maker === undefined) return;\n const adopt = (made: Entity | null | undefined) => {\n this.creating.set(false);\n if (made === null || made === undefined) return;\n this.cache.remember([made]);\n this.version.update((count) => count + 1);\n if (this.multiple()) {\n const chosen = this.chosen();\n if (!chosen.includes(made.id)) {\n this.requestIds([...chosen, made.id], 'submit', source);\n this.announce(this.t('added', { label: made.label, count: chosen.length + 1 }));\n }\n this.setInput('', 'select', source);\n } else {\n this.requestIds([made.id], 'submit', source);\n this.typed.set(false);\n this.setInput(made.label, 'select', source);\n }\n };\n const result = maker(text);\n if (result instanceof Promise) {\n this.creating.set(true);\n result.then(adopt, () => this.creating.set(false));\n } else {\n adopt(result);\n }\n }\n\n // ── Events ─────────────────────────────────────────────────────────────\n\n protected onInput(event: Event) {\n const next = (event.target as HTMLInputElement).value;\n this.typed.set(true);\n this.setInput(next, 'keyboard', event);\n if (!this.isOpen() && !this.resolvedReadOnly() && this.resolvedOpenOn() !== 'manual') {\n this.entry = 'keep';\n this.setOpen(true, 'keyboard', event);\n }\n }\n\n protected onFocus() {\n if (this.resolvedOpenOn() !== 'focus' || this.resolvedReadOnly() || this.isOpen()) return;\n this.entry = this.multiple() ? 'keep' : 'selected';\n this.setOpen(true, 'keyboard');\n }\n\n protected onInputClick(event: MouseEvent) {\n if (\n event.defaultPrevented ||\n this.resolvedOpenOn() === 'manual' ||\n this.resolvedDisabled() ||\n this.resolvedReadOnly() ||\n this.isOpen()\n ) {\n return;\n }\n this.entry = this.multiple() ? 'keep' : 'selected';\n this.setOpen(true, 'pointer', event);\n }\n\n protected onBlur(event: FocusEvent) {\n this.onTouched();\n const next = event.relatedTarget;\n const control = this.controlRef().nativeElement;\n if (next instanceof Node && (this.surfaceNode?.contains(next) || control.contains(next)))\n return;\n const began = pressOrigin(control.ownerDocument);\n if (began instanceof Node && this.surfaceNode?.contains(began) === true) return;\n this.settle(event);\n if (this.isOpen()) this.setOpen(false, 'blur', event);\n }\n\n /** Text that is not the chosen name goes back to it; an emptied field clears the choice. */\n private settle(source?: Event) {\n if (this.multiple() || !this.typed()) return;\n if (this.inputValue().trim() === '') {\n if (this.chosen().length > 0) this.requestIds([], 'clear', source);\n this.typed.set(false);\n return;\n }\n this.typed.set(false);\n this.setInput(this.labelOf(this.chosen()[0]), 'blur', source);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (this.resolvedDisabled()) return;\n const input = event.target as HTMLInputElement;\n const action = entityPickerKey({\n key: event.key,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n composing: event.isComposing,\n open: this.isOpen(),\n selectionMode: this.selectionMode(),\n readOnly: this.resolvedReadOnly(),\n highlighted: this.highlightedValue() !== null,\n empty: input.value === '',\n caretAtStart: input.selectionStart === 0 && input.selectionEnd === 0,\n chips: this.chosen().length,\n dir: getComputedStyle(input).direction === 'rtl' ? 'rtl' : 'ltr',\n });\n\n switch (action.type) {\n case 'none':\n if (event.key === 'Tab' && this.isOpen()) this.setOpen(false, 'blur', event);\n return;\n case 'open':\n event.preventDefault();\n this.entry = action.highlight;\n this.setOpen(true, 'keyboard', event);\n return;\n case 'close':\n event.preventDefault();\n this.setOpen(false, action.reason, event);\n return;\n case 'move':\n event.preventDefault();\n this.move(action.intent, event);\n return;\n case 'activate': {\n event.preventDefault();\n const held = this.highlightedValue();\n if (held !== null) this.activate(held, 'keyboard', event);\n return;\n }\n case 'revert':\n event.preventDefault();\n this.revert(event);\n return;\n case 'clearQuery':\n event.preventDefault();\n this.setInput('', 'clear', event);\n return;\n case 'focusChip': {\n event.preventDefault();\n const chips = [\n ...(this.chipsRef()?.nativeElement.querySelectorAll<HTMLElement>(CHIP_SELECTOR) ?? []),\n ].filter((chip) => !chip.hidden);\n chips.at(-1)?.focus({ preventScroll: true });\n return;\n }\n }\n }\n\n private revert(source?: Event) {\n const first = this.chosen()[0];\n if (first === undefined) {\n this.typed.set(false);\n this.setInput('', 'programmatic', source);\n return;\n }\n const name = this.labelOf(first);\n if (this.inputValue() === name) {\n this.clear(source);\n return;\n }\n this.typed.set(false);\n this.setInput(name, 'programmatic', source);\n }\n\n private move(intent: MoveIntent, source?: Event) {\n const options = this.options();\n const from = options.findIndex((option) => option.key === this.highlightedValue());\n const next = moveIndex({\n enabled: options.map((option) => !option.disabled),\n from,\n intent,\n loop: this.loop() ?? this.defaults.loop,\n });\n if (next >= 0) this.setHighlighted(options[next]!.key, 'keyboard', source);\n }\n\n private placeHighlight(options: readonly EntityOption[]) {\n if (this.entry !== 'keep') {\n const enabled = options.filter((option) => !option.disabled);\n const chosen = this.chosen();\n const target =\n this.entry === 'last'\n ? enabled.at(-1)\n : this.entry === 'selected'\n ? options.find((option) => chosen.includes(option.key))\n : enabled[0];\n if (target !== undefined || this.entry !== 'selected') {\n this.entry = 'keep';\n if (target !== undefined) this.setHighlighted(target.key, 'keyboard');\n }\n return;\n }\n const held = this.highlightedValue();\n if (held !== null && !options.some((option) => option.key === held)) {\n this.setHighlighted(null, 'keyboard');\n }\n }\n\n protected onChipKey(id: string, event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const frozen = this.resolvedReadOnly() || this.resolvedDisabled();\n switch (event.key) {\n case 'Delete':\n case 'Backspace':\n if (frozen) return;\n event.preventDefault();\n this.remove(id, event);\n return;\n case 'Escape':\n event.preventDefault();\n this.focus();\n return;\n default:\n if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {\n this.focus();\n }\n }\n }\n\n protected onRemoveClick(id: string, event: MouseEvent) {\n event.stopPropagation();\n this.remove(id, event);\n this.focus();\n }\n\n protected onCountClick(event: MouseEvent) {\n this.typed.set(true);\n this.setInput('', 'programmatic', event);\n this.entry = 'keep';\n this.setOpen(true, 'pointer', event);\n this.focus();\n }\n\n protected onClear(event: MouseEvent) {\n this.clear(event);\n this.focus();\n }\n\n protected onToggle(event: MouseEvent) {\n if (this.resolvedDisabled() || this.resolvedReadOnly()) return;\n this.entry = this.multiple() ? 'keep' : 'selected';\n this.setOpen(!this.isOpen(), 'pointer', event);\n this.focus();\n }\n\n protected onScopeRequest(request: ChangeRequest<unknown>) {\n const next = typeof request.value === 'string' ? request.value : null;\n const reason =\n request.reason === 'pointer' || request.reason === 'keyboard'\n ? request.reason\n : 'programmatic';\n this.setScope(next, reason, request.source as Event | undefined);\n }\n\n protected onRowEnter(entity: Entity, event: PointerEvent) {\n if (this.isDisabled(entity)) return;\n this.setHighlighted(entity.id, 'pointer', event);\n }\n\n protected onRowClick(entity: Entity, event: MouseEvent) {\n if (this.isDisabled(entity)) return;\n this.activate(entity.id, 'pointer', event);\n this.focus();\n }\n\n protected keepFocus(event: PointerEvent) {\n if (event.defaultPrevented) return;\n event.preventDefault();\n }\n\n // ── The chips ──────────────────────────────────────────────────────────\n\n private wireChips() {\n const row = this.chipsRef()?.nativeElement;\n if (row === undefined) return;\n this.navigation = createArrowNavigation(row, {\n itemSelector: `${CHIP_SELECTOR}, [data-part='field'] > [data-part='input']`,\n loop: false,\n ownedKeys: (item) =>\n item instanceof HTMLInputElement && item.value !== ''\n ? ['ArrowLeft', 'ArrowRight', 'Home', 'End']\n : [],\n });\n this.removal = createRemovalFocus(row, {\n itemSelector: CHIP_SELECTOR,\n fallback: () => this.inputRef()?.nativeElement ?? null,\n });\n if (!this.collapsing()) return;\n this.collapse = createCollapse(row, {\n collapsible: (unit) => unit.dataset['part'] !== 'field',\n fixedSize: (unit) =>\n unit.dataset['part'] === 'field'\n ? Number.parseFloat(getComputedStyle(unit).minInlineSize) || 0\n : undefined,\n onChange: (units) => this.collapsedCount.set(units.length),\n trigger: () => this.countRef()?.nativeElement ?? null,\n units: () =>\n [...row.children].filter(\n (unit): unit is HTMLElement =>\n unit instanceof HTMLElement && !unit.hasAttribute('data-count'),\n ),\n });\n }\n\n // ── The layer ──────────────────────────────────────────────────────────\n\n private show() {\n this.build();\n this.position();\n this.bind();\n }\n\n private build() {\n if (this.view !== null) {\n this.presence?.sync(true);\n this.view.detectChanges();\n return;\n }\n const origin = this.inputRef()?.nativeElement ?? this.host.nativeElement;\n this.portalRoot = createPortalRoot({ origin, disabled: this.portal() === false });\n this.view = this.viewContainer.createEmbeddedView(this.layerTemplate());\n this.view.detectChanges();\n this.layerNode = this.view.rootNodes.find(\n (node: unknown): node is HTMLElement => node instanceof HTMLElement,\n ) as HTMLElement | null;\n this.surfaceNode = this.layerNode?.querySelector<HTMLElement>(\"[data-part='content']\") ?? null;\n if (this.layerNode === null) return;\n this.portalRoot.container?.append(this.layerNode);\n this.presence = createPresence({ present: true });\n this.presence.setNode(this.layerNode);\n }\n\n private position() {\n if (this.layerNode === null) return;\n this.positionerHandle?.destroy();\n this.positionerHandle = createPositioner(this.controlRef().nativeElement, this.layerNode, {\n align: 'start',\n alignOffset: 0,\n boundaryPadding: 8,\n flip: true,\n hideWhenDetached: true,\n matchWidth: this.resolvedWidth() === 'anchor',\n shift: true,\n side: this.side() ?? this.defaults.side,\n sideOffset: 4,\n strategy: this.strategy() ?? this.defaults.strategy,\n });\n /* `data-open` is written on the element in the task that opened the popup,\n with the position; the binding below says it again on the next check. */\n void this.positionerHandle.update().then(() => {\n if (this.isOpen()) this.layerNode?.setAttribute('data-open', '');\n this.positioned.set(true);\n });\n }\n\n private bind() {\n if (this.layerNode === null) return;\n this.layer = createDismissableLayer(this.layerNode, {\n branches: [this.controlRef().nativeElement],\n escape: true,\n focusOutside: false,\n modal: false,\n outsidePress: true,\n scrollLock: false,\n onDismiss: (request) => {\n this.setOpen(\n false,\n request.reason === 'escape' ? 'escape' : 'outsidePress',\n request.source as Event | undefined,\n );\n },\n });\n }\n\n private observeEnd() {\n this.observer?.disconnect();\n this.observer = null;\n const root = this.surfaceNode;\n if (root === null || !this.search().hasMore || typeof IntersectionObserver !== 'function')\n return;\n const sentinel = root.querySelector<HTMLElement>('[data-sentinel]');\n if (sentinel === null) return;\n this.observer = new IntersectionObserver(\n (entries) => {\n if (entries.some((entry) => entry.isIntersecting)) this.session.more();\n },\n { root },\n );\n this.observer.observe(sentinel);\n }\n\n private hide() {\n this.layer?.destroy();\n this.positionerHandle?.destroy();\n this.observer?.disconnect();\n this.layer = null;\n this.positionerHandle = null;\n this.observer = null;\n this.positioned.set(false);\n this.teardown();\n }\n\n private teardown() {\n this.layer?.destroy();\n this.positionerHandle?.destroy();\n this.presence?.destroy();\n this.portalRoot?.release();\n this.layerNode?.remove();\n this.view?.destroy();\n this.layer = null;\n this.positionerHandle = null;\n this.presence = null;\n this.portalRoot = null;\n this.layerNode = null;\n this.surfaceNode = null;\n this.view = null;\n }\n\n // ── Forms ──────────────────────────────────────────────────────────────\n\n writeValue(value: EntityPickerValue) {\n this.value.set(this.multiple() ? idsOf(value ?? []) : (idsOf(value)[0] ?? null));\n this.typed.set(false);\n }\n\n registerOnChange(fn: (value: EntityPickerValue) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabledByForm.set(isDisabled);\n }\n\n validate(): ValidationErrors | null {\n this.version();\n const chosen = this.chosen();\n if (this.resolvedRequired() && chosen.length === 0) return { required: true };\n const missing = chosen.filter((id) => this.resolver.status(id) === 'missing');\n return missing.length > 0 ? { unresolved: { ids: missing } } : null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|