@skyux/popovers 8.2.6 → 8.3.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.
Files changed (28) hide show
  1. package/documentation.json +1447 -332
  2. package/esm2020/lib/modules/popover/popover-content.component.mjs +8 -4
  3. package/esm2020/lib/modules/popover/popover.component.mjs +4 -1
  4. package/esm2020/lib/modules/popover/popover.directive.mjs +29 -6
  5. package/esm2020/testing/popover/harness/popover-body-harness.mjs +42 -0
  6. package/esm2020/testing/popover/harness/popover-content-harness-filters.mjs +2 -0
  7. package/esm2020/testing/popover/harness/popover-content-harness.mjs +100 -0
  8. package/esm2020/testing/popover/harness/popover-harness-filters.mjs +2 -0
  9. package/esm2020/testing/popover/harness/popover-harness.mjs +56 -0
  10. package/esm2020/testing/public-api.mjs +5 -1
  11. package/fesm2015/skyux-popovers-testing.mjs +232 -2
  12. package/fesm2015/skyux-popovers-testing.mjs.map +1 -1
  13. package/fesm2015/skyux-popovers.mjs +39 -9
  14. package/fesm2015/skyux-popovers.mjs.map +1 -1
  15. package/fesm2020/skyux-popovers-testing.mjs +192 -2
  16. package/fesm2020/skyux-popovers-testing.mjs.map +1 -1
  17. package/fesm2020/skyux-popovers.mjs +39 -9
  18. package/fesm2020/skyux-popovers.mjs.map +1 -1
  19. package/lib/modules/popover/popover-content.component.d.ts +2 -0
  20. package/lib/modules/popover/popover.component.d.ts +1 -0
  21. package/lib/modules/popover/popover.directive.d.ts +12 -1
  22. package/package.json +6 -6
  23. package/testing/popover/harness/popover-body-harness.d.ts +31 -0
  24. package/testing/popover/harness/popover-content-harness-filters.d.ts +7 -0
  25. package/testing/popover/harness/popover-content-harness.d.ts +53 -0
  26. package/testing/popover/harness/popover-harness-filters.d.ts +6 -0
  27. package/testing/popover/harness/popover-harness.d.ts +31 -0
  28. package/testing/public-api.d.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-popovers.mjs","sources":["../../../../../libs/components/popovers/src/lib/modules/dropdown/types/dropdown-message-type.ts","../../../../../libs/components/popovers/src/lib/modules/shared/sky-popovers-resources.module.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-button.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-button.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-item.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-item.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-extensions.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-menu.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-menu.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.module.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-adapter.service.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-animation.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-extensions.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-context.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-content.component.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-content.component.html","../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.html","../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-message-type.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.directive.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.module.ts","../../../../../libs/components/popovers/src/skyux-popovers.ts"],"sourcesContent":["/**\n * The type of message to send.\n * @internal\n */\nexport enum SkyDropdownMessageType {\n /**\n * Opens the dropdown menu.\n */\n Open = 0,\n\n /**\n * Closes the dropdown menu.\n */\n Close = 1,\n\n /**\n * Puts focus on the dropdown button.\n */\n FocusTriggerButton = 2,\n\n /**\n * Puts focus on the next item in the dropdown menu.\n */\n FocusNextItem = 3,\n\n /**\n * Puts focus on the previous item in the dropdown menu.\n */\n FocusPreviousItem = 4,\n\n /**\n * Repositions the dropdown menu next to the dropdown button. This is useful for when the\n * dropdown menu's width and height change while it is open.\n */\n Reposition = 5,\n\n /**\n * Puts focus on the first item in the dropdown menu.\n */\n FocusFirstItem = 6,\n\n /**\n * Puts focus on the last item in the dropdown menu.\n */\n FocusLastItem = 7,\n}\n","/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-popovers' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_dropdown_context_menu_default_label: { message: 'Context menu' },\n },\n};\n\nexport class SkyPopoversResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyPopoversResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyPopoversResourcesModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies the button for the dropdown menu.\n */\n@Component({\n selector: 'sky-dropdown-button',\n templateUrl: './dropdown-button.component.html',\n})\nexport class SkyDropdownButtonComponent {}\n","<ng-content></ng-content>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * Specifies the items to display on the dropdown menu.\n */\n@Component({\n selector: 'sky-dropdown-item',\n templateUrl: './dropdown-item.component.html',\n styleUrls: ['./dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyDropdownItemComponent implements AfterViewInit {\n /**\n * The ARIA role for the dropdown menu item\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the item functions and what it controls. For information about\n * how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).\n * @default \"menuitem\"\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.#_ariaRole = value ?? 'menuitem';\n }\n\n public get ariaRole(): string {\n return this.#_ariaRole;\n }\n\n public isActive = false;\n\n #_ariaRole = 'menuitem';\n\n #changeDetector: ChangeDetectorRef;\n #renderer: Renderer2;\n\n constructor(\n public elementRef: ElementRef,\n changeDetector: ChangeDetectorRef,\n renderer: Renderer2\n ) {\n this.#changeDetector = changeDetector;\n this.#renderer = renderer;\n }\n\n public ngAfterViewInit(): void {\n // Make sure anchor elements are tab-able.\n const buttonElement = this.#getButtonElement();\n /* istanbul ignore else */\n if (buttonElement) {\n this.#renderer.setAttribute(buttonElement, 'tabIndex', '0');\n }\n\n this.#changeDetector.detectChanges();\n }\n\n public focusElement(enableNativeFocus: boolean): void {\n this.isActive = true;\n\n if (enableNativeFocus) {\n this.#getButtonElement()?.focus();\n }\n\n this.#changeDetector.detectChanges();\n }\n\n public isFocusable(): boolean {\n const isFocusable =\n this.#getButtonElement()?.getAttribute('disabled') === null;\n return isFocusable;\n }\n\n public resetState(): void {\n this.isActive = false;\n this.#changeDetector.markForCheck();\n }\n\n #getButtonElement(): HTMLButtonElement | null {\n return this.elementRef.nativeElement.querySelector('button,a');\n }\n}\n","<div\n class=\"sky-dropdown-item\"\n [attr.role]=\"ariaRole\"\n [ngClass]=\"{\n 'sky-dropdown-item-active': isActive\n }\"\n>\n <ng-content> </ng-content>\n</div>\n","import { SkyAffixHorizontalAlignment } from '@skyux/core';\n\nimport { SkyDropdownHorizontalAlignment } from './types/dropdown-horizontal-alignment';\n\nexport function parseAffixHorizontalAlignment(\n alignment: SkyDropdownHorizontalAlignment\n): SkyAffixHorizontalAlignment {\n switch (alignment) {\n case 'center':\n return 'center';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n /* istanbul ignore next */\n default:\n throw `SkyAffixHorizontalAlignment does not have a matching value for '${alignment}'!`;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAffixAutoFitContext,\n SkyAffixHorizontalAlignment,\n SkyAffixService,\n SkyAffixer,\n SkyOverlayInstance,\n SkyOverlayService,\n} from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { parseAffixHorizontalAlignment } from './dropdown-extensions';\nimport { SkyDropdownButtonType } from './types/dropdown-button-type';\nimport { SkyDropdownHorizontalAlignment } from './types/dropdown-horizontal-alignment';\nimport { SkyDropdownMessage } from './types/dropdown-message';\nimport { SkyDropdownMessageType } from './types/dropdown-message-type';\nimport { SkyDropdownTriggerType } from './types/dropdown-trigger-type';\n\nconst DEFAULT_BUTTON_STYLE = 'default';\nconst DEFAULT_BUTTON_TYPE: SkyDropdownButtonType = 'select';\nconst DEFAULT_HORIZONTAL_ALIGNMENT: SkyAffixHorizontalAlignment = 'left';\nconst DEFAULT_TRIGGER_TYPE: SkyDropdownTriggerType = 'click';\n\n/**\n * Creates a dropdown menu that displays menu items that users may select.\n */\n@Component({\n selector: 'sky-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDropdownComponent implements OnInit, OnDestroy {\n /**\n * The background color for the dropdown button. Available values are `default`,\n * `primary`, and `link`. These values set the background color and hover behavior from the\n * [secondary and primary button classes](https://developer.blackbaud.com/skyux/components/button) respectively.\n * @default \"default\"\n */\n @Input()\n public set buttonStyle(value: string | undefined) {\n this.#_buttonStyle = value ?? DEFAULT_BUTTON_STYLE;\n }\n\n public get buttonStyle(): string {\n return this.#_buttonStyle;\n }\n\n /**\n * The type of button to render as the dropdown's trigger element. To display a button\n * with a caret, specify `'select'` and render the button text or icon in a\n * `sky-dropdown-button` element. To display a round button with an ellipsis, specify\n * `'context-menu'`.\n * @default \"select\"\n */\n @Input()\n public set buttonType(value: SkyDropdownButtonType | undefined) {\n this.#_buttonType = value ?? DEFAULT_BUTTON_TYPE;\n }\n\n public get buttonType(): SkyDropdownButtonType {\n return this.#_buttonType;\n }\n\n /**\n * Whether to disable the dropdown button.\n * @default false\n */\n @Input()\n public disabled: boolean | undefined = false;\n\n /**\n * Whether to close the dropdown when users click away from the menu.\n * @default true\n */\n @Input()\n public set dismissOnBlur(value: boolean | undefined) {\n this.#_dismissOnBlur = value ?? true;\n }\n\n public get dismissOnBlur(): boolean {\n return this.#_dismissOnBlur;\n }\n\n /**\n * The ARIA label for the dropdown. This sets the dropdown's `aria-label` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n */\n @Input()\n public label: string | undefined;\n\n /**\n * The horizontal alignment of the dropdown menu in relation to the dropdown button.\n * @default \"left\"\n */\n @Input()\n public set horizontalAlignment(\n value: SkyDropdownHorizontalAlignment | undefined\n ) {\n this.#_horizontalAlignment = value ?? DEFAULT_HORIZONTAL_ALIGNMENT;\n }\n\n public get horizontalAlignment(): SkyDropdownHorizontalAlignment {\n return this.#_horizontalAlignment;\n }\n\n /**\n * The observable that sends commands to the dropdown. The commands should respect\n * the [[SkyDropdownMessage]] type.\n * @internal\n */\n @Input()\n public messageStream: Subject<SkyDropdownMessage> | undefined =\n new Subject<SkyDropdownMessage>();\n\n /**\n * The title to display in a tooltip when users hover the mouse over the dropdown button.\n */\n @Input()\n public title: string | undefined;\n\n /**\n * How users interact with the dropdown button to expose the dropdown menu.\n * We recommend the default `click` value because the `hover` value can pose\n * [accessibility](https://developer.blackbaud.com/skyux/learn/accessibility) issues\n * for users on touch devices such as phones and tablets.\n * @deprecated We recommend against using this property. If you choose to use the deprecated\n * `hover` value anyway, we recommend that you not use it in combination with the `title`\n * property.\n * @default \"click\"\n */\n @Input()\n public set trigger(value: SkyDropdownTriggerType | undefined) {\n this.#_trigger = value ?? DEFAULT_TRIGGER_TYPE;\n }\n\n public get trigger(): SkyDropdownTriggerType {\n return this.#_trigger;\n }\n\n public set isOpen(value: boolean) {\n this.#_isOpen = value;\n this.#changeDetector.markForCheck();\n }\n\n public get isOpen(): boolean {\n return this.#_isOpen;\n }\n\n @ViewChild('menuContainerElementRef', {\n read: ElementRef,\n })\n public set menuContainerElementRef(value: ElementRef | undefined) {\n if (value) {\n this.#destroyAffixer();\n this.#createAffixer(value);\n this.#changeDetector.markForCheck();\n }\n }\n\n public isMouseEnter = false;\n\n public isVisible = false;\n\n public menuId: string | undefined;\n\n public menuAriaRole: string | undefined;\n\n @ViewChild('menuContainerTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public menuContainerTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('triggerButton', {\n read: ElementRef,\n static: true,\n })\n public set triggerButton(value: ElementRef | undefined) {\n this.#_triggerButton = value;\n this.#addEventListeners();\n }\n\n public get triggerButton(): ElementRef | undefined {\n return this.#_triggerButton;\n }\n\n #affixer: SkyAffixer | undefined;\n #overlay: SkyOverlayInstance | undefined;\n #ngUnsubscribe = new Subject<void>();\n #positionTimeout: number | undefined;\n\n #affixService = inject(SkyAffixService);\n #changeDetector = inject(ChangeDetectorRef);\n #overlayService = inject(SkyOverlayService);\n #themeSvc = inject(SkyThemeService, { optional: true });\n #zIndex = inject(SKY_STACKING_CONTEXT, { optional: true })?.zIndex;\n\n #_buttonStyle = DEFAULT_BUTTON_STYLE;\n #_buttonType = DEFAULT_BUTTON_TYPE;\n #_dismissOnBlur = true;\n #_horizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n #_isOpen = false;\n #_trigger = DEFAULT_TRIGGER_TYPE;\n #_triggerButton: ElementRef | undefined;\n\n public ngOnInit(): void {\n this.messageStream\n ?.pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyDropdownMessage) => {\n this.#handleIncomingMessages(message);\n });\n\n // Load proper icons on theme change.\n this.#themeSvc?.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.#destroyAffixer();\n this.#destroyOverlay();\n clearTimeout(this.#positionTimeout);\n\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #addEventListeners(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#ngUnsubscribe = new Subject<void>();\n const buttonElement = this.triggerButton?.nativeElement;\n if (buttonElement) {\n observableFromEvent(buttonElement, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n } else {\n this.#sendMessage(SkyDropdownMessageType.Open);\n // Wait for dropdown to open, then set focus on first item.\n setTimeout(() => {\n this.#sendMessage(SkyDropdownMessageType.FocusFirstItem);\n });\n }\n });\n\n observableFromEvent<KeyboardEvent>(buttonElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n /*istanbul ignore else*/\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n event.stopPropagation();\n }\n break;\n\n case 'tab':\n if (this.isOpen && this.dismissOnBlur) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n break;\n\n case 'arrowup':\n case 'up':\n if (!this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Open);\n this.#sendMessage(SkyDropdownMessageType.FocusLastItem);\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n\n case 'enter':\n case 'arrowdown':\n case 'down':\n case ' ': // Spacebar.\n /*istanbul ignore else*/\n if (!this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Open);\n this.#sendMessage(SkyDropdownMessageType.FocusFirstItem);\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n }\n });\n\n observableFromEvent(buttonElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.isMouseEnter = true;\n if (this.trigger === 'hover') {\n this.#sendMessage(SkyDropdownMessageType.Open);\n }\n });\n\n observableFromEvent(buttonElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.isMouseEnter = false;\n if (this.trigger === 'hover') {\n // Allow the dropdown menu to set isMouseEnter before checking if the close action\n // should be taken.\n setTimeout(() => {\n if (!this.isMouseEnter) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n }\n });\n }\n }\n\n #createOverlay(): void {\n if (this.#overlay) {\n return;\n }\n\n if (this.menuContainerTemplateRef) {\n const overlay = this.#overlayService.create({\n enableScroll: true,\n enablePointerEvents: true,\n });\n\n if (this.#zIndex) {\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n }\n\n overlay.attachTemplate(this.menuContainerTemplateRef);\n\n overlay.backdropClick\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.dismissOnBlur) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n\n this.#overlay = overlay;\n }\n }\n\n #destroyAffixer(): void {\n /*istanbul ignore else*/\n if (this.#affixer) {\n this.#affixer.destroy();\n this.#affixer = undefined;\n }\n }\n\n #destroyOverlay(): void {\n /*istanbul ignore else*/\n if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n }\n }\n\n #createAffixer(menuContainerElementRef: ElementRef): void {\n const affixer = this.#affixService.createAffixer(menuContainerElementRef);\n\n affixer.placementChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change) => {\n this.isVisible = change.placement !== null;\n this.#changeDetector.markForCheck();\n });\n\n this.#affixer = affixer;\n }\n\n #handleIncomingMessages(message: SkyDropdownMessage): void {\n if (!this.disabled) {\n switch (message.type) {\n case SkyDropdownMessageType.Open:\n this.isOpen = true;\n this.#positionDropdownMenu();\n break;\n\n case SkyDropdownMessageType.Close:\n this.isOpen = false;\n this.#destroyOverlay();\n break;\n\n case SkyDropdownMessageType.Reposition:\n // Only reposition the dropdown if it is already open.\n /* istanbul ignore else */\n if (this.isOpen && this.#affixer) {\n this.#affixer.reaffix();\n }\n break;\n\n case SkyDropdownMessageType.FocusTriggerButton:\n this.triggerButton?.nativeElement.focus();\n break;\n }\n }\n }\n\n #sendMessage(type: SkyDropdownMessageType): void {\n this.messageStream?.next({ type });\n }\n\n #positionDropdownMenu(): void {\n this.isVisible = false;\n this.#createOverlay();\n this.#changeDetector.markForCheck();\n\n // Explicitly declare the `setTimeout` from the `window` object in order to use the DOM typings\n // during a unit test (instead of confusing this with Node's `setTimeout`).\n this.#positionTimeout = window.setTimeout(() => {\n if (this.#affixer) {\n this.#affixer.affixTo(this.triggerButton?.nativeElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: parseAffixHorizontalAlignment(\n this.horizontalAlignment\n ),\n isSticky: true,\n placement: 'below',\n });\n\n this.isVisible = true;\n this.#changeDetector.markForCheck();\n }\n });\n }\n}\n","<div class=\"sky-dropdown\">\n <button\n class=\"sky-btn sky-dropdown-button\"\n type=\"button\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"isOpen ? menuId : null\"\n [attr.aria-haspopup]=\"menuAriaRole\"\n [attr.aria-label]=\"\n label || ('skyux_dropdown_context_menu_default_label' | skyLibResources)\n \"\n [attr.title]=\"title\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n #triggerButton\n >\n <ng-container [ngSwitch]=\"buttonType\">\n <ng-template ngSwitchCase=\"context-menu\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"ellipsis-h\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"ellipsis\"\n iconType=\"skyux\"\n ></sky-icon>\n </ng-template>\n\n <ng-template ngSwitchDefault>\n <div class=\"sky-dropdown-button-container\">\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\"> </ng-content>\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n *skyThemeIf=\"'default'\"\n class=\"sky-dropdown-caret\"\n icon=\"caret-down\"\n >\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n class=\"sky-dropdown-caret\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </div>\n </div>\n </ng-template>\n </ng-container>\n </button>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n #menuContainerElementRef\n >\n <ng-content select=\"sky-dropdown-menu\"></ng-content>\n </div>\n</ng-template>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDropdownItemComponent } from './dropdown-item.component';\nimport { SkyDropdownComponent } from './dropdown.component';\nimport { SkyDropdownMenuChange } from './types/dropdown-menu-change';\nimport { SkyDropdownMessage } from './types/dropdown-message';\nimport { SkyDropdownMessageType } from './types/dropdown-message-type';\n\nlet nextId = 0;\n/**\n * Creates a menu that contains dropdown menu items.\n *\n */\n@Component({\n selector: 'sky-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n styleUrls: ['./dropdown-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyDropdownMenuComponent implements AfterContentInit, OnDestroy {\n /**\n * The HTML element ID of the element that labels\n * the dropdown menu. This sets the dropdown menu's `aria-labelledby` attribute to provide a text equivalent for\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For more information about the `aria-labelledby` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-labelledby).\n */\n @Input()\n public ariaLabelledBy: string | undefined;\n\n /**\n * The ARIA role for the dropdown menu\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the dropdown menu functions and what it controls. The dropdown button\n * inherits this value to set its `aria-haspopup` property. For information\n * about how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).\n * @default \"menu\"\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.#_ariaRole = value ?? 'menu';\n }\n\n public get ariaRole(): string {\n return this.#_ariaRole;\n }\n\n /**\n * Whether to use the browser's native focus function when users navigate through menu\n * items with the keyboard. To disable the native focus function, set this property to `false`.\n * For example, to let users interact with the dropdown menu but keep the keyboard focus on a\n * different element, set this property to `false`.\n * @default true\n * @internal\n */\n @Input()\n public set useNativeFocus(value: boolean | undefined) {\n this.#_useNativeFocus = value ?? true;\n }\n\n public get useNativeFocus(): boolean {\n return this.#_useNativeFocus;\n }\n\n /**\n * Fires when the dropdown menu's active index or selected item changes. This event provides an\n * observable to emit changes, and the response is of\n * the SkyDropdownMenuChange type.\n * @internal\n */\n @Output()\n public menuChanges = new EventEmitter<SkyDropdownMenuChange>();\n\n public dropdownMenuId = `sky-dropdown-menu-${++nextId}`;\n\n public set menuIndex(value: number) {\n if (value < 0) {\n value = this.menuItems.length - 1;\n }\n\n if (value >= this.menuItems.length) {\n value = 0;\n }\n\n this.#_menuIndex = value;\n }\n\n public get menuIndex(): number {\n return this.#_menuIndex;\n }\n\n @ContentChildren(SkyDropdownItemComponent, { descendants: true })\n public menuItems!: QueryList<SkyDropdownItemComponent>;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_ariaRole = 'menu';\n\n #_menuIndex = 0;\n\n #_useNativeFocus = true;\n\n #changeDetector: ChangeDetectorRef;\n #elementRef: ElementRef;\n #dropdownComponent: SkyDropdownComponent | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n elementRef: ElementRef,\n @Optional() dropdownComponent?: SkyDropdownComponent\n ) {\n this.#changeDetector = changeDetector;\n this.#elementRef = elementRef;\n this.#dropdownComponent = dropdownComponent;\n }\n\n public ngAfterContentInit(): void {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.menuId = this.dropdownMenuId;\n this.#dropdownComponent.menuAriaRole = this.ariaRole;\n\n this.#dropdownComponent.messageStream\n ?.pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyDropdownMessage) => {\n switch (message.type) {\n case SkyDropdownMessageType.Open:\n case SkyDropdownMessageType.Close:\n this.reset();\n break;\n\n case SkyDropdownMessageType.FocusFirstItem:\n this.focusFirstItem();\n break;\n\n case SkyDropdownMessageType.FocusNextItem:\n this.focusNextItem();\n break;\n\n case SkyDropdownMessageType.FocusPreviousItem:\n this.focusPreviousItem();\n break;\n\n case SkyDropdownMessageType.FocusLastItem:\n this.focusLastItem();\n break;\n }\n });\n\n this.menuChanges\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change: SkyDropdownMenuChange) => {\n // Close the dropdown when a menu item is selected.\n if (change.selectedItem) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n }\n\n if (change.items) {\n // Update the popover style and position whenever the number of items changes.\n this.#sendMessage(SkyDropdownMessageType.Reposition);\n }\n });\n }\n\n // Reset dropdown whenever the menu items change.\n this.menuItems.changes\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((items: QueryList<SkyDropdownItemComponent>) => {\n this.reset();\n this.menuChanges.emit({\n items: items.toArray(),\n });\n });\n\n this.#addEventListeners();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public focusFirstItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex = 0;\n\n const firstItem = this.#getItemByIndex(this.menuIndex);\n if (firstItem && firstItem.isFocusable()) {\n this.#focusItem(firstItem);\n } else {\n this.focusNextItem();\n }\n }\n\n public focusLastItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex = this.menuItems.length - 1;\n\n const lastItem = this.#getItemByIndex(this.menuIndex);\n if (lastItem && lastItem.isFocusable()) {\n this.#focusItem(lastItem);\n } else {\n this.focusPreviousItem();\n }\n }\n\n public focusPreviousItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex--;\n\n const previousItem = this.#getItemByIndex(this.menuIndex);\n if (previousItem && previousItem.isFocusable()) {\n this.#focusItem(previousItem);\n } else {\n this.focusPreviousItem();\n }\n }\n\n public focusNextItem() {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex++;\n\n const nextItem = this.#getItemByIndex(this.menuIndex);\n if (nextItem && nextItem.isFocusable()) {\n this.#focusItem(nextItem);\n } else {\n this.focusNextItem();\n }\n }\n\n public reset(): void {\n this.#_menuIndex = -1;\n this.#resetItemsActiveState();\n this.#changeDetector.markForCheck();\n }\n\n #resetItemsActiveState() {\n this.menuItems.forEach((item: SkyDropdownItemComponent) => {\n item.resetState();\n });\n }\n\n #focusItem(item: SkyDropdownItemComponent): void {\n this.#resetItemsActiveState();\n item.focusElement(this.useNativeFocus);\n this.menuChanges.emit({\n activeIndex: this.menuIndex,\n });\n }\n\n #getItemByIndex(index: number): SkyDropdownItemComponent | undefined {\n return this.menuItems.find((_, i) => i === index);\n }\n\n #selectItemByEventTarget(target: EventTarget): void {\n const selectedItem = this.menuItems.find(\n (item: SkyDropdownItemComponent, i: number) => {\n const found = item.elementRef.nativeElement.contains(target);\n\n if (found) {\n this.menuIndex = i;\n this.menuChanges.next({\n activeIndex: this.menuIndex,\n });\n }\n\n return found;\n }\n );\n\n /* istanbul ignore else */\n if (selectedItem) {\n this.menuChanges.next({\n selectedItem,\n });\n }\n }\n\n #sendMessage(type: SkyDropdownMessageType): void {\n this.#dropdownComponent?.messageStream?.next({ type });\n }\n\n #addEventListeners(): void {\n const dropdownMenuElement = this.#elementRef.nativeElement;\n\n observableFromEvent<MouseEvent>(dropdownMenuElement, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n this.#selectItemByEventTarget(event.target as EventTarget);\n });\n\n observableFromEvent<KeyboardEvent>(dropdownMenuElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'arrowdown':\n case 'down':\n this.focusNextItem();\n event.preventDefault();\n break;\n\n case 'arrowup':\n case 'up':\n this.focusPreviousItem();\n event.preventDefault();\n break;\n\n case 'tab':\n if (this.#dropdownComponent?.dismissOnBlur) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n break;\n }\n });\n\n observableFromEvent(dropdownMenuElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.isMouseEnter = true;\n }\n });\n\n observableFromEvent(dropdownMenuElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.isMouseEnter = false;\n // Allow the dropdown component to set isMouseEnter before checking if the close action\n // should be taken.\n setTimeout(() => {\n if (\n this.#dropdownComponent &&\n this.#dropdownComponent.trigger === 'hover' &&\n this.#dropdownComponent.isMouseEnter === false\n ) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n }\n });\n }\n\n #hasFocusableItems(): boolean {\n const found = this.menuItems.find((item) => item.isFocusable());\n return found !== undefined;\n }\n}\n","<div\n class=\"sky-dropdown-menu sky-shadow sky-elevation-4\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n [id]=\"dropdownMenuId\"\n>\n <ng-content> </ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyAffixModule, SkyOverlayModule } from '@skyux/core';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';\n\nimport { SkyDropdownButtonComponent } from './dropdown-button.component';\nimport { SkyDropdownItemComponent } from './dropdown-item.component';\nimport { SkyDropdownMenuComponent } from './dropdown-menu.component';\nimport { SkyDropdownComponent } from './dropdown.component';\n\n@NgModule({\n declarations: [\n SkyDropdownButtonComponent,\n SkyDropdownComponent,\n SkyDropdownItemComponent,\n SkyDropdownMenuComponent,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyIconModule,\n SkyOverlayModule,\n SkyPopoversResourcesModule,\n SkyThemeModule,\n ],\n exports: [\n SkyDropdownButtonComponent,\n SkyDropdownComponent,\n SkyDropdownItemComponent,\n SkyDropdownMenuComponent,\n ],\n})\nexport class SkyDropdownModule {}\n","import { Injectable } from '@angular/core';\n\nimport { SkyPopoverAdapterArrowCoordinates } from './types/popover-adapter-arrow-coordinates';\nimport { SkyPopoverAdapterElements } from './types/popover-adapter-elements';\nimport { SkyPopoverPlacement } from './types/popover-placement';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPopoverAdapterService {\n public getArrowCoordinates(\n elements: SkyPopoverAdapterElements,\n placement: SkyPopoverPlacement,\n themeName?: string\n ): SkyPopoverAdapterArrowCoordinates {\n const callerRect = elements.caller.nativeElement.getBoundingClientRect();\n const popoverRect = elements.popover.nativeElement.getBoundingClientRect();\n const arrowRect =\n elements.popoverArrow.nativeElement.getBoundingClientRect();\n\n const pixelTolerance = 20;\n\n let top: number;\n let left: number;\n\n if (placement === 'above' || placement === 'below') {\n left = callerRect.left + callerRect.width * 0.5;\n\n // Make sure the arrow never detaches from the popover.\n if (left - pixelTolerance < popoverRect.left) {\n left = popoverRect.left + pixelTolerance;\n } else if (left + pixelTolerance > popoverRect.right) {\n left = popoverRect.right - pixelTolerance;\n }\n\n if (placement === 'above') {\n if (themeName !== 'modern') {\n top = callerRect.top - arrowRect.height;\n } else {\n top = callerRect.top - arrowRect.height + 5;\n }\n } else {\n if (themeName !== 'modern') {\n top = callerRect.bottom;\n } else {\n top = callerRect.bottom + 4;\n }\n }\n } else {\n top = callerRect.top + callerRect.height * 0.5;\n\n // Make sure the arrow never detaches from the popover.\n if (top - pixelTolerance < popoverRect.top) {\n top = popoverRect.top + pixelTolerance;\n } else if (top + pixelTolerance > popoverRect.bottom) {\n top = popoverRect.bottom - pixelTolerance;\n }\n\n if (placement === 'left') {\n if (themeName !== 'modern') {\n left = callerRect.left - arrowRect.width;\n } else {\n left = callerRect.left - arrowRect.width + 5;\n }\n } else {\n if (themeName !== 'modern') {\n left = callerRect.right;\n } else {\n left = callerRect.right + 4;\n }\n }\n }\n\n return { top, left };\n }\n}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\n/**\n * @internal\n */\nexport const skyPopoverAnimation: AnimationTriggerMetadata = trigger(\n 'skyPopoverAnimation',\n [\n state(\n 'void',\n style({\n opacity: 0,\n })\n ),\n state(\n 'open',\n style({\n opacity: 1,\n })\n ),\n state(\n 'closed',\n style({\n opacity: 0,\n })\n ),\n transition('void => *', [animate('250ms')]),\n transition('open => closed', [animate('150ms')]),\n transition('closed => open', [animate('150ms')]),\n ]\n);\n","import { SkyAffixHorizontalAlignment, SkyAffixPlacement } from '@skyux/core';\n\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\n\nexport function parseAffixPlacement(\n placement: SkyPopoverPlacement\n): SkyAffixPlacement {\n switch (placement) {\n case 'above':\n return 'above';\n case 'below':\n return 'below';\n case 'right':\n return 'right';\n case 'left':\n return 'left';\n /* istanbul ignore next */\n default:\n throw `SkyAffixPlacement does not have a matching value for '${placement}'!`;\n }\n}\n\nexport function parseAffixHorizontalAlignment(\n alignment: SkyPopoverAlignment\n): SkyAffixHorizontalAlignment {\n switch (alignment) {\n case 'center':\n return 'center';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n /* istanbul ignore next */\n default:\n throw `SkyAffixHorizontalAlignment does not have a matching value for '${alignment}'!`;\n }\n}\n","import { TemplateRef } from '@angular/core';\n\n/**\n * @dynamic\n * @internal\n */\nexport class SkyPopoverContext {\n public readonly contentTemplateRef: TemplateRef<unknown>;\n\n constructor(args: { contentTemplateRef: TemplateRef<unknown> }) {\n this.contentTemplateRef = args.contentTemplateRef;\n }\n}\n","import { AnimationEvent } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SkyAffixAutoFitContext,\n SkyAffixConfig,\n SkyAffixService,\n SkyAffixer,\n SkyCoreAdapterService,\n} from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Observable, Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverAdapterService } from './popover-adapter.service';\nimport { skyPopoverAnimation } from './popover-animation';\nimport { SkyPopoverAnimationState } from './popover-animation-state';\nimport { SkyPopoverContext } from './popover-context';\nimport {\n parseAffixHorizontalAlignment,\n parseAffixPlacement,\n} from './popover-extensions';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverType } from './types/popover-type';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-popover-content',\n templateUrl: './popover-content.component.html',\n styleUrls: ['./popover-content.component.scss'],\n animations: [skyPopoverAnimation],\n providers: [SkyPopoverAdapterService],\n})\nexport class SkyPopoverContentComponent implements OnInit, OnDestroy {\n public animationState: SkyPopoverAnimationState = 'closed';\n\n public get closed(): Observable<void> {\n return this.#_closed.asObservable();\n }\n\n public get opened(): Observable<void> {\n return this.#_opened.asObservable();\n }\n\n public get isMouseEnter(): Observable<boolean> {\n return this.#_isMouseEnter.asObservable();\n }\n\n public affixer: SkyAffixer | undefined;\n\n public arrowLeft: number | undefined;\n\n public arrowTop: number | undefined;\n\n public dismissOnBlur = true;\n\n public enableAnimations = true;\n\n public horizontalAlignment: SkyPopoverAlignment = 'center';\n\n public set isOpen(value: boolean) {\n this.#_isOpen = value;\n this.animationState = value ? 'open' : 'closed';\n }\n\n public get isOpen() {\n return this.#_isOpen;\n }\n\n public placement: SkyPopoverPlacement | null = null;\n\n public popoverTitle: string | undefined;\n\n public popoverType: SkyPopoverType = 'info';\n\n public themeName: string | undefined;\n\n @ViewChild('arrowRef', {\n read: ElementRef,\n static: true,\n })\n public arrowRef: ElementRef | undefined;\n\n @ViewChild('popoverRef', {\n read: ElementRef,\n static: true,\n })\n public popoverRef: ElementRef | undefined;\n\n @ViewChild('contentTarget', {\n read: ViewContainerRef,\n static: true,\n })\n public set contentTarget(value: ViewContainerRef | undefined) {\n if (value) {\n value.createEmbeddedView(this.#context.contentTemplateRef);\n }\n }\n\n #caller: ElementRef | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_closed = new Subject<void>();\n\n #_isMouseEnter = new Subject<boolean>();\n\n #_isOpen = false;\n\n #_opened = new Subject<void>();\n\n #changeDetector: ChangeDetectorRef;\n #elementRef: ElementRef;\n #affixService: SkyAffixService;\n #coreAdapterService: SkyCoreAdapterService;\n #adapterService: SkyPopoverAdapterService;\n #context: SkyPopoverContext;\n #themeSvc: SkyThemeService | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n elementRef: ElementRef,\n affixService: SkyAffixService,\n coreAdapterService: SkyCoreAdapterService,\n adapterService: SkyPopoverAdapterService,\n context: SkyPopoverContext,\n @Optional() themeSvc?: SkyThemeService\n ) {\n this.#changeDetector = changeDetector;\n this.#elementRef = elementRef;\n this.#affixService = affixService;\n this.#coreAdapterService = coreAdapterService;\n this.#adapterService = adapterService;\n this.#context = context;\n this.#themeSvc = themeSvc;\n }\n\n public ngOnInit(): void {\n this.#addEventListeners();\n\n /*istanbul ignore else*/\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n /*istanbul ignore next*/\n this.themeName = themeSettings.currentSettings?.theme?.name;\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.#_closed.complete();\n this.#_isMouseEnter.complete();\n this.#_opened.complete();\n\n /* istanbul ignore else */\n if (this.affixer) {\n this.affixer.destroy();\n this.affixer = undefined;\n }\n }\n\n public onAnimationEvent(event: AnimationEvent): void {\n if (event.fromState === 'void') {\n return;\n }\n\n if (event.phaseName === 'done') {\n if (event.toState === 'open') {\n this.#_opened.next();\n } else {\n this.#_closed.next();\n }\n }\n }\n\n public open(\n caller: ElementRef,\n config: {\n dismissOnBlur: boolean;\n enableAnimations: boolean;\n horizontalAlignment: SkyPopoverAlignment;\n isStatic: boolean;\n placement: SkyPopoverPlacement;\n popoverTitle?: string;\n popoverType: SkyPopoverType;\n }\n ): void {\n this.#caller = caller;\n this.dismissOnBlur = config.dismissOnBlur;\n this.enableAnimations = config.enableAnimations;\n this.horizontalAlignment = config.horizontalAlignment;\n this.placement = config.placement;\n this.popoverTitle = config.popoverTitle;\n this.popoverType = config.popoverType;\n\n this.#changeDetector.markForCheck();\n\n // Indicates if the popover should be displayed statically.\n // Please note: This feature is internal-only and used by the visual tests to capture multiple\n // states simultaneously without the overhead of event listeners.\n /* istanbul ignore if */\n if (config.isStatic) {\n this.isOpen = true;\n this.#changeDetector.markForCheck();\n return;\n }\n\n // Let the styles render before gauging the affix dimensions.\n setTimeout(() => {\n /* istanbul ignore if */\n if (!this.popoverRef?.nativeElement || this.#ngUnsubscribe.isStopped) {\n return;\n }\n\n if (!this.affixer) {\n this.#setupAffixer();\n }\n\n const affixOptions: SkyAffixConfig = {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: parseAffixHorizontalAlignment(\n this.horizontalAlignment\n ),\n isSticky: true,\n placement: parseAffixPlacement(this.placement as SkyPopoverPlacement),\n };\n\n // Ensure vertical alignment is set according to the popover's placement value.\n if (\n affixOptions.placement === 'left' ||\n affixOptions.placement === 'right'\n ) {\n affixOptions.verticalAlignment = 'middle';\n }\n\n this.affixer!.affixTo(this.#caller?.nativeElement, affixOptions);\n\n this.#updateArrowOffset();\n\n this.isOpen = true;\n this.#changeDetector.markForCheck();\n });\n }\n\n public close(): void {\n this.isOpen = false;\n this.#changeDetector.markForCheck();\n }\n\n public applyFocus(): void {\n if (this.popoverRef && this.isOpen) {\n this.#coreAdapterService.getFocusableChildrenAndApplyFocus(\n this.popoverRef,\n '.sky-popover',\n true\n );\n }\n }\n\n #setupAffixer(): void {\n if (this.popoverRef) {\n const affixer = this.#affixService.createAffixer(this.popoverRef);\n\n affixer.offsetChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateArrowOffset();\n this.#changeDetector.markForCheck();\n });\n\n affixer.overflowScroll\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateArrowOffset();\n this.#changeDetector.markForCheck();\n });\n\n affixer.placementChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change) => {\n this.placement = change.placement;\n this.#changeDetector.markForCheck();\n });\n\n this.affixer = affixer;\n }\n }\n\n #updateArrowOffset(): void {\n if (this.#caller && this.popoverRef && this.arrowRef && this.placement) {\n const { top, left } = this.#adapterService.getArrowCoordinates(\n {\n caller: this.#caller,\n popover: this.popoverRef,\n popoverArrow: this.arrowRef,\n },\n this.placement,\n this.themeName\n );\n\n this.arrowTop = top;\n this.arrowLeft = left;\n }\n }\n\n #isFocusLeavingElement(event: KeyboardEvent): boolean {\n const focusableItems = this.#coreAdapterService.getFocusableChildren(\n this.#elementRef.nativeElement\n );\n\n const isFirstItem = focusableItems[0] === event.target && event.shiftKey;\n\n const isLastItem =\n focusableItems[focusableItems.length - 1] === event.target &&\n !event.shiftKey;\n\n return focusableItems.length === 0 || isFirstItem || isLastItem;\n }\n\n #addEventListeners(): void {\n const hostElement = this.#elementRef.nativeElement;\n\n observableFromEvent(hostElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => this.#_isMouseEnter.next(true));\n\n observableFromEvent(hostElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => this.#_isMouseEnter.next(false));\n\n observableFromEvent<KeyboardEvent>(hostElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.close();\n this.#caller?.nativeElement.focus();\n event.preventDefault();\n event.stopPropagation();\n break;\n\n // Since the popover now lives in an overlay at the bottom of the document body, we need\n // to handle the tab key ourselves. Otherwise, focus would be moved to the browser's\n // search bar.\n case 'tab':\n if (!this.dismissOnBlur) {\n return;\n }\n\n /*istanbul ignore else*/\n if (this.#isFocusLeavingElement(event)) {\n this.close();\n this.#caller?.nativeElement.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n }\n });\n }\n}\n","<div\n class=\"sky-popover-container sky-popover-max-height\"\n [@.disabled]=\"!enableAnimations\"\n [@skyPopoverAnimation]=\"animationState\"\n [class.sky-popover-hidden]=\"!placement\"\n [ngClass]=\"[\n 'sky-popover-alignment-' + horizontalAlignment,\n 'sky-popover-placement-' + placement,\n 'sky-popover-' + popoverType\n ]\"\n (@skyPopoverAnimation.done)=\"onAnimationEvent($event)\"\n (@skyPopoverAnimation.start)=\"onAnimationEvent($event)\"\n #popoverRef\n>\n <div\n class=\"sky-popover\"\n tabindex=\"-1\"\n [skyThemeClass]=\"{\n 'sky-rounded-corners sky-shadow': 'default',\n 'sky-elevation-4': 'modern'\n }\"\n >\n <header\n *ngIf=\"popoverTitle\"\n class=\"sky-popover-header\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg sky-margin-stacked-lg': 'modern'\n }\"\n >\n <h1\n *ngIf=\"popoverTitle\"\n class=\"sky-popover-title\"\n [skyThemeClass]=\"{\n 'sky-font-heading-4': 'default',\n 'sky-font-emphasized': 'modern'\n }\"\n >\n {{ popoverTitle }}\n </h1>\n </header>\n <div\n class=\"sky-popover-body\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg': 'modern'\n }\"\n >\n <ng-container #contentTarget></ng-container>\n </div>\n <span\n aria-hidden=\"true\"\n class=\"sky-popover-arrow\"\n [style.left.px]=\"arrowLeft\"\n [style.top.px]=\"arrowTop\"\n #arrowRef\n ></span>\n </div>\n</div>\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyOverlayInstance,\n SkyOverlayService,\n SkyStackingContext,\n} from '@skyux/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\nimport { SkyPopoverContext } from './popover-context';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverType } from './types/popover-type';\n\n@Component({\n selector: 'sky-popover',\n templateUrl: './popover.component.html',\n})\nexport class SkyPopoverComponent implements OnDestroy {\n /**\n * The horizontal alignment of the popover in relation to the trigger element.\n * The `skyPopoverAlignment` property on the popover directive takes precedence over this property when specified.\n * @default \"center\"\n */\n @Input()\n public set alignment(value: SkyPopoverAlignment | undefined) {\n this.#_alignment = value ?? 'center';\n }\n\n public get alignment(): SkyPopoverAlignment {\n return this.#_alignment;\n }\n\n /**\n * Whether to close the popover when it loses focus.\n * To require users to click a trigger button to close the popover, set this input to false.\n * @default true\n */\n @Input()\n public set dismissOnBlur(value: boolean | undefined) {\n this.#_dismissOnBlur = value ?? true;\n }\n\n public get dismissOnBlur(): boolean {\n return this.#_dismissOnBlur;\n }\n\n /**\n * The placement of the popover in relation to the trigger element.\n * The `skyPopoverPlacement` property on the popover directive takes precedence over this property when specified.\n * @default \"above\"\n */\n @Input()\n public set placement(value: SkyPopoverPlacement | undefined) {\n this.#_placement = value ?? 'above';\n }\n\n public get placement(): SkyPopoverPlacement {\n return this.#_placement;\n }\n\n /**\n * The title for the popover.\n */\n @Input()\n public popoverTitle: string | undefined;\n\n /**\n * The type of popover.\n * @default \"info\"\n */\n @Input()\n public set popoverType(value: SkyPopoverType | undefined) {\n this.#_popoverType = value ?? 'info';\n }\n\n public get popoverType(): SkyPopoverType {\n return this.#_popoverType;\n }\n\n /**\n * Fires when users close the popover.\n */\n @Output()\n public popoverClosed = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Fires when users open the popover.\n */\n @Output()\n public popoverOpened = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Whether the popover is in the process of being opened or closed.\n * @internal\n */\n public isActive = false;\n\n /**\n * Used by unit tests to disable animations since the component is injected at the bottom of the\n * document body.\n * @internal\n */\n public enableAnimations = true;\n\n public isMouseEnter = false;\n\n @ViewChild('templateRef', {\n read: TemplateRef,\n static: true,\n })\n public templateRef: TemplateRef<unknown> | undefined;\n\n #contentRef!: SkyPopoverContentComponent;\n\n #isMarkedForCloseOnMouseLeave = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #overlay: SkyOverlayInstance | undefined;\n\n #_alignment: SkyPopoverAlignment = 'center';\n\n #_dismissOnBlur = true;\n\n #_placement: SkyPopoverPlacement = 'above';\n\n #_popoverType: SkyPopoverType = 'info';\n\n #overlayService: SkyOverlayService;\n\n #zIndex: Observable<number> | undefined;\n\n constructor(\n overlayService: SkyOverlayService,\n @Optional()\n @Inject(SKY_STACKING_CONTEXT)\n stackingContext?: SkyStackingContext\n ) {\n this.#overlayService = overlayService;\n this.#zIndex = stackingContext?.zIndex;\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n }\n }\n\n /**\n * Positions the popover next to a given caller element.\n * @param caller The element that opened the popover.\n * @param placement The placement of the popover.\n * @param alignment The horizontal alignment of the popover.\n * @internal\n */\n public positionNextTo(\n caller: ElementRef,\n placement?: SkyPopoverPlacement,\n alignment?: SkyPopoverAlignment\n ): void {\n if (!this.#overlay) {\n this.#setupOverlay();\n }\n\n this.placement = placement ?? this.placement;\n this.alignment = alignment ?? this.alignment;\n this.isActive = true;\n\n this.#contentRef.open(caller, {\n dismissOnBlur: this.dismissOnBlur,\n enableAnimations: this.enableAnimations,\n horizontalAlignment: this.alignment,\n isStatic: false,\n placement: this.placement,\n popoverTitle: this.popoverTitle,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover.\n * @internal\n */\n public close(): void {\n /*istanbul ignore next*/\n this.#contentRef?.close();\n }\n\n /**\n * Brings focus to the popover element if its open.\n * @internal\n */\n public applyFocus(): void {\n /*istanbul ignore next*/\n this.#contentRef?.applyFocus();\n }\n\n /**\n * Adds a flag to the popover to close when the mouse leaves the popover's bounds.\n * @internal\n */\n public markForCloseOnMouseLeave(): void {\n this.#isMarkedForCloseOnMouseLeave = true;\n }\n\n #setupOverlay(): void {\n if (this.templateRef) {\n const overlay = this.#overlayService.create({\n enableScroll: true,\n enablePointerEvents: true,\n });\n\n if (this.#zIndex) {\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n }\n\n overlay.backdropClick\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.dismissOnBlur) {\n this.close();\n }\n });\n\n const contentRef = overlay.attachComponent(SkyPopoverContentComponent, [\n {\n provide: SkyPopoverContext,\n useValue: new SkyPopoverContext({\n contentTemplateRef: this.templateRef,\n }),\n },\n ]);\n\n contentRef.opened.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n this.popoverOpened.emit(this);\n });\n\n contentRef.closed.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n /*istanbul ignore else*/\n if (this.isActive && this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n this.isActive = false;\n this.popoverClosed.emit(this);\n }\n });\n\n contentRef.isMouseEnter\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((isMouseEnter) => {\n this.isMouseEnter = isMouseEnter;\n if (this.#isMarkedForCloseOnMouseLeave) {\n this.#isMarkedForCloseOnMouseLeave = false;\n this.close();\n }\n });\n\n this.#overlay = overlay;\n this.#contentRef = contentRef;\n }\n }\n}\n","<ng-template #templateRef>\n <ng-content></ng-content>\n</ng-template>\n","/**\n * The type of message to send to the popover component.\n */\nexport enum SkyPopoverMessageType {\n /**\n * Opens the popover.\n */\n Open = 0,\n\n /**\n * Closes the popover.\n */\n Close = 1,\n\n /**\n * Repositions the popover to the appropriate position.\n * This is useful for when the popover's width and height change while it is open.\n */\n Reposition = 2,\n\n /**\n * Brings focus to the popover element.\n */\n Focus = 3,\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { Subject, Subscription, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverComponent } from './popover.component';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverMessage } from './types/popover-message';\nimport { SkyPopoverMessageType } from './types/popover-message-type';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverTrigger } from './types/popover-trigger';\n\n@Directive({\n selector: '[skyPopover]',\n})\nexport class SkyPopoverDirective implements OnInit, OnDestroy {\n /**\n * The popover component to display. Add this directive to the trigger element that opens the popover.\n * @required\n */\n @Input()\n public skyPopover: SkyPopoverComponent | undefined;\n\n /**\n * The horizontal alignment of the popover in relation to the trigger element.\n */\n @Input()\n public skyPopoverAlignment: SkyPopoverAlignment | undefined;\n\n /**\n * The RxJS `Subject` to send commands to the popover that respect the `SkyPopoverMessage` type.\n */\n @Input()\n public set skyPopoverMessageStream(\n value: Subject<SkyPopoverMessage> | undefined\n ) {\n this.#_skyPopoverMessageStream = value ?? new Subject<SkyPopoverMessage>();\n this.#subscribeMessageStream();\n }\n\n public get skyPopoverMessageStream(): Subject<SkyPopoverMessage> {\n return this.#_skyPopoverMessageStream;\n }\n\n #_skyPopoverMessageStream = new Subject<SkyPopoverMessage>();\n\n #messageStreamSub: Subscription | undefined;\n\n /**\n * The placement of the popover in relation to the trigger element.\n */\n @Input()\n public skyPopoverPlacement: SkyPopoverPlacement | undefined;\n\n /**\n * The user action that displays the popover.\n */\n @Input()\n public set skyPopoverTrigger(value: SkyPopoverTrigger | undefined) {\n this.#_trigger = value ?? 'click';\n }\n\n public get skyPopoverTrigger(): SkyPopoverTrigger {\n return this.#_trigger;\n }\n\n #ngUnsubscribe = new Subject<void>();\n\n #_trigger: SkyPopoverTrigger = 'click';\n\n #elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.#elementRef = elementRef;\n this.#subscribeMessageStream();\n }\n\n public ngOnInit(): void {\n this.#addEventListeners();\n }\n\n public ngOnDestroy(): void {\n this.#removeEventListeners();\n this.#unsubscribeMessageStream();\n }\n\n public togglePopover(): void {\n if (this.skyPopover?.isActive) {\n this.#sendMessage(SkyPopoverMessageType.Close);\n return;\n }\n\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n\n #positionPopover(): void {\n this.skyPopover?.positionNextTo(\n this.#elementRef,\n this.skyPopoverPlacement,\n this.skyPopoverAlignment\n );\n }\n\n #closePopover(): void {\n this.skyPopover?.close();\n }\n\n #closePopoverOrMarkForClose(): void {\n if (this.skyPopover?.isMouseEnter) {\n this.skyPopover.markForCloseOnMouseLeave();\n } else {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n }\n\n #addEventListeners(): void {\n const element = this.#elementRef.nativeElement;\n\n observableFromEvent<KeyboardEvent>(element, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n if (!this.skyPopover?.isActive) {\n return;\n }\n\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.#sendMessage(SkyPopoverMessageType.Close);\n event.preventDefault();\n event.stopPropagation();\n break;\n\n case 'tab':\n if (this.skyPopover.dismissOnBlur) {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n break;\n\n case 'arrowdown':\n case 'arrowleft':\n case 'arrowright':\n case 'arrowup':\n case 'down':\n case 'left':\n case 'right':\n case 'up':\n this.#sendMessage(SkyPopoverMessageType.Focus);\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n });\n\n observableFromEvent(element, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.togglePopover();\n }\n });\n\n observableFromEvent(element, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = true;\n if (\n !this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n }\n });\n\n observableFromEvent(element, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = false;\n if (\n this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n // Give the popover a chance to set its isMouseEnter flag before checking to see\n // if it should be closed.\n setTimeout(() => {\n this.#closePopoverOrMarkForClose();\n });\n }\n }\n });\n }\n\n #removeEventListeners(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #handleIncomingMessages(message: SkyPopoverMessage): void {\n switch (message.type) {\n case SkyPopoverMessageType.Open:\n this.#positionPopover();\n break;\n\n case SkyPopoverMessageType.Close:\n /*istanbul ignore else*/\n if (this.skyPopover?.isActive) {\n this.#closePopover();\n }\n break;\n\n case SkyPopoverMessageType.Reposition:\n // Only reposition the popover if it is already open.\n if (this.skyPopover?.isActive) {\n this.#positionPopover();\n }\n break;\n\n case SkyPopoverMessageType.Focus:\n this.skyPopover?.applyFocus();\n break;\n }\n }\n\n #sendMessage(messageType: SkyPopoverMessageType): void {\n this.skyPopoverMessageStream.next({ type: messageType });\n }\n\n #subscribeMessageStream(): void {\n this.#unsubscribeMessageStream();\n\n this.#messageStreamSub = this.skyPopoverMessageStream.subscribe(\n (message) => {\n this.#handleIncomingMessages(message);\n }\n );\n }\n\n #unsubscribeMessageStream(): void {\n if (this.#messageStreamSub) {\n this.#messageStreamSub.unsubscribe();\n this.#messageStreamSub = undefined;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyAffixModule, SkyOverlayModule } from '@skyux/core';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\nimport { SkyPopoverComponent } from './popover.component';\nimport { SkyPopoverDirective } from './popover.directive';\n\n@NgModule({\n declarations: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyIconModule,\n SkyOverlayModule,\n SkyPopoversResourcesModule,\n SkyThemeModule,\n ],\n exports: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n})\nexport class SkyPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["parseAffixHorizontalAlignment","observableFromEvent","i3","i4","i1.SkyDropdownComponent","i1","i2.SkyPopoverAdapterService","i3.SkyPopoverContext","i5"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;AAGG;AACS,IAAA,uBAyCX;AAzCD,CAAA,UAAY,sBAAsB,EAAA;AAChC;;AAEG;IACH,sBAAA,CAAA,sBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AAER;;AAEG;IACH,sBAAA,CAAA,sBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AAET;;AAEG;IACH,sBAAA,CAAA,sBAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAsB,CAAA;AAEtB;;AAEG;IACH,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;AAEjB;;AAEG;IACH,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB,CAAA;AAErB;;;AAGG;IACH,sBAAA,CAAA,sBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AAEd;;AAEG;IACH,sBAAA,CAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB,CAAA;AAElB;;AAEG;IACH,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;AACnB,CAAC,EAzCW,sBAAsB,KAAtB,sBAAsB,GAyCjC,EAAA,CAAA,CAAA;;AC7CD;;;;;AAKG;AAWH,MAAM,SAAS,GAA0C;AACvD,IAAA,OAAO,EAAE;AACP,QAAA,yCAAyC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;AACvE,KAAA;CACF,CAAC;MAEW,4BAA4B,CAAA;IAChC,SAAS,CACd,UAA4B,EAC5B,IAAY,EAAA;QAEZ,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAClE;AACF,CAAA;AAED;;AAEG;MAWU,0BAA0B,CAAA;;uHAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,YAT3B,aAAa,CAAA,EAAA,CAAA,CAAA;AASZ,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAR1B,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,2BAA2B;AACpC,YAAA,QAAQ,EAAE,4BAA4B;AACtC,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,OAAA,EAAA,CAPS,aAAa,CAAA,EAAA,CAAA,CAAA;2FASZ,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;AACxB,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,QAAQ,EAAE,4BAA4B;AACtC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;iBACF,CAAA;;;ACzCD;;AAEG;MAKU,0BAA0B,CAAA;;uHAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,2DCTvC,6BACA,EAAA,CAAA,CAAA;2FDQa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;;AEKjC;;AAEG;MAQU,wBAAwB,CAAA;AACnC;;;;;;;AAOG;IACH,IACW,QAAQ,CAAC,KAAyB,EAAA;AAC3C,QAAA,sBAAA,CAAA,IAAI,EAAc,mCAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,UAAU,MAAA,CAAC;KACvC;AAED,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAW,CAAC;KACxB;AASD,IAAA,WAAA,CACS,UAAsB,EAC7B,cAAiC,EACjC,QAAmB,EAAA;AAFZ,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;AARxB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAExB,QAAA,mCAAA,CAAA,GAAA,CAAA,IAAA,EAAa,UAAU,CAAC,CAAA;QAExB,wCAAmC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACnC,kCAAqB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAOnB,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAmB,cAAc,EAAA,GAAA,CAAA,CAAC;QACtC,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAa,QAAQ,EAAA,GAAA,CAAA,CAAC;KAC3B;IAEM,eAAe,GAAA;;AAEpB,QAAA,MAAM,aAAa,GAAG,sBAAA,CAAA,IAAI,uFAAkB,CAAtB,IAAA,CAAA,IAAI,CAAoB,CAAC;;AAE/C,QAAA,IAAI,aAAa,EAAE;AACjB,YAAA,sBAAA,CAAA,IAAI,EAAU,kCAAA,EAAA,GAAA,CAAA,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;AAC7D,SAAA;QAED,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAgB,CAAC,aAAa,EAAE,CAAC;KACtC;AAEM,IAAA,YAAY,CAAC,iBAA0B,EAAA;;AAC5C,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAErB,QAAA,IAAI,iBAAiB,EAAE;AACrB,YAAA,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,uFAAkB,CAAtB,IAAA,CAAA,IAAI,CAAoB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;AACnC,SAAA;QAED,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAgB,CAAC,aAAa,EAAE,CAAC;KACtC;IAEM,WAAW,GAAA;;QAChB,MAAM,WAAW,GACf,CAAA,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,uFAAkB,CAAtB,IAAA,CAAA,IAAI,CAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,UAAU,CAAC,MAAK,IAAI,CAAC;AAC9D,QAAA,OAAO,WAAW,CAAC;KACpB;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;KACrC;;;IAGC,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACjE,CAAC,CAAA;qHApEU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,2FCrBrC,8KASA,EAAA,MAAA,EAAA,CAAA,45DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDYa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,mBAGZ,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,8KAAA,EAAA,MAAA,EAAA,CAAA,45DAAA,CAAA,EAAA,CAAA;yJAY1B,QAAQ,EAAA,CAAA;sBADlB,KAAK;;;AE1BF,SAAUA,+BAA6B,CAC3C,SAAyC,EAAA;AAEzC,IAAA,QAAQ,SAAS;AACf,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,QAAQ,CAAC;AAClB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,MAAM,CAAC;AAChB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,OAAO,CAAC;;AAEjB,QAAA;YACE,MAAM,CAAA,gEAAA,EAAmE,SAAS,CAAA,EAAA,CAAI,CAAC;AAC1F,KAAA;AACH;;;ACeA,MAAM,oBAAoB,GAAG,SAAS,CAAC;AACvC,MAAM,mBAAmB,GAA0B,QAAQ,CAAC;AAC5D,MAAM,4BAA4B,GAAgC,MAAM,CAAC;AACzE,MAAM,oBAAoB,GAA2B,OAAO,CAAC;AAE7D;;AAEG;MAOU,oBAAoB,CAAA;AANjC,IAAA,WAAA,GAAA;;;AAsCE;;;AAGG;AAEI,QAAA,IAAQ,CAAA,QAAA,GAAwB,KAAK,CAAC;AAsC7C;;;;AAIG;AAEI,QAAA,IAAA,CAAA,aAAa,GAClB,IAAI,OAAO,EAAsB,CAAC;AA+C7B,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAErB,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAyBzB,6BAAiC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACjC,6BAAyC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACzC,mCAAiB,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAQ,CAAC,CAAA;QACrC,qCAAqC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAErC,kCAAA,CAAA,GAAA,CAAA,IAAA,EAAgB,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;QACxC,oCAAA,CAAA,GAAA,CAAA,IAAA,EAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAC5C,oCAAA,CAAA,GAAA,CAAA,IAAA,EAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAC5C,QAAA,8BAAY,CAAA,GAAA,CAAA,IAAA,EAAA,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACxD,QAAA,4BAAA,CAAA,GAAA,CAAA,IAAA,EAAU,CAAA,EAAA,GAAA,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC,CAAA;AAEnE,QAAA,kCAAA,CAAA,GAAA,CAAA,IAAA,EAAgB,oBAAoB,CAAC,CAAA;AACrC,QAAA,iCAAA,CAAA,GAAA,CAAA,IAAA,EAAe,mBAAmB,CAAC,CAAA;AACnC,QAAA,oCAAA,CAAA,GAAA,CAAA,IAAA,EAAkB,IAAI,CAAC,CAAA;AACvB,QAAA,0CAAA,CAAA,GAAA,CAAA,IAAA,EAAwB,4BAA4B,CAAC,CAAA;AACrD,QAAA,6BAAA,CAAA,GAAA,CAAA,IAAA,EAAW,KAAK,CAAC,CAAA;AACjB,QAAA,8BAAA,CAAA,GAAA,CAAA,IAAA,EAAY,oBAAoB,CAAC,CAAA;QACjC,oCAAwC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;KA4OzC;AAxZC;;;;;AAKG;IACH,IACW,WAAW,CAAC,KAAyB,EAAA;AAC9C,QAAA,sBAAA,CAAA,IAAI,EAAiB,kCAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,oBAAoB,MAAA,CAAC;KACpD;AAED,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAc,CAAC;KAC3B;AAED;;;;;;AAMG;IACH,IACW,UAAU,CAAC,KAAwC,EAAA;AAC5D,QAAA,sBAAA,CAAA,IAAI,EAAgB,iCAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,mBAAmB,MAAA,CAAC;KAClD;AAED,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAAA,GAAA,CAAa,CAAC;KAC1B;AASD;;;AAGG;IACH,IACW,aAAa,CAAC,KAA0B,EAAA;AACjD,QAAA,sBAAA,CAAA,IAAI,EAAmB,oCAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,IAAI,MAAA,CAAC;KACtC;AAED,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAgB,CAAC;KAC7B;AAUD;;;AAGG;IACH,IACW,mBAAmB,CAC5B,KAAiD,EAAA;AAEjD,QAAA,sBAAA,CAAA,IAAI,EAAyB,0CAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,4BAA4B,MAAA,CAAC;KACpE;AAED,IAAA,IAAW,mBAAmB,GAAA;QAC5B,OAAO,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAsB,CAAC;KACnC;AAiBD;;;;;;;;;AASG;IACH,IACW,OAAO,CAAC,KAAyC,EAAA;AAC1D,QAAA,sBAAA,CAAA,IAAI,EAAa,8BAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,oBAAoB,MAAA,CAAC;KAChD;AAED,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,CAAU,CAAC;KACvB;IAED,IAAW,MAAM,CAAC,KAAc,EAAA;QAC9B,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAY,KAAK,EAAA,GAAA,CAAA,CAAC;QACtB,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;KACrC;AAED,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAS,CAAC;KACtB;IAED,IAGW,uBAAuB,CAAC,KAA6B,EAAA;AAC9D,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,EAAA,oCAAA,CAAgB,CAApB,IAAA,CAAA,IAAI,CAAkB,CAAC;AACvB,YAAA,sBAAA,CAAA,IAAI,EAAe,+BAAA,EAAA,GAAA,EAAA,mCAAA,CAAA,CAAA,IAAA,CAAnB,IAAI,EAAgB,KAAK,CAAC,CAAC;YAC3B,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;AACrC,SAAA;KACF;IAgBD,IAIW,aAAa,CAAC,KAA6B,EAAA;QACpD,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAmB,KAAK,EAAA,GAAA,CAAA,CAAC;AAC7B,QAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,EAAA,uCAAA,CAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,CAAC;KAC3B;AAED,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAgB,CAAC;KAC7B;IAqBM,QAAQ,GAAA;;QACb,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CACd,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,CAAA,CACpC,SAAS,CAAC,CAAC,OAA2B,KAAI;AACzC,YAAA,sBAAA,CAAA,IAAI,EAAwB,+BAAA,EAAA,GAAA,EAAA,4CAAA,CAAA,CAAA,IAAA,CAA5B,IAAI,EAAyB,OAAO,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;;AAGL,QAAA,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAU,8BAAA,EAAA,GAAA,CAAA,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,CAC3B,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,CACnC,CAAA,SAAS,CAAC,MAAK;YACd,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;KACN;IAEM,WAAW,GAAA;AAChB,QAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,EAAA,oCAAA,CAAgB,CAApB,IAAA,CAAA,IAAI,CAAkB,CAAC;AACvB,QAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,EAAA,oCAAA,CAAgB,CAApB,IAAA,CAAA,IAAI,CAAkB,CAAC;QACvB,YAAY,CAAC,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAiB,CAAC,CAAC;QAEpC,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,IAAI,EAAE,CAAC;QAC3B,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,QAAQ,EAAE,CAAC;KAChC;;;;IAGC,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,IAAI,EAAE,CAAC;IAC3B,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,QAAQ,EAAE,CAAC;IAC/B,sBAAA,CAAA,IAAI,EAAkB,mCAAA,EAAA,IAAI,OAAO,EAAQ,MAAA,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAC;AACxD,IAAA,IAAI,aAAa,EAAE;AACjB,QAAAC,SAAmB,CAAC,aAAa,EAAE,OAAO,CAAC;AACxC,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;aACpC,SAAS,CAAC,MAAK;YACd,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACjD,aAAA;AAAM,iBAAA;AACL,gBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,IAAI,CAAC,CAAC;;gBAE/C,UAAU,CAAC,MAAK;AACd,oBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,cAAc,CAAC,CAAC;AAC3D,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;AAEL,QAAAA,SAAmB,CAAgB,aAAa,EAAE,SAAS,CAAC;AACzD,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAEpC,YAAA,QAAQ,GAAG;AACT,gBAAA,KAAK,QAAQ;;oBAEX,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,wBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAChD,wBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;wBAC7D,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,qBAAA;oBACD,MAAM;AAER,gBAAA,KAAK,KAAK;AACR,oBAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE;AACrC,wBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACjD,qBAAA;oBACD,MAAM;AAER,gBAAA,KAAK,SAAS,CAAC;AACf,gBAAA,KAAK,IAAI;AACP,oBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,wBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAC/C,wBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,aAAa,CAAC,CAAC;wBACxD,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,qBAAA;oBACD,MAAM;AAER,gBAAA,KAAK,OAAO,CAAC;AACb,gBAAA,KAAK,WAAW,CAAC;AACjB,gBAAA,KAAK,MAAM,CAAC;gBACZ,KAAK,GAAG;;AAEN,oBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChB,wBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAC/C,wBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,cAAc,CAAC,CAAC;wBACzD,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,qBAAA;oBACD,MAAM;AACT,aAAA;AACH,SAAC,CAAC,CAAC;AAEL,QAAAA,SAAmB,CAAC,aAAa,EAAE,YAAY,CAAC;AAC7C,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;aACpC,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAC5B,gBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAChD,aAAA;AACH,SAAC,CAAC,CAAC;AAEL,QAAAA,SAAmB,CAAC,aAAa,EAAE,YAAY,CAAC;AAC7C,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;aACpC,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;;;gBAG5B,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,wBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACjD,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;AACN,KAAA;AACH,CAAC,EAAA,mCAAA,GAAA,SAAA,mCAAA,GAAA;IAGC,IAAI,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAS,EAAE;QACjB,OAAO;AACR,KAAA;IAED,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,QAAA,MAAM,OAAO,GAAG,sBAAA,CAAA,IAAI,EAAgB,oCAAA,EAAA,GAAA,CAAA,CAAC,MAAM,CAAC;AAC1C,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,mBAAmB,EAAE,IAAI;AAC1B,SAAA,CAAC,CAAC;QAEH,IAAI,sBAAA,CAAA,IAAI,EAAA,4BAAA,EAAA,GAAA,CAAQ,EAAE;AAChB,YAAA,sBAAA,CAAA,IAAI,EAAQ,4BAAA,EAAA,GAAA,CAAA;AACT,iBAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,iBAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,gBAAA,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7D,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEtD,QAAA,OAAO,CAAC,aAAa;AAClB,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;aACpC,SAAS,CAAC,MAAK;YACd,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,gBAAA,sBAAA,CAAA,IAAI,0EAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACjD,aAAA;AACH,SAAC,CAAC,CAAC;QAEL,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAY,OAAO,EAAA,GAAA,CAAA,CAAC;AACzB,KAAA;AACH,CAAC,EAAA,oCAAA,GAAA,SAAA,oCAAA,GAAA;;IAIC,IAAI,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAS,EAAE;QACjB,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAS,CAAC,OAAO,EAAE,CAAC;QACxB,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAY,SAAS,EAAA,GAAA,CAAA,CAAC;AAC3B,KAAA;AACH,CAAC,EAAA,oCAAA,GAAA,SAAA,oCAAA,GAAA;;IAIC,IAAI,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAS,EAAE;AACjB,QAAA,sBAAA,CAAA,IAAI,4CAAgB,CAAC,KAAK,CAAC,sBAAA,CAAA,IAAI,EAAS,6BAAA,EAAA,GAAA,CAAA,CAAC,CAAC;QAC1C,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAY,SAAS,EAAA,GAAA,CAAA,CAAC;AAC3B,KAAA;AACH,CAAC,qFAEc,uBAAmC,EAAA;AAChD,IAAA,MAAM,OAAO,GAAG,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAc,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;AAE1E,IAAA,OAAO,CAAC,eAAe;AACpB,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,SAAA,SAAS,CAAC,CAAC,MAAM,KAAI;QACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC;QAC3C,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;AACtC,KAAC,CAAC,CAAC;IAEL,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAY,OAAO,EAAA,GAAA,CAAA,CAAC;AAC1B,CAAC,uGAEuB,OAA2B,EAAA;;AACjD,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QAClB,QAAQ,OAAO,CAAC,IAAI;YAClB,KAAK,sBAAsB,CAAC,IAAI;AAC9B,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,gBAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,EAAA,0CAAA,CAAsB,CAA1B,IAAA,CAAA,IAAI,CAAwB,CAAC;gBAC7B,MAAM;YAER,KAAK,sBAAsB,CAAC,KAAK;AAC/B,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,gBAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,EAAA,oCAAA,CAAgB,CAApB,IAAA,CAAA,IAAI,CAAkB,CAAC;gBACvB,MAAM;YAER,KAAK,sBAAsB,CAAC,UAAU;;;AAGpC,gBAAA,IAAI,IAAI,CAAC,MAAM,IAAI,sBAAA,CAAA,IAAI,qCAAS,EAAE;oBAChC,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAS,CAAC,OAAO,EAAE,CAAC;AACzB,iBAAA;gBACD,MAAM;YAER,KAAK,sBAAsB,CAAC,kBAAkB;gBAC5C,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC1C,MAAM;AACT,SAAA;AACF,KAAA;AACH,CAAC,iFAEY,IAA4B,EAAA;;IACvC,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC,EAAA,0CAAA,GAAA,SAAA,0CAAA,GAAA;AAGC,IAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,IAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,EAAA,mCAAA,CAAe,CAAnB,IAAA,CAAA,IAAI,CAAiB,CAAC;IACtB,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;;;IAIpC,sBAAA,CAAA,IAAI,EAAoB,qCAAA,EAAA,MAAM,CAAC,UAAU,CAAC,MAAK;;QAC7C,IAAI,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAS,EAAE;AACjB,YAAA,sBAAA,CAAA,IAAI,EAAS,6BAAA,EAAA,GAAA,CAAA,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,EAAE;gBACvD,cAAc,EAAE,sBAAsB,CAAC,QAAQ;AAC/C,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,mBAAmB,EAAED,+BAA6B,CAChD,IAAI,CAAC,mBAAmB,CACzB;AACD,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,SAAS,EAAE,OAAO;AACnB,aAAA,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;AACrC,SAAA;AACH,KAAC,CAAC,MAAA,CAAC;AACL,CAAC,CAAA;iHAxZU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,2ZAuHvB,UAAU,EAAA,EAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAmBV,WAAW,EAMX,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,2CC/LpB,g5DA+DA,EAAA,MAAA,EAAA,CAAA,+8MAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDhBa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,g5DAAA,EAAA,MAAA,EAAA,CAAA,+8MAAA,CAAA,EAAA,CAAA;8BAUpC,WAAW,EAAA,CAAA;sBADrB,KAAK;gBAiBK,UAAU,EAAA,CAAA;sBADpB,KAAK;gBAcC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAQK,aAAa,EAAA,CAAA;sBADvB,KAAK;gBAeC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAQK,mBAAmB,EAAA,CAAA;sBAD7B,KAAK;gBAiBC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAQC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAcK,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAqBK,uBAAuB,EAAA,CAAA;sBAHjC,SAAS;gBAAC,IAAA,EAAA,CAAA,yBAAyB,EAAE;AACpC,wBAAA,IAAI,EAAE,UAAU;qBACjB,CAAA;gBAqBM,wBAAwB,EAAA,CAAA;sBAJ9B,SAAS;gBAAC,IAAA,EAAA,CAAA,0BAA0B,EAAE;AACrC,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;qBACb,CAAA;gBAOU,aAAa,EAAA,CAAA;sBAJvB,SAAS;gBAAC,IAAA,EAAA,CAAA,eAAe,EAAE;AAC1B,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,IAAI;qBACb,CAAA;;;;AExKH,IAAI,MAAM,GAAG,CAAC,CAAC;AACf;;;AAGG;MAQU,wBAAwB,CAAA;AAUnC;;;;;;;;AAQG;IACH,IACW,QAAQ,CAAC,KAAyB,EAAA;AAC3C,QAAA,sBAAA,CAAA,IAAI,EAAc,mCAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,MAAM,MAAA,CAAC;KACnC;AAED,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAW,CAAC;KACxB;AAED;;;;;;;AAOG;IACH,IACW,cAAc,CAAC,KAA0B,EAAA;AAClD,QAAA,sBAAA,CAAA,IAAI,EAAoB,yCAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,IAAI,MAAA,CAAC;KACvC;AAED,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,sBAAA,CAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAiB,CAAC;KAC9B;IAaD,IAAW,SAAS,CAAC,KAAa,EAAA;QAChC,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAClC,KAAK,GAAG,CAAC,CAAC;AACX,SAAA;QAED,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAe,KAAK,EAAA,GAAA,CAAA,CAAC;KAC1B;AAED,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAY,CAAC;KACzB;AAiBD,IAAA,WAAA,CACE,cAAiC,EACjC,UAAsB,EACV,iBAAwC,EAAA;;AA7CtD;;;;;AAKG;AAEI,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAyB,CAAC;AAExD,QAAA,IAAA,CAAA,cAAc,GAAG,qBAAqB,EAAE,MAAM,EAAE,CAAC;QAqBxD,uCAAiB,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAQ,CAAC,CAAA;AAErC,QAAA,mCAAA,CAAA,GAAA,CAAA,IAAA,EAAa,MAAM,CAAC,CAAA;AAEpB,QAAA,oCAAA,CAAA,GAAA,CAAA,IAAA,EAAc,CAAC,CAAC,CAAA;AAEhB,QAAA,yCAAA,CAAA,GAAA,CAAA,IAAA,EAAmB,IAAI,CAAC,CAAA;QAExB,wCAAmC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACnC,oCAAwB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACxB,2CAAqD,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAOnD,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAmB,cAAc,EAAA,GAAA,CAAA,CAAC;QACtC,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAe,UAAU,EAAA,GAAA,CAAA,CAAC;QAC9B,sBAAA,CAAA,IAAI,EAAA,2CAAA,EAAsB,iBAAiB,EAAA,GAAA,CAAA,CAAC;KAC7C;IAEM,kBAAkB,GAAA;;;QAEvB,IAAI,sBAAA,CAAA,IAAI,EAAA,2CAAA,EAAA,GAAA,CAAmB,EAAE;AAC3B,YAAA,sBAAA,CAAA,IAAI,mDAAmB,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;AACrD,YAAA,sBAAA,CAAA,IAAI,mDAAmB,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AAErD,YAAA,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAmB,2CAAA,EAAA,GAAA,CAAA,CAAC,aAAa,MACjC,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAe,CAAC,CAAA,CACpC,SAAS,CAAC,CAAC,OAA2B,KAAI;gBACzC,QAAQ,OAAO,CAAC,IAAI;oBAClB,KAAK,sBAAsB,CAAC,IAAI,CAAC;oBACjC,KAAK,sBAAsB,CAAC,KAAK;wBAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;wBACb,MAAM;oBAER,KAAK,sBAAsB,CAAC,cAAc;wBACxC,IAAI,CAAC,cAAc,EAAE,CAAC;wBACtB,MAAM;oBAER,KAAK,sBAAsB,CAAC,aAAa;wBACvC,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,MAAM;oBAER,KAAK,sBAAsB,CAAC,iBAAiB;wBAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACzB,MAAM;oBAER,KAAK,sBAAsB,CAAC,aAAa;wBACvC,IAAI,CAAC,aAAa,EAAE,CAAC;wBACrB,MAAM;AACT,iBAAA;AACH,aAAC,CAAC,CAAC;AAEL,YAAA,IAAI,CAAC,WAAW;AACb,iBAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,iBAAA,SAAS,CAAC,CAAC,MAA6B,KAAI;;gBAE3C,IAAI,MAAM,CAAC,YAAY,EAAE;AACvB,oBAAA,sBAAA,CAAA,IAAI,kFAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAChD,oBAAA,sBAAA,CAAA,IAAI,kFAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;AAC9D,iBAAA;gBAED,IAAI,MAAM,CAAC,KAAK,EAAE;;AAEhB,oBAAA,sBAAA,CAAA,IAAI,kFAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,UAAU,CAAC,CAAC;AACtD,iBAAA;AACH,aAAC,CAAC,CAAC;AACN,SAAA;;QAGD,IAAI,CAAC,SAAS,CAAC,OAAO;AACnB,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,KAA0C,KAAI;YACxD,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,gBAAA,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;AACvB,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEL,QAAA,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,EAAA,2CAAA,CAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,CAAC;KAC3B;IAEM,WAAW,GAAA;QAChB,sBAAA,CAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAe,CAAC,IAAI,EAAE,CAAC;QAC3B,sBAAA,CAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAe,CAAC,QAAQ,EAAE,CAAC;KAChC;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,wFAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,EAAE;YAC9B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAEnB,MAAM,SAAS,GAAG,sBAAA,CAAA,IAAI,EAAgB,mCAAA,EAAA,GAAA,EAAA,wCAAA,CAAA,CAAA,IAAA,CAApB,IAAI,EAAiB,IAAI,CAAC,SAAS,CAAC,CAAC;AACvD,QAAA,IAAI,SAAS,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE;AACxC,YAAA,sBAAA,CAAA,IAAI,EAAW,mCAAA,EAAA,GAAA,EAAA,mCAAA,CAAA,CAAA,IAAA,CAAf,IAAI,EAAY,SAAS,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;KACF;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,wFAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,EAAE;YAC9B,OAAO;AACR,SAAA;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,sBAAA,CAAA,IAAI,EAAgB,mCAAA,EAAA,GAAA,EAAA,wCAAA,CAAA,CAAA,IAAA,CAApB,IAAI,EAAiB,IAAI,CAAC,SAAS,CAAC,CAAC;AACtD,QAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE;AACtC,YAAA,sBAAA,CAAA,IAAI,EAAW,mCAAA,EAAA,GAAA,EAAA,mCAAA,CAAA,CAAA,IAAA,CAAf,IAAI,EAAY,QAAQ,CAAC,CAAC;AAC3B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;KACF;IAEM,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,wFAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,EAAE;YAC9B,OAAO;AACR,SAAA;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,YAAY,GAAG,sBAAA,CAAA,IAAI,EAAgB,mCAAA,EAAA,GAAA,EAAA,wCAAA,CAAA,CAAA,IAAA,CAApB,IAAI,EAAiB,IAAI,CAAC,SAAS,CAAC,CAAC;AAC1D,QAAA,IAAI,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE;AAC9C,YAAA,sBAAA,CAAA,IAAI,EAAW,mCAAA,EAAA,GAAA,EAAA,mCAAA,CAAA,CAAA,IAAA,CAAf,IAAI,EAAY,YAAY,CAAC,CAAC;AAC/B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC1B,SAAA;KACF;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,sBAAA,CAAA,IAAI,wFAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,EAAE;YAC9B,OAAO;AACR,SAAA;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,QAAQ,GAAG,sBAAA,CAAA,IAAI,EAAgB,mCAAA,EAAA,GAAA,EAAA,wCAAA,CAAA,CAAA,IAAA,CAApB,IAAI,EAAiB,IAAI,CAAC,SAAS,CAAC,CAAC;AACtD,QAAA,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE;AACtC,YAAA,sBAAA,CAAA,IAAI,EAAW,mCAAA,EAAA,GAAA,EAAA,mCAAA,CAAA,CAAA,IAAA,CAAf,IAAI,EAAY,QAAQ,CAAC,CAAC;AAC3B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;KACF;IAEM,KAAK,GAAA;QACV,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAe,CAAC,CAAC,MAAA,CAAC;AACtB,QAAA,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,EAAA,+CAAA,CAAuB,CAA3B,IAAA,CAAA,IAAI,CAAyB,CAAC;QAC9B,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;KACrC;;;IAGC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAA8B,KAAI;QACxD,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,KAAC,CAAC,CAAC;AACL,CAAC,qFAEU,IAA8B,EAAA;AACvC,IAAA,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,EAAA,+CAAA,CAAuB,CAA3B,IAAA,CAAA,IAAI,CAAyB,CAAC;AAC9B,IAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACvC,IAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACpB,WAAW,EAAE,IAAI,CAAC,SAAS;AAC5B,KAAA,CAAC,CAAC;AACL,CAAC,+FAEe,KAAa,EAAA;AAC3B,IAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AACpD,CAAC,iHAEwB,MAAmB,EAAA;AAC1C,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CACtC,CAAC,IAA8B,EAAE,CAAS,KAAI;AAC5C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE7D,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,WAAW,EAAE,IAAI,CAAC,SAAS;AAC5B,aAAA,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;AACf,KAAC,CACF,CAAC;;AAGF,IAAA,IAAI,YAAY,EAAE;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,YAAY;AACb,SAAA,CAAC,CAAC;AACJ,KAAA;AACH,CAAC,yFAEY,IAA4B,EAAA;;AACvC,IAAA,CAAA,EAAA,GAAA,MAAA,sBAAA,CAAA,IAAI,EAAmB,2CAAA,EAAA,GAAA,CAAA,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,0CAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC,EAAA,2CAAA,GAAA,SAAA,2CAAA,GAAA;AAGC,IAAA,MAAM,mBAAmB,GAAG,sBAAA,CAAA,IAAI,EAAY,oCAAA,EAAA,GAAA,CAAA,CAAC,aAAa,CAAC;AAE3D,IAAAF,SAAmB,CAAa,mBAAmB,EAAE,OAAO,CAAC;AAC1D,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,SAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,QAAA,sBAAA,CAAA,IAAI,8FAAyB,CAA7B,IAAA,CAAA,IAAI,EAA0B,KAAK,CAAC,MAAqB,CAAC,CAAC;AAC7D,KAAC,CAAC,CAAC;AAEL,IAAAA,SAAmB,CAAgB,mBAAmB,EAAE,SAAS,CAAC;AAC/D,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,SAAA,SAAS,CAAC,CAAC,KAAK,KAAI;;QACnB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAEpC,QAAA,QAAQ,GAAG;AACT,YAAA,KAAK,QAAQ;AACX,gBAAA,sBAAA,CAAA,IAAI,kFAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAChD,gBAAA,sBAAA,CAAA,IAAI,kFAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;gBAC7D,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;AAER,YAAA,KAAK,WAAW,CAAC;AACjB,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;AAER,YAAA,KAAK,SAAS,CAAC;AACf,YAAA,KAAK,IAAI;gBACP,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;AAER,YAAA,KAAK,KAAK;gBACR,IAAI,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAmB,2CAAA,EAAA,GAAA,CAAA,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,EAAE;AAC1C,oBAAA,sBAAA,CAAA,IAAI,kFAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACjD,iBAAA;AACD,gBAAA,sBAAA,CAAA,IAAI,kFAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;gBAC7D,MAAM;AACT,SAAA;AACH,KAAC,CAAC,CAAC;AAEL,IAAAA,SAAmB,CAAC,mBAAmB,EAAE,YAAY,CAAC;AACnD,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;SACpC,SAAS,CAAC,MAAK;;QAEd,IAAI,sBAAA,CAAA,IAAI,EAAA,2CAAA,EAAA,GAAA,CAAmB,EAAE;YAC3B,sBAAA,CAAA,IAAI,EAAmB,2CAAA,EAAA,GAAA,CAAA,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7C,SAAA;AACH,KAAC,CAAC,CAAC;AAEL,IAAAA,SAAmB,CAAC,mBAAmB,EAAE,YAAY,CAAC;AACnD,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,uCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;SACpC,SAAS,CAAC,MAAK;;QAEd,IAAI,sBAAA,CAAA,IAAI,EAAA,2CAAA,EAAA,GAAA,CAAmB,EAAE;YAC3B,sBAAA,CAAA,IAAI,EAAmB,2CAAA,EAAA,GAAA,CAAA,CAAC,YAAY,GAAG,KAAK,CAAC;;;YAG7C,UAAU,CAAC,MAAK;AACd,gBAAA,IACE,sBAAA,CAAA,IAAI,EAAmB,2CAAA,EAAA,GAAA,CAAA;oBACvB,sBAAA,CAAA,IAAI,EAAA,2CAAA,EAAA,GAAA,CAAmB,CAAC,OAAO,KAAK,OAAO;oBAC3C,sBAAA,CAAA,IAAI,EAAmB,2CAAA,EAAA,GAAA,CAAA,CAAC,YAAY,KAAK,KAAK,EAC9C;AACA,oBAAA,sBAAA,CAAA,IAAI,kFAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACjD,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AACH,KAAC,CAAC,CAAC;AACP,CAAC,EAAA,2CAAA,GAAA,SAAA,2CAAA,GAAA;AAGC,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC,CAAA;qHAhWU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAwElB,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7G3C,+MAQA,EAAA,MAAA,EAAA,CAAA,mYAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FD6Ba,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,mBAGZ,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+MAAA,EAAA,MAAA,EAAA,CAAA,mYAAA,CAAA,EAAA,CAAA;;;8BA4FlC,QAAQ;;yBAlFJ,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAaK,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAkBK,cAAc,EAAA,CAAA;sBADxB,KAAK;gBAgBC,WAAW,EAAA,CAAA;sBADjB,MAAM;gBAsBA,SAAS,EAAA,CAAA;sBADf,eAAe;gBAAC,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;;;ME1ErD,iBAAiB,CAAA;;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBApB1B,0BAA0B;QAC1B,oBAAoB;QACpB,wBAAwB;AACxB,QAAA,wBAAwB,aAGxB,YAAY;QACZ,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,0BAA0B;AAC1B,QAAA,cAAc,aAGd,0BAA0B;QAC1B,oBAAoB;QACpB,wBAAwB;QACxB,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAGf,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAd1B,YAAY;QACZ,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,0BAA0B;QAC1B,cAAc,CAAA,EAAA,CAAA,CAAA;2FASL,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAtB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,0BAA0B;wBAC1B,oBAAoB;wBACpB,wBAAwB;wBACxB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,gBAAgB;wBAChB,0BAA0B;wBAC1B,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,0BAA0B;wBAC1B,oBAAoB;wBACpB,wBAAwB;wBACxB,wBAAwB;AACzB,qBAAA;iBACF,CAAA;;;AC5BD;;AAEG;MAEU,wBAAwB,CAAA;AAC5B,IAAA,mBAAmB,CACxB,QAAmC,EACnC,SAA8B,EAC9B,SAAkB,EAAA;QAElB,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACzE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAC3E,MAAM,SAAS,GACb,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;QAE9D,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,QAAA,IAAI,GAAW,CAAC;AAChB,QAAA,IAAI,IAAY,CAAC;AAEjB,QAAA,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE;YAClD,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC;;AAGhD,YAAA,IAAI,IAAI,GAAG,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE;AAC5C,gBAAA,IAAI,GAAG,WAAW,CAAC,IAAI,GAAG,cAAc,CAAC;AAC1C,aAAA;AAAM,iBAAA,IAAI,IAAI,GAAG,cAAc,GAAG,WAAW,CAAC,KAAK,EAAE;AACpD,gBAAA,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,cAAc,CAAC;AAC3C,aAAA;YAED,IAAI,SAAS,KAAK,OAAO,EAAE;gBACzB,IAAI,SAAS,KAAK,QAAQ,EAAE;oBAC1B,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;AACzC,iBAAA;AAAM,qBAAA;oBACL,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7C,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,SAAS,KAAK,QAAQ,EAAE;AAC1B,oBAAA,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;AACzB,iBAAA;AAAM,qBAAA;AACL,oBAAA,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AAC7B,iBAAA;AACF,aAAA;AACF,SAAA;AAAM,aAAA;YACL,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC;;AAG/C,YAAA,IAAI,GAAG,GAAG,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;AAC1C,gBAAA,GAAG,GAAG,WAAW,CAAC,GAAG,GAAG,cAAc,CAAC;AACxC,aAAA;AAAM,iBAAA,IAAI,GAAG,GAAG,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE;AACpD,gBAAA,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC;AAC3C,aAAA;YAED,IAAI,SAAS,KAAK,MAAM,EAAE;gBACxB,IAAI,SAAS,KAAK,QAAQ,EAAE;oBAC1B,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;AAC1C,iBAAA;AAAM,qBAAA;oBACL,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;AAC9C,iBAAA;AACF,aAAA;AAAM,iBAAA;gBACL,IAAI,SAAS,KAAK,QAAQ,EAAE;AAC1B,oBAAA,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;AACzB,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,GAAG,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;AAC7B,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KACtB;;qHAjEU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;yHAAxB,wBAAwB,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;;ACAX;;AAEG;AACI,MAAM,mBAAmB,GAA6B,OAAO,CAClE,qBAAqB,EACrB;AACE,IAAA,KAAK,CACH,MAAM,EACN,KAAK,CAAC;AACJ,QAAA,OAAO,EAAE,CAAC;AACX,KAAA,CAAC,CACH;AACD,IAAA,KAAK,CACH,MAAM,EACN,KAAK,CAAC;AACJ,QAAA,OAAO,EAAE,CAAC;AACX,KAAA,CAAC,CACH;AACD,IAAA,KAAK,CACH,QAAQ,EACR,KAAK,CAAC;AACJ,QAAA,OAAO,EAAE,CAAC;AACX,KAAA,CAAC,CACH;IACD,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AACjD,CAAA,CACF;;AChCK,SAAU,mBAAmB,CACjC,SAA8B,EAAA;AAE9B,IAAA,QAAQ,SAAS;AACf,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,OAAO,CAAC;AACjB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,OAAO,CAAC;AACjB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,OAAO,CAAC;AACjB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,MAAM,CAAC;;AAEhB,QAAA;YACE,MAAM,CAAA,sDAAA,EAAyD,SAAS,CAAA,EAAA,CAAI,CAAC;AAChF,KAAA;AACH,CAAC;AAEK,SAAU,6BAA6B,CAC3C,SAA8B,EAAA;AAE9B,IAAA,QAAQ,SAAS;AACf,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,QAAQ,CAAC;AAClB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,MAAM,CAAC;AAChB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,OAAO,CAAC;;AAEjB,QAAA;YACE,MAAM,CAAA,gEAAA,EAAmE,SAAS,CAAA,EAAA,CAAI,CAAC;AAC1F,KAAA;AACH;;ACnCA;;;AAGG;MACU,iBAAiB,CAAA;AAG5B,IAAA,WAAA,CAAY,IAAkD,EAAA;AAC5D,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;KACnD;AACF;;;ACuBD;;AAEG;MAQU,0BAA0B,CAAA;AAGrC,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAS,CAAC,YAAY,EAAE,CAAC;KACrC;AAED,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,uBAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAS,CAAC,YAAY,EAAE,CAAC;KACrC;AAED,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,uBAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,YAAY,EAAE,CAAC;KAC3C;IAcD,IAAW,MAAM,CAAC,KAAc,EAAA;QAC9B,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAY,KAAK,EAAA,GAAA,CAAA,CAAC;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;KACjD;AAED,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAS,CAAC;KACtB;IAsBD,IAIW,aAAa,CAAC,KAAmC,EAAA;AAC1D,QAAA,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,CAAC,kBAAkB,CAAC,sBAAA,CAAA,IAAI,EAAS,mCAAA,EAAA,GAAA,CAAA,CAAC,kBAAkB,CAAC,CAAC;AAC5D,SAAA;KACF;AAsBD,IAAA,WAAA,CACE,cAAiC,EACjC,UAAsB,EACtB,YAA6B,EAC7B,kBAAyC,EACzC,cAAwC,EACxC,OAA0B,EACd,QAA0B,EAAA;;AA5FjC,QAAA,IAAc,CAAA,cAAA,GAA6B,QAAQ,CAAC;AAoBpD,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAErB,QAAA,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;AAExB,QAAA,IAAmB,CAAA,mBAAA,GAAwB,QAAQ,CAAC;AAWpD,QAAA,IAAS,CAAA,SAAA,GAA+B,IAAI,CAAC;AAI7C,QAAA,IAAW,CAAA,WAAA,GAAmB,MAAM,CAAC;QA0B5C,kCAAgC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAEhC,yCAAiB,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAQ,CAAC,CAAA;QAErC,mCAAW,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAQ,CAAC,CAAA;QAE/B,yCAAiB,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAW,CAAC,CAAA;AAExC,QAAA,mCAAA,CAAA,GAAA,CAAA,IAAA,EAAW,KAAK,CAAC,CAAA;QAEjB,mCAAW,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAQ,CAAC,CAAA;QAE/B,0CAAmC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACnC,sCAAwB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QACxB,wCAA+B,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAC/B,8CAA2C,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAC3C,0CAA0C,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAC1C,mCAA4B,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAC5B,oCAAuC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAWrC,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAmB,cAAc,EAAA,GAAA,CAAA,CAAC;QACtC,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAe,UAAU,EAAA,GAAA,CAAA,CAAC;QAC9B,sBAAA,CAAA,IAAI,EAAA,wCAAA,EAAiB,YAAY,EAAA,GAAA,CAAA,CAAC;QAClC,sBAAA,CAAA,IAAI,EAAA,8CAAA,EAAuB,kBAAkB,EAAA,GAAA,CAAA,CAAC;QAC9C,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAmB,cAAc,EAAA,GAAA,CAAA,CAAC;QACtC,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAY,OAAO,EAAA,GAAA,CAAA,CAAC;QACxB,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAa,QAAQ,EAAA,GAAA,CAAA,CAAC;KAC3B;IAEM,QAAQ,GAAA;AACb,QAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,EAAA,6CAAA,CAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,CAAC;;QAG1B,IAAI,sBAAA,CAAA,IAAI,EAAA,oCAAA,EAAA,GAAA,CAAU,EAAE;YAClB,sBAAA,CAAA,IAAI,EAAU,oCAAA,EAAA,GAAA,CAAA,CAAC,cAAc;AAC1B,iBAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,iBAAA,SAAS,CAAC,CAAC,aAAa,KAAI;;;AAE3B,gBAAA,IAAI,CAAC,SAAS,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,aAAa,CAAC,eAAe,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC;AAC9D,aAAC,CAAC,CAAC;AACN,SAAA;KACF;IAEM,WAAW,GAAA;QAChB,sBAAA,CAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,IAAI,EAAE,CAAC;QAC3B,sBAAA,CAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,QAAQ,EAAE,CAAC;QAE/B,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAS,CAAC,QAAQ,EAAE,CAAC;QACzB,sBAAA,CAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,QAAQ,EAAE,CAAC;QAC/B,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAS,CAAC,QAAQ,EAAE,CAAC;;QAGzB,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AAC1B,SAAA;KACF;AAEM,IAAA,gBAAgB,CAAC,KAAqB,EAAA;AAC3C,QAAA,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE;YAC9B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE;AAC9B,YAAA,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC5B,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAS,CAAC,IAAI,EAAE,CAAC;AACtB,aAAA;AAAM,iBAAA;gBACL,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAS,CAAC,IAAI,EAAE,CAAC;AACtB,aAAA;AACF,SAAA;KACF;IAEM,IAAI,CACT,MAAkB,EAClB,MAQC,EAAA;QAED,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAW,MAAM,EAAA,GAAA,CAAA,CAAC;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAChD,QAAA,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACtD,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEtC,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;;;;;QAMpC,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;YACpC,OAAO;AACR,SAAA;;QAGD,UAAU,CAAC,MAAK;;;YAEd,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAA,IAAI,sBAAA,CAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,SAAS,EAAE;gBACpE,OAAO;AACR,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,gBAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,EAAA,wCAAA,CAAc,CAAlB,IAAA,CAAA,IAAI,CAAgB,CAAC;AACtB,aAAA;AAED,YAAA,MAAM,YAAY,GAAmB;gBACnC,cAAc,EAAE,sBAAsB,CAAC,QAAQ;AAC/C,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,mBAAmB,EAAE,6BAA6B,CAChD,IAAI,CAAC,mBAAmB,CACzB;AACD,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,SAAgC,CAAC;aACtE,CAAC;;AAGF,YAAA,IACE,YAAY,CAAC,SAAS,KAAK,MAAM;AACjC,gBAAA,YAAY,CAAC,SAAS,KAAK,OAAO,EAClC;AACA,gBAAA,YAAY,CAAC,iBAAiB,GAAG,QAAQ,CAAC;AAC3C,aAAA;AAED,YAAA,IAAI,CAAC,OAAQ,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AAEjE,YAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,EAAA,6CAAA,CAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,CAAC;AAE1B,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;KACJ;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;KACrC;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE;AAClC,YAAA,sBAAA,CAAA,IAAI,EAAA,8CAAA,EAAA,GAAA,CAAoB,CAAC,iCAAiC,CACxD,IAAI,CAAC,UAAU,EACf,cAAc,EACd,IAAI,CACL,CAAC;AACH,SAAA;KACF;;;IAGC,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,MAAM,OAAO,GAAG,sBAAA,CAAA,IAAI,EAAc,wCAAA,EAAA,GAAA,CAAA,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAElE,QAAA,OAAO,CAAC,YAAY;AACjB,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;aACpC,SAAS,CAAC,MAAK;AACd,YAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,EAAA,6CAAA,CAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,CAAC;YAC1B,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;AAEL,QAAA,OAAO,CAAC,cAAc;AACnB,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;aACpC,SAAS,CAAC,MAAK;AACd,YAAA,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,EAAA,6CAAA,CAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,CAAC;YAC1B,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;AAEL,QAAA,OAAO,CAAC,eAAe;AACpB,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAClC,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAgB,CAAC,YAAY,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACxB,KAAA;AACH,CAAC,EAAA,6CAAA,GAAA,SAAA,6CAAA,GAAA;IAGC,IAAI,sBAAA,CAAA,IAAI,EAAQ,kCAAA,EAAA,GAAA,CAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACtE,QAAA,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,sBAAA,CAAA,IAAI,EAAA,0CAAA,EAAA,GAAA,CAAgB,CAAC,mBAAmB,CAC5D;YACE,MAAM,EAAE,sBAAA,CAAA,IAAI,EAAQ,kCAAA,EAAA,GAAA,CAAA;YACpB,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,YAAY,EAAE,IAAI,CAAC,QAAQ;SAC5B,EACD,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,CACf,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACvB,KAAA;AACH,CAAC,iHAEsB,KAAoB,EAAA;IACzC,MAAM,cAAc,GAAG,sBAAA,CAAA,IAAI,sDAAoB,CAAC,oBAAoB,CAClE,sBAAA,CAAA,IAAI,EAAA,sCAAA,EAAA,GAAA,CAAY,CAAC,aAAa,CAC/B,CAAC;AAEF,IAAA,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC;AAEzE,IAAA,MAAM,UAAU,GACd,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM;QAC1D,CAAC,KAAK,CAAC,QAAQ,CAAC;IAElB,OAAO,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,IAAI,UAAU,CAAC;AAClE,CAAC,EAAA,6CAAA,GAAA,SAAA,6CAAA,GAAA;AAGC,IAAA,MAAM,WAAW,GAAG,sBAAA,CAAA,IAAI,EAAY,sCAAA,EAAA,GAAA,CAAA,CAAC,aAAa,CAAC;AAEnD,IAAAH,SAAmB,CAAC,WAAW,EAAE,YAAY,CAAC;AAC3C,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,SAAA,SAAS,CAAC,MAAM,sBAAA,CAAA,IAAI,EAAe,yCAAA,EAAA,GAAA,CAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAEnD,IAAAA,SAAmB,CAAC,WAAW,EAAE,YAAY,CAAC;AAC3C,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,SAAA,SAAS,CAAC,MAAM,sBAAA,CAAA,IAAI,EAAe,yCAAA,EAAA,GAAA,CAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAEpD,IAAAA,SAAmB,CAAgB,WAAW,EAAE,SAAS,CAAC;AACvD,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,yCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,SAAA,SAAS,CAAC,CAAC,KAAK,KAAI;;QACnB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAEpC,QAAA,QAAQ,GAAG;AACT,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,gBAAA,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAQ,kCAAA,EAAA,GAAA,CAAA,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,CAAC,KAAK,EAAE,CAAC;gBACpC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,MAAM;;;;AAKR,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;oBACvB,OAAO;AACR,iBAAA;;AAGD,gBAAA,IAAI,sBAAA,CAAA,IAAI,EAAuB,qCAAA,EAAA,GAAA,EAAA,iDAAA,CAAA,CAAA,IAAA,CAA3B,IAAI,EAAwB,KAAK,CAAC,EAAE;oBACtC,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,oBAAA,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAQ,kCAAA,EAAA,GAAA,CAAA,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,CAAC,KAAK,EAAE,CAAC;oBACpC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACzB,iBAAA;gBACD,MAAM;AACT,SAAA;AACH,KAAC,CAAC,CAAC;AACP,CAAC,CAAA;uHA9UU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAF1B,QAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,CAAC,wBAAwB,CAAC,2GA+C7B,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAMV,UAAU,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAMV,gBAAgB,ECtG1B,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+kDA2DA,EDjBc,MAAA,EAAA,CAAA,mtQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,mBAAmB,CAAC,EAAA,CAAA,CAAA;2FAGtB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,cAGnB,CAAC,mBAAmB,CAAC,EACtB,SAAA,EAAA,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,+kDAAA,EAAA,MAAA,EAAA,CAAA,mtQAAA,CAAA,EAAA,CAAA;;;8BA+FlC,QAAQ;;yBA7CJ,QAAQ,EAAA,CAAA;sBAJd,SAAS;gBAAC,IAAA,EAAA,CAAA,UAAU,EAAE;AACrB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,IAAI;qBACb,CAAA;gBAOM,UAAU,EAAA,CAAA;sBAJhB,SAAS;gBAAC,IAAA,EAAA,CAAA,YAAY,EAAE;AACvB,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,MAAM,EAAE,IAAI;qBACb,CAAA;gBAOU,aAAa,EAAA,CAAA;sBAJvB,SAAS;gBAAC,IAAA,EAAA,CAAA,eAAe,EAAE;AAC1B,wBAAA,IAAI,EAAE,gBAAgB;AACtB,wBAAA,MAAM,EAAE,IAAI;qBACb,CAAA;;;;MExEU,mBAAmB,CAAA;AAC9B;;;;AAIG;IACH,IACW,SAAS,CAAC,KAAsC,EAAA;AACzD,QAAA,sBAAA,CAAA,IAAI,EAAe,+BAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,QAAQ,MAAA,CAAC;KACtC;AAED,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,CAAY,CAAC;KACzB;AAED;;;;AAIG;IACH,IACW,aAAa,CAAC,KAA0B,EAAA;AACjD,QAAA,sBAAA,CAAA,IAAI,EAAmB,mCAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,IAAI,MAAA,CAAC;KACtC;AAED,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAA,GAAA,CAAgB,CAAC;KAC7B;AAED;;;;AAIG;IACH,IACW,SAAS,CAAC,KAAsC,EAAA;AACzD,QAAA,sBAAA,CAAA,IAAI,EAAe,+BAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,OAAO,MAAA,CAAC;KACrC;AAED,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,CAAY,CAAC;KACzB;AAQD;;;AAGG;IACH,IACW,WAAW,CAAC,KAAiC,EAAA;AACtD,QAAA,sBAAA,CAAA,IAAI,EAAiB,iCAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,MAAM,MAAA,CAAC;KACtC;AAED,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAAA,GAAA,CAAc,CAAC;KAC3B;IAuDD,WACE,CAAA,cAAiC,EAGjC,eAAoC,EAAA;;AAzDtC;;AAEG;AAEI,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE/D;;AAEG;AAEI,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAuB,CAAC;AAE/D;;;AAGG;AACI,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAExB;;;;AAIG;AACI,QAAA,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;AAExB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QAQ5B,+BAAyC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEzC,QAAA,iDAAA,CAAA,GAAA,CAAA,IAAA,EAAgC,KAAK,CAAC,CAAA;QAEtC,kCAAiB,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAQ,CAAC,CAAA;QAErC,4BAAyC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAEzC,QAAA,+BAAA,CAAA,GAAA,CAAA,IAAA,EAAmC,QAAQ,CAAC,CAAA;AAE5C,QAAA,mCAAA,CAAA,GAAA,CAAA,IAAA,EAAkB,IAAI,CAAC,CAAA;AAEvB,QAAA,+BAAA,CAAA,GAAA,CAAA,IAAA,EAAmC,OAAO,CAAC,CAAA;AAE3C,QAAA,iCAAA,CAAA,GAAA,CAAA,IAAA,EAAgC,MAAM,CAAC,CAAA;QAEvC,mCAAmC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAEnC,2BAAwC,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAQtC,sBAAA,CAAA,IAAI,EAAA,mCAAA,EAAmB,cAAc,EAAA,GAAA,CAAA,CAAC;AACtC,QAAA,sBAAA,CAAA,IAAI,EAAW,2BAAA,EAAA,eAAe,KAAA,IAAA,IAAf,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAf,eAAe,CAAE,MAAM,MAAA,CAAC;KACxC;IAEM,WAAW,GAAA;QAChB,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,IAAI,EAAE,CAAC;QAC3B,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,QAAQ,EAAE,CAAC;QAE/B,IAAI,sBAAA,CAAA,IAAI,EAAA,4BAAA,EAAA,GAAA,CAAS,EAAE;AACjB,YAAA,sBAAA,CAAA,IAAI,2CAAgB,CAAC,KAAK,CAAC,sBAAA,CAAA,IAAI,EAAS,4BAAA,EAAA,GAAA,CAAA,CAAC,CAAC;YAC1C,sBAAA,CAAA,IAAI,EAAA,4BAAA,EAAY,SAAS,EAAA,GAAA,CAAA,CAAC;AAC3B,SAAA;KACF;AAED;;;;;;AAMG;AACI,IAAA,cAAc,CACnB,MAAkB,EAClB,SAA+B,EAC/B,SAA+B,EAAA;QAE/B,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,4BAAA,EAAA,GAAA,CAAS,EAAE;AAClB,YAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,iCAAA,CAAc,CAAlB,IAAA,CAAA,IAAI,CAAgB,CAAC;AACtB,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,SAAS,GAAI,IAAI,CAAC,SAAS,CAAC;AAC7C,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,SAAS,GAAI,IAAI,CAAC,SAAS,CAAC;AAC7C,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,sBAAA,CAAA,IAAI,EAAY,+BAAA,EAAA,GAAA,CAAA,CAAC,IAAI,CAAC,MAAM,EAAE;YAC5B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,mBAAmB,EAAE,IAAI,CAAC,SAAS;AACnC,YAAA,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,SAAA,CAAC,CAAC;KACJ;AAED;;;AAGG;IACI,KAAK,GAAA;;;QAEV,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,CAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAC;KAC3B;AAED;;;AAGG;IACI,UAAU,GAAA;;;QAEf,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,CAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,EAAE,CAAC;KAChC;AAED;;;AAGG;IACI,wBAAwB,GAAA;QAC7B,sBAAA,CAAA,IAAI,EAAA,iDAAA,EAAiC,IAAI,EAAA,GAAA,CAAA,CAAC;KAC3C;;;IAGC,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,QAAA,MAAM,OAAO,GAAG,sBAAA,CAAA,IAAI,EAAgB,mCAAA,EAAA,GAAA,CAAA,CAAC,MAAM,CAAC;AAC1C,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,mBAAmB,EAAE,IAAI;AAC1B,SAAA,CAAC,CAAC;QAEH,IAAI,sBAAA,CAAA,IAAI,EAAA,2BAAA,EAAA,GAAA,CAAQ,EAAE;AAChB,YAAA,sBAAA,CAAA,IAAI,EAAQ,2BAAA,EAAA,GAAA,CAAA;AACT,iBAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,iBAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,gBAAA,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7D,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,OAAO,CAAC,aAAa;AAClB,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;aACpC,SAAS,CAAC,MAAK;YACd,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,aAAA;AACH,SAAC,CAAC,CAAC;AAEL,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,0BAA0B,EAAE;AACrE,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,IAAI,iBAAiB,CAAC;oBAC9B,kBAAkB,EAAE,IAAI,CAAC,WAAW;iBACrC,CAAC;AACH,aAAA;AACF,SAAA,CAAC,CAAC;QAEH,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACpE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;QAEH,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;;AAEpE,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,sBAAA,CAAA,IAAI,oCAAS,EAAE;AAClC,gBAAA,sBAAA,CAAA,IAAI,2CAAgB,CAAC,KAAK,CAAC,sBAAA,CAAA,IAAI,EAAS,4BAAA,EAAA,GAAA,CAAA,CAAC,CAAC;gBAC1C,sBAAA,CAAA,IAAI,EAAA,4BAAA,EAAY,SAAS,EAAA,GAAA,CAAA,CAAC;AAC1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,UAAU,CAAC,YAAY;AACpB,aAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,aAAA,SAAS,CAAC,CAAC,YAAY,KAAI;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,IAAI,sBAAA,CAAA,IAAI,EAAA,iDAAA,EAAA,GAAA,CAA8B,EAAE;gBACtC,sBAAA,CAAA,IAAI,EAAA,iDAAA,EAAiC,KAAK,EAAA,GAAA,CAAA,CAAC;gBAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,aAAA;AACH,SAAC,CAAC,CAAC;QAEL,sBAAA,CAAA,IAAI,EAAA,4BAAA,EAAY,OAAO,EAAA,GAAA,CAAA,CAAC;QACxB,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAe,UAAU,EAAA,GAAA,CAAA,CAAC;AAC/B,KAAA;AACH,CAAC,CAAA;AA3PU,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,qDAsHpB,oBAAoB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAtHnB,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EA0FtB,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1HrB,2EAGA,EAAA,CAAA,CAAA;2FD6Ba,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,2EAAA,EAAA,CAAA;;;8BAwHpB,QAAQ;;8BACR,MAAM;+BAAC,oBAAoB,CAAA;;yBA/GnB,SAAS,EAAA,CAAA;sBADnB,KAAK;gBAeK,aAAa,EAAA,CAAA;sBADvB,KAAK;gBAeK,SAAS,EAAA,CAAA;sBADnB,KAAK;gBAaC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAQK,WAAW,EAAA,CAAA;sBADrB,KAAK;gBAaC,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAOA,aAAa,EAAA,CAAA;sBADnB,MAAM;gBAsBA,WAAW,EAAA,CAAA;sBAJjB,SAAS;gBAAC,IAAA,EAAA,CAAA,aAAa,EAAE;AACxB,wBAAA,IAAI,EAAE,WAAW;AACjB,wBAAA,MAAM,EAAE,IAAI;qBACb,CAAA;;;AE5HH;;AAEG;AACS,IAAA,sBAqBX;AArBD,CAAA,UAAY,qBAAqB,EAAA;AAC/B;;AAEG;IACH,qBAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AAER;;AAEG;IACH,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AAET;;;AAGG;IACH,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AAEd;;AAEG;IACH,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACX,CAAC,EArBW,qBAAqB,KAArB,qBAAqB,GAqBhC,EAAA,CAAA,CAAA;;;MCTY,mBAAmB,CAAA;AAc9B;;AAEG;IACH,IACW,uBAAuB,CAChC,KAA6C,EAAA;AAE7C,QAAA,sBAAA,CAAA,IAAI,iDAA6B,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAK,GAAI,IAAI,OAAO,EAAqB,MAAA,CAAC;AAC3E,QAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,2CAAA,CAAwB,CAA5B,IAAA,CAAA,IAAI,CAA0B,CAAC;KAChC;AAED,IAAA,IAAW,uBAAuB,GAAA;QAChC,OAAO,sBAAA,CAAA,IAAI,EAAA,6CAAA,EAAA,GAAA,CAA0B,CAAC;KACvC;AAYD;;AAEG;IACH,IACW,iBAAiB,CAAC,KAAoC,EAAA;AAC/D,QAAA,sBAAA,CAAA,IAAI,EAAa,6BAAA,EAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAL,KAAK,GAAI,OAAO,MAAA,CAAC;KACnC;AAED,IAAA,IAAW,iBAAiB,GAAA;QAC1B,OAAO,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAU,CAAC;KACvB;AAQD,IAAA,WAAA,CAAY,UAAsB,EAAA;;QA5BlC,6CAA4B,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAqB,CAAC,CAAA;QAE7D,qCAA4C,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAoB5C,kCAAiB,CAAA,GAAA,CAAA,IAAA,EAAA,IAAI,OAAO,EAAQ,CAAC,CAAA;AAErC,QAAA,6BAAA,CAAA,GAAA,CAAA,IAAA,EAA+B,OAAO,CAAC,CAAA;QAEvC,+BAAwB,CAAA,GAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAGtB,sBAAA,CAAA,IAAI,EAAA,+BAAA,EAAe,UAAU,EAAA,GAAA,CAAA,CAAC;AAC9B,QAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,2CAAA,CAAwB,CAA5B,IAAA,CAAA,IAAI,CAA0B,CAAC;KAChC;IAEM,QAAQ,GAAA;AACb,QAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,sCAAA,CAAmB,CAAvB,IAAA,CAAA,IAAI,CAAqB,CAAC;KAC3B;IAEM,WAAW,GAAA;AAChB,QAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,yCAAA,CAAsB,CAA1B,IAAA,CAAA,IAAI,CAAwB,CAAC;AAC7B,QAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,6CAAA,CAA0B,CAA9B,IAAA,CAAA,IAAI,CAA4B,CAAC;KAClC;IAEM,aAAa,GAAA;;AAClB,QAAA,IAAI,MAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;AAC7B,YAAA,sBAAA,CAAA,IAAI,wEAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC/C,OAAO;AACR,SAAA;AAED,QAAA,sBAAA,CAAA,IAAI,wEAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,qBAAqB,CAAC,IAAI,CAAC,CAAC;KAC/C;;;;IAGC,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc,CAC7B,uBAAA,IAAI,EAAA,+BAAA,EAAA,GAAA,CAAY,EAChB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,mBAAmB,CACzB,CAAC;AACJ,CAAC,EAAA,iCAAA,GAAA,SAAA,iCAAA,GAAA;;AAGC,IAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;AAC3B,CAAC,EAAA,+CAAA,GAAA,SAAA,+CAAA,GAAA;;AAGC,IAAA,IAAI,MAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,EAAE;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;AAC5C,KAAA;AAAM,SAAA;AACL,QAAA,sBAAA,CAAA,IAAI,wEAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAChD,KAAA;AACH,CAAC,EAAA,sCAAA,GAAA,SAAA,sCAAA,GAAA;AAGC,IAAA,MAAM,OAAO,GAAG,sBAAA,CAAA,IAAI,EAAY,+BAAA,EAAA,GAAA,CAAA,CAAC,aAAa,CAAC;AAE/C,IAAAP,SAAmB,CAAgB,OAAO,EAAE,SAAS,CAAC;AACnD,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;AACpC,SAAA,SAAS,CAAC,CAAC,KAAK,KAAI;;QACnB,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAA,EAAE;YAC9B,OAAO;AACR,SAAA;QAED,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AAEpC,QAAA,QAAQ,GAAG;AACT,YAAA,KAAK,QAAQ;AACX,gBAAA,sBAAA,CAAA,IAAI,wEAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,MAAM;AAER,YAAA,KAAK,KAAK;AACR,gBAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AACjC,oBAAA,sBAAA,CAAA,IAAI,wEAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAChD,iBAAA;gBACD,MAAM;AAER,YAAA,KAAK,WAAW,CAAC;AACjB,YAAA,KAAK,WAAW,CAAC;AACjB,YAAA,KAAK,YAAY,CAAC;AAClB,YAAA,KAAK,SAAS,CAAC;AACf,YAAA,KAAK,MAAM,CAAC;AACZ,YAAA,KAAK,MAAM,CAAC;AACZ,YAAA,KAAK,OAAO,CAAC;AACb,YAAA,KAAK,IAAI;AACP,gBAAA,sBAAA,CAAA,IAAI,wEAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC/C,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;AACT,SAAA;AACH,KAAC,CAAC,CAAC;AAEL,IAAAA,SAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;AAClC,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;SACpC,SAAS,CAAC,MAAK;QACd,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;AACtB,SAAA;AACH,KAAC,CAAC,CAAC;AAEL,IAAAA,SAAmB,CAAC,OAAO,EAAE,YAAY,CAAC;AACvC,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;SACpC,SAAS,CAAC,MAAK;QACd,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;AACpC,YAAA,IACE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ;AACzB,gBAAA,IAAI,CAAC,iBAAiB,KAAK,YAAY,EACvC;AACA,gBAAA,sBAAA,CAAA,IAAI,wEAAa,CAAjB,IAAA,CAAA,IAAI,EAAc,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC/C,aAAA;AACF,SAAA;AACH,KAAC,CAAC,CAAC;AAEL,IAAAA,SAAmB,CAAC,OAAO,EAAE,YAAY,CAAC;AACvC,SAAA,IAAI,CAAC,SAAS,CAAC,uBAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,CAAC;SACpC,SAAS,CAAC,MAAK;QACd,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;AACrC,YAAA,IACE,IAAI,CAAC,UAAU,CAAC,QAAQ;AACxB,gBAAA,IAAI,CAAC,iBAAiB,KAAK,YAAY,EACvC;;;gBAGA,UAAU,CAAC,MAAK;AACd,oBAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,+CAAA,CAA4B,CAAhC,IAAA,CAAA,IAAI,CAA8B,CAAC;AACrC,iBAAC,CAAC,CAAC;AACJ,aAAA;AACF,SAAA;AACH,KAAC,CAAC,CAAC;AACP,CAAC,EAAA,yCAAA,GAAA,SAAA,yCAAA,GAAA;IAGC,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,IAAI,EAAE,CAAC;IAC3B,sBAAA,CAAA,IAAI,EAAA,kCAAA,EAAA,GAAA,CAAe,CAAC,QAAQ,EAAE,CAAC;AACjC,CAAC,qGAEuB,OAA0B,EAAA;;IAChD,QAAQ,OAAO,CAAC,IAAI;QAClB,KAAK,qBAAqB,CAAC,IAAI;AAC7B,YAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,oCAAA,CAAiB,CAArB,IAAA,CAAA,IAAI,CAAmB,CAAC;YACxB,MAAM;QAER,KAAK,qBAAqB,CAAC,KAAK;;AAE9B,YAAA,IAAI,MAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;AAC7B,gBAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,iCAAA,CAAc,CAAlB,IAAA,CAAA,IAAI,CAAgB,CAAC;AACtB,aAAA;YACD,MAAM;QAER,KAAK,qBAAqB,CAAC,UAAU;;AAEnC,YAAA,IAAI,MAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;AAC7B,gBAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,oCAAA,CAAiB,CAArB,IAAA,CAAA,IAAI,CAAmB,CAAC;AACzB,aAAA;YACD,MAAM;QAER,KAAK,qBAAqB,CAAC,KAAK;AAC9B,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE,CAAC;YAC9B,MAAM;AACT,KAAA;AACH,CAAC,+EAEY,WAAkC,EAAA;IAC7C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3D,CAAC,EAAA,2CAAA,GAAA,SAAA,2CAAA,GAAA;AAGC,IAAA,sBAAA,CAAA,IAAI,EAAA,8BAAA,EAAA,GAAA,EAAA,6CAAA,CAA0B,CAA9B,IAAA,CAAA,IAAI,CAA4B,CAAC;AAEjC,IAAA,sBAAA,CAAA,IAAI,EAAqB,qCAAA,EAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAC7D,CAAC,OAAO,KAAI;AACV,QAAA,sBAAA,CAAA,IAAI,EAAwB,8BAAA,EAAA,GAAA,EAAA,2CAAA,CAAA,CAAA,IAAA,CAA5B,IAAI,EAAyB,OAAO,CAAC,CAAC;AACxC,KAAC,CACF,MAAA,CAAC;AACJ,CAAC,EAAA,6CAAA,GAAA,SAAA,6CAAA,GAAA;IAGC,IAAI,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAkB,EAAE;QAC1B,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAA,GAAA,CAAkB,CAAC,WAAW,EAAE,CAAC;QACrC,sBAAA,CAAA,IAAI,EAAA,qCAAA,EAAqB,SAAS,EAAA,GAAA,CAAA,CAAC;AACpC,KAAA;AACH,CAAC,CAAA;gHAvOU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGAAnB,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAA;iGAOQ,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAOC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAOK,uBAAuB,EAAA,CAAA;sBADjC,KAAK;gBAoBC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAOK,iBAAiB,EAAA,CAAA;sBAD3B,KAAK;;;MCzBK,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAlBzB,mBAAmB;QACnB,0BAA0B;AAC1B,QAAA,mBAAmB,aAGnB,YAAY;QACZ,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,0BAA0B;AAC1B,QAAA,cAAc,aAGd,mBAAmB;QACnB,0BAA0B;QAC1B,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAGV,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAbzB,YAAY;QACZ,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,0BAA0B;QAC1B,cAAc,CAAA,EAAA,CAAA,CAAA;2FAQL,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBApB5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,0BAA0B;wBAC1B,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,gBAAgB;wBAChB,0BAA0B;wBAC1B,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,0BAA0B;wBAC1B,mBAAmB;AACpB,qBAAA;iBACF,CAAA;;;AC/BD;;AAEG;;;;"}
1
+ {"version":3,"file":"skyux-popovers.mjs","sources":["../../../../../libs/components/popovers/src/lib/modules/dropdown/types/dropdown-message-type.ts","../../../../../libs/components/popovers/src/lib/modules/shared/sky-popovers-resources.module.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-button.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-button.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-item.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-item.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-extensions.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-menu.component.ts","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown-menu.component.html","../../../../../libs/components/popovers/src/lib/modules/dropdown/dropdown.module.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-adapter.service.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-animation.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-extensions.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-context.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-content.component.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover-content.component.html","../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.html","../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-message-type.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.directive.ts","../../../../../libs/components/popovers/src/lib/modules/popover/popover.module.ts","../../../../../libs/components/popovers/src/skyux-popovers.ts"],"sourcesContent":["/**\n * The type of message to send.\n * @internal\n */\nexport enum SkyDropdownMessageType {\n /**\n * Opens the dropdown menu.\n */\n Open = 0,\n\n /**\n * Closes the dropdown menu.\n */\n Close = 1,\n\n /**\n * Puts focus on the dropdown button.\n */\n FocusTriggerButton = 2,\n\n /**\n * Puts focus on the next item in the dropdown menu.\n */\n FocusNextItem = 3,\n\n /**\n * Puts focus on the previous item in the dropdown menu.\n */\n FocusPreviousItem = 4,\n\n /**\n * Repositions the dropdown menu next to the dropdown button. This is useful for when the\n * dropdown menu's width and height change while it is open.\n */\n Reposition = 5,\n\n /**\n * Puts focus on the first item in the dropdown menu.\n */\n FocusFirstItem = 6,\n\n /**\n * Puts focus on the last item in the dropdown menu.\n */\n FocusLastItem = 7,\n}\n","/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-popovers' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_dropdown_context_menu_default_label: { message: 'Context menu' },\n },\n};\n\nexport class SkyPopoversResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyPopoversResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyPopoversResourcesModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Specifies the button for the dropdown menu.\n */\n@Component({\n selector: 'sky-dropdown-button',\n templateUrl: './dropdown-button.component.html',\n})\nexport class SkyDropdownButtonComponent {}\n","<ng-content></ng-content>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * Specifies the items to display on the dropdown menu.\n */\n@Component({\n selector: 'sky-dropdown-item',\n templateUrl: './dropdown-item.component.html',\n styleUrls: ['./dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyDropdownItemComponent implements AfterViewInit {\n /**\n * The ARIA role for the dropdown menu item\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the item functions and what it controls. For information about\n * how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).\n * @default \"menuitem\"\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.#_ariaRole = value ?? 'menuitem';\n }\n\n public get ariaRole(): string {\n return this.#_ariaRole;\n }\n\n public isActive = false;\n\n #_ariaRole = 'menuitem';\n\n #changeDetector: ChangeDetectorRef;\n #renderer: Renderer2;\n\n constructor(\n public elementRef: ElementRef,\n changeDetector: ChangeDetectorRef,\n renderer: Renderer2\n ) {\n this.#changeDetector = changeDetector;\n this.#renderer = renderer;\n }\n\n public ngAfterViewInit(): void {\n // Make sure anchor elements are tab-able.\n const buttonElement = this.#getButtonElement();\n /* istanbul ignore else */\n if (buttonElement) {\n this.#renderer.setAttribute(buttonElement, 'tabIndex', '0');\n }\n\n this.#changeDetector.detectChanges();\n }\n\n public focusElement(enableNativeFocus: boolean): void {\n this.isActive = true;\n\n if (enableNativeFocus) {\n this.#getButtonElement()?.focus();\n }\n\n this.#changeDetector.detectChanges();\n }\n\n public isFocusable(): boolean {\n const isFocusable =\n this.#getButtonElement()?.getAttribute('disabled') === null;\n return isFocusable;\n }\n\n public resetState(): void {\n this.isActive = false;\n this.#changeDetector.markForCheck();\n }\n\n #getButtonElement(): HTMLButtonElement | null {\n return this.elementRef.nativeElement.querySelector('button,a');\n }\n}\n","<div\n class=\"sky-dropdown-item\"\n [attr.role]=\"ariaRole\"\n [ngClass]=\"{\n 'sky-dropdown-item-active': isActive\n }\"\n>\n <ng-content> </ng-content>\n</div>\n","import { SkyAffixHorizontalAlignment } from '@skyux/core';\n\nimport { SkyDropdownHorizontalAlignment } from './types/dropdown-horizontal-alignment';\n\nexport function parseAffixHorizontalAlignment(\n alignment: SkyDropdownHorizontalAlignment\n): SkyAffixHorizontalAlignment {\n switch (alignment) {\n case 'center':\n return 'center';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n /* istanbul ignore next */\n default:\n throw `SkyAffixHorizontalAlignment does not have a matching value for '${alignment}'!`;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAffixAutoFitContext,\n SkyAffixHorizontalAlignment,\n SkyAffixService,\n SkyAffixer,\n SkyOverlayInstance,\n SkyOverlayService,\n} from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { parseAffixHorizontalAlignment } from './dropdown-extensions';\nimport { SkyDropdownButtonType } from './types/dropdown-button-type';\nimport { SkyDropdownHorizontalAlignment } from './types/dropdown-horizontal-alignment';\nimport { SkyDropdownMessage } from './types/dropdown-message';\nimport { SkyDropdownMessageType } from './types/dropdown-message-type';\nimport { SkyDropdownTriggerType } from './types/dropdown-trigger-type';\n\nconst DEFAULT_BUTTON_STYLE = 'default';\nconst DEFAULT_BUTTON_TYPE: SkyDropdownButtonType = 'select';\nconst DEFAULT_HORIZONTAL_ALIGNMENT: SkyAffixHorizontalAlignment = 'left';\nconst DEFAULT_TRIGGER_TYPE: SkyDropdownTriggerType = 'click';\n\n/**\n * Creates a dropdown menu that displays menu items that users may select.\n */\n@Component({\n selector: 'sky-dropdown',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyDropdownComponent implements OnInit, OnDestroy {\n /**\n * The background color for the dropdown button. Available values are `default`,\n * `primary`, and `link`. These values set the background color and hover behavior from the\n * [secondary and primary button classes](https://developer.blackbaud.com/skyux/components/button) respectively.\n * @default \"default\"\n */\n @Input()\n public set buttonStyle(value: string | undefined) {\n this.#_buttonStyle = value ?? DEFAULT_BUTTON_STYLE;\n }\n\n public get buttonStyle(): string {\n return this.#_buttonStyle;\n }\n\n /**\n * The type of button to render as the dropdown's trigger element. To display a button\n * with a caret, specify `'select'` and render the button text or icon in a\n * `sky-dropdown-button` element. To display a round button with an ellipsis, specify\n * `'context-menu'`.\n * @default \"select\"\n */\n @Input()\n public set buttonType(value: SkyDropdownButtonType | undefined) {\n this.#_buttonType = value ?? DEFAULT_BUTTON_TYPE;\n }\n\n public get buttonType(): SkyDropdownButtonType {\n return this.#_buttonType;\n }\n\n /**\n * Whether to disable the dropdown button.\n * @default false\n */\n @Input()\n public disabled: boolean | undefined = false;\n\n /**\n * Whether to close the dropdown when users click away from the menu.\n * @default true\n */\n @Input()\n public set dismissOnBlur(value: boolean | undefined) {\n this.#_dismissOnBlur = value ?? true;\n }\n\n public get dismissOnBlur(): boolean {\n return this.#_dismissOnBlur;\n }\n\n /**\n * The ARIA label for the dropdown. This sets the dropdown's `aria-label` attribute to provide a text equivalent for screen readers\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n */\n @Input()\n public label: string | undefined;\n\n /**\n * The horizontal alignment of the dropdown menu in relation to the dropdown button.\n * @default \"left\"\n */\n @Input()\n public set horizontalAlignment(\n value: SkyDropdownHorizontalAlignment | undefined\n ) {\n this.#_horizontalAlignment = value ?? DEFAULT_HORIZONTAL_ALIGNMENT;\n }\n\n public get horizontalAlignment(): SkyDropdownHorizontalAlignment {\n return this.#_horizontalAlignment;\n }\n\n /**\n * The observable that sends commands to the dropdown. The commands should respect\n * the [[SkyDropdownMessage]] type.\n * @internal\n */\n @Input()\n public messageStream: Subject<SkyDropdownMessage> | undefined =\n new Subject<SkyDropdownMessage>();\n\n /**\n * The title to display in a tooltip when users hover the mouse over the dropdown button.\n */\n @Input()\n public title: string | undefined;\n\n /**\n * How users interact with the dropdown button to expose the dropdown menu.\n * We recommend the default `click` value because the `hover` value can pose\n * [accessibility](https://developer.blackbaud.com/skyux/learn/accessibility) issues\n * for users on touch devices such as phones and tablets.\n * @deprecated We recommend against using this property. If you choose to use the deprecated\n * `hover` value anyway, we recommend that you not use it in combination with the `title`\n * property.\n * @default \"click\"\n */\n @Input()\n public set trigger(value: SkyDropdownTriggerType | undefined) {\n this.#_trigger = value ?? DEFAULT_TRIGGER_TYPE;\n }\n\n public get trigger(): SkyDropdownTriggerType {\n return this.#_trigger;\n }\n\n public set isOpen(value: boolean) {\n this.#_isOpen = value;\n this.#changeDetector.markForCheck();\n }\n\n public get isOpen(): boolean {\n return this.#_isOpen;\n }\n\n @ViewChild('menuContainerElementRef', {\n read: ElementRef,\n })\n public set menuContainerElementRef(value: ElementRef | undefined) {\n if (value) {\n this.#destroyAffixer();\n this.#createAffixer(value);\n this.#changeDetector.markForCheck();\n }\n }\n\n public isMouseEnter = false;\n\n public isVisible = false;\n\n public menuId: string | undefined;\n\n public menuAriaRole: string | undefined;\n\n @ViewChild('menuContainerTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n public menuContainerTemplateRef: TemplateRef<unknown> | undefined;\n\n @ViewChild('triggerButton', {\n read: ElementRef,\n static: true,\n })\n public set triggerButton(value: ElementRef | undefined) {\n this.#_triggerButton = value;\n this.#addEventListeners();\n }\n\n public get triggerButton(): ElementRef | undefined {\n return this.#_triggerButton;\n }\n\n #affixer: SkyAffixer | undefined;\n #overlay: SkyOverlayInstance | undefined;\n #ngUnsubscribe = new Subject<void>();\n #positionTimeout: number | undefined;\n\n #affixService = inject(SkyAffixService);\n #changeDetector = inject(ChangeDetectorRef);\n #overlayService = inject(SkyOverlayService);\n #themeSvc = inject(SkyThemeService, { optional: true });\n #zIndex = inject(SKY_STACKING_CONTEXT, { optional: true })?.zIndex;\n\n #_buttonStyle = DEFAULT_BUTTON_STYLE;\n #_buttonType = DEFAULT_BUTTON_TYPE;\n #_dismissOnBlur = true;\n #_horizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n #_isOpen = false;\n #_trigger = DEFAULT_TRIGGER_TYPE;\n #_triggerButton: ElementRef | undefined;\n\n public ngOnInit(): void {\n this.messageStream\n ?.pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyDropdownMessage) => {\n this.#handleIncomingMessages(message);\n });\n\n // Load proper icons on theme change.\n this.#themeSvc?.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.#destroyAffixer();\n this.#destroyOverlay();\n clearTimeout(this.#positionTimeout);\n\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #addEventListeners(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n this.#ngUnsubscribe = new Subject<void>();\n const buttonElement = this.triggerButton?.nativeElement;\n if (buttonElement) {\n observableFromEvent(buttonElement, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n } else {\n this.#sendMessage(SkyDropdownMessageType.Open);\n // Wait for dropdown to open, then set focus on first item.\n setTimeout(() => {\n this.#sendMessage(SkyDropdownMessageType.FocusFirstItem);\n });\n }\n });\n\n observableFromEvent<KeyboardEvent>(buttonElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n /*istanbul ignore else*/\n if (this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n event.stopPropagation();\n }\n break;\n\n case 'tab':\n if (this.isOpen && this.dismissOnBlur) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n break;\n\n case 'arrowup':\n case 'up':\n if (!this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Open);\n this.#sendMessage(SkyDropdownMessageType.FocusLastItem);\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n\n case 'enter':\n case 'arrowdown':\n case 'down':\n case ' ': // Spacebar.\n /*istanbul ignore else*/\n if (!this.isOpen) {\n this.#sendMessage(SkyDropdownMessageType.Open);\n this.#sendMessage(SkyDropdownMessageType.FocusFirstItem);\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n }\n });\n\n observableFromEvent(buttonElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.isMouseEnter = true;\n if (this.trigger === 'hover') {\n this.#sendMessage(SkyDropdownMessageType.Open);\n }\n });\n\n observableFromEvent(buttonElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.isMouseEnter = false;\n if (this.trigger === 'hover') {\n // Allow the dropdown menu to set isMouseEnter before checking if the close action\n // should be taken.\n setTimeout(() => {\n if (!this.isMouseEnter) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n }\n });\n }\n }\n\n #createOverlay(): void {\n if (this.#overlay) {\n return;\n }\n\n if (this.menuContainerTemplateRef) {\n const overlay = this.#overlayService.create({\n enableScroll: true,\n enablePointerEvents: true,\n });\n\n if (this.#zIndex) {\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n }\n\n overlay.attachTemplate(this.menuContainerTemplateRef);\n\n overlay.backdropClick\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.dismissOnBlur) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n\n this.#overlay = overlay;\n }\n }\n\n #destroyAffixer(): void {\n /*istanbul ignore else*/\n if (this.#affixer) {\n this.#affixer.destroy();\n this.#affixer = undefined;\n }\n }\n\n #destroyOverlay(): void {\n /*istanbul ignore else*/\n if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n }\n }\n\n #createAffixer(menuContainerElementRef: ElementRef): void {\n const affixer = this.#affixService.createAffixer(menuContainerElementRef);\n\n affixer.placementChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change) => {\n this.isVisible = change.placement !== null;\n this.#changeDetector.markForCheck();\n });\n\n this.#affixer = affixer;\n }\n\n #handleIncomingMessages(message: SkyDropdownMessage): void {\n if (!this.disabled) {\n switch (message.type) {\n case SkyDropdownMessageType.Open:\n this.isOpen = true;\n this.#positionDropdownMenu();\n break;\n\n case SkyDropdownMessageType.Close:\n this.isOpen = false;\n this.#destroyOverlay();\n break;\n\n case SkyDropdownMessageType.Reposition:\n // Only reposition the dropdown if it is already open.\n /* istanbul ignore else */\n if (this.isOpen && this.#affixer) {\n this.#affixer.reaffix();\n }\n break;\n\n case SkyDropdownMessageType.FocusTriggerButton:\n this.triggerButton?.nativeElement.focus();\n break;\n }\n }\n }\n\n #sendMessage(type: SkyDropdownMessageType): void {\n this.messageStream?.next({ type });\n }\n\n #positionDropdownMenu(): void {\n this.isVisible = false;\n this.#createOverlay();\n this.#changeDetector.markForCheck();\n\n // Explicitly declare the `setTimeout` from the `window` object in order to use the DOM typings\n // during a unit test (instead of confusing this with Node's `setTimeout`).\n this.#positionTimeout = window.setTimeout(() => {\n if (this.#affixer) {\n this.#affixer.affixTo(this.triggerButton?.nativeElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: parseAffixHorizontalAlignment(\n this.horizontalAlignment\n ),\n isSticky: true,\n placement: 'below',\n });\n\n this.isVisible = true;\n this.#changeDetector.markForCheck();\n }\n });\n }\n}\n","<div class=\"sky-dropdown\">\n <button\n class=\"sky-btn sky-dropdown-button\"\n type=\"button\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"isOpen ? menuId : null\"\n [attr.aria-haspopup]=\"menuAriaRole\"\n [attr.aria-label]=\"\n label || ('skyux_dropdown_context_menu_default_label' | skyLibResources)\n \"\n [attr.title]=\"title\"\n [disabled]=\"disabled\"\n [ngClass]=\"[\n 'sky-dropdown-button-type-' + buttonType,\n 'sky-btn-' + buttonStyle\n ]\"\n #triggerButton\n >\n <ng-container [ngSwitch]=\"buttonType\">\n <ng-template ngSwitchCase=\"context-menu\">\n <sky-icon *skyThemeIf=\"'default'\" icon=\"ellipsis-h\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"ellipsis\"\n iconType=\"skyux\"\n ></sky-icon>\n </ng-template>\n\n <ng-template ngSwitchDefault>\n <div class=\"sky-dropdown-button-container\">\n <div class=\"sky-dropdown-button-content-container\">\n <ng-content select=\"sky-dropdown-button\"> </ng-content>\n </div>\n <div class=\"sky-dropdown-button-icon-container\">\n <sky-icon\n *skyThemeIf=\"'default'\"\n class=\"sky-dropdown-caret\"\n icon=\"caret-down\"\n >\n </sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n class=\"sky-dropdown-caret\"\n icon=\"chevron-down\"\n iconType=\"skyux\"\n >\n </sky-icon>\n </div>\n </div>\n </ng-template>\n </ng-container>\n </button>\n</div>\n\n<ng-template #menuContainerTemplateRef>\n <div\n class=\"sky-dropdown-menu-container\"\n [class.hidden]=\"!isVisible\"\n #menuContainerElementRef\n >\n <ng-content select=\"sky-dropdown-menu\"></ng-content>\n </div>\n</ng-template>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyDropdownItemComponent } from './dropdown-item.component';\nimport { SkyDropdownComponent } from './dropdown.component';\nimport { SkyDropdownMenuChange } from './types/dropdown-menu-change';\nimport { SkyDropdownMessage } from './types/dropdown-message';\nimport { SkyDropdownMessageType } from './types/dropdown-message-type';\n\nlet nextId = 0;\n/**\n * Creates a menu that contains dropdown menu items.\n *\n */\n@Component({\n selector: 'sky-dropdown-menu',\n templateUrl: './dropdown-menu.component.html',\n styleUrls: ['./dropdown-menu.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyDropdownMenuComponent implements AfterContentInit, OnDestroy {\n /**\n * The HTML element ID of the element that labels\n * the dropdown menu. This sets the dropdown menu's `aria-labelledby` attribute to provide a text equivalent for\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For more information about the `aria-labelledby` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-labelledby).\n */\n @Input()\n public ariaLabelledBy: string | undefined;\n\n /**\n * The ARIA role for the dropdown menu\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the dropdown menu functions and what it controls. The dropdown button\n * inherits this value to set its `aria-haspopup` property. For information\n * about how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](https://www.w3.org/WAI/PF/aria/#roles).\n * @default \"menu\"\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.#_ariaRole = value ?? 'menu';\n }\n\n public get ariaRole(): string {\n return this.#_ariaRole;\n }\n\n /**\n * Whether to use the browser's native focus function when users navigate through menu\n * items with the keyboard. To disable the native focus function, set this property to `false`.\n * For example, to let users interact with the dropdown menu but keep the keyboard focus on a\n * different element, set this property to `false`.\n * @default true\n * @internal\n */\n @Input()\n public set useNativeFocus(value: boolean | undefined) {\n this.#_useNativeFocus = value ?? true;\n }\n\n public get useNativeFocus(): boolean {\n return this.#_useNativeFocus;\n }\n\n /**\n * Fires when the dropdown menu's active index or selected item changes. This event provides an\n * observable to emit changes, and the response is of\n * the SkyDropdownMenuChange type.\n * @internal\n */\n @Output()\n public menuChanges = new EventEmitter<SkyDropdownMenuChange>();\n\n public dropdownMenuId = `sky-dropdown-menu-${++nextId}`;\n\n public set menuIndex(value: number) {\n if (value < 0) {\n value = this.menuItems.length - 1;\n }\n\n if (value >= this.menuItems.length) {\n value = 0;\n }\n\n this.#_menuIndex = value;\n }\n\n public get menuIndex(): number {\n return this.#_menuIndex;\n }\n\n @ContentChildren(SkyDropdownItemComponent, { descendants: true })\n public menuItems!: QueryList<SkyDropdownItemComponent>;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_ariaRole = 'menu';\n\n #_menuIndex = 0;\n\n #_useNativeFocus = true;\n\n #changeDetector: ChangeDetectorRef;\n #elementRef: ElementRef;\n #dropdownComponent: SkyDropdownComponent | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n elementRef: ElementRef,\n @Optional() dropdownComponent?: SkyDropdownComponent\n ) {\n this.#changeDetector = changeDetector;\n this.#elementRef = elementRef;\n this.#dropdownComponent = dropdownComponent;\n }\n\n public ngAfterContentInit(): void {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.menuId = this.dropdownMenuId;\n this.#dropdownComponent.menuAriaRole = this.ariaRole;\n\n this.#dropdownComponent.messageStream\n ?.pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyDropdownMessage) => {\n switch (message.type) {\n case SkyDropdownMessageType.Open:\n case SkyDropdownMessageType.Close:\n this.reset();\n break;\n\n case SkyDropdownMessageType.FocusFirstItem:\n this.focusFirstItem();\n break;\n\n case SkyDropdownMessageType.FocusNextItem:\n this.focusNextItem();\n break;\n\n case SkyDropdownMessageType.FocusPreviousItem:\n this.focusPreviousItem();\n break;\n\n case SkyDropdownMessageType.FocusLastItem:\n this.focusLastItem();\n break;\n }\n });\n\n this.menuChanges\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change: SkyDropdownMenuChange) => {\n // Close the dropdown when a menu item is selected.\n if (change.selectedItem) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n }\n\n if (change.items) {\n // Update the popover style and position whenever the number of items changes.\n this.#sendMessage(SkyDropdownMessageType.Reposition);\n }\n });\n }\n\n // Reset dropdown whenever the menu items change.\n this.menuItems.changes\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((items: QueryList<SkyDropdownItemComponent>) => {\n this.reset();\n this.menuChanges.emit({\n items: items.toArray(),\n });\n });\n\n this.#addEventListeners();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public focusFirstItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex = 0;\n\n const firstItem = this.#getItemByIndex(this.menuIndex);\n if (firstItem && firstItem.isFocusable()) {\n this.#focusItem(firstItem);\n } else {\n this.focusNextItem();\n }\n }\n\n public focusLastItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex = this.menuItems.length - 1;\n\n const lastItem = this.#getItemByIndex(this.menuIndex);\n if (lastItem && lastItem.isFocusable()) {\n this.#focusItem(lastItem);\n } else {\n this.focusPreviousItem();\n }\n }\n\n public focusPreviousItem(): void {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex--;\n\n const previousItem = this.#getItemByIndex(this.menuIndex);\n if (previousItem && previousItem.isFocusable()) {\n this.#focusItem(previousItem);\n } else {\n this.focusPreviousItem();\n }\n }\n\n public focusNextItem() {\n if (!this.#hasFocusableItems()) {\n return;\n }\n\n this.menuIndex++;\n\n const nextItem = this.#getItemByIndex(this.menuIndex);\n if (nextItem && nextItem.isFocusable()) {\n this.#focusItem(nextItem);\n } else {\n this.focusNextItem();\n }\n }\n\n public reset(): void {\n this.#_menuIndex = -1;\n this.#resetItemsActiveState();\n this.#changeDetector.markForCheck();\n }\n\n #resetItemsActiveState() {\n this.menuItems.forEach((item: SkyDropdownItemComponent) => {\n item.resetState();\n });\n }\n\n #focusItem(item: SkyDropdownItemComponent): void {\n this.#resetItemsActiveState();\n item.focusElement(this.useNativeFocus);\n this.menuChanges.emit({\n activeIndex: this.menuIndex,\n });\n }\n\n #getItemByIndex(index: number): SkyDropdownItemComponent | undefined {\n return this.menuItems.find((_, i) => i === index);\n }\n\n #selectItemByEventTarget(target: EventTarget): void {\n const selectedItem = this.menuItems.find(\n (item: SkyDropdownItemComponent, i: number) => {\n const found = item.elementRef.nativeElement.contains(target);\n\n if (found) {\n this.menuIndex = i;\n this.menuChanges.next({\n activeIndex: this.menuIndex,\n });\n }\n\n return found;\n }\n );\n\n /* istanbul ignore else */\n if (selectedItem) {\n this.menuChanges.next({\n selectedItem,\n });\n }\n }\n\n #sendMessage(type: SkyDropdownMessageType): void {\n this.#dropdownComponent?.messageStream?.next({ type });\n }\n\n #addEventListeners(): void {\n const dropdownMenuElement = this.#elementRef.nativeElement;\n\n observableFromEvent<MouseEvent>(dropdownMenuElement, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n this.#selectItemByEventTarget(event.target as EventTarget);\n });\n\n observableFromEvent<KeyboardEvent>(dropdownMenuElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.#sendMessage(SkyDropdownMessageType.Close);\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'arrowdown':\n case 'down':\n this.focusNextItem();\n event.preventDefault();\n break;\n\n case 'arrowup':\n case 'up':\n this.focusPreviousItem();\n event.preventDefault();\n break;\n\n case 'tab':\n if (this.#dropdownComponent?.dismissOnBlur) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n this.#sendMessage(SkyDropdownMessageType.FocusTriggerButton);\n break;\n }\n });\n\n observableFromEvent(dropdownMenuElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.isMouseEnter = true;\n }\n });\n\n observableFromEvent(dropdownMenuElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n /* istanbul ignore else */\n if (this.#dropdownComponent) {\n this.#dropdownComponent.isMouseEnter = false;\n // Allow the dropdown component to set isMouseEnter before checking if the close action\n // should be taken.\n setTimeout(() => {\n if (\n this.#dropdownComponent &&\n this.#dropdownComponent.trigger === 'hover' &&\n this.#dropdownComponent.isMouseEnter === false\n ) {\n this.#sendMessage(SkyDropdownMessageType.Close);\n }\n });\n }\n });\n }\n\n #hasFocusableItems(): boolean {\n const found = this.menuItems.find((item) => item.isFocusable());\n return found !== undefined;\n }\n}\n","<div\n class=\"sky-dropdown-menu sky-shadow sky-elevation-4\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n [id]=\"dropdownMenuId\"\n>\n <ng-content> </ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyAffixModule, SkyOverlayModule } from '@skyux/core';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';\n\nimport { SkyDropdownButtonComponent } from './dropdown-button.component';\nimport { SkyDropdownItemComponent } from './dropdown-item.component';\nimport { SkyDropdownMenuComponent } from './dropdown-menu.component';\nimport { SkyDropdownComponent } from './dropdown.component';\n\n@NgModule({\n declarations: [\n SkyDropdownButtonComponent,\n SkyDropdownComponent,\n SkyDropdownItemComponent,\n SkyDropdownMenuComponent,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyIconModule,\n SkyOverlayModule,\n SkyPopoversResourcesModule,\n SkyThemeModule,\n ],\n exports: [\n SkyDropdownButtonComponent,\n SkyDropdownComponent,\n SkyDropdownItemComponent,\n SkyDropdownMenuComponent,\n ],\n})\nexport class SkyDropdownModule {}\n","import { Injectable } from '@angular/core';\n\nimport { SkyPopoverAdapterArrowCoordinates } from './types/popover-adapter-arrow-coordinates';\nimport { SkyPopoverAdapterElements } from './types/popover-adapter-elements';\nimport { SkyPopoverPlacement } from './types/popover-placement';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyPopoverAdapterService {\n public getArrowCoordinates(\n elements: SkyPopoverAdapterElements,\n placement: SkyPopoverPlacement,\n themeName?: string\n ): SkyPopoverAdapterArrowCoordinates {\n const callerRect = elements.caller.nativeElement.getBoundingClientRect();\n const popoverRect = elements.popover.nativeElement.getBoundingClientRect();\n const arrowRect =\n elements.popoverArrow.nativeElement.getBoundingClientRect();\n\n const pixelTolerance = 20;\n\n let top: number;\n let left: number;\n\n if (placement === 'above' || placement === 'below') {\n left = callerRect.left + callerRect.width * 0.5;\n\n // Make sure the arrow never detaches from the popover.\n if (left - pixelTolerance < popoverRect.left) {\n left = popoverRect.left + pixelTolerance;\n } else if (left + pixelTolerance > popoverRect.right) {\n left = popoverRect.right - pixelTolerance;\n }\n\n if (placement === 'above') {\n if (themeName !== 'modern') {\n top = callerRect.top - arrowRect.height;\n } else {\n top = callerRect.top - arrowRect.height + 5;\n }\n } else {\n if (themeName !== 'modern') {\n top = callerRect.bottom;\n } else {\n top = callerRect.bottom + 4;\n }\n }\n } else {\n top = callerRect.top + callerRect.height * 0.5;\n\n // Make sure the arrow never detaches from the popover.\n if (top - pixelTolerance < popoverRect.top) {\n top = popoverRect.top + pixelTolerance;\n } else if (top + pixelTolerance > popoverRect.bottom) {\n top = popoverRect.bottom - pixelTolerance;\n }\n\n if (placement === 'left') {\n if (themeName !== 'modern') {\n left = callerRect.left - arrowRect.width;\n } else {\n left = callerRect.left - arrowRect.width + 5;\n }\n } else {\n if (themeName !== 'modern') {\n left = callerRect.right;\n } else {\n left = callerRect.right + 4;\n }\n }\n }\n\n return { top, left };\n }\n}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\n/**\n * @internal\n */\nexport const skyPopoverAnimation: AnimationTriggerMetadata = trigger(\n 'skyPopoverAnimation',\n [\n state(\n 'void',\n style({\n opacity: 0,\n })\n ),\n state(\n 'open',\n style({\n opacity: 1,\n })\n ),\n state(\n 'closed',\n style({\n opacity: 0,\n })\n ),\n transition('void => *', [animate('250ms')]),\n transition('open => closed', [animate('150ms')]),\n transition('closed => open', [animate('150ms')]),\n ]\n);\n","import { SkyAffixHorizontalAlignment, SkyAffixPlacement } from '@skyux/core';\n\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\n\nexport function parseAffixPlacement(\n placement: SkyPopoverPlacement\n): SkyAffixPlacement {\n switch (placement) {\n case 'above':\n return 'above';\n case 'below':\n return 'below';\n case 'right':\n return 'right';\n case 'left':\n return 'left';\n /* istanbul ignore next */\n default:\n throw `SkyAffixPlacement does not have a matching value for '${placement}'!`;\n }\n}\n\nexport function parseAffixHorizontalAlignment(\n alignment: SkyPopoverAlignment\n): SkyAffixHorizontalAlignment {\n switch (alignment) {\n case 'center':\n return 'center';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n /* istanbul ignore next */\n default:\n throw `SkyAffixHorizontalAlignment does not have a matching value for '${alignment}'!`;\n }\n}\n","import { TemplateRef } from '@angular/core';\n\n/**\n * @dynamic\n * @internal\n */\nexport class SkyPopoverContext {\n public readonly contentTemplateRef: TemplateRef<unknown>;\n\n constructor(args: { contentTemplateRef: TemplateRef<unknown> }) {\n this.contentTemplateRef = args.contentTemplateRef;\n }\n}\n","import { AnimationEvent } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n SkyAffixAutoFitContext,\n SkyAffixConfig,\n SkyAffixService,\n SkyAffixer,\n SkyCoreAdapterService,\n} from '@skyux/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { Observable, Subject, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverAdapterService } from './popover-adapter.service';\nimport { skyPopoverAnimation } from './popover-animation';\nimport { SkyPopoverAnimationState } from './popover-animation-state';\nimport { SkyPopoverContext } from './popover-context';\nimport {\n parseAffixHorizontalAlignment,\n parseAffixPlacement,\n} from './popover-extensions';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverType } from './types/popover-type';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-popover-content',\n templateUrl: './popover-content.component.html',\n styleUrls: ['./popover-content.component.scss'],\n animations: [skyPopoverAnimation],\n providers: [SkyPopoverAdapterService],\n})\nexport class SkyPopoverContentComponent implements OnInit, OnDestroy {\n @HostBinding('[attr.id]')\n protected popoverId: string | undefined;\n\n public animationState: SkyPopoverAnimationState = 'closed';\n\n public get closed(): Observable<void> {\n return this.#_closed.asObservable();\n }\n\n public get opened(): Observable<void> {\n return this.#_opened.asObservable();\n }\n\n public get isMouseEnter(): Observable<boolean> {\n return this.#_isMouseEnter.asObservable();\n }\n\n public affixer: SkyAffixer | undefined;\n\n public arrowLeft: number | undefined;\n\n public arrowTop: number | undefined;\n\n public dismissOnBlur = true;\n\n public enableAnimations = true;\n\n public horizontalAlignment: SkyPopoverAlignment = 'center';\n\n public set isOpen(value: boolean) {\n this.#_isOpen = value;\n this.animationState = value ? 'open' : 'closed';\n }\n\n public get isOpen(): boolean {\n return this.#_isOpen;\n }\n\n public placement: SkyPopoverPlacement | null = null;\n\n public popoverTitle: string | undefined;\n\n public popoverType: SkyPopoverType = 'info';\n\n public themeName: string | undefined;\n\n @ViewChild('arrowRef', {\n read: ElementRef,\n static: true,\n })\n public arrowRef: ElementRef | undefined;\n\n @ViewChild('popoverRef', {\n read: ElementRef,\n static: true,\n })\n public popoverRef: ElementRef | undefined;\n\n @ViewChild('contentTarget', {\n read: ViewContainerRef,\n static: true,\n })\n public set contentTarget(value: ViewContainerRef | undefined) {\n if (value) {\n value.createEmbeddedView(this.#context.contentTemplateRef);\n }\n }\n\n #caller: ElementRef | undefined;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_closed = new Subject<void>();\n\n #_isMouseEnter = new Subject<boolean>();\n\n #_isOpen = false;\n\n #_opened = new Subject<void>();\n\n #changeDetector: ChangeDetectorRef;\n #elementRef: ElementRef;\n #affixService: SkyAffixService;\n #coreAdapterService: SkyCoreAdapterService;\n #adapterService: SkyPopoverAdapterService;\n #context: SkyPopoverContext;\n #themeSvc: SkyThemeService | undefined;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n elementRef: ElementRef,\n affixService: SkyAffixService,\n coreAdapterService: SkyCoreAdapterService,\n adapterService: SkyPopoverAdapterService,\n context: SkyPopoverContext,\n @Optional() themeSvc?: SkyThemeService\n ) {\n this.#changeDetector = changeDetector;\n this.#elementRef = elementRef;\n this.#affixService = affixService;\n this.#coreAdapterService = coreAdapterService;\n this.#adapterService = adapterService;\n this.#context = context;\n this.#themeSvc = themeSvc;\n }\n\n public ngOnInit(): void {\n this.#addEventListeners();\n\n /*istanbul ignore else*/\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n /*istanbul ignore next*/\n this.themeName = themeSettings.currentSettings?.theme?.name;\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n this.#_closed.complete();\n this.#_isMouseEnter.complete();\n this.#_opened.complete();\n\n /* istanbul ignore else */\n if (this.affixer) {\n this.affixer.destroy();\n this.affixer = undefined;\n }\n }\n\n public onAnimationEvent(event: AnimationEvent): void {\n if (event.fromState === 'void') {\n return;\n }\n\n if (event.phaseName === 'done') {\n if (event.toState === 'open') {\n this.#_opened.next();\n } else {\n this.#_closed.next();\n }\n }\n }\n\n public open(\n caller: ElementRef,\n config: {\n dismissOnBlur: boolean;\n enableAnimations: boolean;\n horizontalAlignment: SkyPopoverAlignment;\n id: string;\n isStatic: boolean;\n placement: SkyPopoverPlacement;\n popoverTitle?: string;\n popoverType: SkyPopoverType;\n }\n ): void {\n this.#caller = caller;\n this.dismissOnBlur = config.dismissOnBlur;\n this.enableAnimations = config.enableAnimations;\n this.horizontalAlignment = config.horizontalAlignment;\n this.popoverId = config.id;\n this.placement = config.placement;\n this.popoverTitle = config.popoverTitle;\n this.popoverType = config.popoverType;\n\n this.#changeDetector.markForCheck();\n\n // Indicates if the popover should be displayed statically.\n // Please note: This feature is internal-only and used by the visual tests to capture multiple\n // states simultaneously without the overhead of event listeners.\n /* istanbul ignore if */\n if (config.isStatic) {\n this.isOpen = true;\n this.#changeDetector.markForCheck();\n return;\n }\n\n // Let the styles render before gauging the affix dimensions.\n setTimeout(() => {\n /* istanbul ignore if */\n if (!this.popoverRef?.nativeElement || this.#ngUnsubscribe.isStopped) {\n return;\n }\n\n if (!this.affixer) {\n this.#setupAffixer();\n }\n\n const affixOptions: SkyAffixConfig = {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: parseAffixHorizontalAlignment(\n this.horizontalAlignment\n ),\n isSticky: true,\n placement: parseAffixPlacement(this.placement as SkyPopoverPlacement),\n };\n\n // Ensure vertical alignment is set according to the popover's placement value.\n if (\n affixOptions.placement === 'left' ||\n affixOptions.placement === 'right'\n ) {\n affixOptions.verticalAlignment = 'middle';\n }\n\n this.affixer!.affixTo(this.#caller?.nativeElement, affixOptions);\n\n this.#updateArrowOffset();\n\n this.isOpen = true;\n this.#changeDetector.markForCheck();\n });\n }\n\n public close(): void {\n this.isOpen = false;\n this.#changeDetector.markForCheck();\n }\n\n public applyFocus(): void {\n if (this.popoverRef && this.isOpen) {\n this.#coreAdapterService.getFocusableChildrenAndApplyFocus(\n this.popoverRef,\n '.sky-popover',\n true\n );\n }\n }\n\n #setupAffixer(): void {\n if (this.popoverRef) {\n const affixer = this.#affixService.createAffixer(this.popoverRef);\n\n affixer.offsetChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateArrowOffset();\n this.#changeDetector.markForCheck();\n });\n\n affixer.overflowScroll\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#updateArrowOffset();\n this.#changeDetector.markForCheck();\n });\n\n affixer.placementChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((change) => {\n this.placement = change.placement;\n this.#changeDetector.markForCheck();\n });\n\n this.affixer = affixer;\n }\n }\n\n #updateArrowOffset(): void {\n if (this.#caller && this.popoverRef && this.arrowRef && this.placement) {\n const { top, left } = this.#adapterService.getArrowCoordinates(\n {\n caller: this.#caller,\n popover: this.popoverRef,\n popoverArrow: this.arrowRef,\n },\n this.placement,\n this.themeName\n );\n\n this.arrowTop = top;\n this.arrowLeft = left;\n }\n }\n\n #isFocusLeavingElement(event: KeyboardEvent): boolean {\n const focusableItems = this.#coreAdapterService.getFocusableChildren(\n this.#elementRef.nativeElement\n );\n\n const isFirstItem = focusableItems[0] === event.target && event.shiftKey;\n\n const isLastItem =\n focusableItems[focusableItems.length - 1] === event.target &&\n !event.shiftKey;\n\n return focusableItems.length === 0 || isFirstItem || isLastItem;\n }\n\n #addEventListeners(): void {\n const hostElement = this.#elementRef.nativeElement;\n\n observableFromEvent(hostElement, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => this.#_isMouseEnter.next(true));\n\n observableFromEvent(hostElement, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => this.#_isMouseEnter.next(false));\n\n observableFromEvent<KeyboardEvent>(hostElement, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.close();\n this.#caller?.nativeElement.focus();\n event.preventDefault();\n event.stopPropagation();\n break;\n\n // Since the popover now lives in an overlay at the bottom of the document body, we need\n // to handle the tab key ourselves. Otherwise, focus would be moved to the browser's\n // search bar.\n case 'tab':\n if (!this.dismissOnBlur) {\n return;\n }\n\n /*istanbul ignore else*/\n if (this.#isFocusLeavingElement(event)) {\n this.close();\n this.#caller?.nativeElement.focus();\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n }\n });\n }\n}\n","<div\n class=\"sky-popover-container sky-popover-max-height\"\n [@.disabled]=\"!enableAnimations\"\n [@skyPopoverAnimation]=\"animationState\"\n [class.sky-popover-hidden]=\"!placement\"\n [ngClass]=\"[\n 'sky-popover-alignment-' + horizontalAlignment,\n 'sky-popover-placement-' + placement,\n 'sky-popover-' + popoverType\n ]\"\n (@skyPopoverAnimation.done)=\"onAnimationEvent($event)\"\n (@skyPopoverAnimation.start)=\"onAnimationEvent($event)\"\n #popoverRef\n>\n <div\n class=\"sky-popover\"\n tabindex=\"-1\"\n [skyThemeClass]=\"{\n 'sky-rounded-corners sky-shadow': 'default',\n 'sky-elevation-4': 'modern'\n }\"\n >\n <header\n *ngIf=\"popoverTitle\"\n class=\"sky-popover-header\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg sky-margin-stacked-lg': 'modern'\n }\"\n >\n <h1\n *ngIf=\"popoverTitle\"\n class=\"sky-popover-title\"\n [skyThemeClass]=\"{\n 'sky-font-heading-4': 'default',\n 'sky-font-emphasized': 'modern'\n }\"\n >\n {{ popoverTitle }}\n </h1>\n </header>\n <div\n class=\"sky-popover-body\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg': 'modern'\n }\"\n >\n <ng-container #contentTarget></ng-container>\n </div>\n <span\n aria-hidden=\"true\"\n class=\"sky-popover-arrow\"\n [style.left.px]=\"arrowLeft\"\n [style.top.px]=\"arrowTop\"\n #arrowRef\n ></span>\n </div>\n</div>\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {\n SKY_STACKING_CONTEXT,\n SkyOverlayInstance,\n SkyOverlayService,\n SkyStackingContext,\n} from '@skyux/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\nimport { SkyPopoverContext } from './popover-context';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverType } from './types/popover-type';\n\nlet nextId = 0;\n\n@Component({\n selector: 'sky-popover',\n templateUrl: './popover.component.html',\n})\nexport class SkyPopoverComponent implements OnDestroy {\n /**\n * The horizontal alignment of the popover in relation to the trigger element.\n * The `skyPopoverAlignment` property on the popover directive takes precedence over this property when specified.\n * @default \"center\"\n */\n @Input()\n public set alignment(value: SkyPopoverAlignment | undefined) {\n this.#_alignment = value ?? 'center';\n }\n\n public get alignment(): SkyPopoverAlignment {\n return this.#_alignment;\n }\n\n /**\n * Whether to close the popover when it loses focus.\n * To require users to click a trigger button to close the popover, set this input to false.\n * @default true\n */\n @Input()\n public set dismissOnBlur(value: boolean | undefined) {\n this.#_dismissOnBlur = value ?? true;\n }\n\n public get dismissOnBlur(): boolean {\n return this.#_dismissOnBlur;\n }\n\n /**\n * The placement of the popover in relation to the trigger element.\n * The `skyPopoverPlacement` property on the popover directive takes precedence over this property when specified.\n * @default \"above\"\n */\n @Input()\n public set placement(value: SkyPopoverPlacement | undefined) {\n this.#_placement = value ?? 'above';\n }\n\n public get placement(): SkyPopoverPlacement {\n return this.#_placement;\n }\n\n /**\n * The title for the popover.\n */\n @Input()\n public popoverTitle: string | undefined;\n\n /**\n * The type of popover.\n * @default \"info\"\n */\n @Input()\n public set popoverType(value: SkyPopoverType | undefined) {\n this.#_popoverType = value ?? 'info';\n }\n\n public get popoverType(): SkyPopoverType {\n return this.#_popoverType;\n }\n\n /**\n * Fires when users close the popover.\n */\n @Output()\n public popoverClosed = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Fires when users open the popover.\n */\n @Output()\n public popoverOpened = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Whether the popover is in the process of being opened or closed.\n * @internal\n */\n public isActive = false;\n\n /**\n * Used by unit tests to disable animations since the component is injected at the bottom of the\n * document body.\n * @internal\n */\n public enableAnimations = true;\n\n public isMouseEnter = false;\n\n public popoverId = `sky-popover-${nextId++}`;\n\n @ViewChild('templateRef', {\n read: TemplateRef,\n static: true,\n })\n public templateRef: TemplateRef<unknown> | undefined;\n\n #contentRef!: SkyPopoverContentComponent;\n\n #isMarkedForCloseOnMouseLeave = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #overlay: SkyOverlayInstance | undefined;\n\n #_alignment: SkyPopoverAlignment = 'center';\n\n #_dismissOnBlur = true;\n\n #_placement: SkyPopoverPlacement = 'above';\n\n #_popoverType: SkyPopoverType = 'info';\n\n #overlayService: SkyOverlayService;\n\n #zIndex: Observable<number> | undefined;\n\n constructor(\n overlayService: SkyOverlayService,\n @Optional()\n @Inject(SKY_STACKING_CONTEXT)\n stackingContext?: SkyStackingContext\n ) {\n this.#overlayService = overlayService;\n this.#zIndex = stackingContext?.zIndex;\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n\n if (this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n }\n }\n\n /**\n * Positions the popover next to a given caller element.\n * @param caller The element that opened the popover.\n * @param placement The placement of the popover.\n * @param alignment The horizontal alignment of the popover.\n * @internal\n */\n public positionNextTo(\n caller: ElementRef,\n placement?: SkyPopoverPlacement,\n alignment?: SkyPopoverAlignment\n ): void {\n if (!this.#overlay) {\n this.#setupOverlay();\n }\n\n this.placement = placement ?? this.placement;\n this.alignment = alignment ?? this.alignment;\n this.isActive = true;\n\n this.#contentRef.open(caller, {\n dismissOnBlur: this.dismissOnBlur,\n enableAnimations: this.enableAnimations,\n horizontalAlignment: this.alignment,\n id: this.popoverId,\n isStatic: false,\n placement: this.placement,\n popoverTitle: this.popoverTitle,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover.\n * @internal\n */\n public close(): void {\n /*istanbul ignore next*/\n this.#contentRef?.close();\n }\n\n /**\n * Brings focus to the popover element if its open.\n * @internal\n */\n public applyFocus(): void {\n /*istanbul ignore next*/\n this.#contentRef?.applyFocus();\n }\n\n /**\n * Adds a flag to the popover to close when the mouse leaves the popover's bounds.\n * @internal\n */\n public markForCloseOnMouseLeave(): void {\n this.#isMarkedForCloseOnMouseLeave = true;\n }\n\n #setupOverlay(): void {\n if (this.templateRef) {\n const overlay = this.#overlayService.create({\n enableScroll: true,\n enablePointerEvents: true,\n });\n\n if (this.#zIndex) {\n this.#zIndex\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((zIndex) => {\n overlay.componentRef.instance.zIndex = zIndex.toString(10);\n });\n }\n\n overlay.backdropClick\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.dismissOnBlur) {\n this.close();\n }\n });\n\n const contentRef = overlay.attachComponent(SkyPopoverContentComponent, [\n {\n provide: SkyPopoverContext,\n useValue: new SkyPopoverContext({\n contentTemplateRef: this.templateRef,\n }),\n },\n ]);\n\n contentRef.opened.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n this.popoverOpened.emit(this);\n });\n\n contentRef.closed.pipe(takeUntil(this.#ngUnsubscribe)).subscribe(() => {\n /*istanbul ignore else*/\n if (this.isActive && this.#overlay) {\n this.#overlayService.close(this.#overlay);\n this.#overlay = undefined;\n this.isActive = false;\n this.popoverClosed.emit(this);\n }\n });\n\n contentRef.isMouseEnter\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((isMouseEnter) => {\n this.isMouseEnter = isMouseEnter;\n if (this.#isMarkedForCloseOnMouseLeave) {\n this.#isMarkedForCloseOnMouseLeave = false;\n this.close();\n }\n });\n\n this.#overlay = overlay;\n this.#contentRef = contentRef;\n }\n }\n}\n","<ng-template #templateRef>\n <ng-content></ng-content>\n</ng-template>\n","/**\n * The type of message to send to the popover component.\n */\nexport enum SkyPopoverMessageType {\n /**\n * Opens the popover.\n */\n Open = 0,\n\n /**\n * Closes the popover.\n */\n Close = 1,\n\n /**\n * Repositions the popover to the appropriate position.\n * This is useful for when the popover's width and height change while it is open.\n */\n Reposition = 2,\n\n /**\n * Brings focus to the popover element.\n */\n Focus = 3,\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\n\nimport { Subject, Subscription, fromEvent as observableFromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverComponent } from './popover.component';\nimport { SkyPopoverAlignment } from './types/popover-alignment';\nimport { SkyPopoverMessage } from './types/popover-message';\nimport { SkyPopoverMessageType } from './types/popover-message-type';\nimport { SkyPopoverPlacement } from './types/popover-placement';\nimport { SkyPopoverTrigger } from './types/popover-trigger';\n\n@Directive({\n selector: '[skyPopover]',\n})\nexport class SkyPopoverDirective implements OnInit, OnDestroy {\n /**\n * Appends the `sky-popover-trigger` class to the trigger element.\n * @internal\n */\n @HostBinding('class')\n protected directiveClass = 'sky-popover-trigger';\n\n /**\n * Appends the `data-popover-id` attribute to the trigger element set to a unique ID generated by the popover component.\n * @internal\n */\n // TODO: replace this with relevant ARIA attributes\n @HostBinding('[attr.data-popover-id]')\n protected popoverId: string | undefined;\n\n /**\n * The popover component to display. Add this directive to the trigger element that opens the popover.\n * @required\n */\n @Input()\n public set skyPopover(value: SkyPopoverComponent | undefined) {\n this.popoverId = value?.popoverId;\n this.#_popover = value;\n }\n\n public get skyPopover(): SkyPopoverComponent | undefined {\n return this.#_popover;\n }\n\n /**\n * The horizontal alignment of the popover in relation to the trigger element.\n */\n @Input()\n public skyPopoverAlignment: SkyPopoverAlignment | undefined;\n\n /**\n * The RxJS `Subject` to send commands to the popover that respect the `SkyPopoverMessage` type.\n */\n @Input()\n public set skyPopoverMessageStream(\n value: Subject<SkyPopoverMessage> | undefined\n ) {\n this.#_skyPopoverMessageStream = value ?? new Subject<SkyPopoverMessage>();\n this.#subscribeMessageStream();\n }\n\n public get skyPopoverMessageStream(): Subject<SkyPopoverMessage> {\n return this.#_skyPopoverMessageStream;\n }\n\n #_skyPopoverMessageStream = new Subject<SkyPopoverMessage>();\n\n #messageStreamSub: Subscription | undefined;\n\n /**\n * The placement of the popover in relation to the trigger element.\n */\n @Input()\n public skyPopoverPlacement: SkyPopoverPlacement | undefined;\n\n /**\n * The user action that displays the popover.\n */\n @Input()\n public set skyPopoverTrigger(value: SkyPopoverTrigger | undefined) {\n this.#_trigger = value ?? 'click';\n }\n\n public get skyPopoverTrigger(): SkyPopoverTrigger {\n return this.#_trigger;\n }\n\n #ngUnsubscribe = new Subject<void>();\n\n #_popover: SkyPopoverComponent | undefined;\n\n #_trigger: SkyPopoverTrigger = 'click';\n\n #elementRef: ElementRef;\n\n constructor(elementRef: ElementRef) {\n this.#elementRef = elementRef;\n this.#subscribeMessageStream();\n }\n\n public ngOnInit(): void {\n this.#addEventListeners();\n }\n\n public ngOnDestroy(): void {\n this.#removeEventListeners();\n this.#unsubscribeMessageStream();\n }\n\n public togglePopover(): void {\n if (this.skyPopover?.isActive) {\n this.#sendMessage(SkyPopoverMessageType.Close);\n return;\n }\n\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n\n #positionPopover(): void {\n this.skyPopover?.positionNextTo(\n this.#elementRef,\n this.skyPopoverPlacement,\n this.skyPopoverAlignment\n );\n }\n\n #closePopover(): void {\n this.skyPopover?.close();\n }\n\n #closePopoverOrMarkForClose(): void {\n if (this.skyPopover?.isMouseEnter) {\n this.skyPopover.markForCloseOnMouseLeave();\n } else {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n }\n\n #addEventListeners(): void {\n const element = this.#elementRef.nativeElement;\n\n observableFromEvent<KeyboardEvent>(element, 'keydown')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((event) => {\n if (!this.skyPopover?.isActive) {\n return;\n }\n\n const key = event.key.toLowerCase();\n\n switch (key) {\n case 'escape':\n this.#sendMessage(SkyPopoverMessageType.Close);\n event.preventDefault();\n event.stopPropagation();\n break;\n\n case 'tab':\n if (this.skyPopover.dismissOnBlur) {\n this.#sendMessage(SkyPopoverMessageType.Close);\n }\n break;\n\n case 'arrowdown':\n case 'arrowleft':\n case 'arrowright':\n case 'arrowup':\n case 'down':\n case 'left':\n case 'right':\n case 'up':\n this.#sendMessage(SkyPopoverMessageType.Focus);\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n });\n\n observableFromEvent(element, 'click')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.togglePopover();\n }\n });\n\n observableFromEvent(element, 'mouseenter')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = true;\n if (\n !this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n this.#sendMessage(SkyPopoverMessageType.Open);\n }\n }\n });\n\n observableFromEvent(element, 'mouseleave')\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = false;\n if (\n this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n // Give the popover a chance to set its isMouseEnter flag before checking to see\n // if it should be closed.\n setTimeout(() => {\n this.#closePopoverOrMarkForClose();\n });\n }\n }\n });\n }\n\n #removeEventListeners(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #handleIncomingMessages(message: SkyPopoverMessage): void {\n switch (message.type) {\n case SkyPopoverMessageType.Open:\n this.#positionPopover();\n break;\n\n case SkyPopoverMessageType.Close:\n /*istanbul ignore else*/\n if (this.skyPopover?.isActive) {\n this.#closePopover();\n }\n break;\n\n case SkyPopoverMessageType.Reposition:\n // Only reposition the popover if it is already open.\n if (this.skyPopover?.isActive) {\n this.#positionPopover();\n }\n break;\n\n case SkyPopoverMessageType.Focus:\n this.skyPopover?.applyFocus();\n break;\n }\n }\n\n #sendMessage(messageType: SkyPopoverMessageType): void {\n this.skyPopoverMessageStream.next({ type: messageType });\n }\n\n #subscribeMessageStream(): void {\n this.#unsubscribeMessageStream();\n\n this.#messageStreamSub = this.skyPopoverMessageStream.subscribe(\n (message) => {\n this.#handleIncomingMessages(message);\n }\n );\n }\n\n #unsubscribeMessageStream(): void {\n if (this.#messageStreamSub) {\n this.#messageStreamSub.unsubscribe();\n this.#messageStreamSub = undefined;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyAffixModule, SkyOverlayModule } from '@skyux/core';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\nimport { SkyPopoverComponent } from './popover.component';\nimport { SkyPopoverDirective } from './popover.directive';\n\n@NgModule({\n declarations: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyIconModule,\n SkyOverlayModule,\n SkyPopoversResourcesModule,\n SkyThemeModule,\n ],\n exports: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n})\nexport class SkyPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["parseAffixHorizontalAlignment","observableFromEvent","i3","i4","nextId","i1.SkyDropdownComponent","i1","i2.SkyPopoverAdapterService","i3.SkyPopoverContext","i5"],"mappings":"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"}