@eui/ecl 21.0.0-alpha.2 → 21.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/components/ecl-content-item/index.d.ts.map +1 -1
  2. package/components/ecl-date-block/index.d.ts.map +1 -1
  3. package/components/ecl-icon/index.d.ts +2 -3
  4. package/components/ecl-icon/index.d.ts.map +1 -1
  5. package/components/ecl-menu/index.d.ts.map +1 -1
  6. package/components/ecl-multiselect/index.d.ts.map +1 -1
  7. package/components/ecl-search-form/index.d.ts.map +1 -1
  8. package/docs/changelog.html +19 -0
  9. package/docs/components/EclIconComponent.html +1 -15
  10. package/docs/js/search/search_index.js +2 -2
  11. package/docs/properties.html +1 -1
  12. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  13. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +24 -0
  14. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  15. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  16. package/fesm2022/eui-ecl-components-ecl-icon.mjs +11 -12
  17. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  18. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  19. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  20. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  21. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +2 -2
  22. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  23. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +2 -2
  24. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  25. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  26. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +3 -3
  27. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  28. package/fesm2022/eui-ecl-components-ecl-table.mjs +1 -1
  29. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  30. package/package.json +47 -47
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-icon.mjs","sources":["../../components/ecl-icon/ecl-icon.component.ts","../../components/ecl-icon/ecl-icon.component.html","../../components/ecl-icon/ecl-icon.module.ts","../../components/ecl-icon/index.ts","../../components/ecl-icon/eui-ecl-components-ecl-icon.ts"],"sourcesContent":["import { AfterViewInit, Component, ElementRef, HostBinding, Input, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, ViewChild, booleanAttribute, inject } from '@angular/core';\nimport { Observable, of, switchMap } from 'rxjs';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { AsyncPipe, NgClass } from '@angular/common';\n\n/**\n * ECL icon component – renders SVG icons from various sets depending on current theme.\n * Integrates with ECL theming and supports accessibility options.\n */\n@Component({\n selector: 'ecl-icon',\n templateUrl: './ecl-icon.component.html',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n imports: [AsyncPipe, NgClass],\n providers: [EclThemeService],\n})\nexport class EclIconComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n el = inject(ElementRef);\n\n /**\n * Defines the icon set to use.\n * Available sets: `default`, `social`, `social-media`, `flag`, or a custom URL prefix.\n * Defaults to `'default'`.\n */\n @Input() iconSet: 'default' | 'social' | 'social-media' | 'flag' | string = 'default';\n\n /**\n * Name of the icon to render from the selected set.\n */\n @Input() icon: string;\n\n /**\n * Size of the icon.\n * Supported values: `'2xs'`, `'xs'`, `'s'`, `'m'`, `'l'`, `'xl'`, `'2xl'`, `'fluid'`.\n * Defaults to `'xs'`.\n */\n @Input() size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | 'fluid' | string = 'xs';\n\n /**\n * Applies color styling to the icon.\n * Use `'inverted'` for icons on dark backgrounds, or `'primary'` for emphasis.\n */\n @Input() color: 'inverted' | 'primary' | null = null;\n\n /**\n * Adds a transformation modifier to the icon (e.g., rotation).\n */\n @Input() transform: string;\n\n /**\n * ID reference for an external element that labels this icon for screen readers.\n */\n @Input() ariaLabelledby: string;\n\n /**\n * ARIA role of the icon. If a `title` is provided and no role is defined, defaults to `'img'`.\n */\n @Input() role: string;\n\n /**\n * Title used for accessibility. Also affects `aria-hidden` and `role`.\n */\n @Input() title: string;\n\n /**\n * Determines whether the icon should be hidden from assistive technologies.\n * Defaults to `true` unless a title is provided.\n */\n @Input({ transform: booleanAttribute }) ariaHidden: boolean;\n\n /**\n * Controls whether the icon is focusable via keyboard.\n * Defaults to `false`.\n */\n @Input({ transform: booleanAttribute }) focusable = false;\n\n /**\n * Flips the icon horizontally if set to `true`.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-icon--flip-horizontal')\n isFlipHorizontal = false;\n\n /**\n * Adds a dark background utility class if the color is set to `'inverted'`.\n */\n @HostBinding('class.ecl-u-bg-dark')\n get isColorInverted(): boolean {\n return this.color === 'inverted';\n }\n\n @ViewChild('svg') svgEl: ElementRef;\n\n iconUrl$: Observable<string>;\n baseDirective: ECLBaseDirective;\n private renderer = inject(Renderer2);\n private eclThemeService = inject(EclThemeService);\n\n constructor() {\n const baseDirective = inject(ECLBaseDirective);\n\n this.baseDirective = baseDirective;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['icon']) {\n this.initiateIconUrl();\n }\n }\n\n ngOnInit(): void {\n this.initiateIconUrl();\n this.overrideRoleValueBasedOnTitle();\n this.overrideAriaLabelValueBasedOnTitle();\n }\n\n ngAfterViewInit(): void {\n const hostEl: HTMLElement = this.el.nativeElement;\n const hostParentEl = hostEl.parentElement;\n\n if (hostParentEl != null) {\n // add the svg and remove the parent from the DOM\n this.renderer.setStyle(hostEl, 'visibility', 'hidden');\n hostEl.after(this.svgEl.nativeElement);\n this.renderer.removeChild(hostParentEl, hostEl);\n }\n }\n\n ngOnDestroy(): void {\n try {\n if (this.svgEl) {\n const hostParentEl = this.svgEl.nativeElement.parentElement;\n if (hostParentEl) {\n hostParentEl.removeChild(this.svgEl.nativeElement);\n }\n }\n } catch (e) {\n /* empty */\n }\n }\n\n /**\n * Returns a map of CSS classes applied to the icon.\n * Includes classes for size, color, transform, and base ECL styles.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getClasses(): { [x: string]: any } {\n const hostClasses = this.el.nativeElement.classList.toString();\n return {\n [this.baseDirective.getCssClasses('ecl-icon')]: true,\n [`ecl-icon--${this.size}`]: this.size,\n [`ecl-icon--${this.transform}`]: this.transform,\n [`ecl-icon--${this.color}`]: this.color,\n [hostClasses]: true,\n };\n }\n\n private initiateIconUrl(): void {\n this.iconUrl$ = this.eclThemeService.theme$.pipe(\n switchMap((theme) => {\n switch (this.iconSet) {\n case 'default':\n return of(`assets/images/ecl/${theme}/icons/sprites/icons.svg#${this.icon}`);\n case 'social':\n return of(`assets/images/ecl/${theme}/social-icons/sprites/icons-social.svg#${this.icon}`);\n case 'social-media':\n return of(`assets/images/ecl/${theme}/icons-social-media/sprites/icons-social-media.svg#${this.icon}`);\n case 'flag':\n return of(`assets/images/ecl/${theme}/icons-flag/sprites/icons-flag.svg#${this.icon}`);\n case 'flag-non-members':\n return of(`assets/images/ecl/${theme}/icons-flag/sprites/icons-flag-non-members.svg#${this.icon}`);\n default:\n return of(`${this.iconSet}#${this.icon}`);\n }\n }),\n );\n }\n\n private overrideRoleValueBasedOnTitle(): void {\n if (this.title !== undefined && this.role === undefined) {\n this.role = 'img';\n }\n }\n\n private overrideAriaLabelValueBasedOnTitle(): void {\n if (this.title !== undefined && this.ariaHidden === undefined) {\n this.ariaHidden = false;\n } else if (this.ariaHidden === undefined) {\n this.ariaHidden = true;\n }\n }\n}\n","<svg\n #svg\n [ngClass]=\"getClasses()\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.role]=\"role || null\"\n [attr.focusable]=\"focusable\">\n @if (title) {\n <title>{{title}}</title>\n }\n <use [attr.xlink:href]=\"iconUrl$ | async\"></use>\n <ng-content></ng-content>\n</svg>\n","import { NgModule } from '@angular/core';\nimport { EclIconComponent } from './ecl-icon.component';\n\n/**\n * Module that provides the EclIcon component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_ICON} instead.\n */\n@NgModule({\n imports: [EclIconComponent],\n exports: [EclIconComponent],\n})\nexport class EclIconModule {}\n","import { EclIconComponent } from './ecl-icon.component';\nexport * from './ecl-icon.module';\nexport * from './ecl-icon.component';\n\nexport const EUI_ECL_ICON = [\n EclIconComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAMA;;;AAGG;MAYU,gBAAgB,CAAA;AAmEzB;;AAEG;AACH,IAAA,IACI,eAAe,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU;IACpC;AASA,IAAA,WAAA,GAAA;AAjFA,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvB;;;;AAIG;QACM,IAAA,CAAA,OAAO,GAA4D,SAAS;AAOrF;;;;AAIG;QACM,IAAA,CAAA,IAAI,GAAqE,IAAI;AAEtF;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAkC,IAAI;AA4BpD;;;AAGG;QACqC,IAAA,CAAA,SAAS,GAAG,KAAK;AAEzD;;AAEG;QAGH,IAAA,CAAA,gBAAgB,GAAG,KAAK;AAchB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAG7C,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE9C,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;IACtC;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACjB,IAAI,CAAC,eAAe,EAAE;QAC1B;IACJ;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,6BAA6B,EAAE;QACpC,IAAI,CAAC,kCAAkC,EAAE;IAC7C;IAEA,eAAe,GAAA;AACX,QAAA,MAAM,MAAM,GAAgB,IAAI,CAAC,EAAE,CAAC,aAAa;AACjD,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa;AAEzC,QAAA,IAAI,YAAY,IAAI,IAAI,EAAE;;YAEtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC;QACnD;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI;AACA,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa;gBAC3D,IAAI,YAAY,EAAE;oBACd,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;gBACtD;YACJ;QACJ;QAAE,OAAO,CAAC,EAAE;;QAEZ;IACJ;AAEA;;;AAGG;;IAEH,UAAU,GAAA;AACN,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE;QAC9D,OAAO;YACH,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI;YACpD,CAAC,CAAA,UAAA,EAAa,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI;YACrC,CAAC,CAAA,UAAA,EAAa,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS;YAC/C,CAAC,CAAA,UAAA,EAAa,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK;YACvC,CAAC,WAAW,GAAG,IAAI;SACtB;IACL;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,KAAK,KAAI;AAChB,YAAA,QAAQ,IAAI,CAAC,OAAO;AAChB,gBAAA,KAAK,SAAS;oBACV,OAAO,EAAE,CAAC,CAAA,kBAAA,EAAqB,KAAK,CAAA,yBAAA,EAA4B,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AAChF,gBAAA,KAAK,QAAQ;oBACT,OAAO,EAAE,CAAC,CAAA,kBAAA,EAAqB,KAAK,CAAA,uCAAA,EAA0C,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AAC9F,gBAAA,KAAK,cAAc;oBACf,OAAO,EAAE,CAAC,CAAA,kBAAA,EAAqB,KAAK,CAAA,mDAAA,EAAsD,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AAC1G,gBAAA,KAAK,MAAM;oBACP,OAAO,EAAE,CAAC,CAAA,kBAAA,EAAqB,KAAK,CAAA,mCAAA,EAAsC,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AAC1F,gBAAA,KAAK,kBAAkB;oBACnB,OAAO,EAAE,CAAC,CAAA,kBAAA,EAAqB,KAAK,CAAA,+CAAA,EAAkD,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;AACtG,gBAAA;AACI,oBAAA,OAAO,EAAE,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;;QAErD,CAAC,CAAC,CACL;IACL;IAEQ,6BAA6B,GAAA;AACjC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AACrD,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK;QACrB;IACJ;IAEQ,kCAAkC,GAAA;AACtC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAC3D,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QAC3B;AAAO,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AACtC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QAC1B;IACJ;8GA9KS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAoDL,gBAAgB,CAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAMhB,gBAAgB,8DAKhB,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iCAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,SAAA,EAjEzB,CAAC,eAAe,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBhC,kXAaA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDKyB,OAAO,+EAAlB,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGV,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,cAAA,EAEJ;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,gBAAgB;AAC9B,yBAAA;qBACJ,EAAA,OAAA,EACQ,CAAC,SAAS,EAAE,OAAO,CAAC,EAAA,SAAA,EAClB,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,kXAAA,EAAA;wDAUnB,OAAO,EAAA,CAAA;sBAAf;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAOQ,IAAI,EAAA,CAAA;sBAAZ;gBAMQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAKQ,IAAI,EAAA,CAAA;sBAAZ;gBAKQ,KAAK,EAAA,CAAA;sBAAb;gBAMuC,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAME,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAOtC,gBAAgB,EAAA,CAAA;sBAFf,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBACrC,WAAW;uBAAC,iCAAiC;gBAO1C,eAAe,EAAA,CAAA;sBADlB,WAAW;uBAAC,qBAAqB;gBAKhB,KAAK,EAAA,CAAA;sBAAtB,SAAS;uBAAC,KAAK;;;AE7FpB;;;;AAIG;MAKU,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAb,aAAa,EAAA,OAAA,EAAA,CAHZ,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAChB,gBAAgB,CAAA,EAAA,CAAA,CAAA;+GAEjB,aAAa,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC9B,iBAAA;;;ACPM,MAAM,YAAY,GAAG;IACxB,gBAAgB;;;ACLpB;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-icon.mjs","sources":["../../components/ecl-icon/ecl-icon.component.ts","../../components/ecl-icon/ecl-icon.component.html","../../components/ecl-icon/ecl-icon.module.ts","../../components/ecl-icon/index.ts","../../components/ecl-icon/eui-ecl-components-ecl-icon.ts"],"sourcesContent":["import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewChild,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Observable, of, switchMap } from 'rxjs';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { AsyncPipe, NgClass } from '@angular/common';\n\n/**\n * ECL icon component – renders SVG icons from various sets depending on current theme.\n * Integrates with ECL theming and supports accessibility options.\n */\n@Component({\n selector: 'ecl-icon',\n templateUrl: './ecl-icon.component.html',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n imports: [AsyncPipe, NgClass],\n providers: [EclThemeService],\n})\nexport class EclIconComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\n /**\n * Defines the icon set to use.\n * Available sets: `default`, `social`, `social-media`, `flag`, or a custom URL prefix.\n * Defaults to `'default'`.\n */\n @Input() iconSet: 'default' | 'social' | 'social-media' | 'flag' | string = 'default';\n\n /**\n * Name of the icon to render from the selected set.\n */\n @Input() icon: string;\n\n /**\n * Size of the icon.\n * Supported values: `'2xs'`, `'xs'`, `'s'`, `'m'`, `'l'`, `'xl'`, `'2xl'`, `'fluid'`.\n * Defaults to `'xs'`.\n */\n @Input() size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | 'fluid' | string = 'xs';\n\n /**\n * Applies color styling to the icon.\n * Use `'inverted'` for icons on dark backgrounds, or `'primary'` for emphasis.\n */\n @Input() color: 'inverted' | 'primary' | null = null;\n\n /**\n * Adds a transformation modifier to the icon (e.g., rotation).\n */\n @Input() transform: string;\n\n /**\n * ID reference for an external element that labels this icon for screen readers.\n */\n @Input() ariaLabelledby: string;\n\n /**\n * ARIA role of the icon. If a `title` is provided and no role is defined, defaults to `'img'`.\n */\n @Input() role: string;\n\n /**\n * Title used for accessibility. Also affects `aria-hidden` and `role`.\n */\n @Input() title: string;\n\n /**\n * Determines whether the icon should be hidden from assistive technologies.\n * Defaults to `true` unless a title is provided.\n */\n @Input({ transform: booleanAttribute }) ariaHidden: boolean;\n\n /**\n * Controls whether the icon is focusable via keyboard.\n * Defaults to `false`.\n */\n @Input({ transform: booleanAttribute }) focusable = false;\n\n /**\n * Flips the icon horizontally if set to `true`.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-icon--flip-horizontal')\n isFlipHorizontal = false;\n\n /**\n * Adds a dark background utility class if the color is set to `'inverted'`.\n */\n @HostBinding('class.ecl-u-bg-dark')\n get isColorInverted(): boolean {\n return this.color === 'inverted';\n }\n\n @ViewChild('svg') svgEl: ElementRef;\n\n iconUrl$: Observable<string>;\n baseDirective = inject(ECLBaseDirective);\n el = inject(ElementRef);\n private eclThemeService = inject(EclThemeService);\n private renderer = inject(Renderer2);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['icon']) {\n this.initiateIconUrl();\n }\n }\n\n ngOnInit(): void {\n this.initiateIconUrl();\n this.overrideRoleValueBasedOnTitle();\n this.overrideAriaLabelValueBasedOnTitle();\n }\n\n ngAfterViewInit(): void {\n const hostEl: HTMLElement = this.el.nativeElement;\n const hostParentEl = hostEl.parentElement;\n\n if (hostParentEl != null) {\n // add the svg and remove the parent from the DOM\n this.renderer.setStyle(hostEl, 'visibility', 'hidden');\n hostEl.after(this.svgEl.nativeElement);\n this.renderer.removeChild(hostParentEl, hostEl);\n }\n }\n\n ngOnDestroy(): void {\n try {\n if (this.svgEl) {\n const hostParentEl = this.svgEl.nativeElement.parentElement;\n if (hostParentEl) {\n hostParentEl.removeChild(this.svgEl.nativeElement);\n }\n }\n } catch (e) {\n /* empty */\n }\n }\n\n /**\n * Returns a map of CSS classes applied to the icon.\n * Includes classes for size, color, transform, and base ECL styles.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n getClasses(): { [x: string]: any } {\n const hostClasses = this.el.nativeElement.classList.toString();\n return {\n [this.baseDirective.getCssClasses('ecl-icon')]: true,\n [`ecl-icon--${this.size}`]: this.size,\n [`ecl-icon--${this.transform}`]: this.transform,\n [`ecl-icon--${this.color}`]: this.color,\n [hostClasses]: true,\n };\n }\n\n private initiateIconUrl(): void {\n this.iconUrl$ = this.eclThemeService.theme$.pipe(\n switchMap((theme) => {\n switch (this.iconSet) {\n case 'default':\n return of(`assets/images/ecl/${theme}/icons/sprites/icons.svg#${this.icon}`);\n case 'social':\n return of(`assets/images/ecl/${theme}/social-icons/sprites/icons-social.svg#${this.icon}`);\n case 'social-media':\n return of(`assets/images/ecl/${theme}/icons-social-media/sprites/icons-social-media.svg#${this.icon}`);\n case 'flag':\n return of(`assets/images/ecl/${theme}/icons-flag/sprites/icons-flag.svg#${this.icon}`);\n case 'flag-non-members':\n return of(`assets/images/ecl/${theme}/icons-flag/sprites/icons-flag-non-members.svg#${this.icon}`);\n default:\n return of(`${this.iconSet}#${this.icon}`);\n }\n }),\n );\n }\n\n private overrideRoleValueBasedOnTitle(): void {\n if (this.title !== undefined && this.role === undefined) {\n this.role = 'img';\n }\n }\n\n private overrideAriaLabelValueBasedOnTitle(): void {\n if (this.title !== undefined && this.ariaHidden === undefined) {\n this.ariaHidden = false;\n } else if (this.ariaHidden === undefined) {\n this.ariaHidden = true;\n }\n }\n}\n","<svg\n #svg\n [ngClass]=\"getClasses()\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-labelledby]=\"ariaLabelledby || null\"\n [attr.role]=\"role || null\"\n [attr.focusable]=\"focusable\">\n @if (title) {\n <title>{{title}}</title>\n }\n <use [attr.xlink:href]=\"iconUrl$ | async\"></use>\n <ng-content></ng-content>\n</svg>\n","import { NgModule } from '@angular/core';\nimport { EclIconComponent } from './ecl-icon.component';\n\n/**\n * Module that provides the EclIcon component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_ICON} instead.\n */\n@NgModule({\n imports: [EclIconComponent],\n exports: [EclIconComponent],\n})\nexport class EclIconModule {}\n","import { EclIconComponent } from './ecl-icon.component';\nexport * from './ecl-icon.module';\nexport * from './ecl-icon.component';\n\nexport const EUI_ECL_ICON = [\n EclIconComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-mega-menu.mjs","sources":["../../components/ecl-mega-menu/directives/ecl-mega-menu-container.directive.ts","../../components/ecl-mega-menu/directives/ecl-mega-menu-featured-list.directive.ts","../../components/ecl-mega-menu/directives/ecl-mega-menu-featured-picture.directive.ts","../../components/ecl-mega-menu/services/ecl-mega-menu-data.service.ts","../../components/ecl-mega-menu/services/ecl-mega-menu.service.ts","../../components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.html","../../components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.html","../../components/ecl-mega-menu/directives/ecl-mega-menu-list.directive.ts","../../components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.html","../../components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.html","../../components/ecl-mega-menu/ecl-mega-menu.component.ts","../../components/ecl-mega-menu/ecl-mega-menu.component.html","../../components/ecl-mega-menu/ecl-mega-menu.module.ts","../../components/ecl-mega-menu/index.ts","../../components/ecl-mega-menu/eui-ecl-components-ecl-mega-menu.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu container.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuContainer]',\n})\n\nexport class EclMegaMenuContainerDirective extends ECLBaseDirective {\n\n @HostBinding('class.ecl') hasClass = true;\n}\n","import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu featured list.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedList]',\n})\nexport class EclMegaMenuFeaturedListDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list') cmpClass = true;\n}\n\n/**\n * Directive that adds specific class to a mega-menu featured list item.\n * Also has method that returns item height.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedListItem]',\n})\nexport class EclMegaMenuFeaturedListItemDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list__item') cmpClass = true;\n private el = inject(ElementRef);\n\n getEclMegaMenuFeaturedItemHeight(): number {\n return this.el.nativeElement.scrollHeight;\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu featured picture.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedPicture]',\n})\nexport class EclMegaMenuFeaturedPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-mega-menu__featured-picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive that adds specific class to the mega-menu featured image.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedImage]',\n})\nexport class EclMegaMenuFeaturedImageDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-image') cmpClass = true;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { EclMegaMenuItem } from '../models/ecl-mega-menu-item.model';\n\n@Injectable({ providedIn: 'root' })\nexport class EclMegaMenuDataService {\n\n\tpublic eclMegaMenuInfoBottomYSubject$: Observable<number>;\n\tpublic eclSubItemExpanded$: Observable<boolean>;\n\tpublic eclSubItemClicked$: Observable<EclMegaMenuItem>;\n\tpublic eclSubItemEscape$: Observable<boolean>;\n\n\tprivate eclMegaMenuInfoBottomYSubject: Subject<number> = new Subject<number>();\n\tprivate eclSubItemExpanded: Subject<boolean> = new Subject<boolean>();\n\tprivate eclSubItemClicked: Subject<EclMegaMenuItem> = new Subject<EclMegaMenuItem>();\n\tprivate eclSubItemEscape: Subject<boolean> = new Subject<boolean>();\n\n\tconstructor() {\n\t\tthis.eclMegaMenuInfoBottomYSubject$ = this.eclMegaMenuInfoBottomYSubject.asObservable();\n this.eclSubItemExpanded$ = this.eclSubItemExpanded.asObservable();\n\t\tthis.eclSubItemClicked$ = this.eclSubItemClicked.asObservable();\n\t\tthis.eclSubItemEscape$ = this.eclSubItemEscape.asObservable();\n\t}\n\n\t/**\n\t * Used to synchronize size of the info panel and sublist.\n\t */\n\tupdateEclMegaMenuInfoSize(value: number): void {\n\t\tthis.eclMegaMenuInfoBottomYSubject.next(value);\n\t}\n\n eclSubItemToggle(isExpanded: boolean): void {\n\t\tthis.eclSubItemExpanded.next(isExpanded);\n\t}\n\n\teclSubItemClick(item: EclMegaMenuItem): void {\n\t\tthis.eclSubItemClicked.next(item);\n\t}\n\n\teclSubItemEscapeEvent(value: boolean): void {\n\t\tthis.eclSubItemEscape.next(value);\n\t}\n}","import { Injectable, Renderer2, RendererFactory2, inject } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class EclMegaMenuService {\n private renderer: Renderer2;\n\n constructor() {\n const rendererFactory = inject(RendererFactory2);\n\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) => {\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n}","import { Component, ElementRef, HostBinding, Input, ContentChildren, forwardRef, QueryList, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMegaMenuFeaturedListItemDirective } from '../directives/ecl-mega-menu-featured-list.directive';\n\n/**\n * This component represents the featured items panel.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuFeatured]',\n templateUrl: './ecl-mega-menu-featured.component.html',\n})\n\nexport class EclMegaMenuFeaturedComponent extends ECLBaseDirective {\n\n @HostBinding('class.ecl-mega-menu__featured') cmpClass = true;\n @HostBinding('style.height.px') eclMegaMenuFeaturedStyleHeight: number | null = null;\n @Input() title: string;\n @Input() titleId: string;\n\n @ContentChildren(forwardRef(() => EclMegaMenuFeaturedListItemDirective), { descendants: true }) listItems: QueryList<EclMegaMenuFeaturedListItemDirective>;\n private el = inject(ElementRef);\n\n /**\n * Calculates and returns the height of the component. The total height of all the list items.\n * @returns the height of the component\n */\n getEclMegaMenuFeaturedHeight(): number {\n let result = 0;\n this.listItems.forEach(it => result += it.getEclMegaMenuFeaturedItemHeight());\n return result;\n }\n}\n","<div class=\"ecl-mega-menu__featured-scrollable\">\n <ng-content select=\"[eclMegaMenuFeaturedPicture]\"></ng-content>\n @if(title) {\n <span class=\"ecl-mega-menu__featured-title\" id=\"{{titleId}}\">{{ title }}</span>\n }\n <ng-content select=\"[eclMegaMenuFeaturedList]\"></ng-content>\n</div>","import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, afterNextRender, booleanAttribute, forwardRef, inject } from '@angular/core';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterModule } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective, EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclButtonComponent, EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclMegaMenuItem } from '../models/ecl-mega-menu-item.model';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuDataService } from '../services';\nimport { EclMegaMenuService } from '../services';\nimport { EclMegaMenuFeaturedComponent } from '../ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\n\n/**\n * This component represents a sub-item in the mega-menu component. Applies styling and functionality.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[eclMegaMenuSubitem]',\n templateUrl: './ecl-mega-menu-subitem.component.html',\n imports: [NgTemplateOutlet, RouterModule, EclButtonModule, EclIconModule, EclLinkModule],\n})\n\nexport class EclMegaMenuSubitemComponent extends ECLBaseDirective implements EclMegaMenuItem {\n\n @HostBinding('attr.aria-expanded') isExpanded = false;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__subitem'),\n this.isCurrent ? 'ecl-mega-menu__subitem--current' : '',\n this.isExpanded ? 'ecl-mega-menu__subitem--expanded' : '',\n this.isSeeAll ? 'ecl-mega-menu__see-all' : '',\n this.isParentLink ? 'ecl-mega-menu__parent-link' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Sets id for the button element.\n */\n @Input() buttonId: string;\n @Input() label = '';\n /**\n * If the link redirects to external page. Adds an 'external' icon.\n */\n @Input({ transform: booleanAttribute }) isExternal = false;\n /**\n * If the link is external, this will be the title of the external icon.\n */\n @Input() externalIconTitle: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n /**\n * Used for the 'View all' link.\n */\n @Input({ transform: booleanAttribute }) isSeeAll = false;\n /**\n * Adds custom attributes to an anchor element.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n /**\n * Wrapper div element of the second level sub-items.\n */\n @ViewChild('megaMenuLevel2') megaMenuLevel2: ElementRef;\n /**\n * The link element, if it exists. Item can have either link or button.\n */\n @ViewChild(EclLinkDirective) subMenuItemLink: EclLinkDirective;\n /**\n * The button element, if it exists. Item can have either link or button.\n */\n @ViewChild('subMenuItemBtn') subMenuItemBtn: EclButtonComponent;\n\n /**\n * The directive of the submenu lits.\n */\n @ContentChild(forwardRef(() => EclMegaMenuSublistDirective)) submenu: EclMegaMenuSublistDirective;\n /**\n * The component for the featured items.\n */\n @ContentChild(forwardRef(() => EclMegaMenuFeaturedComponent)) eclMegaMenuFeatured: EclMegaMenuFeaturedComponent;\n\n @Output() megaMenuSubItemClicked = new EventEmitter();\n @Output() megaMenuSubItemKeydown = new EventEmitter();\n\n isCurrent = false;\n isMobileBreakpoint = false;\n // Not used. To be removed in v20.\n labelId: string;\n /**\n * Used to set the height of the second level subitems container.\n */\n level2StyleHeight: number | null = null;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isParentLink = false;\n @HostBinding('style.display') private display = '';\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private eclMegaMenuService = inject(EclMegaMenuService);\n\n constructor() {\n super();\n const eclMegaMenuService = this.eclMegaMenuService;\n\n afterNextRender(() => {\n if (this.subMenuItemLink) {\n eclMegaMenuService.setExtraAttributesForLink(this.subMenuItemLink.el.nativeElement, this.linkExtraAttributes);\n }\n this.observeBreakpointChanges();\n });\n }\n\n get hasChildren(): boolean {\n return !!this.submenu;\n }\n\n /**\n * Sets focus on either link or button element.\n */\n onFocus(): void{\n if (this.subMenuItemLink) {\n this.subMenuItemLink.onFocus();\n } else if (this.subMenuItemBtn) {\n this.subMenuItemBtn.onFocus();\n }\n }\n\n onHide(): void {\n this.display = 'none';\n }\n\n onShow(): void {\n this.display = '';\n }\n\n getMegaMenuSubItemHeight(): number {\n return this.el.nativeElement.getBoundingClientRect().height;\n }\n\n /**\n * Show or hide the subitems.\n */\n onButtonClick(): void {\n this.isCurrent = !this.isCurrent;\n this.isExpanded = !this.isExpanded;\n this.eclMegaMenuDataService.eclSubItemToggle(this.isExpanded);\n this.eclMegaMenuDataService.eclSubItemClick(this);\n if (this.isMobileBreakpoint) {\n this.isParentLink = true;\n setTimeout(() => this.calculateLevel2Styles());\n }\n this.megaMenuSubItemClicked.emit();\n }\n\n /**\n * If link is clicked -> emit event and close all opened menus and submenus.\n */\n onLinkClick(): void {\n this.eclMegaMenuDataService.eclSubItemClick(this);\n this.megaMenuSubItemClicked.emit();\n }\n\n onKeydown(evt: Event): void {\n if (evt instanceof KeyboardEvent) {\n if (!((evt as KeyboardEvent).key === KeyCode.TAB)) {\n if ((evt as KeyboardEvent).key === KeyCode.ESCAPE) {\n this.eclMegaMenuDataService.eclSubItemEscapeEvent(true);\n } else {\n this.megaMenuSubItemKeydown.emit(evt as KeyboardEvent);\n }\n }\n }\n }\n\n onSubMenuItemCollapse(): void {\n if (this.isExpanded) {\n this.eclMegaMenuDataService.eclSubItemToggle(false);\n this.isCurrent = false;\n this.isExpanded = false;\n this.isParentLink = false;\n }\n }\n\n onSubMenuItemExpand(): void {\n this.isCurrent = true;\n this.isExpanded = true;\n this.eclMegaMenuDataService.eclSubItemToggle(this.isExpanded);\n }\n\n private calculateLevel2Styles(): void {\n if (this.megaMenuLevel2) {\n const subMegaRect = this.megaMenuLevel2.nativeElement.getBoundingClientRect();\n const subMegaTop = subMegaRect.top;\n const availableHeight = window.innerHeight - subMegaTop;\n this.level2StyleHeight = availableHeight;\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","@if (!isSeeAll) {\n@if (hasChildren) {\n<button eclButton #subMenuItemBtn variant=\"primary\" class=\"ecl-mega-menu__sublink\" [attr.aria-expanded]=\"isExpanded\"\n (click)=\"onButtonClick()\" (keydown)=\"onKeydown($event)\" id=\"{{buttonId}}\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink variant=\"standalone\" [href]=\"href\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n} @else {\n<a eclLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n}\n\n@if (hasChildren) {\n<div class=\"ecl-mega-menu__mega ecl-mega-menu__mega--level-2\" #megaMenuLevel2\n [style.height.px]=\"level2StyleHeight\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n</div>\n}\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #eclIcon>\n @if (isExternal) {\n <ecl-icon icon=\"external\" size=\"2xs\" ariaHidden=\"false\" role=\"img\">\n <title>Links to an external domain</title>\n </ecl-icon>\n }\n <!-- <ng-content select=\"ecl-icon\"></ng-content> -->\n</ng-template>","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { ContentChildren, Directive, DoCheck, ElementRef, HostBinding, IterableDiffer, IterableDiffers, OnDestroy, QueryList, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective, KeyCode } from '@eui/ecl/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclMegaMenuSubitemComponent } from '../ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\n\n/**\n * Directive that adds specific class to the mega-menu list.\n */\n@Directive({\n selector: 'ul[eclMegaMenuList]',\n})\nexport class EclMegaMenuListDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__list') cmpClass = true;\n}\n\n/**\n * Directive that adds specific class to the mega-menu spacer.\n */\n@Directive({\n selector: 'ul[eclMegaMenuSpacer]',\n})\nexport class EclMegaMenuSpacerDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__spacer') cmpClass = true;\n}\n\n/**\n * Directive that adds specific classes and functionality to the mega-menu sublist.\n */\n@Directive({\n selector: 'ul[eclMegaMenuSublist]',\n})\nexport class EclMegaMenuSublistDirective extends ECLBaseDirective implements OnDestroy, DoCheck {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-mega-menu__sublist') cmpClass = true;\n @HostBinding('class.ecl-mega-menu__sublist--scrollable') isScrollable = false;\n @HostBinding('style.top.px') styleTop: number | null = null;\n\n @ContentChildren(forwardRef(() => EclMegaMenuSubitemComponent)) submenuItems: QueryList<EclMegaMenuSubitemComponent>;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMegaMenuSubitemComponent>;\n private isMobileBreakpoint = false;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private differs = inject(IterableDiffers);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n });\n }\n\n ngDoCheck(): void {\n // When a new item is added -> subscribe to item's events.\n const diff = this.differ.diff(this.submenuItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectMegaMenuItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When parent mega-menu item is clicked.\n * @param isExpanded - 'true', if parent item is expanded, 'false' if item is collapsed.\n */\n onParentMegaMenuItemClick(isExpanded: boolean): void {\n if (isExpanded) {\n // If mega-menu item is expanded -> find the first mega-menu list child (i.e. sub item) and expand it's children.\n if (!this.isMobileBreakpoint) {\n const itemWithChildren = this.submenuItems.find(item => item.hasChildren);\n itemWithChildren?.onSubMenuItemExpand();\n }\n } else {\n this.submenuItems.forEach(item => {\n if (item.isExpanded) {\n item.onSubMenuItemCollapse();\n }\n });\n }\n }\n\n private connectMegaMenuItemEvents(item: EclMegaMenuSubitemComponent): void {\n item.megaMenuSubItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onMegaMenuSubItemClicked(item);\n });\n\n item.megaMenuSubItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onMegaMenuSubItemKeydown(item, evt);\n });\n }\n\n private onMegaMenuSubItemClicked(item: EclMegaMenuSubitemComponent): void {\n this.submenuItems.filter(subItem => subItem !== item).forEach(el => {\n el.onSubMenuItemCollapse();\n if (this.isMobileBreakpoint && item.hasChildren) {\n el.onHide();\n }\n });\n }\n\n private onMegaMenuSubItemKeydown(item: EclMegaMenuSubitemComponent, evt: KeyboardEvent): void {\n\n const itemIndex = this.submenuItems.toArray().findIndex(elem => elem === item);\n switch (evt.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private focusOnPrevSibling(index: number): void {\n if (index > 0) {\n this.submenuItems.get(index-1).onFocus();\n }\n }\n\n private focusOnNextSibling(index: number): void {\n if (index < this.submenuItems.length - 1) {\n this.submenuItems.get(index+1).onFocus();\n }\n }\n\n private resetStyles(): void {\n if (this.isMobileBreakpoint) {\n this.isScrollable = true;\n } else {\n this.isScrollable = false;\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 996px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n setTimeout(() => this.resetStyles());\n });\n }\n}\n","import { AfterViewInit, Component, ContentChild, ElementRef, HostBinding, Input, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclMegaMenuDataService } from '../services';\n\n/**\n * Component for displaying some custom information for the current menu item.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuInfo]',\n templateUrl: './ecl-mega-menu-info.component.html',\n})\n\nexport class EclMegaMenuInfoComponent extends ECLBaseDirective implements AfterViewInit {\n el = inject(ElementRef);\n\n /**\n * Applies custom styles for info component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__info'),\n this.linkItem ? 'ecl-mega-menu__info--has-link' : '',\n ]\n .join(' ')\n .trim();\n }\n /**\n * Sets the height of the component.\n */\n @HostBinding('style.height.px') eclMegaMenuInfoStyleHeight: number | null = null;\n /**\n * Sets the opacity of the component.\n */\n @HostBinding('style.opacity') eclMegaMenuInfoStyleOpacity: number | null = null;\n\n @Input() title: string;\n\n /**\n * When the info panel contains link.\n */\n @ContentChild(forwardRef(() => EclLinkDirective)) linkItem: EclLinkDirective;\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n\n ngAfterViewInit(): void {\n // Sets class of the sub link, if any.\n if (this.linkItem) {\n setTimeout(() => this.linkItem.class = 'ecl-mega-menu__info-link');\n }\n // Emits the bottom value of the element. Needed to calculate the size of the sublist. (for the same parent menu item)\n this.publishSize();\n }\n\n /**\n * Used to calculate the height of the parent element.\n * @returns the height of the component.\n */\n getInfoPanelScrollHeight() : number {\n return this.el.nativeElement.scrollHeight;\n }\n\n /**\n * Used to calulate the size of the info panel.\n */\n private publishSize(): void {\n const bottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuDataService.updateEclMegaMenuInfoSize(bottomY);\n }\n}\n","<span class=\"ecl-mega-menu__info-title\">{{ title }}</span>\n<div class=\"ecl-mega-menu__info-scrollable\">\n <div class=\"ecl-mega-menu__info-content\"><ng-content></ng-content>\n </div>\n</div>","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Component, ContentChild, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, Output, Renderer2, ViewChild, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { Params, QueryParamsHandling, RouterModule } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclLinkDirective, EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclButtonComponent, EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclMegaMenuService } from '../services';\nimport { EclMegaMenuDataService } from '../services';\nimport { EclMegaMenuContainerDirective } from '../directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuInfoComponent } from '../ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\n\n/**\n * This component represents a mega menu item. Adds functionality and styling, according to ECL standards.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[eclMegaMenuItem]',\n templateUrl: './ecl-mega-menu-item.component.html',\n imports: [RouterModule, EclButtonModule, EclIconModule, EclLinkModule],\n})\n\nexport class EclMegaMenuItemComponent extends ECLBaseDirective implements OnDestroy {\n el = inject(ElementRef);\n\n /**\n * Returns current menu item classes, depending on item's state (it's properties' values).\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__item'),\n this.eclMegaMenuSublist ? 'ecl-mega-menu__item--has-children' : '',\n this.eclMegaMenuContainer ? 'ecl-mega-menu__item--has-container' : '',\n this.isCurrent ? 'ecl-mega-menu__item--current' : '',\n this.isExpanded ? 'ecl-mega-menu__item--expanded' : '',\n ]\n .join(' ')\n .trim();\n }\n\n @HostBinding('attr.aria-expanded') isExpanded = false;\n @HostBinding('attr.aria-haspopup') hasPopup = this.hasChildren ? true : null;\n\n @Input() label: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n /**\n * Used in case user wants to set some custom attributes for the anchr tag.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n @Output() megaMenuItemClicked = new EventEmitter();\n @Output() megaMenuItemKeydown = new EventEmitter<KeyboardEvent>();\n /**\n * The wrapper around the subitems, if any.\n */\n @ViewChild('eclMegaMenuMega') eclMegaMenuMega: ElementRef;\n /**\n * This elemend hold some extra content, different from subitems. For example just some text or some custom links, etc.\n */\n @ViewChild('mainPanel') mainPanel: ElementRef;\n /**\n * Actual link of the menu item. If the menu has no children, but redirects/loads another page.\n */\n @ViewChild(EclLinkDirective) menuLink: EclLinkDirective;\n /**\n * Element, tat is rendered if the menu item has children.\n */\n @ViewChild('menuBtn') menuBtn: EclButtonComponent;\n /**\n * Element, that would contain some info about the current item or it's children. First in the container.\n */\n @ContentChild(forwardRef(() => EclMegaMenuInfoComponent)) eclMegaMenuInfo: EclMegaMenuInfoComponent;\n /**\n * Element, that holds the sub items of the current menu items.\n */\n @ContentChild(forwardRef(() => EclMegaMenuSublistDirective)) eclMegaMenuSublist: EclMegaMenuSublistDirective;\n /**\n * Component, that consist of some custom info, text or whatever. When the menu item has no children, but still some\n * sub container is displayed.\n */\n @ContentChild(forwardRef(() => EclMegaMenuContainerDirective)) eclMegaMenuContainer: EclMegaMenuContainerDirective;\n\n containerStyleHeight: number | null = null;\n isCurrent = false;\n isMobileBreakpoint = false;\n megaMenuMegaStyleHeight: number | null = null;\n megaMenuMegaStyleOpacity: number | null = null;\n wrapperStyleHeight: number | null = null;\n wrapperStyleTop: number | null = null;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isLarge = false;\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclMegaMenuService = inject(EclMegaMenuService);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n const eclMegaMenuDataService = this.eclMegaMenuDataService;\n const eclMegaMenuService = this.eclMegaMenuService;\n\n afterNextRender(() => {\n eclMegaMenuDataService.eclMegaMenuInfoBottomYSubject$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.calculateSublistStyle(value);\n });\n if (this.menuLink) {\n eclMegaMenuService.setExtraAttributesForLink(this.menuLink.el.nativeElement, this.linkExtraAttributes);\n }\n this.observeBreakpointChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get hasChildren(): boolean {\n return !!this.eclMegaMenuSublist || !!this.eclMegaMenuContainer;\n }\n\n get hasSublist(): boolean {\n return !!this.eclMegaMenuSublist;\n }\n\n get hasContainer(): boolean {\n return !!this.eclMegaMenuContainer;\n }\n\n /**\n * Set the focus on the sub element - link or button.\n */\n onFocus(): void{\n if (this.menuLink) {\n this.menuLink.onFocus();\n } else if (this.menuBtn) {\n this.menuBtn.onFocus();\n }\n }\n\n /**\n * On resize - calculate the size of the dropdown and wrapper (if item is expanded).\n */\n @HostListener('window:resize')\n onResize(): void {\n setTimeout(() => {\n if (this.isExpanded) {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n }\n });\n }\n\n /**\n * Manage styling and functionality for children and siblings, when item is clicked.\n */\n onMegaMenuItemClick(): void {\n\n if (this.hasChildren) {\n this.isCurrent = !this.isCurrent;\n this.isExpanded = !this.isExpanded;\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.onParentMegaMenuItemClick(this.isExpanded);\n }\n if (this.isExpanded) {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n this.hidePanels();\n setTimeout(() => {\n this.checkDropdownHeight();\n });\n } else {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n }\n } else {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n }\n this.megaMenuItemClicked.emit();\n }\n\n /**\n * Manage styling and functionality when item is collapsed.\n */\n onMegaMenuItemCollapse(): void {\n this.isCurrent = false;\n this.isExpanded = false;\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.onParentMegaMenuItemClick(this.isExpanded);\n }\n }\n\n onKeydown(evt: Event): void {\n if (evt instanceof KeyboardEvent) {\n if ((evt as KeyboardEvent).key === KeyCode.TAB && !(evt as KeyboardEvent).shiftKey) {\n // if menu is open, navigate to children\n } else {\n this.megaMenuItemKeydown.emit(evt as KeyboardEvent);\n }\n }\n }\n\n private calculateSublistStyle(bottomInfo: number): void {\n if (this.isMobileBreakpoint) {\n const availableHeight = window.innerHeight - bottomInfo - 16;\n this.eclMegaMenuSublist.styleTop = availableHeight;\n }\n }\n\n private calculateWrapperStyle(): void {\n if (this.isMobileBreakpoint) {\n const bottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.wrapperStyleTop = bottomY;\n }\n }\n\n private resetWrapperStyle(): void {\n if (this.isMobileBreakpoint) {\n this.wrapperStyleHeight = null;\n this.wrapperStyleTop = null;\n }\n }\n\n private hidePanels(): void {\n if (this.isMobileBreakpoint) {\n return;\n }\n if (this.eclMegaMenuMega) {\n this.megaMenuMegaStyleOpacity = 0;\n }\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity = 0;\n }\n }\n\n private checkDropdownHeight(): void {\n let infoPanelHeight = 0;\n\n if (!this.isMobileBreakpoint) {\n const heights = [];\n let height = 0;\n let itemsHeight = 0;\n let subItemsHeight = 0;\n let featuredHeight = 0;\n\n if (this.hasContainer) {\n const viewportHeight = window.innerHeight;\n const mainTop = this.mainPanel.nativeElement.getBoundingClientRect().top;\n this.containerStyleHeight = viewportHeight - mainTop;\n } else {\n if (this.eclMegaMenuInfo) {\n infoPanelHeight = this.eclMegaMenuInfo.getInfoPanelScrollHeight() + 16;\n if (this.isLarge) {\n heights.push(infoPanelHeight);\n } else {\n itemsHeight = infoPanelHeight;\n subItemsHeight = infoPanelHeight;\n featuredHeight = infoPanelHeight;\n }\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity = 1;\n }\n\n if (this.eclMegaMenuMega) {\n if (this.eclMegaMenuSublist && this.eclMegaMenuSublist.submenuItems.length > 0) {\n this.eclMegaMenuSublist.submenuItems.forEach((item) => {\n itemsHeight += item.getMegaMenuSubItemHeight();\n });\n heights.push(itemsHeight);\n }\n const expandedSubItem = this.eclMegaMenuSublist.submenuItems.find(item => item.hasChildren && item.isExpanded);\n if (expandedSubItem !== undefined) {\n expandedSubItem.submenu.submenuItems.forEach(item => {\n subItemsHeight += item.getMegaMenuSubItemHeight();\n });\n heights.push(subItemsHeight);\n if (expandedSubItem.eclMegaMenuFeatured) {\n featuredHeight += expandedSubItem.eclMegaMenuFeatured.getEclMegaMenuFeaturedHeight();\n heights.push(featuredHeight);\n }\n }\n\n const maxHeight = Math.max(...heights);\n const containerBounding = this.el.nativeElement.getBoundingClientRect();\n const containerBottom = containerBounding.bottom;\n // By requirements, limit the height to the 70% of the available space.\n const availableHeight = (window.innerHeight - containerBottom) * 0.7;\n\n if (maxHeight > availableHeight) {\n height = availableHeight;\n } else {\n height = maxHeight;\n }\n\n this.wrapperStyleHeight = height;\n if (this.eclMegaMenuMega && this.isLarge) {\n this.megaMenuMegaStyleHeight = height;\n } else if (this.eclMegaMenuMega && this.eclMegaMenuInfo) {\n this.megaMenuMegaStyleHeight = height - infoPanelHeight;\n }\n if (this.eclMegaMenuInfo && this.isLarge) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = height;\n }\n\n if (expandedSubItem !== undefined) {\n if (this.isLarge) {\n expandedSubItem.level2StyleHeight = height;\n } else {\n expandedSubItem.level2StyleHeight = height - infoPanelHeight;\n }\n\n if (expandedSubItem.eclMegaMenuFeatured) {\n if (this.isLarge) {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;\n }\n }\n }\n this.megaMenuMegaStyleOpacity = 1;\n }\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small,'(min-width: 1140px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.breakpoints[Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small];\n this.isLarge = result.breakpoints['(min-width: 1140px)'];\n this.resetWrapperStyle();\n });\n }\n}\n","@if (hasChildren) {\n<button #menuBtn eclButton variant=\"primary\" class=\"ecl-mega-menu__link\" (click)=\"onMegaMenuItemClick()\"\n (keydown)=\"onKeydown($event)\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n <ecl-icon icon=\"arrow-left\" transform=\"flip-horizontal\" size=\"s\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink #menuLink variant=\"standalone\" [href]=\"href\" [target]=\"target\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label}}</span>\n</a>\n} @else {\n<a eclLink #menuLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label}}</span>\n</a>\n}\n\n@if (hasSublist) {\n<div class=\"ecl-mega-menu__wrapper\" [style.height.px]=\"wrapperStyleHeight\" [style.top.px]=\"wrapperStyleTop\">\n <div class=\"ecl-container\">\n <ng-content select=\"[eclMegaMenuInfo]\"></ng-content>\n <div #eclMegaMenuMega class=\"ecl-mega-menu__mega\" [style.height.px]=\"megaMenuMegaStyleHeight\" [style.opacity]=\"megaMenuMegaStyleOpacity\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n </div>\n </div>\n</div>\n}\n\n@if (hasContainer) {\n<div #mainPanel class=\"ecl-mega-menu__mega ecl-mega-menu__mega-container\">\n <div class=\"ecl-container\" [style.height.px]=\"containerStyleHeight\">\n <div class=\"ecl-mega-menu__mega-container-scrollable\">\n <ng-content select=\"[eclMegaMenuContainer]\"></ng-content>\n </div>\n </div>\n</div>\n}","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Component, ContentChildren, DoCheck, ElementRef, EventEmitter, HostBinding, HostListener, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, Renderer2, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLClickOutsideDirective, EclRtlService, EclUserDeviceService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMegaMenuItem } from './models/ecl-mega-menu-item.model';\nimport { EclMegaMenuDataService } from './services';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * The 'eclMegaMenu' is an advanced navigation component designed for complex sites with deep hierarchies.\n * It can provide descriptive text for first level items, accommodate up to three levels of navigation,\n * and additionally allows a featured column that can be used to either promote parent-page specific or site-wide pages,\n * hidden deep into the lower levels of the hierarchy.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'nav[eclMegaMenu]',\n templateUrl: './ecl-mega-menu.component.html',\n imports: [TranslateModule, EclButtonModule, EclIconModule],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n {\n directive: ECLClickOutsideDirective,\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['eclClickOutside'],\n },\n ],\n})\n\nexport class EclMegaMenuComponent extends ECLBaseDirective implements DoCheck, OnDestroy {\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu'),\n this.isTwoPanels ? 'ecl-mega-menu--two-panels' : '',\n this.isOnePanel ? 'ecl-mega-menu--one-panel' : '',\n this.isRtl ? 'ecl-mega-menu--rtl' : '',\n this.isTablet ? 'ecl-mega-menu--forced-mobile' : '',\n this.isStartPanel ? 'ecl-mega-menu--start-panel' : '',\n ].join(' ');\n }\n\n @HostBinding('attr.aria-expanded') isExpanded = false;\n /**\n * The 'role' attribute of the component is set to 'navigation'. should not be changed.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * The event that is emitted, when a menu item is selected.\n */\n @Output() megaMenuItemSelect = new EventEmitter<EclMegaMenuItem>();\n @ContentChildren(forwardRef(() => EclMegaMenuItemComponent), { descendants: true }) menuItems: QueryList<EclMegaMenuItemComponent>;\n\n /**\n * If the menu is in mobile mode.\n */\n isMobileBreakpoint = false;\n /**\n * If the menu is expanded in mobile mode.\n */\n isMobileExpanded = false;\n /**\n * When a menu item is expanded and has only one panel (one sub-level).\n */\n isOnePanel = false;\n /**\n * If the menu is open, when in mobile mode.\n */\n isOpenMobile = false; // used for mobile only\n /**\n * Used in mobile mode - when the start panel is open (i.e. the hamburger button is clicked).\n */\n isStartPanel = false;\n /**\n * If a menu item is expanded and has two panels/levels displayed.\n */\n isTwoPanels = false;\n /**\n * Used to position the overlay, when a menu item is expanded.\n */\n overlayStyleTop: number;\n innerStyleTop: number;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMegaMenuItemComponent>;\n private isRtl = false;\n private isTablet = false;\n private parentHeaderBottomSpaceY: number;\n private differs = inject(IterableDiffers);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private eclRtlService = inject(EclRtlService);\n private eclUserDeviceService = inject(EclUserDeviceService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.handleRtlChangeState();\n this.checkIsTabletDevice();\n this.subscribeToEvents();\n });\n }\n\n ngDoCheck(): void {\n // For each added menu item - subscribe to item events.\n const diff = this.differ.diff(this.menuItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectMegaMenuItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When clicking outside the menu - close any expanded item.\n */\n @HostListener('eclClickOutside')\n onClickOutsideMegaMenu(): void {\n if (this.isExpanded) {\n this.closeMenuAndAnyOpenSubMenu();\n }\n }\n\n onMegaMenuMobileOpen(): void {\n if (this.isOpenMobile) {\n this.onMegaMenuMobileClose();\n } else {\n this.disableScroll();\n this.isExpanded = true;\n this.isOnePanel = false;\n this.isTwoPanels = false;\n\n if (this.isMobileBreakpoint) {\n this.isStartPanel = true;\n this.isMobileExpanded = true;\n }\n this.isOpenMobile = true;\n\n this.eclHeaderMenuComunicationService.updateOpen(true);\n\n // Focus first element\n if (this.menuItems.length > 0) {\n this.menuItems.first.onFocus();\n }\n }\n }\n\n onMegaMenuMobileClose(): void {\n this.enableScroll();\n this.collapseMenu();\n\n if (this.isMobileBreakpoint) {\n this.isStartPanel = false;\n this.isMobileExpanded = false;\n }\n this.isOpenMobile = false;\n }\n\n /**\n * Used for mobile menu - when user clicks on 'Back' button. Returns to the previous state.\n */\n onMegaMenuBack(): void {\n if (this.isOnePanel) {\n this.onMegaMenuBackToStartPanel();\n } else if (this.isTwoPanels) {\n this.onMegaMenuBackToOnePanel();\n }\n }\n\n positionMenuOverlay(parentHeaderBottomSpaceY): void {\n this.parentHeaderBottomSpaceY = parentHeaderBottomSpaceY;\n if (this.isMobileBreakpoint && parentHeaderBottomSpaceY) {\n this.overlayStyleTop = parentHeaderBottomSpaceY;\n this.innerStyleTop = parentHeaderBottomSpaceY;\n } else {\n if (this.parentHeaderBottomSpaceY) {\n this.overlayStyleTop = parentHeaderBottomSpaceY;\n } else {\n const menuBottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.overlayStyleTop = menuBottomY;\n }\n }\n }\n\n private onMegaMenuBackToOnePanel(): void {\n\n this.isStartPanel = false;\n this.isTwoPanels = false;\n this.isOnePanel = true;\n const currentItem = this.menuItems.find(item => item.isExpanded);\n const currentSubItem = currentItem.eclMegaMenuSublist.submenuItems.find(item => item.isExpanded);\n if (this.isMobileBreakpoint) {\n currentItem.eclMegaMenuSublist.submenuItems.filter(item => !item.isExpanded).forEach(el => {\n el.onShow();\n });\n }\n currentSubItem.isCurrent = false;\n currentSubItem.isExpanded = false;\n }\n\n private onMegaMenuBackToStartPanel(): void {\n this.isOnePanel = false;\n this.isStartPanel = true;\n const currentItem = this.menuItems.find(item => item.isExpanded);\n currentItem.isCurrent = false;\n currentItem.isExpanded = false;\n this.eclHeaderMenuComunicationService.updateExpanded(false);\n }\n\n private subscribeToEvents(): void {\n\n this.eclMegaMenuDataService.eclSubItemExpanded$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {\n this.isTwoPanels = isExpanded;\n this.isOnePanel = !isExpanded;\n this.isStartPanel = false;\n });\n\n this.eclMegaMenuDataService.eclSubItemClicked$.pipe(takeUntil(this.destroy$)).subscribe(item => {\n this.onSubMenuItemClicked(item);\n this.megaMenuItemSelect.emit(item);\n });\n\n this.eclMegaMenuDataService.eclSubItemEscape$.pipe(takeUntil(this.destroy$)).subscribe(item => {\n this.closeMenuAndAnyOpenSubMenu();\n });\n }\n\n private connectMegaMenuItemEvents(item: EclMegaMenuItemComponent): void {\n item.megaMenuItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onMegaMenuItemClicked(item);\n });\n\n item.megaMenuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt: KeyboardEvent) => {\n this.onMegaMenuItemKeydown(item, evt);\n });\n }\n\n private onMegaMenuItemClicked(item: EclMegaMenuItemComponent): void {\n this.menuItems.filter(megaItem => megaItem !== item).forEach(item => item.onMegaMenuItemCollapse());\n if (item.hasChildren) {\n if (item.isExpanded) {\n if (this.isMobileBreakpoint) {\n this.isOnePanel = true;\n this.isTwoPanels = false;\n this.isStartPanel = false;\n } else {\n if (item.eclMegaMenuSublist?.submenuItems.first.hasChildren) {\n this.isOnePanel = false;\n this.isTwoPanels = true;\n } else {\n this.isOnePanel = true;\n this.isTwoPanels = false;\n }\n }\n this.positionMenuOverlay(this.parentHeaderBottomSpaceY);\n this.isExpanded = true;\n this.disableScroll();\n } else {\n this.collapseMenu();\n }\n } else {\n this.collapseMenu();\n }\n this.megaMenuItemSelect.emit(item);\n }\n\n private onMegaMenuItemKeydown(item: EclMegaMenuItemComponent, evt: KeyboardEvent): void {\n\n const itemIndex = this.menuItems.toArray().findIndex(elem => elem === item);\n switch (evt.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ESCAPE: {\n this.closeMenuAndAnyOpenSubMenu();\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private onSubMenuItemClicked(item: EclMegaMenuItem): void {\n if (!item.hasChildren) {\n this.closeMenuAndAnyOpenSubMenu();\n }\n }\n\n private closeMenuAndAnyOpenSubMenu(): void {\n if (this.isExpanded) {\n const expandedItem = this.menuItems.find(item => item.isExpanded);\n if (expandedItem !== undefined) {\n expandedItem.onMegaMenuItemCollapse();\n }\n this.collapseMenu();\n }\n }\n\n private collapseMenu(): void {\n this.isExpanded = false;\n this.isTwoPanels = false;\n this.isOnePanel = false;\n this.enableScroll();\n this.eclHeaderMenuComunicationService.updateExpanded(false);\n }\n\n private focusOnPrevSibling(index: number): void {\n if (index > 0) {\n this.menuItems.get(index-1).onFocus();\n }\n }\n\n private focusOnNextSibling(index: number): void {\n if (index < this.menuItems.length - 1) {\n this.menuItems.get(index+1).onFocus();\n }\n }\n\n private checkIsTabletDevice(): void {\n const userAgent = navigator.userAgent.toLowerCase();\n this.isTablet = this.eclUserDeviceService.isTabletDevice(userAgent);\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 996px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState !== undefined) {\n this.isRtl = rtlState;\n }\n });\n }\n\n private disableScroll(): void {\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;\n this.renderer.addClass(document.body, 'ecl-mega-menu-prevent-scroll');\n }\n\n private enableScroll(): void {\n this.renderer.removeClass(document.body, 'ecl-mega-menu-prevent-scroll');\n }\n}\n","<div class=\"ecl-mega-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-mega-menu__container\">\n <button class=\"ecl-button ecl-button--tertiary ecl-mega-menu__open ecl-button--icon-only\"\n type=\"button\" aria-expanded=\"isMobileExpanded\" (click)=\"onMegaMenuMobileOpen()\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n @if (isOpenMobile) {\n <span class=\"ecl-button__label\">{{ 'ecl.common.CLOSE' | translate }}</span>\n } @else {\n <span class=\"ecl-button__label\">{{ 'ecl.menu.MENU' | translate }}</span>\n }\n </button>\n <section class=\"ecl-mega-menu__inner\" [class.ecl-mega-menu__inner--expanded]=\"!isStartPanel && isExpanded\"\n aria-label=\"ecl mega menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-mega-menu__inner-header\">\n <button eclButton variant=\"ghost\" class=\"ecl-mega-menu__back\" type=\"submit\" (click)=\"onMegaMenuBack()\">\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>Back</span>\n </button>\n </header>\n <ng-content></ng-content>\n </section>\n</div>","import { NgModule } from '@angular/core';\nimport { EclMegaMenuContainerDirective } from './directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuFeaturedListDirective, EclMegaMenuFeaturedListItemDirective } from './directives/ecl-mega-menu-featured-list.directive';\nimport { EclMegaMenuFeaturedImageDirective, EclMegaMenuFeaturedPictureDirective } from './directives/ecl-mega-menu-featured-picture.directive';\nimport { EclMegaMenuListDirective, EclMegaMenuSpacerDirective, EclMegaMenuSublistDirective } from './directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclMegaMenuInfoComponent } from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclMegaMenuSubitemComponent } from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nimport { EclMegaMenuComponent } from './ecl-mega-menu.component';\n\nconst COMPONENTS = [\n EclMegaMenuComponent,\n EclMegaMenuItemComponent,\n EclMegaMenuSubitemComponent,\n EclMegaMenuInfoComponent,\n EclMegaMenuFeaturedComponent,\n EclMegaMenuFeaturedPictureDirective,\n EclMegaMenuFeaturedImageDirective,\n EclMegaMenuFeaturedListDirective,\n EclMegaMenuFeaturedListItemDirective,\n EclMegaMenuListDirective,\n EclMegaMenuSublistDirective,\n EclMegaMenuContainerDirective,\n EclMegaMenuSpacerDirective,\n];\n/**\n * Module that provides the EclMegaMenuComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_MEGA_MENU} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclMegaMenuModule {}\n","import { EclMegaMenuContainerDirective } from './directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuFeaturedListDirective, EclMegaMenuFeaturedListItemDirective } from './directives/ecl-mega-menu-featured-list.directive';\nimport { EclMegaMenuFeaturedImageDirective, EclMegaMenuFeaturedPictureDirective } from './directives/ecl-mega-menu-featured-picture.directive';\nimport { EclMegaMenuListDirective, EclMegaMenuSpacerDirective, EclMegaMenuSublistDirective } from './directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclMegaMenuInfoComponent } from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclMegaMenuSubitemComponent } from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nimport { EclMegaMenuComponent } from './ecl-mega-menu.component';\n\nexport * from './ecl-mega-menu.module';\nexport * from './ecl-mega-menu.component';\nexport * from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nexport * from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nexport * from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nexport * from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nexport * from './directives/ecl-mega-menu-featured-list.directive';\nexport * from './directives/ecl-mega-menu-featured-picture.directive';\nexport * from './directives/ecl-mega-menu-list.directive';\nexport * from './directives/ecl-mega-menu-container.directive';\nexport * from './models/ecl-mega-menu-item.model';\nexport * from './services/index';\n\nexport const EUI_ECL_MEGA_MENU = [\n EclMegaMenuComponent,\n EclMegaMenuItemComponent,\n EclMegaMenuSubitemComponent,\n EclMegaMenuInfoComponent,\n EclMegaMenuFeaturedComponent,\n EclMegaMenuFeaturedPictureDirective,\n EclMegaMenuFeaturedImageDirective,\n EclMegaMenuFeaturedListDirective,\n EclMegaMenuFeaturedListItemDirective,\n EclMegaMenuListDirective,\n EclMegaMenuSublistDirective,\n EclMegaMenuContainerDirective,\n EclMegaMenuSpacerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i4"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-mega-menu.mjs","sources":["../../components/ecl-mega-menu/directives/ecl-mega-menu-container.directive.ts","../../components/ecl-mega-menu/directives/ecl-mega-menu-featured-list.directive.ts","../../components/ecl-mega-menu/directives/ecl-mega-menu-featured-picture.directive.ts","../../components/ecl-mega-menu/services/ecl-mega-menu-data.service.ts","../../components/ecl-mega-menu/services/ecl-mega-menu.service.ts","../../components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-featured/ecl-mega-menu-featured.component.html","../../components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-subitem/ecl-mega-menu-subitem.component.html","../../components/ecl-mega-menu/directives/ecl-mega-menu-list.directive.ts","../../components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-info/ecl-mega-menu-info.component.html","../../components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.ts","../../components/ecl-mega-menu/ecl-mega-menu-item/ecl-mega-menu-item.component.html","../../components/ecl-mega-menu/ecl-mega-menu.component.ts","../../components/ecl-mega-menu/ecl-mega-menu.component.html","../../components/ecl-mega-menu/ecl-mega-menu.module.ts","../../components/ecl-mega-menu/index.ts","../../components/ecl-mega-menu/eui-ecl-components-ecl-mega-menu.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu container.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuContainer]',\n})\n\nexport class EclMegaMenuContainerDirective extends ECLBaseDirective {\n\n @HostBinding('class.ecl') hasClass = true;\n}\n","import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu featured list.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedList]',\n})\nexport class EclMegaMenuFeaturedListDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list') cmpClass = true;\n}\n\n/**\n * Directive that adds specific class to a mega-menu featured list item.\n * Also has method that returns item height.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedListItem]',\n})\nexport class EclMegaMenuFeaturedListItemDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-list__item') cmpClass = true;\n private el = inject(ElementRef);\n\n getEclMegaMenuFeaturedItemHeight(): number {\n return this.el.nativeElement.scrollHeight;\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that adds specific class to the mega-menu featured picture.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedPicture]',\n})\nexport class EclMegaMenuFeaturedPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-mega-menu__featured-picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive that adds specific class to the mega-menu featured image.\n */\n@Directive({\n selector: '[eclMegaMenuFeaturedImage]',\n})\nexport class EclMegaMenuFeaturedImageDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__featured-image') cmpClass = true;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { EclMegaMenuItem } from '../models/ecl-mega-menu-item.model';\n\n@Injectable({ providedIn: 'root' })\nexport class EclMegaMenuDataService {\n\n\tpublic eclMegaMenuInfoBottomYSubject$: Observable<number>;\n\tpublic eclSubItemExpanded$: Observable<boolean>;\n\tpublic eclSubItemClicked$: Observable<EclMegaMenuItem>;\n\tpublic eclSubItemEscape$: Observable<boolean>;\n\n\tprivate eclMegaMenuInfoBottomYSubject: Subject<number> = new Subject<number>();\n\tprivate eclSubItemExpanded: Subject<boolean> = new Subject<boolean>();\n\tprivate eclSubItemClicked: Subject<EclMegaMenuItem> = new Subject<EclMegaMenuItem>();\n\tprivate eclSubItemEscape: Subject<boolean> = new Subject<boolean>();\n\n\tconstructor() {\n\t\tthis.eclMegaMenuInfoBottomYSubject$ = this.eclMegaMenuInfoBottomYSubject.asObservable();\n this.eclSubItemExpanded$ = this.eclSubItemExpanded.asObservable();\n\t\tthis.eclSubItemClicked$ = this.eclSubItemClicked.asObservable();\n\t\tthis.eclSubItemEscape$ = this.eclSubItemEscape.asObservable();\n\t}\n\n\t/**\n\t * Used to synchronize size of the info panel and sublist.\n\t */\n\tupdateEclMegaMenuInfoSize(value: number): void {\n\t\tthis.eclMegaMenuInfoBottomYSubject.next(value);\n\t}\n\n eclSubItemToggle(isExpanded: boolean): void {\n\t\tthis.eclSubItemExpanded.next(isExpanded);\n\t}\n\n\teclSubItemClick(item: EclMegaMenuItem): void {\n\t\tthis.eclSubItemClicked.next(item);\n\t}\n\n\teclSubItemEscapeEvent(value: boolean): void {\n\t\tthis.eclSubItemEscape.next(value);\n\t}\n}","import { Injectable, Renderer2, RendererFactory2, inject } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class EclMegaMenuService {\n private renderer: Renderer2;\n\n constructor() {\n const rendererFactory = inject(RendererFactory2);\n\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n setExtraAttributesForLink(link: HTMLElement, linkExtraAttributes: { [key: string]: string }): void {\n if (linkExtraAttributes) {\n Object.keys(linkExtraAttributes).forEach((key) => {\n if (key !== 'href' && key !== 'routerLink') {\n this.renderer.setAttribute(link, key, linkExtraAttributes[key]);\n }\n });\n }\n }\n}","import { Component, ElementRef, HostBinding, Input, ContentChildren, forwardRef, QueryList, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMegaMenuFeaturedListItemDirective } from '../directives/ecl-mega-menu-featured-list.directive';\n\n/**\n * This component represents the featured items panel.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuFeatured]',\n templateUrl: './ecl-mega-menu-featured.component.html',\n})\n\nexport class EclMegaMenuFeaturedComponent extends ECLBaseDirective {\n\n @HostBinding('class.ecl-mega-menu__featured') cmpClass = true;\n @HostBinding('style.height.px') eclMegaMenuFeaturedStyleHeight: number | null = null;\n @Input() title: string;\n @Input() titleId: string;\n\n @ContentChildren(forwardRef(() => EclMegaMenuFeaturedListItemDirective), { descendants: true }) listItems: QueryList<EclMegaMenuFeaturedListItemDirective>;\n private el = inject(ElementRef);\n\n /**\n * Calculates and returns the height of the component. The total height of all the list items.\n * @returns the height of the component\n */\n getEclMegaMenuFeaturedHeight(): number {\n let result = 0;\n this.listItems.forEach(it => result += it.getEclMegaMenuFeaturedItemHeight());\n return result;\n }\n}\n","<div class=\"ecl-mega-menu__featured-scrollable\">\n <ng-content select=\"[eclMegaMenuFeaturedPicture]\"></ng-content>\n @if(title) {\n <span class=\"ecl-mega-menu__featured-title\" id=\"{{titleId}}\">{{ title }}</span>\n }\n <ng-content select=\"[eclMegaMenuFeaturedList]\"></ng-content>\n</div>","import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, afterNextRender, booleanAttribute, forwardRef, inject } from '@angular/core';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Params, QueryParamsHandling, RouterModule } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective, EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclButtonComponent, EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclMegaMenuItem } from '../models/ecl-mega-menu-item.model';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuDataService } from '../services';\nimport { EclMegaMenuService } from '../services';\nimport { EclMegaMenuFeaturedComponent } from '../ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\n\n/**\n * This component represents a sub-item in the mega-menu component. Applies styling and functionality.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[eclMegaMenuSubitem]',\n templateUrl: './ecl-mega-menu-subitem.component.html',\n imports: [NgTemplateOutlet, RouterModule, EclButtonModule, EclIconModule, EclLinkModule],\n})\n\nexport class EclMegaMenuSubitemComponent extends ECLBaseDirective implements EclMegaMenuItem {\n\n @HostBinding('attr.aria-expanded') isExpanded = false;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__subitem'),\n this.isCurrent ? 'ecl-mega-menu__subitem--current' : '',\n this.isExpanded ? 'ecl-mega-menu__subitem--expanded' : '',\n this.isSeeAll ? 'ecl-mega-menu__see-all' : '',\n this.isParentLink ? 'ecl-mega-menu__parent-link' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Sets id for the button element.\n */\n @Input() buttonId: string;\n @Input() label = '';\n /**\n * If the link redirects to external page. Adds an 'external' icon.\n */\n @Input({ transform: booleanAttribute }) isExternal = false;\n /**\n * If the link is external, this will be the title of the external icon.\n */\n @Input() externalIconTitle: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n /**\n * Used for the 'View all' link.\n */\n @Input({ transform: booleanAttribute }) isSeeAll = false;\n /**\n * Adds custom attributes to an anchor element.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n /**\n * Wrapper div element of the second level sub-items.\n */\n @ViewChild('megaMenuLevel2') megaMenuLevel2: ElementRef;\n /**\n * The link element, if it exists. Item can have either link or button.\n */\n @ViewChild(EclLinkDirective) subMenuItemLink: EclLinkDirective;\n /**\n * The button element, if it exists. Item can have either link or button.\n */\n @ViewChild('subMenuItemBtn') subMenuItemBtn: EclButtonComponent;\n\n /**\n * The directive of the submenu lits.\n */\n @ContentChild(forwardRef(() => EclMegaMenuSublistDirective)) submenu: EclMegaMenuSublistDirective;\n /**\n * The component for the featured items.\n */\n @ContentChild(forwardRef(() => EclMegaMenuFeaturedComponent)) eclMegaMenuFeatured: EclMegaMenuFeaturedComponent;\n\n @Output() megaMenuSubItemClicked = new EventEmitter();\n @Output() megaMenuSubItemKeydown = new EventEmitter();\n\n isCurrent = false;\n isMobileBreakpoint = false;\n // Not used. To be removed in v20.\n labelId: string;\n /**\n * Used to set the height of the second level subitems container.\n */\n level2StyleHeight: number | null = null;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isParentLink = false;\n @HostBinding('style.display') private display = '';\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private eclMegaMenuService = inject(EclMegaMenuService);\n\n constructor() {\n super();\n const eclMegaMenuService = this.eclMegaMenuService;\n\n afterNextRender(() => {\n if (this.subMenuItemLink) {\n eclMegaMenuService.setExtraAttributesForLink(this.subMenuItemLink.el.nativeElement, this.linkExtraAttributes);\n }\n this.observeBreakpointChanges();\n });\n }\n\n get hasChildren(): boolean {\n return !!this.submenu;\n }\n\n /**\n * Sets focus on either link or button element.\n */\n onFocus(): void{\n if (this.subMenuItemLink) {\n this.subMenuItemLink.onFocus();\n } else if (this.subMenuItemBtn) {\n this.subMenuItemBtn.onFocus();\n }\n }\n\n onHide(): void {\n this.display = 'none';\n }\n\n onShow(): void {\n this.display = '';\n }\n\n getMegaMenuSubItemHeight(): number {\n return this.el.nativeElement.getBoundingClientRect().height;\n }\n\n /**\n * Show or hide the subitems.\n */\n onButtonClick(): void {\n this.isCurrent = !this.isCurrent;\n this.isExpanded = !this.isExpanded;\n this.eclMegaMenuDataService.eclSubItemToggle(this.isExpanded);\n this.eclMegaMenuDataService.eclSubItemClick(this);\n if (this.isMobileBreakpoint) {\n this.isParentLink = true;\n setTimeout(() => this.calculateLevel2Styles());\n }\n this.megaMenuSubItemClicked.emit();\n }\n\n /**\n * If link is clicked -> emit event and close all opened menus and submenus.\n */\n onLinkClick(): void {\n this.eclMegaMenuDataService.eclSubItemClick(this);\n this.megaMenuSubItemClicked.emit();\n }\n\n onKeydown(evt: Event): void {\n if (evt instanceof KeyboardEvent) {\n if (!((evt as KeyboardEvent).key === KeyCode.TAB)) {\n if ((evt as KeyboardEvent).key === KeyCode.ESCAPE) {\n this.eclMegaMenuDataService.eclSubItemEscapeEvent(true);\n } else {\n this.megaMenuSubItemKeydown.emit(evt as KeyboardEvent);\n }\n }\n }\n }\n\n onSubMenuItemCollapse(): void {\n if (this.isExpanded) {\n this.eclMegaMenuDataService.eclSubItemToggle(false);\n this.isCurrent = false;\n this.isExpanded = false;\n this.isParentLink = false;\n }\n }\n\n onSubMenuItemExpand(): void {\n this.isCurrent = true;\n this.isExpanded = true;\n this.eclMegaMenuDataService.eclSubItemToggle(this.isExpanded);\n }\n\n private calculateLevel2Styles(): void {\n if (this.megaMenuLevel2) {\n const subMegaRect = this.megaMenuLevel2.nativeElement.getBoundingClientRect();\n const subMegaTop = subMegaRect.top;\n const availableHeight = window.innerHeight - subMegaTop;\n this.level2StyleHeight = availableHeight;\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","@if (!isSeeAll) {\n@if (hasChildren) {\n<button eclButton #subMenuItemBtn variant=\"primary\" class=\"ecl-mega-menu__sublink\" [attr.aria-expanded]=\"isExpanded\"\n (click)=\"onButtonClick()\" (keydown)=\"onKeydown($event)\" id=\"{{buttonId}}\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink variant=\"standalone\" [href]=\"href\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n} @else {\n<a eclLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\" class=\"ecl-mega-menu__sublink\"\n (keydown)=\"onKeydown($event)\" (click)=\"onLinkClick()\">\n <span eclLinkLabel>{{label}}</span>\n <ng-container *ngTemplateOutlet=\"eclIcon\"></ng-container>\n</a>\n}\n\n@if (hasChildren) {\n<div class=\"ecl-mega-menu__mega ecl-mega-menu__mega--level-2\" #megaMenuLevel2\n [style.height.px]=\"level2StyleHeight\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n <ng-content select=\"[eclMegaMenuFeatured]\"></ng-content>\n</div>\n}\n} @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #eclIcon>\n @if (isExternal) {\n <ecl-icon icon=\"external\" size=\"2xs\" ariaHidden=\"false\" role=\"img\">\n <title>Links to an external domain</title>\n </ecl-icon>\n }\n <!-- <ng-content select=\"ecl-icon\"></ng-content> -->\n</ng-template>","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { ContentChildren, Directive, DoCheck, ElementRef, HostBinding, IterableDiffer, IterableDiffers, OnDestroy, QueryList, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective, KeyCode } from '@eui/ecl/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclMegaMenuSubitemComponent } from '../ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\n\n/**\n * Directive that adds specific class to the mega-menu list.\n */\n@Directive({\n selector: 'ul[eclMegaMenuList]',\n})\nexport class EclMegaMenuListDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__list') cmpClass = true;\n}\n\n/**\n * Directive that adds specific class to the mega-menu spacer.\n */\n@Directive({\n selector: 'ul[eclMegaMenuSpacer]',\n})\nexport class EclMegaMenuSpacerDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-mega-menu__spacer') cmpClass = true;\n}\n\n/**\n * Directive that adds specific classes and functionality to the mega-menu sublist.\n */\n@Directive({\n selector: 'ul[eclMegaMenuSublist]',\n})\nexport class EclMegaMenuSublistDirective extends ECLBaseDirective implements OnDestroy, DoCheck {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-mega-menu__sublist') cmpClass = true;\n @HostBinding('class.ecl-mega-menu__sublist--scrollable') isScrollable = false;\n @HostBinding('style.top.px') styleTop: number | null = null;\n\n @ContentChildren(forwardRef(() => EclMegaMenuSubitemComponent)) submenuItems: QueryList<EclMegaMenuSubitemComponent>;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMegaMenuSubitemComponent>;\n private isMobileBreakpoint = false;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private differs = inject(IterableDiffers);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n });\n }\n\n ngDoCheck(): void {\n // When a new item is added -> subscribe to item's events.\n const diff = this.differ.diff(this.submenuItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectMegaMenuItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When parent mega-menu item is clicked.\n * @param isExpanded - 'true', if parent item is expanded, 'false' if item is collapsed.\n */\n onParentMegaMenuItemClick(isExpanded: boolean): void {\n if (isExpanded) {\n // If mega-menu item is expanded -> find the first mega-menu list child (i.e. sub item) and expand it's children.\n if (!this.isMobileBreakpoint) {\n const itemWithChildren = this.submenuItems.find(item => item.hasChildren);\n itemWithChildren?.onSubMenuItemExpand();\n }\n } else {\n this.submenuItems.forEach(item => {\n if (item.isExpanded) {\n item.onSubMenuItemCollapse();\n }\n });\n }\n }\n\n private connectMegaMenuItemEvents(item: EclMegaMenuSubitemComponent): void {\n item.megaMenuSubItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onMegaMenuSubItemClicked(item);\n });\n\n item.megaMenuSubItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onMegaMenuSubItemKeydown(item, evt);\n });\n }\n\n private onMegaMenuSubItemClicked(item: EclMegaMenuSubitemComponent): void {\n this.submenuItems.filter(subItem => subItem !== item).forEach(el => {\n el.onSubMenuItemCollapse();\n if (this.isMobileBreakpoint && item.hasChildren) {\n el.onHide();\n }\n });\n }\n\n private onMegaMenuSubItemKeydown(item: EclMegaMenuSubitemComponent, evt: KeyboardEvent): void {\n\n const itemIndex = this.submenuItems.toArray().findIndex(elem => elem === item);\n switch (evt.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private focusOnPrevSibling(index: number): void {\n if (index > 0) {\n this.submenuItems.get(index-1).onFocus();\n }\n }\n\n private focusOnNextSibling(index: number): void {\n if (index < this.submenuItems.length - 1) {\n this.submenuItems.get(index+1).onFocus();\n }\n }\n\n private resetStyles(): void {\n if (this.isMobileBreakpoint) {\n this.isScrollable = true;\n } else {\n this.isScrollable = false;\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 996px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n setTimeout(() => this.resetStyles());\n });\n }\n}\n","import { AfterViewInit, Component, ContentChild, ElementRef, HostBinding, Input, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclMegaMenuDataService } from '../services';\n\n/**\n * Component for displaying some custom information for the current menu item.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclMegaMenuInfo]',\n templateUrl: './ecl-mega-menu-info.component.html',\n})\n\nexport class EclMegaMenuInfoComponent extends ECLBaseDirective implements AfterViewInit {\n el = inject(ElementRef);\n\n /**\n * Applies custom styles for info component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__info'),\n this.linkItem ? 'ecl-mega-menu__info--has-link' : '',\n ]\n .join(' ')\n .trim();\n }\n /**\n * Sets the height of the component.\n */\n @HostBinding('style.height.px') eclMegaMenuInfoStyleHeight: number | null = null;\n /**\n * Sets the opacity of the component.\n */\n @HostBinding('style.opacity') eclMegaMenuInfoStyleOpacity: number | null = null;\n\n @Input() title: string;\n\n /**\n * When the info panel contains link.\n */\n @ContentChild(forwardRef(() => EclLinkDirective)) linkItem: EclLinkDirective;\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n\n ngAfterViewInit(): void {\n // Sets class of the sub link, if any.\n if (this.linkItem) {\n setTimeout(() => this.linkItem.class = 'ecl-mega-menu__info-link');\n }\n // Emits the bottom value of the element. Needed to calculate the size of the sublist. (for the same parent menu item)\n this.publishSize();\n }\n\n /**\n * Used to calculate the height of the parent element.\n * @returns the height of the component.\n */\n getInfoPanelScrollHeight() : number {\n return this.el.nativeElement.scrollHeight;\n }\n\n /**\n * Used to calulate the size of the info panel.\n */\n private publishSize(): void {\n const bottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuDataService.updateEclMegaMenuInfoSize(bottomY);\n }\n}\n","<span class=\"ecl-mega-menu__info-title\">{{ title }}</span>\n<div class=\"ecl-mega-menu__info-scrollable\">\n <div class=\"ecl-mega-menu__info-content\"><ng-content></ng-content>\n </div>\n</div>","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Component, ContentChild, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, Output, Renderer2, ViewChild, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { Params, QueryParamsHandling, RouterModule } from '@angular/router';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclLinkDirective, EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclButtonComponent, EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclMegaMenuService } from '../services';\nimport { EclMegaMenuDataService } from '../services';\nimport { EclMegaMenuContainerDirective } from '../directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuSublistDirective } from '../directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuInfoComponent } from '../ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\n\n/**\n * This component represents a mega menu item. Adds functionality and styling, according to ECL standards.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'li[eclMegaMenuItem]',\n templateUrl: './ecl-mega-menu-item.component.html',\n imports: [RouterModule, EclButtonModule, EclIconModule, EclLinkModule],\n})\n\nexport class EclMegaMenuItemComponent extends ECLBaseDirective implements OnDestroy {\n el = inject(ElementRef);\n\n /**\n * Returns current menu item classes, depending on item's state (it's properties' values).\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu__item'),\n this.eclMegaMenuSublist ? 'ecl-mega-menu__item--has-children' : '',\n this.eclMegaMenuContainer ? 'ecl-mega-menu__item--has-container' : '',\n this.isCurrent ? 'ecl-mega-menu__item--current' : '',\n this.isExpanded ? 'ecl-mega-menu__item--expanded' : '',\n ]\n .join(' ')\n .trim();\n }\n\n @HostBinding('attr.aria-expanded') isExpanded = false;\n @HostBinding('attr.aria-haspopup') hasPopup = this.hasChildren ? true : null;\n\n @Input() label: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n @Input() queryParams: Params | null = null;\n @Input() queryParamsHandling: QueryParamsHandling = null;\n @Input() href = '';\n @Input() target = '';\n /**\n * Used in case user wants to set some custom attributes for the anchr tag.\n */\n @Input() linkExtraAttributes: { [key: string]: string };\n\n @Output() megaMenuItemClicked = new EventEmitter();\n @Output() megaMenuItemKeydown = new EventEmitter<KeyboardEvent>();\n /**\n * The wrapper around the subitems, if any.\n */\n @ViewChild('eclMegaMenuMega') eclMegaMenuMega: ElementRef;\n /**\n * This elemend hold some extra content, different from subitems. For example just some text or some custom links, etc.\n */\n @ViewChild('mainPanel') mainPanel: ElementRef;\n /**\n * Actual link of the menu item. If the menu has no children, but redirects/loads another page.\n */\n @ViewChild(EclLinkDirective) menuLink: EclLinkDirective;\n /**\n * Element, tat is rendered if the menu item has children.\n */\n @ViewChild('menuBtn') menuBtn: EclButtonComponent;\n /**\n * Element, that would contain some info about the current item or it's children. First in the container.\n */\n @ContentChild(forwardRef(() => EclMegaMenuInfoComponent)) eclMegaMenuInfo: EclMegaMenuInfoComponent;\n /**\n * Element, that holds the sub items of the current menu items.\n */\n @ContentChild(forwardRef(() => EclMegaMenuSublistDirective)) eclMegaMenuSublist: EclMegaMenuSublistDirective;\n /**\n * Component, that consist of some custom info, text or whatever. When the menu item has no children, but still some\n * sub container is displayed.\n */\n @ContentChild(forwardRef(() => EclMegaMenuContainerDirective)) eclMegaMenuContainer: EclMegaMenuContainerDirective;\n\n containerStyleHeight: number | null = null;\n isCurrent = false;\n isMobileBreakpoint = false;\n megaMenuMegaStyleHeight: number | null = null;\n megaMenuMegaStyleOpacity: number | null = null;\n wrapperStyleHeight: number | null = null;\n wrapperStyleTop: number | null = null;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isLarge = false;\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclMegaMenuService = inject(EclMegaMenuService);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n const eclMegaMenuDataService = this.eclMegaMenuDataService;\n const eclMegaMenuService = this.eclMegaMenuService;\n\n afterNextRender(() => {\n eclMegaMenuDataService.eclMegaMenuInfoBottomYSubject$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n this.calculateSublistStyle(value);\n });\n if (this.menuLink) {\n eclMegaMenuService.setExtraAttributesForLink(this.menuLink.el.nativeElement, this.linkExtraAttributes);\n }\n this.observeBreakpointChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get hasChildren(): boolean {\n return !!this.eclMegaMenuSublist || !!this.eclMegaMenuContainer;\n }\n\n get hasSublist(): boolean {\n return !!this.eclMegaMenuSublist;\n }\n\n get hasContainer(): boolean {\n return !!this.eclMegaMenuContainer;\n }\n\n /**\n * Set the focus on the sub element - link or button.\n */\n onFocus(): void{\n if (this.menuLink) {\n this.menuLink.onFocus();\n } else if (this.menuBtn) {\n this.menuBtn.onFocus();\n }\n }\n\n /**\n * On resize - calculate the size of the dropdown and wrapper (if item is expanded).\n */\n @HostListener('window:resize')\n onResize(): void {\n setTimeout(() => {\n if (this.isExpanded) {\n this.checkDropdownHeight();\n this.calculateWrapperStyle();\n }\n });\n }\n\n /**\n * Manage styling and functionality for children and siblings, when item is clicked.\n */\n onMegaMenuItemClick(): void {\n\n if (this.hasChildren) {\n this.isCurrent = !this.isCurrent;\n this.isExpanded = !this.isExpanded;\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.onParentMegaMenuItemClick(this.isExpanded);\n }\n if (this.isExpanded) {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n this.hidePanels();\n setTimeout(() => {\n this.checkDropdownHeight();\n });\n } else {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n }\n } else {\n this.eclHeaderMenuComunicationService.updateExpanded(this.isExpanded);\n }\n this.megaMenuItemClicked.emit();\n }\n\n /**\n * Manage styling and functionality when item is collapsed.\n */\n onMegaMenuItemCollapse(): void {\n this.isCurrent = false;\n this.isExpanded = false;\n if (this.eclMegaMenuSublist) {\n this.eclMegaMenuSublist.onParentMegaMenuItemClick(this.isExpanded);\n }\n }\n\n onKeydown(evt: Event): void {\n if (evt instanceof KeyboardEvent) {\n if ((evt as KeyboardEvent).key === KeyCode.TAB && !(evt as KeyboardEvent).shiftKey) {\n // if menu is open, navigate to children\n } else {\n this.megaMenuItemKeydown.emit(evt as KeyboardEvent);\n }\n }\n }\n\n private calculateSublistStyle(bottomInfo: number): void {\n if (this.isMobileBreakpoint) {\n const availableHeight = window.innerHeight - bottomInfo - 16;\n this.eclMegaMenuSublist.styleTop = availableHeight;\n }\n }\n\n private calculateWrapperStyle(): void {\n if (this.isMobileBreakpoint) {\n const bottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.wrapperStyleTop = bottomY;\n }\n }\n\n private resetWrapperStyle(): void {\n if (this.isMobileBreakpoint) {\n this.wrapperStyleHeight = null;\n this.wrapperStyleTop = null;\n }\n }\n\n private hidePanels(): void {\n if (this.isMobileBreakpoint) {\n return;\n }\n if (this.eclMegaMenuMega) {\n this.megaMenuMegaStyleOpacity = 0;\n }\n if (this.eclMegaMenuInfo) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity = 0;\n }\n }\n\n private checkDropdownHeight(): void {\n let infoPanelHeight = 0;\n\n if (!this.isMobileBreakpoint) {\n const heights = [];\n let height = 0;\n let itemsHeight = 0;\n let subItemsHeight = 0;\n let featuredHeight = 0;\n\n if (this.hasContainer) {\n const viewportHeight = window.innerHeight;\n const mainTop = this.mainPanel.nativeElement.getBoundingClientRect().top;\n this.containerStyleHeight = viewportHeight - mainTop;\n } else {\n if (this.eclMegaMenuInfo) {\n infoPanelHeight = this.eclMegaMenuInfo.getInfoPanelScrollHeight() + 16;\n if (this.isLarge) {\n heights.push(infoPanelHeight);\n } else {\n itemsHeight = infoPanelHeight;\n subItemsHeight = infoPanelHeight;\n featuredHeight = infoPanelHeight;\n }\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleOpacity = 1;\n }\n\n if (this.eclMegaMenuMega) {\n if (this.eclMegaMenuSublist && this.eclMegaMenuSublist.submenuItems.length > 0) {\n this.eclMegaMenuSublist.submenuItems.forEach((item) => {\n itemsHeight += item.getMegaMenuSubItemHeight();\n });\n heights.push(itemsHeight);\n }\n const expandedSubItem = this.eclMegaMenuSublist.submenuItems.find(item => item.hasChildren && item.isExpanded);\n if (expandedSubItem !== undefined) {\n expandedSubItem.submenu.submenuItems.forEach(item => {\n subItemsHeight += item.getMegaMenuSubItemHeight();\n });\n heights.push(subItemsHeight);\n if (expandedSubItem.eclMegaMenuFeatured) {\n featuredHeight += expandedSubItem.eclMegaMenuFeatured.getEclMegaMenuFeaturedHeight();\n heights.push(featuredHeight);\n }\n }\n\n const maxHeight = Math.max(...heights);\n const containerBounding = this.el.nativeElement.getBoundingClientRect();\n const containerBottom = containerBounding.bottom;\n // By requirements, limit the height to the 70% of the available space.\n const availableHeight = (window.innerHeight - containerBottom) * 0.7;\n\n if (maxHeight > availableHeight) {\n height = availableHeight;\n } else {\n height = maxHeight;\n }\n\n this.wrapperStyleHeight = height;\n if (this.eclMegaMenuMega && this.isLarge) {\n this.megaMenuMegaStyleHeight = height;\n } else if (this.eclMegaMenuMega && this.eclMegaMenuInfo) {\n this.megaMenuMegaStyleHeight = height - infoPanelHeight;\n }\n if (this.eclMegaMenuInfo && this.isLarge) {\n this.eclMegaMenuInfo.eclMegaMenuInfoStyleHeight = height;\n }\n\n if (expandedSubItem !== undefined) {\n if (this.isLarge) {\n expandedSubItem.level2StyleHeight = height;\n } else {\n expandedSubItem.level2StyleHeight = height - infoPanelHeight;\n }\n\n if (expandedSubItem.eclMegaMenuFeatured) {\n if (this.isLarge) {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height;\n } else {\n expandedSubItem.eclMegaMenuFeatured.eclMegaMenuFeaturedStyleHeight = height - infoPanelHeight;\n }\n }\n }\n this.megaMenuMegaStyleOpacity = 1;\n }\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small,'(min-width: 1140px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.breakpoints[Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small];\n this.isLarge = result.breakpoints['(min-width: 1140px)'];\n this.resetWrapperStyle();\n });\n }\n}\n","@if (hasChildren) {\n<button #menuBtn eclButton variant=\"primary\" class=\"ecl-mega-menu__link\" (click)=\"onMegaMenuItemClick()\"\n (keydown)=\"onKeydown($event)\">\n <span eclButtonLabel>{{label}}</span>\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-90\" size=\"2xs\"></ecl-icon>\n <ecl-icon icon=\"arrow-left\" transform=\"flip-horizontal\" size=\"s\"></ecl-icon>\n</button>\n} @else if (href) {\n<a eclLink #menuLink variant=\"standalone\" [href]=\"href\" [target]=\"target\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label}}</span>\n</a>\n} @else {\n<a eclLink #menuLink variant=\"standalone\" [attr.tabindex]=\"tabindex || 0\" [routerLink]=\"routerLink\"\n [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\" class=\"ecl-mega-menu__link\"\n (keydown)=\"onKeydown($event)\" (click)=\"onMegaMenuItemClick()\">\n <span eclLinkLabel>{{label}}</span>\n</a>\n}\n\n@if (hasSublist) {\n<div class=\"ecl-mega-menu__wrapper\" [style.height.px]=\"wrapperStyleHeight\" [style.top.px]=\"wrapperStyleTop\">\n <div class=\"ecl-container\">\n <ng-content select=\"[eclMegaMenuInfo]\"></ng-content>\n <div #eclMegaMenuMega class=\"ecl-mega-menu__mega\" [style.height.px]=\"megaMenuMegaStyleHeight\" [style.opacity]=\"megaMenuMegaStyleOpacity\">\n <ng-content select=\"[eclMegaMenuSublist]\"></ng-content>\n </div>\n </div>\n</div>\n}\n\n@if (hasContainer) {\n<div #mainPanel class=\"ecl-mega-menu__mega ecl-mega-menu__mega-container\">\n <div class=\"ecl-container\" [style.height.px]=\"containerStyleHeight\">\n <div class=\"ecl-mega-menu__mega-container-scrollable\">\n <ng-content select=\"[eclMegaMenuContainer]\"></ng-content>\n </div>\n </div>\n</div>\n}","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Component, ContentChildren, DoCheck, ElementRef, EventEmitter, HostBinding, HostListener, IterableDiffer, IterableDiffers, OnDestroy, Output, QueryList, Renderer2, afterNextRender, forwardRef, inject } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLClickOutsideDirective, EclRtlService, EclUserDeviceService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclMegaMenuItem } from './models/ecl-mega-menu-item.model';\nimport { EclMegaMenuDataService } from './services';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\n\n/**\n * The 'eclMegaMenu' is an advanced navigation component designed for complex sites with deep hierarchies.\n * It can provide descriptive text for first level items, accommodate up to three levels of navigation,\n * and additionally allows a featured column that can be used to either promote parent-page specific or site-wide pages,\n * hidden deep into the lower levels of the hierarchy.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'nav[eclMegaMenu]',\n templateUrl: './ecl-mega-menu.component.html',\n imports: [TranslateModule, EclButtonModule, EclIconModule],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n {\n directive: ECLClickOutsideDirective,\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['eclClickOutside'],\n },\n ],\n})\n\nexport class EclMegaMenuComponent extends ECLBaseDirective implements DoCheck, OnDestroy {\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-mega-menu'),\n this.isTwoPanels ? 'ecl-mega-menu--two-panels' : '',\n this.isOnePanel ? 'ecl-mega-menu--one-panel' : '',\n this.isRtl ? 'ecl-mega-menu--rtl' : '',\n this.isTablet ? 'ecl-mega-menu--forced-mobile' : '',\n this.isStartPanel ? 'ecl-mega-menu--start-panel' : '',\n ].join(' ');\n }\n\n @HostBinding('attr.aria-expanded') isExpanded = false;\n /**\n * The 'role' attribute of the component is set to 'navigation'. should not be changed.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * The event that is emitted, when a menu item is selected.\n */\n @Output() megaMenuItemSelect = new EventEmitter<EclMegaMenuItem>();\n @ContentChildren(forwardRef(() => EclMegaMenuItemComponent), { descendants: true }) menuItems: QueryList<EclMegaMenuItemComponent>;\n\n /**\n * If the menu is in mobile mode.\n */\n isMobileBreakpoint = false;\n /**\n * If the menu is expanded in mobile mode.\n */\n isMobileExpanded = false;\n /**\n * When a menu item is expanded and has only one panel (one sub-level).\n */\n isOnePanel = false;\n /**\n * If the menu is open, when in mobile mode.\n */\n isOpenMobile = false; // used for mobile only\n /**\n * Used in mobile mode - when the start panel is open (i.e. the hamburger button is clicked).\n */\n isStartPanel = false;\n /**\n * If a menu item is expanded and has two panels/levels displayed.\n */\n isTwoPanels = false;\n /**\n * Used to position the overlay, when a menu item is expanded.\n */\n overlayStyleTop: number;\n innerStyleTop: number;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclMegaMenuItemComponent>;\n private isRtl = false;\n private isTablet = false;\n private parentHeaderBottomSpaceY: number;\n private differs = inject(IterableDiffers);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private eclRtlService = inject(EclRtlService);\n private eclUserDeviceService = inject(EclUserDeviceService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclMegaMenuDataService = inject(EclMegaMenuDataService);\n private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.handleRtlChangeState();\n this.checkIsTabletDevice();\n this.subscribeToEvents();\n });\n }\n\n ngDoCheck(): void {\n // For each added menu item - subscribe to item events.\n const diff = this.differ.diff(this.menuItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectMegaMenuItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * When clicking outside the menu - close any expanded item.\n */\n @HostListener('eclClickOutside')\n onClickOutsideMegaMenu(): void {\n if (this.isExpanded) {\n this.closeMenuAndAnyOpenSubMenu();\n }\n }\n\n onMegaMenuMobileOpen(): void {\n if (this.isOpenMobile) {\n this.onMegaMenuMobileClose();\n } else {\n this.disableScroll();\n this.isExpanded = true;\n this.isOnePanel = false;\n this.isTwoPanels = false;\n\n if (this.isMobileBreakpoint) {\n this.isStartPanel = true;\n this.isMobileExpanded = true;\n }\n this.isOpenMobile = true;\n\n this.eclHeaderMenuComunicationService.updateOpen(true);\n\n // Focus first element\n if (this.menuItems.length > 0) {\n this.menuItems.first.onFocus();\n }\n }\n }\n\n onMegaMenuMobileClose(): void {\n this.enableScroll();\n this.collapseMenu();\n\n if (this.isMobileBreakpoint) {\n this.isStartPanel = false;\n this.isMobileExpanded = false;\n }\n this.isOpenMobile = false;\n }\n\n /**\n * Used for mobile menu - when user clicks on 'Back' button. Returns to the previous state.\n */\n onMegaMenuBack(): void {\n if (this.isOnePanel) {\n this.onMegaMenuBackToStartPanel();\n } else if (this.isTwoPanels) {\n this.onMegaMenuBackToOnePanel();\n }\n }\n\n positionMenuOverlay(parentHeaderBottomSpaceY): void {\n this.parentHeaderBottomSpaceY = parentHeaderBottomSpaceY;\n if (this.isMobileBreakpoint && parentHeaderBottomSpaceY) {\n this.overlayStyleTop = parentHeaderBottomSpaceY;\n this.innerStyleTop = parentHeaderBottomSpaceY;\n } else {\n if (this.parentHeaderBottomSpaceY) {\n this.overlayStyleTop = parentHeaderBottomSpaceY;\n } else {\n const menuBottomY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.overlayStyleTop = menuBottomY;\n }\n }\n }\n\n private onMegaMenuBackToOnePanel(): void {\n\n this.isStartPanel = false;\n this.isTwoPanels = false;\n this.isOnePanel = true;\n const currentItem = this.menuItems.find(item => item.isExpanded);\n const currentSubItem = currentItem.eclMegaMenuSublist.submenuItems.find(item => item.isExpanded);\n if (this.isMobileBreakpoint) {\n currentItem.eclMegaMenuSublist.submenuItems.filter(item => !item.isExpanded).forEach(el => {\n el.onShow();\n });\n }\n currentSubItem.isCurrent = false;\n currentSubItem.isExpanded = false;\n }\n\n private onMegaMenuBackToStartPanel(): void {\n this.isOnePanel = false;\n this.isStartPanel = true;\n const currentItem = this.menuItems.find(item => item.isExpanded);\n currentItem.isCurrent = false;\n currentItem.isExpanded = false;\n this.eclHeaderMenuComunicationService.updateExpanded(false);\n }\n\n private subscribeToEvents(): void {\n\n this.eclMegaMenuDataService.eclSubItemExpanded$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {\n this.isTwoPanels = isExpanded;\n this.isOnePanel = !isExpanded;\n this.isStartPanel = false;\n });\n\n this.eclMegaMenuDataService.eclSubItemClicked$.pipe(takeUntil(this.destroy$)).subscribe(item => {\n this.onSubMenuItemClicked(item);\n this.megaMenuItemSelect.emit(item);\n });\n\n this.eclMegaMenuDataService.eclSubItemEscape$.pipe(takeUntil(this.destroy$)).subscribe(item => {\n this.closeMenuAndAnyOpenSubMenu();\n });\n }\n\n private connectMegaMenuItemEvents(item: EclMegaMenuItemComponent): void {\n item.megaMenuItemClicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onMegaMenuItemClicked(item);\n });\n\n item.megaMenuItemKeydown.pipe(takeUntil(this.destroy$)).subscribe((evt: KeyboardEvent) => {\n this.onMegaMenuItemKeydown(item, evt);\n });\n }\n\n private onMegaMenuItemClicked(item: EclMegaMenuItemComponent): void {\n this.menuItems.filter(megaItem => megaItem !== item).forEach(item => item.onMegaMenuItemCollapse());\n if (item.hasChildren) {\n if (item.isExpanded) {\n if (this.isMobileBreakpoint) {\n this.isOnePanel = true;\n this.isTwoPanels = false;\n this.isStartPanel = false;\n } else {\n if (item.eclMegaMenuSublist?.submenuItems.first.hasChildren) {\n this.isOnePanel = false;\n this.isTwoPanels = true;\n } else {\n this.isOnePanel = true;\n this.isTwoPanels = false;\n }\n }\n this.positionMenuOverlay(this.parentHeaderBottomSpaceY);\n this.isExpanded = true;\n this.disableScroll();\n } else {\n this.collapseMenu();\n }\n } else {\n this.collapseMenu();\n }\n this.megaMenuItemSelect.emit(item);\n }\n\n private onMegaMenuItemKeydown(item: EclMegaMenuItemComponent, evt: KeyboardEvent): void {\n\n const itemIndex = this.menuItems.toArray().findIndex(elem => elem === item);\n switch (evt.key) {\n case KeyCode.ARROW_DOWN: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_UP: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_LEFT: {\n evt.preventDefault();\n this.focusOnPrevSibling(itemIndex);\n break;\n }\n case KeyCode.ARROW_RIGHT: {\n evt.preventDefault();\n this.focusOnNextSibling(itemIndex);\n break;\n }\n case KeyCode.ESCAPE: {\n this.closeMenuAndAnyOpenSubMenu();\n break;\n }\n default: {\n break;\n }\n }\n }\n\n private onSubMenuItemClicked(item: EclMegaMenuItem): void {\n if (!item.hasChildren) {\n this.closeMenuAndAnyOpenSubMenu();\n }\n }\n\n private closeMenuAndAnyOpenSubMenu(): void {\n if (this.isExpanded) {\n const expandedItem = this.menuItems.find(item => item.isExpanded);\n if (expandedItem !== undefined) {\n expandedItem.onMegaMenuItemCollapse();\n }\n this.collapseMenu();\n }\n }\n\n private collapseMenu(): void {\n this.isExpanded = false;\n this.isTwoPanels = false;\n this.isOnePanel = false;\n this.enableScroll();\n this.eclHeaderMenuComunicationService.updateExpanded(false);\n }\n\n private focusOnPrevSibling(index: number): void {\n if (index > 0) {\n this.menuItems.get(index-1).onFocus();\n }\n }\n\n private focusOnNextSibling(index: number): void {\n if (index < this.menuItems.length - 1) {\n this.menuItems.get(index+1).onFocus();\n }\n }\n\n private checkIsTabletDevice(): void {\n const userAgent = navigator.userAgent.toLowerCase();\n this.isTablet = this.eclUserDeviceService.isTabletDevice(userAgent);\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 996px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState !== undefined) {\n this.isRtl = rtlState;\n }\n });\n }\n\n private disableScroll(): void {\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;\n this.renderer.addClass(document.body, 'ecl-mega-menu-prevent-scroll');\n }\n\n private enableScroll(): void {\n this.renderer.removeClass(document.body, 'ecl-mega-menu-prevent-scroll');\n }\n}\n","<div class=\"ecl-mega-menu__overlay\" [style.top.px]=\"overlayStyleTop\"></div>\n<div class=\"ecl-container ecl-mega-menu__container\">\n <button class=\"ecl-button ecl-button--tertiary ecl-mega-menu__open ecl-button--icon-only\"\n type=\"button\" aria-expanded=\"isMobileExpanded\" (click)=\"onMegaMenuMobileOpen()\">\n <ecl-icon icon=\"hamburger\" size=\"m\"></ecl-icon>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n @if (isOpenMobile) {\n <span class=\"ecl-button__label\">{{ 'ecl.common.CLOSE' | translate }}</span>\n } @else {\n <span class=\"ecl-button__label\">{{ 'ecl.menu.MENU' | translate }}</span>\n }\n </button>\n <section class=\"ecl-mega-menu__inner\" [class.ecl-mega-menu__inner--expanded]=\"!isStartPanel && isExpanded\"\n aria-label=\"ecl mega menu\" [style.top.px]=\"innerStyleTop\">\n <header class=\"ecl-mega-menu__inner-header\">\n <button eclButton variant=\"ghost\" class=\"ecl-mega-menu__back\" type=\"submit\" (click)=\"onMegaMenuBack()\">\n <ecl-icon icon=\"corner-arrow\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>Back</span>\n </button>\n </header>\n <ng-content></ng-content>\n </section>\n</div>","import { NgModule } from '@angular/core';\nimport { EclMegaMenuContainerDirective } from './directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuFeaturedListDirective, EclMegaMenuFeaturedListItemDirective } from './directives/ecl-mega-menu-featured-list.directive';\nimport { EclMegaMenuFeaturedImageDirective, EclMegaMenuFeaturedPictureDirective } from './directives/ecl-mega-menu-featured-picture.directive';\nimport { EclMegaMenuListDirective, EclMegaMenuSpacerDirective, EclMegaMenuSublistDirective } from './directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclMegaMenuInfoComponent } from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclMegaMenuSubitemComponent } from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nimport { EclMegaMenuComponent } from './ecl-mega-menu.component';\n\nconst COMPONENTS = [\n EclMegaMenuComponent,\n EclMegaMenuItemComponent,\n EclMegaMenuSubitemComponent,\n EclMegaMenuInfoComponent,\n EclMegaMenuFeaturedComponent,\n EclMegaMenuFeaturedPictureDirective,\n EclMegaMenuFeaturedImageDirective,\n EclMegaMenuFeaturedListDirective,\n EclMegaMenuFeaturedListItemDirective,\n EclMegaMenuListDirective,\n EclMegaMenuSublistDirective,\n EclMegaMenuContainerDirective,\n EclMegaMenuSpacerDirective,\n];\n/**\n * Module that provides the EclMegaMenuComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_MEGA_MENU} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclMegaMenuModule {}\n","import { EclMegaMenuContainerDirective } from './directives/ecl-mega-menu-container.directive';\nimport { EclMegaMenuFeaturedListDirective, EclMegaMenuFeaturedListItemDirective } from './directives/ecl-mega-menu-featured-list.directive';\nimport { EclMegaMenuFeaturedImageDirective, EclMegaMenuFeaturedPictureDirective } from './directives/ecl-mega-menu-featured-picture.directive';\nimport { EclMegaMenuListDirective, EclMegaMenuSpacerDirective, EclMegaMenuSublistDirective } from './directives/ecl-mega-menu-list.directive';\nimport { EclMegaMenuFeaturedComponent } from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nimport { EclMegaMenuInfoComponent } from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nimport { EclMegaMenuItemComponent } from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nimport { EclMegaMenuSubitemComponent } from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nimport { EclMegaMenuComponent } from './ecl-mega-menu.component';\n\nexport * from './ecl-mega-menu.module';\nexport * from './ecl-mega-menu.component';\nexport * from './ecl-mega-menu-featured/ecl-mega-menu-featured.component';\nexport * from './ecl-mega-menu-info/ecl-mega-menu-info.component';\nexport * from './ecl-mega-menu-item/ecl-mega-menu-item.component';\nexport * from './ecl-mega-menu-subitem/ecl-mega-menu-subitem.component';\nexport * from './directives/ecl-mega-menu-featured-list.directive';\nexport * from './directives/ecl-mega-menu-featured-picture.directive';\nexport * from './directives/ecl-mega-menu-list.directive';\nexport * from './directives/ecl-mega-menu-container.directive';\nexport * from './models/ecl-mega-menu-item.model';\nexport * from './services/index';\n\nexport const EUI_ECL_MEGA_MENU = [\n EclMegaMenuComponent,\n EclMegaMenuItemComponent,\n EclMegaMenuSubitemComponent,\n EclMegaMenuInfoComponent,\n EclMegaMenuFeaturedComponent,\n EclMegaMenuFeaturedPictureDirective,\n EclMegaMenuFeaturedImageDirective,\n EclMegaMenuFeaturedListDirective,\n EclMegaMenuFeaturedListItemDirective,\n EclMegaMenuListDirective,\n EclMegaMenuSublistDirective,\n EclMegaMenuContainerDirective,\n EclMegaMenuSpacerDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i4"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA;;AAEG;AAMG,MAAO,6BAA8B,SAAQ,gBAAgB,CAAA;AALnE,IAAA,WAAA,GAAA;;QAO8B,IAAA,CAAA,QAAQ,GAAG,IAAI;AAC5C,IAAA;8GAHY,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA;8BAI6B,QAAQ,EAAA,CAAA;sBAAjC,WAAW;uBAAC,WAAW;;;ACV5B;;AAEG;AAIG,MAAO,gCAAiC,SAAQ,gBAAgB,CAAA;AAHtE,IAAA,WAAA,GAAA;;QAIuD,IAAA,CAAA,QAAQ,GAAG,IAAI;AACrE,IAAA;8GAFY,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oCAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAH5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA;8BAEsD,QAAQ,EAAA,CAAA;sBAA1D,WAAW;uBAAC,oCAAoC;;AAGrD;;;AAGG;AAIG,MAAO,oCAAqC,SAAQ,gBAAgB,CAAA;AAH1E,IAAA,WAAA,GAAA;;QAI6D,IAAA,CAAA,QAAQ,GAAG,IAAI;AAChE,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAKlC,IAAA;IAHG,gCAAgC,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY;IAC7C;8GANS,oCAAoC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0CAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAHhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AAC5C,iBAAA;8BAE4D,QAAQ,EAAA,CAAA;sBAAhE,WAAW;uBAAC,0CAA0C;;;AClB3D;;AAEG;AAIG,MAAO,mCAAoC,SAAQ,gBAAgB,CAAA;AACrE,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,6CAA6C,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAChG;8GAJS,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnC,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAH/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AAC3C,iBAAA;8BAGO,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO;;AAMxB;;AAEG;AAIG,MAAO,iCAAkC,SAAQ,gBAAgB,CAAA;AAHvE,IAAA,WAAA,GAAA;;QAIwD,IAAA,CAAA,QAAQ,GAAG,IAAI;AACtE,IAAA;8GAFY,iCAAiC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qCAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAH7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACzC,iBAAA;8BAEuD,QAAQ,EAAA,CAAA;sBAA3D,WAAW;uBAAC,qCAAqC;;;MClBzC,sBAAsB,CAAA;AAYlC,IAAA,WAAA,GAAA;AALQ,QAAA,IAAA,CAAA,6BAA6B,GAAoB,IAAI,OAAO,EAAU;AACtE,QAAA,IAAA,CAAA,kBAAkB,GAAqB,IAAI,OAAO,EAAW;AAC7D,QAAA,IAAA,CAAA,iBAAiB,GAA6B,IAAI,OAAO,EAAmB;AAC5E,QAAA,IAAA,CAAA,gBAAgB,GAAqB,IAAI,OAAO,EAAW;QAGlE,IAAI,CAAC,8BAA8B,GAAG,IAAI,CAAC,6BAA6B,CAAC,YAAY,EAAE;QACjF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;QACvE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;QAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;IAC9D;AAEA;;AAEG;AACH,IAAA,yBAAyB,CAAC,KAAa,EAAA;AACtC,QAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/C;AAEG,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;IACzC;AAEA,IAAA,eAAe,CAAC,IAAqB,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC;AAEA,IAAA,qBAAqB,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;IAClC;8GApCY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCDrB,kBAAkB,CAAA;AAG3B,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEhD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;IAC9D;IACA,yBAAyB,CAAC,IAAiB,EAAE,mBAA8C,EAAA;QACvF,IAAI,mBAAmB,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;gBAC7C,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,YAAY,EAAE;AACxC,oBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACnE;AACJ,YAAA,CAAC,CAAC;QACN;IACJ;8GAhBS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA,CAAA;;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACElC;;AAEG;AAOG,MAAO,4BAA6B,SAAQ,gBAAgB,CAAA;AANlE,IAAA,WAAA,GAAA;;QAQkD,IAAA,CAAA,QAAQ,GAAG,IAAI;QAC7B,IAAA,CAAA,8BAA8B,GAAkB,IAAI;AAK5E,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAWlC,IAAA;AATG;;;AAGG;IACH,4BAA4B,GAAA;QACxB,IAAI,MAAM,GAAG,CAAC;AACd,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC,gCAAgC,EAAE,CAAC;AAC7E,QAAA,OAAO,MAAM;IACjB;8GAlBS,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,+BAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,qCAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAOH,oCAAoC,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB1E,yTAMM,EAAA,CAAA,CAAA;;2FDOO,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;+BAEI,0BAA0B,EAAA,QAAA,EAAA,yTAAA,EAAA;8BAMU,QAAQ,EAAA,CAAA;sBAArD,WAAW;uBAAC,+BAA+B;gBACZ,8BAA8B,EAAA,CAAA;sBAA7D,WAAW;uBAAC,iBAAiB;gBACrB,KAAK,EAAA,CAAA;sBAAb;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBAE+F,SAAS,EAAA,CAAA;sBAAxG,eAAe;uBAAC,UAAU,CAAC,MAAM,oCAAoC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;AEJlG;;AAEG;AAQG,MAAO,2BAA4B,SAAQ,gBAAgB,CAAA;AAG7D,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC;YAC7C,IAAI,CAAC,SAAS,GAAG,iCAAiC,GAAG,EAAE;YACvD,IAAI,CAAC,UAAU,GAAG,kCAAkC,GAAG,EAAE;YACzD,IAAI,CAAC,QAAQ,GAAG,wBAAwB,GAAG,EAAE;YAC7C,IAAI,CAAC,YAAY,GAAG,4BAA4B,GAAG,EAAE;AACxD;aACI,IAAI,CAAC,GAAG;AACR,aAAA,IAAI,EAAE;IACf;AAwEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QArFwB,IAAA,CAAA,UAAU,GAAG,KAAK;QAkB5C,IAAA,CAAA,KAAK,GAAG,EAAE;AACnB;;AAEG;QACqC,IAAA,CAAA,UAAU,GAAG,KAAK;;QAMjD,IAAA,CAAA,UAAU,GAAmB,IAAI;QACjC,IAAA,CAAA,WAAW,GAAkB,IAAI;QACjC,IAAA,CAAA,mBAAmB,GAAwB,IAAI;QAC/C,IAAA,CAAA,IAAI,GAAG,EAAE;QACT,IAAA,CAAA,MAAM,GAAG,EAAE;AACpB;;AAEG;QACqC,IAAA,CAAA,QAAQ,GAAG,KAAK;AA4B9C,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAE;AAC3C,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,YAAY,EAAE;QAErD,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAG1B;;AAEG;QACH,IAAA,CAAA,iBAAiB,GAAkB,IAAI;AAE/B,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QACnD,IAAA,CAAA,YAAY,GAAG,KAAK;QACU,IAAA,CAAA,OAAO,GAAG,EAAE;AAC1C,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACvD,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAInD,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;QAElD,eAAe,CAAC,MAAK;AACjB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,kBAAkB,CAAC,yBAAyB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;YACjH;YACA,IAAI,CAAC,wBAAwB,EAAE;AACnC,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO;IACzB;AAEA;;AAEG;IACH,OAAO,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;QAClC;AAAO,aAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QACjC;IACJ;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;IACzB;IAEA,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACrB;IAEA,wBAAwB,GAAA;QACpB,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM;IAC/D;AAEA;;AAEG;IACH,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU;QAClC,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D,QAAA,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,IAAI,CAAC;AACjD,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YACxB,UAAU,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAClD;AACA,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE;IACtC;AAEA;;AAEG;IACH,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,IAAI,CAAC;AACjD,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE;IACtC;AAEA,IAAA,SAAS,CAAC,GAAU,EAAA;AAChB,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;YAC9B,IAAI,EAAG,GAAqB,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC/C,IAAK,GAAqB,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE;AAC/C,oBAAA,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBAC3D;qBAAO;AACH,oBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAoB,CAAC;gBAC1D;YACJ;QACJ;IACJ;IAEA,qBAAqB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACnD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QAC7B;IACJ;IAEA,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACtB,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC;IACjE;IAEQ,qBAAqB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,qBAAqB,EAAE;AAC7E,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG;AAClC,YAAA,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,GAAG,UAAU;AACvD,YAAA,IAAI,CAAC,iBAAiB,GAAG,eAAe;QAC5C;IACJ;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC;AACA,aAAA,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;AACpE,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,OAAO;AAC5C,QAAA,CAAC,CAAC;IACV;8GA/LS,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAwBhB,gBAAgB,CAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAchB,gBAAgB,mXAsBL,2BAA2B,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAI3B,4BAA4B,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAbhD,gBAAgB,0KC7E/B,mxDA4Cc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrBA,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,+QAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAG9E,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAPvC,SAAS;+BAEI,wBAAwB,EAAA,OAAA,EAEzB,CAAC,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,mxDAAA,EAAA;wDAKrD,UAAU,EAAA,CAAA;sBAA5C,WAAW;uBAAC,oBAAoB;gBAE7B,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO;gBAgBX,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBAIuC,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAI7B,iBAAiB,EAAA,CAAA;sBAAzB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAIuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAI7B,mBAAmB,EAAA,CAAA;sBAA3B;gBAK4B,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB;gBAIE,eAAe,EAAA,CAAA;sBAA3C,SAAS;uBAAC,gBAAgB;gBAIE,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB;gBAKkC,OAAO,EAAA,CAAA;sBAAnE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,2BAA2B,CAAC;gBAIG,mBAAmB,EAAA,CAAA;sBAAhF,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,4BAA4B,CAAC;gBAElD,sBAAsB,EAAA,CAAA;sBAA/B;gBACS,sBAAsB,EAAA,CAAA;sBAA/B;gBAaqC,OAAO,EAAA,CAAA;sBAA5C,WAAW;uBAAC,eAAe;;;AEpGhC;;AAEG;AAIG,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAH9D,IAAA,WAAA,GAAA;;QAI8C,IAAA,CAAA,QAAQ,GAAG,IAAI;AAC5D,IAAA;8GAFY,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAClC,iBAAA;8BAE6C,QAAQ,EAAA,CAAA;sBAAjD,WAAW;uBAAC,2BAA2B;;AAG5C;;AAEG;AAIG,MAAO,0BAA2B,SAAQ,gBAAgB,CAAA;AAHhE,IAAA,WAAA,GAAA;;QAIgD,IAAA,CAAA,QAAQ,GAAG,IAAI;AAC9D,IAAA;8GAFY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACpC,iBAAA;8BAE+C,QAAQ,EAAA,CAAA;sBAAnD,WAAW;uBAAC,6BAA6B;;AAG9C;;AAEG;AAIG,MAAO,2BAA4B,SAAQ,gBAAgB,CAAA;AAe7D,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAfX,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QAEsB,IAAA,CAAA,QAAQ,GAAG,IAAI;QACH,IAAA,CAAA,YAAY,GAAG,KAAK;QAChD,IAAA,CAAA,QAAQ,GAAkB,IAAI;AAInD,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QAEnD,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAC1B,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AAIrC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5C,eAAe,CAAC,MAAK;YACjB,IAAI,CAAC,wBAAwB,EAAE;AACnC,QAAA,CAAC,CAAC;IACN;IAEA,SAAS,GAAA;;AAEL,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAChD,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAA,CAAC,CAAC;QACN;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;AAEA;;;AAGG;AACH,IAAA,yBAAyB,CAAC,UAAmB,EAAA;QACzC,IAAI,UAAU,EAAE;;AAEZ,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,gBAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;gBACzE,gBAAgB,EAAE,mBAAmB,EAAE;YAC3C;QACJ;aAAO;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAG;AAC7B,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;oBACjB,IAAI,CAAC,qBAAqB,EAAE;gBAChC;AACR,YAAA,CAAC,CAAC;QACF;IACJ;AAEQ,IAAA,yBAAyB,CAAC,IAAiC,EAAA;AAC/D,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACtE,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;AACvC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AACzE,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5C,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,wBAAwB,CAAC,IAAiC,EAAA;AAC9D,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;YAC/D,EAAE,CAAC,qBAAqB,EAAE;YAC1B,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC7C,EAAE,CAAC,MAAM,EAAE;YACf;AACJ,QAAA,CAAC,CAAC;IACN;IAEQ,wBAAwB,CAAC,IAAiC,EAAE,GAAkB,EAAA;AAElF,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;AAC9E,QAAA,QAAQ,GAAG,CAAC,GAAG;AACX,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;gBACrB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAClC;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,QAAQ,EAAE;gBACnB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAClC;YACJ;YACA,SAAS;gBACL;YACJ;;IAER;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,OAAO,EAAE;QAC5C;IACJ;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,OAAO,EAAE;QAC5C;IACJ;IAEQ,WAAW,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QAC5B;aAAO;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QAC7B;IACJ;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC;AACA,aAAA,OAAO,CAAC,CAAC,oBAAoB,CAAC;AAC9B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,OAAO;YACxC,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;AACxC,QAAA,CAAC,CAAC;IACV;8GA7HS,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,gTAOF,2BAA2B,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAPpD,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AACrC,iBAAA;wDAIgD,QAAQ,EAAA,CAAA;sBAApD,WAAW;uBAAC,8BAA8B;gBACc,YAAY,EAAA,CAAA;sBAApE,WAAW;uBAAC,0CAA0C;gBAC1B,QAAQ,EAAA,CAAA;sBAApC,WAAW;uBAAC,cAAc;gBAEqC,YAAY,EAAA,CAAA;sBAA3E,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,2BAA2B,CAAC;;;AClClE;;AAEG;AAOG,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAN9D,IAAA,WAAA,GAAA;;AAOI,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAcvB;;AAEG;QAC6B,IAAA,CAAA,0BAA0B,GAAkB,IAAI;AAChF;;AAEG;QAC2B,IAAA,CAAA,2BAA2B,GAAkB,IAAI;AAQvE,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AA0BlE,IAAA;AArDG;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,+BAA+B,GAAG,EAAE;AACvD;aACI,IAAI,CAAC,GAAG;AACR,aAAA,IAAI,EAAE;IACf;IAkBA,eAAe,GAAA;;AAEX,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,0BAA0B,CAAC;QACtE;;QAEA,IAAI,CAAC,WAAW,EAAE;IACtB;AAEA;;;AAGG;IACH,wBAAwB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY;IAC7C;AAEA;;AAEG;IACK,WAAW,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM;AACpE,QAAA,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,OAAO,CAAC;IAClE;8GAvDS,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,iCAAA,EAAA,eAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MA6BF,gBAAgB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CnD,4MAIM,EAAA,CAAA,CAAA;;2FDUO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BAEI,sBAAsB,EAAA,QAAA,EAAA,4MAAA,EAAA;8BAW5B,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO;gBAYY,0BAA0B,EAAA,CAAA;sBAAzD,WAAW;uBAAC,iBAAiB;gBAIA,2BAA2B,EAAA,CAAA;sBAAxD,WAAW;uBAAC,eAAe;gBAEnB,KAAK,EAAA,CAAA;sBAAb;gBAKiD,QAAQ,EAAA,CAAA;sBAAzD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,gBAAgB,CAAC;;;AE3BpD;;AAEG;AAQG,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;AAG1D;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC;YAC1C,IAAI,CAAC,kBAAkB,GAAG,mCAAmC,GAAG,EAAE;YAClE,IAAI,CAAC,oBAAoB,GAAG,oCAAoC,GAAG,EAAE;YACrE,IAAI,CAAC,SAAS,GAAG,8BAA8B,GAAG,EAAE;YACpD,IAAI,CAAC,UAAU,GAAG,+BAA+B,GAAG,EAAE;AACzD;aACI,IAAI,CAAC,GAAG;AACR,aAAA,IAAI,EAAE;IACf;AAiEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAlFX,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QAkBY,IAAA,CAAA,UAAU,GAAG,KAAK;AAClB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI;;QAInE,IAAA,CAAA,UAAU,GAAmB,IAAI;QACjC,IAAA,CAAA,WAAW,GAAkB,IAAI;QACjC,IAAA,CAAA,mBAAmB,GAAwB,IAAI;QAC/C,IAAA,CAAA,IAAI,GAAG,EAAE;QACT,IAAA,CAAA,MAAM,GAAG,EAAE;AAMV,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE;AACxC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAiB;QA+BjE,IAAA,CAAA,oBAAoB,GAAkB,IAAI;QAC1C,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAC1B,IAAA,CAAA,uBAAuB,GAAkB,IAAI;QAC7C,IAAA,CAAA,wBAAwB,GAAkB,IAAI;QAC9C,IAAA,CAAA,kBAAkB,GAAkB,IAAI;QACxC,IAAA,CAAA,eAAe,GAAkB,IAAI;AAE7B,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QACnD,IAAA,CAAA,OAAO,GAAG,KAAK;AACf,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACvD,QAAA,IAAA,CAAA,gCAAgC,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAC3E,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC/C,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAIhC,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB;AAC1D,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB;QAElD,eAAe,CAAC,MAAK;AACjB,YAAA,sBAAsB,CAAC,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AACnG,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACrC,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,kBAAkB,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;YAC1G;YACA,IAAI,CAAC,wBAAwB,EAAE;AACnC,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;AAEA,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB;IACnE;AAEA,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB;IACpC;AAEA,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB;IACtC;AAEA;;AAEG;IACH,OAAO,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;QAC3B;AAAO,aAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACrB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QAC1B;IACJ;AAEA;;AAEG;IAEH,QAAQ,GAAA;QACJ,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,qBAAqB,EAAE;YAChC;AACJ,QAAA,CAAC,CAAC;IACN;AAEA;;AAEG;IACH,mBAAmB,GAAA;AAEf,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU;AAClC,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC;YACtE;AACA,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;gBACrE,IAAI,CAAC,UAAU,EAAE;gBACjB,UAAU,CAAC,MAAK;oBACZ,IAAI,CAAC,mBAAmB,EAAE;AAC9B,gBAAA,CAAC,CAAC;YACN;iBAAO;gBACH,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;YACzE;QACJ;aAAO;YACH,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;QACzE;AACA,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE;IACnC;AAEA;;AAEG;IACH,sBAAsB,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC;QACtE;IACJ;AAEA,IAAA,SAAS,CAAC,GAAU,EAAA;AAChB,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;AAC9B,YAAA,IAAK,GAAqB,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,IAAI,CAAE,GAAqB,CAAC,QAAQ,EAAE;;YAEpF;iBAAO;AACH,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAoB,CAAC;YACvD;QACJ;IACJ;AAEQ,IAAA,qBAAqB,CAAC,UAAkB,EAAA;AAC5C,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,GAAG,UAAU,GAAG,EAAE;AAC5D,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,GAAG,eAAe;QACtD;IACJ;IAEQ,qBAAqB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM;AACpE,YAAA,IAAI,CAAC,eAAe,GAAG,OAAO;QAClC;IACJ;IAEQ,iBAAiB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC/B;IACJ;IAEQ,UAAU,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB;QACJ;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC;QACrC;AACA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,2BAA2B,GAAG,CAAC;QACxD;IACJ;IAEQ,mBAAmB,GAAA;QACvB,IAAI,eAAe,GAAG,CAAC;AAEvB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,MAAM,OAAO,GAAG,EAAE;YAClB,IAAI,MAAM,GAAG,CAAC;YACd,IAAI,WAAW,GAAG,CAAC;YACnB,IAAI,cAAc,GAAG,CAAC;YACtB,IAAI,cAAc,GAAG,CAAC;AAEtB,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW;AACzC,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,GAAG;AACxE,gBAAA,IAAI,CAAC,oBAAoB,GAAG,cAAc,GAAG,OAAO;YACxD;iBAAO;AACH,gBAAA,IAAI,IAAI,CAAC,eAAe,EAAE;oBACtB,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,GAAG,EAAE;AACtE,oBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,wBAAA,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;oBACjC;yBAAO;wBACH,WAAW,GAAG,eAAe;wBAC7B,cAAc,GAAG,eAAe;wBAChC,cAAc,GAAG,eAAe;oBACpC;AACA,oBAAA,IAAI,CAAC,eAAe,CAAC,2BAA2B,GAAG,CAAC;gBACxD;AAEA,gBAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,oBAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC5E,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAClD,4BAAA,WAAW,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAClD,wBAAA,CAAC,CAAC;AACF,wBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC7B;oBACA,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC;AAC9G,oBAAA,IAAI,eAAe,KAAK,SAAS,EAAE;wBAC/B,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAG;AAChD,4BAAA,cAAc,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACrD,wBAAA,CAAC,CAAC;AACF,wBAAA,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5B,wBAAA,IAAI,eAAe,CAAC,mBAAmB,EAAE;AACrC,4BAAA,cAAc,IAAI,eAAe,CAAC,mBAAmB,CAAC,4BAA4B,EAAE;AACpF,4BAAA,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;wBAChC;oBACJ;oBAEA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;oBACtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;AACvE,oBAAA,MAAM,eAAe,GAAG,iBAAiB,CAAC,MAAM;;oBAEhD,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,eAAe,IAAI,GAAG;AAEpE,oBAAA,IAAI,SAAS,GAAG,eAAe,EAAE;wBAC7B,MAAM,GAAG,eAAe;oBAC5B;yBAAO;wBACH,MAAM,GAAG,SAAS;oBACtB;AAEA,oBAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM;oBAChC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE;AACtC,wBAAA,IAAI,CAAC,uBAAuB,GAAG,MAAM;oBACzC;yBAAO,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,EAAE;AACrD,wBAAA,IAAI,CAAC,uBAAuB,GAAG,MAAM,GAAG,eAAe;oBAC3D;oBACA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE;AACtC,wBAAA,IAAI,CAAC,eAAe,CAAC,0BAA0B,GAAG,MAAM;oBAC5D;AAEA,oBAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAC/B,wBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,4BAAA,eAAe,CAAC,iBAAiB,GAAG,MAAM;wBAC9C;6BAAO;AACH,4BAAA,eAAe,CAAC,iBAAiB,GAAG,MAAM,GAAG,eAAe;wBAChE;AAEA,wBAAA,IAAI,eAAe,CAAC,mBAAmB,EAAE;AACrC,4BAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,gCAAA,eAAe,CAAC,mBAAmB,CAAC,8BAA8B,GAAG,MAAM;4BAC/E;iCAAO;gCACH,eAAe,CAAC,mBAAmB,CAAC,8BAA8B,GAAG,MAAM,GAAG,eAAe;4BACjG;wBACJ;oBACJ;AACA,oBAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC;gBACrC;YACJ;QACJ;IACJ;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC;AACA,aAAA,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,EAAC,qBAAqB,CAAC;AAC1F,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;YACxG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC;YACxD,IAAI,CAAC,iBAAiB,EAAE;AAC5B,QAAA,CAAC,CAAC;IACV;8GA7TS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,mnBAuDF,wBAAwB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAIxB,2BAA2B,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAK3B,6BAA6B,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAjBjD,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzE/B,m0DAuCC,2CDhBa,YAAY,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,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,mPAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAG5D,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;+BAEI,qBAAqB,EAAA,OAAA,EAEtB,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,m0DAAA,EAAA;wDAUlE,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO;gBAae,UAAU,EAAA,CAAA;sBAA5C,WAAW;uBAAC,oBAAoB;gBACE,QAAQ,EAAA,CAAA;sBAA1C,WAAW;uBAAC,oBAAoB;gBAExB,KAAK,EAAA,CAAA;sBAAb;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBAIQ,mBAAmB,EAAA,CAAA;sBAA3B;gBAES,mBAAmB,EAAA,CAAA;sBAA5B;gBACS,mBAAmB,EAAA,CAAA;sBAA5B;gBAI6B,eAAe,EAAA,CAAA;sBAA5C,SAAS;uBAAC,iBAAiB;gBAIJ,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW;gBAIO,QAAQ,EAAA,CAAA;sBAApC,SAAS;uBAAC,gBAAgB;gBAIL,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS;gBAIsC,eAAe,EAAA,CAAA;sBAAxE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,wBAAwB,CAAC;gBAIK,kBAAkB,EAAA,CAAA;sBAA9E,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,2BAA2B,CAAC;gBAKI,oBAAoB,EAAA,CAAA;sBAAlF,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,6BAA6B,CAAC;gBAkE7D,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,eAAe;;;AE7IjC;;;;;AAKG;AAkBG,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;AAEtD,IAAA,IACI,UAAU,GAAA;QACV,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,2BAA2B,GAAG,EAAE;YACnD,IAAI,CAAC,UAAU,GAAG,0BAA0B,GAAG,EAAE;YACjD,IAAI,CAAC,KAAK,GAAG,oBAAoB,GAAG,EAAE;YACtC,IAAI,CAAC,QAAQ,GAAG,8BAA8B,GAAG,EAAE;YACnD,IAAI,CAAC,YAAY,GAAG,4BAA4B,GAAG,EAAE;AACxD,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC;IACf;AA0DA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QAzDwB,IAAA,CAAA,UAAU,GAAG,KAAK;AACrD;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,YAAY;AAE7C;;AAEG;AACO,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAmB;AAGlE;;AAEG;QACH,IAAA,CAAA,kBAAkB,GAAG,KAAK;AAC1B;;AAEG;QACH,IAAA,CAAA,gBAAgB,GAAG,KAAK;AACxB;;AAEG;QACH,IAAA,CAAA,UAAU,GAAG,KAAK;AAClB;;AAEG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC;AACrB;;AAEG;QACH,IAAA,CAAA,YAAY,GAAG,KAAK;AACpB;;AAEG;QACH,IAAA,CAAA,WAAW,GAAG,KAAK;AAOX,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QAEnD,IAAA,CAAA,KAAK,GAAG,KAAK;QACb,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AACjC,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACnD,QAAA,IAAA,CAAA,gCAAgC,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAC3E,QAAA,IAAA,CAAA,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACvD,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAIhC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5C,eAAe,CAAC,MAAK;YACjB,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,EAAE;AAC5B,QAAA,CAAC,CAAC;IACN;IAEA,SAAS,GAAA;;AAEL,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7C,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,YAAA,CAAC,CAAC;QACN;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;AAEA;;AAEG;IAEH,sBAAsB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,0BAA0B,EAAE;QACrC;IACJ;IAEA,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,qBAAqB,EAAE;QAChC;aAAO;YACH,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AAExB,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;YAChC;AACA,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAExB,YAAA,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,IAAI,CAAC;;YAGtD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE;YAClC;QACJ;IACJ;IAEA,qBAAqB,GAAA;QACjB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,YAAY,EAAE;AAEnB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;QACjC;AACA,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;IAC7B;AAEA;;AAEG;IACH,cAAc,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,0BAA0B,EAAE;QACrC;AAAO,aAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACzB,IAAI,CAAC,wBAAwB,EAAE;QACnC;IACJ;AAEA,IAAA,mBAAmB,CAAC,wBAAwB,EAAA;AACxC,QAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB;AACxD,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,wBAAwB,EAAE;AACrD,YAAA,IAAI,CAAC,eAAe,GAAG,wBAAwB;AAC/C,YAAA,IAAI,CAAC,aAAa,GAAG,wBAAwB;QACjD;aAAO;AACH,YAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/B,gBAAA,IAAI,CAAC,eAAe,GAAG,wBAAwB;YACnD;iBAAO;AACH,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM;AACxE,gBAAA,IAAI,CAAC,eAAe,GAAG,WAAW;YACtC;QACJ;IACJ;IAEQ,wBAAwB,GAAA;AAE5B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AAChE,QAAA,MAAM,cAAc,GAAG,WAAW,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AAChG,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,WAAW,CAAC,kBAAkB,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;gBACtF,EAAE,CAAC,MAAM,EAAE;AACf,YAAA,CAAC,CAAC;QACN;AACA,QAAA,cAAc,CAAC,SAAS,GAAG,KAAK;AAChC,QAAA,cAAc,CAAC,UAAU,GAAG,KAAK;IACrC;IAEQ,0BAA0B,GAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AAChE,QAAA,WAAW,CAAC,SAAS,GAAG,KAAK;AAC7B,QAAA,WAAW,CAAC,UAAU,GAAG,KAAK;AAC9B,QAAA,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,KAAK,CAAC;IAC/D;IAEQ,iBAAiB,GAAA;AAErB,QAAA,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,IAAG;AAClG,YAAA,IAAI,CAAC,WAAW,GAAG,UAAU;AAC7B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,UAAU;AAC7B,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC7B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AAC3F,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;YAC1F,IAAI,CAAC,0BAA0B,EAAE;AACrC,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,yBAAyB,CAAC,IAA8B,EAAA;AAC5D,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACnE,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;AACpC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAkB,KAAI;AACrF,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,qBAAqB,CAAC,IAA8B,EAAA;QACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACnG,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;gBAC7B;qBAAO;oBACH,IAAI,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE;AACzD,wBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,wBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;oBAC3B;yBAAO;AACH,wBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,wBAAA,IAAI,CAAC,WAAW,GAAG,KAAK;oBAC5B;gBACJ;AACA,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,wBAAwB,CAAC;AACvD,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;gBACtB,IAAI,CAAC,aAAa,EAAE;YACxB;iBAAO;gBACH,IAAI,CAAC,YAAY,EAAE;YACvB;QACJ;aAAO;YACH,IAAI,CAAC,YAAY,EAAE;QACvB;AACA,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;IACtC;IAEQ,qBAAqB,CAAC,IAA8B,EAAE,GAAkB,EAAA;AAE5E,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;AAC3E,QAAA,QAAQ,GAAG,CAAC,GAAG;AACX,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;gBACrB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAClC;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,QAAQ,EAAE;gBACnB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAClC;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,UAAU,EAAE;gBACrB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAClC;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,WAAW,EAAE;gBACtB,GAAG,CAAC,cAAc,EAAE;AACpB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;gBAClC;YACJ;AACA,YAAA,KAAK,OAAO,CAAC,MAAM,EAAE;gBACjB,IAAI,CAAC,0BAA0B,EAAE;gBACjC;YACJ;YACA,SAAS;gBACL;YACJ;;IAER;AAEQ,IAAA,oBAAoB,CAAC,IAAqB,EAAA;AAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,0BAA0B,EAAE;QACrC;IACJ;IAEQ,0BAA0B,GAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AACjE,YAAA,IAAI,YAAY,KAAK,SAAS,EAAE;gBAC5B,YAAY,CAAC,sBAAsB,EAAE;YACzC;YACA,IAAI,CAAC,YAAY,EAAE;QACvB;IACJ;IAEQ,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,gCAAgC,CAAC,cAAc,CAAC,KAAK,CAAC;IAC/D;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,OAAO,EAAE;QACzC;IACJ;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,OAAO,EAAE;QACzC;IACJ;IAEQ,mBAAmB,GAAA;QACvB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC;IACvE;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC;AACA,aAAA,OAAO,CAAC,CAAC,oBAAoB,CAAC;AAC9B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,OAAO;AAC5C,QAAA,CAAC,CAAC;IACV;IAEQ,oBAAoB,GAAA;QACxB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACtF,YAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,gBAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;YACzB;AACJ,QAAA,CAAC,CAAC;IACN;IAEQ,aAAa,GAAA;QACjB,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW;QAC/E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IACzE;IAEQ,YAAY,GAAA;QAChB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,8BAA8B,CAAC;IAC5E;8GA5VS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAwBK,wBAAwB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAAA,IAAA,CAAA,wBAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7D9D,4xCAsBM,2CDEQ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAahD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjBhC,SAAS;+BAEI,kBAAkB,EAAA,OAAA,EAEnB,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,cAAA,EAC1C;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,gBAAgB;AAC9B,yBAAA;AACD,wBAAA;AACI,4BAAA,SAAS,EAAE,wBAAwB;;4BAEnC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC/B,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,4xCAAA,EAAA;wDAMG,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,OAAO;gBAYe,UAAU,EAAA,CAAA;sBAA5C,WAAW;uBAAC,oBAAoB;gBAIP,IAAI,EAAA,CAAA;sBAA7B,WAAW;uBAAC,WAAW;gBAKd,kBAAkB,EAAA,CAAA;sBAA3B;gBACmF,SAAS,EAAA,CAAA;sBAA5F,eAAe;uBAAC,UAAU,CAAC,MAAM,wBAAwB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBA4ElF,sBAAsB,EAAA,CAAA;sBADrB,YAAY;uBAAC,iBAAiB;;;AE7HnC,MAAM,UAAU,GAAG;IACf,oBAAoB;IACpB,wBAAwB;IACxB,2BAA2B;IAC3B,wBAAwB;IACxB,4BAA4B;IAC5B,mCAAmC;IACnC,iCAAiC;IACjC,gCAAgC;IAChC,oCAAoC;IACpC,wBAAwB;IACxB,2BAA2B;IAC3B,6BAA6B;IAC7B,0BAA0B;CAC7B;AACD;;;;AAIG;MAKU,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAvB1B,oBAAoB;YACpB,wBAAwB;YACxB,2BAA2B;YAC3B,wBAAwB;YACxB,4BAA4B;YAC5B,mCAAmC;YACnC,iCAAiC;YACjC,gCAAgC;YAChC,oCAAoC;YACpC,wBAAwB;YACxB,2BAA2B;YAC3B,6BAA6B;AAC7B,YAAA,0BAA0B,aAZ1B,oBAAoB;YACpB,wBAAwB;YACxB,2BAA2B;YAC3B,wBAAwB;YACxB,4BAA4B;YAC5B,mCAAmC;YACnC,iCAAiC;YACjC,gCAAgC;YAChC,oCAAoC;YACpC,wBAAwB;YACxB,2BAA2B;YAC3B,6BAA6B;YAC7B,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAWjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAvB1B,oBAAoB;YACpB,wBAAwB;YACxB,2BAA2B,CAAA,EAAA,CAAA,CAAA;;2FAqBlB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACxB,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,iBAAA;;;ACXM,MAAM,iBAAiB,GAAG;IAC7B,oBAAoB;IACpB,wBAAwB;IACxB,2BAA2B;IAC3B,wBAAwB;IACxB,4BAA4B;IAC5B,mCAAmC;IACnC,iCAAiC;IACjC,gCAAgC;IAChC,oCAAoC;IACpC,wBAAwB;IACxB,2BAA2B;IAC3B,6BAA6B;IAC7B,0BAA0B;;;ACpC9B;;AAEG;;;;"}