UNPKG

carbon-components-angular

Version:
1 lines 69 kB
{"version":3,"file":"carbon-components-angular-ui-shell.mjs","sources":["../../src/ui-shell/header/header.component.ts","../../src/ui-shell/header/header-item.component.ts","../../src/ui-shell/header/header-menu.component.ts","../../src/ui-shell/header/header-navigation.component.ts","../../src/ui-shell/header/header-global.component.ts","../../src/ui-shell/header/header-action.component.ts","../../src/ui-shell/header/hamburger.component.ts","../../src/ui-shell/header/header.module.ts","../../src/ui-shell/sidenav/routerlink-extended.directive.ts","../../src/ui-shell/sidenav/sidenav-item.component.ts","../../src/ui-shell/sidenav/sidenav-menu.component.ts","../../src/ui-shell/sidenav/sidenav.component.ts","../../src/ui-shell/sidenav/sidenav.module.ts","../../src/ui-shell/panel/panel.component.ts","../../src/ui-shell/panel/switcher-list.component.ts","../../src/ui-shell/panel/switcher-list-item.component.ts","../../src/ui-shell/panel/panel.module.ts","../../src/ui-shell/ui-shell.module.ts","../../src/ui-shell/carbon-components-angular-ui-shell.ts"],"sourcesContent":["import {\n\tComponent,\n\tInput,\n\tOptional,\n\tOutput,\n\tEventEmitter,\n\tTemplateRef\n} from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { Router } from \"@angular/router\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * A fixed header and navigation.\n * Header may contain a Hamburger menu to toggle the side navigation, navigation actions,\n * and global actions (generally in the form of `Panel`s).\n *\n * [See demo](../../?path=/story/components-ui-shell--header)\n */\n@Component({\n\tselector: \"cds-header, ibm-header\",\n\ttemplate: `\n\t\t<header\n\t\t\tclass=\"cds--header\"\n\t\t\t[attr.aria-label]=\"brand + ' ' + name\">\n\t\t\t<a\n\t\t\t\t*ngIf=\"skipTo\"\n\t\t\t\tclass=\"cds--skip-to-content\"\n\t\t\t\t[href]=\"skipTo\"\n\t\t\t\ttabindex=\"0\">\n\t\t\t\t{{ i18n.get(\"UI_SHELL.SKIP_TO\") | async }}\n\t\t\t</a>\n\t\t\t<ng-content select=\"cds-hamburger,ibm-hamburger\"></ng-content>\n\t\t\t<ng-template\n\t\t\t\t*ngIf=\"isTemplate(brand)\"\n\t\t\t\t[ngTemplateOutlet]=\"brand\">\n\t\t\t</ng-template>\n\t\t\t<ng-container *ngIf=\"!isTemplate(brand)\" [ngSwitch]=\"useRouter\">\n\t\t\t\t<a\n\t\t\t\t\t*ngSwitchCase=\"false\"\n\t\t\t\t\tclass=\"cds--header__name\"\n\t\t\t\t\t[href]=\"href\"\n\t\t\t\t\t(click)=\"navigate($event)\">\n\t\t\t\t\t<span class=\"cds--header__name--prefix\">{{brand}}&nbsp;</span>\n\t\t\t\t\t{{name}}\n\t\t\t\t</a>\n\t\t\t\t<a\n\t\t\t\t\t*ngSwitchCase=\"true\"\n\t\t\t\t\tclass=\"cds--header__name\"\n\t\t\t\t\t[routerLink]=\"route\">\n\t\t\t\t\t<span class=\"cds--header__name--prefix\">{{brand}}&nbsp;</span>\n\t\t\t\t\t{{name}}\n\t\t\t\t</a>\n\t\t\t</ng-container>\n\t\t\t<ng-content></ng-content>\n\t\t</header>\n\t`\n})\nexport class Header {\n\t/**\n\t * ID in the main body content to jump to. Used by keyboard and screen reader users to skip the header content.\n\t */\n\t@Input() skipTo: string;\n\t/**\n\t * Label that shows to the right of the `brand` text. Generally a product name.\n\t */\n\t@Input() name: string;\n\t/**\n\t * Top level branding. Defaults to \"IBM\"\n\t */\n\t@Input() brand: string | TemplateRef<any> = \"IBM\";\n\t/**\n\t * Optional link for the header\n\t */\n\t@Input() set href(v: string) {\n\t\tthis._href = v;\n\t}\n\n\tget href() {\n\t\treturn this.domSanitizer.bypassSecurityTrustUrl(this._href) as string;\n\t}\n\n\t/**\n\t * Array of commands to send to the router when the link is activated\n\t * See: https://angular.io/api/router/Router#navigate\n\t */\n\t@Input() route: any[];\n\n\t/**\n\t * Router options. Used in conjunction with `route`\n\t * See: https://angular.io/api/router/Router#navigate\n\t */\n\t@Input() routeExtras: any;\n\n\t/**\n\t * Use the routerLink attribute on <a> tag for navigation instead of using event handlers\n\t */\n\t@Input() useRouter = false;\n\n\t/**\n\t * Emits the navigation status promise when the link is activated\n\t */\n\t@Output() navigation = new EventEmitter<Promise<boolean>>();\n\n\tprotected _href = \"#\";\n\n\tconstructor(\n\t\tpublic i18n: I18n,\n\t\tprotected domSanitizer: DomSanitizer,\n\t\t@Optional() protected router: Router) { }\n\n\tpublic isTemplate(value) {\n\t\treturn value instanceof TemplateRef;\n\t}\n\n\tnavigate(event) {\n\t\tif (this.router && this.route) {\n\t\t\tevent.preventDefault();\n\t\t\tconst status = this.router.navigate(this.route, this.routeExtras);\n\t\t\tthis.navigation.emit(status);\n\t\t} else if (this._href === \"#\") {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOptional,\n\tEventEmitter,\n\tOutput,\n\tHostBinding\n} from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { Router } from \"@angular/router\";\n\n/**\n * Individual item in the header. May be used a direct child of `HeaderNavigation` or `HeaderMenu`\n */\n@Component({\n\tselector: \"cds-header-item, ibm-header-item\",\n\ttemplate: `\n\t\t<ng-container [ngSwitch]=\"useRouter\">\n\t\t\t<ng-template #content><ng-content></ng-content></ng-template>\n\t\t\t<a\n\t\t\t\t*ngSwitchCase=\"false\"\n\t\t\t\tclass=\"cds--header__menu-item\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t[ngClass]=\"{'cds--header__menu-item--current' : isCurrentPage}\"\n\t\t\t\t[href]=\"href\"\n\t\t\t\t(click)=\"navigate($event)\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\t\t\t</a>\n\t\t\t<a\n\t\t\t\t*ngSwitchCase=\"true\"\n\t\t\t\tclass=\"cds--header__menu-item\"\n\t\t\t\t[routerLinkActive]=\"['cds--header__menu-item--current']\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t\t[ngClass]=\"{'cds--header__menu-item--current' : isCurrentPage}\"\n\t\t\t\t[routerLink]=\"route\"\n\t\t\t\t[routerLinkActive]=\"activeLinkClass\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\t\t\t</a>\n\t\t</ng-container>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: list-item;\n\t\t}\n\t`]\n})\nexport class HeaderItem {\n\t@HostBinding(\"attr.role\") role = \"listitem\";\n\t@Input() set href(v: string) {\n\t\t// Needed when component is created dynamically with a model.\n\t\tif (v === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tthis._href = v;\n\t}\n\n\tget href() {\n\t\treturn this.domSanitizer.bypassSecurityTrustUrl(this._href) as string;\n\t}\n\n\t/**\n\t * Use the routerLink attribute on <a> tag for navigation instead of using event handlers\n\t */\n\t@Input() useRouter = false;\n\n\t/**\n\t * String or array of string class names to apply when active\n\t */\n\t@Input() activeLinkClass: string | string[];\n\n\t/**\n\t * Applies selected styles to the item if a user sets this to true.\n\t */\n\t@Input() isCurrentPage: boolean;\n\n\t/**\n\t * Array of commands to send to the router when the link is activated\n\t * See: https://angular.io/api/router/Router#navigate\n\t */\n\t@Input() route: any[];\n\n\t/**\n\t * Router options. Used in conjunction with `route`\n\t * See: https://angular.io/api/router/Router#navigate\n\t */\n\t@Input() routeExtras: any;\n\n\t/**\n\t * Emits the navigation status promise when the link is activated\n\t */\n\t@Output() navigation = new EventEmitter<Promise<boolean>>();\n\n\tprotected _href = \"#\";\n\n\tconstructor(protected domSanitizer: DomSanitizer, @Optional() protected router: Router) { }\n\n\tnavigate(event) {\n\t\tif (this.router && this.route) {\n\t\t\tevent.preventDefault();\n\t\t\tconst status = this.router.navigate(this.route, this.routeExtras);\n\t\t\tthis.navigation.emit(status);\n\t\t} else if (this._href === \"#\") {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tHostListener,\n\tElementRef,\n\tTemplateRef,\n\tHostBinding\n} from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { HeaderItemInterface } from \"./header-navigation-items.interface\";\n\n/**\n * Dropdown menu container for navigation items.\n */\n@Component({\n\tselector: \"cds-header-menu, ibm-header-menu\",\n\ttemplate: `\n\t\t<a\n\t\t\tclass=\"cds--header__menu-item cds--header__menu-title\"\n\t\t\t[href]=\"href\"\n\t\t\ttabindex=\"0\"\n\t\t\taria-haspopup=\"menu\"\n\t\t\t[attr.aria-expanded]=\"expanded\"\n\t\t\t(click)=\"navigate($event)\">\n\t\t\t{{title}}\n\t\t\t<ng-template *ngIf=\"icon; else defaultIcon\" [ngTemplateOutlet]=\"icon\"></ng-template>\n\t\t\t<ng-template #defaultIcon>\n\t\t\t\t<svg class=\"cds--header__menu-arrow\" width=\"12\" height=\"7\" aria-hidden=\"true\">\n\t\t\t\t\t<path d=\"M6.002 5.55L11.27 0l.726.685L6.003 7 0 .685.726 0z\" />\n\t\t\t\t</svg>\n\t\t\t</ng-template>\n\t\t</a>\n\t\t<div class=\"cds--header__menu\" [attr.aria-label]=\"title\">\n\t\t\t<ng-content></ng-content>\n\t\t\t<ng-container *ngFor=\"let headerItem of headerItems\">\n\t\t\t\t<cds-header-item\n\t\t\t\t\t[href]=\"headerItem.href\"\n\t\t\t\t\t[route]=\"headerItem.route\"\n\t\t\t\t\t[routeExtras]=\"headerItem.routeExtras\">\n\t\t\t\t\t{{ headerItem.content }}\n\t\t\t\t</cds-header-item>\n\t\t\t</ng-container>\n\t\t</div>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: list-item;\n\t\t}\n\t`]\n})\nexport class HeaderMenu {\n\t@HostBinding(\"class.cds--header__submenu\") subMenu = true;\n\t@HostBinding(\"attr.role\") role = \"listitem\";\n\n\t@Input() title: string;\n\t@Input() set href(v: string) {\n\t\t// Needed when component is created dynamically with a model.\n\t\tif (v === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tthis._href = v;\n\t}\n\n\tget href() {\n\t\treturn this.domSanitizer.bypassSecurityTrustUrl(this._href) as string;\n\t}\n\t@Input() trigger: \"click\" | \"mouseover\" = \"click\";\n\n\t/**\n\t * Used to create header items through a model.\n\t */\n\t@Input() headerItems: HeaderItemInterface[];\n\n\t/**\n\t * Optional icon\n\t */\n\t@Input() icon: TemplateRef<any>;\n\n\tpublic expanded = false;\n\n\tprotected _href = \"#\";\n\n\tconstructor(protected domSanitizer: DomSanitizer, protected elementRef: ElementRef) { }\n\n\t@HostListener(\"click\")\n\tonClick() {\n\t\tif (this.trigger === \"click\") {\n\t\t\tthis.expanded = !this.expanded;\n\t\t}\n\t}\n\n\t@HostListener(\"mouseover\")\n\tonMouseOver() {\n\t\tif (this.trigger === \"mouseover\") {\n\t\t\tthis.expanded = true;\n\t\t}\n\t}\n\n\t@HostListener(\"mouseout\")\n\tonMouseOut() {\n\t\tif (this.trigger === \"mouseover\") {\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\t@HostListener(\"focusout\", [\"$event\"])\n\tonFocusOut(event) {\n\t\tif (!this.elementRef.nativeElement.contains(event.relatedTarget)) {\n\t\t\tthis.expanded = false;\n\t\t}\n\t}\n\n\tnavigate(event) {\n\t\tif (this._href === \"#\") {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tHostBinding,\n\tInput\n} from \"@angular/core\";\nimport { NavigationItem } from \"./header-navigation-items.interface\";\n/**\n * Container for header navigation items\n */\n@Component({\n\tselector: \"cds-header-navigation, ibm-header-navigation\",\n\ttemplate: `\n\t\t<nav class=\"cds--header__nav\" [attr.aria-label]=\"ariaLabel\">\n\t\t\t<div class=\"cds--header__menu-bar\" role=\"list\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t\t<ng-container *ngFor=\"let navigationItem of navigationItems\">\n\t\t\t\t\t<cds-header-item\n\t\t\t\t\t\t*ngIf=\"navigationItem.type === 'item'\"\n\t\t\t\t\t\t[href]=\"navigationItem.href\"\n\t\t\t\t\t\t[route]=\"navigationItem.route\"\n\t\t\t\t\t\t[routeExtras]=\"navigationItem.routeExtras\"\n\t\t\t\t\t\t[isCurrentPage]=\"!!navigationItem.isCurrentPage\">\n\t\t\t\t\t\t{{ navigationItem.content }}\n\t\t\t\t\t</cds-header-item>\n\t\t\t\t\t<cds-header-menu\n\t\t\t\t\t\t*ngIf=\"navigationItem.type === 'menu'\"\n\t\t\t\t\t\t[href]=\"navigationItem.href\"\n\t\t\t\t\t\t[title]=\"navigationItem.title\"\n\t\t\t\t\t\t[trigger]=\"navigationItem.trigger ? navigationItem.trigger : 'click'\"\n\t\t\t\t\t\t[headerItems]=\"navigationItem.menuItems\">\n\t\t\t\t\t</cds-header-menu>\n\t\t\t\t</ng-container>\n\t\t\t</div>\n\t\t</nav>\n\t`\n})\nexport class HeaderNavigation {\n\t@HostBinding(\"style.height.%\") height = 100;\n\n\t@Input() ariaLabel: string;\n\n\t/**\n\t * Creates the header navigation items and menu items through a list of navigation item objects.\n\t * In order for the navigation items to move to the side navigation when window size is less than 1056px,\n\t * navigation items need to be passed into both cds-header-navigation and cds-sidenav.\n\t */\n\t@Input() navigationItems: NavigationItem[];\n}\n","import { Component, HostBinding } from \"@angular/core\";\n\n/**\n * Container for `HeaderAction`s.\n */\n@Component({\n\tselector: \"cds-header-global, ibm-header-global\",\n\ttemplate: `\n\t\t<ng-content></ng-content>\n\t`\n})\nexport class HeaderGlobal {\n\t@HostBinding(\"class.cds--header__global\") hostClass = true;\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tTemplateRef\n} from \"@angular/core\";\nimport { BaseIconButton } from \"carbon-components-angular/button\";\n\n/**\n * Contained by `HeaderGlobal`. Generally used to trigger `Panel`s\n */\n@Component({\n\tselector: \"cds-header-action, ibm-header-action\",\n\ttemplate: `\n\t\t<cds-icon-button\n\t\t\t[buttonNgClass]=\"{\n\t\t\t\t'cds--header__action': true,\n\t\t\t\t'cds--header__action--active': active\n\t\t\t}\"\n\t\t\t(click)=\"onClick()\"\n\t\t\t[align]=\"align\"\n\t\t\t[caret]=\"caret\"\n\t\t\t[dropShadow]=\"dropShadow\"\n\t\t\t[highContrast]=\"highContrast\"\n\t\t\t[isOpen]=\"isOpen\"\n\t\t\t[enterDelayMs]=\"enterDelayMs\"\n\t\t\t[leaveDelayMs]=\"leaveDelayMs\"\n\t\t\t[description]=\"description\"\n\t\t\t[buttonAttributes]=\"{\n\t\t\t\t'aria-label': ariaLabel\n\t\t\t}\">\n\t\t\t<ng-content></ng-content>\n\t\t</cds-icon-button>\n\t`\n})\nexport class HeaderAction extends BaseIconButton {\n\t/**\n\t * Tooltip content to show on mouseenter\n\t */\n\t@Input() description: string | TemplateRef<any>;\n\t/**\n\t * Sets the aria label on the nav element.\n\t */\n\t@Input() ariaLabel: string;\n\t/**\n\t * Toggles the active state. May be used to toggle a `Panel`s active state.\n\t */\n\t@Input() active = false;\n\t/**\n\t * \"Change\" emitter to allow double binding to the `active` Input.\n\t */\n\t@Output() activeChange = new EventEmitter<boolean>();\n\t/**\n\t * Emits when the action has been clicked.\n\t */\n\t@Output() selected = new EventEmitter<boolean>();\n\n\tonClick() {\n\t\tthis.active = !this.active;\n\t\tthis.selected.emit(this.active);\n\t\tthis.activeChange.emit(this.active);\n\t}\n}\n","import {\n\tComponent,\n\tOutput,\n\tEventEmitter,\n\tInput\n} from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * A toggle for the side navigation\n */\n@Component({\n\tselector: \"cds-hamburger, ibm-hamburger\",\n\ttemplate: `\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\t(click)=\"doClick()\"\n\t\t\t[ngClass]=\"{'cds--header__action--active': active}\"\n\t\t\tclass=\"cds--header__menu-trigger cds--header__action cds--header__menu-toggle\"\n\t\t\t[attr.aria-label]=\"active ? activeTitle : inactiveTitle\"\n\t\t\t[attr.title]=\"active ? activeTitle : inactiveTitle\">\n\t\t\t<svg *ngIf=\"!active\" cdsIcon=\"menu\" size=\"20\"></svg>\n\t\t\t<svg *ngIf=\"active\" cdsIcon=\"close\" size=\"20\"></svg>\n\t\t</button>\n\t`\n})\nexport class Hamburger {\n\t/**\n\t * Controls the active/selected state for the `Hamburger` menu.\n\t */\n\t@Input() active = false;\n\n\t/**\n\t * Set the title text when the hamburger is active\n\t */\n\t@Input() activeTitle = this.i18n.get().UI_SHELL.HEADER.CLOSE_MENU;\n\n\t/**\n\t * Set the title text when the hamburger is inactive\n\t */\n\t@Input() inactiveTitle = this.i18n.get().UI_SHELL.HEADER.OPEN_MENU;\n\n\t/**\n\t * `EventEmitter` to notify parent components of menu click events.\n\t */\n\t@Output() selected: EventEmitter<Object> = new EventEmitter<Object>();\n\n\tconstructor(public i18n: I18n) {}\n\n\t/**\n\t * Emit the Hamburger click event upwards.\n\t */\n\tpublic doClick() {\n\t\tthis.selected.emit(this.active);\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\nimport { Header } from \"./header.component\";\nimport { HeaderItem } from \"./header-item.component\";\nimport { HeaderMenu } from \"./header-menu.component\";\nimport { HeaderNavigation } from \"./header-navigation.component\";\nimport { HeaderGlobal } from \"./header-global.component\";\nimport { HeaderAction } from \"./header-action.component\";\n\nimport { Hamburger } from \"./hamburger.component\";\nimport { RouterModule } from \"@angular/router\";\n\nexport { HeaderItemInterface, NavigationItem } from \"./header-navigation-items.interface\";\n\nexport {\n\tHeader,\n\tHeaderItem,\n\tHeaderMenu,\n\tHeaderNavigation,\n\tHeaderGlobal,\n\tHeaderAction,\n\tHamburger\n};\n\n@NgModule({\n\tdeclarations: [\n\t\tHeader,\n\t\tHeaderItem,\n\t\tHeaderMenu,\n\t\tHeaderNavigation,\n\t\tHeaderGlobal,\n\t\tHeaderAction,\n\t\tHamburger\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tIconModule,\n\t\tRouterModule\n\t],\n\texports: [\n\t\tHeader,\n\t\tHeaderItem,\n\t\tHeaderMenu,\n\t\tHeaderNavigation,\n\t\tHeaderGlobal,\n\t\tHeaderAction,\n\t\tHamburger\n\t]\n})\nexport class HeaderModule { }\n","import { Directive, Input, OnChanges, SimpleChanges } from \"@angular/core\";\nimport { NavigationExtras, RouterLinkWithHref } from \"@angular/router\";\nimport keys from \"lodash-es/keys\";\n\n@Directive({\n\t// tslint:disable-next-line\n\tselector: \"[routerLink]\"\n})\nexport class RouterLinkExtendedDirective extends RouterLinkWithHref implements OnChanges {\n\t// TODO: Change RouterLinkWithHref with RouterLink from angular 15 since RouterLinkWithHref has been deprecated\n\t@Input() routeExtras: NavigationExtras;\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes.routeExtras && this.routeExtras) {\n\t\t\tkeys(this.routeExtras).forEach(routeExtraProperty => this[routeExtraProperty] = this.routeExtras[routeExtraProperty]);\n\t\t}\n\n\t\tsuper.ngOnChanges(changes);\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOptional,\n\tOutput,\n\tEventEmitter,\n\tOnChanges,\n\tHostBinding,\n\tSimpleChanges\n} from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { Router } from \"@angular/router\";\n\n/**\n * `SideNavItem` can either be a child of `SideNav` or `SideNavMenu`\n */\n@Component({\n\tselector: \"cds-sidenav-item, ibm-sidenav-item\",\n\ttemplate: `\n\t\t<a *ngIf=\"!useRouter; else sidenavItemRouterTpl\"\n\t\t\tclass=\"cds--side-nav__link\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--side-nav__item--active': active\n\t\t\t}\"\n\t\t\t[href]=\"href\"\n\t\t\t[attr.aria-current]=\"(active ? 'page' : null)\"\n\t\t\t[attr.title]=\"title ? title : null\"\n\t\t\t(click)=\"navigate($event)\">\n\t\t\t<ng-template [ngTemplateOutlet]=\"sidenavItemContentTpl\"></ng-template>\n\t\t</a>\n\n\t\t<ng-template #sidenavItemRouterTpl>\n\t\t\t<a\n\t\t\t\t[attr.title]=\"title ? title : null\"\n\t\t\t\t[routerLink]=\"route\"\n\t\t\t\t[routeExtras]=\"routeExtras\"\n\t\t\t\trouterLinkActive=\"cds--side-nav__item--active\"\n\t\t\t\tariaCurrentWhenActive=\"page\"\n\t\t\t\tclass=\"cds--side-nav__link\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"sidenavItemContentTpl\"></ng-template>\n\t\t\t</a>\n\t\t</ng-template>\n\n\t\t<ng-template #sidenavItemContentTpl>\n\t\t\t<div *ngIf=\"!isSubMenu\" class=\"cds--side-nav__icon\">\n\t\t\t\t<ng-content select=\"svg, [icon]\"></ng-content>\n\t\t\t</div>\n\t\t\t<span class=\"cds--side-nav__link-text\">\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</span>\n\t\t</ng-template>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: list-item;\n\t\t}\n\t`]\n})\nexport class SideNavItem implements OnChanges {\n\t/**\n\t * Link for the item. NOTE: *do not* pass unsafe or untrusted values, this has the potential to open you up to XSS attacks\n\t */\n\t@Input() set href(v: string) {\n\t\t// Needed when component is created dynamically with a model.\n\t\tif (v === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tthis._href = v;\n\t}\n\n\tget href() {\n\t\treturn this.domSanitizer.bypassSecurityTrustUrl(this._href) as string;\n\t}\n\n\t/**\n\t * Use the routerLink attribute on <a> tag for navigation instead of using event handlers\n\t */\n\t@Input() useRouter = false;\n\n\t@HostBinding(\"class.cds--side-nav__item\") get sideNav() {\n\t\treturn !this.isSubMenu;\n\t}\n\n\t@HostBinding(\"class.cds--side-nav__menu-item\") get menuItem() {\n\t\treturn this.isSubMenu;\n\t}\n\n\t/**\n\t * Toggles the active (current page) state for the link.\n\t */\n\t@Input() active = false;\n\n\t/**\n\t * Array of commands to send to the router when the link is activated\n\t * See: https://angular.io/api/router/Router#navigate\n\t */\n\t@Input() route: any[];\n\n\t@Input() isSubMenu = false;\n\n\t/**\n\t * Router options. Used in conjunction with `route`\n\t * See: https://angular.io/api/router/Router#navigate\n\t */\n\t@Input() routeExtras: any;\n\n\t/**\n\t * Title attribute of the anchor element.\n\t */\n\t@Input() title: string;\n\n\t/**\n\t * Emits the navigation status promise when the link is activated\n\t */\n\t@Output() navigation = new EventEmitter<Promise<boolean>>();\n\n\t/**\n\t * Emits when `active` input is changed. This is mainly used to indicate to any parent menu items that a\n\t * child sidenav item is active or not active.\n\t */\n\t@Output() selected = new EventEmitter<boolean>();\n\n\t@HostBinding(\"attr.role\") role = \"listitem\";\n\n\tprotected _href = \"#\";\n\n\tconstructor(protected domSanitizer: DomSanitizer, @Optional() protected router: Router) {}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (changes.active) {\n\t\t\tthis.selected.emit(this.active);\n\t\t}\n\t}\n\n\tnavigate(event: MouseEvent) {\n\t\tif (this.router && this.route) {\n\t\t\tevent.preventDefault();\n\t\t\tconst status = this.router.navigate(this.route, this.routeExtras);\n\t\t\tthis.navigation.emit(status);\n\t\t} else if (this._href === \"#\") {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n}\n","import {\n\tAfterContentInit,\n\tComponent,\n\tContentChildren,\n\tInput,\n\tQueryList,\n\tOnDestroy,\n\tHostBinding\n} from \"@angular/core\";\nimport { SideNavItem } from \"./sidenav-item.component\";\nimport { Subscription } from \"rxjs\";\nimport { SideNavItemInterface } from \"./sidenav-item.interface\";\n\n/**\n * `SideNavMenu` provides a method to group `SideNavItem`s under a common heading.\n */\n@Component({\n\tselector: \"cds-sidenav-menu, ibm-sidenav-menu\",\n\ttemplate: `\n\t\t<button\n\t\t\t(click)=\"toggle()\"\n\t\t\tclass=\"cds--side-nav__submenu\"\n\t\t\taria-haspopup=\"true\"\n\t\t\t[attr.aria-expanded]=\"expanded\"\n\t\t\ttype=\"button\">\n\t\t\t<div class=\"cds--side-nav__icon\">\n\t\t\t\t<ng-content select=\"svg, [icon]\"></ng-content>\n\t\t\t</div>\n\t\t\t<span class=\"cds--side-nav__submenu-title\">{{title}}</span>\n\t\t\t<div class=\"cds--side-nav__icon cds--side-nav__icon--small cds--side-nav__submenu-chevron\">\n\t\t\t\t<svg\n\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\twidth=\"20\"\n\t\t\t\t\theight=\"20\"\n\t\t\t\t\tviewBox=\"0 0 32 32\"\n\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t<path d=\"M16 22L6 12l1.4-1.4 8.6 8.6 8.6-8.6L26 12z\"></path>\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</button>\n\t\t<div class=\"cds--side-nav__menu\" role=\"list\">\n\t\t\t<ng-content></ng-content>\n\t\t\t<ng-container *ngFor=\"let menuItem of menuItems\">\n\t\t\t\t<cds-sidenav-item\n\t\t\t\t\t[href]=\"menuItem.href\"\n\t\t\t\t\t[route]=\"menuItem.route\"\n\t\t\t\t\t[routeExtras]=\"menuItem.routeExtras\"\n\t\t\t\t\t[useRouter]=\"useRouter\"\n\t\t\t\t\t[isSubMenu]=\"true\">\n\t\t\t\t\t{{ menuItem.content }}\n\t\t\t\t</cds-sidenav-item>\n\t\t\t</ng-container>\n\t\t</div>\n\t`\n})\nexport class SideNavMenu implements AfterContentInit, OnDestroy {\n\t@HostBinding(\"class.cds--side-nav__item\") navItem = true;\n\t@HostBinding(\"class.cds--side-nav__item--icon\") navItemIcon = true;\n\t@HostBinding(\"class.cds--side-nav__item--active\") get navItemActive() {\n\t\treturn this.hasActiveChild;\n\t}\n\t@HostBinding(\"attr.role\") role = \"listitem\";\n\n\t/**\n\t * Use the routerLink attribute on <a> tag for navigation instead of using event handlers\n\t */\n\t@Input() useRouter = false;\n\n\t/**\n\t * Heading for the group\n\t */\n\t@Input() title: string;\n\t/**\n\t * Controls the visibility of the child `SideNavItem`s\n\t */\n\t@Input() expanded = false;\n\t/**\n\t * Controls the active status indicator on the menu if there is an active\n\t * child sidenav item.\n\t */\n\t@Input() hasActiveChild = false;\n\n\t@Input() menuItems: SideNavItemInterface[];\n\n\t@ContentChildren(SideNavItem) sidenavItems: QueryList<SideNavItem>;\n\n\tprotected activeItemsSubscription = new Subscription();\n\n\tngAfterContentInit() {\n\t\tsetTimeout(() => {\n\t\t\tthis.sidenavItems.forEach(item => {\n\t\t\t\titem.isSubMenu = true;\n\t\t\t\tthis.findActiveChildren();\n\t\t\t\tconst activeItemSubscription = item.selected.subscribe(() => {\n\t\t\t\t\tthis.findActiveChildren();\n\t\t\t\t});\n\t\t\t\tthis.activeItemsSubscription.add(activeItemSubscription);\n\t\t\t});\n\n\t\t\tthis.sidenavItems.changes.subscribe(() => {\n\t\t\t\tthis.sidenavItems.forEach(item => {\n\t\t\t\t\titem.isSubMenu = true;\n\t\t\t\t\tthis.findActiveChildren();\n\t\t\t\t\tconst activeItemSubscription = item.selected.subscribe(() => {\n\t\t\t\t\t\tthis.findActiveChildren();\n\t\t\t\t\t});\n\t\t\t\t\tthis.activeItemsSubscription.add(activeItemSubscription);\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.activeItemsSubscription.unsubscribe();\n\t}\n\n\ttoggle() {\n\t\tthis.expanded = !this.expanded;\n\t}\n\n\tprotected findActiveChildren() {\n\t\tthis.hasActiveChild = this.sidenavItems.some(item => item.active);\n\t}\n}\n","import {\n\tComponent,\n\tHostBinding,\n\tInput,\n\tViewEncapsulation\n} from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\nimport { NavigationItem } from \"../header/header-navigation-items.interface\";\n\n/**\n * `Sidenav` is a fixed left navigation that may contain `SideNavItem`s or `SideNavMenu`s\n *\n * [See demo](../../?path=/story/components-ui-shell--side-navigation)\n */\n@Component({\n\tselector: \"cds-sidenav, ibm-sidenav\",\n\ttemplate: `\n\t\t<nav class=\"cds--side-nav__items\" [attr.aria-label]=\"ariaLabel\">\n\t\t\t<ng-content select=\"cds-sidenav-header,ibm-sidenav-header\"></ng-content>\n\t\t\t<div role=\"list\">\n\t\t\t\t<div class=\"cds--side-nav__header-navigation cds--side-nav__header-divider\">\n\t\t\t\t\t<ng-container *ngFor=\"let navigationItem of navigationItems\">\n\t\t\t\t\t\t<cds-sidenav-item\n\t\t\t\t\t\t\t*ngIf=\"navigationItem.type === 'item'\"\n\t\t\t\t\t\t\t[href]=\"navigationItem.href\"\n\t\t\t\t\t\t\t[route]=\"navigationItem.route\"\n\t\t\t\t\t\t\t[routeExtras]=\"navigationItem.routeExtras\"\n\t\t\t\t\t\t\t[useRouter]=\"useRouter\"\n\t\t\t\t\t\t\t[title]=\"navigationItem.title\">\n\t\t\t\t\t\t\t{{ navigationItem.content }}\n\t\t\t\t\t\t</cds-sidenav-item>\n\t\t\t\t\t\t<cds-sidenav-menu\n\t\t\t\t\t\t\t*ngIf=\"navigationItem.type === 'menu'\"\n\t\t\t\t\t\t\t[title]=\"navigationItem.title\"\n\t\t\t\t\t\t\t[useRouter]=\"useRouter\"\n\t\t\t\t\t\t\t[menuItems]=\"navigationItem.menuItems\">\n\t\t\t\t\t\t</cds-sidenav-menu>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</div>\n\t\t\t<footer class=\"cds--side-nav__footer\">\n\t\t\t\t<button\n\t\t\t\t\t*ngIf=\"allowExpansion\"\n\t\t\t\t\tclass=\"cds--side-nav__toggle\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t[title]=\"(expanded ? i18n.get('UI_SHELL.SIDE_NAV.TOGGLE_CLOSE') : i18n.get('UI_SHELL.SIDE_NAV.TOGGLE_OPEN')) | async\"\n\t\t\t\t\t(click)=\"toggle()\">\n\t\t\t\t\t<div class=\"cds--side-nav__icon\">\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t*ngIf=\"expanded\"\n\t\t\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\tviewBox=\"0 0 32 32\"\n\t\t\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t\t\t<path d=\"M24 9.4L22.6 8 16 14.6 9.4 8 8 9.4l6.6 6.6L8 22.6 9.4 24l6.6-6.6 6.6 6.6 1.4-1.4-6.6-6.6L24 9.4z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t*ngIf=\"!expanded\"\n\t\t\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\tviewBox=\"0 0 32 32\"\n\t\t\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t\t\t<path d=\"M22 16L12 26l-1.4-1.4 8.6-8.6-8.6-8.6L12 6z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t\t<span class=\"cds--assistive-text\">\n\t\t\t\t\t\t{{(expanded ? i18n.get('UI_SHELL.SIDE_NAV.TOGGLE_CLOSE') : i18n.get('UI_SHELL.SIDE_NAV.TOGGLE_OPEN')) | async}}\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t</footer>\n\t\t</nav>\n\t`,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class SideNav {\n\t@HostBinding(\"class.cds--side-nav\") hostClass = true;\n\t@Input() ariaLabel = \"Side navigation\";\n\t/**\n\t * Controls the expanded (`true`) or collapsed (`false`) state when on a small screen.\n\t */\n\t@HostBinding(\"class.cds--side-nav--expanded\") @Input() expanded = true;\n\t/**\n\t * Controls the hidden (`true`) or visible (`false`) state\n\t */\n\t@HostBinding(\"class.cds--side-nav--hidden\") @Input() hidden = false;\n\t@HostBinding(\"class.cds--side-nav--rail\") @Input() rail = false;\n\t@HostBinding(\"class.cds--side-nav__navigation\") ux = true;\n\t@Input() allowExpansion = false;\n\n\t/**\n\t * NavigationItems from the header navigation component which are displayed on the sidenav when the window\n\t * innerWidth is small enough. Sidenav items and menus are created using the model used to create header\n\t * navigation items.\n\t */\n\t@Input() navigationItems: NavigationItem[];\n\n\t/**\n\t * Use the routerLink attribute on <a> tag for navigation instead of using event handlers\n\t */\n\t@Input() useRouter = false;\n\n\tconstructor(public i18n: I18n) { }\n\n\ttoggle() {\n\t\tthis.expanded = !this.expanded;\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\n\nimport { I18nModule } from \"carbon-components-angular/i18n\";\n\nimport { SideNav } from \"./sidenav.component\";\nimport { SideNavItem } from \"./sidenav-item.component\";\nimport { SideNavMenu } from \"./sidenav-menu.component\";\nimport { RouterLinkExtendedDirective } from \"./routerlink-extended.directive\";\n\nexport { SideNavItemInterface } from \"./sidenav-item.interface\";\n\nexport {\n\tSideNav,\n\tSideNavItem,\n\tSideNavMenu\n};\n\n@NgModule({\n\tdeclarations: [\n\t\tSideNav,\n\t\tSideNavItem,\n\t\tSideNavMenu,\n\t\tRouterLinkExtendedDirective\n\t],\n\timports: [CommonModule, I18nModule, RouterModule],\n\texports: [\n\t\tSideNav,\n\t\tSideNavItem,\n\t\tSideNavMenu\n\t]\n})\nexport class SideNavModule { }\n","import { Component, Input } from \"@angular/core\";\n\n/**\n * `Panel` is a component that can be used to display content on the right side of the screen.\n * `Panel`s are generally activated by and linked to a `HeaderAction` component.\n */\n@Component({\n\tselector: \"cds-panel, ibm-panel\",\n\ttemplate: `\n\t\t<div\n\t\t\tclass=\"cds--header-panel\"\n\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--header-panel--expanded': expanded\n\t\t\t}\">\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t`\n})\nexport class Panel {\n\t/**\n\t * Controls the visibility of the panel\n\t */\n\t@Input() expanded = false;\n\n\t@Input() ariaLabel;\n}\n","import { Component, HostBinding } from \"@angular/core\";\n\n/**\n * Container for switcher items.\n *\n * ```html\n * <cds-switcher-list>\n * \t<cds-switcher-list-item>one</cds-switcher-list-item>\n * \t<cds-switcher-list-item [active]=\"true\">two</cds-switcher-list-item>\n * \t<cds-switcher-list-item>three</cds-switcher-list-item>\n * </cds-switcher-list>\n * ```\n */\n@Component({\n\tselector: \"cds-switcher-list, ibm-switcher-list\",\n\ttemplate: `\n\t\t\t<ng-content></ng-content>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t`]\n})\nexport class SwitcherList {\n\t@HostBinding(\"class.cds--switcher\") switcher = true;\n\t@HostBinding(\"attr.role\") role = \"list\";\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tOptional,\n\tHostBinding\n} from \"@angular/core\";\nimport { DomSanitizer, SafeUrl } from \"@angular/platform-browser\";\nimport { Router } from \"@angular/router\";\n\n/**\n * Represents an item in a switcher list.\n */\n@Component({\n\tselector: \"cds-switcher-list-item, ibm-switcher-list-item\",\n\ttemplate: `\n\t\t<a\n\t\t\tclass=\"cds--switcher__item-link\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--switcher__item-link--selected': active\n\t\t\t}\"\n\t\t\t[href]=\"href\"\n\t\t\t[target]=\"target\"\n\t\t\t(click)=\"navigate($event)\">\n\t\t\t<ng-content></ng-content>\n\t\t</a>\n\t`\n})\nexport class SwitcherListItem {\n\t/**\n\t * Enables the \"active\" state for an item. Commonly used to indicate the current page or selection.\n\t */\n\t@Input() active = false;\n\n\t/**\n\t * Array of commands to send to the router when the link is activated\n\t * See: https://angular.io/api/router/Router#navigate\n\t */\n\t@Input() route: any[];\n\n\t/**\n\t * Router options. Used in conjunction with `route`\n\t * See: https://angular.io/api/router/Router#navigate\n\t */\n\t@Input() routeExtras: any;\n\n\t/**\n\t * Optional link for the underlying anchor.\n\t */\n\t@Input() set href(value: string) {\n\t\tthis._href = value;\n\t}\n\n\t/**\n\t * Emits the navigation status promise when the link is activated\n\t */\n\t@Output() navigation = new EventEmitter<Promise<boolean>>();\n\n\tget href() {\n\t\treturn this.domSanitizer.bypassSecurityTrustUrl(this._href) as string;\n\t}\n\n\t/**\n\t * Optional target for the underlying anchor.\n\t */\n\t@Input() set target(value: string) {\n\t\tthis._target = value;\n\t}\n\n\tget target() {\n\t\treturn this._target;\n\t}\n\n\t@HostBinding(\"class.cds--switcher__item\") itemClass = true;\n\n\t@HostBinding(\"attr.role\") itemRole = \"listitem\";\n\n\tprotected _href = \"#\";\n\tprotected _target = \"\";\n\n\tconstructor(protected domSanitizer: DomSanitizer, @Optional() protected router: Router) { }\n\n\tnavigate(event) {\n\t\tif (this.router && this.route) {\n\t\t\tevent.preventDefault();\n\t\t\tconst status = this.router.navigate(this.route, this.routeExtras);\n\t\t\tthis.navigation.emit(status);\n\t\t} else if (this._href === \"#\") {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { I18nModule } from \"carbon-components-angular/i18n\";\n\nimport { Panel } from \"./panel.component\";\nimport { SwitcherList } from \"./switcher-list.component\";\nimport { SwitcherListItem } from \"./switcher-list-item.component\";\n\nexport {\n\tPanel,\n\tSwitcherList,\n\tSwitcherListItem\n};\n\n@NgModule({\n\tdeclarations: [\n\t\tPanel,\n\t\tSwitcherList,\n\t\tSwitcherListItem\n\t],\n\timports: [CommonModule, I18nModule],\n\texports: [\n\t\tPanel,\n\t\tSwitcherList,\n\t\tSwitcherListItem\n\t]\n})\nexport class PanelModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { I18nModule } from \"carbon-components-angular/i18n\";\n\nimport { HeaderModule } from \"./header/header.module\";\nimport { SideNavModule } from \"./sidenav/sidenav.module\";\nimport { PanelModule } from \"./panel/panel.module\";\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tI18nModule,\n\t\tHeaderModule,\n\t\tSideNavModule,\n\t\tPanelModule\n\t],\n\texports: [\n\t\tHeaderModule,\n\t\tSideNavModule,\n\t\tPanelModule\n\t]\n})\nexport class UIShellModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i4","i1","i3.HeaderItem","i2.HeaderItem","i3.HeaderMenu","i4.RouterLinkExtendedDirective","i2.SideNavItem","i3.SideNavItem","i4.SideNavMenu"],"mappings":";;;;;;;;;;;;;;;;AAYA;;;;;;AAMG;MAwCU,MAAM,CAAA;AAgDlB,IAAA,WAAA,CACQ,IAAU,EACP,YAA0B,EACd,MAAc,EAAA;AAF7B,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;AACP,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AACd,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AA1CrC;;AAEG;AACM,QAAA,IAAK,CAAA,KAAA,GAA8B,KAAK,CAAC;AAwBlD;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE3B;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAoB,CAAC;AAElD,QAAA,IAAK,CAAA,KAAA,GAAG,GAAG,CAAC;KAKoB;AAtC1C;;AAEG;IACH,IAAa,IAAI,CAAC,CAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KACf;AAED,IAAA,IAAI,IAAI,GAAA;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAW,CAAC;KACtE;AA+BM,IAAA,UAAU,CAAC,KAAK,EAAA;QACtB,OAAO,KAAK,YAAY,WAAW,CAAC;KACpC;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;YAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;YAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;KACD;;mGAjEW,MAAM,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,MAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,EArCR,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,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,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEW,MAAM,EAAA,UAAA,EAAA,CAAA;kBAvClB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCT,CAAA,CAAA;iBACD,CAAA;;;8BAoDE,QAAQ;;yBA/CD,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAIG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAIG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAYG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAMG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AC3FR;;AAEG;MAiCU,UAAU,CAAA;IAgDtB,WAAsB,CAAA,YAA0B,EAAwB,MAAc,EAAA;AAAhE,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAAwB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AA/C5D,QAAA,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;AAa5C;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAwB3B;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAoB,CAAC;AAElD,QAAA,IAAK,CAAA,KAAA,GAAG,GAAG,CAAC;KAEqE;IA9C3F,IAAa,IAAI,CAAC,CAAS,EAAA;;QAE1B,IAAI,CAAC,KAAK,SAAS,EAAE;YACpB,OAAO;AACP,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KACf;AAED,IAAA,IAAI,IAAI,GAAA;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAW,CAAC;KACtE;AAsCD,IAAA,QAAQ,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;YAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;YAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;KACD;;uGA1DW,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EA9BZ,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAOW,UAAU,EAAA,UAAA,EAAA,CAAA;kBAhCtB,SAAS;YACC,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,EAClC,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA;;;8BAuDkD,QAAQ;;yBA/CjC,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW,CAAA;gBACX,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAeG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAKG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAMG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAMG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;AC/ER;;AAEG;MAqCU,UAAU,CAAA;IAgCtB,WAAsB,CAAA,YAA0B,EAAY,UAAsB,EAAA;AAA5D,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAAY,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AA/BvC,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;AAcnC,QAAA,IAAO,CAAA,OAAA,GAA0B,OAAO,CAAC;AAY3C,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAEd,QAAA,IAAK,CAAA,KAAA,GAAG,GAAG,CAAC;KAEiE;IA3BvF,IAAa,IAAI,CAAC,CAAS,EAAA;;QAE1B,IAAI,CAAC,KAAK,SAAS,EAAE;YACpB,OAAO;AACP,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KACf;AAED,IAAA,IAAI,IAAI,GAAA;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAW,CAAC;KACtE;IAoBD,OAAO,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B,SAAA;KACD;IAGD,WAAW,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;AACjC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,SAAA;KACD;IAGD,UAAU,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;AACjC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,SAAA;KACD;AAGD,IAAA,UAAU,CAAC,KAAK,EAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AACjE,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,SAAA;KACD;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACb,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,EAAE;YACvB,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;KACD;;uGAlEW,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAlCZ,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,UAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAOW,UAAU,EAAA,UAAA,EAAA,CAAA;kBApCtB,SAAS;YACC,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kCAAkC,EAClC,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA;8HAQ0C,OAAO,EAAA,CAAA;sBAAjD,WAAW;uBAAC,4BAA4B,CAAA;gBACf,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW,CAAA;gBAEf,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBAWG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAKG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBASN,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;gBAQrB,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,WAAW,CAAA;gBAQzB,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,UAAU,CAAA;gBAQxB,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACnGrC;;AAEG;MA4BU,gBAAgB,CAAA;AA3B7B,IAAA,WAAA,GAAA;AA4BgC,QAAA,IAAM,CAAA,MAAA,GAAG,GAAG,CAAC;KAU5C;;6GAXY,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,EAzBlB,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,UAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,UAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEW,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA3B5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,8CAA8C;AACxD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBT,CAAA,CAAA;iBACD,CAAA;8BAE+B,MAAM,EAAA,CAAA;sBAApC,WAAW;uBAAC,gBAAgB,CAAA;gBAEpB,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAOG,eAAe,EAAA,CAAA;sBAAvB,KAAK;;;AC5CP;;AAEG;MAOU,YAAY,CAAA;AANzB,IAAA,WAAA,GAAA;AAO2C,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;KAC3D;;yGAFY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAJd,QAAA,EAAA,sCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;AAET,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAEW,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,QAAQ,EAAE,CAAA;;AAET,CAAA,CAAA;iBACD,CAAA;8BAE0C,SAAS,EAAA,CAAA;sBAAlD,WAAW;uBAAC,2BAA2B,CAAA;;;ACHzC;;AAEG;AAyBG,MAAO,YAAa,SAAQ,cAAc,CAAA;AAxBhD,IAAA,WAAA,GAAA;;AAiCC;;AAEG;AACM,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AACxB;;AAEG;AACO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;AACrD;;AAEG;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAW,CAAC;KAOjD;IALA,OAAO,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACpC;;yGA1BW,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAtBd,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;AAoBT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEW,YAAY,EAAA,UAAA,EAAA,CAAA;kBAxBxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;AAoBT,CAAA,CAAA;iBACD,CAAA;8BAKS,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAIG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAIG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAII,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAIG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;AChDR;;AAEG;MAgBU,SAAS,CAAA;AAqBrB,IAAA,WAAA,CAAmB,IAAU,EAAA;AAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;AApB7B;;AAEG;AACM,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAExB;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;AAElE;;AAEG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;AAEnE;;AAEG;AACO,QAAA,IAAA