@radix-ng/primitives 0.51.0 → 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/radix-ng-primitives-accordion.mjs +105 -38
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs +221 -129
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-arrow.mjs +20 -4
- package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-avatar.mjs +54 -61
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-button.mjs +123 -0
- package/fesm2022/radix-ng-primitives-button.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +378 -54
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collapsible.mjs +182 -81
- package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collection.mjs +40 -57
- package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-context-menu.mjs +140 -424
- package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +735 -744
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-cropper.mjs +1 -0
- package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-date-field.mjs +51 -45
- package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dialog.mjs +655 -327
- package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +70 -46
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-drawer.mjs +1059 -0
- package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-field.mjs +363 -0
- package/fesm2022/radix-ng-primitives-field.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-fieldset.mjs +79 -0
- package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-focus-scope.mjs +23 -8
- package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-input.mjs +172 -0
- package/fesm2022/radix-ng-primitives-input.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-label.mjs +6 -6
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +1480 -344
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +290 -162
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-meter.mjs +271 -0
- package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs +1052 -1553
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-number-field.mjs +1102 -367
- package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +978 -989
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popper.mjs +91 -41
- package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-portal.mjs +34 -10
- package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-presence.mjs +134 -246
- package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-preview-card.mjs +997 -0
- package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-progress.mjs +223 -84
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +191 -51
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +96 -50
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-select.mjs +791 -509
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +12 -35
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +969 -717
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-stepper.mjs +15 -19
- package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-switch.mjs +125 -113
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +381 -108
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-time-field.mjs +55 -46
- package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +121 -247
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +98 -61
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toolbar.mjs +303 -92
- package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tooltip.mjs +690 -1071
- package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs +25 -66
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
- package/meter/README.md +3 -0
- package/navigation-menu/README.md +2 -1
- package/package.json +31 -18
- package/portal/README.md +2 -0
- package/preview-card/README.md +3 -0
- package/schematics/collection.json +1 -0
- package/schematics/ng-add/index.d.ts +3 -2
- package/schematics/ng-add/index.js +62 -31
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/package-config.d.ts +4 -2
- package/schematics/ng-add/package-config.js +10 -2
- package/schematics/ng-add/package-config.js.map +1 -1
- package/schematics/ng-add/schema.d.ts +3 -0
- package/schematics/ng-add/schema.js +3 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/schema.json +14 -0
- package/select/README.md +2 -0
- package/types/radix-ng-primitives-accordion.d.ts +48 -14
- package/types/radix-ng-primitives-alert-dialog.d.ts +95 -38
- package/types/radix-ng-primitives-arrow.d.ts +1 -1
- package/types/radix-ng-primitives-aspect-ratio.d.ts +1 -1
- package/types/radix-ng-primitives-avatar.d.ts +7 -11
- package/types/radix-ng-primitives-button.d.ts +73 -0
- package/types/radix-ng-primitives-calendar.d.ts +1 -2
- package/types/radix-ng-primitives-checkbox.d.ts +201 -32
- package/types/radix-ng-primitives-collapsible.d.ts +112 -39
- package/types/radix-ng-primitives-collection.d.ts +38 -34
- package/types/radix-ng-primitives-config.d.ts +1 -1
- package/types/radix-ng-primitives-context-menu.d.ts +60 -116
- package/types/radix-ng-primitives-core.d.ts +307 -236
- package/types/radix-ng-primitives-cropper.d.ts +2 -2
- package/types/radix-ng-primitives-date-field.d.ts +38 -23
- package/types/radix-ng-primitives-dialog.d.ts +282 -165
- package/types/radix-ng-primitives-dismissable-layer.d.ts +15 -7
- package/types/radix-ng-primitives-drawer.d.ts +448 -0
- package/types/radix-ng-primitives-editable.d.ts +1 -1
- package/types/radix-ng-primitives-field.d.ts +373 -0
- package/types/radix-ng-primitives-fieldset.d.ts +48 -0
- package/types/radix-ng-primitives-focus-scope.d.ts +13 -5
- package/types/radix-ng-primitives-input.d.ts +87 -0
- package/types/radix-ng-primitives-label.d.ts +0 -1
- package/types/radix-ng-primitives-menu.d.ts +572 -99
- package/types/radix-ng-primitives-menubar.d.ts +60 -50
- package/types/radix-ng-primitives-meter.d.ts +193 -0
- package/types/radix-ng-primitives-navigation-menu.d.ts +422 -340
- package/types/radix-ng-primitives-number-field.d.ts +405 -145
- package/types/radix-ng-primitives-pagination.d.ts +2 -2
- package/types/radix-ng-primitives-popover.d.ts +365 -351
- package/types/radix-ng-primitives-popper.d.ts +49 -9
- package/types/radix-ng-primitives-portal.d.ts +14 -6
- package/types/radix-ng-primitives-presence.d.ts +28 -76
- package/types/radix-ng-primitives-preview-card.d.ts +359 -0
- package/types/radix-ng-primitives-progress.d.ts +174 -48
- package/types/radix-ng-primitives-radio.d.ts +55 -25
- package/types/radix-ng-primitives-roving-focus.d.ts +30 -21
- package/types/radix-ng-primitives-select.d.ts +475 -177
- package/types/radix-ng-primitives-separator.d.ts +7 -32
- package/types/radix-ng-primitives-slider.d.ts +315 -201
- package/types/radix-ng-primitives-stepper.d.ts +5 -7
- package/types/radix-ng-primitives-switch.d.ts +86 -71
- package/types/radix-ng-primitives-tabs.d.ts +213 -79
- package/types/radix-ng-primitives-time-field.d.ts +42 -27
- package/types/radix-ng-primitives-toggle-group.d.ts +85 -164
- package/types/radix-ng-primitives-toggle.d.ts +43 -53
- package/types/radix-ng-primitives-toolbar.d.ts +163 -38
- package/types/radix-ng-primitives-tooltip.d.ts +347 -384
- package/types/radix-ng-primitives-visually-hidden.d.ts +19 -19
- package/dropdown-menu/README.md +0 -1
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +0 -581
- package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +0 -1
- package/fesm2022/radix-ng-primitives-hover-card.mjs +0 -1238
- package/fesm2022/radix-ng-primitives-hover-card.mjs.map +0 -1
- package/fesm2022/radix-ng-primitives-select2.mjs +0 -897
- package/fesm2022/radix-ng-primitives-select2.mjs.map +0 -1
- package/fesm2022/radix-ng-primitives-tooltip2.mjs +0 -735
- package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +0 -1
- package/hover-card/README.md +0 -3
- package/select2/README.md +0 -3
- package/tooltip2/README.md +0 -3
- package/types/radix-ng-primitives-dropdown-menu.d.ts +0 -171
- package/types/radix-ng-primitives-hover-card.d.ts +0 -471
- package/types/radix-ng-primitives-select2.d.ts +0 -511
- package/types/radix-ng-primitives-tooltip2.d.ts +0 -325
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-menu.mjs","sources":["../../../packages/primitives/menu/src/menu-content.directive.ts","../../../packages/primitives/menu/src/menu-directive.ts","../../../packages/primitives/menu/src/menu-group.directive.ts","../../../packages/primitives/menu/src/utils.ts","../../../packages/primitives/menu/src/menu-item-checkbox.directive.ts","../../../packages/primitives/menu/src/menu-item-radio.directive.ts","../../../packages/primitives/menu/src/menu-item-indicator.directive.ts","../../../packages/primitives/menu/src/menu-item.directive.ts","../../../packages/primitives/menu/src/menu-label.directive.ts","../../../packages/primitives/menu/src/menu-radio-group.directive.ts","../../../packages/primitives/menu/src/menu-separator.directive.ts","../../../packages/primitives/menu/src/menu-trigger.directive.ts","../../../packages/primitives/menu/index.ts","../../../packages/primitives/menu/radix-ng-primitives-menu.ts"],"sourcesContent":["import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[RdxMenuContent]',\n hostDirectives: [CdkMenu],\n host: {\n role: 'menu',\n '[attr.aria-orientation]': '\"vertical\"'\n }\n})\nexport class RdxMenuContentDirective {}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[RdxMenuRoot],[RdxMenuSub]',\n hostDirectives: [CdkMenu]\n})\nexport class RdxMenuDirective {}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[RdxMenuGroup]',\n hostDirectives: [CdkMenuGroup],\n host: {\n role: 'group'\n }\n})\nexport class RdxMenuGroupDirective {}\n","export type CheckedState = boolean | 'indeterminate';\n\nexport function isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nexport function getCheckedState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItemCheckbox } from '@angular/cdk/menu';\nimport { booleanAttribute, computed, Directive, effect, inject, input, signal } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\nimport { getCheckedState, isIndeterminate } from './utils';\n\n@Directive({\n selector: '[RdxMenuItemCheckbox]',\n hostDirectives: [\n {\n directive: CdkMenuItemCheckbox,\n outputs: ['cdkMenuItemTriggered: menuItemTriggered']\n }\n ],\n host: {\n role: 'menuitemcheckbox',\n '[attr.aria-checked]': 'isIndeterminate(checked()) ? \"mixed\" : checked()',\n '[attr.data-state]': 'getCheckedState(checked())',\n '[attr.data-highlighted]': \"highlightedState() ? '' : undefined\",\n\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(pointermove)': 'onPointerMove($event)'\n }\n})\nexport class RdxMenuItemCheckboxDirective {\n private readonly cdkMenuItemCheckbox = inject(CdkMenuItemCheckbox, { host: true });\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly checked = input<boolean | 'indeterminate'>(false);\n\n readonly onCheckedChange = outputFromObservable(this.cdkMenuItemCheckbox.triggered);\n\n protected readonly disabledState = computed(() => this.disabled);\n\n protected readonly highlightedState = computed(() => this.isFocused());\n\n private readonly isFocused = signal(false);\n\n constructor() {\n effect(() => {\n if (isIndeterminate(this.checked())) {\n this.cdkMenuItemCheckbox.checked = true;\n } else {\n this.cdkMenuItemCheckbox.checked = !this.checked();\n }\n\n this.cdkMenuItemCheckbox.disabled = this.disabled();\n });\n }\n\n onFocus(): void {\n if (!this.disabled()) {\n this.isFocused.set(true);\n }\n }\n\n onBlur(): void {\n this.isFocused.set(false);\n }\n\n onPointerMove(event: PointerEvent) {\n if (event.defaultPrevented) return;\n\n if (!(event.pointerType === 'mouse')) return;\n\n if (!this.disabled()) {\n const item = event.currentTarget;\n (item as HTMLElement)?.focus({ preventScroll: true });\n }\n }\n\n protected readonly isIndeterminate = isIndeterminate;\n protected readonly getCheckedState = getCheckedState;\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItemRadio } from '@angular/cdk/menu';\nimport { booleanAttribute, computed, Directive, effect, inject, input, signal } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\nimport { getCheckedState } from './utils';\n\n@Directive({\n selector: '[RdxMenuItemRadio]',\n hostDirectives: [\n {\n directive: CdkMenuItemRadio,\n outputs: ['cdkMenuItemTriggered: menuItemTriggered']\n }\n ],\n host: {\n role: 'menuitemradio',\n '[attr.aria-checked]': 'checked()',\n '[attr.data-state]': 'getCheckedState(checked())',\n '[attr.data-highlighted]': \"highlightedState() ? '' : undefined\",\n\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(pointermove)': 'onPointerMove($event)'\n }\n})\nexport class RdxMenuItemRadioDirective {\n private readonly cdkMenuItemRadio = inject(CdkMenuItemRadio, { host: true });\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly checked = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly onValueChange = outputFromObservable(this.cdkMenuItemRadio.triggered);\n\n protected readonly disabledState = computed(() => this.disabled());\n\n protected readonly highlightedState = computed(() => this.isFocused());\n\n private readonly isFocused = signal(false);\n\n constructor() {\n effect(() => {\n this.cdkMenuItemRadio.checked = this.checked();\n this.cdkMenuItemRadio.disabled = this.disabled();\n });\n }\n\n onFocus(): void {\n if (!this.disabled()) {\n this.isFocused.set(true);\n }\n }\n\n onBlur(): void {\n this.isFocused.set(false);\n }\n\n onPointerMove(event: PointerEvent) {\n if (event.defaultPrevented) return;\n\n if (!(event.pointerType === 'mouse')) return;\n\n if (!this.disabled()) {\n const item = event.currentTarget;\n (item as HTMLElement)?.focus({ preventScroll: true });\n }\n }\n\n protected readonly getCheckedState = getCheckedState;\n}\n","import { Directive, inject } from '@angular/core';\nimport { RdxMenuItemCheckboxDirective } from './menu-item-checkbox.directive';\nimport { RdxMenuItemRadioDirective } from './menu-item-radio.directive';\nimport { getCheckedState, isIndeterminate } from './utils';\n\n@Directive({\n selector: '[RdxMenuItemIndicator]',\n host: {\n '[attr.data-state]': 'getCheckedState(isChecked)',\n\n '[style.display]': 'isChecked ? \"\" : \"none\"'\n }\n})\nexport class RdxMenuItemIndicatorDirective {\n private readonly menuItemRadio = inject(RdxMenuItemRadioDirective, { host: true, optional: true });\n\n private readonly menuCheckboxItem = inject(RdxMenuItemCheckboxDirective, { host: true, optional: true });\n\n get isChecked(): boolean {\n if (this.menuItemRadio) {\n return this.menuItemRadio.checked();\n }\n if (this.menuCheckboxItem) {\n return isIndeterminate(this.menuCheckboxItem.checked()) || this.menuCheckboxItem.checked() === true;\n }\n return false;\n }\n\n protected readonly getCheckedState = getCheckedState;\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem } from '@angular/cdk/menu';\nimport { booleanAttribute, computed, Directive, effect, inject, input, signal } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[RdxMenuItem]',\n hostDirectives: [\n {\n directive: CdkMenuItem,\n outputs: ['cdkMenuItemTriggered: menuItemTriggered']\n }\n ],\n host: {\n role: 'menuitem',\n tabindex: '-1',\n '[attr.data-orientation]': \"'horizontal'\",\n '[attr.data-state]': 'isOpenState()',\n '[attr.aria-disabled]': \"disabledState() ? '' : undefined\",\n '[attr.data-disabled]': \"disabledState() ? '' : undefined\",\n '[attr.data-highlighted]': \"highlightedState() ? '' : undefined\",\n\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(pointermove)': 'onPointerMove($event)'\n }\n})\nexport class RdxMenuItemDirective {\n private readonly cdkMenuItem = inject(CdkMenuItem, { host: true });\n\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n readonly onSelect = outputFromObservable(this.cdkMenuItem.triggered);\n\n private readonly isFocused = signal(false);\n\n protected readonly disabledState = computed(() => this.disabled());\n\n protected readonly isOpenState = signal(false);\n\n protected readonly highlightedState = computed(() => this.isFocused());\n\n constructor() {\n effect(() => {\n this.cdkMenuItem.disabled = this.disabled();\n this.isOpenState.set(this.cdkMenuItem.isMenuOpen());\n });\n }\n\n onFocus(): void {\n if (!this.disabled()) {\n this.isFocused.set(true);\n }\n }\n\n onBlur(): void {\n this.isFocused.set(false);\n }\n\n onPointerMove(event: PointerEvent) {\n if (event.defaultPrevented) return;\n\n if (!(event.pointerType === 'mouse')) return;\n\n if (!this.disabled()) {\n const item = event.currentTarget;\n (item as HTMLElement)?.focus({ preventScroll: true });\n }\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[RdxMenuLabel]'\n})\nexport class RdxMenuLabelDirective {}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[RdxMenuRadioGroup]',\n hostDirectives: [CdkMenuGroup]\n})\nexport class RdxMenuRadioGroupDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[RdxMenuSeparator]',\n host: {\n role: 'separator',\n '[attr.aria-orientation]': \"'horizontal'\"\n }\n})\nexport class RdxMenuSeparatorDirective {}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { CdkMenuTrigger } from '@angular/cdk/menu';\nimport {\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n input,\n numberAttribute,\n SimpleChange,\n untracked\n} from '@angular/core';\n\nexport type RdxMenuAlign = 'start' | 'center' | 'end';\nexport type RdxMenuSide = 'top' | 'right' | 'bottom' | 'left';\n\n@Directive({\n selector: '[RdxMenuTrigger]',\n hostDirectives: [\n {\n directive: CdkMenuTrigger,\n inputs: ['cdkMenuTriggerFor: menuTriggerFor', 'cdkMenuPosition: menuPosition']\n }\n ],\n host: {\n role: 'menuitem',\n '[attr.aria-haspopup]': \"'menu'\",\n '[attr.aria-expanded]': 'cdkTrigger.isOpen()',\n '[attr.data-state]': \"cdkTrigger.isOpen() ? 'open': 'closed'\",\n '[attr.data-disabled]': \"disabled() ? '' : undefined\",\n\n '(pointerdown)': 'onPointerDown($event)'\n }\n})\nexport class RdxMenuTriggerDirective {\n protected readonly cdkTrigger = inject(CdkMenuTrigger, { host: true });\n\n readonly menuTriggerFor = input.required();\n\n /**\n * @description The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n readonly side = input<RdxMenuSide>();\n\n readonly align = input<RdxMenuAlign>();\n\n /**\n * @description The distance in pixels from the trigger.\n */\n readonly sideOffset = input<number, NumberInput>(NaN, {\n transform: numberAttribute\n });\n\n /**\n * @description An offset in pixels from the \"start\" or \"end\" alignment options.\n */\n readonly alignOffset = input<number, NumberInput>(NaN, {\n transform: numberAttribute\n });\n\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute\n });\n\n private enablePositions = false;\n\n // TODO\n private readonly positions = computed(() => this.computePositions());\n\n private computePositions() {\n if (this.align() || this.sideOffset() || this.alignOffset() || this.side()) {\n this.enablePositions = true;\n }\n\n const side = this.side() || 'bottom';\n const align = this.align() || 'center';\n const sideOffset = this.sideOffset() || 0;\n const alignOffset = this.alignOffset() || 0;\n\n let originX: 'start' | 'center' | 'end' = 'center';\n let originY: 'top' | 'center' | 'bottom' = 'center';\n let overlayX: 'start' | 'center' | 'end' = 'center';\n let overlayY: 'top' | 'center' | 'bottom' = 'center';\n let offsetX = 0;\n let offsetY = 0;\n\n switch (side) {\n case 'top':\n originY = 'top';\n overlayY = 'bottom';\n offsetY = -sideOffset;\n break;\n case 'bottom':\n originY = 'bottom';\n overlayY = 'top';\n offsetY = sideOffset;\n break;\n case 'left':\n originX = 'start';\n overlayX = 'end';\n offsetX = -sideOffset;\n break;\n case 'right':\n originX = 'end';\n overlayX = 'start';\n offsetX = sideOffset;\n break;\n }\n\n switch (align) {\n case 'start':\n if (side === 'top' || side === 'bottom') {\n originX = 'start';\n overlayX = 'start';\n offsetX = alignOffset;\n } else {\n originY = 'top';\n overlayY = 'top';\n offsetY = alignOffset;\n }\n break;\n case 'end':\n if (side === 'top' || side === 'bottom') {\n originX = 'end';\n overlayX = 'end';\n offsetX = -alignOffset;\n } else {\n originY = 'bottom';\n overlayY = 'bottom';\n offsetY = -alignOffset;\n }\n break;\n case 'center':\n default:\n if (side === 'top' || side === 'bottom') {\n originX = 'center';\n overlayX = 'center';\n } else {\n originY = 'center';\n overlayY = 'center';\n }\n break;\n }\n\n return {\n originX,\n originY,\n overlayX,\n overlayY,\n offsetX,\n offsetY\n };\n }\n\n constructor() {\n this.onMenuPositionEffect();\n }\n\n /** @ignore */\n onPointerDown($event: Event) {\n const mouseEvent = $event as MouseEvent;\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!this.disabled() && mouseEvent.button === 0 && !mouseEvent.ctrlKey) {\n /* empty */\n if (!this.cdkTrigger.isOpen()) {\n // prevent trigger focusing when opening\n // this allows the content to be given focus without competition\n $event.preventDefault();\n }\n }\n }\n\n private onMenuPositionEffect() {\n effect(() => {\n const positions = this.positions();\n\n untracked(() => {\n if (this.enablePositions) {\n this.setMenuPositions([positions]);\n }\n });\n });\n }\n\n private setMenuPositions(positions: CdkMenuTrigger['menuPosition']) {\n const prevMenuPosition = this.cdkTrigger.menuPosition;\n this.cdkTrigger.menuPosition = positions;\n this.fireNgOnChanges('menuPosition', this.cdkTrigger.menuPosition, prevMenuPosition);\n }\n\n private fireNgOnChanges<K extends keyof CdkMenuTrigger, V extends CdkMenuTrigger[K]>(\n input: K,\n currentValue: V,\n previousValue: V,\n firstChange = false\n ) {\n this.cdkTrigger.ngOnChanges({\n [input]: new SimpleChange(previousValue, currentValue, firstChange)\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxMenuContentDirective } from './src/menu-content.directive';\nimport { RdxMenuDirective } from './src/menu-directive';\nimport { RdxMenuGroupDirective } from './src/menu-group.directive';\nimport { RdxMenuItemCheckboxDirective } from './src/menu-item-checkbox.directive';\nimport { RdxMenuItemIndicatorDirective } from './src/menu-item-indicator.directive';\nimport { RdxMenuItemRadioDirective } from './src/menu-item-radio.directive';\nimport { RdxMenuItemDirective } from './src/menu-item.directive';\nimport { RdxMenuLabelDirective } from './src/menu-label.directive';\nimport { RdxMenuRadioGroupDirective } from './src/menu-radio-group.directive';\nimport { RdxMenuSeparatorDirective } from './src/menu-separator.directive';\nimport { RdxMenuTriggerDirective } from './src/menu-trigger.directive';\n\nexport * from './src/menu-content.directive';\nexport * from './src/menu-directive';\nexport * from './src/menu-group.directive';\nexport * from './src/menu-item-checkbox.directive';\nexport * from './src/menu-item-indicator.directive';\nexport * from './src/menu-item-radio.directive';\nexport * from './src/menu-item.directive';\nexport * from './src/menu-label.directive';\nexport * from './src/menu-radio-group.directive';\nexport * from './src/menu-separator.directive';\nexport * from './src/menu-trigger.directive';\n\nexport type { RdxMenuAlign, RdxMenuSide } from './src/menu-trigger.directive';\n\nconst menuImports = [\n RdxMenuDirective,\n RdxMenuItemCheckboxDirective,\n RdxMenuItemRadioDirective,\n RdxMenuItemIndicatorDirective,\n RdxMenuTriggerDirective,\n RdxMenuGroupDirective,\n RdxMenuRadioGroupDirective,\n RdxMenuItemDirective,\n RdxMenuSeparatorDirective,\n RdxMenuContentDirective,\n RdxMenuLabelDirective\n];\n\n@NgModule({\n imports: [...menuImports],\n exports: [...menuImports]\n})\nexport class RdxMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"radix-ng-primitives-menu.mjs","sources":["../../../packages/primitives/menu/src/menu-root.ts","../../../packages/primitives/menu/src/menu-arrow.ts","../../../packages/primitives/menu/src/menu-backdrop.ts","../../../packages/primitives/menu/src/menu-utils.ts","../../../packages/primitives/menu/src/menu-checkbox-item.ts","../../../packages/primitives/menu/src/menu-checkbox-item-indicator.ts","../../../packages/primitives/menu/src/menu-group.ts","../../../packages/primitives/menu/src/menu-group-label.ts","../../../packages/primitives/menu/src/menu-item.ts","../../../packages/primitives/menu/src/menu-link-item.ts","../../../packages/primitives/menu/src/menu-popup.ts","../../../packages/primitives/menu/src/menu-portal.ts","../../../packages/primitives/menu/src/menu-positioner.ts","../../../packages/primitives/menu/src/menu-radio-group.ts","../../../packages/primitives/menu/src/menu-radio-item.ts","../../../packages/primitives/menu/src/menu-radio-item-indicator.ts","../../../packages/primitives/menu/src/menu-separator.ts","../../../packages/primitives/menu/src/menu-sub-trigger.ts","../../../packages/primitives/menu/src/menu-trigger.ts","../../../packages/primitives/menu/src/menu-viewport.ts","../../../packages/primitives/menu/index.ts","../../../packages/primitives/menu/radix-ng-primitives-menu.ts"],"sourcesContent":["import {\n booleanAttribute,\n computed,\n Directive,\n effect,\n inject,\n input,\n model,\n output,\n signal,\n Signal,\n untracked\n} from '@angular/core';\nimport { BooleanInput, createContext, useTransitionStatus } from '@radix-ng/primitives/core';\nimport { RdxPopper } from '@radix-ng/primitives/popper';\n\nexport type RdxMenuTransitionStatus = 'starting' | 'ending' | undefined;\n/**\n * How focus moves into the popup when it opens.\n * - `'first'` / `'last'` — focus and highlight the first / last item (keyboard opening).\n * - `'popup'` — focus the popup container without highlighting any item (pointer opening, e.g. a\n * context menu opened by right click).\n * - `false` — leave focus on the trigger.\n */\nexport type RdxMenuAutoFocus = 'first' | 'last' | 'popup' | false;\nexport type RdxMenuAutoFocusInput = boolean | RdxMenuAutoFocus;\nexport type RdxMenuOrientation = 'horizontal' | 'vertical';\n\nexport interface RdxMenuRootContext {\n isOpen: Signal<boolean>;\n disabled: Signal<boolean>;\n modal: Signal<boolean>;\n loopFocus: Signal<boolean>;\n highlightItemOnHover: Signal<boolean>;\n orientation: Signal<RdxMenuOrientation>;\n closeParentOnEsc: Signal<boolean>;\n /** Whether the popup should focus its first item when it opens. */\n autoFocus: Signal<RdxMenuAutoFocus>;\n isSubmenu: Signal<boolean>;\n hasTriggerInteractionHandler: Signal<boolean>;\n trigger: Signal<HTMLElement | undefined>;\n transitionStatus: Signal<RdxMenuTransitionStatus>;\n close: () => void;\n toggle: () => void;\n show: (autoFocus?: RdxMenuAutoFocusInput) => void;\n /** Open the menu without moving focus into the popup (used for menubar hover-switching). */\n showWithoutAutoFocus: () => void;\n registerTrigger: (el: HTMLElement) => () => void;\n registerTransitionElement: (element: HTMLElement) => () => void;\n registerPopupArrowNavigationHandler: (handler: (offset: 1 | -1) => boolean) => () => void;\n registerTriggerInteractionHandler: (handler: RdxMenuTriggerInteractionHandler) => () => void;\n markAsSubmenu: () => void;\n closeParent: () => void;\n handlePopupArrowNavigation: (offset: 1 | -1) => boolean;\n handleTriggerInteraction: (interaction: RdxMenuTriggerInteraction) => boolean;\n}\n\nexport type RdxMenuTriggerInteraction =\n | { type: 'click' }\n | { type: 'pointerenter'; event: PointerEvent }\n | { type: 'arrowdown'; event: Event }\n | { type: 'arrowup'; event: Event }\n | { type: 'arrowleft'; event: Event }\n | { type: 'arrowright'; event: Event }\n | { type: 'home'; event: Event }\n | { type: 'end'; event: Event }\n | { type: 'escape'; event: Event };\n\nexport type RdxMenuTriggerInteractionHandler = (interaction: RdxMenuTriggerInteraction) => boolean;\n\nexport const [injectRdxMenuRootContext, provideRdxMenuRootContext] =\n createContext<RdxMenuRootContext>('RdxMenuRootContext');\n\nfunction buildContext(instance: RdxMenuRoot): RdxMenuRootContext {\n return {\n isOpen: instance.open,\n disabled: instance.disabled,\n modal: instance.modal,\n loopFocus: instance.loopFocus,\n highlightItemOnHover: instance.highlightItemOnHover,\n orientation: instance.orientation,\n closeParentOnEsc: instance.closeParentOnEsc,\n autoFocus: instance.autoFocus.asReadonly(),\n isSubmenu: instance.isSubmenu.asReadonly(),\n hasTriggerInteractionHandler: instance.hasTriggerInteractionHandler.asReadonly(),\n trigger: instance.trigger.asReadonly(),\n transitionStatus: instance.transitionStatus,\n close: () => instance.close(),\n toggle: () => instance.toggle(),\n show: (autoFocus) => instance.show(autoFocus),\n showWithoutAutoFocus: () => instance.show(false),\n registerTrigger: (el) => instance.registerTrigger(el),\n registerTransitionElement: (el) => instance.registerTransitionElement(el),\n registerPopupArrowNavigationHandler: (handler) => instance.registerPopupArrowNavigationHandler(handler),\n registerTriggerInteractionHandler: (handler) => instance.registerTriggerInteractionHandler(handler),\n markAsSubmenu: () => instance.markAsSubmenu(),\n closeParent: () => instance.closeParent(),\n handlePopupArrowNavigation: (offset) => instance.handlePopupArrowNavigation(offset),\n handleTriggerInteraction: (interaction) => instance.handleTriggerInteraction(interaction)\n };\n}\n\nconst contextFactory = () => buildContext(inject(RdxMenuRoot));\n\n/**\n * Groups all parts of a menu.\n */\n@Directive({\n selector: '[rdxMenuRoot],[rdxMenuSubmenuRoot]',\n exportAs: 'rdxMenuRoot',\n providers: [provideRdxMenuRootContext(contextFactory)],\n hostDirectives: [RdxPopper]\n})\nexport class RdxMenuRoot {\n private readonly popper = inject(RdxPopper);\n\n /** Shared open/close transition state machine (completes on the real animationend). */\n private readonly transition = useTransitionStatus((open) => this.onOpenChangeComplete.emit(open));\n\n private registeredTrigger: HTMLElement | undefined;\n private popupArrowNavigationHandler: ((offset: 1 | -1) => boolean) | undefined;\n private triggerInteractionHandler: RdxMenuTriggerInteractionHandler | undefined;\n private hasAppliedDefaultOpen = false;\n\n /** Whether the menu is currently open. */\n readonly open = model(false);\n\n /** Whether the menu is initially open. */\n readonly defaultOpen = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether interactions with the menu are disabled. */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether the menu should block outside interactions. */\n readonly modal = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether keyboard navigation wraps at list boundaries. */\n readonly loopFocus = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Whether moving the pointer over items should highlight them. */\n readonly highlightItemOnHover = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** The menu orientation. */\n readonly orientation = input<RdxMenuOrientation>('vertical');\n\n /** Whether pressing Escape inside a submenu closes the whole menu chain. */\n readonly closeParentOnEsc = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Emits when the open state changes. */\n readonly onOpenChange = output<boolean>();\n\n /** Emits when the open/close CSS transition or animation finishes. */\n readonly onOpenChangeComplete = output<boolean>();\n\n readonly trigger = signal<HTMLElement | undefined>(undefined);\n readonly transitionStatus = this.transition.status;\n /** Whether the popup grabs focus when it opens. Set false for menubar hover-switching. */\n readonly autoFocus = signal<RdxMenuAutoFocus>('first');\n readonly isSubmenu = signal(false);\n readonly hasTriggerInteractionHandler = signal(false);\n readonly state = computed(() => (this.open() ? 'open' : 'closed'));\n\n constructor() {\n effect(() => {\n const defaultOpen = this.defaultOpen();\n\n if (!this.hasAppliedDefaultOpen && defaultOpen) {\n this.hasAppliedDefaultOpen = true;\n this.open.set(defaultOpen);\n }\n });\n\n effect(() => this.popper.anchorOverride.set(this.trigger()));\n\n let previousOpen = this.open();\n effect(() => {\n const open = this.open();\n if (open !== previousOpen) {\n previousOpen = open;\n untracked(() => this.transition.start(open));\n }\n });\n }\n\n show(autoFocus: RdxMenuAutoFocusInput = 'first') {\n if (this.disabled()) {\n return;\n }\n\n this.autoFocus.set(autoFocus === true ? 'first' : autoFocus);\n if (!this.open()) {\n this.open.set(true);\n this.onOpenChange.emit(true);\n }\n }\n\n close() {\n if (this.open()) {\n this.open.set(false);\n this.onOpenChange.emit(false);\n }\n }\n\n toggle() {\n if (this.disabled()) {\n return;\n }\n\n if (this.open()) {\n this.close();\n } else {\n this.show();\n }\n }\n\n registerTrigger(el: HTMLElement): () => void {\n this.registeredTrigger = el;\n this.trigger.set(el);\n return () => {\n if (this.registeredTrigger === el) {\n this.registeredTrigger = undefined;\n this.trigger.set(undefined);\n }\n };\n }\n\n registerTransitionElement(element: HTMLElement): () => void {\n return this.transition.registerElement(element);\n }\n\n registerPopupArrowNavigationHandler(handler: (offset: 1 | -1) => boolean): () => void {\n this.popupArrowNavigationHandler = handler;\n\n return () => {\n if (this.popupArrowNavigationHandler === handler) {\n this.popupArrowNavigationHandler = undefined;\n }\n };\n }\n\n handlePopupArrowNavigation(offset: 1 | -1): boolean {\n return this.popupArrowNavigationHandler?.(offset) ?? false;\n }\n\n registerTriggerInteractionHandler(handler: RdxMenuTriggerInteractionHandler): () => void {\n this.triggerInteractionHandler = handler;\n this.hasTriggerInteractionHandler.set(true);\n\n return () => {\n if (this.triggerInteractionHandler === handler) {\n this.triggerInteractionHandler = undefined;\n this.hasTriggerInteractionHandler.set(false);\n }\n };\n }\n\n handleTriggerInteraction(interaction: RdxMenuTriggerInteraction): boolean {\n return this.triggerInteractionHandler?.(interaction) ?? false;\n }\n\n markAsSubmenu(): void {\n this.isSubmenu.set(true);\n }\n\n closeParent(): void {\n this.trigger()?.dispatchEvent(new CustomEvent('rdx-menu-close-parent', { bubbles: true }));\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { RdxPopperArrow, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxMenuRootContext } from './menu-root';\n\n/**\n * An optional visual arrow connecting the popup to its trigger.\n * Place it inside `rdxMenuPopup`. Positioning is handled by the shared Popper Arrow primitive.\n */\n@Directive({\n selector: '[rdxMenuArrow]',\n exportAs: 'rdxMenuArrow',\n hostDirectives: [RdxPopperArrow],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-side]': 'side()',\n '[attr.data-align]': 'align()',\n '[attr.data-uncentered]': 'uncentered() ? \"\" : undefined'\n }\n})\nexport class RdxMenuArrow {\n protected readonly rootContext = injectRdxMenuRootContext()!;\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n\n protected readonly side = computed(() => this.wrapper?.placedSide());\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n protected readonly uncentered = computed(() => this.wrapper?.arrowUncentered() ?? false);\n}\n","import { Directive } from '@angular/core';\nimport { injectRdxMenuRootContext } from './menu-root';\n\n/**\n * An optional overlay rendered behind the menu popup.\n * Style it with `position: fixed; inset: 0` and use `data-open` / `data-closed`\n * for CSS animations.\n */\n@Directive({\n selector: '[rdxMenuBackdrop]',\n exportAs: 'rdxMenuBackdrop',\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-state]': 'rootContext.isOpen() ? \"open\" : \"closed\"',\n '[attr.data-starting-style]': 'rootContext.transitionStatus() === \"starting\" ? \"\" : undefined',\n '[attr.data-ending-style]': 'rootContext.transitionStatus() === \"ending\" ? \"\" : undefined'\n }\n})\nexport class RdxMenuBackdrop {\n protected readonly rootContext = injectRdxMenuRootContext()!;\n}\n","export type CheckedState = boolean | 'indeterminate';\n\nexport function isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nexport function getCheckedState(checked: CheckedState): 'checked' | 'unchecked' | 'indeterminate' {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n Signal\n} from '@angular/core';\nimport { BooleanInput, createContext } from '@radix-ng/primitives/core';\nimport { injectRdxMenuRootContext } from './menu-root';\nimport { CheckedState, getCheckedState, isIndeterminate } from './menu-utils';\n\nexport interface RdxMenuCheckboxItemContext {\n checked: Signal<CheckedState>;\n}\n\nexport const [injectRdxMenuCheckboxItemContext, provideRdxMenuCheckboxItemContext] =\n createContext<RdxMenuCheckboxItemContext>('RdxMenuCheckboxItemContext');\n\nconst checkboxItemContextFactory = (): RdxMenuCheckboxItemContext => {\n const instance = inject(RdxMenuCheckboxItem);\n return {\n checked: instance.checked\n };\n};\n\n/**\n * A menu item that can be checked or unchecked.\n */\n@Directive({\n selector: '[rdxMenuCheckboxItem]',\n exportAs: 'rdxMenuCheckboxItem',\n providers: [provideRdxMenuCheckboxItemContext(checkboxItemContextFactory)],\n host: {\n role: 'menuitemcheckbox',\n tabindex: '-1',\n '[attr.aria-checked]': 'isIndeterminate(checked()) ? \"mixed\" : checked()',\n '[attr.data-state]': 'getCheckedState(checked())',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? true : undefined',\n '[attr.data-highlighted]': 'highlighted() ? \"\" : undefined',\n '[attr.data-label]': 'label() ?? undefined',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(click)': 'onItemClick()',\n '(keydown.enter)': 'onActivate($event)',\n '(keydown.space)': 'onActivate($event)'\n }\n})\nexport class RdxMenuCheckboxItem {\n private readonly rootContext = injectRdxMenuRootContext(true);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly isFocused = signal(false);\n\n /** Whether this item is disabled. */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether toggling closes the menu. Defaults to false — checkbox items stay open. */\n readonly closeOnClick = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Explicit typeahead label. When set, overrides textContent for character search. */\n readonly label = input<string | undefined>(undefined);\n\n /** The checked state of the item. */\n readonly checked = model<CheckedState>(false);\n\n /** Emits when the checked state changes. */\n readonly onCheckedChange = output<CheckedState>();\n\n protected readonly highlighted = computed(() => this.isFocused());\n\n // Expose helpers for host bindings\n protected readonly isIndeterminate = isIndeterminate;\n protected readonly getCheckedState = getCheckedState;\n\n onFocus(): void {\n if (!this.disabled()) {\n this.isFocused.set(true);\n }\n }\n\n onBlur(): void {\n this.isFocused.set(false);\n }\n\n onPointerMove(event: PointerEvent): void {\n if (event.defaultPrevented || event.pointerType !== 'mouse' || this.disabled()) {\n return;\n }\n if (this.rootContext && !this.rootContext.highlightItemOnHover()) {\n return;\n }\n if (document.activeElement !== this.elementRef.nativeElement) {\n this.elementRef.nativeElement.focus({ preventScroll: true });\n }\n }\n\n onPointerLeave(event: PointerEvent): void {\n if (event.pointerType !== 'mouse') {\n return;\n }\n if (document.activeElement === this.elementRef.nativeElement) {\n this.elementRef.nativeElement.closest<HTMLElement>('[rdxMenuPopup]')?.focus({ preventScroll: true });\n }\n }\n\n onItemClick(): void {\n if (this.disabled()) return;\n this.toggleChecked();\n if (this.closeOnClick()) this.rootContext?.close();\n }\n\n protected onActivate(event: Event): void {\n if (this.disabled()) return;\n event.preventDefault();\n this.toggleChecked();\n if (this.closeOnClick()) this.rootContext?.close();\n }\n\n private toggleChecked(): void {\n const next = isIndeterminate(this.checked()) ? true : !this.checked();\n this.checked.set(next);\n this.onCheckedChange.emit(next);\n }\n}\n","import { booleanAttribute, computed, Directive, input } from '@angular/core';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectRdxMenuCheckboxItemContext } from './menu-checkbox-item';\nimport { getCheckedState, isIndeterminate } from './menu-utils';\n\n/**\n * Renders when the parent checkbox item is checked or indeterminate.\n * Set `keepMounted` to keep the element in the DOM when unchecked (enables CSS animations).\n */\n@Directive({\n selector: '[rdxMenuCheckboxItemIndicator]',\n exportAs: 'rdxMenuCheckboxItemIndicator',\n host: {\n '[attr.data-state]': 'dataState()',\n '[attr.data-starting-style]': 'isVisible() ? \"\" : undefined',\n '[attr.data-ending-style]': '!isVisible() ? \"\" : undefined',\n '[style.display]': '!keepMounted() && !isVisible() ? \"none\" : null'\n }\n})\nexport class RdxMenuCheckboxItemIndicator {\n private readonly itemContext = injectRdxMenuCheckboxItemContext()!;\n\n /** Keep the indicator in the DOM when unchecked so CSS exit animations can play. */\n readonly keepMounted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly dataState = computed(() => getCheckedState(this.itemContext.checked()));\n protected readonly isVisible = computed(\n () => isIndeterminate(this.itemContext.checked()) || this.itemContext.checked() === true\n );\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Groups related menu items together.\n */\n@Directive({\n selector: '[rdxMenuGroup]',\n exportAs: 'rdxMenuGroup',\n host: {\n role: 'group'\n }\n})\nexport class RdxMenuGroup {}\n","import { Directive } from '@angular/core';\n\n/**\n * A label for a menu group.\n */\n@Directive({\n selector: '[rdxMenuGroupLabel]',\n exportAs: 'rdxMenuGroupLabel'\n})\nexport class RdxMenuGroupLabel {}\n","import { booleanAttribute, computed, Directive, ElementRef, inject, input, output, signal } from '@angular/core';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectRdxMenuRootContext } from './menu-root';\n\n/**\n * An individual menu item.\n */\n@Directive({\n selector: '[rdxMenuItem]',\n exportAs: 'rdxMenuItem',\n host: {\n role: 'menuitem',\n tabindex: '-1',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? true : undefined',\n '[attr.data-highlighted]': 'highlighted() ? \"\" : undefined',\n '[attr.data-label]': 'label() ?? undefined',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(click)': 'onItemClick()',\n '(keydown.enter)': 'onActivate($event)',\n '(keydown.space)': 'onActivate($event)'\n }\n})\nexport class RdxMenuItem {\n private readonly rootContext = injectRdxMenuRootContext(true);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly isFocused = signal(false);\n\n /** Whether this item is disabled. */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether selecting this item closes the menu. */\n readonly closeOnClick = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Explicit typeahead label. When set, overrides textContent for character search. */\n readonly label = input<string | undefined>(undefined);\n\n /** Emits when the item is selected. */\n readonly onSelect = output<void>();\n\n protected readonly highlighted = computed(() => this.isFocused());\n\n onFocus(): void {\n if (!this.disabled()) {\n this.isFocused.set(true);\n }\n }\n\n onBlur(): void {\n this.isFocused.set(false);\n }\n\n onPointerMove(event: PointerEvent): void {\n if (event.defaultPrevented || event.pointerType !== 'mouse' || this.disabled()) {\n return;\n }\n if (this.rootContext && !this.rootContext.highlightItemOnHover()) {\n return;\n }\n if (document.activeElement !== this.elementRef.nativeElement) {\n this.elementRef.nativeElement.focus({ preventScroll: true });\n }\n }\n\n onPointerLeave(event: PointerEvent): void {\n if (event.pointerType !== 'mouse') {\n return;\n }\n // Clear highlight when the pointer leaves: move focus back to the popup. A subsequent\n // pointermove on a sibling item re-focuses it, so moving between items still works.\n if (document.activeElement === this.elementRef.nativeElement) {\n this.elementRef.nativeElement.closest<HTMLElement>('[rdxMenuPopup]')?.focus({ preventScroll: true });\n }\n }\n\n onItemClick(): void {\n if (this.disabled()) return;\n this.onSelect.emit();\n if (this.closeOnClick()) this.rootContext?.close();\n }\n\n protected onActivate(event: Event): void {\n if (this.disabled()) return;\n event.preventDefault();\n this.onSelect.emit();\n if (this.closeOnClick()) this.rootContext?.close();\n }\n}\n","import { booleanAttribute, computed, Directive, ElementRef, inject, input, output, signal } from '@angular/core';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectRdxMenuRootContext } from './menu-root';\n\n/**\n * A menu item that renders as a link.\n */\n@Directive({\n selector: 'a[rdxMenuLinkItem]',\n exportAs: 'rdxMenuLinkItem',\n host: {\n role: 'menuitem',\n tabindex: '-1',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? true : undefined',\n '[attr.data-highlighted]': 'highlighted() ? \"\" : undefined',\n '[attr.data-label]': 'label() ?? undefined',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(click)': 'onItemClick($event)',\n '(keydown.enter)': 'onActivate($event)'\n }\n})\nexport class RdxMenuLinkItem {\n private readonly rootContext = injectRdxMenuRootContext(true);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly isFocused = signal(false);\n\n /** Whether this item is disabled. */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether selecting this item closes the menu. Defaults to false — links navigate by default. */\n readonly closeOnClick = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Explicit typeahead label. When set, overrides textContent for character search. */\n readonly label = input<string | undefined>(undefined);\n\n /** Emits when the item is selected. */\n readonly onSelect = output<void>();\n\n protected readonly highlighted = computed(() => this.isFocused());\n\n onFocus(): void {\n if (!this.disabled()) {\n this.isFocused.set(true);\n }\n }\n\n onBlur(): void {\n this.isFocused.set(false);\n }\n\n onPointerMove(event: PointerEvent): void {\n if (event.defaultPrevented || event.pointerType !== 'mouse' || this.disabled()) {\n return;\n }\n if (this.rootContext && !this.rootContext.highlightItemOnHover()) {\n return;\n }\n if (document.activeElement !== this.elementRef.nativeElement) {\n this.elementRef.nativeElement.focus({ preventScroll: true });\n }\n }\n\n onPointerLeave(event: PointerEvent): void {\n if (event.pointerType !== 'mouse') {\n return;\n }\n if (document.activeElement === this.elementRef.nativeElement) {\n this.elementRef.nativeElement.closest<HTMLElement>('[rdxMenuPopup]')?.focus({ preventScroll: true });\n }\n }\n\n onItemClick(event: MouseEvent): void {\n if (this.disabled()) {\n event.preventDefault();\n return;\n }\n this.onSelect.emit();\n if (this.closeOnClick()) this.rootContext?.close();\n }\n\n protected onActivate(event: Event): void {\n if (this.disabled()) {\n event.preventDefault();\n return;\n }\n this.onSelect.emit();\n if (this.closeOnClick()) this.rootContext?.close();\n }\n}\n","import { computed, DestroyRef, Directive, effect, ElementRef, inject, signal } from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport {\n provideRdxDismissableLayerConfig,\n RdxDismissableLayer,\n RdxDismissableLayersContextToken\n} from '@radix-ng/primitives/dismissable-layer';\nimport { provideRdxFocusScopeConfig, RdxFocusScope } from '@radix-ng/primitives/focus-scope';\nimport { RdxPopperContent, RdxPopperContentWrapper } from '@radix-ng/primitives/popper';\nimport { injectRdxMenuRootContext } from './menu-root';\n\n/** Selector for focusable menu items within the popup. */\nconst ITEM_SELECTOR = [\n '[rdxMenuItem]:not([data-disabled])',\n '[rdxMenuCheckboxItem]:not([data-disabled])',\n '[rdxMenuRadioItem]:not([data-disabled])',\n '[rdxMenuLinkItem]:not([data-disabled])',\n '[rdxMenuSubTrigger]:not([data-disabled])'\n].join(',');\n\nfunction getFocusableItems(popup: HTMLElement): HTMLElement[] {\n // Exclude items that belong to a nested child popup (submenu).\n return Array.from(popup.querySelectorAll<HTMLElement>(ITEM_SELECTOR)).filter(\n (item) => item.closest('[rdxMenuPopup]') === popup\n );\n}\n\n/**\n * A container for the menu contents.\n */\n@Directive({\n selector: '[rdxMenuPopup]',\n exportAs: 'rdxMenuPopup',\n hostDirectives: [RdxPopperContent, RdxDismissableLayer, RdxFocusScope],\n providers: [\n provideRdxDismissableLayerConfig(() => {\n const rootContext = injectRdxMenuRootContext()!;\n return {\n disableOutsidePointerEvents: computed(() => rootContext.modal())\n };\n }),\n provideRdxFocusScopeConfig(() => ({\n trapped: signal(false)\n }))\n ],\n host: {\n role: 'menu',\n tabindex: '-1',\n '[attr.aria-orientation]': 'rootContext.orientation()',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-state]': 'rootContext.isOpen() ? \"open\" : \"closed\"',\n '[attr.data-starting-style]': 'rootContext.transitionStatus() === \"starting\" ? \"\" : undefined',\n '[attr.data-ending-style]': 'rootContext.transitionStatus() === \"ending\" ? \"\" : undefined',\n '[attr.data-align]': 'align()',\n '[attr.data-side]': 'side()',\n '(keydown)': 'handleKeydown($event)',\n '(rdx-menu-close-parent)': 'handleCloseParent($event)'\n }\n})\nexport class RdxMenuPopup {\n protected readonly rootContext = injectRdxMenuRootContext()!;\n private readonly dismissableLayer = inject(RdxDismissableLayer);\n private readonly focusScope = inject(RdxFocusScope);\n private readonly wrapper = inject(RdxPopperContentWrapper, { optional: true });\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly dismissableLayersContext = inject(RdxDismissableLayersContextToken);\n private search = '';\n private searchTimer: ReturnType<typeof setTimeout> | undefined;\n\n protected readonly align = computed(() => this.wrapper?.placedAlign());\n protected readonly side = computed(() => this.wrapper?.placedSide());\n\n /**\n * Event handler called when the escape key is pressed. Can be prevented.\n */\n readonly escapeKeyDown = outputFromObservable(outputToObservable(this.dismissableLayer.escapeKeyDown));\n\n /**\n * Event handler called when a pointerdown event happens outside of the popup. Can be prevented.\n */\n readonly pointerDownOutside = outputFromObservable(outputToObservable(this.dismissableLayer.pointerDownOutside));\n\n /**\n * Event handler called when focus moves outside of the popup. Can be prevented.\n */\n readonly focusOutside = outputFromObservable(outputToObservable(this.dismissableLayer.focusOutside));\n\n /**\n * Event handler called when an interaction happens outside of the popup. Can be prevented.\n */\n readonly interactOutside = outputFromObservable(outputToObservable(this.dismissableLayer.interactOutside));\n\n /**\n * Event handler called before focus moves into the popup. Can be prevented.\n */\n readonly openAutoFocus = outputFromObservable(outputToObservable(this.focusScope.mountAutoFocus));\n\n /**\n * Event handler called before focus returns after the popup is removed. Can be prevented.\n */\n readonly closeAutoFocus = outputFromObservable(outputToObservable(this.focusScope.unmountAutoFocus));\n\n constructor() {\n const unregister = this.rootContext.registerTransitionElement(this.elementRef.nativeElement);\n inject(DestroyRef).onDestroy(() => {\n unregister();\n clearTimeout(this.searchTimer);\n });\n\n effect((onCleanup) => {\n if (!this.rootContext.isSubmenu()) {\n return;\n }\n\n const element = this.elementRef.nativeElement;\n this.dismissableLayersContext.branches.update((branches) => [...branches, element]);\n onCleanup(() => {\n this.dismissableLayersContext.branches.update((branches) =>\n branches.filter((branch) => branch !== element)\n );\n });\n });\n\n this.dismissableLayer.dismiss.subscribe(() => {\n this.rootContext.close();\n });\n\n // Move focus into the popup when the menu opens — unless the opener suppressed it\n // (e.g. menubar hover-switching, where focus stays on the trigger).\n effect(() => {\n const autoFocus = this.rootContext.autoFocus();\n if (this.rootContext.isOpen() && autoFocus) {\n requestAnimationFrame(() => {\n // `'popup'` focuses the container without highlighting an item (pointer opening).\n if (autoFocus === 'popup') {\n this.elementRef.nativeElement.focus({ preventScroll: true });\n return;\n }\n\n const items = getFocusableItems(this.elementRef.nativeElement);\n const item = autoFocus === 'last' ? items[items.length - 1] : items[0];\n item?.focus({ preventScroll: true });\n });\n }\n });\n }\n\n protected handleCloseParent(event: Event): void {\n event.stopPropagation();\n this.rootContext.close();\n\n if (this.rootContext.isSubmenu() && this.rootContext.closeParentOnEsc()) {\n this.rootContext.closeParent();\n }\n }\n\n protected handleKeydown(event: KeyboardEvent): void {\n const el = this.elementRef.nativeElement;\n const items = getFocusableItems(el);\n const current = document.activeElement as HTMLElement;\n const currentIndex = items.indexOf(current);\n\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n event.stopPropagation();\n const atEnd = currentIndex >= items.length - 1;\n const next = atEnd\n ? this.rootContext.loopFocus()\n ? items[0]\n : items[items.length - 1]\n : items[currentIndex + 1];\n next?.focus({ preventScroll: true });\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n event.stopPropagation();\n const atStart = currentIndex <= 0;\n const prev = atStart\n ? this.rootContext.loopFocus()\n ? items[items.length - 1]\n : items[0]\n : items[currentIndex - 1];\n prev?.focus({ preventScroll: true });\n break;\n }\n case 'Home': {\n event.preventDefault();\n event.stopPropagation();\n items[0]?.focus({ preventScroll: true });\n break;\n }\n case 'End': {\n event.preventDefault();\n event.stopPropagation();\n items[items.length - 1]?.focus({ preventScroll: true });\n break;\n }\n case 'ArrowLeft': {\n const trigger = this.rootContext.trigger();\n if (!trigger?.hasAttribute('rdxMenuSubTrigger')) {\n if (this.rootContext.handlePopupArrowNavigation(-1)) {\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n }\n\n // Close this popup and return focus to the trigger (used by submenus).\n event.preventDefault();\n event.stopPropagation();\n this.rootContext.close();\n trigger.focus({ preventScroll: true });\n break;\n }\n case 'ArrowRight': {\n if (this.rootContext.handlePopupArrowNavigation(1)) {\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n }\n case 'Escape': {\n event.preventDefault();\n event.stopPropagation();\n this.rootContext.close();\n if (this.rootContext.isSubmenu() && this.rootContext.closeParentOnEsc()) {\n this.rootContext.closeParent();\n }\n this.rootContext.trigger()?.focus({ preventScroll: true });\n break;\n }\n case 'Tab': {\n // Close on tab to allow natural tab navigation\n this.rootContext.close();\n break;\n }\n default: {\n // Typeahead\n if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {\n event.preventDefault();\n const char = event.key.toLowerCase();\n this.search += char;\n clearTimeout(this.searchTimer);\n this.searchTimer = setTimeout(() => {\n this.search = '';\n this.searchTimer = undefined;\n }, 1000);\n\n const query =\n this.search.length > 1 && [...this.search].every((c) => c === char) ? char : this.search;\n const startIndex = currentIndex >= 0 ? currentIndex + 1 : 0;\n const rotated = [...items.slice(startIndex), ...items.slice(0, startIndex)];\n const match = rotated.find((item) => {\n const text = (item.dataset['label'] ?? item.textContent?.trim() ?? '').toLowerCase();\n return text.startsWith(query);\n });\n match?.focus({ preventScroll: true });\n }\n break;\n }\n }\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { RdxPortal, RdxPortalContainer } from '@radix-ng/primitives/portal';\n\n/**\n * Moves the menu to a different part of the DOM.\n * Applied on ng-template — no host bindings (ng-template is not a real DOM node).\n */\n@Directive({\n selector: '[rdxMenuPortal]',\n exportAs: 'rdxMenuPortal',\n hostDirectives: [\n {\n directive: RdxPortal,\n inputs: ['container']\n }\n ]\n})\nexport class RdxMenuPortal {\n /**\n * Optional container to portal the content into. Defaults to `document.body`.\n */\n readonly container = input<RdxPortalContainer>();\n}\n","import { booleanAttribute, Directive, ElementRef, inject, input, numberAttribute } from '@angular/core';\nimport { outputFromObservable, outputToObservable } from '@angular/core/rxjs-interop';\nimport { BooleanInput, NumberInput } from '@radix-ng/primitives/core';\nimport {\n Align,\n provideRdxPopperContentConfig,\n RdxPopperAnchorElement,\n RdxPopperContentWrapper,\n Side\n} from '@radix-ng/primitives/popper';\nimport { injectRdxMenuRootContext } from './menu-root';\n\n/**\n * Positions the menu against its trigger.\n */\n@Directive({\n selector: '[rdxMenuPositioner]',\n exportAs: 'rdxMenuPositioner',\n providers: [\n provideRdxPopperContentConfig({ arrowPadding: 5, collisionPadding: 5, updatePositionStrategy: 'always' })\n ],\n hostDirectives: [\n {\n directive: RdxPopperContentWrapper,\n inputs: [\n 'anchor',\n 'side',\n 'sideOffset',\n 'align',\n 'alignOffset',\n 'arrowPadding',\n 'avoidCollisions',\n 'collisionBoundary',\n 'collisionPadding',\n 'sticky',\n 'hideWhenDetached',\n 'positionStrategy',\n 'updatePositionStrategy'\n ]\n }\n ],\n host: {\n '[attr.data-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '[attr.data-closed]': 'rootContext.isOpen() ? undefined : \"\"',\n '[attr.data-anchor-hidden]': 'wrapper.anchorHidden() ? \"\" : undefined',\n '[attr.data-align]': 'wrapper.placedAlign()',\n '[attr.data-side]': 'wrapper.placedSide()',\n '[style]': `{\n '--anchor-width': 'var(--radix-popper-anchor-width)',\n '--anchor-height': 'var(--radix-popper-anchor-height)',\n '--available-width': 'var(--radix-popper-available-width)',\n '--available-height': 'var(--radix-popper-available-height)',\n '--positioner-width': 'var(--radix-popper-content-wrapper-width)',\n '--positioner-height': 'var(--radix-popper-content-wrapper-height)',\n '--transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',\n '--radix-menu-content-available-width': 'var(--radix-popper-available-width)',\n '--radix-menu-content-available-height': 'var(--radix-popper-available-height)',\n '--radix-menu-trigger-width': 'var(--radix-popper-anchor-width)',\n '--radix-menu-trigger-height': 'var(--radix-popper-anchor-height)'\n }`\n }\n})\nexport class RdxMenuPositioner {\n protected readonly rootContext = injectRdxMenuRootContext()!;\n protected readonly wrapper = inject(RdxPopperContentWrapper);\n\n /**\n * An element to position the popup against. Defaults to the trigger.\n */\n readonly anchor = input<RdxPopperAnchorElement>();\n\n /**\n * The preferred side of the trigger to render against when open.\n */\n readonly side = input<Side>('bottom');\n\n /**\n * Distance between the trigger and the popup in pixels.\n */\n readonly sideOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * How to align the popup relative to the specified side.\n */\n readonly align = input<Align>('start');\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n */\n readonly alignOffset = input<number, NumberInput>(0, { transform: numberAttribute });\n\n /**\n * Minimum distance to maintain between the arrow and the edges of the popup.\n */\n readonly arrowPadding = input<number, NumberInput>(5, { transform: numberAttribute });\n\n /**\n * Whether to override side and alignment preferences to prevent collisions.\n */\n readonly avoidCollisions = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /**\n * The element used as the collision boundary.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n\n /**\n * Distance in pixels from the boundary edges where collision detection should occur.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(5);\n\n /**\n * The sticky behavior on the alignment axis.\n */\n readonly sticky = input<'partial' | 'always'>('partial');\n\n /**\n * Whether to hide the popup when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /**\n * The CSS position strategy used by Floating UI.\n */\n readonly positionStrategy = input<'fixed' | 'absolute'>('fixed');\n\n /**\n * Whether to update position on every animation frame.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>('always');\n\n /**\n * Emits when the popup has been placed.\n */\n readonly placed = outputFromObservable(outputToObservable(inject(RdxPopperContentWrapper).placed));\n}\n","import { Directive, inject, model, output, Signal } from '@angular/core';\nimport { createContext } from '@radix-ng/primitives/core';\n\nexport interface RdxMenuRadioGroupContext {\n value: Signal<string | undefined>;\n selectValue: (value: string) => void;\n}\n\nexport const [injectRdxMenuRadioGroupContext, provideRdxMenuRadioGroupContext] =\n createContext<RdxMenuRadioGroupContext>('RdxMenuRadioGroupContext');\n\nconst radioGroupContextFactory = (): RdxMenuRadioGroupContext => {\n const instance = inject(RdxMenuRadioGroup);\n return {\n value: instance.value,\n selectValue: (v) => instance.selectValue(v)\n };\n};\n\n/**\n * Groups radio items in a menu.\n */\n@Directive({\n selector: '[rdxMenuRadioGroup]',\n exportAs: 'rdxMenuRadioGroup',\n providers: [provideRdxMenuRadioGroupContext(radioGroupContextFactory)],\n host: {\n role: 'group'\n }\n})\nexport class RdxMenuRadioGroup {\n /**\n * The currently selected value.\n */\n readonly value = model<string | undefined>(undefined);\n\n /**\n * Emits when the selected value changes.\n */\n readonly onValueChange = output<string>();\n\n selectValue(newValue: string): void {\n this.value.set(newValue);\n this.onValueChange.emit(newValue);\n }\n}\n","import {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n output,\n signal,\n Signal\n} from '@angular/core';\nimport { BooleanInput, createContext } from '@radix-ng/primitives/core';\nimport { injectRdxMenuRadioGroupContext } from './menu-radio-group';\nimport { injectRdxMenuRootContext } from './menu-root';\nimport { getCheckedState } from './menu-utils';\n\nexport interface RdxMenuRadioItemContext {\n checked: Signal<boolean>;\n}\n\nexport const [injectRdxMenuRadioItemContext, provideRdxMenuRadioItemContext] =\n createContext<RdxMenuRadioItemContext>('RdxMenuRadioItemContext');\n\nconst radioItemContextFactory = (): RdxMenuRadioItemContext => {\n const instance = inject(RdxMenuRadioItem);\n return {\n checked: instance.checked\n };\n};\n\n/**\n * A radio item within a menu radio group.\n */\n@Directive({\n selector: '[rdxMenuRadioItem]',\n exportAs: 'rdxMenuRadioItem',\n providers: [provideRdxMenuRadioItemContext(radioItemContextFactory)],\n host: {\n role: 'menuitemradio',\n tabindex: '-1',\n '[attr.aria-checked]': 'checked()',\n '[attr.data-state]': 'getCheckedState(checked())',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.aria-disabled]': 'disabled() ? true : undefined',\n '[attr.data-highlighted]': 'highlighted() ? \"\" : undefined',\n '[attr.data-label]': 'label() ?? undefined',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(click)': 'onItemClick()',\n '(keydown.enter)': 'onActivate($event)',\n '(keydown.space)': 'onActivate($event)'\n }\n})\nexport class RdxMenuRadioItem {\n private readonly rootContext = injectRdxMenuRootContext(true);\n private readonly radioGroupContext = injectRdxMenuRadioGroupContext()!;\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly isFocused = signal(false);\n\n /** The value of this radio item. */\n readonly value = input.required<string>();\n\n /** Whether this item is disabled. */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether selecting closes the menu. Defaults to false — radio items stay open. */\n readonly closeOnClick = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Explicit typeahead label. When set, overrides textContent for character search. */\n readonly label = input<string | undefined>(undefined);\n\n /** Emits when this item is selected. */\n readonly onSelect = output<string>();\n\n readonly checked = computed(() => this.radioGroupContext.value() === this.value());\n\n protected readonly highlighted = computed(() => this.isFocused());\n protected readonly getCheckedState = getCheckedState;\n\n onFocus(): void {\n if (!this.disabled()) {\n this.isFocused.set(true);\n }\n }\n\n onBlur(): void {\n this.isFocused.set(false);\n }\n\n onPointerMove(event: PointerEvent): void {\n if (event.defaultPrevented || event.pointerType !== 'mouse' || this.disabled()) {\n return;\n }\n if (this.rootContext && !this.rootContext.highlightItemOnHover()) {\n return;\n }\n if (document.activeElement !== this.elementRef.nativeElement) {\n this.elementRef.nativeElement.focus({ preventScroll: true });\n }\n }\n\n onPointerLeave(event: PointerEvent): void {\n if (event.pointerType !== 'mouse') {\n return;\n }\n if (document.activeElement === this.elementRef.nativeElement) {\n this.elementRef.nativeElement.closest<HTMLElement>('[rdxMenuPopup]')?.focus({ preventScroll: true });\n }\n }\n\n onItemClick(): void {\n if (this.disabled()) {\n return;\n }\n this.selectItem();\n }\n\n protected onActivate(event: Event): void {\n if (this.disabled()) {\n return;\n }\n event.preventDefault();\n this.selectItem();\n }\n\n private selectItem(): void {\n const v = this.value();\n this.radioGroupContext.selectValue(v);\n this.onSelect.emit(v);\n if (this.closeOnClick()) this.rootContext?.close();\n }\n}\n","import { booleanAttribute, computed, Directive, input } from '@angular/core';\nimport { BooleanInput } from '@radix-ng/primitives/core';\nimport { injectRdxMenuRadioItemContext } from './menu-radio-item';\nimport { getCheckedState } from './menu-utils';\n\n/**\n * Renders when the parent radio item is selected.\n * Set `keepMounted` to keep the element in the DOM when unselected (enables CSS animations).\n */\n@Directive({\n selector: '[rdxMenuRadioItemIndicator]',\n exportAs: 'rdxMenuRadioItemIndicator',\n host: {\n '[attr.data-state]': 'dataState()',\n '[attr.data-starting-style]': 'isVisible() ? \"\" : undefined',\n '[attr.data-ending-style]': '!isVisible() ? \"\" : undefined',\n '[style.display]': '!keepMounted() && !isVisible() ? \"none\" : null'\n }\n})\nexport class RdxMenuRadioItemIndicator {\n private readonly itemContext = injectRdxMenuRadioItemContext()!;\n\n /** Keep the indicator in the DOM when unselected so CSS exit animations can play. */\n readonly keepMounted = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly dataState = computed(() => getCheckedState(this.itemContext.checked()));\n protected readonly isVisible = computed(() => this.itemContext.checked() === true);\n}\n","import { Directive } from '@angular/core';\n\n/**\n * A visual separator between groups of menu items.\n */\n@Directive({\n selector: '[rdxMenuSeparator]',\n exportAs: 'rdxMenuSeparator',\n host: {\n role: 'separator',\n '[attr.aria-orientation]': '\"horizontal\"'\n }\n})\nexport class RdxMenuSeparator {}\n","import {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal\n} from '@angular/core';\nimport { BooleanInput, NumberInput } from '@radix-ng/primitives/core';\nimport { RdxDismissableLayerBranch } from '@radix-ng/primitives/dismissable-layer';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { injectRdxMenuRootContext, RdxMenuRoot } from './menu-root';\n\nconst numberOrUndefined = (value: NumberInput | undefined) => (value == null ? undefined : numberAttribute(value));\nconst submenuRootsByTrigger = new WeakMap<HTMLElement, RdxMenuRoot>();\n\n/**\n * An item inside a parent menu that opens a nested submenu.\n *\n * Place this inside `ng-container rdxMenuRoot` that wraps both the trigger\n * and the submenu positioner. The inner root provides the submenu context;\n * the outer popup discovers this element via `[rdxMenuSubTrigger]` in its\n * ITEM_SELECTOR and includes it in keyboard navigation.\n */\n@Directive({\n selector: '[rdxMenuSubTrigger]',\n exportAs: 'rdxMenuSubTrigger',\n hostDirectives: [RdxPopperAnchor, RdxDismissableLayerBranch],\n host: {\n '[attr.type]': 'nativeButtonState() ? \"button\" : undefined',\n role: 'menuitem',\n tabindex: '-1',\n '[attr.aria-haspopup]': '\"menu\"',\n '[attr.aria-expanded]': 'submenuContext.isOpen()',\n '[attr.aria-disabled]': 'disabled() ? true : undefined',\n '[attr.disabled]': 'nativeButtonState() && disabled() ? \"\" : undefined',\n '[attr.data-state]': 'submenuContext.isOpen() ? \"open\" : \"closed\"',\n '[attr.data-popup-open]': 'submenuContext.isOpen() ? \"\" : undefined',\n '[attr.data-highlighted]': 'highlighted() ? \"\" : undefined',\n '[attr.data-disabled]': 'disabled() ? \"\" : undefined',\n '[attr.data-label]': 'label() ?? undefined',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '(click)': 'onClick()',\n '(keydown.arrowright)': 'onArrowRight($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerleave)': 'onPointerLeave()',\n '(rdx-menu-subtrigger-clear-highlight)': 'clearHighlight()'\n }\n})\nexport class RdxMenuSubTrigger {\n protected readonly submenuContext = injectRdxMenuRootContext()!;\n private readonly submenuRoot = inject(RdxMenuRoot);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isFocused = signal(false);\n private openTimer: ReturnType<typeof setTimeout> | undefined;\n\n /** Whether this trigger (and therefore the submenu) is disabled. */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether this trigger should be treated as a native button. Auto-detected for `<button>`. */\n readonly nativeButton = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether hovering the trigger opens the submenu. */\n readonly openOnHover = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n /** Delay before hover opens the submenu, in milliseconds. */\n readonly delay = input<number | undefined, NumberInput | undefined>(100, { transform: numberOrUndefined });\n\n /** Delay before a pending hover close runs, in milliseconds. */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(0, { transform: numberOrUndefined });\n\n /** Explicit typeahead label. When set, overrides textContent for character search. */\n readonly label = input<string | undefined>(undefined);\n\n /** Highlighted when focused OR while the submenu is open. */\n protected readonly highlighted = computed(() => this.isFocused() || this.submenuContext.isOpen());\n protected readonly nativeButtonState = computed(\n () => this.nativeButton() || this.elementRef.nativeElement.tagName === 'BUTTON'\n );\n\n constructor() {\n this.submenuContext.markAsSubmenu();\n\n effect((onCleanup) => {\n const el = this.elementRef.nativeElement;\n const unregister = this.submenuContext.registerTrigger(el);\n submenuRootsByTrigger.set(el, this.submenuRoot);\n\n onCleanup(() => {\n unregister();\n submenuRootsByTrigger.delete(el);\n });\n });\n\n this.destroyRef.onDestroy(() => {\n clearTimeout(this.openTimer);\n });\n }\n\n protected onFocus(): void {\n if (!this.disabled()) {\n this.clearSiblingHighlights();\n this.isFocused.set(true);\n }\n }\n\n protected onBlur(): void {\n this.isFocused.set(false);\n }\n\n protected onClick(): void {\n if (this.disabled()) return;\n this.clearSiblingHighlights();\n if (!this.submenuContext.isOpen()) {\n this.closeSiblingSubmenus();\n }\n this.submenuContext.toggle();\n }\n\n protected onArrowRight(event: Event): void {\n if (this.disabled()) return;\n event.preventDefault();\n event.stopPropagation();\n this.clearSiblingHighlights();\n if (!this.submenuContext.isOpen()) {\n this.closeSiblingSubmenus();\n this.submenuContext.show();\n }\n }\n\n protected onPointerMove(event: PointerEvent): void {\n if (event.pointerType !== 'mouse' || this.disabled() || !this.openOnHover()) return;\n\n this.clearSiblingHighlights();\n if (this.submenuContext.highlightItemOnHover() && document.activeElement !== this.elementRef.nativeElement) {\n this.elementRef.nativeElement.focus({ preventScroll: true });\n }\n\n if (!this.submenuContext.isOpen()) {\n clearTimeout(this.openTimer);\n this.closeSiblingSubmenus();\n this.openTimer = setTimeout(() => {\n this.submenuContext.show(false);\n }, this.delay() ?? 100);\n }\n }\n\n protected onPointerLeave(): void {\n clearTimeout(this.openTimer);\n }\n\n protected clearHighlight(): void {\n this.isFocused.set(false);\n }\n\n private closeSiblingSubmenus(): void {\n const currentTrigger = this.elementRef.nativeElement;\n const parentPopup = currentTrigger.closest<HTMLElement>('[rdxMenuPopup]');\n\n if (!parentPopup) return;\n\n parentPopup.querySelectorAll<HTMLElement>('[rdxMenuSubTrigger]').forEach((trigger) => {\n if (trigger === currentTrigger || trigger.closest('[rdxMenuPopup]') !== parentPopup) {\n return;\n }\n\n submenuRootsByTrigger.get(trigger)?.close();\n trigger.dispatchEvent(new CustomEvent('rdx-menu-subtrigger-clear-highlight'));\n });\n }\n\n private clearSiblingHighlights(): void {\n const currentTrigger = this.elementRef.nativeElement;\n const parentPopup = currentTrigger.closest<HTMLElement>('[rdxMenuPopup]');\n\n if (!parentPopup) return;\n\n parentPopup.querySelectorAll<HTMLElement>('[rdxMenuSubTrigger]').forEach((trigger) => {\n if (trigger === currentTrigger || trigger.closest('[rdxMenuPopup]') !== parentPopup) {\n return;\n }\n\n trigger.dispatchEvent(new CustomEvent('rdx-menu-subtrigger-clear-highlight'));\n });\n }\n}\n","import {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute\n} from '@angular/core';\nimport { BooleanInput, NumberInput } from '@radix-ng/primitives/core';\nimport { RdxDismissableLayersContextToken } from '@radix-ng/primitives/dismissable-layer';\nimport { RdxPopperAnchor } from '@radix-ng/primitives/popper';\nimport { injectRdxMenuRootContext } from './menu-root';\n\nconst numberOrUndefined = (value: NumberInput | undefined) => (value == null ? undefined : numberAttribute(value));\n\n/**\n * A button that opens the menu.\n */\n@Directive({\n selector: '[rdxMenuTrigger]',\n exportAs: 'rdxMenuTrigger',\n hostDirectives: [RdxPopperAnchor],\n host: {\n '[attr.type]': 'nativeButtonState() ? \"button\" : undefined',\n '[attr.role]':\n 'rootContext.hasTriggerInteractionHandler() ? \"menuitem\" : nativeButtonState() ? undefined : \"button\"',\n '[attr.tabindex]': 'rootContext.hasTriggerInteractionHandler() ? \"-1\" : undefined',\n '[attr.aria-haspopup]': '\"menu\"',\n '[attr.aria-expanded]': 'rootContext.isOpen()',\n '[attr.aria-disabled]': 'isDisabled() ? true : undefined',\n '[attr.disabled]': 'nativeButtonState() && isDisabled() ? \"\" : undefined',\n '[attr.data-state]': 'rootContext.isOpen() ? \"open\" : \"closed\"',\n '[attr.data-disabled]': 'isDisabled() ? \"\" : undefined',\n '[attr.data-popup-open]': 'rootContext.isOpen() ? \"\" : undefined',\n '(click)': 'handleClick()',\n '(pointerenter)': 'handlePointerEnter($event)',\n '(pointerleave)': 'handlePointerLeave($event)',\n '(keydown.arrowdown)': 'handleArrowDown($event)',\n '(keydown.arrowup)': 'handleArrowUp($event)',\n '(keydown.arrowleft)': 'handleArrowLeft($event)',\n '(keydown.arrowright)': 'handleArrowRight($event)',\n '(keydown.home)': 'handleHome($event)',\n '(keydown.end)': 'handleEnd($event)',\n '(keydown.escape)': 'handleEscape($event)',\n '(keydown.enter)': 'handleKeyboardToggle($event)',\n '(keydown.space)': 'handleKeyboardToggle($event)'\n }\n})\nexport class RdxMenuTrigger {\n protected readonly rootContext = injectRdxMenuRootContext()!;\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly dismissableLayersContext = inject(RdxDismissableLayersContextToken);\n private openTimer: ReturnType<typeof setTimeout> | undefined;\n private closeTimer: ReturnType<typeof setTimeout> | undefined;\n\n /** Whether this trigger should be treated as a native button. Auto-detected for `<button>`. */\n readonly nativeButton = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether this trigger is disabled. */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Whether hovering the trigger opens the menu. */\n readonly openOnHover = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n /** Delay before hover opens the menu, in milliseconds. */\n readonly delay = input<number | undefined, NumberInput | undefined>(undefined, { transform: numberOrUndefined });\n\n /** Delay before hover leave closes the menu, in milliseconds. */\n readonly closeDelay = input<number | undefined, NumberInput | undefined>(undefined, {\n transform: numberOrUndefined\n });\n\n protected readonly nativeButtonState = computed(\n () => this.nativeButton() || this.elementRef.nativeElement.tagName === 'BUTTON'\n );\n\n protected readonly isDisabled = computed(() => this.rootContext.disabled() || this.disabled());\n\n constructor() {\n effect((onCleanup) => {\n const el = this.elementRef.nativeElement;\n const unregister = this.rootContext.registerTrigger(el);\n onCleanup(unregister);\n });\n\n // When a coordinator (e.g. the menubar) drives this trigger, hover-switching focuses the\n // trigger and opens the popup without pulling focus inside it. Register the trigger as a\n // dismissable-layer branch so that focus/pointer interactions on it are treated as \"inside\"\n // and do not dismiss the just-opened popup.\n effect((onCleanup) => {\n if (!this.rootContext.hasTriggerInteractionHandler()) {\n return;\n }\n\n const el = this.elementRef.nativeElement;\n this.dismissableLayersContext.branches.update((branches) => [...branches, el]);\n onCleanup(() => {\n this.dismissableLayersContext.branches.update((branches) => branches.filter((b) => b !== el));\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.clearOpenTimer();\n this.clearCloseTimer();\n });\n }\n\n protected handleClick(): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.rootContext.handleTriggerInteraction({ type: 'click' })) {\n return;\n }\n\n this.rootContext.toggle();\n }\n\n protected handleArrowDown(event: Event): void {\n if (this.rootContext.handleTriggerInteraction({ type: 'arrowdown', event })) {\n return;\n }\n\n event.preventDefault();\n if (!this.isDisabled() && !this.rootContext.isOpen()) {\n this.rootContext.show('first');\n }\n }\n\n protected handleArrowUp(event: Event): void {\n if (this.rootContext.handleTriggerInteraction({ type: 'arrowup', event })) {\n return;\n }\n\n event.preventDefault();\n if (!this.isDisabled() && !this.rootContext.isOpen()) {\n this.rootContext.show('last');\n }\n }\n\n protected handleArrowLeft(event: Event): void {\n this.rootContext.handleTriggerInteraction({ type: 'arrowleft', event });\n }\n\n protected handleArrowRight(event: Event): void {\n this.rootContext.handleTriggerInteraction({ type: 'arrowright', event });\n }\n\n protected handleHome(event: Event): void {\n this.rootContext.handleTriggerInteraction({ type: 'home', event });\n }\n\n protected handleEnd(event: Event): void {\n this.rootContext.handleTriggerInteraction({ type: 'end', event });\n }\n\n protected handleEscape(event: Event): void {\n this.rootContext.handleTriggerInteraction({ type: 'escape', event });\n }\n\n protected handleKeyboardToggle(event: Event): void {\n if (this.nativeButtonState()) {\n return;\n }\n\n event.preventDefault();\n this.handleClick();\n }\n\n protected handlePointerEnter(event: PointerEvent): void {\n if (this.rootContext.handleTriggerInteraction({ type: 'pointerenter', event })) {\n return;\n }\n\n if (event.pointerType === 'touch' || !this.openOnHover() || this.isDisabled()) {\n return;\n }\n\n this.clearCloseTimer();\n this.clearOpenTimer();\n\n const delay = this.delay() ?? 0;\n if (delay <= 0) {\n this.rootContext.show();\n return;\n }\n\n this.openTimer = setTimeout(() => {\n this.openTimer = undefined;\n this.rootContext.show();\n }, delay);\n }\n\n protected handlePointerLeave(event: PointerEvent): void {\n if (event.pointerType === 'touch' || !this.openOnHover()) {\n return;\n }\n\n this.clearOpenTimer();\n this.clearCloseTimer();\n\n const closeDelay = this.closeDelay() ?? 0;\n if (closeDelay <= 0) {\n this.rootContext.close();\n return;\n }\n\n this.closeTimer = setTimeout(() => {\n this.closeTimer = undefined;\n this.rootContext.close();\n }, closeDelay);\n }\n\n private clearOpenTimer(): void {\n clearTimeout(this.openTimer);\n this.openTimer = undefined;\n }\n\n private clearCloseTimer(): void {\n clearTimeout(this.closeTimer);\n this.closeTimer = undefined;\n }\n}\n","import { afterNextRender, DestroyRef, Directive, ElementRef, inject, signal } from '@angular/core';\nimport { getMaxTransitionDuration } from '@radix-ng/primitives/core';\n\n/**\n * A viewport that smoothly animates the popup size when its content changes\n * (e.g. switching menubar menus of different sizes, or expanding a section).\n *\n * It measures its content with a `ResizeObserver` and exposes the current size\n * as `--popup-width` / `--popup-height` CSS variables on the host. Drive the\n * animation from the consumer side, for example:\n *\n * ```css\n * [rdxMenuPopup] {\n * width: var(--popup-width);\n * height: var(--popup-height);\n * transition: width 200ms, height 200ms;\n * }\n * ```\n *\n * `data-transitioning` is present while a size change is in flight.\n */\n@Directive({\n selector: '[rdxMenuViewport]',\n exportAs: 'rdxMenuViewport',\n host: {\n '[attr.data-transitioning]': 'transitioning() ? \"\" : undefined',\n '[style.--popup-width.px]': 'width()',\n '[style.--popup-height.px]': 'height()'\n }\n})\nexport class RdxMenuViewport {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private observer: ResizeObserver | undefined;\n private transitionTimer: ReturnType<typeof setTimeout> | undefined;\n\n protected readonly width = signal<number | undefined>(undefined);\n protected readonly height = signal<number | undefined>(undefined);\n protected readonly transitioning = signal(false);\n\n constructor() {\n afterNextRender(() => {\n const el = this.elementRef.nativeElement;\n\n // Seed the initial size without marking a transition.\n this.width.set(el.offsetWidth);\n this.height.set(el.offsetHeight);\n\n if (typeof ResizeObserver === 'undefined') {\n return;\n }\n\n this.observer = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (!entry) {\n return;\n }\n\n const nextWidth = Math.round(entry.contentRect.width);\n const nextHeight = Math.round(entry.contentRect.height);\n\n if (nextWidth === this.width() && nextHeight === this.height()) {\n return;\n }\n\n this.width.set(nextWidth);\n this.height.set(nextHeight);\n this.markTransitioning();\n });\n\n this.observer.observe(el);\n });\n\n this.destroyRef.onDestroy(() => {\n this.observer?.disconnect();\n clearTimeout(this.transitionTimer);\n });\n }\n\n private markTransitioning(): void {\n this.transitioning.set(true);\n clearTimeout(this.transitionTimer);\n\n const duration = getMaxTransitionDuration(this.elementRef.nativeElement);\n this.transitionTimer = setTimeout(() => this.transitioning.set(false), duration > 0 ? duration + 50 : 0);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RdxMenuArrow } from './src/menu-arrow';\nimport { RdxMenuBackdrop } from './src/menu-backdrop';\nimport { RdxMenuCheckboxItem } from './src/menu-checkbox-item';\nimport { RdxMenuCheckboxItemIndicator } from './src/menu-checkbox-item-indicator';\nimport { RdxMenuGroup } from './src/menu-group';\nimport { RdxMenuGroupLabel } from './src/menu-group-label';\nimport { RdxMenuItem } from './src/menu-item';\nimport { RdxMenuLinkItem } from './src/menu-link-item';\nimport { RdxMenuPopup } from './src/menu-popup';\nimport { RdxMenuPortal } from './src/menu-portal';\nimport { RdxMenuPositioner } from './src/menu-positioner';\nimport { RdxMenuRadioGroup } from './src/menu-radio-group';\nimport { RdxMenuRadioItem } from './src/menu-radio-item';\nimport { RdxMenuRadioItemIndicator } from './src/menu-radio-item-indicator';\nimport { RdxMenuRoot } from './src/menu-root';\nimport { RdxMenuSeparator } from './src/menu-separator';\nimport { RdxMenuSubTrigger } from './src/menu-sub-trigger';\nimport { RdxMenuTrigger } from './src/menu-trigger';\nimport { RdxMenuViewport } from './src/menu-viewport';\n\nexport * from './src/menu-arrow';\nexport * from './src/menu-backdrop';\nexport * from './src/menu-checkbox-item';\nexport * from './src/menu-checkbox-item-indicator';\nexport * from './src/menu-group';\nexport * from './src/menu-group-label';\nexport * from './src/menu-item';\nexport * from './src/menu-link-item';\nexport * from './src/menu-popup';\nexport * from './src/menu-portal';\nexport * from './src/menu-positioner';\nexport * from './src/menu-radio-group';\nexport * from './src/menu-radio-item';\nexport * from './src/menu-radio-item-indicator';\nexport * from './src/menu-root';\nexport * from './src/menu-separator';\nexport * from './src/menu-sub-trigger';\nexport * from './src/menu-trigger';\nexport * from './src/menu-utils';\nexport * from './src/menu-viewport';\n\nconst menuImports = [\n RdxMenuRoot,\n RdxMenuTrigger,\n RdxMenuSubTrigger,\n RdxMenuPortal,\n RdxMenuPositioner,\n RdxMenuPopup,\n RdxMenuViewport,\n RdxMenuBackdrop,\n RdxMenuArrow,\n RdxMenuItem,\n RdxMenuLinkItem,\n RdxMenuGroup,\n RdxMenuGroupLabel,\n RdxMenuSeparator,\n RdxMenuCheckboxItem,\n RdxMenuCheckboxItemIndicator,\n RdxMenuRadioGroup,\n RdxMenuRadioItem,\n RdxMenuRadioItemIndicator\n];\n\n@NgModule({\n imports: [...menuImports],\n exports: [...menuImports]\n})\nexport class RdxMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","numberOrUndefined"],"mappings":";;;;;;;;;;;;;AAsEO,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,GAC9D,aAAa,CAAqB,oBAAoB;AAE1D,SAAS,YAAY,CAAC,QAAqB,EAAA;IACvC,OAAO;QACH,MAAM,EAAE,QAAQ,CAAC,IAAI;QACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;AAC3C,QAAA,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE;AAC1C,QAAA,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE;AAC1C,QAAA,4BAA4B,EAAE,QAAQ,CAAC,4BAA4B,CAAC,UAAU,EAAE;AAChF,QAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE;QACtC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;AAC3C,QAAA,KAAK,EAAE,MAAM,QAAQ,CAAC,KAAK,EAAE;AAC7B,QAAA,MAAM,EAAE,MAAM,QAAQ,CAAC,MAAM,EAAE;QAC/B,IAAI,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7C,oBAAoB,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAChD,eAAe,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACrD,yBAAyB,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACzE,mCAAmC,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,mCAAmC,CAAC,OAAO,CAAC;QACvG,iCAAiC,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,iCAAiC,CAAC,OAAO,CAAC;AACnG,QAAA,aAAa,EAAE,MAAM,QAAQ,CAAC,aAAa,EAAE;AAC7C,QAAA,WAAW,EAAE,MAAM,QAAQ,CAAC,WAAW,EAAE;QACzC,0BAA0B,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,0BAA0B,CAAC,MAAM,CAAC;QACnF,wBAAwB,EAAE,CAAC,WAAW,KAAK,QAAQ,CAAC,wBAAwB,CAAC,WAAW;KAC3F;AACL;AAEA,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAE9D;;AAEG;MAOU,WAAW,CAAA;AAiDpB,IAAA,WAAA,GAAA;AAhDiB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;;AAG1B,QAAA,IAAA,CAAA,UAAU,GAAG,mBAAmB,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAKzF,IAAA,CAAA,qBAAqB,GAAG,KAAK;;AAG5B,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,KAAK,2EAAC;;QAGnB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAwB,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGlF,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG/E,IAAA,CAAA,KAAK,GAAG,KAAK,CAAwB,KAAK,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG5E,IAAA,CAAA,SAAS,GAAG,KAAK,CAAwB,IAAI,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG/E,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAwB,IAAI,4FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAG1F,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAqB,UAAU,kFAAC;;QAGnD,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAwB,KAAK,wFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGvF,IAAA,CAAA,YAAY,GAAG,MAAM,EAAW;;QAGhC,IAAA,CAAA,oBAAoB,GAAG,MAAM,EAAW;AAExC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAA0B,SAAS,8EAAC;AACpD,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM;;AAEzC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAmB,OAAO,gFAAC;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;AACzB,QAAA,IAAA,CAAA,4BAA4B,GAAG,MAAM,CAAC,KAAK,mGAAC;QAC5C,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;QAG9D,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AAEtC,YAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,WAAW,EAAE;AAC5C,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;AACjC,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YAC9B;AACJ,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAE5D,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE;QAC9B,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,IAAI,KAAK,YAAY,EAAE;gBACvB,YAAY,GAAG,IAAI;AACnB,gBAAA,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD;AACJ,QAAA,CAAC,CAAC;IACN;IAEA,IAAI,CAAC,YAAmC,OAAO,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACjB;QACJ;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,KAAK,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;AAC5D,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC;IACJ;IAEA,KAAK,GAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC;IACJ;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACjB;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,CAAC,KAAK,EAAE;QAChB;aAAO;YACH,IAAI,CAAC,IAAI,EAAE;QACf;IACJ;AAEA,IAAA,eAAe,CAAC,EAAe,EAAA;AAC3B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AACpB,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,EAAE,EAAE;AAC/B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS;AAClC,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAC/B;AACJ,QAAA,CAAC;IACL;AAEA,IAAA,yBAAyB,CAAC,OAAoB,EAAA;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC;IACnD;AAEA,IAAA,mCAAmC,CAAC,OAAoC,EAAA;AACpE,QAAA,IAAI,CAAC,2BAA2B,GAAG,OAAO;AAE1C,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,2BAA2B,KAAK,OAAO,EAAE;AAC9C,gBAAA,IAAI,CAAC,2BAA2B,GAAG,SAAS;YAChD;AACJ,QAAA,CAAC;IACL;AAEA,IAAA,0BAA0B,CAAC,MAAc,EAAA;QACrC,OAAO,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC,IAAI,KAAK;IAC9D;AAEA,IAAA,iCAAiC,CAAC,OAAyC,EAAA;AACvE,QAAA,IAAI,CAAC,yBAAyB,GAAG,OAAO;AACxC,QAAA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC;AAE3C,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,yBAAyB,KAAK,OAAO,EAAE;AAC5C,gBAAA,IAAI,CAAC,yBAAyB,GAAG,SAAS;AAC1C,gBAAA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,CAAC;YAChD;AACJ,QAAA,CAAC;IACL;AAEA,IAAA,wBAAwB,CAAC,WAAsC,EAAA;QAC3D,OAAO,IAAI,CAAC,yBAAyB,GAAG,WAAW,CAAC,IAAI,KAAK;IACjE;IAEA,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5B;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,IAAI,WAAW,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F;8GAzJS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,8wCAHT,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAG7C,WAAW,EAAA,UAAA,EAAA,CAAA;kBANvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,SAAS,EAAE,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;oBACtD,cAAc,EAAE,CAAC,SAAS;AAC7B,iBAAA;;;AC5GD;;;AAGG;MAaU,YAAY,CAAA;AAZzB,IAAA,WAAA,GAAA;QAauB,IAAA,CAAA,WAAW,GAAG,wBAAwB,EAAG;QAC3C,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE3D,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,2EAAC;AACjD,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,4EAAC;AACnD,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,KAAK,iFAAC;AAC3F,IAAA;8GAPY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,yCAAA,EAAA,kBAAA,EAAA,yCAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,iCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAZxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;oBACxB,cAAc,EAAE,CAAC,cAAc,CAAC;AAChC,oBAAA,IAAI,EAAE;AACF,wBAAA,kBAAkB,EAAE,uCAAuC;AAC3D,wBAAA,oBAAoB,EAAE,uCAAuC;AAC7D,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,wBAAwB,EAAE;AAC7B;AACJ,iBAAA;;;AChBD;;;;AAIG;MAYU,eAAe,CAAA;AAX5B,IAAA,WAAA,GAAA;QAYuB,IAAA,CAAA,WAAW,GAAG,wBAAwB,EAAG;AAC/D,IAAA;8GAFY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,yCAAA,EAAA,kBAAA,EAAA,yCAAA,EAAA,iBAAA,EAAA,8CAAA,EAAA,0BAAA,EAAA,oEAAA,EAAA,wBAAA,EAAA,kEAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACF,wBAAA,kBAAkB,EAAE,uCAAuC;AAC3D,wBAAA,oBAAoB,EAAE,uCAAuC;AAC7D,wBAAA,mBAAmB,EAAE,0CAA0C;AAC/D,wBAAA,4BAA4B,EAAE,gEAAgE;AAC9F,wBAAA,0BAA0B,EAAE;AAC/B;AACJ,iBAAA;;;AChBK,SAAU,eAAe,CAAC,OAAsB,EAAA;IAClD,OAAO,OAAO,KAAK,eAAe;AACtC;AAEM,SAAU,eAAe,CAAC,OAAqB,EAAA;IACjD,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW;AACzF;;ACYO,MAAM,CAAC,gCAAgC,EAAE,iCAAiC,CAAC,GAC9E,aAAa,CAA6B,4BAA4B;AAE1E,MAAM,0BAA0B,GAAG,MAAiC;AAChE,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAC5C,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC;KACrB;AACL,CAAC;AAED;;AAEG;MAuBU,mBAAmB,CAAA;AAtBhC,IAAA,WAAA,GAAA;AAuBqB,QAAA,IAAA,CAAA,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;;QAGjC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG/E,IAAA,CAAA,YAAY,GAAG,KAAK,CAAwB,KAAK,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAGnF,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,4EAAC;;AAG5C,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAe,KAAK,8EAAC;;QAGpC,IAAA,CAAA,eAAe,GAAG,MAAM,EAAgB;QAE9B,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;;QAG9C,IAAA,CAAA,eAAe,GAAG,eAAe;QACjC,IAAA,CAAA,eAAe,GAAG,eAAe;AAmDvD,IAAA;IAjDG,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B;IACJ;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;AAEA,IAAA,aAAa,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC5E;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,EAAE;YAC9D;QACJ;QACA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAChE;IACJ;AAEA,IAAA,cAAc,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE;YAC/B;QACJ;QACA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAc,gBAAgB,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACxG;IACJ;IAEA,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE;IACtD;AAEU,IAAA,UAAU,CAAC,KAAY,EAAA;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE;IACtD;IAEQ,aAAa,GAAA;QACjB,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;AACrE,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;IACnC;8GA1ES,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,4zCAnBjB,CAAC,iCAAiC,CAAC,0BAA0B,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAmBjE,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAtB/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,SAAS,EAAE,CAAC,iCAAiC,CAAC,0BAA0B,CAAC,CAAC;AAC1E,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,kBAAkB;AACxB,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,qBAAqB,EAAE,kDAAkD;AACzE,wBAAA,mBAAmB,EAAE,4BAA4B;AACjD,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,sBAAsB,EAAE,+BAA+B;AACvD,wBAAA,yBAAyB,EAAE,gCAAgC;AAC3D,wBAAA,mBAAmB,EAAE,sBAAsB;AAC3C,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,eAAe,EAAE,uBAAuB;AACxC,wBAAA,gBAAgB,EAAE,wBAAwB;AAC1C,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,iBAAiB,EAAE,oBAAoB;AACvC,wBAAA,iBAAiB,EAAE;AACtB;AACJ,iBAAA;;;ACjDD;;;AAGG;MAWU,4BAA4B,CAAA;AAVzC,IAAA,WAAA,GAAA;QAWqB,IAAA,CAAA,WAAW,GAAG,gCAAgC,EAAG;;QAGzD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAwB,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExE,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,gFAAC;QACvE,IAAA,CAAA,SAAS,GAAG,QAAQ,CACnC,MAAM,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAC3F;AACJ,IAAA;8GAVY,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,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,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,wBAAA,EAAA,iCAAA,EAAA,eAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,IAAI,EAAE;AACF,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,4BAA4B,EAAE,8BAA8B;AAC5D,wBAAA,0BAA0B,EAAE,+BAA+B;AAC3D,wBAAA,iBAAiB,EAAE;AACtB;AACJ,iBAAA;;;AChBD;;AAEG;MAQU,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,OAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE;AACT;AACJ,iBAAA;;;ACTD;;AAEG;MAKU,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;AACb,iBAAA;;;ACJD;;AAEG;MAoBU,WAAW,CAAA;AAnBxB,IAAA,WAAA,GAAA;AAoBqB,QAAA,IAAA,CAAA,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;;QAGjC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG/E,IAAA,CAAA,YAAY,GAAG,KAAK,CAAwB,IAAI,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAGlF,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,4EAAC;;QAG5C,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAQ;QAEf,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AA+CpE,IAAA;IA7CG,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B;IACJ;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;AAEA,IAAA,aAAa,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC5E;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,EAAE;YAC9D;QACJ;QACA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAChE;IACJ;AAEA,IAAA,cAAc,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE;YAC/B;QACJ;;;QAGA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAc,gBAAgB,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACxG;IACJ;IAEA,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE;IACtD;AAEU,IAAA,UAAU,CAAC,KAAY,EAAA;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE;IACtD;8GA/DS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,uBAAA,EAAA,kCAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAnBvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,sBAAsB,EAAE,+BAA+B;AACvD,wBAAA,yBAAyB,EAAE,gCAAgC;AAC3D,wBAAA,mBAAmB,EAAE,sBAAsB;AAC3C,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,eAAe,EAAE,uBAAuB;AACxC,wBAAA,gBAAgB,EAAE,wBAAwB;AAC1C,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,iBAAiB,EAAE,oBAAoB;AACvC,wBAAA,iBAAiB,EAAE;AACtB;AACJ,iBAAA;;;ACrBD;;AAEG;MAmBU,eAAe,CAAA;AAlB5B,IAAA,WAAA,GAAA;AAmBqB,QAAA,IAAA,CAAA,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;;QAGjC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG/E,IAAA,CAAA,YAAY,GAAG,KAAK,CAAwB,KAAK,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAGnF,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,4EAAC;;QAG5C,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAQ;QAEf,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;AAkDpE,IAAA;IAhDG,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B;IACJ;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;AAEA,IAAA,aAAa,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC5E;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,EAAE;YAC9D;QACJ;QACA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAChE;IACJ;AAEA,IAAA,cAAc,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE;YAC/B;QACJ;QACA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAc,gBAAgB,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACxG;IACJ;AAEA,IAAA,WAAW,CAAC,KAAiB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE;YACtB;QACJ;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE;IACtD;AAEU,IAAA,UAAU,CAAC,KAAY,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE;YACtB;QACJ;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE;IACtD;8GAlES,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,uBAAA,EAAA,kCAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAlB3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,sBAAsB,EAAE,+BAA+B;AACvD,wBAAA,yBAAyB,EAAE,gCAAgC;AAC3D,wBAAA,mBAAmB,EAAE,sBAAsB;AAC3C,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,eAAe,EAAE,uBAAuB;AACxC,wBAAA,gBAAgB,EAAE,wBAAwB;AAC1C,wBAAA,SAAS,EAAE,qBAAqB;AAChC,wBAAA,iBAAiB,EAAE;AACtB;AACJ,iBAAA;;;ACbD;AACA,MAAM,aAAa,GAAG;IAClB,oCAAoC;IACpC,4CAA4C;IAC5C,yCAAyC;IACzC,wCAAwC;IACxC;AACH,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC;AAEX,SAAS,iBAAiB,CAAC,KAAkB,EAAA;;AAEzC,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAc,aAAa,CAAC,CAAC,CAAC,MAAM,CACxE,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,KAAK,CACrD;AACL;AAEA;;AAEG;MA+BU,YAAY,CAAA;AA2CrB,IAAA,WAAA,GAAA;QA1CmB,IAAA,CAAA,WAAW,GAAG,wBAAwB,EAAG;AAC3C,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC9C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC;QAClC,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7D,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,gCAAgC,CAAC;QAC5E,IAAA,CAAA,MAAM,GAAG,EAAE;AAGA,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,4EAAC;AACnD,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,2EAAC;AAEpE;;AAEG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAEtG;;AAEG;AACM,QAAA,IAAA,CAAA,kBAAkB,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AAEhH;;AAEG;AACM,QAAA,IAAA,CAAA,YAAY,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAEpG;;AAEG;AACM,QAAA,IAAA,CAAA,eAAe,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAE1G;;AAEG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEjG;;AAEG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAGhG,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC5F,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9B,YAAA,UAAU,EAAE;AACZ,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAClC,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;YACjB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE;gBAC/B;YACJ;AAEA,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AAC7C,YAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnF,SAAS,CAAC,MAAK;gBACX,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,KACnD,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,OAAO,CAAC,CAClD;AACL,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;AACzC,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAC5B,QAAA,CAAC,CAAC;;;QAIF,MAAM,CAAC,MAAK;YACR,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;YAC9C,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,SAAS,EAAE;gBACxC,qBAAqB,CAAC,MAAK;;AAEvB,oBAAA,IAAI,SAAS,KAAK,OAAO,EAAE;AACvB,wBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;wBAC5D;oBACJ;oBAEA,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;oBAC9D,MAAM,IAAI,GAAG,SAAS,KAAK,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;oBACtE,IAAI,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACxC,gBAAA,CAAC,CAAC;YACN;AACJ,QAAA,CAAC,CAAC;IACN;AAEU,IAAA,iBAAiB,CAAC,KAAY,EAAA;QACpC,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AAExB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE;AACrE,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QAClC;IACJ;AAEU,IAAA,aAAa,CAAC,KAAoB,EAAA;AACxC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AACxC,QAAA,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC;AACnC,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,aAA4B;QACrD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AAE3C,QAAA,QAAQ,KAAK,CAAC,GAAG;YACb,KAAK,WAAW,EAAE;gBACd,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;gBACvB,MAAM,KAAK,GAAG,YAAY,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAC9C,MAAM,IAAI,GAAG;AACT,sBAAE,IAAI,CAAC,WAAW,CAAC,SAAS;AACxB,0BAAE,KAAK,CAAC,CAAC;0BACP,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AAC5B,sBAAE,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC7B,IAAI,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBACpC;YACJ;YACA,KAAK,SAAS,EAAE;gBACZ,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;AACvB,gBAAA,MAAM,OAAO,GAAG,YAAY,IAAI,CAAC;gBACjC,MAAM,IAAI,GAAG;AACT,sBAAE,IAAI,CAAC,WAAW,CAAC,SAAS;0BACtB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACxB,0BAAE,KAAK,CAAC,CAAC;AACb,sBAAE,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;gBAC7B,IAAI,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBACpC;YACJ;YACA,KAAK,MAAM,EAAE;gBACT,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;AACvB,gBAAA,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBACxC;YACJ;YACA,KAAK,KAAK,EAAE;gBACR,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;AACvB,gBAAA,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBACvD;YACJ;YACA,KAAK,WAAW,EAAE;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC1C,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,mBAAmB,CAAC,EAAE;oBAC7C,IAAI,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAAE;wBACjD,KAAK,CAAC,cAAc,EAAE;wBACtB,KAAK,CAAC,eAAe,EAAE;oBAC3B;oBACA;gBACJ;;gBAGA,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;AACvB,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;gBACxB,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBACtC;YACJ;YACA,KAAK,YAAY,EAAE;gBACf,IAAI,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE;oBAChD,KAAK,CAAC,cAAc,EAAE;oBACtB,KAAK,CAAC,eAAe,EAAE;gBAC3B;gBACA;YACJ;YACA,KAAK,QAAQ,EAAE;gBACX,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;AACvB,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;AACxB,gBAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE;AACrE,oBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;gBAClC;AACA,gBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBAC1D;YACJ;YACA,KAAK,KAAK,EAAE;;AAER,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;gBACxB;YACJ;YACA,SAAS;;gBAEL,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC7E,KAAK,CAAC,cAAc,EAAE;oBACtB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;AACpC,oBAAA,IAAI,CAAC,MAAM,IAAI,IAAI;AACnB,oBAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9B,oBAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAK;AAC/B,wBAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,wBAAA,IAAI,CAAC,WAAW,GAAG,SAAS;oBAChC,CAAC,EAAE,IAAI,CAAC;AAER,oBAAA,MAAM,KAAK,GACP,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM;AAC5F,oBAAA,MAAM,UAAU,GAAG,YAAY,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC;oBAC3D,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;oBAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;wBAChC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE;AACpF,wBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACjC,oBAAA,CAAC,CAAC;oBACF,KAAK,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;gBACzC;gBACA;YACJ;;IAER;8GA5MS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,kBAAA,EAAA,yCAAA,EAAA,gBAAA,EAAA,yCAAA,EAAA,iBAAA,EAAA,8CAAA,EAAA,0BAAA,EAAA,oEAAA,EAAA,wBAAA,EAAA,kEAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,SAAA,EA1BV;YACP,gCAAgC,CAAC,MAAK;AAClC,gBAAA,MAAM,WAAW,GAAG,wBAAwB,EAAG;gBAC/C,OAAO;oBACH,2BAA2B,EAAE,QAAQ,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE;iBAClE;AACL,YAAA,CAAC,CAAC;AACF,YAAA,0BAA0B,CAAC,OAAO;AAC9B,gBAAA,OAAO,EAAE,MAAM,CAAC,KAAK;AACxB,aAAA,CAAC;AACL,SAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAgBQ,YAAY,EAAA,UAAA,EAAA,CAAA;kBA9BxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,cAAc,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,CAAC;AACtE,oBAAA,SAAS,EAAE;wBACP,gCAAgC,CAAC,MAAK;AAClC,4BAAA,MAAM,WAAW,GAAG,wBAAwB,EAAG;4BAC/C,OAAO;gCACH,2BAA2B,EAAE,QAAQ,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE;6BAClE;AACL,wBAAA,CAAC,CAAC;AACF,wBAAA,0BAA0B,CAAC,OAAO;AAC9B,4BAAA,OAAO,EAAE,MAAM,CAAC,KAAK;AACxB,yBAAA,CAAC;AACL,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,yBAAyB,EAAE,2BAA2B;AACtD,wBAAA,oBAAoB,EAAE,uCAAuC;AAC7D,wBAAA,kBAAkB,EAAE,uCAAuC;AAC3D,wBAAA,mBAAmB,EAAE,0CAA0C;AAC/D,wBAAA,4BAA4B,EAAE,gEAAgE;AAC9F,wBAAA,0BAA0B,EAAE,8DAA8D;AAC1F,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,WAAW,EAAE,uBAAuB;AACpC,wBAAA,yBAAyB,EAAE;AAC9B;AACJ,iBAAA;;;ACxDD;;;AAGG;MAWU,aAAa,CAAA;AAV1B,IAAA,WAAA,GAAA;AAWI;;AAEG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAsB;AACnD,IAAA;8GALY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAVzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,SAAS;4BACpB,MAAM,EAAE,CAAC,WAAW;AACvB;AACJ;AACJ,iBAAA;;;ACJD;;AAEG;MAiDU,iBAAiB,CAAA;AAhD9B,IAAA,WAAA,GAAA;QAiDuB,IAAA,CAAA,WAAW,GAAG,wBAAwB,EAAG;AACzC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAE5D;;AAEG;QACM,IAAA,CAAA,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAA0B;AAEjD;;AAEG;AACM,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAO,QAAQ,2EAAC;AAErC;;AAEG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAsB,CAAC,kFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AAEnF;;AAEG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAQ,OAAO,4EAAC;AAEtC;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAsB,CAAC,mFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AAEpF;;AAEG;QACM,IAAA,CAAA,YAAY,GAAG,KAAK,CAAsB,CAAC,oFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AAErF;;AAEG;QACM,IAAA,CAAA,eAAe,GAAG,KAAK,CAAwB,IAAI,uFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE9F;;AAEG;QACM,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAuD;AAEzF;;AAEG;AACM,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAyC,CAAC,uFAAC;AAE5E;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAuB,SAAS,6EAAC;AAExD;;AAEG;QACM,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAwB,KAAK,wFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEhG;;AAEG;AACM,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAuB,OAAO,uFAAC;AAEhE;;AAEG;AACM,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAyB,QAAQ,6FAAC;AAEzE;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AACrG,IAAA;8GAzEY,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,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,sBAAA,EAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,yCAAA,EAAA,kBAAA,EAAA,yCAAA,EAAA,yBAAA,EAAA,2CAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,88BAAA,EAAA,EAAA,EAAA,SAAA,EA7Cf;AACP,YAAA,6BAA6B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,sBAAsB,EAAE,QAAQ,EAAE;AAC3G,SAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FA2CQ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhD7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,SAAS,EAAE;AACP,wBAAA,6BAA6B,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,sBAAsB,EAAE,QAAQ,EAAE;AAC3G,qBAAA;AACD,oBAAA,cAAc,EAAE;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,uBAAuB;AAClC,4BAAA,MAAM,EAAE;gCACJ,QAAQ;gCACR,MAAM;gCACN,YAAY;gCACZ,OAAO;gCACP,aAAa;gCACb,cAAc;gCACd,iBAAiB;gCACjB,mBAAmB;gCACnB,kBAAkB;gCAClB,QAAQ;gCACR,kBAAkB;gCAClB,kBAAkB;gCAClB;AACH;AACJ;AACJ,qBAAA;AACD,oBAAA,IAAI,EAAE;AACF,wBAAA,kBAAkB,EAAE,uCAAuC;AAC3D,wBAAA,oBAAoB,EAAE,uCAAuC;AAC7D,wBAAA,2BAA2B,EAAE,yCAAyC;AACtE,wBAAA,mBAAmB,EAAE,uBAAuB;AAC5C,wBAAA,kBAAkB,EAAE,sBAAsB;AAC1C,wBAAA,SAAS,EAAE,CAAA;;;;;;;;;;;;;AAaT,SAAA;AACL;AACJ,iBAAA;;;ACtDM,MAAM,CAAC,8BAA8B,EAAE,+BAA+B,CAAC,GAC1E,aAAa,CAA2B,0BAA0B;AAEtE,MAAM,wBAAwB,GAAG,MAA+B;AAC5D,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC1C,OAAO;QACH,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,WAAW,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC,CAAC;KAC7C;AACL,CAAC;AAED;;AAEG;MASU,iBAAiB,CAAA;AAR9B,IAAA,WAAA,GAAA;AASI;;AAEG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,4EAAC;AAErD;;AAEG;QACM,IAAA,CAAA,aAAa,GAAG,MAAM,EAAU;AAM5C,IAAA;AAJG,IAAA,WAAW,CAAC,QAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrC;8GAdS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,oTALf,CAAC,+BAA+B,CAAC,wBAAwB,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAK7D,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,SAAS,EAAE,CAAC,+BAA+B,CAAC,wBAAwB,CAAC,CAAC;AACtE,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE;AACT;AACJ,iBAAA;;;ACTM,MAAM,CAAC,6BAA6B,EAAE,8BAA8B,CAAC,GACxE,aAAa,CAA0B,yBAAyB;AAEpE,MAAM,uBAAuB,GAAG,MAA8B;AAC1D,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACzC,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC;KACrB;AACL,CAAC;AAED;;AAEG;MAuBU,gBAAgB,CAAA;AAtB7B,IAAA,WAAA,GAAA;AAuBqB,QAAA,IAAA,CAAA,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC;QAC5C,IAAA,CAAA,iBAAiB,GAAG,8BAA8B,EAAG;AACrD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;;AAGjC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,2EAAU;;QAGhC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG/E,IAAA,CAAA,YAAY,GAAG,KAAK,CAAwB,KAAK,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;AAGnF,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,4EAAC;;QAG5C,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAU;AAE3B,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,8EAAC;QAE/D,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAC;QAC9C,IAAA,CAAA,eAAe,GAAG,eAAe;AAsDvD,IAAA;IApDG,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B;IACJ;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;AAEA,IAAA,aAAa,CAAC,KAAmB,EAAA;AAC7B,QAAA,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC5E;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,EAAE;YAC9D;QACJ;QACA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAChE;IACJ;AAEA,IAAA,cAAc,CAAC,KAAmB,EAAA;AAC9B,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE;YAC/B;QACJ;QACA,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC1D,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAc,gBAAgB,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACxG;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACjB;QACJ;QACA,IAAI,CAAC,UAAU,EAAE;IACrB;AAEU,IAAA,UAAU,CAAC,KAAY,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACjB;QACJ;QACA,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,UAAU,EAAE;IACrB;IAEQ,UAAU,GAAA;AACd,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE;IACtD;8GA7ES,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,8tCAnBd,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAmB3D,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAtB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,CAAC;AACpE,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,eAAe;AACrB,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,qBAAqB,EAAE,WAAW;AAClC,wBAAA,mBAAmB,EAAE,4BAA4B;AACjD,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,sBAAsB,EAAE,+BAA+B;AACvD,wBAAA,yBAAyB,EAAE,gCAAgC;AAC3D,wBAAA,mBAAmB,EAAE,sBAAsB;AAC3C,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,eAAe,EAAE,uBAAuB;AACxC,wBAAA,gBAAgB,EAAE,wBAAwB;AAC1C,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,iBAAiB,EAAE,oBAAoB;AACvC,wBAAA,iBAAiB,EAAE;AACtB;AACJ,iBAAA;;;ACjDD;;;AAGG;MAWU,yBAAyB,CAAA;AAVtC,IAAA,WAAA,GAAA;QAWqB,IAAA,CAAA,WAAW,GAAG,6BAA6B,EAAG;;QAGtD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAwB,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExE,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,gFAAC;AACvE,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,gFAAC;AACrF,IAAA;8GARY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,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,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,0BAAA,EAAA,gCAAA,EAAA,wBAAA,EAAA,iCAAA,EAAA,eAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,4BAA4B,EAAE,8BAA8B;AAC5D,wBAAA,0BAA0B,EAAE,+BAA+B;AAC3D,wBAAA,iBAAiB,EAAE;AACtB;AACJ,iBAAA;;;AChBD;;AAEG;MASU,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,WAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,yBAAyB,EAAE;AAC9B;AACJ,iBAAA;;;ACKD,MAAMC,mBAAiB,GAAG,CAAC,KAA8B,MAAM,KAAK,IAAI,IAAI,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAClH,MAAM,qBAAqB,GAAG,IAAI,OAAO,EAA4B;AAErE;;;;;;;AAOG;MA2BU,iBAAiB,CAAA;AAgC1B,IAAA,WAAA,GAAA;QA/BmB,IAAA,CAAA,cAAc,GAAG,wBAAwB,EAAG;AAC9C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,KAAK,gFAAC;;QAIjC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG/E,IAAA,CAAA,YAAY,GAAG,KAAK,CAAwB,KAAK,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGnF,IAAA,CAAA,WAAW,GAAG,KAAK,CAAwB,IAAI,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGjF,IAAA,CAAA,KAAK,GAAG,KAAK,CAA8C,GAAG,6EAAI,SAAS,EAAEA,mBAAiB,EAAA,CAAG;;QAGjG,IAAA,CAAA,UAAU,GAAG,KAAK,CAA8C,CAAC,kFAAI,SAAS,EAAEA,mBAAiB,EAAA,CAAG;;AAGpG,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAqB,SAAS,4EAAC;;AAGlC,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,kFAAC;QAC9E,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAC3C,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,KAAK,QAAQ,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAClF;AAGG,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;AAEnC,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACjB,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,CAAC;YAC1D,qBAAqB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC;YAE/C,SAAS,CAAC,MAAK;AACX,gBAAA,UAAU,EAAE;AACZ,gBAAA,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;AACpC,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC3B,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAChC,QAAA,CAAC,CAAC;IACN;IAEU,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YAClB,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B;IACJ;IAEU,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;IAEU,OAAO,GAAA;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE;YAC/B,IAAI,CAAC,oBAAoB,EAAE;QAC/B;AACA,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;IAChC;AAEU,IAAA,YAAY,CAAC,KAAY,EAAA;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE;QACrB,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE;YAC/B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;QAC9B;IACJ;AAEU,IAAA,aAAa,CAAC,KAAmB,EAAA;AACvC,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE;QAE7E,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AACxG,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAChE;QAEA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE;AAC/B,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;YAC5B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAK;AAC7B,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC;QAC3B;IACJ;IAEU,cAAc,GAAA;AACpB,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;IAChC;IAEU,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;IAEQ,oBAAoB,GAAA;AACxB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QACpD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAc,gBAAgB,CAAC;AAEzE,QAAA,IAAI,CAAC,WAAW;YAAE;QAElB,WAAW,CAAC,gBAAgB,CAAc,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACjF,YAAA,IAAI,OAAO,KAAK,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,WAAW,EAAE;gBACjF;YACJ;YAEA,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE;YAC3C,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,qCAAqC,CAAC,CAAC;AACjF,QAAA,CAAC,CAAC;IACN;IAEQ,sBAAsB,GAAA;AAC1B,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QACpD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAc,gBAAgB,CAAC;AAEzE,QAAA,IAAI,CAAC,WAAW;YAAE;QAElB,WAAW,CAAC,gBAAgB,CAAc,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;AACjF,YAAA,IAAI,OAAO,KAAK,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,WAAW,EAAE;gBACjF;YACJ;YAEA,OAAO,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,qCAAqC,CAAC,CAAC;AACjF,QAAA,CAAC,CAAC;IACN;8GAxIS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,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,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qCAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,8CAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,eAAA,EAAA,sDAAA,EAAA,iBAAA,EAAA,iDAAA,EAAA,sBAAA,EAAA,4CAAA,EAAA,uBAAA,EAAA,kCAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA1B7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,cAAc,EAAE,CAAC,eAAe,EAAE,yBAAyB,CAAC;AAC5D,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,4CAA4C;AAC3D,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,sBAAsB,EAAE,QAAQ;AAChC,wBAAA,sBAAsB,EAAE,yBAAyB;AACjD,wBAAA,sBAAsB,EAAE,+BAA+B;AACvD,wBAAA,iBAAiB,EAAE,oDAAoD;AACvE,wBAAA,mBAAmB,EAAE,6CAA6C;AAClE,wBAAA,wBAAwB,EAAE,0CAA0C;AACpE,wBAAA,yBAAyB,EAAE,gCAAgC;AAC3D,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,mBAAmB,EAAE,sBAAsB;AAC3C,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,sBAAsB,EAAE,sBAAsB;AAC9C,wBAAA,eAAe,EAAE,uBAAuB;AACxC,wBAAA,gBAAgB,EAAE,kBAAkB;AACpC,wBAAA,uCAAuC,EAAE;AAC5C;AACJ,iBAAA;;;ACrCD,MAAM,iBAAiB,GAAG,CAAC,KAA8B,MAAM,KAAK,IAAI,IAAI,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AAElH;;AAEG;MA+BU,cAAc,CAAA;AA+BvB,IAAA,WAAA,GAAA;QA9BmB,IAAA,CAAA,WAAW,GAAG,wBAAwB,EAAG;AAC3C,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,wBAAwB,GAAG,MAAM,CAAC,gCAAgC,CAAC;;QAK3E,IAAA,CAAA,YAAY,GAAG,KAAK,CAAwB,KAAK,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGnF,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG/E,IAAA,CAAA,WAAW,GAAG,KAAK,CAAwB,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGlF,IAAA,CAAA,KAAK,GAAG,KAAK,CAA8C,SAAS,6EAAI,SAAS,EAAE,iBAAiB,EAAA,CAAG;;QAGvG,IAAA,CAAA,UAAU,GAAG,KAAK,CAA8C,SAAS,kFAC9E,SAAS,EAAE,iBAAiB,EAAA,CAC9B;QAEiB,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAC3C,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,KAAK,QAAQ,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAClF;AAEkB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,iFAAC;AAG1F,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;AACjB,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YACvD,SAAS,CAAC,UAAU,CAAC;AACzB,QAAA,CAAC,CAAC;;;;;AAMF,QAAA,MAAM,CAAC,CAAC,SAAS,KAAI;YACjB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,4BAA4B,EAAE,EAAE;gBAClD;YACJ;AAEA,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;AACxC,YAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9E,SAAS,CAAC,MAAK;gBACX,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AACjG,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;YAC3B,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE;AAC1B,QAAA,CAAC,CAAC;IACN;IAEU,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACnB;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;YAC9D;QACJ;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IAC7B;AAEU,IAAA,eAAe,CAAC,KAAY,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;YACzE;QACJ;QAEA,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;AAClD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC;IACJ;AAEU,IAAA,aAAa,CAAC,KAAY,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE;YACvE;QACJ;QAEA,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;AAClD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC;IACJ;AAEU,IAAA,eAAe,CAAC,KAAY,EAAA;AAClC,QAAA,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC3E;AAEU,IAAA,gBAAgB,CAAC,KAAY,EAAA;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC5E;AAEU,IAAA,UAAU,CAAC,KAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACtE;AAEU,IAAA,SAAS,CAAC,KAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACrE;AAEU,IAAA,YAAY,CAAC,KAAY,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACxE;AAEU,IAAA,oBAAoB,CAAC,KAAY,EAAA;AACvC,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;YAC1B;QACJ;QAEA,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,WAAW,EAAE;IACtB;AAEU,IAAA,kBAAkB,CAAC,KAAmB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE;YAC5E;QACJ;AAEA,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YAC3E;QACJ;QAEA,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,cAAc,EAAE;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;AAC/B,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;AACZ,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACvB;QACJ;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAK;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QAC3B,CAAC,EAAE,KAAK,CAAC;IACb;AAEU,IAAA,kBAAkB,CAAC,KAAmB,EAAA;AAC5C,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACtD;QACJ;QAEA,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,eAAe,EAAE;QAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;AACzC,QAAA,IAAI,UAAU,IAAI,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YACxB;QACJ;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAK;AAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;QAC5B,CAAC,EAAE,UAAU,CAAC;IAClB;IAEQ,cAAc,GAAA;AAClB,QAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC9B;IAEQ,eAAe,GAAA;AACnB,QAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;IAC/B;8GA/KS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,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,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,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,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,8CAAA,EAAA,WAAA,EAAA,0GAAA,EAAA,eAAA,EAAA,iEAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,iCAAA,EAAA,eAAA,EAAA,wDAAA,EAAA,iBAAA,EAAA,8CAAA,EAAA,oBAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBA9B1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,cAAc,EAAE,CAAC,eAAe,CAAC;AACjC,oBAAA,IAAI,EAAE;AACF,wBAAA,aAAa,EAAE,4CAA4C;AAC3D,wBAAA,aAAa,EACT,sGAAsG;AAC1G,wBAAA,iBAAiB,EAAE,+DAA+D;AAClF,wBAAA,sBAAsB,EAAE,QAAQ;AAChC,wBAAA,sBAAsB,EAAE,sBAAsB;AAC9C,wBAAA,sBAAsB,EAAE,iCAAiC;AACzD,wBAAA,iBAAiB,EAAE,sDAAsD;AACzE,wBAAA,mBAAmB,EAAE,0CAA0C;AAC/D,wBAAA,sBAAsB,EAAE,+BAA+B;AACvD,wBAAA,wBAAwB,EAAE,uCAAuC;AACjE,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,gBAAgB,EAAE,4BAA4B;AAC9C,wBAAA,gBAAgB,EAAE,4BAA4B;AAC9C,wBAAA,qBAAqB,EAAE,yBAAyB;AAChD,wBAAA,mBAAmB,EAAE,uBAAuB;AAC5C,wBAAA,qBAAqB,EAAE,yBAAyB;AAChD,wBAAA,sBAAsB,EAAE,0BAA0B;AAClD,wBAAA,gBAAgB,EAAE,oBAAoB;AACtC,wBAAA,eAAe,EAAE,mBAAmB;AACpC,wBAAA,kBAAkB,EAAE,sBAAsB;AAC1C,wBAAA,iBAAiB,EAAE,8BAA8B;AACjD,wBAAA,iBAAiB,EAAE;AACtB;AACJ,iBAAA;;;AC/CD;;;;;;;;;;;;;;;;;AAiBG;MAUU,eAAe,CAAA;AAUxB,IAAA,WAAA,GAAA;AATiB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAI7B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAqB,SAAS,4EAAC;AAC7C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAqB,SAAS,6EAAC;AAC9C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,KAAK,oFAAC;QAG5C,eAAe,CAAC,MAAK;AACjB,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;;YAGxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;AAEhC,YAAA,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;gBACvC;YACJ;YAEA,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAI;AAC3C,gBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,KAAK,EAAE;oBACR;gBACJ;AAEA,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;AACrD,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;AAEvD,gBAAA,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE,IAAI,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE,EAAE;oBAC5D;gBACJ;AAEA,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;AACzB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,EAAE;AAC5B,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC3B,YAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC3B,YAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AACtC,QAAA,CAAC,CAAC;IACN;IAEQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,QAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;QAElC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AACxE,QAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5G;8GAvDS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,oCAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACF,wBAAA,2BAA2B,EAAE,kCAAkC;AAC/D,wBAAA,0BAA0B,EAAE,SAAS;AACrC,wBAAA,2BAA2B,EAAE;AAChC;AACJ,iBAAA;;;ACaD,MAAM,WAAW,GAAG;IAChB,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB,YAAY;IACZ,eAAe;IACf,eAAe;IACf,YAAY;IACZ,WAAW;IACX,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,4BAA4B;IAC5B,iBAAiB;IACjB,gBAAgB;IAChB;CACH;MAMY,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAzBtB,WAAW;YACX,cAAc;YACd,iBAAiB;YACjB,aAAa;YACb,iBAAiB;YACjB,YAAY;YACZ,eAAe;YACf,eAAe;YACf,YAAY;YACZ,WAAW;YACX,eAAe;YACf,YAAY;YACZ,iBAAiB;YACjB,gBAAgB;YAChB,mBAAmB;YACnB,4BAA4B;YAC5B,iBAAiB;YACjB,gBAAgB;AAChB,YAAA,yBAAyB,aAlBzB,WAAW;YACX,cAAc;YACd,iBAAiB;YACjB,aAAa;YACb,iBAAiB;YACjB,YAAY;YACZ,eAAe;YACf,eAAe;YACf,YAAY;YACZ,WAAW;YACX,eAAe;YACf,YAAY;YACZ,iBAAiB;YACjB,gBAAgB;YAChB,mBAAmB;YACnB,4BAA4B;YAC5B,iBAAiB;YACjB,gBAAgB;YAChB,yBAAyB,CAAA,EAAA,CAAA,CAAA;+GAOhB,aAAa,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,WAAW,CAAC;AACzB,oBAAA,OAAO,EAAE,CAAC,GAAG,WAAW;AAC3B,iBAAA;;;ACnED;;AAEG;;;;"}
|