ngx-tethys 19.0.13 → 19.1.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -2
- package/action/action.component.d.ts +12 -20
- package/action/actions.component.d.ts +5 -7
- package/affix/affix.component.d.ts +7 -10
- package/alert/alert.component.d.ts +1 -1
- package/anchor/anchor-link.component.d.ts +8 -8
- package/anchor/anchor.component.d.ts +15 -21
- package/arrow-switcher/arrow-switcher.component.d.ts +15 -22
- package/autocomplete/autocomplete.component.d.ts +10 -17
- package/autocomplete/autocomplete.trigger.directive.d.ts +10 -18
- package/avatar/avatar-list/avatar-list.component.d.ts +8 -14
- package/avatar/avatar.component.d.ts +25 -39
- package/back-top/back-top.component.d.ts +9 -12
- package/badge/badge.component.d.ts +19 -59
- package/breadcrumb/breadcrumb.component.d.ts +15 -20
- package/button/button-icon.component.d.ts +3 -2
- package/button/button.component.d.ts +3 -2
- package/calendar/calendar-header.component.d.ts +9 -8
- package/calendar/calendar.component.d.ts +16 -16
- package/card/card.component.d.ts +5 -11
- package/card/content.component.d.ts +3 -8
- package/card/header.component.d.ts +7 -8
- package/carousel/carousel.component.d.ts +22 -27
- package/cascader/cascader-li.component.d.ts +13 -21
- package/cascader/cascader-search-option.component.d.ts +8 -16
- package/cascader/cascader.component.d.ts +58 -80
- package/checkbox/checkbox.component.d.ts +2 -5
- package/collapse/collapse-item.component.d.ts +12 -19
- package/collapse/collapse.component.d.ts +6 -12
- package/collapse/collapse.token.d.ts +3 -3
- package/color-picker/color-picker-custom-panel.component.d.ts +5 -5
- package/color-picker/color-picker-panel.component.d.ts +7 -11
- package/color-picker/color-picker.component.d.ts +19 -35
- package/color-picker/parts/alpha/alpha.component.d.ts +8 -8
- package/color-picker/parts/hue/hue.component.d.ts +6 -6
- package/color-picker/parts/indicator/indicator.component.d.ts +4 -3
- package/color-picker/parts/inputs/inputs.component.d.ts +9 -9
- package/color-picker/parts/saturation/saturation.component.d.ts +9 -9
- package/comment/comment.component.d.ts +4 -5
- package/copy/copy.directive.d.ts +8 -9
- package/date-picker/abstract-picker.component.d.ts +8 -7
- package/date-picker/lib/calendar/calendar-footer.component.d.ts +2 -1
- package/date-picker/lib/popups/inner-popup.component.d.ts +2 -1
- package/date-picker/picker.component.d.ts +2 -1
- package/date-range/date-range.component.d.ts +2 -2
- package/dialog/body/dialog-body.component.d.ts +2 -6
- package/dialog/confirm/confirm.component.d.ts +2 -2
- package/dialog/footer/dialog-footer.component.d.ts +6 -9
- package/dialog/header/dialog-header.component.d.ts +9 -11
- package/divider/divider.component.d.ts +12 -16
- package/dot/dot.component.d.ts +5 -13
- package/drag-drop/drag-handle.directive.d.ts +2 -1
- package/drag-drop/drag.directive.d.ts +2 -1
- package/drag-drop/drop-container.directive.d.ts +2 -1
- package/dropdown/dropdown-menu-item.directive.d.ts +3 -2
- package/dropdown/dropdown-menu.component.d.ts +2 -1
- package/dropdown/dropdown.directive.d.ts +2 -1
- package/empty/empty.component.d.ts +21 -27
- package/fesm2022/ngx-tethys-action.mjs +54 -91
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +29 -26
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +91 -118
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +51 -77
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +69 -103
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +117 -162
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +33 -46
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +104 -208
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +66 -70
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +85 -87
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +72 -77
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +82 -99
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +313 -468
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +10 -17
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +66 -71
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +187 -246
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +16 -10
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +25 -28
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +81 -82
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +49 -58
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +45 -68
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +107 -95
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +161 -200
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +21 -23
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +160 -152
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +25 -25
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +101 -114
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +268 -271
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +1 -1
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +17 -35
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +52 -74
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +106 -179
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +169 -201
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +230 -294
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +67 -70
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +196 -244
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +102 -105
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +34 -38
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +46 -28
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +339 -342
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +75 -108
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +26 -46
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +114 -151
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +74 -107
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +80 -140
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +1 -1
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +69 -87
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +42 -64
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +104 -129
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +36 -33
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +91 -130
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +36 -40
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/form/form-group-error/form-group-error.component.d.ts +2 -3
- package/form/form-group-label.directive.d.ts +2 -1
- package/form/form-group.component.d.ts +17 -24
- package/form/form-submit.directive.d.ts +2 -2
- package/form/form.directive.d.ts +6 -8
- package/form/from-group-footer/form-group-footer.component.d.ts +2 -2
- package/form/validator/confirm-validator.directive.d.ts +2 -2
- package/form/validator/unique-validator.directive.d.ts +2 -2
- package/fullscreen/fullscreen.component.d.ts +7 -7
- package/grid/flex.d.ts +14 -19
- package/grid/thy-col.directive.d.ts +6 -9
- package/grid/thy-grid-item.component.d.ts +3 -4
- package/grid/thy-grid.component.d.ts +11 -12
- package/grid/thy-row.directive.d.ts +12 -12
- package/icon/icon.component.d.ts +3 -2
- package/image/image.directive.d.ts +3 -2
- package/input/input-count.component.d.ts +4 -5
- package/input/input-group.component.d.ts +20 -20
- package/input/input-search.component.d.ts +15 -20
- package/input/input.component.d.ts +20 -21
- package/input/input.directive.d.ts +4 -6
- package/input-number/input-number.component.d.ts +21 -29
- package/layout/header.component.d.ts +4 -9
- package/layout/sidebar-header.component.d.ts +2 -1
- package/layout/sidebar.component.d.ts +8 -7
- package/list/list.component.d.ts +2 -1
- package/list/selection/selection-list.d.ts +4 -3
- package/loading/loading.component.d.ts +4 -10
- package/mention/mention.directive.d.ts +6 -7
- package/mention/suggestions/suggestions.component.d.ts +8 -9
- package/menu/group/menu-group.component.d.ts +16 -33
- package/menu/item/action/menu-item-action.component.d.ts +7 -8
- package/menu/item/icon/menu-item-icon.component.d.ts +2 -2
- package/menu/item/menu-item.component.d.ts +4 -4
- package/menu/item/name/menu-item-name.component.d.ts +2 -3
- package/menu/menu.component.d.ts +3 -7
- package/nav/icon-nav/icon-nav-link.directive.d.ts +3 -7
- package/nav/icon-nav/icon-nav.component.d.ts +3 -8
- package/nav/nav-ink-bar.directive.d.ts +4 -6
- package/nav/nav-item.directive.d.ts +7 -10
- package/nav/nav.component.d.ts +20 -48
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +48 -109
- package/popover/header/popover-header.component.d.ts +7 -6
- package/popover/popover.directive.d.ts +11 -18
- package/progress/progress-circle.component.d.ts +32 -21
- package/progress/progress-strip.component.d.ts +10 -14
- package/progress/progress.component.d.ts +15 -23
- package/property/examples/single/single.component.scss +6 -0
- package/property/properties.component.d.ts +6 -13
- package/property/property-item.component.d.ts +21 -26
- package/property/styles/properties.scss +124 -52
- package/property-operation/property-operation.component.d.ts +6 -5
- package/radio/button/radio-button.component.d.ts +2 -2
- package/radio/group/radio-group.component.d.ts +8 -7
- package/radio/radio.component.d.ts +2 -2
- package/radio/radio.token.d.ts +2 -2
- package/rate/rate-item.component.d.ts +2 -1
- package/rate/rate.component.d.ts +4 -3
- package/resizable/resizable.directive.d.ts +4 -9
- package/resizable/resize-handle.component.d.ts +2 -1
- package/resizable/resize-handles.component.d.ts +2 -1
- package/result/result.component.d.ts +9 -10
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +2 -1
- package/segment/segment.component.d.ts +2 -1
- package/select/custom-select/custom-select.component.d.ts +11 -10
- package/select/native-select/native-select.component.d.ts +2 -1
- package/shared/base-form-check.component.d.ts +3 -2
- package/shared/directives/thy-autofocus.directive.d.ts +3 -2
- package/shared/directives/thy-scroll.directive.d.ts +2 -1
- package/shared/directives/thy-show.d.ts +2 -1
- package/shared/option/group/option-group.component.d.ts +2 -1
- package/shared/option/list-option/list-option.component.d.ts +2 -7
- package/shared/option/option.component.d.ts +2 -1
- package/shared/select/select-control/select-control.component.d.ts +7 -6
- package/skeleton/skeleton-circle.component.d.ts +16 -19
- package/skeleton/skeleton-rectangle.component.d.ts +20 -23
- package/skeleton/skeleton.component.d.ts +5 -6
- package/skeleton/stylized/bullet-list.component.d.ts +11 -13
- package/skeleton/stylized/list.component.d.ts +10 -12
- package/skeleton/stylized/paragraph.component.d.ts +12 -14
- package/slide/slide-body/slide-body-section.component.d.ts +2 -1
- package/slider/slider.component.d.ts +17 -24
- package/space/space.component.d.ts +8 -8
- package/statistic/statistic.component.d.ts +35 -40
- package/stepper/step-header.component.d.ts +6 -10
- package/stepper/step.component.d.ts +6 -6
- package/stepper/stepper.component.d.ts +15 -20
- package/switch/switch.component.d.ts +24 -35
- package/table/table-column.component.d.ts +6 -5
- package/table/table-skeleton.component.d.ts +3 -10
- package/table/table.component.d.ts +11 -10
- package/tabs/tab-content.component.d.ts +4 -4
- package/tabs/tab.component.d.ts +4 -5
- package/tabs/tabs.component.d.ts +13 -15
- package/tag/tag.component.d.ts +10 -16
- package/time-picker/time-picker-panel.component.d.ts +3 -2
- package/time-picker/time-picker.component.d.ts +6 -5
- package/timeline/timeline-item.component.d.ts +9 -13
- package/timeline/timeline.component.d.ts +13 -17
- package/tooltip/tooltip.directive.d.ts +3 -2
- package/tree/tree-node.component.d.ts +6 -15
- package/tree/tree.component.d.ts +8 -7
- package/tree-select/tree-select.component.d.ts +8 -7
- package/typography/bg-color.directive.d.ts +3 -3
- package/typography/text/text.component.d.ts +2 -2
- package/typography/text-color.directive.d.ts +3 -3
- package/upload/file-drop.directive.d.ts +9 -11
- package/upload/file-select-base.d.ts +6 -10
- package/upload/file-select.component.d.ts +10 -20
- package/util/helpers/helpers.d.ts +2 -1
- package/vote/vote.component.d.ts +4 -3
- package/watermark/watermark.directive.d.ts +7 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-nav.mjs","sources":["../../../src/nav/icon-nav/icon-nav-link.directive.ts","../../../src/nav/icon-nav/icon-nav.component.ts","../../../src/nav/icon-nav/icon-nav.component.html","../../../src/nav/nav-item.directive.ts","../../../src/nav/nav-ink-bar.directive.ts","../../../src/nav/nav.pipe.ts","../../../src/nav/nav.component.ts","../../../src/nav/nav.component.html","../../../src/nav/nav.module.ts","../../../src/nav/ngx-tethys-nav.ts"],"sourcesContent":["import { Component, HostBinding, Input } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thyIconNavLink]',\n template: '<ng-content></ng-content>@if (icon) {<thy-icon [thyIconName]=\"icon\"></thy-icon>}',\n imports: [ThyIcon]\n})\nexport class ThyIconNavLink {\n @HostBinding('class.active') navLinkActive = false;\n\n @HostBinding('class.thy-icon-nav-link') navLinkClass = true;\n\n icon: string;\n\n @Input()\n set thyIconNavLinkIcon(icon: string) {\n this.icon = icon;\n }\n\n @Input({ transform: coerceBooleanProperty })\n set thyIconNavLinkActive(active: boolean) {\n this.navLinkActive = active;\n }\n}\n","import { Component, OnInit, HostBinding, Input, ChangeDetectionStrategy, ChangeDetectorRef, inject } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { warnDeprecation } from 'ngx-tethys/util';\n\ntype IconNavTypes = 'primary' | 'secondary' | 'individual' | '';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-icon-nav',\n templateUrl: './icon-nav.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyIconNav implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n type: IconNavTypes;\n\n @HostBinding(`class.thy-icon-nav`) isIconNav = true;\n\n @Input() set thyType(type: IconNavTypes) {\n this.type = type;\n this.updateClasses();\n this.changeDetectorRef.markForCheck();\n }\n\n private updateClasses(bypassInitialized?: boolean) {\n if (!bypassInitialized && !this.initialized) {\n return;\n }\n this.hostRenderer.updateClass(this.type ? [`thy-icon-nav-${this.type}`] : []);\n }\n\n constructor() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation('thy-icon-nav has been deprecated, please use thyAction and thy-space components instead of it');\n }\n }\n\n ngOnInit(): void {\n this.initialized = true;\n this.updateClasses(true);\n }\n}\n","<ng-content></ng-content>\n","import { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport {\n AfterViewInit,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n input,\n Input,\n NgZone,\n QueryList\n} from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyNavLink = '' | 'active';\n\n/**\n * 导航项\n * @name thyNavItem\n * @order 20\n */\n@Directive({\n selector: '[thyNavLink],[thyNavItem]',\n host: {\n class: 'thy-nav-item',\n '[class.active]': 'thyNavItemActive || thyNavLinkActive',\n '[class.disabled]': 'thyNavItemDisabled'\n }\n})\nexport class ThyNavItemDirective implements AfterViewInit {\n elementRef = inject(ElementRef);\n private routerLinkActive = inject(RouterLinkActive, { optional: true })!;\n private ngZone = inject(NgZone);\n\n /**\n * 唯一标识\n */\n id = input<string>();\n\n /**\n * 是否激活状态\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyNavItemActive: boolean;\n\n /**\n * 已经废弃,请使用 thyNavItemActive\n * @deprecated please use thyNavItemActive\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyNavLinkActive: boolean;\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyNavItemDisabled: boolean;\n\n /**\n * @private\n */\n @ContentChildren(forwardRef(() => ThyNavItemDirective), { descendants: true })\n links: QueryList<ThyNavItemDirective>;\n\n /**\n * @private\n */\n @ContentChildren(RouterLinkActive, { descendants: true }) routers: QueryList<RouterLinkActive>;\n\n // @HostBinding('attr.href') navLinkHref = 'javascript:;';\n\n public offset: {\n width: number;\n height: number;\n left: number;\n top: number;\n } = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n public content: HTMLElement;\n\n public isActive: boolean;\n\n private hostRenderer = useHostRenderer();\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngAfterViewInit() {\n this.setOffset();\n\n this.content = this.elementRef.nativeElement.outerHTML;\n\n this.ngZone.onStable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.isActive = this.linkIsActive();\n });\n }\n\n setOffset() {\n this.offset = {\n width: this.elementRef.nativeElement.offsetWidth || this.offset.width,\n height: this.elementRef.nativeElement.offsetHeight || this.offset.height,\n left: this.elementRef.nativeElement.offsetLeft || this.offset.left,\n top: this.elementRef.nativeElement.offsetTop || this.offset.top\n };\n }\n\n linkIsActive() {\n return (\n this.thyNavItemActive ||\n this.thyNavLinkActive ||\n (this.routerLinkActive && this.routerLinkActive.isActive) ||\n this.routers.some(router => router.isActive) ||\n this.links.some(item => item.thyNavItemActive) ||\n this.links.some(item => item.thyNavLinkActive)\n );\n }\n\n setNavLinkHidden(value: boolean) {\n if (value) {\n this.hostRenderer.addClass('thy-nav-item-hidden');\n } else {\n this.hostRenderer.removeClass('thy-nav-item-hidden');\n }\n }\n\n addClass(className: string) {\n this.hostRenderer.addClass(className);\n }\n\n removeClass(className: string) {\n this.hostRenderer.removeClass(className);\n }\n}\n","import { ANIMATION_MODULE_TYPE, Directive, ElementRef, Input, NgZone, inject } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { take } from 'rxjs/operators';\n\n/**\n * @internal\n */\n@Directive({\n selector: 'thy-nav-ink-bar, [thyNavInkBar]',\n host: {\n class: 'thy-nav-ink-bar',\n '[class.thy-nav-ink-bar-animated]': 'animated'\n }\n})\nexport class ThyNavInkBarDirective {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n animationMode? = inject(ANIMATION_MODULE_TYPE, { optional: true });\n\n @Input({ transform: coerceBooleanProperty }) isVertical: boolean;\n\n @Input({ transform: coerceBooleanProperty }) showInkBar: boolean;\n\n get animated(): boolean {\n return this.animationMode !== 'NoopAnimations' && this.showInkBar;\n }\n\n public alignToElement(element: HTMLElement): void {\n this.show();\n this.ngZone.run(() => {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.setStyles(element);\n });\n });\n }\n\n private setStyles(element: HTMLElement): void {\n const inkBar: HTMLElement = this.elementRef.nativeElement;\n if (!this.isVertical) {\n inkBar.style.top = '';\n inkBar.style.bottom = '0px';\n inkBar.style.height = '2px';\n inkBar.style.left = this.getLeftPosition(element);\n inkBar.style.width = this.getElementWidth(element);\n } else {\n inkBar.style.left = '';\n inkBar.style.width = '2px';\n inkBar.style.top = this.getTopPosition(element);\n inkBar.style.height = this.getElementHeight(element);\n }\n }\n\n private getLeftPosition(element: HTMLElement): string {\n return element ? `${element.offsetLeft || 0}px` : '0';\n }\n\n private getElementWidth(element: HTMLElement): string {\n return element ? `${element.offsetWidth || 0}px` : '0';\n }\n\n private getTopPosition(element: HTMLElement): string {\n return element ? `${element.offsetTop || 0}px` : '0';\n }\n\n private getElementHeight(element: HTMLElement): string {\n return element ? `${element.offsetHeight || 0}px` : '0';\n }\n\n private show() {\n this.elementRef.nativeElement.style.visibility = 'visible';\n }\n\n public hide() {\n this.elementRef.nativeElement.style.visibility = 'hidden';\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * @private\n */\n@Pipe({\n name: 'bypassSecurityTrustHtml'\n})\nexport class BypassSecurityTrustHtmlPipe implements PipeTransform {\n private sanitizer = inject(DomSanitizer);\n\n transform(format: string): any {\n return this.sanitizer.bypassSecurityTrustHtml(format);\n }\n}\n","import { ThyPopover, ThyPopoverConfig } from 'ngx-tethys/popover';\nimport { merge, Observable, of } from 'rxjs';\nimport { startWith, take, tap } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n HostBinding,\n inject,\n input,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n signal,\n Signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n WritableSignal\n} from '@angular/core';\n\nimport { RouterLinkActive } from '@angular/router';\nimport { ThyNavInkBarDirective } from './nav-ink-bar.directive';\nimport { ThyNavItemDirective } from './nav-item.directive';\nimport { BypassSecurityTrustHtmlPipe } from './nav.pipe';\nimport { ThyDropdownMenuComponent, ThyDropdownMenuItemDirective, ThyDropdownMenuItemActiveDirective } from 'ngx-tethys/dropdown';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { injectLocale, ThyNavLocale } from 'ngx-tethys/i18n';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport type ThyNavType = 'pulled' | 'tabs' | 'pills' | 'lite' | 'card' | 'primary' | 'secondary' | 'thirdly' | 'secondary-divider';\nexport type ThyNavSize = 'lg' | 'md' | 'sm';\nexport type ThyNavHorizontal = '' | 'start' | 'center' | 'end';\n\nconst navTypeClassesMap = {\n pulled: ['thy-nav-pulled'],\n tabs: ['thy-nav-tabs'],\n pills: ['thy-nav-pills'],\n lite: ['thy-nav-lite'],\n card: ['thy-nav-card'],\n //如下类型已经废弃\n primary: ['thy-nav-primary'],\n secondary: ['thy-nav-secondary'],\n thirdly: ['thy-nav-thirdly'],\n 'secondary-divider': ['thy-nav-secondary-divider']\n};\n\nconst navSizeClassesMap = {\n lg: 'thy-nav-lg',\n md: 'thy-nav-md',\n sm: 'thy-nav-sm'\n};\n\nconst tabItemRight = 20;\n\n/**\n * 导航组件\n * @name thy-nav\n * @order 10\n */\n@Component({\n selector: 'thy-nav',\n templateUrl: './nav.component.html',\n host: {\n class: 'thy-nav'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n NgTemplateOutlet,\n ThyNavItemDirective,\n ThyIcon,\n ThyNavInkBarDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemActiveDirective,\n BypassSecurityTrustHtmlPipe\n ]\n})\nexport class ThyNav implements OnInit, AfterViewInit, AfterContentInit, AfterContentChecked, OnChanges, OnDestroy {\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n private popover = inject(ThyPopover);\n\n private readonly destroyRef = inject(DestroyRef);\n\n public type: ThyNavType = 'pulled';\n private size: ThyNavSize = 'md';\n public initialized = false;\n\n public horizontal: ThyNavHorizontal;\n public wrapperOffset: { height: number; width: number; left: number; top: number } = {\n height: 0,\n width: 0,\n left: 0,\n top: 0\n };\n\n public hiddenItems: ThyNavItemDirective[] = [];\n\n public moreActive: boolean;\n\n readonly showMore: WritableSignal<boolean> = signal(false);\n\n private moreBtnOffset: { height: number; width: number } = { height: 0, width: 0 };\n\n private hostRenderer = useHostRenderer();\n\n private innerLinks: QueryList<ThyNavItemDirective>;\n\n locale: Signal<ThyNavLocale> = injectLocale('nav');\n\n /**\n * 导航类型\n * @type pulled | tabs | pills | lite | primary | secondary | thirdly | secondary-divider\n * @default pulled\n */\n @Input()\n set thyType(type: ThyNavType) {\n this.type = type || 'pulled';\n if (this.initialized) {\n this.updateClasses();\n }\n }\n\n /**\n * 导航大小\n * @type lg | md | sm\n * @default md\n */\n @Input()\n set thySize(size: ThyNavSize) {\n this.size = size;\n if (this.initialized) {\n this.updateClasses();\n }\n }\n\n /**\n * 水平排列\n * @type '' | 'start' | 'center' | 'end'\n * @default false\n */\n @Input()\n set thyHorizontal(horizontal: ThyNavHorizontal) {\n this.horizontal = (horizontal as string) === 'right' ? 'end' : horizontal;\n }\n\n /**\n * 是否垂直排列\n * @default false\n */\n @HostBinding('class.thy-nav--vertical')\n @Input({ transform: coerceBooleanProperty })\n thyVertical: boolean;\n\n /**\n * 是否是填充模式\n */\n @HostBinding('class.thy-nav--fill')\n @Input({ transform: coerceBooleanProperty })\n thyFill: boolean = false;\n\n /**\n * 是否响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n thyResponsive: boolean;\n\n /**\n * 支持暂停自适应计算\n */\n thyPauseReCalculate = input<boolean>(false);\n\n /**\n * 更多操作的菜单点击内部是否可关闭\n * @deprecated please use thyPopoverOptions\n */\n @Input({ transform: coerceBooleanProperty })\n thyInsideClosable = true;\n\n /**\n * 更多菜单弹出框的参数,底层使用 Popover 组件\n * @type ThyPopoverConfig\n */\n thyPopoverOptions = input<ThyPopoverConfig<unknown>>(null);\n\n /**\n * 右侧额外区域模板\n * @type TemplateRef\n */\n @Input() thyExtra: TemplateRef<unknown>;\n\n /**\n * @private\n */\n @ContentChildren(ThyNavItemDirective, { descendants: true })\n set links(value) {\n this.innerLinks = value;\n this.prevActiveIndex = NaN;\n }\n get links(): QueryList<ThyNavItemDirective> {\n return this.innerLinks;\n }\n\n /**\n * @private\n */\n @ContentChildren(RouterLinkActive, { descendants: true }) routers: QueryList<RouterLinkActive>;\n\n /**\n * 响应式模式下更多操作模板\n * @type TemplateRef\n */\n @ContentChild('more') moreOperation: TemplateRef<unknown>;\n\n /**\n * 响应式模式下更多弹框模板\n * @type TemplateRef\n */\n @ContentChild('morePopover') morePopover: TemplateRef<unknown>;\n\n /**\n * 右侧额外区域模板,支持 thyExtra 传参和 <ng-template #extra></ng-template> 模板\n * @name extra\n * @type TemplateRef\n */\n @ContentChild('extra') extra: TemplateRef<unknown>;\n\n @ViewChild('moreOperationContainer') defaultMoreOperation: ElementRef<HTMLAnchorElement>;\n\n @ViewChild(ThyNavInkBarDirective, { static: true }) inkBar!: ThyNavInkBarDirective;\n\n get showInkBar(): boolean {\n const showTypes: ThyNavType[] = ['pulled', 'tabs'];\n return showTypes.includes(this.type);\n }\n\n private updateClasses() {\n let classNames: string[] = [];\n if (navTypeClassesMap[this.type]) {\n classNames = [...navTypeClassesMap[this.type]];\n }\n if (navSizeClassesMap[this.size]) {\n classNames.push(navSizeClassesMap[this.size]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n private curActiveIndex: number;\n\n private prevActiveIndex: number = NaN;\n\n private navSubscription: { unsubscribe: () => void } | null = null;\n\n ngOnInit() {\n if (!this.thyResponsive) {\n this.initialized = true;\n }\n\n this.updateClasses();\n }\n\n ngAfterViewInit() {\n if (this.thyResponsive) {\n this.setMoreBtnOffset();\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.setMoreBtnOffset();\n this.links.toArray().forEach(link => link.setOffset());\n this.setHiddenItems();\n });\n }\n\n this.ngZone.runOutsideAngular(() => {\n this.links.changes.pipe(startWith(this.links), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.navSubscription) {\n this.navSubscription.unsubscribe();\n }\n\n this.navSubscription = merge(\n this.createResizeObserver(this.elementRef.nativeElement),\n ...this.links.map(item => this.createResizeObserver(item.elementRef.nativeElement).pipe(tap(() => item.setOffset()))),\n ...(this.routers || []).map(router => router?.isActiveChange)\n )\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap(() => {\n if (this.thyPauseReCalculate()) {\n return;\n }\n\n if (this.thyResponsive) {\n this.setMoreBtnOffset();\n this.resetSizes();\n this.setHiddenItems();\n this.calculateMoreIsActive();\n }\n\n if (this.type === 'card') {\n this.setNavItemDivider();\n }\n })\n )\n .subscribe(() => {\n this.alignInkBarToSelectedTab();\n });\n });\n });\n }\n\n ngAfterContentInit(): void {\n if (this.thyResponsive) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.resetSizes();\n });\n }\n }\n\n ngAfterContentChecked() {\n this.calculateMoreIsActive();\n\n this.curActiveIndex = this.links && this.links.length ? this.links.toArray().findIndex(item => item.linkIsActive()) : -1;\n if (this.curActiveIndex < 0) {\n this.inkBar.hide();\n } else if (this.curActiveIndex !== this.prevActiveIndex) {\n this.alignInkBarToSelectedTab();\n }\n }\n\n private setMoreBtnOffset() {\n const computedStyle = window.getComputedStyle(this.defaultMoreOperation?.nativeElement);\n this.moreBtnOffset = {\n height: this.defaultMoreOperation?.nativeElement?.offsetHeight + parseFloat(computedStyle?.marginBottom) || 0,\n width: this.defaultMoreOperation?.nativeElement?.offsetWidth + parseFloat(computedStyle?.marginRight) || 0\n };\n }\n\n private setNavItemDivider() {\n const tabs = this.links.toArray();\n const activeIndex = tabs.findIndex(item => item.linkIsActive());\n\n for (let i = 0; i < tabs.length; i++) {\n if ((i !== activeIndex && i !== activeIndex - 1 && i !== tabs.length - 1) || (i === activeIndex - 1 && this.moreActive)) {\n tabs[i].addClass('has-right-divider');\n } else {\n tabs[i].removeClass('has-right-divider');\n }\n }\n }\n\n createResizeObserver(element: HTMLElement) {\n return typeof ResizeObserver === 'undefined'\n ? of(null)\n : new Observable(observer => {\n const resize = new ResizeObserver(entries => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n\n private calculateMoreIsActive() {\n this.moreActive = this.hiddenItems.some(item => {\n return item.linkIsActive();\n });\n this.changeDetectorRef.detectChanges();\n }\n\n private setHiddenItems() {\n this.moreActive = false;\n const tabs = this.links.toArray();\n if (!tabs.length) {\n this.hiddenItems = [];\n this.showMore.set(false);\n return;\n }\n\n const endIndex = this.thyVertical ? this.getShowItemsEndIndexWhenVertical(tabs) : this.getShowItemsEndIndexWhenHorizontal(tabs);\n\n const showItems = tabs.slice(0, endIndex + 1);\n (showItems || []).forEach(item => {\n item.setNavLinkHidden(false);\n });\n\n this.hiddenItems = endIndex === tabs.length - 1 ? [] : tabs.slice(endIndex + 1);\n (this.hiddenItems || []).forEach(item => {\n item.setNavLinkHidden(true);\n });\n\n this.showMore.set(this.hiddenItems.length > 0);\n this.initialized = true;\n }\n\n private getShowItemsEndIndexWhenHorizontal(tabs: ThyNavItemDirective[]) {\n const tabsLength = tabs.length;\n let endIndex = tabsLength;\n let totalWidth = 0;\n\n for (let i = 0; i < tabsLength; i += 1) {\n const _totalWidth = i === tabsLength - 1 ? totalWidth + tabs[i].offset.width : totalWidth + tabs[i].offset.width + tabItemRight;\n if (_totalWidth > this.wrapperOffset.width) {\n let moreOperationWidth = this.moreBtnOffset.width;\n if (totalWidth + moreOperationWidth <= this.wrapperOffset.width) {\n endIndex = i - 1;\n } else {\n endIndex = i - 2;\n }\n break;\n } else {\n totalWidth = _totalWidth;\n endIndex = i;\n }\n }\n return endIndex;\n }\n\n private getShowItemsEndIndexWhenVertical(tabs: ThyNavItemDirective[]) {\n const tabsLength = tabs.length;\n let endIndex = tabsLength;\n let totalHeight = 0;\n for (let i = 0; i < tabsLength; i += 1) {\n const _totalHeight = totalHeight + tabs[i].offset.height;\n if (_totalHeight > this.wrapperOffset.height) {\n let moreOperationHeight = this.moreBtnOffset.height;\n if (totalHeight + moreOperationHeight <= this.wrapperOffset.height) {\n endIndex = i - 1;\n } else {\n endIndex = i - 2;\n }\n break;\n } else {\n totalHeight = _totalHeight;\n endIndex = i;\n }\n }\n return endIndex;\n }\n\n private resetSizes() {\n this.wrapperOffset = {\n height: this.elementRef.nativeElement.offsetHeight || 0,\n width: this.elementRef.nativeElement.offsetWidth || 0,\n left: this.elementRef.nativeElement.offsetLeft || 0,\n top: this.elementRef.nativeElement.offsetTop || 0\n };\n }\n\n openMoreMenu(event: Event, template: TemplateRef<any>) {\n this.popover.open(\n template,\n Object.assign(\n {\n origin: event.currentTarget as HTMLElement,\n hasBackdrop: true,\n backdropClosable: true,\n insideClosable: true,\n placement: 'bottom' as ThyPlacement,\n panelClass: 'thy-nav-list-popover',\n originActiveClass: 'thy-nav-origin-active'\n },\n this.thyPopoverOptions() ? this.thyPopoverOptions() : {}\n )\n );\n }\n\n navItemClick(item: ThyNavItemDirective) {\n item.elementRef.nativeElement.click();\n }\n\n private alignInkBarToSelectedTab(): void {\n if (!this.showInkBar) {\n this.inkBar.hide();\n return;\n }\n const tabs = this.links?.toArray() ?? [];\n const selectedItem = tabs.find(item => item.linkIsActive());\n let selectedItemElement: HTMLElement = selectedItem && selectedItem.elementRef.nativeElement;\n\n if (selectedItem && this.moreActive) {\n selectedItemElement = this.defaultMoreOperation.nativeElement;\n }\n if (selectedItemElement) {\n this.prevActiveIndex = this.curActiveIndex;\n this.inkBar.alignToElement(selectedItemElement);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyVertical, thyType } = changes;\n\n if (thyType?.currentValue !== thyType?.previousValue || thyVertical?.currentValue !== thyVertical?.previousValue) {\n this.alignInkBarToSelectedTab();\n }\n }\n\n ngOnDestroy() {\n if (this.navSubscription) {\n this.navSubscription.unsubscribe();\n }\n }\n}\n","<div class=\"thy-nav-list\" [ngClass]=\"horizontal ? 'justify-content-' + horizontal : ''\" #navList>\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n @if (thyResponsive) {\n <a\n href=\"javascript:;\"\n class=\"thy-nav-more-container\"\n [class.d-none]=\"!showMore()\"\n [class.invisible]=\"!initialized\"\n #moreOperationContainer\n thyNavLink\n [thyNavItemActive]=\"moreActive\"\n (click)=\"openMoreMenu($event, navListPopover)\">\n @if (moreOperation) {\n <ng-container [ngTemplateOutlet]=\"moreOperation\"></ng-container>\n } @else {\n {{ locale().more }}\n <thy-icon thyIconName=\"angle-down\" class=\"thy-nav-more-icon\"></thy-icon>\n }\n </a>\n }\n @if (thyExtra || extra) {\n <div class=\"thy-nav-extra\">\n <ng-container [ngTemplateOutlet]=\"thyExtra || extra\"></ng-container>\n </div>\n }\n <thy-nav-ink-bar [showInkBar]=\"showInkBar\" [isVertical]=\"thyVertical\"></thy-nav-ink-bar>\n</div>\n\n<ng-template #navListPopover>\n @if (morePopover) {\n <ng-container [ngTemplateOutlet]=\"morePopover\" [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"></ng-container>\n } @else {\n <thy-dropdown-menu thyImmediateRender>\n @for (item of hiddenItems; track $index) {\n <span\n class=\"thy-nav-item-more\"\n thyDropdownMenuItem\n [thyDropdownMenuItemActive]=\"item.isActive\"\n (click)=\"navItemClick(item)\"\n [innerHTML]=\"item.elementRef.nativeElement.innerHTML | bypassSecurityTrustHtml\"></span>\n }\n </thy-dropdown-menu>\n }\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { ThyDropdownModule } from 'ngx-tethys/dropdown';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { ThyIconNavLink } from './icon-nav/icon-nav-link.directive';\nimport { ThyIconNav } from './icon-nav/icon-nav.component';\nimport { ThyNavInkBarDirective } from './nav-ink-bar.directive';\nimport { ThyNavItemDirective } from './nav-item.directive';\nimport { ThyNav } from './nav.component';\nimport { BypassSecurityTrustHtmlPipe } from './nav.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyIconModule,\n ThyPopoverModule,\n ThyDropdownModule,\n RouterModule,\n ThyNav,\n ThyNavItemDirective,\n ThyIconNav,\n ThyIconNavLink,\n BypassSecurityTrustHtmlPipe,\n ThyNavInkBarDirective\n ],\n exports: [ThyNav, ThyNavItemDirective, ThyIconNav, ThyIconNavLink, BypassSecurityTrustHtmlPipe]\n})\nexport class ThyNavModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-nav.mjs","sources":["../../../src/nav/icon-nav/icon-nav-link.directive.ts","../../../src/nav/icon-nav/icon-nav.component.ts","../../../src/nav/icon-nav/icon-nav.component.html","../../../src/nav/nav-item.directive.ts","../../../src/nav/nav-ink-bar.directive.ts","../../../src/nav/nav.pipe.ts","../../../src/nav/nav.component.ts","../../../src/nav/nav.component.html","../../../src/nav/nav.module.ts","../../../src/nav/ngx-tethys-nav.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[thyIconNavLink]',\n template: '<ng-content></ng-content>@if (thyIconNavLinkIcon()) {<thy-icon [thyIconName]=\"thyIconNavLinkIcon()\"></thy-icon>}',\n host: {\n '[class.active]': 'thyIconNavLinkActive()',\n '[class.thy-icon-nav-link]': 'true'\n },\n imports: [ThyIcon]\n})\nexport class ThyIconNavLink {\n readonly thyIconNavLinkIcon = input<string>('');\n\n readonly thyIconNavLinkActive = input(false, { transform: coerceBooleanProperty });\n}\n","import { ChangeDetectionStrategy, Component, effect, HostBinding, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { warnDeprecation } from 'ngx-tethys/util';\n\ntype IconNavTypes = 'primary' | 'secondary' | 'individual' | '';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-icon-nav',\n templateUrl: './icon-nav.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyIconNav {\n private hostRenderer = useHostRenderer();\n\n @HostBinding(`class.thy-icon-nav`) isIconNav = true;\n\n readonly thyType = input<IconNavTypes>('');\n\n private updateClasses() {\n this.hostRenderer.updateClass(this.thyType() ? [`thy-icon-nav-${this.thyType()}`] : []);\n }\n\n constructor() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warnDeprecation('thy-icon-nav has been deprecated, please use thyAction and thy-space components instead of it');\n }\n\n effect(() => {\n this.updateClasses();\n });\n }\n}\n","<ng-content></ng-content>\n","import { AfterViewInit, contentChildren, DestroyRef, Directive, ElementRef, forwardRef, inject, input, NgZone } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RouterLinkActive } from '@angular/router';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport type ThyNavLink = '' | 'active';\n\n/**\n * 导航项\n * @name thyNavItem\n * @order 20\n */\n@Directive({\n selector: '[thyNavLink],[thyNavItem]',\n host: {\n class: 'thy-nav-item',\n '[class.active]': 'thyNavItemActive() || thyNavLinkActive()',\n '[class.disabled]': 'thyNavItemDisabled()'\n }\n})\nexport class ThyNavItemDirective implements AfterViewInit {\n elementRef = inject(ElementRef);\n private routerLinkActive = inject(RouterLinkActive, { optional: true })!;\n private ngZone = inject(NgZone);\n\n /**\n * 唯一标识\n */\n id = input<string>();\n\n /**\n * 是否激活状态\n * @default false\n */\n readonly thyNavItemActive = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 已经废弃,请使用 thyNavItemActive\n * @deprecated please use thyNavItemActive\n * @default false\n */\n readonly thyNavLinkActive = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用\n * @default false\n */\n readonly thyNavItemDisabled = input(false, { transform: coerceBooleanProperty });\n\n /**\n * @private\n */\n readonly links = contentChildren(\n forwardRef(() => ThyNavItemDirective),\n { descendants: true }\n );\n\n /**\n * @private\n */\n readonly routers = contentChildren(RouterLinkActive, { descendants: true });\n\n // @HostBinding('attr.href') navLinkHref = 'javascript:;';\n\n public offset: {\n width: number;\n height: number;\n left: number;\n top: number;\n } = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n public content: HTMLElement;\n\n public isActive: boolean;\n\n private hostRenderer = useHostRenderer();\n\n private readonly destroyRef = inject(DestroyRef);\n\n ngAfterViewInit() {\n this.setOffset();\n\n this.content = this.elementRef.nativeElement.outerHTML;\n\n this.ngZone.onStable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.isActive = this.linkIsActive();\n });\n }\n\n setOffset() {\n this.offset = {\n width: this.elementRef.nativeElement.offsetWidth || this.offset.width,\n height: this.elementRef.nativeElement.offsetHeight || this.offset.height,\n left: this.elementRef.nativeElement.offsetLeft || this.offset.left,\n top: this.elementRef.nativeElement.offsetTop || this.offset.top\n };\n }\n\n linkIsActive() {\n const links = this.links();\n return (\n this.thyNavItemActive() ||\n this.thyNavLinkActive() ||\n (this.routerLinkActive && this.routerLinkActive.isActive) ||\n this.routers().some(router => router.isActive) ||\n links.some(item => item.thyNavItemActive()) ||\n links.some(item => item.thyNavLinkActive())\n );\n }\n\n setNavLinkHidden(value: boolean) {\n if (value) {\n this.hostRenderer.addClass('thy-nav-item-hidden');\n } else {\n this.hostRenderer.removeClass('thy-nav-item-hidden');\n }\n }\n\n addClass(className: string) {\n this.hostRenderer.addClass(className);\n }\n\n removeClass(className: string) {\n this.hostRenderer.removeClass(className);\n }\n}\n","import { ANIMATION_MODULE_TYPE, Directive, ElementRef, NgZone, computed, inject, input } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { take } from 'rxjs/operators';\n\n/**\n * @internal\n */\n@Directive({\n selector: 'thy-nav-ink-bar, [thyNavInkBar]',\n host: {\n class: 'thy-nav-ink-bar',\n '[class.thy-nav-ink-bar-animated]': 'animated()'\n }\n})\nexport class ThyNavInkBarDirective {\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private ngZone = inject(NgZone);\n animationMode? = inject(ANIMATION_MODULE_TYPE, { optional: true });\n\n readonly isVertical = input(false, { transform: coerceBooleanProperty });\n\n readonly showInkBar = input(false, { transform: coerceBooleanProperty });\n\n readonly animated = computed(() => this.animationMode !== 'NoopAnimations' && this.showInkBar());\n\n public alignToElement(element: HTMLElement): void {\n this.show();\n this.ngZone.run(() => {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.setStyles(element);\n });\n });\n }\n\n private setStyles(element: HTMLElement): void {\n const inkBar: HTMLElement = this.elementRef.nativeElement;\n if (!this.isVertical()) {\n inkBar.style.top = '';\n inkBar.style.bottom = '0px';\n inkBar.style.height = '2px';\n inkBar.style.left = this.getLeftPosition(element);\n inkBar.style.width = this.getElementWidth(element);\n } else {\n inkBar.style.left = '';\n inkBar.style.width = '2px';\n inkBar.style.top = this.getTopPosition(element);\n inkBar.style.height = this.getElementHeight(element);\n }\n }\n\n private getLeftPosition(element: HTMLElement): string {\n return element ? `${element.offsetLeft || 0}px` : '0';\n }\n\n private getElementWidth(element: HTMLElement): string {\n return element ? `${element.offsetWidth || 0}px` : '0';\n }\n\n private getTopPosition(element: HTMLElement): string {\n return element ? `${element.offsetTop || 0}px` : '0';\n }\n\n private getElementHeight(element: HTMLElement): string {\n return element ? `${element.offsetHeight || 0}px` : '0';\n }\n\n private show() {\n this.elementRef.nativeElement.style.visibility = 'visible';\n }\n\n public hide() {\n this.elementRef.nativeElement.style.visibility = 'hidden';\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * @private\n */\n@Pipe({\n name: 'bypassSecurityTrustHtml'\n})\nexport class BypassSecurityTrustHtmlPipe implements PipeTransform {\n private sanitizer = inject(DomSanitizer);\n\n transform(format: string): any {\n return this.sanitizer.bypassSecurityTrustHtml(format);\n }\n}\n","import {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n contentChild,\n ContentChildren,\n contentChildren,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n signal,\n Signal,\n SimpleChanges,\n TemplateRef,\n viewChild,\n WritableSignal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyPopover, ThyPopoverConfig } from 'ngx-tethys/popover';\nimport { merge, Observable, of } from 'rxjs';\nimport { startWith, take, tap } from 'rxjs/operators';\n\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { RouterLinkActive } from '@angular/router';\nimport { ThyPlacement } from 'ngx-tethys/core';\nimport { ThyDropdownMenuComponent, ThyDropdownMenuItemActiveDirective, ThyDropdownMenuItemDirective } from 'ngx-tethys/dropdown';\nimport { injectLocale, ThyNavLocale } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyNavInkBarDirective } from './nav-ink-bar.directive';\nimport { ThyNavItemDirective } from './nav-item.directive';\nimport { BypassSecurityTrustHtmlPipe } from './nav.pipe';\n\nexport type ThyNavType = 'pulled' | 'tabs' | 'pills' | 'lite' | 'card' | 'primary' | 'secondary' | 'thirdly' | 'secondary-divider';\nexport type ThyNavSize = 'lg' | 'md' | 'sm';\nexport type ThyNavHorizontal = '' | 'start' | 'center' | 'end';\n\nconst navTypeClassesMap = {\n pulled: ['thy-nav-pulled'],\n tabs: ['thy-nav-tabs'],\n pills: ['thy-nav-pills'],\n lite: ['thy-nav-lite'],\n card: ['thy-nav-card'],\n //如下类型已经废弃\n primary: ['thy-nav-primary'],\n secondary: ['thy-nav-secondary'],\n thirdly: ['thy-nav-thirdly'],\n 'secondary-divider': ['thy-nav-secondary-divider']\n};\n\nconst navSizeClassesMap = {\n lg: 'thy-nav-lg',\n md: 'thy-nav-md',\n sm: 'thy-nav-sm'\n};\n\nconst tabItemRight = 20;\n\n/**\n * 导航组件\n * @name thy-nav\n * @order 10\n */\n@Component({\n selector: 'thy-nav',\n templateUrl: './nav.component.html',\n host: {\n '[class.thy-nav]': 'true',\n '[class.thy-nav--vertical]': 'thyVertical()',\n '[class.thy-nav--fill]': 'thyFill()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n NgClass,\n NgTemplateOutlet,\n ThyNavItemDirective,\n ThyIcon,\n ThyNavInkBarDirective,\n ThyDropdownMenuComponent,\n ThyDropdownMenuItemDirective,\n ThyDropdownMenuItemActiveDirective,\n BypassSecurityTrustHtmlPipe\n ]\n})\nexport class ThyNav implements OnInit, AfterViewInit, AfterContentInit, AfterContentChecked, OnChanges, OnDestroy {\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private changeDetectorRef = inject(ChangeDetectorRef);\n private popover = inject(ThyPopover);\n\n private readonly destroyRef = inject(DestroyRef);\n\n public initialized = false;\n public wrapperOffset: { height: number; width: number; left: number; top: number } = {\n height: 0,\n width: 0,\n left: 0,\n top: 0\n };\n\n public hiddenItems: ThyNavItemDirective[] = [];\n\n public moreActive: boolean;\n\n readonly showMore: WritableSignal<boolean> = signal(false);\n\n private moreBtnOffset: { height: number; width: number } = { height: 0, width: 0 };\n\n private hostRenderer = useHostRenderer();\n\n private innerLinks: QueryList<ThyNavItemDirective>;\n\n locale: Signal<ThyNavLocale> = injectLocale('nav');\n\n /**\n * 导航类型\n * @type pulled | tabs | pills | lite | primary | secondary | thirdly | secondary-divider\n * @default pulled\n */\n readonly thyType = input<ThyNavType>();\n\n /**\n * 导航大小\n * @type lg | md | sm\n * @default md\n */\n readonly thySize = input<ThyNavSize>('md');\n\n /**\n * 水平排列\n * @type '' | 'start' | 'center' | 'end'\n * @default false\n */\n readonly thyHorizontal = input<ThyNavHorizontal>('');\n\n /**\n * 是否垂直排列\n * @default false\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否是填充模式\n */\n readonly thyFill = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n * @default false\n */\n readonly thyResponsive = input(undefined, { transform: coerceBooleanProperty });\n\n /**\n * 支持暂停自适应计算\n */\n thyPauseReCalculate = input<boolean>(false);\n\n /**\n * 更多操作的菜单点击内部是否可关闭\n * @deprecated please use thyPopoverOptions\n */\n readonly thyInsideClosable = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 更多菜单弹出框的参数,底层使用 Popover 组件\n * @type ThyPopoverConfig\n */\n thyPopoverOptions = input<ThyPopoverConfig<unknown>>(null);\n\n /**\n * 右侧额外区域模板\n * @type TemplateRef\n */\n readonly thyExtra = input<TemplateRef<unknown>>();\n\n /**\n * @private\n */\n @ContentChildren(ThyNavItemDirective, { descendants: true })\n set links(value) {\n this.innerLinks = value;\n this.prevActiveIndex = NaN;\n }\n get links(): QueryList<ThyNavItemDirective> {\n return this.innerLinks;\n }\n\n /**\n * @private\n */\n readonly routers = contentChildren(RouterLinkActive, { descendants: true });\n\n /**\n * 响应式模式下更多操作模板\n * @type TemplateRef\n */\n readonly moreOperation = contentChild<TemplateRef<unknown>>('more');\n\n /**\n * 响应式模式下更多弹框模板\n * @type TemplateRef\n */\n readonly morePopover = contentChild<TemplateRef<unknown>>('morePopover');\n\n /**\n * 右侧额外区域模板,支持 thyExtra 传参和 <ng-template #extra></ng-template> 模板\n * @name extra\n * @type TemplateRef\n */\n readonly extra = contentChild<TemplateRef<unknown>>('extra');\n\n readonly defaultMoreOperation = viewChild<ElementRef<HTMLAnchorElement>>('moreOperationContainer');\n\n readonly inkBar = viewChild.required(ThyNavInkBarDirective);\n\n readonly horizontal = computed(() => {\n const horizontalValue = this.thyHorizontal() as string;\n return horizontalValue === 'right' ? 'end' : horizontalValue;\n });\n\n get showInkBar(): boolean {\n const showTypes: ThyNavType[] = ['pulled', 'tabs'];\n return showTypes.includes(this.type());\n }\n\n private updateClasses() {\n let classNames: string[] = [];\n if (navTypeClassesMap[this.type()]) {\n classNames = [...navTypeClassesMap[this.type()]];\n }\n if (navSizeClassesMap[this.thySize()]) {\n classNames.push(navSizeClassesMap[this.thySize()]);\n }\n this.hostRenderer.updateClass(classNames);\n }\n\n private curActiveIndex: number;\n\n private prevActiveIndex: number = NaN;\n\n private navSubscription: { unsubscribe: () => void } | null = null;\n\n readonly type = computed(() => this.thyType() || 'pulled');\n\n constructor() {\n effect(() => {\n this.updateClasses();\n });\n }\n\n ngOnInit() {\n if (!this.thyResponsive()) {\n this.initialized = true;\n }\n }\n\n ngAfterViewInit() {\n if (this.thyResponsive()) {\n this.setMoreBtnOffset();\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.setMoreBtnOffset();\n this.links.toArray().forEach(link => link.setOffset());\n this.setHiddenItems();\n });\n }\n\n this.ngZone.runOutsideAngular(() => {\n this.links.changes.pipe(startWith(this.links), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.navSubscription) {\n this.navSubscription.unsubscribe();\n }\n\n this.navSubscription = merge(\n this.createResizeObserver(this.elementRef.nativeElement),\n ...this.links.map(item => this.createResizeObserver(item.elementRef.nativeElement).pipe(tap(() => item.setOffset()))),\n ...(this.routers() || []).map(router => router?.isActiveChange)\n )\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap(() => {\n if (this.thyPauseReCalculate()) {\n return;\n }\n\n if (this.thyResponsive()) {\n this.setMoreBtnOffset();\n this.resetSizes();\n this.setHiddenItems();\n this.calculateMoreIsActive();\n }\n\n if (this.type() === 'card') {\n this.setNavItemDivider();\n }\n })\n )\n .subscribe(() => {\n this.alignInkBarToSelectedTab();\n });\n });\n });\n }\n\n ngAfterContentInit(): void {\n if (this.thyResponsive()) {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.resetSizes();\n });\n }\n }\n\n ngAfterContentChecked() {\n this.calculateMoreIsActive();\n\n this.curActiveIndex = this.links && this.links.length ? this.links.toArray().findIndex(item => item.linkIsActive()) : -1;\n if (this.curActiveIndex < 0) {\n this.inkBar().hide();\n } else if (this.curActiveIndex !== this.prevActiveIndex) {\n this.alignInkBarToSelectedTab();\n }\n }\n\n private setMoreBtnOffset() {\n const defaultMoreOperation = this.defaultMoreOperation();\n const computedStyle = window.getComputedStyle(defaultMoreOperation?.nativeElement);\n this.moreBtnOffset = {\n height: defaultMoreOperation?.nativeElement?.offsetHeight + parseFloat(computedStyle?.marginBottom) || 0,\n width: defaultMoreOperation?.nativeElement?.offsetWidth + parseFloat(computedStyle?.marginRight) || 0\n };\n }\n\n private setNavItemDivider() {\n const tabs = this.links.toArray();\n const activeIndex = tabs.findIndex(item => item.linkIsActive());\n\n for (let i = 0; i < tabs.length; i++) {\n if ((i !== activeIndex && i !== activeIndex - 1 && i !== tabs.length - 1) || (i === activeIndex - 1 && this.moreActive)) {\n tabs[i].addClass('has-right-divider');\n } else {\n tabs[i].removeClass('has-right-divider');\n }\n }\n }\n\n createResizeObserver(element: HTMLElement) {\n return typeof ResizeObserver === 'undefined'\n ? of(null)\n : new Observable(observer => {\n const resize = new ResizeObserver(entries => {\n observer.next(entries);\n });\n resize.observe(element);\n return () => {\n resize.disconnect();\n };\n });\n }\n\n private calculateMoreIsActive() {\n this.moreActive = this.hiddenItems.some(item => {\n return item.linkIsActive();\n });\n this.changeDetectorRef.detectChanges();\n }\n\n private setHiddenItems() {\n this.moreActive = false;\n const tabs = this.links.toArray();\n if (!tabs.length) {\n this.hiddenItems = [];\n this.showMore.set(false);\n return;\n }\n\n const endIndex = this.thyVertical() ? this.getShowItemsEndIndexWhenVertical(tabs) : this.getShowItemsEndIndexWhenHorizontal(tabs);\n\n const showItems = tabs.slice(0, endIndex + 1);\n (showItems || []).forEach(item => {\n item.setNavLinkHidden(false);\n });\n\n this.hiddenItems = endIndex === tabs.length - 1 ? [] : tabs.slice(endIndex + 1);\n (this.hiddenItems || []).forEach(item => {\n item.setNavLinkHidden(true);\n });\n\n this.showMore.set(this.hiddenItems.length > 0);\n this.initialized = true;\n }\n\n private getShowItemsEndIndexWhenHorizontal(tabs: ThyNavItemDirective[]) {\n const tabsLength = tabs.length;\n let endIndex = tabsLength;\n let totalWidth = 0;\n\n for (let i = 0; i < tabsLength; i += 1) {\n const _totalWidth = i === tabsLength - 1 ? totalWidth + tabs[i].offset.width : totalWidth + tabs[i].offset.width + tabItemRight;\n if (_totalWidth > this.wrapperOffset.width) {\n let moreOperationWidth = this.moreBtnOffset.width;\n if (totalWidth + moreOperationWidth <= this.wrapperOffset.width) {\n endIndex = i - 1;\n } else {\n endIndex = i - 2;\n }\n break;\n } else {\n totalWidth = _totalWidth;\n endIndex = i;\n }\n }\n return endIndex;\n }\n\n private getShowItemsEndIndexWhenVertical(tabs: ThyNavItemDirective[]) {\n const tabsLength = tabs.length;\n let endIndex = tabsLength;\n let totalHeight = 0;\n for (let i = 0; i < tabsLength; i += 1) {\n const _totalHeight = totalHeight + tabs[i].offset.height;\n if (_totalHeight > this.wrapperOffset.height) {\n let moreOperationHeight = this.moreBtnOffset.height;\n if (totalHeight + moreOperationHeight <= this.wrapperOffset.height) {\n endIndex = i - 1;\n } else {\n endIndex = i - 2;\n }\n break;\n } else {\n totalHeight = _totalHeight;\n endIndex = i;\n }\n }\n return endIndex;\n }\n\n private resetSizes() {\n this.wrapperOffset = {\n height: this.elementRef.nativeElement.offsetHeight || 0,\n width: this.elementRef.nativeElement.offsetWidth || 0,\n left: this.elementRef.nativeElement.offsetLeft || 0,\n top: this.elementRef.nativeElement.offsetTop || 0\n };\n }\n\n openMoreMenu(event: Event, template: TemplateRef<any>) {\n this.popover.open(\n template,\n Object.assign(\n {\n origin: event.currentTarget as HTMLElement,\n hasBackdrop: true,\n backdropClosable: true,\n insideClosable: true,\n placement: 'bottom' as ThyPlacement,\n panelClass: 'thy-nav-list-popover',\n originActiveClass: 'thy-nav-origin-active'\n },\n this.thyPopoverOptions() ? this.thyPopoverOptions() : {}\n )\n );\n }\n\n navItemClick(item: ThyNavItemDirective) {\n item.elementRef.nativeElement.click();\n }\n\n private alignInkBarToSelectedTab(): void {\n if (!this.showInkBar) {\n this.inkBar().hide();\n return;\n }\n const tabs = this.links?.toArray() ?? [];\n const selectedItem = tabs.find(item => item.linkIsActive());\n let selectedItemElement: HTMLElement = selectedItem && selectedItem.elementRef.nativeElement;\n\n if (selectedItem && this.moreActive) {\n selectedItemElement = this.defaultMoreOperation().nativeElement;\n }\n if (selectedItemElement) {\n this.prevActiveIndex = this.curActiveIndex;\n this.inkBar().alignToElement(selectedItemElement);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyVertical, thyType } = changes;\n\n if (thyType?.currentValue !== thyType?.previousValue || thyVertical?.currentValue !== thyVertical?.previousValue) {\n this.alignInkBarToSelectedTab();\n }\n }\n\n ngOnDestroy() {\n if (this.navSubscription) {\n this.navSubscription.unsubscribe();\n }\n }\n}\n","<div class=\"thy-nav-list\" [ngClass]=\"horizontal() ? 'justify-content-' + horizontal() : ''\" #navList>\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n @if (thyResponsive()) {\n <a\n href=\"javascript:;\"\n class=\"thy-nav-more-container\"\n [class.d-none]=\"!showMore()\"\n [class.invisible]=\"!initialized\"\n #moreOperationContainer\n thyNavLink\n [thyNavItemActive]=\"moreActive\"\n (click)=\"openMoreMenu($event, navListPopover)\">\n @if (moreOperation()) {\n <ng-container [ngTemplateOutlet]=\"moreOperation()\"></ng-container>\n } @else {\n {{ locale().more }}\n <thy-icon thyIconName=\"angle-down\" class=\"thy-nav-more-icon\"></thy-icon>\n }\n </a>\n }\n @if (thyExtra() || extra()) {\n <div class=\"thy-nav-extra\">\n <ng-container [ngTemplateOutlet]=\"thyExtra() || extra()\"></ng-container>\n </div>\n }\n <thy-nav-ink-bar [showInkBar]=\"showInkBar\" [isVertical]=\"thyVertical()\"></thy-nav-ink-bar>\n</div>\n\n<ng-template #navListPopover>\n @if (morePopover()) {\n <ng-container [ngTemplateOutlet]=\"morePopover()\" [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"></ng-container>\n } @else {\n <thy-dropdown-menu thyImmediateRender>\n @for (item of hiddenItems; track $index) {\n <span\n class=\"thy-nav-item-more\"\n thyDropdownMenuItem\n [thyDropdownMenuItemActive]=\"item.isActive\"\n (click)=\"navItemClick(item)\"\n [innerHTML]=\"item.elementRef.nativeElement.innerHTML | bypassSecurityTrustHtml\"></span>\n }\n </thy-dropdown-menu>\n }\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { ThyDropdownModule } from 'ngx-tethys/dropdown';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { ThyIconNavLink } from './icon-nav/icon-nav-link.directive';\nimport { ThyIconNav } from './icon-nav/icon-nav.component';\nimport { ThyNavInkBarDirective } from './nav-ink-bar.directive';\nimport { ThyNavItemDirective } from './nav-item.directive';\nimport { ThyNav } from './nav.component';\nimport { BypassSecurityTrustHtmlPipe } from './nav.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyIconModule,\n ThyPopoverModule,\n ThyDropdownModule,\n RouterModule,\n ThyNav,\n ThyNavItemDirective,\n ThyIconNav,\n ThyIconNavLink,\n BypassSecurityTrustHtmlPipe,\n ThyNavInkBarDirective\n ],\n exports: [ThyNav, ThyNavItemDirective, ThyIconNav, ThyIconNavLink, BypassSecurityTrustHtmlPipe]\n})\nexport class ThyNavModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA;;AAEG;MAWU,cAAc,CAAA;AAV3B,IAAA,WAAA,GAAA;AAWa,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAS,EAAE,CAAC;QAEtC,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AACrF;8GAJY,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAPb,kHAAkH,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAKlH,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAER,cAAc,EAAA,UAAA,EAAA,CAAA;kBAV1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,kHAAkH;AAC5H,oBAAA,IAAI,EAAE;AACF,wBAAA,gBAAgB,EAAE,wBAAwB;AAC1C,wBAAA,2BAA2B,EAAE;AAChC,qBAAA;oBACD,OAAO,EAAE,CAAC,OAAO;AACpB,iBAAA;;;ACVD;;AAEG;MAMU,UAAU,CAAA;IAOX,aAAa,GAAA;QACjB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAgB,aAAA,EAAA,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,CAAC,GAAG,EAAE,CAAC;;AAG3F,IAAA,WAAA,GAAA;QAVQ,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE;QAEL,IAAS,CAAA,SAAA,GAAG,IAAI;AAE1C,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAe,EAAE,CAAC;AAOtC,QAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;YAC/C,eAAe,CAAC,+FAA+F,CAAC;;QAGpH,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,aAAa,EAAE;AACxB,SAAC,CAAC;;8GAlBG,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,oRCdvB,6BACA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDaa,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,SAAS;+BACI,cAAc,EAAA,eAAA,EAEP,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA;wDAKZ,SAAS,EAAA,CAAA;sBAA3C,WAAW;uBAAC,CAAoB,kBAAA,CAAA;;;AETrC;;;;AAIG;MASU,mBAAmB,CAAA;AARhC,IAAA,WAAA,GAAA;AASI,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE;AAChE,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAE/B;;AAEG;QACH,IAAE,CAAA,EAAA,GAAG,KAAK,EAAU;AAEpB;;;AAGG;QACM,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAE9E;;;;AAIG;QACM,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAE9E;;;AAGG;QACM,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAEhF;;AAEG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAC5B,UAAU,CAAC,MAAM,mBAAmB,CAAC,EACrC,EAAE,WAAW,EAAE,IAAI,EAAE,CACxB;AAED;;AAEG;QACM,IAAO,CAAA,OAAA,GAAG,eAAe,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;;AAIpE,QAAA,IAAA,CAAA,MAAM,GAKT;AACA,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,GAAG,EAAE;SACR;QAMO,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE;AAEvB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAgDnD;IA9CG,eAAe,GAAA;QACX,IAAI,CAAC,SAAS,EAAE;QAEhB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS;AAEtD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC1E,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;AACvC,SAAC,CAAC;;IAGN,SAAS,GAAA;QACL,IAAI,CAAC,MAAM,GAAG;AACV,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;AACrE,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;AACxE,YAAA,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;AAClE,YAAA,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC;SAC/D;;IAGL,YAAY,GAAA;AACR,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,QAAA,QACI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,CAAC,gBAAgB,EAAE;aACtB,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACzD,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3C,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;;AAInD,IAAA,gBAAgB,CAAC,KAAc,EAAA;QAC3B,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC;;aAC9C;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,qBAAqB,CAAC;;;AAI5D,IAAA,QAAQ,CAAC,SAAiB,EAAA;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAGzC,IAAA,WAAW,CAAC,SAAiB,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC;;8GA5GnC,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,0CAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAiCP,mBAAmB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAOL,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAxC1C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,cAAc;AACrB,wBAAA,gBAAgB,EAAE,0CAA0C;AAC5D,wBAAA,kBAAkB,EAAE;AACvB;AACJ,iBAAA;;;AChBD;;AAEG;MAQU,qBAAqB,CAAA;AAPlC,IAAA,WAAA,GAAA;AAQY,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,IAAa,CAAA,aAAA,GAAI,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAEzD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;QAE/D,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAE/D,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,KAAK,gBAAgB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AAkDnG;AAhDU,IAAA,cAAc,CAAC,OAAoB,EAAA;QACtC,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9C,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC3B,aAAC,CAAC;AACN,SAAC,CAAC;;AAGE,IAAA,SAAS,CAAC,OAAoB,EAAA;AAClC,QAAA,MAAM,MAAM,GAAgB,IAAI,CAAC,UAAU,CAAC,aAAa;AACzD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACpB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE;AACrB,YAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;AAC3B,YAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;YAC3B,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;;aAC/C;AACH,YAAA,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;AACtB,YAAA,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK;YAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;;;AAIpD,IAAA,eAAe,CAAC,OAAoB,EAAA;AACxC,QAAA,OAAO,OAAO,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAI,EAAA,CAAA,GAAG,GAAG;;AAGjD,IAAA,eAAe,CAAC,OAAoB,EAAA;AACxC,QAAA,OAAO,OAAO,GAAG,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAI,EAAA,CAAA,GAAG,GAAG;;AAGlD,IAAA,cAAc,CAAC,OAAoB,EAAA;AACvC,QAAA,OAAO,OAAO,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAI,EAAA,CAAA,GAAG,GAAG;;AAGhD,IAAA,gBAAgB,CAAC,OAAoB,EAAA;AACzC,QAAA,OAAO,OAAO,GAAG,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAI,EAAA,CAAA,GAAG,GAAG;;IAGnD,IAAI,GAAA;QACR,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS;;IAGvD,IAAI,GAAA;QACP,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ;;8GAzDpD,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,iBAAiB;AACxB,wBAAA,kCAAkC,EAAE;AACvC;AACJ,iBAAA;;;ACVD;;AAEG;MAIU,2BAA2B,CAAA;AAHxC,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAK3C;AAHG,IAAA,SAAS,CAAC,MAAc,EAAA;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,MAAM,CAAC;;8GAJhD,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACyCD,MAAM,iBAAiB,GAAG;IACtB,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,KAAK,EAAE,CAAC,eAAe,CAAC;IACxB,IAAI,EAAE,CAAC,cAAc,CAAC;IACtB,IAAI,EAAE,CAAC,cAAc,CAAC;;IAEtB,OAAO,EAAE,CAAC,iBAAiB,CAAC;IAC5B,SAAS,EAAE,CAAC,mBAAmB,CAAC;IAChC,OAAO,EAAE,CAAC,iBAAiB,CAAC;IAC5B,mBAAmB,EAAE,CAAC,2BAA2B;CACpD;AAED,MAAM,iBAAiB,GAAG;AACtB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,EAAE,EAAE;CACP;AAED,MAAM,YAAY,GAAG,EAAE;AAEvB;;;;AAIG;MAsBU,MAAM,CAAA;AA2Ff;;AAEG;IACH,IACI,KAAK,CAAC,KAAK,EAAA;AACX,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,eAAe,GAAG,GAAG;;AAE9B,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU;;AAoC1B,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,MAAM,SAAS,GAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClD,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;;IAGlC,aAAa,GAAA;QACjB,IAAI,UAAU,GAAa,EAAE;QAC7B,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;YAChC,UAAU,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;QAEpD,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;YACnC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;;AAEtD,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC;;AAW7C,IAAA,WAAA,GAAA;AA/JQ,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC7C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAEnB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAEzC,IAAW,CAAA,WAAA,GAAG,KAAK;AACnB,QAAA,IAAA,CAAA,aAAa,GAAiE;AACjF,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,GAAG,EAAE;SACR;QAEM,IAAW,CAAA,WAAA,GAA0B,EAAE;AAIrC,QAAA,IAAA,CAAA,QAAQ,GAA4B,MAAM,CAAC,KAAK,CAAC;QAElD,IAAa,CAAA,aAAA,GAAsC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QAE1E,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE;AAIxC,QAAA,IAAA,CAAA,MAAM,GAAyB,YAAY,CAAC,KAAK,CAAC;AAElD;;;;AAIG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,EAAc;AAEtC;;;;AAIG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAa,IAAI,CAAC;AAE1C;;;;AAIG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAmB,EAAE,CAAC;AAEpD;;;AAGG;QACM,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAEzE;;AAEG;QACM,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAErE;;;AAGG;QACM,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAE/E;;AAEG;AACH,QAAA,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAU,KAAK,CAAC;AAE3C;;;AAGG;QACM,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;AAE9E;;;AAGG;AACH,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA4B,IAAI,CAAC;AAE1D;;;AAGG;QACM,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAwB;AAcjD;;AAEG;QACM,IAAO,CAAA,OAAA,GAAG,eAAe,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAE3E;;;AAGG;AACM,QAAA,IAAA,CAAA,aAAa,GAAG,YAAY,CAAuB,MAAM,CAAC;AAEnE;;;AAGG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,YAAY,CAAuB,aAAa,CAAC;AAExE;;;;AAIG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,YAAY,CAAuB,OAAO,CAAC;AAEnD,QAAA,IAAA,CAAA,oBAAoB,GAAG,SAAS,CAAgC,wBAAwB,CAAC;AAEzF,QAAA,IAAA,CAAA,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AAElD,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAY;YACtD,OAAO,eAAe,KAAK,OAAO,GAAG,KAAK,GAAG,eAAe;AAChE,SAAC,CAAC;QAoBM,IAAe,CAAA,eAAA,GAAW,GAAG;QAE7B,IAAe,CAAA,eAAA,GAAuC,IAAI;AAEzD,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC;QAGtD,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,aAAa,EAAE;AACxB,SAAC,CAAC;;IAGN,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;;;IAI/B,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACtB,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBAC9C,IAAI,CAAC,gBAAgB,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtD,IAAI,CAAC,cAAc,EAAE;AACzB,aAAC,CAAC;;AAGN,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC/F,gBAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,oBAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;;AAGtC,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EACxD,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EACrH,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,cAAc,CAAC;qBAE9D,IAAI,CACD,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EACnC,GAAG,CAAC,MAAK;AACL,oBAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;wBAC5B;;AAGJ,oBAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;wBACtB,IAAI,CAAC,gBAAgB,EAAE;wBACvB,IAAI,CAAC,UAAU,EAAE;wBACjB,IAAI,CAAC,cAAc,EAAE;wBACrB,IAAI,CAAC,qBAAqB,EAAE;;AAGhC,oBAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;wBACxB,IAAI,CAAC,iBAAiB,EAAE;;AAEhC,iBAAC,CAAC;qBAEL,SAAS,CAAC,MAAK;oBACZ,IAAI,CAAC,wBAAwB,EAAE;AACnC,iBAAC,CAAC;AACV,aAAC,CAAC;AACN,SAAC,CAAC;;IAGN,kBAAkB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBAC9C,IAAI,CAAC,UAAU,EAAE;AACrB,aAAC,CAAC;;;IAIV,qBAAqB,GAAA;QACjB,IAAI,CAAC,qBAAqB,EAAE;AAE5B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;AACxH,QAAA,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;;aACjB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,eAAe,EAAE;YACrD,IAAI,CAAC,wBAAwB,EAAE;;;IAI/B,gBAAgB,GAAA;AACpB,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE;QACxD,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,aAAa,CAAC;QAClF,IAAI,CAAC,aAAa,GAAG;AACjB,YAAA,MAAM,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,GAAG,UAAU,CAAC,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC;AACxG,YAAA,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,GAAG,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI;SACvG;;IAGG,iBAAiB,GAAA;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACjC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;AAE/D,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,YAAA,IAAI,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE;gBACrH,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;;iBAClC;gBACH,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC;;;;AAKpD,IAAA,oBAAoB,CAAC,OAAoB,EAAA;QACrC,OAAO,OAAO,cAAc,KAAK;AAC7B,cAAE,EAAE,CAAC,IAAI;AACT,cAAE,IAAI,UAAU,CAAC,QAAQ,IAAG;AACtB,gBAAA,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,IAAG;AACxC,oBAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1B,iBAAC,CAAC;AACF,gBAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AACvB,gBAAA,OAAO,MAAK;oBACR,MAAM,CAAC,UAAU,EAAE;AACvB,iBAAC;AACL,aAAC,CAAC;;IAGJ,qBAAqB,GAAA;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAG;AAC3C,YAAA,OAAO,IAAI,CAAC,YAAY,EAAE;AAC9B,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;;IAGlC,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YACxB;;QAGJ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC;AAEjI,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC;QAC7C,CAAC,SAAS,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,IAAG;AAC7B,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAChC,SAAC,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC/E,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,IAAG;AACpC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC/B,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;;AAGnB,IAAA,kCAAkC,CAAC,IAA2B,EAAA;AAClE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;QAC9B,IAAI,QAAQ,GAAG,UAAU;QACzB,IAAI,UAAU,GAAG,CAAC;AAElB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;AACpC,YAAA,MAAM,WAAW,GAAG,CAAC,KAAK,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY;YAC/H,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AACxC,gBAAA,IAAI,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;gBACjD,IAAI,UAAU,GAAG,kBAAkB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC7D,oBAAA,QAAQ,GAAG,CAAC,GAAG,CAAC;;qBACb;AACH,oBAAA,QAAQ,GAAG,CAAC,GAAG,CAAC;;gBAEpB;;iBACG;gBACH,UAAU,GAAG,WAAW;gBACxB,QAAQ,GAAG,CAAC;;;AAGpB,QAAA,OAAO,QAAQ;;AAGX,IAAA,gCAAgC,CAAC,IAA2B,EAAA;AAChE,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;QAC9B,IAAI,QAAQ,GAAG,UAAU;QACzB,IAAI,WAAW,GAAG,CAAC;AACnB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE;AACpC,YAAA,MAAM,YAAY,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;YACxD,IAAI,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC1C,gBAAA,IAAI,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;gBACnD,IAAI,WAAW,GAAG,mBAAmB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAChE,oBAAA,QAAQ,GAAG,CAAC,GAAG,CAAC;;qBACb;AACH,oBAAA,QAAQ,GAAG,CAAC,GAAG,CAAC;;gBAEpB;;iBACG;gBACH,WAAW,GAAG,YAAY;gBAC1B,QAAQ,GAAG,CAAC;;;AAGpB,QAAA,OAAO,QAAQ;;IAGX,UAAU,GAAA;QACd,IAAI,CAAC,aAAa,GAAG;YACjB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,IAAI,CAAC;YACvD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC;YACrD,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,IAAI,CAAC;YACnD,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,IAAI;SACnD;;IAGL,YAAY,CAAC,KAAY,EAAE,QAA0B,EAAA;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,QAAQ,EACR,MAAM,CAAC,MAAM,CACT;YACI,MAAM,EAAE,KAAK,CAAC,aAA4B;AAC1C,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,SAAS,EAAE,QAAwB;AACnC,YAAA,UAAU,EAAE,sBAAsB;AAClC,YAAA,iBAAiB,EAAE;AACtB,SAAA,EACD,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAC3D,CACJ;;AAGL,IAAA,YAAY,CAAC,IAAyB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;;IAGjC,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YACpB;;QAEJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;AACxC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3D,IAAI,mBAAmB,GAAgB,YAAY,IAAI,YAAY,CAAC,UAAU,CAAC,aAAa;AAE5F,QAAA,IAAI,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;AACjC,YAAA,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa;;QAEnE,IAAI,mBAAmB,EAAE;AACrB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc;YAC1C,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC;;;AAIzD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO;AAExC,QAAA,IAAI,OAAO,EAAE,YAAY,KAAK,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,YAAY,KAAK,WAAW,EAAE,aAAa,EAAE;YAC9G,IAAI,CAAC,wBAAwB,EAAE;;;IAIvC,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;;;8GA1ZjC,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,MAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EA0GoB,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAZlC,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAmCC,qBAAqB,ECjO9D,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,otDAgDA,EDqCQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EACP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAChB,mBAAmB,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,qBAAqB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,4BAA4B,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC5B,kCAAkC,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAClC,2BAA2B,EAAA,IAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGtB,MAAM,EAAA,UAAA,EAAA,CAAA;kBArBlB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAEb,IAAA,EAAA;AACF,wBAAA,iBAAiB,EAAE,MAAM;AACzB,wBAAA,2BAA2B,EAAE,eAAe;AAC5C,wBAAA,uBAAuB,EAAE;qBAC5B,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACL,OAAO;wBACP,gBAAgB;wBAChB,mBAAmB;wBACnB,OAAO;wBACP,qBAAqB;wBACrB,wBAAwB;wBACxB,4BAA4B;wBAC5B,kCAAkC;wBAClC;AACH,qBAAA,EAAA,QAAA,EAAA,otDAAA,EAAA;wDAiGG,KAAK,EAAA,CAAA;sBADR,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;ME/JlD,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,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,YAAY,YAdjB,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,iBAAiB;YACjB,YAAY;YACZ,MAAM;YACN,mBAAmB;YACnB,UAAU;YACV,cAAc;YACd,2BAA2B;YAC3B,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAEf,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA;AAErF,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,YAAY,YAdjB,YAAY;YACZ,aAAa;YACb,gBAAgB;YAChB,iBAAiB;YACjB,YAAY;YACZ,MAAM;YAGN,cAAc,CAAA,EAAA,CAAA,CAAA;;2FAMT,YAAY,EAAA,UAAA,EAAA,CAAA;kBAhBxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,aAAa;wBACb,gBAAgB;wBAChB,iBAAiB;wBACjB,YAAY;wBACZ,MAAM;wBACN,mBAAmB;wBACnB,UAAU;wBACV,cAAc;wBACd,2BAA2B;wBAC3B;AACH,qBAAA;oBACD,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,cAAc,EAAE,2BAA2B;AACjG,iBAAA;;;AC9BD;;AAEG;;;;"}
|