ng-devui
Version:
DevUI components based on Angular
1 lines • 58.3 kB
Source Map (JSON)
{"version":3,"file":"ng-devui-accordion.mjs","sources":["../../devui/accordion/accordion-base-component.class.ts","../../devui/accordion/accordion-base-item-component.class.ts","../../devui/accordion/accordion-base-link-component.class.ts","../../devui/accordion/accordion-token.ts","../../devui/accordion/accordion-item-hreflink.component.ts","../../devui/accordion/accordion-item-hreflink.component.html","../../devui/accordion/accordion-item-routerlink.component.ts","../../devui/accordion/accordion-item-routerlink.component.html","../../devui/accordion/accordion-item.component.ts","../../devui/accordion/accordion-item.component.html","../../devui/accordion/accordion.service.ts","../../devui/accordion/accordion-menu.component.ts","../../devui/accordion/accordion-menu.component.html","../../devui/accordion/accordion-list.component.ts","../../devui/accordion/accordion-list.component.html","../../devui/accordion/accordion.component.ts","../../devui/accordion/accordion.component.html","../../devui/accordion/accordion.module.ts","../../devui/accordion/ng-devui-accordion.ts"],"sourcesContent":["import { Directive, HostBinding, Input } from '@angular/core';\nimport { AccordionBase, AccordionOptions } from './accordion.type';\n\n@Directive()\nexport abstract class AccordionBaseComponent<T extends AccordionBase> {\n @Input() item: any | T;\n @Input() deepth = 0;\n @Input() parent: any | T;\n\n @HostBinding('class.disabled')\n get disabled() {\n return this.item && this.item[this.accordion.disabledKey];\n }\n @HostBinding('attr.title')\n public get title() {\n return this.item && this.item[this.accordion.titleKey];\n }\n @HostBinding('style.textIndent')\n get textIndent() {\n return this.deepth * 20 + 'px';\n }\n\n constructor(protected accordion: AccordionOptions) { }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { AccordionBaseComponent } from './accordion-base-component.class';\nimport { AccordionBaseItem, AccordionOptions } from './accordion.type';\n\n@Directive()\nexport abstract class AccordionBaseItemComponent<T extends AccordionBaseItem> extends AccordionBaseComponent<T> {\n get itemTemplate() {\n return this.accordion.itemTemplate;\n }\n @HostBinding('class.active')\n get active() {\n return this.item && this.item[this.accordion.activeKey];\n }\n @HostBinding('class.devui-accordion-item-title')\n @HostBinding('class.devui-over-flow-ellipsis')\n defaultClasses = true;\n constructor(protected accordion: AccordionOptions) {\n super(accordion);\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { AccordionBaseItemComponent } from './accordion-base-item-component.class';\nimport { AccordionLinkableItem, AccordionOptions } from './accordion.type';\n\n@Directive()\nexport abstract class AccordionBaseLinkComponent extends AccordionBaseItemComponent<AccordionLinkableItem> {\n get link() {\n return this.item && this.item[this.accordion.linkKey];\n }\n\n get target() {\n return this.item && this.item[this.accordion.linkTargetKey] || this.accordion.linkDefaultTarget;\n }\n\n get linkType() {\n return this.item && this.item[this.accordion.linkTypeKey] || '';\n }\n constructor(protected accordion: AccordionOptions) {\n super(accordion);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const ACCORDION = new InjectionToken('AccordionComponent');\n","import { Component, HostListener, Inject, ViewEncapsulation } from '@angular/core';\nimport { AccordionBaseLinkComponent } from './accordion-base-link-component.class';\nimport { ACCORDION } from './accordion-token';\n\n@Component({\n selector: 'd-accordion-item-hreflink',\n templateUrl: './accordion-item-hreflink.component.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class AccordionItemHreflinkComponent extends AccordionBaseLinkComponent {\n constructor(@Inject(ACCORDION) protected accordion: any) {\n super(accordion);\n }\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (!this.disabled) {\n this.accordion.linkItemClickFn({\n item: this.item,\n parent: this.parent,\n event: event\n });\n }\n }\n}\n","<ng-container *ngIf=\"!disabled\">\n <a class=\"devui-over-flow-ellipsis\" href=\"{{ link }}\" target=\"{{ target }}\" rel=\"noopener\" title=\"{{ title }}\">\n <div\n class=\"devui-accordion-splitter\"\n [ngClass]=\"{ 'devui-parent-list': deepth === 0 }\"\n [ngStyle]=\"{ left: deepth * 20 + 10 + 'px' }\"\n ></div>\n <ng-container *ngIf=\"!itemTemplate\">\n {{ title }}\n </ng-container>\n <ng-template\n *ngIf=\"itemTemplate\"\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{\n parent: parent,\n item: item,\n deepth: deepth\n }\"\n ></ng-template>\n </a>\n</ng-container>\n<ng-container *ngIf=\"disabled\">\n <a class=\"devui-over-flow-ellipsis\" title=\"{{ title }}\">\n <div\n class=\"devui-accordion-splitter\"\n [ngClass]=\"{ 'devui-parent-list': deepth === 0 }\"\n [ngStyle]=\"{ left: deepth * 20 + 10 + 'px' }\"\n ></div>\n <ng-container *ngIf=\"!itemTemplate\">\n {{ title }}\n </ng-container>\n <ng-template\n *ngIf=\"itemTemplate\"\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{\n parent: parent,\n item: item,\n deepth: deepth\n }\"\n ></ng-template>\n </a>\n</ng-container>\n","import { Component, HostBinding, HostListener, Inject, OnChanges, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { Params, Router, RouterLinkActive, UrlTree } from '@angular/router';\r\nimport { AccordionBaseLinkComponent } from './accordion-base-link-component.class';\r\nimport { ACCORDION } from './accordion-token';\r\n\r\n@Component({\r\n selector: 'd-accordion-item-routerlink',\r\n templateUrl: './accordion-item-routerlink.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n preserveWhitespaces: false,\r\n})\r\nexport class AccordionItemRouterlinkComponent extends AccordionBaseLinkComponent implements OnChanges {\r\n @ViewChild(RouterLinkActive) routerLinkActiveDirective: RouterLinkActive;\r\n @HostBinding('class.devui-router-active')\r\n get routerLinkActivated(): boolean {\r\n return !!(this.routerLinkActiveDirective && this.routerLinkActiveDirective.isActive);\r\n }\r\n\r\n private set urlTree(urlTree: UrlTree) {\r\n if (urlTree) {\r\n this.queryParams = urlTree.queryParams;\r\n this.fragment = urlTree.fragment;\r\n } else {\r\n this.queryParams = undefined;\r\n this.fragment = undefined;\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n if (!this.disabled) {\r\n this.accordion.linkItemClickFn({\r\n item: this.item,\r\n parent: this.parent,\r\n event: event,\r\n });\r\n }\r\n }\r\n\r\n path: string;\r\n queryParams: Params;\r\n fragment: string;\r\n\r\n constructor(@Inject(ACCORDION) protected accordion: any, private router: Router) {\r\n super(accordion);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.item) {\r\n if (this.link) {\r\n this.urlTree = this.router.parseUrl(this.link);\r\n const handelPath = (url: string) => {\r\n let path = url;\r\n const index = url.indexOf('?');\r\n if (index > -1) {\r\n path = url.slice(0, index);\r\n }\r\n return path;\r\n };\r\n this.path = handelPath(this.link);\r\n } else {\r\n this.urlTree = undefined;\r\n this.path = undefined;\r\n }\r\n }\r\n }\r\n}\r\n","<ng-container *ngIf=\"!disabled\">\n <a\n class=\"devui-over-flow-ellipsis\"\n [routerLink]=\"path\"\n [queryParams]=\"queryParams\"\n [fragment]=\"fragment\"\n [routerLinkActive]=\"'devui-router-active'\"\n target=\"{{ target }}\"\n rel=\"noopener\"\n title=\"{{ title }}\"\n >\n <div\n class=\"devui-accordion-splitter\"\n [ngClass]=\"{ 'devui-parent-list': deepth === 0 }\"\n [ngStyle]=\"{ left: deepth * 20 + 10 + 'px' }\"\n ></div>\n <ng-container *ngIf=\"!itemTemplate\">\n {{ title }}\n </ng-container>\n <ng-template\n *ngIf=\"itemTemplate\"\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{\n parent: parent,\n item: item,\n deepth: deepth\n }\"\n ></ng-template>\n </a>\n</ng-container>\n<ng-container *ngIf=\"disabled\">\n <a class=\"devui-over-flow-ellipsis\" title=\"{{ title }}\">\n <div\n class=\"devui-accordion-splitter\"\n [ngClass]=\"{ 'devui-parent-list': deepth === 0 }\"\n [ngStyle]=\"{ left: deepth * 20 + 10 + 'px' }\"\n ></div>\n <ng-container *ngIf=\"!itemTemplate\">\n {{ title }}\n </ng-container>\n <ng-template\n *ngIf=\"itemTemplate\"\n [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{\n parent: parent,\n item: item,\n deepth: deepth\n }\"\n ></ng-template>\n </a>\n</ng-container>\n","import { Component, HostListener, Inject, ViewEncapsulation } from '@angular/core';\nimport { AccordionBaseItemComponent } from './accordion-base-item-component.class';\nimport { ACCORDION } from './accordion-token';\nimport { AccordionBaseItem } from './accordion.type';\n\n@Component({\n selector: 'd-accordion-item',\n templateUrl: './accordion-item.component.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class AccordionItemComponent extends AccordionBaseItemComponent<AccordionBaseItem> {\n constructor(@Inject(ACCORDION) protected accordion: any) {\n super(accordion);\n }\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent) {\n if (!this.disabled) {\n this.accordion.itemClickFn({\n item: this.item,\n parent: this.parent,\n event: event\n });\n }\n }\n}\n","<ng-container *ngIf=\"!itemTemplate\">\r\n {{ title }}\r\n</ng-container>\r\n<ng-template\r\n *ngIf=\"itemTemplate\"\r\n [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n parent: parent,\r\n item: item,\r\n deepth: deepth\r\n }\"\r\n></ng-template>\r\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable()\nexport class AccordionService {\n childListSubject = new ReplaySubject(1);\n childListObs = this.childListSubject.asObservable();\n\n setChildListInstance(listInstance, parent) {\n this.childListSubject.next({ listInstance, parent });\n }\n\n getChildListInstance() {\n return this.childListObs;\n }\n}\n","import { Component, HostBinding, Inject, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { AccordionBaseComponent } from './accordion-base-component.class';\nimport { ACCORDION } from './accordion-token';\nimport { AccordionService } from './accordion.service';\nimport { AccordionBaseMenu, AccordionMenuItem } from './accordion.type';\n@Component({\n selector: 'd-accordion-menu',\n templateUrl: './accordion-menu.component.html',\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n})\nexport class AccordionMenuComponent extends AccordionBaseComponent<AccordionBaseMenu<AccordionMenuItem>> implements OnInit, OnDestroy {\n childListSub: Subscription;\n accordionListFromView: any; // AccordionListComponent\n\n @HostBinding('class.devui-accordion-menu-item') defaultClasses = true;\n\n @HostBinding('class.open')\n get open() {\n return this.keyOpen === undefined && this.accordion.autoOpenActiveMenu ? this.childActivated : this.keyOpen;\n }\n\n @HostBinding('class.devui-router-active')\n get routerLinkActivated() {\n return this.accordionListFromView && this.accordionListFromView.routerLinkActivated;\n }\n\n @HostBinding('class.devui-has-active-item')\n get hasActiveChildren() {\n return this.accordionListFromView && this.accordionListFromView.hasActiveChildren;\n }\n\n get keyOpen() {\n return this.item && this.item[this.accordion.openKey];\n }\n\n get children() {\n return this.item && this.item[this.accordion.childrenKey];\n }\n\n get childActivated() {\n return this.routerLinkActivated || this.hasActiveChildren;\n }\n\n get menuItemTemplate() {\n return this.accordion.menuItemTemplate;\n }\n\n constructor(@Inject(ACCORDION) public accordion: any, private accordionService: AccordionService) {\n super(accordion);\n }\n\n ngOnInit(): void {\n this.childListSub = this.accordionService.getChildListInstance().subscribe(({ listInstance, parent }) => {\n // list的parent与menu的item为同一数据,通过该属性匹配父子关系,避免互相嵌套导致循环依赖\n if (parent === this.item) {\n // 延时赋值规避脏检查后值改变报错\n setTimeout(() => {\n this.accordionListFromView = listInstance;\n });\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.childListSub) {\n this.childListSub.unsubscribe();\n }\n }\n\n toggle(event) {\n this.accordion.menuToggleFn({\n item: this.item,\n open: !this.open,\n parent: this.parent,\n event: event,\n });\n }\n}\n","<div\r\n class=\"devui-accordion-item-title devui-over-flow-ellipsis\"\r\n [ngClass]=\"{\r\n open: open,\r\n active: childActivated,\r\n disabled: disabled\r\n }\"\r\n title=\"{{ title }}\"\r\n (click)=\"!disabled && toggle($event)\"\r\n>\r\n <div\r\n class=\"devui-accordion-splitter\"\r\n [ngClass]=\"{\r\n 'devui-parent-list': deepth === 0\r\n }\"\r\n [ngStyle]=\"{ left: deepth * 20 + 10 + 'px' }\"\r\n ></div>\r\n <ng-container *ngIf=\"!menuItemTemplate\">\r\n {{ title }}\r\n </ng-container>\r\n <ng-template\r\n *ngIf=\"menuItemTemplate\"\r\n [ngTemplateOutlet]=\"menuItemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n parent: parent,\r\n item: item,\r\n deepth: deepth\r\n }\"\r\n ></ng-template>\r\n <span class=\"devui-accordion-open-icon\">\r\n <svg\r\n width=\"16px\"\r\n height=\"16px\"\r\n viewBox=\"0 0 16 16\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M3.64644661,5.64644661 C3.82001296,5.47288026 4.08943736,5.45359511 4.2843055,5.58859116 L4.35355339,5.64644661 L8,9.293 L11.6464466,5.64644661 C11.820013,5.47288026 12.0894374,5.45359511 12.2843055,5.58859116 L12.3535534,5.64644661 C12.5271197,5.82001296 12.5464049,6.08943736 12.4114088,6.2843055 L12.3535534,6.35355339 L8.35355339,10.3535534 C8.17998704,10.5271197 7.91056264,10.5464049 7.7156945,10.4114088 L7.64644661,10.3535534 L3.64644661,6.35355339 C3.45118446,6.15829124 3.45118446,5.84170876 3.64644661,5.64644661 Z\"\r\n ></path>\r\n </g>\r\n </svg>\r\n </span>\r\n</div>\r\n","import { Component, HostBinding, Inject, Input, OnDestroy, OnInit, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { expandCollapse, expandCollapseForDomDestroy } from 'ng-devui/utils';\nimport { AccordionItemRouterlinkComponent } from './accordion-item-routerlink.component';\nimport { AccordionMenuComponent } from './accordion-menu.component';\nimport { ACCORDION } from './accordion-token';\nimport { AccordionService } from './accordion.service';\nimport { AccordionMenuItem } from './accordion.type';\n\n@Component({\n selector: 'd-accordion-list',\n templateUrl: './accordion-list.component.html',\n encapsulation: ViewEncapsulation.None,\n animations: [expandCollapse, expandCollapseForDomDestroy],\n preserveWhitespaces: false,\n})\nexport class AccordionListComponent implements OnInit, OnDestroy {\n @Input() data: Array<AccordionMenuItem>;\n @Input() deepth = 0;\n @Input() parent: AccordionMenuItem;\n @ViewChildren(AccordionMenuComponent) accordionMenuQueryList: QueryList<any>;\n @ViewChildren(AccordionItemRouterlinkComponent) accordionItemRouterlinkQueryList: QueryList<AccordionItemRouterlinkComponent>;\n @HostBinding('class.devui-accordion-show-animate') get animateState() {\n return this.accordion.showAnimation;\n }\n\n get loading() {\n return this.parent && this.parent[this.accordion.loadingKey];\n }\n\n get noContent() {\n return this.data === undefined || this.data === null || this.data.length === 0;\n }\n\n get linkTypeKey() {\n return this.accordion.linkTypeKey;\n }\n\n get childrenKey() {\n return this.accordion.childrenKey;\n }\n\n get activeKey() {\n return this.accordion.activeKey;\n }\n\n get itemTemplate() {\n return this.accordion.itemTemplate;\n }\n\n get menuItemTemplate() {\n return this.accordion.menuItemTemplate;\n }\n\n get innerListTemplate() {\n return this.accordion.innerListTemplate;\n }\n\n get loadingTemplate() {\n return this.accordion.loadingTemplate;\n }\n\n get noContentTemplate() {\n return this.accordion.noContentTemplate;\n }\n\n get linkType() {\n return this.accordion.linkType;\n }\n\n get i18nCommonText() {\n return this.accordion.i18nCommonText;\n }\n\n get showNoContent() {\n return this.accordion.showNoContent;\n }\n\n get linkDefaultTarget() {\n return this.accordion.linkDefaultTarget;\n }\n\n get routerLinkActivated(): boolean {\n return (\n (!!this.accordionItemRouterlinkQueryList && this.accordionItemRouterlinkQueryList.some((airlc) => this.isLinkRouterActive(airlc))) ||\n (!!this.accordionMenuQueryList && this.accordionMenuQueryList.some((amc) => this.isMenuRouterActive(amc)))\n );\n }\n\n get hasActiveChildren(): boolean {\n return (\n (!!this.accordionMenuQueryList && this.accordionMenuQueryList.some((amc) => this.isMenuDataActive(amc))) ||\n (!!this.data && !!this.data.length && this.data.some((item) => this.isItemData(item) && this.isItemDataActive(item)))\n );\n }\n\n constructor(@Inject(ACCORDION) private accordion: any, private accordionService: AccordionService) {}\n\n ngOnInit(): void {\n if (this.parent) {\n this.accordionService.setChildListInstance(this, this.parent);\n }\n }\n\n ngOnDestroy(): void {\n if (this.parent) {\n this.accordionService.setChildListInstance(undefined, this.parent);\n }\n }\n\n private isLinkRouterActive(airlc: AccordionItemRouterlinkComponent): boolean {\n return airlc.routerLinkActivated;\n }\n\n private isMenuRouterActive(amc: any): boolean {\n return amc.routerLinkActivated;\n }\n\n private isMenuDataActive(amc: any): boolean {\n return amc.hasActiveChildren;\n }\n\n private isItemDataActive(item: AccordionMenuItem): boolean {\n return !!item[this.activeKey];\n }\n\n private isItemData(item: AccordionMenuItem): boolean {\n return item[this.childrenKey] === undefined;\n }\n\n menuToggleItemFn = (item: any, event?: any) => {\n this.accordion.menuToggleFn({\n item: item,\n open: !item[this.accordion.openKey],\n parent: this.parent.parent,\n event: event,\n });\n };\n\n itemClickItemFn = (item: any, event?: any) => {\n this.accordion.itemClickFn({\n item: item,\n parent: this.parent,\n event: event,\n });\n };\n\n getOpenState(item, list) {\n let stateFlag = false;\n if (item && list) {\n const open = item[this.accordion.openKey];\n const childActivated = list.routerLinkActivated || list.hasActiveChildren;\n stateFlag = open === undefined && this.accordion.autoOpenActiveMenu ? childActivated : open;\n }\n return stateFlag ? 'expanded' : 'collapsed';\n }\n}\n","<ul class=\"devui-accordion-list\" *ngIf=\"!innerListTemplate || deepth === 0\">\n <li class=\"devui-accordion-item\" *ngFor=\"let item of data\">\n <!--菜单类型-->\n <d-accordion-menu *ngIf=\"item[childrenKey] !== undefined\" [item]=\"item\" [deepth]=\"deepth\" [parent]=\"parent\"></d-accordion-menu>\n <!--非菜单类型-->\n <d-accordion-list\n #listInstance\n *ngIf=\"item[childrenKey] !== undefined\"\n class=\"devui-accordion-submenu\"\n [deepth]=\"deepth + 1\"\n [data]=\"item[childrenKey]\"\n [parent]=\"item\"\n [@collapse]=\"getOpenState(item, listInstance)\"\n [@.disabled]=\"!animateState\"\n >\n </d-accordion-list>\n <ng-container *ngIf=\"item[childrenKey] === undefined\">\n <!--路由链接-->\n <d-accordion-item-routerlink\n *ngIf=\"linkType === 'routerLink'\"\n [item]=\"item\"\n [deepth]=\"deepth\"\n [parent]=\"parent\"\n ></d-accordion-item-routerlink>\n <!--普通链接-->\n <d-accordion-item-hreflink\n *ngIf=\"linkType === 'hrefLink'\"\n [item]=\"item\"\n [deepth]=\"deepth\"\n [parent]=\"parent\"\n ></d-accordion-item-hreflink>\n <!--动态链接-->\n <ng-container *ngIf=\"linkType === 'dependOnLinkTypeKey'\">\n <d-accordion-item-routerlink\n *ngIf=\"item[linkTypeKey] === 'routerLink'\"\n [item]=\"item\"\n [deepth]=\"deepth\"\n [parent]=\"parent\"\n ></d-accordion-item-routerlink>\n <d-accordion-item-hreflink\n *ngIf=\"item[linkTypeKey] === 'hrefLink'\"\n [item]=\"item\"\n [deepth]=\"deepth\"\n [parent]=\"parent\"\n ></d-accordion-item-hreflink>\n <d-accordion-item\n *ngIf=\"item[linkTypeKey] !== 'hrefLink' && item[linkTypeKey] !== 'routerLink'\"\n [item]=\"item\"\n [deepth]=\"deepth\"\n [parent]=\"parent\"\n ></d-accordion-item>\n </ng-container>\n <!--普通类型-->\n <d-accordion-item *ngIf=\"!linkType || linkType === ''\" [item]=\"item\" [deepth]=\"deepth\" [parent]=\"parent\"></d-accordion-item>\n </ng-container>\n </li>\n</ul>\n<!--列表模板-->\n<div *ngIf=\"innerListTemplate && deepth !== 0\">\n <ng-template\n [ngTemplateOutlet]=\"innerListTemplate\"\n [ngTemplateOutletContext]=\"{\n item: parent,\n deepth: deepth,\n itemClickFn: itemClickItemFn,\n menuToggleFn: menuToggleItemFn\n }\"\n ></ng-template>\n</div>\n<!--无数据/加载中模板-->\n<ul *ngIf=\"!innerListTemplate && (loading || (noContent && showNoContent))\">\n <!--加载中-->\n <li *ngIf=\"loading && !loadingTemplate\" class=\"devui-accordion-item\">\n <div class=\"devui-accordion-item-title devui-over-flow-ellipsis\" [style.textIndent]=\"deepth * 20 + 'px'\">\n {{ i18nCommonText?.loading }}\n </div>\n </li>\n <!--自定义加载中-->\n <ng-template\n *ngIf=\"loading && loadingTemplate\"\n [ngTemplateOutlet]=\"loadingTemplate\"\n [ngTemplateOutletContext]=\"{ item: parent, deepth: deepth }\"\n ></ng-template>\n <!--无数据-->\n <li *ngIf=\"showNoContent && !loading && noContent && !noContentTemplate\" class=\"devui-accordion-item\">\n <div class=\"devui-accordion-item-title devui-over-flow-ellipsis disabled\" [style.textIndent]=\"deepth * 20 + 'px'\">\n {{ i18nCommonText?.noData }}\n </div>\n </li>\n <!--自定义无数据-->\n <ng-template\n *ngIf=\"showNoContent && !loading && noContent && noContentTemplate\"\n [ngTemplateOutlet]=\"noContentTemplate\"\n [ngTemplateOutletContext]=\"{ item: parent, deepth: deepth }\"\n ></ng-template>\n</ul>\n","import {\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { I18nInterface, I18nService } from 'ng-devui/i18n';\r\nimport { DevConfigService, WithConfig } from 'ng-devui/utils';\r\nimport { Subscription } from 'rxjs';\r\nimport { ACCORDION } from './accordion-token';\r\nimport { AccordionItemClickEvent, AccordionMenuToggleEvent, AccordionMenuType, AccordionOptions } from './accordion.type';\r\n@Component({\r\n selector: 'd-accordion',\r\n templateUrl: './accordion.component.html',\r\n styleUrls: ['./accordion.component.scss'],\r\n preserveWhitespaces: false,\r\n providers: [\r\n {\r\n provide: ACCORDION,\r\n useExisting: forwardRef(() => AccordionComponent),\r\n },\r\n ],\r\n})\r\nexport class AccordionComponent implements AccordionOptions, OnChanges, OnInit, OnDestroy {\r\n @Input() data: Array<any> | AccordionMenuType;\r\n /* Key值定义, 用于自定义数据结构 */\r\n @Input() titleKey = 'title'; // 标题的key,item[titleKey]类型为string,为标题显示内容\r\n @Input() loadingKey = 'loading'; // 子菜单动态加载item[loadingKey]类型为boolean\r\n @Input() childrenKey = 'children'; // 子菜单Key\r\n @Input() disabledKey = 'disabled'; // 是否禁用Key\r\n @Input() activeKey = 'active'; // 菜单是否激活/选中\r\n @Input() openKey = 'open'; // 菜单是否打开\r\n\r\n /* 菜单模板 */\r\n @Input() menuItemTemplate: TemplateRef<any>; // 可展开菜单内容条模板\r\n @Input() itemTemplate: TemplateRef<any>; // 可点击菜单内容条模板\r\n\r\n @Output() menuToggle = new EventEmitter<AccordionMenuToggleEvent>(); // 可展开菜单展开事件\r\n @Output() itemClick = new EventEmitter<AccordionItemClickEvent>(); // 可点击菜单点击事件\r\n @Output() activeItemChange = new EventEmitter<any>();\r\n\r\n /** 高级选项和模板 */\r\n @Input() restrictOneOpen = false; // 限制一级菜单同时只能打开一个\r\n @Input() autoOpenActiveMenu = false; // 自动展开活跃菜单\r\n @Input() showNoContent = true; // 没有内容的时候是否显示没有数据\r\n @Input() noContentTemplate: TemplateRef<any>; // 没有内容的时候使用自定义模板\r\n @Input() loadingTemplate: TemplateRef<any>; // 加载中使用自定义模板\r\n @Input() innerListTemplate: TemplateRef<any>; // 可折叠菜单内容完全自定义,用做折叠面板\r\n\r\n /* 内置路由/链接/动态判断路由或链接类型 */\r\n @Input() linkType: 'routerLink' | 'hrefLink' | 'dependOnLinkTypeKey' | '' | string = '';\r\n @Input() linkTypeKey = 'linkType'; // linkType为'dependOnLinkTypeKey'时指定对象linkType定义区\r\n @Input() linkKey = 'link'; // 链接内容的key\r\n @Input() linkTargetKey = 'target'; // 链接目标窗口的key\r\n @Input() linkDefaultTarget = '_self'; // 不设置target的时候target默认值\r\n\r\n @Input() accordionType: 'normal' | 'embed' = 'normal';\r\n @Input() @WithConfig() showAnimation = true;\r\n\r\n activeItem; // 记录用户点击的激活菜单项\r\n i18nCommonText: I18nInterface['common'];\r\n i18nSubscription: Subscription;\r\n\r\n constructor(private i18n: I18nService, private devConfigService: DevConfigService) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { data, autoOpenActiveMenu } = changes;\r\n if (data) {\r\n this.initActiveItem();\r\n }\r\n if (autoOpenActiveMenu) {\r\n if (this.autoOpenActiveMenu && autoOpenActiveMenu.previousValue === false) {\r\n this.cleanOpenData();\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.data) {\r\n this.initActiveItem();\r\n }\r\n this.i18nCommonText = this.i18n.getI18nText().common;\r\n this.i18nSubscription = this.i18n.langChange().subscribe((data) => {\r\n this.i18nCommonText = data.common;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.i18nSubscription) {\r\n this.i18nSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n private flatten(arr: Array<any>, childrenKey = 'children', includeParent = false, includeLeaf = true) {\r\n return arr.reduce((acc, cur) => {\r\n const children = cur[childrenKey];\r\n if (children === undefined) {\r\n if (includeLeaf) {\r\n acc.push(cur);\r\n }\r\n } else {\r\n if (includeParent) {\r\n acc.push(cur);\r\n }\r\n if (Array.isArray(children)) {\r\n acc.push(...this.flatten(children, childrenKey, includeParent));\r\n }\r\n }\r\n return acc;\r\n }, []);\r\n }\r\n\r\n private cleanOpenData() {\r\n this.flatten(this.data, this.childrenKey, true, false).forEach((item) => {\r\n item[this.openKey] = undefined;\r\n });\r\n }\r\n // 默认激活\r\n initActiveItem() {\r\n const activeItem = this.flatten(this.data, this.childrenKey)\r\n .filter((item) => item[this.activeKey])\r\n .pop();\r\n if (activeItem) {\r\n if (!this.activeItem) {\r\n this.activeItemFn(activeItem);\r\n }\r\n } else {\r\n this.activeItem = undefined;\r\n }\r\n }\r\n\r\n // 点击了可点击菜单\r\n public itemClickFn = (itemEvent: AccordionItemClickEvent) => {\r\n const prevActiveItem = this.activeItem;\r\n this.activeItemFn(itemEvent.item);\r\n this.itemClick.emit({ ...itemEvent, prevActiveItem: prevActiveItem });\r\n };\r\n\r\n linkItemClickFn = (itemEvent: AccordionItemClickEvent) => {\r\n const prevActiveItem = this.activeItem;\r\n this.activeItem = itemEvent.item;\r\n this.itemClick.emit({ ...itemEvent, prevActiveItem: prevActiveItem });\r\n };\r\n\r\n // 打开或关闭可折叠菜单\r\n public menuToggleFn = (menuEvent: AccordionMenuToggleEvent) => {\r\n this.openMenuFn(menuEvent.item, menuEvent.open);\r\n this.menuToggle.emit(menuEvent);\r\n };\r\n\r\n // 激活子菜单项并去掉其他子菜单的激活\r\n activeItemFn(item) {\r\n if (this.activeItem && this.activeItem[this.activeKey]) {\r\n this.activeItem[this.activeKey] = false;\r\n }\r\n item[this.activeKey] = true;\r\n this.activeItem = item;\r\n this.activeItemChange.emit(this.activeItem);\r\n }\r\n\r\n // 打开或关闭一级菜单,如果有限制只能展开一项则关闭其他一级菜单\r\n openMenuFn(item, open) {\r\n if (open && this.restrictOneOpen) {\r\n (this.data as any[]).forEach((itemtemp) => {\r\n itemtemp[this.openKey] = false;\r\n });\r\n }\r\n item[this.openKey] = open;\r\n }\r\n}\r\n","<d-accordion-list\n class=\"devui-accordion-menu devui-scrollbar\"\n [ngClass]=\"{ 'devui-accordion-menu-normal': accordionType === 'normal' }\"\n [data]=\"data\"\n [deepth]=\"0\"\n [parent]=\"null\"\n>\n</d-accordion-list>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AccordionItemHreflinkComponent } from './accordion-item-hreflink.component';\nimport { AccordionItemRouterlinkComponent } from './accordion-item-routerlink.component';\nimport { AccordionItemComponent } from './accordion-item.component';\nimport { AccordionListComponent } from './accordion-list.component';\nimport { AccordionMenuComponent } from './accordion-menu.component';\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionService } from './accordion.service';\n\n@NgModule({\n imports: [CommonModule, RouterModule],\n declarations: [\n AccordionComponent,\n AccordionListComponent,\n AccordionMenuComponent,\n AccordionItemComponent,\n AccordionItemHreflinkComponent,\n AccordionItemRouterlinkComponent,\n ],\n exports: [\n AccordionComponent,\n AccordionListComponent,\n AccordionMenuComponent,\n AccordionItemComponent,\n AccordionItemHreflinkComponent,\n AccordionItemRouterlinkComponent,\n ],\n providers: [AccordionService],\n})\nexport class AccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.AccordionService","i3.AccordionMenuComponent","i4.AccordionItemComponent","i5.AccordionItemHreflinkComponent","i6.AccordionItemRouterlinkComponent","i2","i3","i4.AccordionListComponent"],"mappings":";;;;;;;;;;;;MAIsB,sBAAsB,CAAA;AAK1C,IAAA,IACI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;KAC3D;AACD,IAAA,IACW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACxD;AACD,IAAA,IACI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;KAChC;AAED,IAAA,WAAA,CAAsB,SAA2B,EAAA;QAA3B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAhBxC,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;KAgBkC;+GAlBlC,sBAAsB,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAD3C,SAAS;2EAEC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAGF,QAAQ,EAAA,CAAA;sBADX,WAAW;uBAAC,gBAAgB,CAAA;gBAKlB,KAAK,EAAA,CAAA;sBADf,WAAW;uBAAC,YAAY,CAAA;gBAKrB,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,kBAAkB,CAAA;;;ACZ3B,MAAgB,0BAAwD,SAAQ,sBAAyB,CAAA;AAC7G,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KACpC;AACD,IAAA,IACI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KACzD;AAID,IAAA,WAAA,CAAsB,SAA2B,EAAA;QAC/C,KAAK,CAAC,SAAS,CAAC,CAAC;QADG,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QADjD,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;KAGrB;+GAbmB,0BAA0B,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,kCAAA,EAAA,qBAAA,EAAA,gCAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAD/C,SAAS;2EAMJ,MAAM,EAAA,CAAA;sBADT,WAAW;uBAAC,cAAc,CAAA;gBAM3B,cAAc,EAAA,CAAA;sBAFb,WAAW;uBAAC,kCAAkC,CAAA;;sBAC9C,WAAW;uBAAC,gCAAgC,CAAA;;;ACTzC,MAAgB,0BAA2B,SAAQ,0BAAiD,CAAA;AACxG,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KACvD;AAED,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;KACjG;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACjE;AACD,IAAA,WAAA,CAAsB,SAA2B,EAAA;QAC/C,KAAK,CAAC,SAAS,CAAC,CAAC;QADG,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;KAEhD;+GAdmB,0BAA0B,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAD/C,SAAS;;;MCFG,SAAS,GAAG,IAAI,cAAc,CAAC,oBAAoB;;ACQ1D,MAAO,8BAA+B,SAAQ,0BAA0B,CAAA;AAC5E,IAAA,WAAA,CAAyC,SAAc,EAAA;QACrD,KAAK,CAAC,SAAS,CAAC,CAAC;QADsB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;KAEtD;AAED,IAAA,OAAO,CAAC,KAAiB,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA,CAAC,CAAC;SACJ;KACF;AAbU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,kBACrB,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AADlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,6ICV3C,kxCA0CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDhCa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAN1C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAEtB,aAAA,EAAA,iBAAiB,CAAC,IAAI,uBAChB,KAAK,EAAA,QAAA,EAAA,kxCAAA,EAAA,CAAA;;0BAGb,MAAM;2BAAC,SAAS,CAAA;yCAI7B,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEH7B,MAAO,gCAAiC,SAAQ,0BAA0B,CAAA;AAE9E,IAAA,IACI,mBAAmB,GAAA;AACrB,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;KACtF;IAED,IAAY,OAAO,CAAC,OAAgB,EAAA;QAClC,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AACvC,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;SAClC;aAAM;AACL,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;SAC3B;KACF;AAGD,IAAA,OAAO,CAAC,KAAiB,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA,CAAC,CAAC;SACJ;KACF;IAMD,WAAyC,CAAA,SAAc,EAAU,MAAc,EAAA;QAC7E,KAAK,CAAC,SAAS,CAAC,CAAC;QADsB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAE9E;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,IAAI,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,gBAAA,MAAM,UAAU,GAAG,CAAC,GAAW,KAAI;oBACjC,IAAI,IAAI,GAAG,GAAG,CAAC;oBACf,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/B,oBAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;wBACd,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;qBAC5B;AACD,oBAAA,OAAO,IAAI,CAAC;AACd,iBAAC,CAAC;gBACF,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnC;iBAAM;AACL,gBAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;AACzB,gBAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;aACvB;SACF;KACF;AAtDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,kBAgCvB,SAAS,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAhClB,gCAAgC,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,2BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAChC,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ7B,m6CAmDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,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,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,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,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDxCa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAExB,aAAA,EAAA,iBAAiB,CAAC,IAAI,uBAChB,KAAK,EAAA,QAAA,EAAA,m6CAAA,EAAA,CAAA;;0BAkCb,MAAM;2BAAC,SAAS,CAAA;8DA/BA,yBAAyB,EAAA,CAAA;sBAArD,SAAS;uBAAC,gBAAgB,CAAA;gBAEvB,mBAAmB,EAAA,CAAA;sBADtB,WAAW;uBAAC,2BAA2B,CAAA;gBAgBxC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEjB7B,MAAO,sBAAuB,SAAQ,0BAA6C,CAAA;AACvF,IAAA,WAAA,CAAyC,SAAc,EAAA;QACrD,KAAK,CAAC,SAAS,CAAC,CAAC;QADsB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;KAEtD;AAED,IAAA,OAAO,CAAC,KAAiB,EAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA,CAAC,CAAC;SACJ;KACF;AAbU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBACb,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AADlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,oICXnC,oSAYA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDDa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAEb,aAAA,EAAA,iBAAiB,CAAC,IAAI,uBAChB,KAAK,EAAA,QAAA,EAAA,oSAAA,EAAA,CAAA;;0BAGb,MAAM;2BAAC,SAAS,CAAA;yCAI7B,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEXtB,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AACxC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;AASrD,KAAA;IAPC,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAA;QACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;KACtD;IAED,oBAAoB,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;+GAVU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;ACSL,MAAO,sBAAuB,SAAQ,sBAA4D,CAAA;AAMtG,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;KAC7G;AAED,IAAA,IACI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC;KACrF;AAED,IAAA,IACI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;KACnF;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;KACvD;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;KAC3D;AAED,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,iBAAiB,CAAC;KAC3D;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;KACxC;IAED,WAAsC,CAAA,SAAc,EAAU,gBAAkC,EAAA;QAC9F,KAAK,CAAC,SAAS,CAAC,CAAC;QADmB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;QAAU,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAjChD,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;KAmCrE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAI;;AAEtG,YAAA,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE;;gBAExB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC;AAC5C,iBAAC,CAAC,CAAC;aACJ;AACH,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACjC;KACF;AAED,IAAA,MAAM,CAAC,KAAK,EAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,KAAK,EAAE,KAAK;AACb,SAAA,CAAC,CAAC;KACJ;AAlEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAqCb,SAAS,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AArClB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,gTCZnC,0uDA8CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,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,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FDlCa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAEb,aAAA,EAAA,iBAAiB,CAAC,IAAI,uBAChB,KAAK,EAAA,QAAA,EAAA,0uDAAA,EAAA,CAAA;;0BAuCb,MAAM;2BAAC,SAAS,CAAA;qEAjCmB,cAAc,EAAA,CAAA;sBAA7D,WAAW;uBAAC,iCAAiC,CAAA;gBAG1C,IAAI,EAAA,CAAA;sBADP,WAAW;uBAAC,YAAY,CAAA;gBAMrB,mBAAmB,EAAA,CAAA;sBADtB,WAAW;uBAAC,2BAA2B,CAAA;gBAMpC,iBAAiB,EAAA,CAAA;sBADpB,WAAW;uBAAC,6BAA6B,CAAA;;;MEb/B,sBAAsB,CAAA;AAMjC,IAAA,IAAuD,YAAY,GAAA;AACjE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;KACrC;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KAC9D;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;KAChF;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KACnC;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;KACnC;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;KACjC;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KACpC;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;KACxC;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;KACzC;AAED,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;KACvC;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;KACzC;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;KAChC;AAED,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;KACtC;AAED,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;KACrC;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;KACzC;AAED,IAAA,IAAI,mBAAmB,GAAA;QACrB,QACE,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,IAAI,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;aAChI,CAAC,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAC1G;KACH;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,QACE,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACvG,aAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EACrH;KACH;IAED,WAAuC,CAAA,SAAc,EAAU,gBAAkC,EAAA;QAA1D,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;QAAU,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QA9ExF,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;AAgHpB,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,IAAS,EAAE,KAAW,KAAI;AAC5C,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;AAC1B,gBAAA,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AACnC,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AAC1B,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA,CAAC,CAAC;AACL,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,IAAS,EAAE,KAAW,KAAI;AAC3C,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;AACzB,gBAAA,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA,CAAC,CAAC;AACL,SAAC,CAAC;KAjDmG;IAErG,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC/D;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACpE;KACF;AAEO,IAAA,kBAAkB,CAAC,KAAuC,EAAA;QAChE,OAAO,KAAK,CAAC,mBAAmB,CAAC;KAClC;AAEO,IAAA,kBAAkB,CAAC,GAAQ,EAAA;QACjC,OAAO,GAAG,CAAC,mBAAmB,CAAC;KAChC;AAEO,IAAA,gBAAgB,CAAC,GAAQ,EAAA;QAC/B,OAAO,GAAG,CAAC,iBAAiB,CAAC;KAC9B;AAEO,IAAA,gBAAgB,CAAC,IAAuB,EAAA;QAC9C,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC/B;AAEO,IAAA,UAAU,CAAC,IAAuB,EAAA;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC;KAC7C;IAmBD,YAAY,CAAC,IAAI,EAAE,IAAI,EAAA;QACrB,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,iBAAiB,CAAC;AAC1E,YAAA,SAAS,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,cAAc,GAAG,IAAI,CAAC;SAC7F;QACD,OAAO,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;KAC7C;AA3IU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAgFb,SAAS,EAAA,EAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAhFlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAInB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oCAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,SAAA,EAAA,sBAAsB,EACtB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kCAAA,EAAA,SAAA,EAAA,gCAAgC,ECpBhD,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oyHAgGA,EDjFa,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,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,sBAAsB,EAHrB,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,8BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,cAAc,EAAE,2BAA2B,CAAC,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAG9C,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;+BACE,kBAAkB,EAAA,aAAA,EAEb,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,CAAC,cAAc,EAAE,2BAA2B,CAAC,EAAA,mBAAA,EACpC,KAAK,EAAA,QAAA,EAAA,oyHAAA,EAAA,CAAA;;0BAkFb,MAAM;2BAAC,SAAS,CAAA;qEA/EpB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACgC,sBAAsB,EAAA,CAAA;sBAA3D,YAAY;uBAAC,sBAAsB,CAAA;gBACY,gCAAgC,EAAA,CAAA;sBAA/E,YAAY;uBAAC,gCAAgC,CAAA;gBACS,YAAY,EAAA,CAAA;sBAAlE,WAAW;uBAAC,oCAAoC,CAAA;;;MEQtC,kBAAkB,CAAA;IAwC7B,WAAoB,CAAA,IAAiB,EAAU,gBAAkC,EAAA;QAA7D,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QAAU,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;;AArCxE,QAAA,IAAA,CAAA,QAAQ,GAAG,OAAO,CAAC;AACnB,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAAC;AACvB,QAAA,IAAA,CAAA,WAAW,GAAG,UAAU,CAAC;AACzB,QAAA,IAAA,CAAA,WAAW,GAAG,UAAU,CAAC;AACzB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC;AACrB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC;AAMhB,QAAA,IAAA,