@fundamental-ngx/core 0.43.59 → 0.43.61

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 (50) hide show
  1. package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-title-content.component.mjs +1 -1
  2. package/esm2020/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.mjs +1 -1
  3. package/esm2020/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.mjs +1 -1
  4. package/esm2020/menu/directives/menu-trigger.directive.mjs +5 -3
  5. package/esm2020/menu/menu-item/menu-item.component.mjs +3 -3
  6. package/esm2020/multi-combobox/select-all-toggler/select-all-toggler.component.mjs +1 -1
  7. package/esm2020/shared/index.mjs +2 -1
  8. package/esm2020/shared/types/heading-level.mjs +2 -0
  9. package/esm2020/shellbar/product-menu/product-menu.component.mjs +3 -3
  10. package/esm2020/shellbar/shellbar-title/shellbar-title.component.mjs +3 -3
  11. package/esm2020/step-input/step-input.component.mjs +8 -4
  12. package/esm2020/toolbar/toolbar.component.mjs +19 -4
  13. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +1 -1
  14. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  15. package/fesm2015/fundamental-ngx-core-grid-list.mjs +2 -2
  16. package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
  17. package/fesm2015/fundamental-ngx-core-menu.mjs +6 -4
  18. package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
  19. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +1 -1
  20. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  21. package/fesm2015/fundamental-ngx-core-shared.mjs.map +1 -1
  22. package/fesm2015/fundamental-ngx-core-shellbar.mjs +4 -4
  23. package/fesm2015/fundamental-ngx-core-shellbar.mjs.map +1 -1
  24. package/fesm2015/fundamental-ngx-core-step-input.mjs +7 -3
  25. package/fesm2015/fundamental-ngx-core-step-input.mjs.map +1 -1
  26. package/fesm2015/fundamental-ngx-core-toolbar.mjs +18 -3
  27. package/fesm2015/fundamental-ngx-core-toolbar.mjs.map +1 -1
  28. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +1 -1
  29. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  30. package/fesm2020/fundamental-ngx-core-grid-list.mjs +2 -2
  31. package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
  32. package/fesm2020/fundamental-ngx-core-menu.mjs +6 -4
  33. package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
  34. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +1 -1
  35. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  36. package/fesm2020/fundamental-ngx-core-shared.mjs.map +1 -1
  37. package/fesm2020/fundamental-ngx-core-shellbar.mjs +4 -4
  38. package/fesm2020/fundamental-ngx-core-shellbar.mjs.map +1 -1
  39. package/fesm2020/fundamental-ngx-core-step-input.mjs +7 -3
  40. package/fesm2020/fundamental-ngx-core-step-input.mjs.map +1 -1
  41. package/fesm2020/fundamental-ngx-core-toolbar.mjs +18 -3
  42. package/fesm2020/fundamental-ngx-core-toolbar.mjs.map +1 -1
  43. package/fundamental-ngx-core-v0.43.61.tgz +0 -0
  44. package/package.json +3 -3
  45. package/schematics/add-dependencies/index.js +4 -4
  46. package/shared/index.d.ts +1 -0
  47. package/shared/types/heading-level.d.ts +1 -0
  48. package/step-input/step-input.component.d.ts +3 -1
  49. package/toolbar/toolbar.component.d.ts +9 -2
  50. package/fundamental-ngx-core-v0.43.59.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-menu.mjs","sources":["../../../../libs/core/src/lib/menu/directives/menu-title.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-interactive.directive.ts","../../../../libs/core/src/lib/menu/services/menu.service.ts","../../../../libs/core/src/lib/menu/menu-item/menu-item.component.ts","../../../../libs/core/src/lib/menu/menu-item/menu-item.component.html","../../../../libs/core/src/lib/menu/directives/menu-shortcut.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-trigger.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-addon.directive.ts","../../../../libs/core/src/lib/menu/directives/deprecated-menu-compact.directive.ts","../../../../libs/core/src/lib/menu/menu-separator/menu-separator.component.ts","../../../../libs/core/src/lib/menu/menu.interface.ts","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.component.ts","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.component.html","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.module.ts","../../../../libs/core/src/lib/menu/menu.component.ts","../../../../libs/core/src/lib/menu/menu.component.html","../../../../libs/core/src/lib/menu/menu.module.ts","../../../../libs/core/src/lib/menu/default-menu-item.class.ts","../../../../libs/core/src/lib/menu/menu-keyboard.service.ts","../../../../libs/core/src/lib/menu/fundamental-ngx-core-menu.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding } from '@angular/core';\n\n/**\n * The directive that represents the menu title.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-title]'\n})\nexport class MenuTitleDirective {\n /** @hidden */\n @HostBinding('class.fd-menu__title')\n fdMenuTitleClass = true;\n\n /** Returns element title text */\n @HostBinding('attr.title')\n get title(): string {\n return this._elementRef.nativeElement.textContent;\n }\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n}\n","import { Directive, ElementRef, HostBinding } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-interactive]',\n host: {\n role: 'menuitem'\n }\n})\nexport class MenuInteractiveDirective {\n /** @hidden */\n @HostBinding('attr.tabindex')\n tabindex = 0;\n\n /** @hidden */\n @HostBinding('class.is-disabled')\n disabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHaspopup = false;\n\n /** @hidden */\n @HostBinding('class.fd-menu__link')\n readonly fdMenuLinkClass: boolean = true;\n\n /** @hidden */\n _fromSplitButton = false;\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n setSelected(isSelected: boolean): void {\n this.selected = isSelected && (this.ariaHaspopup || this._fromSplitButton);\n if (this.ariaHaspopup || this._fromSplitButton) {\n this.ariaExpanded = isSelected;\n }\n }\n\n /** @hidden */\n setDisabled(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.tabindex = isDisabled ? -1 : 0;\n }\n\n /** @hidden */\n setSubmenu(hasSubmenu: boolean, itemId?: string): void {\n this.ariaHaspopup = hasSubmenu;\n this.ariaControls = hasSubmenu ? itemId || this.ariaControls : null;\n }\n}\n","import { ElementRef, Injectable, Optional, Renderer2 } from '@angular/core';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { MenuComponent } from '../menu.component';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\ninterface MenuNode {\n item: MenuItemComponent | null;\n parent: MenuNode | null;\n children: MenuNode[];\n}\n\n/** `null` key is used for the root node */\ntype MenuMap = Map<MenuItemComponent | null, MenuNode>;\n\n@Injectable()\nexport class MenuService {\n /** Map of menu items to menu nodes */\n menuMap: MenuMap;\n\n /** Currently focused node */\n focusedNode: MenuNode | undefined;\n\n /** Collection of active menu nodes */\n activeNodePath: MenuNode[] = [];\n\n /** Collection of active menu nodes */\n private _isMobileMode = new Subject<boolean>();\n\n /** @hidden */\n private _menuComponent: MenuComponent;\n\n /** @hidden */\n private _destroyKeyboardHandlerListener: () => void;\n\n /** @hidden */\n get _isRtl(): boolean {\n return this._rtlService?.rtl.value;\n }\n\n /** @hidden */\n constructor(private _renderer: Renderer2, @Optional() private readonly _rtlService: RtlService) {}\n\n /** Reference to menu component */\n get menuComponent(): MenuComponent {\n return this._menuComponent;\n }\n\n /** Returns menu mode observable */\n get isMobileMode(): Observable<boolean> {\n return this._isMobileMode.pipe(distinctUntilChanged());\n }\n\n /** Sets menu mode */\n setMenuMode(value: boolean): void {\n this._isMobileMode.next(value);\n }\n\n /** Sets given menu item as focused */\n setFocused(menuItem: MenuItemComponent | null): void {\n this.focusedNode = this.menuMap.get(menuItem);\n this.focusedNode?.item?.focus();\n }\n\n /**\n * Sets state of a given menu item\n * @param isActive - Whether should be set as active or inactive\n * @param menuItem `MenuItemComponent` that should be set as active or inactive\n */\n setActive(isActive: boolean, menuItem: MenuItemComponent | null): void {\n if (!menuItem || (isActive && menuItem.disabled)) {\n return;\n }\n\n if (isActive) {\n this._addToActivePath(menuItem);\n } else {\n this._removeFromActivePath(menuItem);\n }\n\n this._emitActivePath();\n }\n\n /**\n * Close active sibling submenu if any\n * @param menuItem to look for active siblings\n */\n setInactiveSiblingMenuItem(menuItem: MenuItemComponent): void {\n this._removeActiveSibling(menuItem);\n this._emitActivePath();\n }\n\n /** Initializes menu service based on given Menu Component */\n setMenuComponent(menu: MenuComponent): void {\n this._menuComponent = menu;\n this.menuMap = this._buildMenuMap(this._menuComponent);\n }\n\n /** Clears Active Node Path and resets Focused Node */\n resetMenuState(): void {\n this._clearActivePath();\n this.focusedNode = undefined;\n this._emitActivePath();\n }\n\n /** - Updates the structure of the menu\n * - Validates Active Node Path\n * - Validates Focused Node */\n rebuildMenu(): void {\n this.menuMap = this._buildMenuMap(this._menuComponent);\n\n const deadNode = this.activeNodePath.find((node) => !this.menuMap.has(node.item));\n if (deadNode?.item) {\n this.setActive(false, deadNode.item);\n }\n\n const invalidFocusedElement = this.focusedNode && !this.menuMap.get(this.focusedNode.item);\n if (invalidFocusedElement) {\n this.focusedNode =\n this.activeNodePath[this.activeNodePath.length - 1] || this.menuMap.get(null)!.children[0];\n }\n }\n\n /** Adds Menu keyboard support */\n addKeyboardSupport(elementRef: ElementRef): void {\n this.removeKeyboardSupport();\n this._setKeyboardSupport(elementRef);\n }\n\n /** Removes Menu keyboard support */\n removeKeyboardSupport(): void {\n if (this._destroyKeyboardHandlerListener) {\n this._destroyKeyboardHandlerListener();\n }\n }\n\n /** @hidden */\n onDestroy(): void {\n this.removeKeyboardSupport();\n }\n\n /** @hidden Returns siblings of given node */\n private _nodeSiblings(node: MenuNode): MenuNode[] | undefined {\n return node.parent ? node.parent.children : this.menuMap.get(null)?.children;\n }\n\n /** @hidden Adds given element to the Active Node Path and setts as active*/\n private _addToActivePath(menuItem: MenuItemComponent): void {\n const menuNode = this.menuMap.get(menuItem);\n\n this._removeActiveSibling(menuItem);\n\n if (menuNode) {\n this.activeNodePath.push(menuNode);\n menuNode.item?.setSelected(true);\n }\n }\n\n /** @hidden Removes given element and all its successors from the Active Node Path and setts as inactive*/\n private _removeFromActivePath(menuItem: MenuItemComponent | null): void {\n const menuNode = this.menuMap.get(menuItem);\n if (menuNode) {\n const pathIndex = this.activeNodePath.findIndex((i) => i.item === menuNode.item);\n\n if (pathIndex !== -1) {\n this.activeNodePath\n .splice(pathIndex)\n .forEach((removedActiveNode) => removedActiveNode.item?.setSelected(false));\n }\n }\n }\n\n /** @hidden Removes all elements from the Active Node Path and sets them as closed */\n private _clearActivePath(): void {\n if (this.activeNodePath.length) {\n this._removeFromActivePath(this.activeNodePath[0].item);\n }\n }\n\n /** @hidden\n * - Builds Menu Nodes based on Menu Items\n * - Creates Map of the Menu Nodes */\n private _buildMenuMap(menu: MenuComponent): MenuMap {\n function buildNode(menuItem: MenuItemComponent): MenuNode {\n return {\n item: menuItem,\n parent: null,\n children: menuItem.submenu\n ? menuItem.submenu.menuItems.map((subMenuItem) => buildNode(subMenuItem))\n : []\n };\n }\n\n function setParents(node: MenuNode, parent: MenuNode | null): void {\n node.parent = parent;\n node.children.forEach((childNode) => setParents(childNode, node));\n }\n\n function toMap(node: MenuNode, map = new Map() as MenuMap): MenuMap {\n map.set(node.item, node);\n node.children.forEach((childNode) => toMap(childNode, map));\n return map;\n }\n\n const rootItems = menu._menuItems.filter((rootItem) => !rootItem.parentSubmenu);\n\n /** root item */\n const menuTree: MenuNode = {\n item: null,\n parent: null,\n children: rootItems.map((item) => buildNode(item))\n };\n\n setParents(menuTree, null);\n\n return toMap(menuTree);\n }\n\n /** @hidden Removes active sibling of a given menu item from the Active Path */\n private _removeActiveSibling(menuItem: MenuItemComponent): void {\n const menuNode = this.menuMap.get(menuItem);\n const children = menuNode?.parent?.children.map((i) => i.item);\n const activeSibling = this.activeNodePath.find((i) => children?.includes(i.item));\n\n if (activeSibling) {\n const activeParentIndex = this.activeNodePath.indexOf(menuNode?.parent as MenuNode);\n this._removeFromActivePath(activeParentIndex !== -1 ? activeSibling.item : this.activeNodePath[0].item);\n }\n }\n\n /** @hidden Adds keyboard support */\n private _setKeyboardSupport(elementRef: ElementRef): void {\n this._destroyKeyboardHandlerListener = this._renderer.listen(\n elementRef.nativeElement,\n 'keydown',\n (event: KeyboardEvent) => this._handleKey(event)\n );\n }\n\n /** @hidden */\n private _handleKey(event: KeyboardEvent): void {\n const focusRight = (node): void => {\n setTimeout(() => this.setFocused(node.children[0].item));\n };\n let matched = true;\n\n if (!this.focusedNode) {\n return;\n }\n\n if (\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) && !this._isRtl) ||\n (KeyUtil.isKeyCode(event, LEFT_ARROW) && this._isRtl)\n ) {\n if (this.focusedNode?.children.length) {\n this.setActive(true, this.focusedNode.item);\n focusRight(this.focusedNode);\n }\n } else if (\n (KeyUtil.isKeyCode(event, LEFT_ARROW) && !this._isRtl) ||\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) && this._isRtl)\n ) {\n if (this.focusedNode.parent?.item) {\n this.setActive(false, this.focusedNode.parent.item);\n this.setFocused(this.focusedNode.parent.item);\n }\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n const closest = this._closestEnabled(this.focusedNode, 'down');\n if (closest) {\n this.setFocused(closest.item);\n }\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n const closest = this._closestEnabled(this.focusedNode, 'up');\n if (closest) {\n this.setFocused(closest.item);\n }\n } else if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n const focusedNode = this.focusedNode;\n this.setActive(true, focusedNode?.item);\n focusedNode.item?.click();\n if (focusedNode.children.length) {\n focusRight(focusedNode);\n }\n } else if (KeyUtil.isKeyCode(event, ESCAPE) && this.menuComponent.closeOnEscapeKey) {\n this.menuComponent.close();\n } else {\n matched = false;\n }\n\n if (matched) {\n event.preventDefault();\n }\n }\n\n /** @hidden Emits an array of active menu items */\n private _emitActivePath(): void {\n this.menuComponent.activePath.emit(this.activeNodePath.map((node) => node.item) as MenuItemComponent[]);\n }\n\n /** @hidden Depending on direction returns closest enabled sibling of given node */\n private _closestEnabled(node: MenuNode, direction: 'up' | 'down'): MenuNode | null {\n const siblings =\n direction === 'up' ? [...(this._nodeSiblings(node) ?? [])].reverse() : this._nodeSiblings(node);\n\n if (siblings) {\n const startIndex = siblings.indexOf(node) + 1;\n\n for (let i = startIndex; i < siblings.length; i++) {\n if (siblings[i].item && !siblings[i].item!.disabled) {\n return siblings[i];\n }\n }\n }\n\n return null;\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { defer, fromEvent, Observable, Subject, Subscription, timer } from 'rxjs';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { MenuTitleDirective } from '../directives/menu-title.directive';\nimport { DefaultMenuItem } from '../default-menu-item.class';\nimport { MenuInteractiveDirective } from '../directives/menu-interactive.directive';\nimport { MenuService } from '../services/menu.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nlet menuUniqueId = 0;\n\nexport interface BaseSubmenu {\n templateRef: TemplateRef<any>;\n menuItems: MenuItemComponent[];\n menuService: MenuService;\n ariaLabel: Nullable<string>;\n ariaLabelledby: Nullable<string>;\n _menuItemsChange$: Observable<void>;\n _registerItem(item: MenuItemComponent): void;\n _unregisterItem(item: MenuItemComponent): void;\n}\n\nexport const SUBMENU = new InjectionToken<BaseSubmenu>('Submenu component dependency');\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[fd-menu-item]',\n exportAs: 'fd-menu-item',\n templateUrl: './menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'attr.role': 'menuitem',\n '[class.fd-menu__item]': 'true'\n }\n})\nexport class MenuItemComponent implements DefaultMenuItem, OnInit, OnChanges, AfterContentInit, OnDestroy {\n /** Set the Menu Item as disabled/enabled */\n @Input()\n disabled = false;\n\n /** Menu Item id attribute value */\n @Input()\n itemId = `fd-menu-item-${menuUniqueId++}`;\n\n /** Reference to sub-menu component */\n @Input()\n submenu: BaseSubmenu | undefined;\n\n /** Reference to the parent submenu if nested menus created dynamically */\n @Input()\n parentSubmenu: BaseSubmenu | undefined;\n\n /** Emitted when the menu item is selected. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onSelect: EventEmitter<void> = new EventEmitter<void>();\n\n /** @hidden Reference to the Menu Item title */\n @ContentChild(MenuTitleDirective)\n menuItemTitle: MenuTitleDirective;\n\n /** @hidden Reference to the Menu Item interactive element */\n @ContentChild(MenuInteractiveDirective)\n menuInteractive: MenuInteractiveDirective;\n\n /** @hidden Whether sub-menu is currently visible*/\n submenuVisible = false;\n\n /** @hidden */\n private _subscriptions: Subscription = new Subscription();\n\n /** @hidden */\n private _hoverSubscriptions: Subscription = new Subscription();\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef,\n @Optional() public menuService: MenuService | null,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(SUBMENU) private _submenu: BaseSubmenu | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.parentSubmenu) {\n this._submenu = this.parentSubmenu;\n this._submenu._registerItem(this);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setMenuService();\n this._initialiseItemState();\n this._listenOnMenuLinkClick();\n this._listenOnOuterFocus();\n this._listenOnMenuMode();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled'] && !changes['disabled'].firstChange) {\n this.menuInteractive.setDisabled(this.disabled);\n }\n if (changes['submenu'] && !changes['submenu'].firstChange) {\n this.menuInteractive.setSubmenu(!!this.submenu, this.submenu ? this.itemId : undefined);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.parentSubmenu) {\n this._submenu?._unregisterItem(this);\n }\n\n this._subscriptions.unsubscribe();\n this._hoverSubscriptions.unsubscribe();\n }\n\n /** Whether menu item has popup (desktop mode) */\n get hasPopup(): boolean {\n return !!this.submenu && (!this.menuService?.menuComponent || !this.menuService?.menuComponent.mobile);\n }\n\n /** Focuses Menu Item interactive element */\n focus(): void {\n if (this.menuInteractive) {\n this.menuInteractive.elementRef.nativeElement.focus();\n }\n }\n\n /** Clicks Menu Item interactive element */\n click(): void {\n if (this.menuInteractive) {\n this.menuInteractive.elementRef.nativeElement.click();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** @hidden Sets menu item as selected/unselected based on isSelected flag */\n setSelected(isSelected: boolean, fromSplit?: boolean): void {\n this.menuInteractive.setSelected(isSelected);\n this.submenuVisible = isSelected && !!this.submenu;\n if (!fromSplit) {\n this.onSelect.emit();\n }\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden Creates click listener on menu item interactive element */\n private _listenOnMenuLinkClick(): void {\n this._subscriptions.add(\n fromEvent(this.menuInteractive.elementRef.nativeElement, 'click').subscribe(() =>\n this.menuService?.setActive(true, this)\n )\n );\n }\n\n /** @hidden Creates hover listeners for activating/deactivating menu item */\n private _listenOnMenuLinkHover(): Subscription {\n const hoverSubscriptions: Subscription = new Subscription();\n\n const mouseEnter$: Observable<MouseEvent> = fromEvent(\n this.menuInteractive.elementRef.nativeElement,\n 'mouseenter'\n );\n const mouseLeave$: Observable<MouseEvent> = fromEvent(\n this.menuInteractive.elementRef.nativeElement,\n 'mouseleave'\n );\n\n const timerFactory$ = defer(() =>\n timer(this.menuService ? this.menuService.menuComponent.openOnHoverTime : 0).pipe(takeUntil(mouseLeave$))\n );\n\n // Set active on hover\n hoverSubscriptions.add(\n mouseEnter$\n .pipe(\n filter(() => !!this.menuService),\n switchMap(() => timerFactory$)\n )\n .subscribe(() => {\n if (this.submenu) {\n // Open submenu\n this.menuService!.setActive(true, this);\n }\n if (!this.submenu) {\n // Close sibling submenu if opened\n this.menuService!.setInactiveSiblingMenuItem(this);\n }\n })\n );\n\n return hoverSubscriptions;\n }\n\n /** @hidden Initializes menu link state based on item initial state */\n private _initialiseItemState(): void {\n this.menuInteractive.setSubmenu(!!this.submenu, this.itemId);\n this.menuInteractive.setDisabled(this.disabled);\n }\n\n /** @hidden Checks for Menu Service dependency and passes it if further */\n private _setMenuService(): void {\n this.menuService = this.menuService || this._submenu?.menuService || null;\n if (this.submenu && this.menuService) {\n this.submenu.menuService = this.menuService;\n }\n }\n\n /** @hidden Listen on menu mode and set proper mode listeners */\n private _listenOnMenuMode(): void {\n this.menuService?.isMobileMode.subscribe((isMobile) => {\n this._hoverSubscriptions.unsubscribe();\n if (!isMobile) {\n this._hoverSubscriptions = this._listenOnMenuLinkHover();\n }\n });\n }\n\n /** @hidden Updates focused menu item on outer focus */\n private _listenOnOuterFocus(): void {\n this._subscriptions.add(\n fromEvent(this.menuInteractive.elementRef.nativeElement, 'focus').subscribe(() => {\n if (this.menuService && this.menuService.focusedNode !== this.menuService.menuMap.get(this)) {\n this.menuService.setFocused(this);\n }\n })\n );\n }\n}\n\n@Component({\n selector: 'fd-submenu',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: SUBMENU, useExisting: SubmenuComponent }],\n exportAs: 'fdSubmenu'\n})\nexport class SubmenuComponent implements BaseSubmenu, AfterContentInit {\n /** Aria-label for navigation */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing navigation */\n @Input()\n ariaLabelledby: Nullable<string>;\n\n /** @hidden Reference to template with Submenu items */\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\n\n /** @hidden Reference to Submenu MenuItems */\n @ContentChildren(MenuItemComponent)\n _projectedItems: QueryList<MenuItemComponent>;\n\n /** @hidden */\n _registeredItems: MenuItemComponent[] = [];\n\n /** @hidden Reference to MenuService used by MenuItems */\n menuService: MenuService;\n\n /** @hidden */\n _menuItemsChange$ = new Subject<void>();\n\n /** @hidden */\n get menuItems(): MenuItemComponent[] {\n return this._projectedItems.length ? this._projectedItems.toArray() : this._registeredItems;\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._projectedItems.changes.subscribe(() => this._menuItemsChange$.next());\n }\n\n /** @hidden method for manually registering item when it's not visible for @ContentChildren */\n _registerItem(item: MenuItemComponent): void {\n this._registeredItems.push(item);\n this._menuItemsChange$.next();\n }\n\n /** @hidden method for manually unregistering item when it's not visible for @ContentChildren */\n _unregisterItem(item: MenuItemComponent): void {\n this._registeredItems = this._registeredItems.filter((i) => i !== item);\n this._menuItemsChange$.next();\n }\n}\n","<ng-content></ng-content>\n\n<ng-container *ngIf=\"hasPopup && submenu\">\n <ul\n class=\"fd-menu__sublist\"\n role=\"menu\"\n [attr.id]=\"itemId\"\n [attr.aria-hidden]=\"!submenuVisible\"\n [attr.aria-label]=\"submenu.ariaLabel\"\n [attr.aria-labelledby]=\"submenu.ariaLabelledby\"\n >\n <ng-container *ngTemplateOutlet=\"submenu.templateRef\"></ng-container>\n </ul>\n</ng-container>\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-shortcut]'\n})\nexport class MenuShortcutDirective implements AfterViewInit, OnDestroy {\n /** Hide shortcuts in mobile mode */\n @Input()\n hideOnMobile = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__shortcut')\n readonly fdMenuShortcutClass: boolean = true;\n\n /** @hidden */\n private _subscriptions: Subscription = new Subscription();\n\n /** @hidden */\n constructor(private _menuItem: MenuItemComponent, private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._hideOnMobile();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n private _hideOnMobile(): void {\n this._subscriptions.add(\n this._menuItem.menuService?.isMobileMode.pipe(filter(() => this.hideOnMobile)).subscribe((isMobile) => {\n if (isMobile) {\n this._elementRef.nativeElement.style.display = 'none';\n } else {\n this._elementRef.nativeElement.style.display = null;\n }\n })\n );\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { MenuComponent } from '../menu.component';\n\n@Directive({\n selector: '[fdMenuTrigger]'\n})\nexport class MenuTriggerDirective implements OnDestroy {\n /** Set reference to Menu Component */\n @Input('fdMenuTrigger')\n set menu(menu: MenuComponent | undefined) {\n this._unsubscribeFromMenu();\n\n if (menu) {\n menu.trigger = this._elementRef;\n this._subscribeToMenu(menu);\n }\n\n this._setAriaAttributes(menu);\n }\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHasPopup: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n private _menuSubscription: Subscription = new Subscription();\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribeFromMenu();\n }\n\n /** @hidden */\n private _subscribeToMenu(menu: MenuComponent): void {\n this._menuSubscription.add(\n menu.isOpenChange.subscribe(() => {\n this._setAriaAttributes(menu);\n })\n );\n }\n\n /** @hidden */\n private _unsubscribeFromMenu(): void {\n this._menuSubscription.unsubscribe();\n this._menuSubscription = new Subscription();\n }\n\n /** @hidden */\n private _setAriaAttributes(menu?: MenuComponent): void {\n this.ariaHasPopup = !!menu;\n this.ariaExpanded = menu?.isOpen;\n this.ariaControls = menu?.isOpen ? menu.id : null;\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fd-menu-addon',\n template: `\n <fd-icon [glyph]=\"glyph\" *ngIf=\"glyph\" role=\"presentation\"></fd-icon>\n <ng-content></ng-content>\n `\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class MenuAddonDirective {\n /** Whether addon is used before or after text */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('position') set setAddonPosition(position: 'before' | 'after') {\n this.fdAddonBeforeClass = position === 'before';\n this.fdAddonAfterClass = position === 'after';\n }\n\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n @Input()\n glyph: string;\n\n /** Whether is used as submenu indicator */\n @Input()\n @HostBinding('class.fd-menu__addon-after--submenu')\n submenuIndicator = false;\n\n /** Sets Aria hidden attribute */\n @Input()\n @HostBinding('attr.aria-hidden')\n ariaHidden = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__addon-after')\n fdAddonAfterClass = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__addon-before')\n fdAddonBeforeClass = false;\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-menu[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedMenuCompactDirective)\n }\n ]\n})\nexport class DeprecatedMenuCompactDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-menu');\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-menu-separator',\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuSeparatorComponent {\n /** @hidden */\n @HostBinding('class.fd-menu__separator')\n readonly fdMenuSeparatorClass: boolean = true;\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const MENU_COMPONENT = new InjectionToken<string[]>('MenuInterface');\n\n/**\n * Menu Interface to have typing and avoid circular dependency between\n * MenuComponent <==> MenuMobileComponent\n */\nexport interface MenuInterface extends MobileMode {\n activePath: EventEmitter<MenuItemComponent[]>;\n dialogConfig: DialogConfig;\n isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { DialogBodyComponent, DialogService } from '@fundamental-ngx/core/dialog';\nimport { Observable, of } from 'rxjs';\nimport { MenuService } from '../services/menu.service';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { map, startWith, take, takeUntil } from 'rxjs/operators';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport { MENU_COMPONENT, MenuInterface } from '../menu.interface';\nimport {\n MOBILE_MODE_CONFIG,\n MobileModeBase,\n MobileModeControl,\n MobileModeConfigToken\n} from '@fundamental-ngx/core/mobile-mode';\n\n@Component({\n selector: 'fd-menu-mobile',\n templateUrl: './menu-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class MenuMobileComponent extends MobileModeBase<MenuInterface> implements OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /** Current menu title */\n title: string;\n\n /** Whether current menu level is submenu */\n isSubmenu: boolean;\n\n /** @hidden External content */\n childContent: TemplateRef<any> | undefined = undefined;\n\n /** @hidden Currently rendered menu view */\n view: TemplateRef<any> | undefined;\n\n /** @hidden Navigation icon name based on RTL */\n navigationIcon$: Observable<string>;\n\n /** @hidden */\n @ViewChild(DialogBodyComponent)\n set _watch(_dialogBody: DialogBodyComponent) {\n if (_dialogBody) {\n this._menuService.addKeyboardSupport(_dialogBody.elementRef);\n }\n }\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n private _menuService: MenuService,\n private _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone,\n @Optional() private _rtlService: RtlService,\n @Inject(MENU_COMPONENT) menuComponent: MenuInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, menuComponent, MobileModeControl.MENU, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnActivePathChange();\n this._listenOnMenuOpenChange();\n this._listenOnTextDirection();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.onDestroy();\n }\n\n /** Closes the Dialog and Menu component */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** Navigate back to parent level of submenu */\n backToParentLevel(): void {\n const menuItem = this._menuService.activeNodePath[this._menuService.activeNodePath.length - 1].item;\n this._menuService.setActive(false, menuItem);\n this._executeOnStable(() => {\n menuItem?.focus();\n });\n }\n\n /** @hidden Opens the Dialog */\n private _openDialog(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n disablePaddings: true,\n ...this.dialogConfig,\n escKeyCloseable: false,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement\n });\n }\n\n /** @hidden Listens on Active Path changes and updates mobile view */\n private _listenOnActivePathChange(): void {\n const initialItemPath: MenuItemComponent[] = this._menuService.activeNodePath\n .map((node) => node.item)\n .filter((v): v is MenuItemComponent => !!v);\n this._component.activePath\n .pipe(takeUntil(this._onDestroy$), startWith(initialItemPath))\n .subscribe((items) => this._setMenuView(items));\n }\n\n /**\n * @hidden\n * Executes a function when the zone is stable.\n */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n /** @hidden Sets menu view, title and isSubmenu flag */\n private _setMenuView(items: MenuItemComponent[]): void {\n const lastItem: MenuItemComponent = items[items.length - 1];\n this.isSubmenu = !!items.length;\n this.title = this._getDialogTitle(lastItem);\n this.view = this._getMenuView(lastItem);\n this._changeDetectorRef.markForCheck();\n this._executeOnStable(() => {\n this._menuService.focusedNode?.item?.focus();\n });\n }\n\n /** @hidden Opens/closes the Dialog based on Menu isOpenChange events */\n private _listenOnMenuOpenChange(): void {\n this._component.isOpenChange\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((isOpen) => (isOpen ? this._openDialog() : this.dialogRef.close()));\n }\n\n /** @hidden Sets navigation arrow depending on text direction */\n private _listenOnTextDirection(): void {\n this.navigationIcon$ = this._rtlService\n ? this._rtlService.rtl.pipe(map((isRtl) => (isRtl ? 'navigation-right-arrow' : 'navigation-left-arrow')))\n : of('navigation-left-arrow');\n }\n\n /** @hidden Returns dialog title */\n private _getDialogTitle(menuItem: MenuItemComponent): string {\n if (this.isSubmenu) {\n return menuItem.menuItemTitle ? menuItem.menuItemTitle.title : '';\n }\n\n return this.mobileConfig.title || '';\n }\n\n /** @hidden Returns dialog content view */\n private _getMenuView(menuItem: MenuItemComponent): TemplateRef<any> | undefined {\n if (this.isSubmenu) {\n return menuItem.submenu ? menuItem.submenu.templateRef : this.view;\n }\n return this.childContent;\n }\n}\n","<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element *ngIf=\"isSubmenu\">\n <button\n fd-button\n fdType=\"transparent\"\n id=\"menu-mobile-navigate-back\"\n fdCozy\n [attr.aria-label]=\"'Go to previous menu level: ' + title\"\n [glyph]=\"navigationIcon$ | async\"\n (click)=\"backToParentLevel()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <h1 fd-title>{{ title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n *ngIf=\"this.mobileConfig.hasCloseButton\"\n fd-dialog-close-button\n [mobile]=\"true\"\n (click)=\"close()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"(isSubmenu ? subMenuTemplate : view) || null\"> </ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"mobileConfig.approveButtonText || mobileConfig.cancelButtonText\">\n <fd-button-bar\n *ngIf=\"mobileConfig.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n\n<ng-template #subMenuTemplate>\n <nav class=\"fd-menu fd-menu--mobile\">\n <ul class=\"fd-menu__sublist\">\n <ng-container *ngTemplateOutlet=\"view || null\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MenuMobileComponent } from './menu-mobile.component';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\n@NgModule({\n declarations: [MenuMobileComponent],\n imports: [CommonModule, DialogModule, ButtonModule],\n exports: [MenuMobileComponent]\n})\nexport class MenuMobileModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { BasePopoverClass, PopoverService } from '@fundamental-ngx/core/popover';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { MenuMobileComponent } from './menu-mobile/menu-mobile.component';\nimport { MenuMobileModule } from './menu-mobile/menu-mobile.module';\nimport { MenuService } from './services/menu.service';\nimport { MENU_COMPONENT, MenuInterface } from './menu.interface';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nlet menuUniqueId = 0;\n\n/**\n * The component that represents a menu.\n */\n@Component({\n selector: 'fd-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MenuService, PopoverService, contentDensityObserverProviders()]\n})\nexport class MenuComponent\n extends BasePopoverClass\n implements MenuInterface, AfterContentInit, AfterViewInit, OnDestroy, OnInit\n{\n /** Set menu in mobile mode */\n @Input()\n set mobile(value: BooleanInput) {\n this._mobile = coerceBooleanProperty(value);\n this._menuService.setMenuMode(this.mobile);\n }\n get mobile(): boolean {\n return this._mobile;\n }\n\n /** Whether the popover is disabled. */\n @Input()\n disabled = false;\n\n /** Whether the popover should be focusTrapped. */\n @Input()\n focusTrapped = true;\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n @Input()\n focusAutoCapture = true;\n\n /** Should fd-scrollbar have tabindex*/\n @Input()\n tabbableScrollbar = false;\n\n /** Open submenu on hover after given milliseconds */\n @Input()\n openOnHoverTime = 0;\n\n /** Display menu without integrated popover */\n @Input()\n mobileConfig: MobileModeConfig = { cancelButtonText: 'Cancel' };\n\n /** Aria-label for navigation */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing navigation */\n @Input()\n ariaLabelledby: Nullable<string>;\n\n /** Id of the control. */\n @Input()\n id = `fd-menu-${menuUniqueId++}`;\n\n /** Emits array of active menu items */\n @Output()\n readonly activePath = new EventEmitter<MenuItemComponent[]>();\n\n /** @hidden Reference to the menu root template */\n @ViewChild('menuRootTemplate')\n _menuRootTemplate: TemplateRef<any>;\n\n /** @hidden Reference to all menu Items */\n @ContentChildren(MenuItemComponent)\n _menuItems: QueryList<MenuItemComponent>;\n\n /** @hidden Whether use a menu in mobile mode */\n private _mobile = false;\n\n /** @hidden Reference to external menu trigger */\n private _externalTrigger: ElementRef;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<MenuMobileComponent>;\n\n /** @hidden */\n private _clickEventListener: null | (() => void);\n\n /** @hidden */\n private get _popoverConfig(): BasePopoverClass {\n return {\n ...this,\n additionalBodyClass: (this.additionalBodyClass ?? '') + ' fd-popover--menu'\n };\n }\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n @Optional() public readonly dialogConfig: DialogConfig,\n private readonly _rendered: Renderer2,\n private readonly _menuService: MenuService,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _popoverService: PopoverService,\n private readonly _injector: Injector,\n private readonly _viewContainerRef: ViewContainerRef,\n @Optional() private readonly _dynamicComponentService: DynamicComponentService,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n /** keep isOpen up to date */\n this.isOpenChange.subscribe((isOpen) => {\n this.isOpen = isOpen;\n\n // when popover got closed by its own mechanism (e.x. click outside)\n // we need to clean up a menu as well\n if (!isOpen) {\n this._cleanUpMenuAfterClose();\n }\n\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._menuService.setMenuComponent(this);\n this._listenOnMenuItemsChange();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._menuService.isMobileMode.subscribe((isMobile) => {\n this._setupView();\n\n // Since it is mobile, it's needed to disable popoverService\n if (isMobile) {\n this._popoverService.deactivate();\n }\n });\n\n this._menuService.setMenuMode(this.mobile);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroyMobileComponent();\n this._destroyEventListeners();\n this._menuService.onDestroy();\n this._subscriptions.unsubscribe();\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n set trigger(trigger: ElementRef) {\n this._externalTrigger = trigger;\n this._popoverService.initialise(this._externalTrigger);\n this._destroyEventListeners();\n this._listenOnTriggerRefClicks();\n }\n get trigger(): ElementRef {\n return this._externalTrigger;\n }\n\n /** Opens the menu */\n open(): void {\n if (this.mobile) {\n this.isOpen = true;\n this.isOpenChange.emit(this.isOpen);\n } else {\n this._popoverService.open();\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n /** Closes the menu */\n close(): void {\n if (this.mobile) {\n this.isOpen = false;\n this.isOpenChange.emit(this.isOpen);\n } else {\n this._popoverService.close();\n }\n\n this._cleanUpMenuAfterClose();\n this._focusTrigger();\n this._changeDetectorRef.markForCheck();\n }\n\n /** Toggles menu open/close state */\n toggle(): void {\n this.isOpen ? this.close() : this.open();\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._popoverService.refreshPosition();\n }\n\n /** @hidden */\n private _cleanUpMenuAfterClose(): void {\n this._menuService.resetMenuState();\n }\n\n /** @hidden Select and instantiate menu view mode */\n private _setupView(): void {\n if (this.mobile) {\n this._setupMobileMode();\n } else {\n this._setupPopoverService();\n }\n\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden */\n private _setupPopoverService(): void {\n this._subscriptions.add(\n this._popoverService._onLoad.subscribe((elementRef) => this._menuService.addKeyboardSupport(elementRef))\n );\n\n this._popoverService.templateContent = this._menuRootTemplate;\n this._popoverService.initialise(this._externalTrigger, this._popoverConfig);\n }\n\n /** @hidden Open Menu in mobile mode */\n private async _setupMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: MENU_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._mobileModeComponentRef = await this._dynamicComponentService.createDynamicModule(\n this._menuRootTemplate,\n MenuMobileModule,\n MenuMobileComponent,\n this._viewContainerRef,\n injector\n );\n\n this._listenOnTriggerRefClicks();\n }\n\n /** @hidden Listen on menu items change and rebuild menu */\n private _listenOnMenuItemsChange(): void {\n this._subscriptions.add(this._menuItems.changes.subscribe(() => this._menuService.rebuildMenu()));\n\n // Whether menu have submenu or not.\n let isSubmenu = false;\n this._menuItems.forEach((menuItem) => {\n if (menuItem.submenu?.menuItems) {\n isSubmenu = true;\n this._subscriptions.add(\n menuItem.submenu._menuItemsChange$.subscribe(() => this._menuService.rebuildMenu())\n );\n }\n });\n this.disableScrollbar = isSubmenu;\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _listenOnTriggerRefClicks(): void {\n this._destroyEventListeners();\n\n if (this.trigger && this.mobile) {\n this._clickEventListener = this._rendered.listen(this.trigger.nativeElement, 'click', () => this.toggle());\n }\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _destroyEventListeners(): void {\n if (this._clickEventListener) {\n this._clickEventListener();\n this._clickEventListener = null;\n }\n }\n\n /** @hidden */\n private _destroyMobileComponent(): void {\n if (this._mobileModeComponentRef) {\n this._mobileModeComponentRef.destroy();\n }\n }\n\n /** @hidden */\n private _focusTrigger(): void {\n if (this.focusTrapped && this.trigger) {\n this.trigger.nativeElement.focus();\n }\n }\n}\n","<ng-container #viewContainer></ng-container>\n\n<ng-template #menuRootTemplate>\n <div class=\"fd-popover__wrapper--visible\">\n <nav\n class=\"fd-menu\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"menu\"\n [class.fd-menu--mobile]=\"mobile\"\n >\n <ul role=\"none\" class=\"fd-menu__list fd-menu__list--no-shadow\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MenuComponent } from './menu.component';\nimport { MenuTitleDirective } from './directives/menu-title.directive';\nimport { MenuInteractiveDirective } from './directives/menu-interactive.directive';\nimport { MenuSeparatorComponent } from './menu-separator/menu-separator.component';\nimport { MenuAddonDirective } from './directives/menu-addon.directive';\nimport { MenuItemComponent, SubmenuComponent } from './menu-item/menu-item.component';\nimport { MenuShortcutDirective } from './directives/menu-shortcut.directive';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuTriggerDirective } from './directives/menu-trigger.directive';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { DynamicComponentService, InitialFocusModule } from '@fundamental-ngx/cdk/utils';\nimport { DeprecatedMenuCompactDirective } from './directives/deprecated-menu-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, IconModule, InitialFocusModule, ContentDensityModule],\n declarations: [\n MenuComponent,\n MenuItemComponent,\n MenuAddonDirective,\n MenuSeparatorComponent,\n MenuShortcutDirective,\n MenuInteractiveDirective,\n MenuTitleDirective,\n SubmenuComponent,\n MenuTriggerDirective,\n DeprecatedMenuCompactDirective\n ],\n exports: [\n MenuComponent,\n MenuItemComponent,\n SubmenuComponent,\n MenuSeparatorComponent,\n MenuShortcutDirective,\n MenuInteractiveDirective,\n MenuTitleDirective,\n MenuAddonDirective,\n MenuTriggerDirective,\n DeprecatedMenuCompactDirective,\n ContentDensityModule\n ],\n providers: [DynamicComponentService]\n})\nexport class MenuModule {}\n","export abstract class DefaultMenuItem {\n abstract focus(): void;\n abstract click(): void;\n}\n","import { Subject } from 'rxjs';\nimport { Injectable, Output } from '@angular/core';\nimport { DefaultMenuItem } from './default-menu-item.class';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { DOWN_ARROW, ENTER, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\n@Injectable()\nexport class MenuKeyboardService {\n /** Event emitted when an item link is clicked.*/\n @Output()\n public readonly itemClicked: Subject<number> = new Subject<number>();\n\n /** Whether user wants to remove keyboard handling */\n disableKeydownHandling = false;\n\n /** Function that is supposed to be called, when focus escape before list */\n focusEscapeBeforeList: () => void;\n\n /** Function that is supposed to be called, when focus escape after list */\n focusEscapeAfterList: () => void;\n\n /** Function that should be called every time, keydown event is used on some menu item,\n * it provides whole functionality for handling\n * ArrowDown - focus, ArrowUp - focus, Space bar - simulate click, Enter key - simulate click.\n * @param event KeyboardEvent\n * @param index index of items starts from 0\n * @param menuItems array of menu item directives\n * */\n keyDownHandler(event: KeyboardEvent, index: number, menuItems: DefaultMenuItem[] | ListItemComponent[]): void {\n if (this.disableKeydownHandling) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n if (menuItems.length > index + 1) {\n menuItems[index + 1].focus();\n } else {\n if (this.focusEscapeAfterList) {\n this.focusEscapeAfterList();\n } else {\n menuItems[0].focus();\n }\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n if (index > 0) {\n menuItems[index - 1].focus();\n } else {\n if (this.focusEscapeBeforeList) {\n this.focusEscapeBeforeList();\n } else {\n menuItems[menuItems.length - 1].focus();\n }\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n if (menuItems[index]) {\n menuItems[index].click();\n event.preventDefault();\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","menuUniqueId","i2","i1.MenuItemComponent","i2.MenuService","i6","i3","i4","i5"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-menu.mjs","sources":["../../../../libs/core/src/lib/menu/directives/menu-title.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-interactive.directive.ts","../../../../libs/core/src/lib/menu/services/menu.service.ts","../../../../libs/core/src/lib/menu/menu-item/menu-item.component.ts","../../../../libs/core/src/lib/menu/menu-item/menu-item.component.html","../../../../libs/core/src/lib/menu/directives/menu-shortcut.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-trigger.directive.ts","../../../../libs/core/src/lib/menu/directives/menu-addon.directive.ts","../../../../libs/core/src/lib/menu/directives/deprecated-menu-compact.directive.ts","../../../../libs/core/src/lib/menu/menu-separator/menu-separator.component.ts","../../../../libs/core/src/lib/menu/menu.interface.ts","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.component.ts","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.component.html","../../../../libs/core/src/lib/menu/menu-mobile/menu-mobile.module.ts","../../../../libs/core/src/lib/menu/menu.component.ts","../../../../libs/core/src/lib/menu/menu.component.html","../../../../libs/core/src/lib/menu/menu.module.ts","../../../../libs/core/src/lib/menu/default-menu-item.class.ts","../../../../libs/core/src/lib/menu/menu-keyboard.service.ts","../../../../libs/core/src/lib/menu/fundamental-ngx-core-menu.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding } from '@angular/core';\n\n/**\n * The directive that represents the menu title.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-title]'\n})\nexport class MenuTitleDirective {\n /** @hidden */\n @HostBinding('class.fd-menu__title')\n fdMenuTitleClass = true;\n\n /** Returns element title text */\n @HostBinding('attr.title')\n get title(): string {\n return this._elementRef.nativeElement.textContent;\n }\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n}\n","import { Directive, ElementRef, HostBinding } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-interactive]',\n host: {\n role: 'menuitem'\n }\n})\nexport class MenuInteractiveDirective {\n /** @hidden */\n @HostBinding('attr.tabindex')\n tabindex = 0;\n\n /** @hidden */\n @HostBinding('class.is-disabled')\n disabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHaspopup = false;\n\n /** @hidden */\n @HostBinding('class.fd-menu__link')\n readonly fdMenuLinkClass: boolean = true;\n\n /** @hidden */\n _fromSplitButton = false;\n\n /** @hidden */\n constructor(public elementRef: ElementRef) {}\n\n /** @hidden */\n setSelected(isSelected: boolean): void {\n this.selected = isSelected && (this.ariaHaspopup || this._fromSplitButton);\n if (this.ariaHaspopup || this._fromSplitButton) {\n this.ariaExpanded = isSelected;\n }\n }\n\n /** @hidden */\n setDisabled(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.tabindex = isDisabled ? -1 : 0;\n }\n\n /** @hidden */\n setSubmenu(hasSubmenu: boolean, itemId?: string): void {\n this.ariaHaspopup = hasSubmenu;\n this.ariaControls = hasSubmenu ? itemId || this.ariaControls : null;\n }\n}\n","import { ElementRef, Injectable, Optional, Renderer2 } from '@angular/core';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { MenuComponent } from '../menu.component';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { DOWN_ARROW, ENTER, ESCAPE, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\ninterface MenuNode {\n item: MenuItemComponent | null;\n parent: MenuNode | null;\n children: MenuNode[];\n}\n\n/** `null` key is used for the root node */\ntype MenuMap = Map<MenuItemComponent | null, MenuNode>;\n\n@Injectable()\nexport class MenuService {\n /** Map of menu items to menu nodes */\n menuMap: MenuMap;\n\n /** Currently focused node */\n focusedNode: MenuNode | undefined;\n\n /** Collection of active menu nodes */\n activeNodePath: MenuNode[] = [];\n\n /** Collection of active menu nodes */\n private _isMobileMode = new Subject<boolean>();\n\n /** @hidden */\n private _menuComponent: MenuComponent;\n\n /** @hidden */\n private _destroyKeyboardHandlerListener: () => void;\n\n /** @hidden */\n get _isRtl(): boolean {\n return this._rtlService?.rtl.value;\n }\n\n /** @hidden */\n constructor(private _renderer: Renderer2, @Optional() private readonly _rtlService: RtlService) {}\n\n /** Reference to menu component */\n get menuComponent(): MenuComponent {\n return this._menuComponent;\n }\n\n /** Returns menu mode observable */\n get isMobileMode(): Observable<boolean> {\n return this._isMobileMode.pipe(distinctUntilChanged());\n }\n\n /** Sets menu mode */\n setMenuMode(value: boolean): void {\n this._isMobileMode.next(value);\n }\n\n /** Sets given menu item as focused */\n setFocused(menuItem: MenuItemComponent | null): void {\n this.focusedNode = this.menuMap.get(menuItem);\n this.focusedNode?.item?.focus();\n }\n\n /**\n * Sets state of a given menu item\n * @param isActive - Whether should be set as active or inactive\n * @param menuItem `MenuItemComponent` that should be set as active or inactive\n */\n setActive(isActive: boolean, menuItem: MenuItemComponent | null): void {\n if (!menuItem || (isActive && menuItem.disabled)) {\n return;\n }\n\n if (isActive) {\n this._addToActivePath(menuItem);\n } else {\n this._removeFromActivePath(menuItem);\n }\n\n this._emitActivePath();\n }\n\n /**\n * Close active sibling submenu if any\n * @param menuItem to look for active siblings\n */\n setInactiveSiblingMenuItem(menuItem: MenuItemComponent): void {\n this._removeActiveSibling(menuItem);\n this._emitActivePath();\n }\n\n /** Initializes menu service based on given Menu Component */\n setMenuComponent(menu: MenuComponent): void {\n this._menuComponent = menu;\n this.menuMap = this._buildMenuMap(this._menuComponent);\n }\n\n /** Clears Active Node Path and resets Focused Node */\n resetMenuState(): void {\n this._clearActivePath();\n this.focusedNode = undefined;\n this._emitActivePath();\n }\n\n /** - Updates the structure of the menu\n * - Validates Active Node Path\n * - Validates Focused Node */\n rebuildMenu(): void {\n this.menuMap = this._buildMenuMap(this._menuComponent);\n\n const deadNode = this.activeNodePath.find((node) => !this.menuMap.has(node.item));\n if (deadNode?.item) {\n this.setActive(false, deadNode.item);\n }\n\n const invalidFocusedElement = this.focusedNode && !this.menuMap.get(this.focusedNode.item);\n if (invalidFocusedElement) {\n this.focusedNode =\n this.activeNodePath[this.activeNodePath.length - 1] || this.menuMap.get(null)!.children[0];\n }\n }\n\n /** Adds Menu keyboard support */\n addKeyboardSupport(elementRef: ElementRef): void {\n this.removeKeyboardSupport();\n this._setKeyboardSupport(elementRef);\n }\n\n /** Removes Menu keyboard support */\n removeKeyboardSupport(): void {\n if (this._destroyKeyboardHandlerListener) {\n this._destroyKeyboardHandlerListener();\n }\n }\n\n /** @hidden */\n onDestroy(): void {\n this.removeKeyboardSupport();\n }\n\n /** @hidden Returns siblings of given node */\n private _nodeSiblings(node: MenuNode): MenuNode[] | undefined {\n return node.parent ? node.parent.children : this.menuMap.get(null)?.children;\n }\n\n /** @hidden Adds given element to the Active Node Path and setts as active*/\n private _addToActivePath(menuItem: MenuItemComponent): void {\n const menuNode = this.menuMap.get(menuItem);\n\n this._removeActiveSibling(menuItem);\n\n if (menuNode) {\n this.activeNodePath.push(menuNode);\n menuNode.item?.setSelected(true);\n }\n }\n\n /** @hidden Removes given element and all its successors from the Active Node Path and setts as inactive*/\n private _removeFromActivePath(menuItem: MenuItemComponent | null): void {\n const menuNode = this.menuMap.get(menuItem);\n if (menuNode) {\n const pathIndex = this.activeNodePath.findIndex((i) => i.item === menuNode.item);\n\n if (pathIndex !== -1) {\n this.activeNodePath\n .splice(pathIndex)\n .forEach((removedActiveNode) => removedActiveNode.item?.setSelected(false));\n }\n }\n }\n\n /** @hidden Removes all elements from the Active Node Path and sets them as closed */\n private _clearActivePath(): void {\n if (this.activeNodePath.length) {\n this._removeFromActivePath(this.activeNodePath[0].item);\n }\n }\n\n /** @hidden\n * - Builds Menu Nodes based on Menu Items\n * - Creates Map of the Menu Nodes */\n private _buildMenuMap(menu: MenuComponent): MenuMap {\n function buildNode(menuItem: MenuItemComponent): MenuNode {\n return {\n item: menuItem,\n parent: null,\n children: menuItem.submenu\n ? menuItem.submenu.menuItems.map((subMenuItem) => buildNode(subMenuItem))\n : []\n };\n }\n\n function setParents(node: MenuNode, parent: MenuNode | null): void {\n node.parent = parent;\n node.children.forEach((childNode) => setParents(childNode, node));\n }\n\n function toMap(node: MenuNode, map = new Map() as MenuMap): MenuMap {\n map.set(node.item, node);\n node.children.forEach((childNode) => toMap(childNode, map));\n return map;\n }\n\n const rootItems = menu._menuItems.filter((rootItem) => !rootItem.parentSubmenu);\n\n /** root item */\n const menuTree: MenuNode = {\n item: null,\n parent: null,\n children: rootItems.map((item) => buildNode(item))\n };\n\n setParents(menuTree, null);\n\n return toMap(menuTree);\n }\n\n /** @hidden Removes active sibling of a given menu item from the Active Path */\n private _removeActiveSibling(menuItem: MenuItemComponent): void {\n const menuNode = this.menuMap.get(menuItem);\n const children = menuNode?.parent?.children.map((i) => i.item);\n const activeSibling = this.activeNodePath.find((i) => children?.includes(i.item));\n\n if (activeSibling) {\n const activeParentIndex = this.activeNodePath.indexOf(menuNode?.parent as MenuNode);\n this._removeFromActivePath(activeParentIndex !== -1 ? activeSibling.item : this.activeNodePath[0].item);\n }\n }\n\n /** @hidden Adds keyboard support */\n private _setKeyboardSupport(elementRef: ElementRef): void {\n this._destroyKeyboardHandlerListener = this._renderer.listen(\n elementRef.nativeElement,\n 'keydown',\n (event: KeyboardEvent) => this._handleKey(event)\n );\n }\n\n /** @hidden */\n private _handleKey(event: KeyboardEvent): void {\n const focusRight = (node): void => {\n setTimeout(() => this.setFocused(node.children[0].item));\n };\n let matched = true;\n\n if (!this.focusedNode) {\n return;\n }\n\n if (\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) && !this._isRtl) ||\n (KeyUtil.isKeyCode(event, LEFT_ARROW) && this._isRtl)\n ) {\n if (this.focusedNode?.children.length) {\n this.setActive(true, this.focusedNode.item);\n focusRight(this.focusedNode);\n }\n } else if (\n (KeyUtil.isKeyCode(event, LEFT_ARROW) && !this._isRtl) ||\n (KeyUtil.isKeyCode(event, RIGHT_ARROW) && this._isRtl)\n ) {\n if (this.focusedNode.parent?.item) {\n this.setActive(false, this.focusedNode.parent.item);\n this.setFocused(this.focusedNode.parent.item);\n }\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n const closest = this._closestEnabled(this.focusedNode, 'down');\n if (closest) {\n this.setFocused(closest.item);\n }\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n const closest = this._closestEnabled(this.focusedNode, 'up');\n if (closest) {\n this.setFocused(closest.item);\n }\n } else if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n const focusedNode = this.focusedNode;\n this.setActive(true, focusedNode?.item);\n focusedNode.item?.click();\n if (focusedNode.children.length) {\n focusRight(focusedNode);\n }\n } else if (KeyUtil.isKeyCode(event, ESCAPE) && this.menuComponent.closeOnEscapeKey) {\n this.menuComponent.close();\n } else {\n matched = false;\n }\n\n if (matched) {\n event.preventDefault();\n }\n }\n\n /** @hidden Emits an array of active menu items */\n private _emitActivePath(): void {\n this.menuComponent.activePath.emit(this.activeNodePath.map((node) => node.item) as MenuItemComponent[]);\n }\n\n /** @hidden Depending on direction returns closest enabled sibling of given node */\n private _closestEnabled(node: MenuNode, direction: 'up' | 'down'): MenuNode | null {\n const siblings =\n direction === 'up' ? [...(this._nodeSiblings(node) ?? [])].reverse() : this._nodeSiblings(node);\n\n if (siblings) {\n const startIndex = siblings.indexOf(node) + 1;\n\n for (let i = startIndex; i < siblings.length; i++) {\n if (siblings[i].item && !siblings[i].item!.disabled) {\n return siblings[i];\n }\n }\n }\n\n return null;\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { defer, fromEvent, Observable, Subject, Subscription, timer } from 'rxjs';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { MenuTitleDirective } from '../directives/menu-title.directive';\nimport { DefaultMenuItem } from '../default-menu-item.class';\nimport { MenuInteractiveDirective } from '../directives/menu-interactive.directive';\nimport { MenuService } from '../services/menu.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nlet menuUniqueId = 0;\n\nexport interface BaseSubmenu {\n templateRef: TemplateRef<any>;\n menuItems: MenuItemComponent[];\n menuService: MenuService;\n ariaLabel: Nullable<string>;\n ariaLabelledby: Nullable<string>;\n _menuItemsChange$: Observable<void>;\n _registerItem(item: MenuItemComponent): void;\n _unregisterItem(item: MenuItemComponent): void;\n}\n\nexport const SUBMENU = new InjectionToken<BaseSubmenu>('Submenu component dependency');\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[fd-menu-item]',\n exportAs: 'fd-menu-item',\n templateUrl: './menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'none',\n '[class.fd-menu__item]': 'true'\n }\n})\nexport class MenuItemComponent implements DefaultMenuItem, OnInit, OnChanges, AfterContentInit, OnDestroy {\n /** Set the Menu Item as disabled/enabled */\n @Input()\n disabled = false;\n\n /** Menu Item id attribute value */\n @Input()\n itemId = `fd-menu-item-${menuUniqueId++}`;\n\n /** Reference to sub-menu component */\n @Input()\n submenu: BaseSubmenu | undefined;\n\n /** Reference to the parent submenu if nested menus created dynamically */\n @Input()\n parentSubmenu: BaseSubmenu | undefined;\n\n /** Emitted when the menu item is selected. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onSelect: EventEmitter<void> = new EventEmitter<void>();\n\n /** @hidden Reference to the Menu Item title */\n @ContentChild(MenuTitleDirective)\n menuItemTitle: MenuTitleDirective;\n\n /** @hidden Reference to the Menu Item interactive element */\n @ContentChild(MenuInteractiveDirective)\n menuInteractive: MenuInteractiveDirective;\n\n /** @hidden Whether sub-menu is currently visible*/\n submenuVisible = false;\n\n /** @hidden */\n private _subscriptions: Subscription = new Subscription();\n\n /** @hidden */\n private _hoverSubscriptions: Subscription = new Subscription();\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef,\n @Optional() public menuService: MenuService | null,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(SUBMENU) private _submenu: BaseSubmenu | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n if (this.parentSubmenu) {\n this._submenu = this.parentSubmenu;\n this._submenu._registerItem(this);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setMenuService();\n this._initialiseItemState();\n this._listenOnMenuLinkClick();\n this._listenOnOuterFocus();\n this._listenOnMenuMode();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['disabled'] && !changes['disabled'].firstChange) {\n this.menuInteractive.setDisabled(this.disabled);\n }\n if (changes['submenu'] && !changes['submenu'].firstChange) {\n this.menuInteractive.setSubmenu(!!this.submenu, this.submenu ? this.itemId : undefined);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this.parentSubmenu) {\n this._submenu?._unregisterItem(this);\n }\n\n this._subscriptions.unsubscribe();\n this._hoverSubscriptions.unsubscribe();\n }\n\n /** Whether menu item has popup (desktop mode) */\n get hasPopup(): boolean {\n return !!this.submenu && (!this.menuService?.menuComponent || !this.menuService?.menuComponent.mobile);\n }\n\n /** Focuses Menu Item interactive element */\n focus(): void {\n if (this.menuInteractive) {\n this.menuInteractive.elementRef.nativeElement.focus();\n }\n }\n\n /** Clicks Menu Item interactive element */\n click(): void {\n if (this.menuInteractive) {\n this.menuInteractive.elementRef.nativeElement.click();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** @hidden Sets menu item as selected/unselected based on isSelected flag */\n setSelected(isSelected: boolean, fromSplit?: boolean): void {\n this.menuInteractive.setSelected(isSelected);\n this.submenuVisible = isSelected && !!this.submenu;\n if (!fromSplit) {\n this.onSelect.emit();\n }\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden Creates click listener on menu item interactive element */\n private _listenOnMenuLinkClick(): void {\n this._subscriptions.add(\n fromEvent(this.menuInteractive.elementRef.nativeElement, 'click').subscribe(() =>\n this.menuService?.setActive(true, this)\n )\n );\n }\n\n /** @hidden Creates hover listeners for activating/deactivating menu item */\n private _listenOnMenuLinkHover(): Subscription {\n const hoverSubscriptions: Subscription = new Subscription();\n\n const mouseEnter$: Observable<MouseEvent> = fromEvent(\n this.menuInteractive.elementRef.nativeElement,\n 'mouseenter'\n );\n const mouseLeave$: Observable<MouseEvent> = fromEvent(\n this.menuInteractive.elementRef.nativeElement,\n 'mouseleave'\n );\n\n const timerFactory$ = defer(() =>\n timer(this.menuService ? this.menuService.menuComponent.openOnHoverTime : 0).pipe(takeUntil(mouseLeave$))\n );\n\n // Set active on hover\n hoverSubscriptions.add(\n mouseEnter$\n .pipe(\n filter(() => !!this.menuService),\n switchMap(() => timerFactory$)\n )\n .subscribe(() => {\n if (this.submenu) {\n // Open submenu\n this.menuService!.setActive(true, this);\n }\n if (!this.submenu) {\n // Close sibling submenu if opened\n this.menuService!.setInactiveSiblingMenuItem(this);\n }\n })\n );\n\n return hoverSubscriptions;\n }\n\n /** @hidden Initializes menu link state based on item initial state */\n private _initialiseItemState(): void {\n this.menuInteractive.setSubmenu(!!this.submenu, this.itemId);\n this.menuInteractive.setDisabled(this.disabled);\n }\n\n /** @hidden Checks for Menu Service dependency and passes it if further */\n private _setMenuService(): void {\n this.menuService = this.menuService || this._submenu?.menuService || null;\n if (this.submenu && this.menuService) {\n this.submenu.menuService = this.menuService;\n }\n }\n\n /** @hidden Listen on menu mode and set proper mode listeners */\n private _listenOnMenuMode(): void {\n this.menuService?.isMobileMode.subscribe((isMobile) => {\n this._hoverSubscriptions.unsubscribe();\n if (!isMobile) {\n this._hoverSubscriptions = this._listenOnMenuLinkHover();\n }\n });\n }\n\n /** @hidden Updates focused menu item on outer focus */\n private _listenOnOuterFocus(): void {\n this._subscriptions.add(\n fromEvent(this.menuInteractive.elementRef.nativeElement, 'focus').subscribe(() => {\n if (this.menuService && this.menuService.focusedNode !== this.menuService.menuMap.get(this)) {\n this.menuService.setFocused(this);\n }\n })\n );\n }\n}\n\n@Component({\n selector: 'fd-submenu',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: SUBMENU, useExisting: SubmenuComponent }],\n exportAs: 'fdSubmenu'\n})\nexport class SubmenuComponent implements BaseSubmenu, AfterContentInit {\n /** Aria-label for navigation */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing navigation */\n @Input()\n ariaLabelledby: Nullable<string>;\n\n /** @hidden Reference to template with Submenu items */\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\n\n /** @hidden Reference to Submenu MenuItems */\n @ContentChildren(MenuItemComponent)\n _projectedItems: QueryList<MenuItemComponent>;\n\n /** @hidden */\n _registeredItems: MenuItemComponent[] = [];\n\n /** @hidden Reference to MenuService used by MenuItems */\n menuService: MenuService;\n\n /** @hidden */\n _menuItemsChange$ = new Subject<void>();\n\n /** @hidden */\n get menuItems(): MenuItemComponent[] {\n return this._projectedItems.length ? this._projectedItems.toArray() : this._registeredItems;\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._projectedItems.changes.subscribe(() => this._menuItemsChange$.next());\n }\n\n /** @hidden method for manually registering item when it's not visible for @ContentChildren */\n _registerItem(item: MenuItemComponent): void {\n this._registeredItems.push(item);\n this._menuItemsChange$.next();\n }\n\n /** @hidden method for manually unregistering item when it's not visible for @ContentChildren */\n _unregisterItem(item: MenuItemComponent): void {\n this._registeredItems = this._registeredItems.filter((i) => i !== item);\n this._menuItemsChange$.next();\n }\n}\n","<ng-content></ng-content>\n\n<ng-container *ngIf=\"hasPopup && submenu\">\n <ul\n class=\"fd-menu__sublist\"\n role=\"menu\"\n [attr.id]=\"itemId\"\n [attr.aria-hidden]=\"!submenuVisible\"\n [attr.aria-label]=\"submenu.ariaLabel\"\n [attr.aria-labelledby]=\"submenu.ariaLabelledby\"\n >\n <ng-container *ngTemplateOutlet=\"submenu.templateRef\"></ng-container>\n </ul>\n</ng-container>\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-menu-shortcut]'\n})\nexport class MenuShortcutDirective implements AfterViewInit, OnDestroy {\n /** Hide shortcuts in mobile mode */\n @Input()\n hideOnMobile = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__shortcut')\n readonly fdMenuShortcutClass: boolean = true;\n\n /** @hidden */\n private _subscriptions: Subscription = new Subscription();\n\n /** @hidden */\n constructor(private _menuItem: MenuItemComponent, private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._hideOnMobile();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n private _hideOnMobile(): void {\n this._subscriptions.add(\n this._menuItem.menuService?.isMobileMode.pipe(filter(() => this.hideOnMobile)).subscribe((isMobile) => {\n if (isMobile) {\n this._elementRef.nativeElement.style.display = 'none';\n } else {\n this._elementRef.nativeElement.style.display = null;\n }\n })\n );\n }\n}\n","import { Directive, ElementRef, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { MenuComponent } from '../menu.component';\n\n@Directive({\n selector: '[fdMenuTrigger]'\n})\nexport class MenuTriggerDirective implements OnDestroy {\n /** Set reference to Menu Component */\n @Input('fdMenuTrigger')\n set menu(menu: MenuComponent | undefined) {\n this._unsubscribeFromMenu();\n\n if (menu) {\n menu.trigger = this._elementRef;\n this._subscribeToMenu(menu);\n }\n\n this._setAriaAttributes(menu);\n }\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n ariaHasPopup: Nullable<boolean>;\n\n /** @hidden */\n @HostBinding('attr.aria-controls')\n ariaControls: Nullable<string>;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded: Nullable<boolean>;\n\n /** @hidden */\n private _menuSubscription: Subscription = new Subscription();\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribeFromMenu();\n }\n\n /** @hidden */\n private _subscribeToMenu(menu: MenuComponent): void {\n this._menuSubscription.add(\n menu.isOpenChange.subscribe((isOpen: boolean) => {\n this.ariaHasPopup = true;\n this.ariaExpanded = isOpen;\n this.ariaControls = isOpen ? menu.id : null;\n })\n );\n }\n\n /** @hidden */\n private _unsubscribeFromMenu(): void {\n this._menuSubscription.unsubscribe();\n this._menuSubscription = new Subscription();\n }\n\n /** @hidden */\n private _setAriaAttributes(menu?: MenuComponent): void {\n this.ariaHasPopup = !!menu;\n this.ariaExpanded = menu?.isOpen;\n this.ariaControls = menu?.isOpen ? menu.id : null;\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fd-menu-addon',\n template: `\n <fd-icon [glyph]=\"glyph\" *ngIf=\"glyph\" role=\"presentation\"></fd-icon>\n <ng-content></ng-content>\n `\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class MenuAddonDirective {\n /** Whether addon is used before or after text */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n @Input('position') set setAddonPosition(position: 'before' | 'after') {\n this.fdAddonBeforeClass = position === 'before';\n this.fdAddonAfterClass = position === 'after';\n }\n\n /** The icon name to display. See the icon page for the list of icons\n * here: https://sap.github.io/fundamental-ngx/icon\n * */\n @Input()\n glyph: string;\n\n /** Whether is used as submenu indicator */\n @Input()\n @HostBinding('class.fd-menu__addon-after--submenu')\n submenuIndicator = false;\n\n /** Sets Aria hidden attribute */\n @Input()\n @HostBinding('attr.aria-hidden')\n ariaHidden = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__addon-after')\n fdAddonAfterClass = true;\n\n /** @hidden */\n @HostBinding('class.fd-menu__addon-before')\n fdAddonBeforeClass = false;\n}\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-menu[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedMenuCompactDirective)\n }\n ]\n})\nexport class DeprecatedMenuCompactDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-menu');\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'fd-menu-separator',\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuSeparatorComponent {\n /** @hidden */\n @HostBinding('class.fd-menu__separator')\n readonly fdMenuSeparatorClass: boolean = true;\n}\n","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const MENU_COMPONENT = new InjectionToken<string[]>('MenuInterface');\n\n/**\n * Menu Interface to have typing and avoid circular dependency between\n * MenuComponent <==> MenuMobileComponent\n */\nexport interface MenuInterface extends MobileMode {\n activePath: EventEmitter<MenuItemComponent[]>;\n dialogConfig: DialogConfig;\n isOpenChange: EventEmitter<boolean>;\n\n close(): void;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { DialogBodyComponent, DialogService } from '@fundamental-ngx/core/dialog';\nimport { Observable, of } from 'rxjs';\nimport { MenuService } from '../services/menu.service';\nimport { MenuItemComponent } from '../menu-item/menu-item.component';\nimport { map, startWith, take, takeUntil } from 'rxjs/operators';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport { MENU_COMPONENT, MenuInterface } from '../menu.interface';\nimport {\n MOBILE_MODE_CONFIG,\n MobileModeBase,\n MobileModeControl,\n MobileModeConfigToken\n} from '@fundamental-ngx/core/mobile-mode';\n\n@Component({\n selector: 'fd-menu-mobile',\n templateUrl: './menu-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class MenuMobileComponent extends MobileModeBase<MenuInterface> implements OnInit, OnDestroy {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /** Current menu title */\n title: string;\n\n /** Whether current menu level is submenu */\n isSubmenu: boolean;\n\n /** @hidden External content */\n childContent: TemplateRef<any> | undefined = undefined;\n\n /** @hidden Currently rendered menu view */\n view: TemplateRef<any> | undefined;\n\n /** @hidden Navigation icon name based on RTL */\n navigationIcon$: Observable<string>;\n\n /** @hidden */\n @ViewChild(DialogBodyComponent)\n set _watch(_dialogBody: DialogBodyComponent) {\n if (_dialogBody) {\n this._menuService.addKeyboardSupport(_dialogBody.elementRef);\n }\n }\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n private _menuService: MenuService,\n private _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone,\n @Optional() private _rtlService: RtlService,\n @Inject(MENU_COMPONENT) menuComponent: MenuInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, menuComponent, MobileModeControl.MENU, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._listenOnActivePathChange();\n this._listenOnMenuOpenChange();\n this._listenOnTextDirection();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.onDestroy();\n }\n\n /** Closes the Dialog and Menu component */\n close(): void {\n this.dialogRef.close();\n this._component.close();\n }\n\n /** Navigate back to parent level of submenu */\n backToParentLevel(): void {\n const menuItem = this._menuService.activeNodePath[this._menuService.activeNodePath.length - 1].item;\n this._menuService.setActive(false, menuItem);\n this._executeOnStable(() => {\n menuItem?.focus();\n });\n }\n\n /** @hidden Opens the Dialog */\n private _openDialog(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n disablePaddings: true,\n ...this.dialogConfig,\n escKeyCloseable: false,\n backdropClickCloseable: false,\n container: this._elementRef.nativeElement\n });\n }\n\n /** @hidden Listens on Active Path changes and updates mobile view */\n private _listenOnActivePathChange(): void {\n const initialItemPath: MenuItemComponent[] = this._menuService.activeNodePath\n .map((node) => node.item)\n .filter((v): v is MenuItemComponent => !!v);\n this._component.activePath\n .pipe(takeUntil(this._onDestroy$), startWith(initialItemPath))\n .subscribe((items) => this._setMenuView(items));\n }\n\n /**\n * @hidden\n * Executes a function when the zone is stable.\n */\n private _executeOnStable(fn: () => any): void {\n if (this._ngZone.isStable) {\n fn();\n } else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n\n /** @hidden Sets menu view, title and isSubmenu flag */\n private _setMenuView(items: MenuItemComponent[]): void {\n const lastItem: MenuItemComponent = items[items.length - 1];\n this.isSubmenu = !!items.length;\n this.title = this._getDialogTitle(lastItem);\n this.view = this._getMenuView(lastItem);\n this._changeDetectorRef.markForCheck();\n this._executeOnStable(() => {\n this._menuService.focusedNode?.item?.focus();\n });\n }\n\n /** @hidden Opens/closes the Dialog based on Menu isOpenChange events */\n private _listenOnMenuOpenChange(): void {\n this._component.isOpenChange\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((isOpen) => (isOpen ? this._openDialog() : this.dialogRef.close()));\n }\n\n /** @hidden Sets navigation arrow depending on text direction */\n private _listenOnTextDirection(): void {\n this.navigationIcon$ = this._rtlService\n ? this._rtlService.rtl.pipe(map((isRtl) => (isRtl ? 'navigation-right-arrow' : 'navigation-left-arrow')))\n : of('navigation-left-arrow');\n }\n\n /** @hidden Returns dialog title */\n private _getDialogTitle(menuItem: MenuItemComponent): string {\n if (this.isSubmenu) {\n return menuItem.menuItemTitle ? menuItem.menuItemTitle.title : '';\n }\n\n return this.mobileConfig.title || '';\n }\n\n /** @hidden Returns dialog content view */\n private _getMenuView(menuItem: MenuItemComponent): TemplateRef<any> | undefined {\n if (this.isSubmenu) {\n return menuItem.submenu ? menuItem.submenu.templateRef : this.view;\n }\n return this.childContent;\n }\n}\n","<ng-template let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element *ngIf=\"isSubmenu\">\n <button\n fd-button\n fdType=\"transparent\"\n id=\"menu-mobile-navigate-back\"\n fdCozy\n [attr.aria-label]=\"'Go to previous menu level: ' + title\"\n [glyph]=\"navigationIcon$ | async\"\n (click)=\"backToParentLevel()\"\n ></button>\n </fd-bar-element>\n <fd-bar-element>\n <h1 fd-title>{{ title }}</h1>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n *ngIf=\"this.mobileConfig.hasCloseButton\"\n fd-dialog-close-button\n [mobile]=\"true\"\n (click)=\"close()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container *ngTemplateOutlet=\"(isSubmenu ? subMenuTemplate : view) || null\"> </ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer *ngIf=\"mobileConfig.approveButtonText || mobileConfig.cancelButtonText\">\n <fd-button-bar\n *ngIf=\"mobileConfig.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n <fd-button-bar\n *ngIf=\"mobileConfig.cancelButtonText\"\n fdkInitialFocus\n [label]=\"mobileConfig.cancelButtonText\"\n (click)=\"close()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n\n<ng-template #subMenuTemplate>\n <nav class=\"fd-menu fd-menu--mobile\">\n <ul class=\"fd-menu__sublist\">\n <ng-container *ngTemplateOutlet=\"view || null\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MenuMobileComponent } from './menu-mobile.component';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\n@NgModule({\n declarations: [MenuMobileComponent],\n imports: [CommonModule, DialogModule, ButtonModule],\n exports: [MenuMobileComponent]\n})\nexport class MenuMobileModule {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { DynamicComponentService } from '@fundamental-ngx/cdk/utils';\nimport { DialogConfig } from '@fundamental-ngx/core/dialog';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { BasePopoverClass, PopoverService } from '@fundamental-ngx/core/popover';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { MenuMobileComponent } from './menu-mobile/menu-mobile.component';\nimport { MenuMobileModule } from './menu-mobile/menu-mobile.module';\nimport { MenuService } from './services/menu.service';\nimport { MENU_COMPONENT, MenuInterface } from './menu.interface';\nimport { MenuItemComponent } from './menu-item/menu-item.component';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nlet menuUniqueId = 0;\n\n/**\n * The component that represents a menu.\n */\n@Component({\n selector: 'fd-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MenuService, PopoverService, contentDensityObserverProviders()]\n})\nexport class MenuComponent\n extends BasePopoverClass\n implements MenuInterface, AfterContentInit, AfterViewInit, OnDestroy, OnInit\n{\n /** Set menu in mobile mode */\n @Input()\n set mobile(value: BooleanInput) {\n this._mobile = coerceBooleanProperty(value);\n this._menuService.setMenuMode(this.mobile);\n }\n get mobile(): boolean {\n return this._mobile;\n }\n\n /** Whether the popover is disabled. */\n @Input()\n disabled = false;\n\n /** Whether the popover should be focusTrapped. */\n @Input()\n focusTrapped = true;\n\n /**\n * Whether the popover should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n @Input()\n focusAutoCapture = true;\n\n /** Should fd-scrollbar have tabindex*/\n @Input()\n tabbableScrollbar = false;\n\n /** Open submenu on hover after given milliseconds */\n @Input()\n openOnHoverTime = 0;\n\n /** Display menu without integrated popover */\n @Input()\n mobileConfig: MobileModeConfig = { cancelButtonText: 'Cancel' };\n\n /** Aria-label for navigation */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Aria-Labelledby for element describing navigation */\n @Input()\n ariaLabelledby: Nullable<string>;\n\n /** Id of the control. */\n @Input()\n id = `fd-menu-${menuUniqueId++}`;\n\n /** Emits array of active menu items */\n @Output()\n readonly activePath = new EventEmitter<MenuItemComponent[]>();\n\n /** @hidden Reference to the menu root template */\n @ViewChild('menuRootTemplate')\n _menuRootTemplate: TemplateRef<any>;\n\n /** @hidden Reference to all menu Items */\n @ContentChildren(MenuItemComponent)\n _menuItems: QueryList<MenuItemComponent>;\n\n /** @hidden Whether use a menu in mobile mode */\n private _mobile = false;\n\n /** @hidden Reference to external menu trigger */\n private _externalTrigger: ElementRef;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _mobileModeComponentRef: ComponentRef<MenuMobileComponent>;\n\n /** @hidden */\n private _clickEventListener: null | (() => void);\n\n /** @hidden */\n private get _popoverConfig(): BasePopoverClass {\n return {\n ...this,\n additionalBodyClass: (this.additionalBodyClass ?? '') + ' fd-popover--menu'\n };\n }\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n @Optional() public readonly dialogConfig: DialogConfig,\n private readonly _rendered: Renderer2,\n private readonly _menuService: MenuService,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _popoverService: PopoverService,\n private readonly _injector: Injector,\n private readonly _viewContainerRef: ViewContainerRef,\n @Optional() private readonly _dynamicComponentService: DynamicComponentService,\n readonly _contentDensityObserver: ContentDensityObserver\n ) {\n super();\n }\n\n /** @hidden */\n ngOnInit(): void {\n /** keep isOpen up to date */\n this.isOpenChange.subscribe((isOpen) => {\n this.isOpen = isOpen;\n\n // when popover got closed by its own mechanism (e.x. click outside)\n // we need to clean up a menu as well\n if (!isOpen) {\n this._cleanUpMenuAfterClose();\n }\n\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._menuService.setMenuComponent(this);\n this._listenOnMenuItemsChange();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._menuService.isMobileMode.subscribe((isMobile) => {\n this._setupView();\n\n // Since it is mobile, it's needed to disable popoverService\n if (isMobile) {\n this._popoverService.deactivate();\n }\n });\n\n this._menuService.setMenuMode(this.mobile);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._destroyMobileComponent();\n this._destroyEventListeners();\n this._menuService.onDestroy();\n this._subscriptions.unsubscribe();\n this._popoverService.onDestroy();\n }\n\n /** @hidden */\n set trigger(trigger: ElementRef) {\n this._externalTrigger = trigger;\n this._popoverService.initialise(this._externalTrigger);\n this._destroyEventListeners();\n this._listenOnTriggerRefClicks();\n }\n get trigger(): ElementRef {\n return this._externalTrigger;\n }\n\n /** Opens the menu */\n open(): void {\n if (this.mobile) {\n this.isOpen = true;\n this.isOpenChange.emit(this.isOpen);\n } else {\n this._popoverService.open();\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n /** Closes the menu */\n close(): void {\n if (this.mobile) {\n this.isOpen = false;\n this.isOpenChange.emit(this.isOpen);\n } else {\n this._popoverService.close();\n }\n\n this._cleanUpMenuAfterClose();\n this._focusTrigger();\n this._changeDetectorRef.markForCheck();\n }\n\n /** Toggles menu open/close state */\n toggle(): void {\n this.isOpen ? this.close() : this.open();\n }\n\n /** Method called to refresh position of opened popover */\n refreshPosition(): void {\n this._popoverService.refreshPosition();\n }\n\n /** @hidden */\n private _cleanUpMenuAfterClose(): void {\n this._menuService.resetMenuState();\n }\n\n /** @hidden Select and instantiate menu view mode */\n private _setupView(): void {\n if (this.mobile) {\n this._setupMobileMode();\n } else {\n this._setupPopoverService();\n }\n\n this._changeDetectorRef.detectChanges();\n }\n\n /** @hidden */\n private _setupPopoverService(): void {\n this._subscriptions.add(\n this._popoverService._onLoad.subscribe((elementRef) => this._menuService.addKeyboardSupport(elementRef))\n );\n\n this._popoverService.templateContent = this._menuRootTemplate;\n this._popoverService.initialise(this._externalTrigger, this._popoverConfig);\n }\n\n /** @hidden Open Menu in mobile mode */\n private async _setupMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: MENU_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._mobileModeComponentRef = await this._dynamicComponentService.createDynamicModule(\n this._menuRootTemplate,\n MenuMobileModule,\n MenuMobileComponent,\n this._viewContainerRef,\n injector\n );\n\n this._listenOnTriggerRefClicks();\n }\n\n /** @hidden Listen on menu items change and rebuild menu */\n private _listenOnMenuItemsChange(): void {\n this._subscriptions.add(this._menuItems.changes.subscribe(() => this._menuService.rebuildMenu()));\n\n // Whether menu have submenu or not.\n let isSubmenu = false;\n this._menuItems.forEach((menuItem) => {\n if (menuItem.submenu?.menuItems) {\n isSubmenu = true;\n this._subscriptions.add(\n menuItem.submenu._menuItemsChange$.subscribe(() => this._menuService.rebuildMenu())\n );\n }\n });\n this.disableScrollbar = isSubmenu;\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _listenOnTriggerRefClicks(): void {\n this._destroyEventListeners();\n\n if (this.trigger && this.mobile) {\n this._clickEventListener = this._rendered.listen(this.trigger.nativeElement, 'click', () => this.toggle());\n }\n }\n\n /**\n * @hidden\n * This is going to be removed in feature, on dialog and dynamic service component refactor\n */\n private _destroyEventListeners(): void {\n if (this._clickEventListener) {\n this._clickEventListener();\n this._clickEventListener = null;\n }\n }\n\n /** @hidden */\n private _destroyMobileComponent(): void {\n if (this._mobileModeComponentRef) {\n this._mobileModeComponentRef.destroy();\n }\n }\n\n /** @hidden */\n private _focusTrigger(): void {\n if (this.focusTrapped && this.trigger) {\n this.trigger.nativeElement.focus();\n }\n }\n}\n","<ng-container #viewContainer></ng-container>\n\n<ng-template #menuRootTemplate>\n <div class=\"fd-popover__wrapper--visible\">\n <nav\n class=\"fd-menu\"\n [id]=\"id\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"menu\"\n [class.fd-menu--mobile]=\"mobile\"\n >\n <ul role=\"none\" class=\"fd-menu__list fd-menu__list--no-shadow\">\n <ng-content></ng-content>\n </ul>\n </nav>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MenuComponent } from './menu.component';\nimport { MenuTitleDirective } from './directives/menu-title.directive';\nimport { MenuInteractiveDirective } from './directives/menu-interactive.directive';\nimport { MenuSeparatorComponent } from './menu-separator/menu-separator.component';\nimport { MenuAddonDirective } from './directives/menu-addon.directive';\nimport { MenuItemComponent, SubmenuComponent } from './menu-item/menu-item.component';\nimport { MenuShortcutDirective } from './directives/menu-shortcut.directive';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuTriggerDirective } from './directives/menu-trigger.directive';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { DynamicComponentService, InitialFocusModule } from '@fundamental-ngx/cdk/utils';\nimport { DeprecatedMenuCompactDirective } from './directives/deprecated-menu-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, IconModule, InitialFocusModule, ContentDensityModule],\n declarations: [\n MenuComponent,\n MenuItemComponent,\n MenuAddonDirective,\n MenuSeparatorComponent,\n MenuShortcutDirective,\n MenuInteractiveDirective,\n MenuTitleDirective,\n SubmenuComponent,\n MenuTriggerDirective,\n DeprecatedMenuCompactDirective\n ],\n exports: [\n MenuComponent,\n MenuItemComponent,\n SubmenuComponent,\n MenuSeparatorComponent,\n MenuShortcutDirective,\n MenuInteractiveDirective,\n MenuTitleDirective,\n MenuAddonDirective,\n MenuTriggerDirective,\n DeprecatedMenuCompactDirective,\n ContentDensityModule\n ],\n providers: [DynamicComponentService]\n})\nexport class MenuModule {}\n","export abstract class DefaultMenuItem {\n abstract focus(): void;\n abstract click(): void;\n}\n","import { Subject } from 'rxjs';\nimport { Injectable, Output } from '@angular/core';\nimport { DefaultMenuItem } from './default-menu-item.class';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { DOWN_ARROW, ENTER, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\n\n@Injectable()\nexport class MenuKeyboardService {\n /** Event emitted when an item link is clicked.*/\n @Output()\n public readonly itemClicked: Subject<number> = new Subject<number>();\n\n /** Whether user wants to remove keyboard handling */\n disableKeydownHandling = false;\n\n /** Function that is supposed to be called, when focus escape before list */\n focusEscapeBeforeList: () => void;\n\n /** Function that is supposed to be called, when focus escape after list */\n focusEscapeAfterList: () => void;\n\n /** Function that should be called every time, keydown event is used on some menu item,\n * it provides whole functionality for handling\n * ArrowDown - focus, ArrowUp - focus, Space bar - simulate click, Enter key - simulate click.\n * @param event KeyboardEvent\n * @param index index of items starts from 0\n * @param menuItems array of menu item directives\n * */\n keyDownHandler(event: KeyboardEvent, index: number, menuItems: DefaultMenuItem[] | ListItemComponent[]): void {\n if (this.disableKeydownHandling) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n if (menuItems.length > index + 1) {\n menuItems[index + 1].focus();\n } else {\n if (this.focusEscapeAfterList) {\n this.focusEscapeAfterList();\n } else {\n menuItems[0].focus();\n }\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n if (index > 0) {\n menuItems[index - 1].focus();\n } else {\n if (this.focusEscapeBeforeList) {\n this.focusEscapeBeforeList();\n } else {\n menuItems[menuItems.length - 1].focus();\n }\n }\n event.preventDefault();\n } else if (KeyUtil.isKeyCode(event, [SPACE, ENTER])) {\n if (menuItems[index]) {\n menuItems[index].click();\n event.preventDefault();\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","menuUniqueId","i2","i1.MenuItemComponent","i2.MenuService","i6","i3","i4","i5"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAEG;MAKU,kBAAkB,CAAA;;AAM3B,IAAA,IACI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC;KACrD;;AAGD,IAAA,WAAA,CAAoB,WAAuB,EAAA;AAAvB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;AAT3C,QAAA,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;KASuB;;+GAZtC,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,iBAAiB;iBAC9B,CAAA;iGAIG,gBAAgB,EAAA,CAAA;sBADf,WAAW;uBAAC,sBAAsB,CAAA;gBAK/B,KAAK,EAAA,CAAA;sBADR,WAAW;uBAAC,YAAY,CAAA;;;MCNhB,wBAAwB,CAAA;;AAiCjC,IAAA,WAAA,CAAmB,UAAsB,EAAA;AAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;AA9BzC,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;;AAIb,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAQjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAQjB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;AAIZ,QAAA,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;;AAGzC,QAAA,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;KAGoB;;AAG7C,IAAA,WAAW,CAAC,UAAmB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3E,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC5C,YAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;AAClC,SAAA;KACJ;;AAGD,IAAA,WAAW,CAAC,UAAmB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACvC;;IAGD,UAAU,CAAC,UAAmB,EAAE,MAAe,EAAA;AAC3C,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,GAAG,MAAM,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;KACvE;;qHArDQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,UAAU;AACnB,qBAAA;iBACJ,CAAA;iGAIG,QAAQ,EAAA,CAAA;sBADP,WAAW;uBAAC,eAAe,CAAA;gBAK5B,QAAQ,EAAA,CAAA;sBADP,WAAW;uBAAC,mBAAmB,CAAA;gBAKhC,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,oBAAoB,CAAA;gBAKjC,QAAQ,EAAA,CAAA;sBADP,WAAW;uBAAC,mBAAmB,CAAA;gBAKhC,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,oBAAoB,CAAA;gBAKjC,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,oBAAoB,CAAA;gBAKxB,eAAe,EAAA,CAAA;sBADvB,WAAW;uBAAC,qBAAqB,CAAA;;;MCjBzB,WAAW,CAAA;;AAoBpB,IAAA,IAAI,MAAM,GAAA;;QACN,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAC,KAAK,CAAC;KACtC;;IAGD,WAAoB,CAAA,SAAoB,EAA+B,WAAuB,EAAA;AAA1E,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAA+B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;AAjB9F,QAAA,IAAc,CAAA,cAAA,GAAe,EAAE,CAAC;;AAGxB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAW,CAAC;KAcmD;;AAGlG,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;;AAGD,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;KAC1D;;AAGD,IAAA,WAAW,CAAC,KAAc,EAAA;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;;AAGD,IAAA,UAAU,CAAC,QAAkC,EAAA;;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAC;KACnC;AAED;;;;AAIG;IACH,SAAS,CAAC,QAAiB,EAAE,QAAkC,EAAA;QAC3D,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC9C,OAAO;AACV,SAAA;AAED,QAAA,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACnC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACxC,SAAA;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;AAED;;;AAGG;AACH,IAAA,0BAA0B,CAAC,QAA2B,EAAA;AAClD,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;;AAGD,IAAA,gBAAgB,CAAC,IAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC1D;;IAGD,cAAc,GAAA;QACV,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;AAED;;AAE+B;IAC/B,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,QAAA,IAAI,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxC,SAAA;AAED,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3F,QAAA,IAAI,qBAAqB,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW;gBACZ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClG,SAAA;KACJ;;AAGD,IAAA,kBAAkB,CAAC,UAAsB,EAAA;QACrC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;KACxC;;IAGD,qBAAqB,GAAA;QACjB,IAAI,IAAI,CAAC,+BAA+B,EAAE;YACtC,IAAI,CAAC,+BAA+B,EAAE,CAAC;AAC1C,SAAA;KACJ;;IAGD,SAAS,GAAA;QACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;;AAGO,IAAA,aAAa,CAAC,IAAc,EAAA;;QAChC,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC;KAChF;;AAGO,IAAA,gBAAgB,CAAC,QAA2B,EAAA;;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE5C,QAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAEpC,QAAA,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAA,EAAA,GAAA,QAAQ,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AACpC,SAAA;KACJ;;AAGO,IAAA,qBAAqB,CAAC,QAAkC,EAAA;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC5C,QAAA,IAAI,QAAQ,EAAE;YACV,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEjF,YAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AAClB,gBAAA,IAAI,CAAC,cAAc;qBACd,MAAM,CAAC,SAAS,CAAC;AACjB,qBAAA,OAAO,CAAC,CAAC,iBAAiB,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,EAAA,GAAA,iBAAiB,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;AACnF,aAAA;AACJ,SAAA;KACJ;;IAGO,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3D,SAAA;KACJ;AAED;;AAEqC;AAC7B,IAAA,aAAa,CAAC,IAAmB,EAAA;QACrC,SAAS,SAAS,CAAC,QAA2B,EAAA;YAC1C,OAAO;AACH,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,QAAQ,CAAC,OAAO;AACtB,sBAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW,CAAC,CAAC;AACzE,sBAAE,EAAE;aACX,CAAC;SACL;AAED,QAAA,SAAS,UAAU,CAAC,IAAc,EAAE,MAAuB,EAAA;AACvD,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;SACrE;QAED,SAAS,KAAK,CAAC,IAAc,EAAE,GAAM,GAAA,IAAI,GAAG,EAAa,EAAA;YACrD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D,YAAA,OAAO,GAAG,CAAC;SACd;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;;AAGhF,QAAA,MAAM,QAAQ,GAAa;AACvB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;SACrD,CAAC;AAEF,QAAA,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAE3B,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;KAC1B;;AAGO,IAAA,oBAAoB,CAAC,QAA2B,EAAA;;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAElF,QAAA,IAAI,aAAa,EAAE;AACf,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAE,MAAkB,CAAC,CAAC;YACpF,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3G,SAAA;KACJ;;AAGO,IAAA,mBAAmB,CAAC,UAAsB,EAAA;QAC9C,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACxD,UAAU,CAAC,aAAa,EACxB,SAAS,EACT,CAAC,KAAoB,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CACnD,CAAC;KACL;;AAGO,IAAA,UAAU,CAAC,KAAoB,EAAA;;AACnC,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,KAAU;AAC9B,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,SAAC,CAAC;QACF,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;AACV,SAAA;AAED,QAAA,IACI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;AACtD,aAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EACvD;YACE,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,0CAAE,QAAQ,CAAC,MAAM,EAAE;gBACnC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5C,gBAAA,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAChC,aAAA;AACJ,SAAA;AAAM,aAAA,IACH,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;AACrD,aAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EACxD;YACE,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,EAAE;AAC/B,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,aAAA;AACJ,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;AAC7C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC/D,YAAA,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACjC,aAAA;AACJ,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;AAC3C,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC7D,YAAA,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACjC,aAAA;AACJ,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE;AACjD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AACrC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,IAAI,CAAC,CAAC;AACxC,YAAA,CAAA,EAAA,GAAA,WAAW,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;AAC1B,YAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC7B,UAAU,CAAC,WAAW,CAAC,CAAC;AAC3B,aAAA;AACJ,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE;AAChF,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA;YACH,OAAO,GAAG,KAAK,CAAC;AACnB,SAAA;AAED,QAAA,IAAI,OAAO,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAA;KACJ;;IAGO,eAAe,GAAA;QACnB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAwB,CAAC,CAAC;KAC3G;;IAGO,eAAe,CAAC,IAAc,EAAE,SAAwB,EAAA;;AAC5D,QAAA,MAAM,QAAQ,GACV,SAAS,KAAK,IAAI,GAAG,CAAC,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAEpG,QAAA,IAAI,QAAQ,EAAE;YACV,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9C,YAAA,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,gBAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,QAAQ,EAAE;AACjD,oBAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtB,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;;wGA3SQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;8BA0BoC,QAAQ;;;;ACXvD,IAAIC,cAAY,GAAG,CAAC,CAAC;MAaR,OAAO,GAAG,IAAI,cAAc,CAAc,8BAA8B,EAAE;MAc1E,iBAAiB,CAAA;;AAwC1B,IAAA,WAAA,CACW,UAAsB,EACV,WAA+B,EAC1C,kBAAqC,EACR,QAA4B,EAAA;AAH1D,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACV,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;AAC1C,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;AACR,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAoB;;AAzCrE,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAIjB,QAAA,IAAA,CAAA,MAAM,GAAG,gBAAgBA,cAAY,EAAE,EAAE,CAAC;;;AAa1C,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;;AAWxD,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;;AAGf,QAAA,IAAA,CAAA,cAAc,GAAiB,IAAI,YAAY,EAAE,CAAC;;AAGlD,QAAA,IAAA,CAAA,mBAAmB,GAAiB,IAAI,YAAY,EAAE,CAAC;KAQ3D;;IAGJ,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;AACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACrC,SAAA;KACJ;;IAGD,kBAAkB,GAAA;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;;AAGD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;YACzD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACvD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAC3F,SAAA;KACJ;;IAGD,WAAW,GAAA;;QACP,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,eAAe,CAAC,IAAI,CAAC,CAAC;AACxC,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;KAC1C;;AAGD,IAAA,IAAI,QAAQ,GAAA;;AACR,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAC,MAAM,CAAA,CAAC,CAAC;KAC1G;;IAGD,KAAK,GAAA;QACD,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACzD,SAAA;KACJ;;IAGD,KAAK,GAAA;QACD,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACtD,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AAC1C,SAAA;KACJ;;IAGD,WAAW,CAAC,UAAmB,EAAE,SAAmB,EAAA;AAChD,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KAC1C;;IAGO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MACxE,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,MAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,EAAA,CAC1C,CACJ,CAAC;KACL;;IAGO,sBAAsB,GAAA;AAC1B,QAAA,MAAM,kBAAkB,GAAiB,IAAI,YAAY,EAAE,CAAC;AAE5D,QAAA,MAAM,WAAW,GAA2B,SAAS,CACjD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,aAAa,EAC7C,YAAY,CACf,CAAC;AACF,QAAA,MAAM,WAAW,GAA2B,SAAS,CACjD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,aAAa,EAC7C,YAAY,CACf,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,MACxB,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAC5G,CAAC;;QAGF,kBAAkB,CAAC,GAAG,CAClB,WAAW;aACN,IAAI,CACD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAChC,SAAS,CAAC,MAAM,aAAa,CAAC,CACjC;aACA,SAAS,CAAC,MAAK;YACZ,IAAI,IAAI,CAAC,OAAO,EAAE;;gBAEd,IAAI,CAAC,WAAY,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3C,aAAA;AACD,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;;AAEf,gBAAA,IAAI,CAAC,WAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;AACtD,aAAA;SACJ,CAAC,CACT,CAAC;AAEF,QAAA,OAAO,kBAAkB,CAAC;KAC7B;;IAGO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnD;;IAGO,eAAe,GAAA;;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,KAAI,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,CAAA,IAAI,IAAI,CAAC;AAC1E,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE;YAClC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAC/C,SAAA;KACJ;;IAGO,iBAAiB,GAAA;;QACrB,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAClD,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,EAAE;AACX,gBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC5D,aAAA;AACL,SAAC,CAAC,CAAC;KACN;;IAGO,mBAAmB,GAAA;QACvB,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAK;YAC7E,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACzF,gBAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACrC,aAAA;SACJ,CAAC,CACL,CAAC;KACL;;AAnMQ,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,qHA4CF,OAAO,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AA5CtB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAuBZ,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,kBAAkB,EAIlB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,wBAAwB,iGCtF1C,+bAcA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,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,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FD6Ca,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;+BAEI,kBAAkB,EAAA,QAAA,EAClB,cAAc,EAAA,eAAA,EAEP,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACF,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,uBAAuB,EAAE,MAAM;AAClC,qBAAA,EAAA,QAAA,EAAA,+bAAA,EAAA,CAAA;;;8BA4CI,QAAQ;;8BAER,QAAQ;;8BAAI,MAAM;+BAAC,OAAO,CAAA;;yBAzC/B,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAKN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAKN,aAAa,EAAA,CAAA;sBADZ,KAAK;;;AAMN,QAAA,QAAQ,EAAA,CAAA;sBAFP,MAAM;gBAMP,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,kBAAkB,CAAA;gBAKhC,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,wBAAwB,CAAA;;MAuL7B,gBAAgB,CAAA;AAZ7B,IAAA,WAAA,GAAA;;AA6BI,QAAA,IAAgB,CAAA,gBAAA,GAAwB,EAAE,CAAC;;AAM3C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAQ,CAAC;KAuB3C;;AApBG,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;KAC/F;;IAGD,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;KAC/E;;AAGD,IAAA,aAAa,CAAC,IAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;KACjC;;AAGD,IAAA,eAAe,CAAC,IAAuB,EAAA;AACnC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;AACxE,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;KACjC;;6GA7CQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,2GAHd,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAgB/C,iBAAiB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAHvB,WAAW,EApBZ,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;KAIT,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAMQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAkB,gBAAA,EAAE,CAAC;AAChE,oBAAA,QAAQ,EAAE,WAAW;iBACxB,CAAA;8BAIG,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAIkB,WAAW,EAAA,CAAA;sBAAlC,SAAS;uBAAC,WAAW,CAAA;gBAItB,eAAe,EAAA,CAAA;sBADd,eAAe;uBAAC,iBAAiB,CAAA;;;MEjRzB,qBAAqB,CAAA;;IAa9B,WAAoB,CAAA,SAA4B,EAAU,WAAuB,EAAA;AAA7D,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAmB;AAAU,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;AAVjF,QAAA,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;;AAIX,QAAA,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;;AAGrC,QAAA,IAAA,CAAA,cAAc,GAAiB,IAAI,YAAY,EAAE,CAAC;KAG2B;;IAGrF,eAAe,GAAA;QACX,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACrC;;IAGO,aAAa,GAAA;;AACjB,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAA,CAAE,SAAS,CAAC,CAAC,QAAQ,KAAI;AAClG,YAAA,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACzD,aAAA;AAAM,iBAAA;gBACH,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACvD,aAAA;SACJ,CAAC,CACL,CAAC;KACL;;kHApCQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,oBAAoB;iBACjC,CAAA;8HAIG,YAAY,EAAA,CAAA;sBADX,KAAK;gBAKG,mBAAmB,EAAA,CAAA;sBAD3B,WAAW;uBAAC,yBAAyB,CAAA;;;MCN7B,oBAAoB,CAAA;;IAE7B,IACI,IAAI,CAAC,IAA+B,EAAA;QACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAE5B,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;AAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;KACjC;;AAkBD,IAAA,WAAA,CAAoB,WAAuB,EAAA;AAAvB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;AAHnC,QAAA,IAAA,CAAA,iBAAiB,GAAiB,IAAI,YAAY,EAAE,CAAC;KAGd;;IAG/C,WAAW,GAAA;QACP,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;;AAGO,IAAA,gBAAgB,CAAC,IAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CACtB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAe,KAAI;AAC5C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AAC3B,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;SAC/C,CAAC,CACL,CAAC;KACL;;IAGO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,YAAY,EAAE,CAAC;KAC/C;;AAGO,IAAA,kBAAkB,CAAC,IAAoB,EAAA;AAC3C,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,MAAM,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,CAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,MAAM,IAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;KACrD;;iHA3DQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAApB,oBAAoB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,eAAA,EAAA,MAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;iBAC9B,CAAA;iGAIO,IAAI,EAAA,CAAA;sBADP,KAAK;uBAAC,eAAe,CAAA;gBActB,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,oBAAoB,CAAA;gBAKjC,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,oBAAoB,CAAA;gBAKjC,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,oBAAoB,CAAA;;;ACtBrC;MACa,kBAAkB,CAAA;AAT/B,IAAA,WAAA,GAAA;;AA0BI,QAAA,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;;AAKzB,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;AAIlB,QAAA,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;;AAIzB,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;KAC9B;;;IA5BG,IAAuB,gBAAgB,CAAC,QAA4B,EAAA;AAChE,QAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,KAAK,QAAQ,CAAC;AAChD,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,KAAK,OAAO,CAAC;KACjD;;+GANQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EANjB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qCAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,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,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAGQ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAT9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,CAAA;;;AAGT,IAAA,CAAA;iBACJ,CAAA;8BAK0B,gBAAgB,EAAA,CAAA;sBAAtC,KAAK;uBAAC,UAAU,CAAA;gBASjB,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAMN,gBAAgB,EAAA,CAAA;sBAFf,KAAK;;sBACL,WAAW;uBAAC,qCAAqC,CAAA;gBAMlD,UAAU,EAAA,CAAA;sBAFT,KAAK;;sBACL,WAAW;uBAAC,kBAAkB,CAAA;gBAK/B,iBAAiB,EAAA,CAAA;sBADhB,WAAW;uBAAC,4BAA4B,CAAA;gBAKzC,kBAAkB,EAAA,CAAA;sBADjB,WAAW;uBAAC,6BAA6B,CAAA;;;AC3BxC,MAAO,8BAA+B,SAAQ,0BAA0B,CAAA;;AAE1E,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,SAAS,CAAC,CAAC;KACpB;;2HAJQ,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA9B,8BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,EAP5B,QAAA,EAAA,kBAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,yBAAyB;AAClC,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,8BAA8B,CAAC;AAChE,SAAA;KACJ,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAEQ,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAV1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,WAAW,EAAE,UAAU,CAAC,oCAAoC,CAAC;AAChE,yBAAA;AACJ,qBAAA;iBACJ,CAAA;;;MCJY,sBAAsB,CAAA;AANnC,IAAA,WAAA,GAAA;;AASa,QAAA,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;KACjD;;mHAJY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,4IAJrB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAIH,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,EAAE;oBACZ,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;iBAClD,CAAA;8BAIY,oBAAoB,EAAA,CAAA;sBAD5B,WAAW;uBAAC,0BAA0B,CAAA;;;MCL9B,cAAc,GAAG,IAAI,cAAc,CAAW,eAAe;;AC6BpE,MAAO,mBAAoB,SAAQ,cAA6B,CAAA;;IAoBlE,IACI,MAAM,CAAC,WAAgC,EAAA;AACvC,QAAA,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAChE,SAAA;KACJ;;AAGD,IAAA,WAAA,CACI,UAAsB,EACtB,aAA4B,EACpB,YAAyB,EACzB,kBAAqC,EACrC,OAAe,EACH,WAAuB,EACnB,aAA4B,EACZ,WAAoC,EAAA;AAE5E,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAP7E,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;AACzB,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;AACrC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AACH,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;AAvB/C,QAAA,IAAY,CAAA,YAAA,GAAiC,SAAS,CAAC;KA4BtD;;IAGD,QAAQ,GAAA;QACJ,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;IAGD,WAAW,GAAA;QACP,KAAK,CAAC,SAAS,EAAE,CAAC;KACrB;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;KAC3B;;IAGD,iBAAiB,GAAA;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACpG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAK;AACvB,YAAA,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,KAAK,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;KACN;;IAGO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EACzD,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,MAAM,EAAE,IAAI,EACZ,eAAe,EAAE,IAAI,EAClB,EAAA,IAAI,CAAC,YAAY,CAAA,EAAA,EACpB,eAAe,EAAE,KAAK,EACtB,sBAAsB,EAAE,KAAK,EAC7B,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,IAC3C,CAAC;KACN;;IAGO,yBAAyB,GAAA;AAC7B,QAAA,MAAM,eAAe,GAAwB,IAAI,CAAC,YAAY,CAAC,cAAc;aACxE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,KAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,CAAC,UAAU;AACrB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;AAC7D,aAAA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;KACvD;AAED;;;AAGG;AACK,IAAA,gBAAgB,CAAC,EAAa,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACvB,YAAA,EAAE,EAAE,CAAC;AACR,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACrD,SAAA;KACJ;;AAGO,IAAA,YAAY,CAAC,KAA0B,EAAA;QAC3C,MAAM,QAAQ,GAAsB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAK;;YACvB,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAC;AACjD,SAAC,CAAC,CAAC;KACN;;IAGO,uBAAuB,GAAA;QAC3B,IAAI,CAAC,UAAU,CAAC,YAAY;AACvB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC,SAAS,CAAC,CAAC,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACtF;;IAGO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW;AACnC,cAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,KAAK,GAAG,wBAAwB,GAAG,uBAAuB,CAAC,CAAC,CAAC;AACzG,cAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC;KACrC;;AAGO,IAAA,eAAe,CAAC,QAA2B,EAAA;QAC/C,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,OAAO,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;AACrE,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;KACxC;;AAGO,IAAA,YAAY,CAAC,QAA2B,EAAA;QAC5C,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,OAAO,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;AACtE,SAAA;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;;gHA/IQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAmChB,cAAc,EAAA,EAAA,EAAA,KAAA,EACF,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oGApCjC,mBAAmB,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAoBjB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtDlC,4gFA+DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,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,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,qUAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,oGAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,yDAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FD7Ba,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;YACI,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,mBAET,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,4gFAAA,EAAA,CAAA;;;8BAoChC,QAAQ;;8BACR,MAAM;+BAAC,cAAc,CAAA;;8BACrB,QAAQ;;8BAAI,MAAM;+BAAC,kBAAkB,CAAA;;yBAlCb,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBAmBvB,MAAM,EAAA,CAAA;sBADT,SAAS;uBAAC,mBAAmB,CAAA;;;ME3CrB,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8GAAhB,gBAAgB,EAAA,YAAA,EAAA,CAJV,mBAAmB,CACxB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,YAAY,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CACxC,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAEpB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAHf,OAAA,EAAA,CAAA,YAAY,EAAE,YAAY,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGzC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;oBACnD,OAAO,EAAE,CAAC,mBAAmB,CAAC;iBACjC,CAAA;;;AC6BD,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;AAEG;AASG,MAAO,aACT,SAAQ,gBAAgB,CAAA;;IAIxB,IACI,MAAM,CAAC,KAAmB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9C;AACD,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;;AAqED,IAAA,IAAY,cAAc,GAAA;;AACtB,QAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACO,IAAI,CAAA,EAAA,EACP,mBAAmB,EAAE,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,mBAAmB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,IAAI,mBAAmB,EAC7E,CAAA,CAAA;KACL;;AAGD,IAAA,WAAA,CACoB,UAAsB,EACV,YAA0B,EACrC,SAAoB,EACpB,YAAyB,EACzB,kBAAqC,EACrC,eAA+B,EAC/B,SAAmB,EACnB,iBAAmC,EACvB,wBAAiD,EACrE,uBAA+C,EAAA;AAExD,QAAA,KAAK,EAAE,CAAC;AAXQ,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACV,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AACrC,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AACpB,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;AACzB,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;AACrC,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAgB;AAC/B,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;AACnB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AACvB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAAyB;AACrE,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;;AAnF5D,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAIjB,QAAA,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAEpB;;;AAGG;AAEH,QAAA,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;;AAIxB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;AAI1B,QAAA,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;;QAIpB,IAAA,CAAA,YAAY,GAAqB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;;AAYhE,QAAA,IAAA,CAAA,EAAE,GAAG,WAAW,YAAY,EAAE,EAAE,CAAC;;AAIxB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAuB,CAAC;;AAWtD,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;AAMhB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;KA8B3C;;IAGD,QAAQ,GAAA;;QAEJ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AACnC,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;;;YAIrB,IAAI,CAAC,MAAM,EAAE;gBACT,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACjC,aAAA;AAED,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AAC3C,SAAC,CAAC,CAAC;KACN;;IAGD,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;;IAGD,eAAe,GAAA;QACX,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;YAClD,IAAI,CAAC,UAAU,EAAE,CAAC;;AAGlB,YAAA,IAAI,QAAQ,EAAE;AACV,gBAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AACrC,aAAA;AACL,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9C;;IAGD,WAAW,GAAA;QACP,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;KACpC;;IAGD,IAAI,OAAO,CAAC,OAAmB,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,yBAAyB,EAAE,CAAC;KACpC;AACD,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;;IAGD,IAAI,GAAA;QACA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC/B,SAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KAC1C;;IAGD,KAAK,GAAA;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;AAChC,SAAA;QAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KAC1C;;IAGD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;KAC5C;;IAGD,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;KAC1C;;IAGO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;KACtC;;IAGO,UAAU,GAAA;QACd,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC/B,SAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;KAC3C;;IAGO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAC3G,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC9D,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;KAC/E;;IAGa,gBAAgB,GAAA;;AAC1B,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC7B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACxD,MAAM,EAAE,IAAI,CAAC,SAAS;AACzB,aAAA,CAAC,CAAC;YAEH,IAAI,CAAC,uBAAuB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAClF,IAAI,CAAC,iBAAiB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,IAAI,CAAC,iBAAiB,EACtB,QAAQ,CACX,CAAC;YAEF,IAAI,CAAC,yBAAyB,EAAE,CAAC;SACpC,CAAA,CAAA;AAAA,KAAA;;IAGO,wBAAwB,GAAA;QAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;;QAGlG,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;;AACjC,YAAA,IAAI,MAAA,QAAQ,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,EAAE;gBAC7B,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,cAAc,CAAC,GAAG,CACnB,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CACtF,CAAC;AACL,aAAA;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;KACrC;AAED;;;AAGG;IACK,yBAAyB,GAAA;QAC7B,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;YAC7B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9G,SAAA;KACJ;AAED;;;AAGG;IACK,sBAAsB,GAAA;QAC1B,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACnC,SAAA;KACJ;;IAGO,uBAAuB,GAAA;QAC3B,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAC9B,YAAA,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC;AAC1C,SAAA;KACJ;;IAGO,aAAa,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACtC,SAAA;KACJ;;0GApSQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAFX,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA,CAAC,WAAW,EAAE,cAAc,EAAE,+BAA+B,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAgE1D,iBAAiB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClHtC,gkBAkBA,EAAA,MAAA,EAAA,CAAA,8tgBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDkCa,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,iBAGJ,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,WAAW,EAAE,cAAc,EAAE,+BAA+B,EAAE,CAAC,EAAA,QAAA,EAAA,gkBAAA,EAAA,MAAA,EAAA,CAAA,8tgBAAA,CAAA,EAAA,CAAA;;;8BA6FtE,QAAQ;;8BAOR,QAAQ;;yBA5FT,MAAM,EAAA,CAAA;sBADT,KAAK;gBAWN,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAKN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAQN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAKN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAKN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAKN,EAAE,EAAA,CAAA;sBADD,KAAK;gBAKG,UAAU,EAAA,CAAA;sBADlB,MAAM;gBAKP,iBAAiB,EAAA,CAAA;sBADhB,SAAS;uBAAC,kBAAkB,CAAA;gBAK7B,UAAU,EAAA,CAAA;sBADT,eAAe;uBAAC,iBAAiB,CAAA;;;MEpEzB,UAAU,CAAA;;uGAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,iBA1Bf,aAAa;QACb,iBAAiB;QACjB,kBAAkB;QAClB,sBAAsB;QACtB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,gBAAgB;QAChB,oBAAoB;AACpB,QAAA,8BAA8B,CAAA,EAAA,OAAA,EAAA,CAXxB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAcvF,aAAa;QACb,iBAAiB;QACjB,gBAAgB;QAChB,sBAAsB;QACtB,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;QAClB,kBAAkB;QAClB,oBAAoB;QACpB,8BAA8B;QAC9B,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAIf,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAFR,SAAA,EAAA,CAAC,uBAAuB,CAAC,YA1B1B,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAwBvF,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAIf,UAAU,EAAA,UAAA,EAAA,CAAA;kBA7BtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,CAAC;AAC5F,oBAAA,YAAY,EAAE;wBACV,aAAa;wBACb,iBAAiB;wBACjB,kBAAkB;wBAClB,sBAAsB;wBACtB,qBAAqB;wBACrB,wBAAwB;wBACxB,kBAAkB;wBAClB,gBAAgB;wBAChB,oBAAoB;wBACpB,8BAA8B;AACjC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,aAAa;wBACb,iBAAiB;wBACjB,gBAAgB;wBAChB,sBAAsB;wBACtB,qBAAqB;wBACrB,wBAAwB;wBACxB,kBAAkB;wBAClB,kBAAkB;wBAClB,oBAAoB;wBACpB,8BAA8B;wBAC9B,oBAAoB;AACvB,qBAAA;oBACD,SAAS,EAAE,CAAC,uBAAuB,CAAC;iBACvC,CAAA;;;MC7CqB,eAAe,CAAA;AAGpC;;MCKY,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;;AAIoB,QAAA,IAAA,CAAA,WAAW,GAAoB,IAAI,OAAO,EAAU,CAAC;;AAGrE,QAAA,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;KAiDlC;AAzCG;;;;;;AAMK;AACL,IAAA,cAAc,CAAC,KAAoB,EAAE,KAAa,EAAE,SAAkD,EAAA;QAClG,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,OAAO;AACV,SAAA;QAED,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;AACtC,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE;gBAC9B,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAChC,aAAA;AAAM,iBAAA;gBACH,IAAI,IAAI,CAAC,oBAAoB,EAAE;oBAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC/B,iBAAA;AAAM,qBAAA;AACH,oBAAA,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACxB,iBAAA;AACJ,aAAA;YACD,KAAK,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;YAC3C,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAChC,aAAA;AAAM,iBAAA;gBACH,IAAI,IAAI,CAAC,qBAAqB,EAAE;oBAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAChC,iBAAA;AAAM,qBAAA;oBACH,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3C,iBAAA;AACJ,aAAA;YACD,KAAK,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE;AACjD,YAAA,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;AAClB,gBAAA,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACzB,KAAK,CAAC,cAAc,EAAE,CAAC;AAC1B,aAAA;AACJ,SAAA;KACJ;;gHAtDQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oHAAnB,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;8BAIS,WAAW,EAAA,CAAA;sBAD1B,MAAM;;;ACVX;;AAEG;;;;"}
@@ -825,7 +825,7 @@ SelectAllTogglerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
825
825
  </fd-checkbox>
826
826
  </div>
827
827
  </fd-toolbar>
828
- `, isInline: true, styles: ["fd-multi-combobox-select-all-toggler{display:block;background-color:var(--sapBackgroundColor);cursor:pointer;position:sticky;top:0;z-index:1}fd-multi-combobox-select-all-toggler:focus,fd-multi-combobox-select-all-toggler.is-focus{outline-offset:-.1875rem;outline-width:var(--sapContent_FocusWidth);outline-style:var(--sapContent_FocusStyle);outline-color:var(--sapContent_FocusColor)}fd-multi-combobox-select-all-toggler .fd-toolbar{padding-left:1rem;padding-right:0}fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item{display:flex;flex-direction:row;align-items:center;font-weight:700}fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox{pointer-events:none}fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox .fd-checkbox__checkmark{margin-right:.5rem}[dir=rtl] fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox .fd-checkbox__checkmark,fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox .fd-checkbox__checkmark[dir=rtl]{margin-right:0;margin-left:.5rem}fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox .fd-checkbox__text{font-weight:700!important}\n"], dependencies: [{ kind: "component", type: i1$3.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i9.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$1.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex"] }, { kind: "pipe", type: i7.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
828
+ `, isInline: true, styles: ["fd-multi-combobox-select-all-toggler{display:block;background-color:var(--sapBackgroundColor);cursor:pointer;position:sticky;top:0;z-index:1}fd-multi-combobox-select-all-toggler:focus,fd-multi-combobox-select-all-toggler.is-focus{outline-offset:-.1875rem;outline-width:var(--sapContent_FocusWidth);outline-style:var(--sapContent_FocusStyle);outline-color:var(--sapContent_FocusColor)}fd-multi-combobox-select-all-toggler .fd-toolbar{padding-left:1rem;padding-right:0}fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item{display:flex;flex-direction:row;align-items:center;font-weight:700}fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox{pointer-events:none}fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox .fd-checkbox__checkmark{margin-right:.5rem}[dir=rtl] fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox .fd-checkbox__checkmark,fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox .fd-checkbox__checkmark[dir=rtl]{margin-right:0;margin-left:.5rem}fd-multi-combobox-select-all-toggler .fd-multi-combobox-select-all__form-item fd-checkbox .fd-checkbox__text{font-weight:700!important}\n"], dependencies: [{ kind: "component", type: i1$3.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i9.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$1.ToolbarComponent, selector: "fd-toolbar", inputs: ["titleId", "class", "shouldOverflow", "fdType", "hasTitle", "title", "active", "clearBorder", "forceOverflow", "tabindex", "headingLevel"] }, { kind: "pipe", type: i7.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
829
829
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectAllTogglerComponent, decorators: [{
830
830
  type: Component,
831
831
  args: [{ selector: 'fd-multi-combobox-select-all-toggler', template: `