ngx-tethys 18.1.0 → 18.2.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.
Files changed (155) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/alert/styles/mixin.scss +1 -1
  3. package/anchor/style/anchor.scss +4 -2
  4. package/avatar/styles/avatar.scss +1 -1
  5. package/back-top/styles/back-top.scss +3 -3
  6. package/button/styles/button-group.scss +9 -9
  7. package/button/styles/button.scss +2 -6
  8. package/button/styles/mixin.scss +6 -53
  9. package/calendar/styles/calendar.scss +3 -11
  10. package/card/styles/card.scss +3 -3
  11. package/carousel/styles/carousel.scss +10 -10
  12. package/cascader/styles/cascader.scss +3 -2
  13. package/collapse/styles/collapse.scss +4 -2
  14. package/color-picker/styles/alpha.scss +1 -1
  15. package/color-picker/styles/color-picker-panel.scss +1 -1
  16. package/color-picker/styles/hue.scss +1 -1
  17. package/color-picker/styles/saturation.scss +1 -1
  18. package/comment/styles/mixin.scss +1 -1
  19. package/core/index.d.ts +1 -0
  20. package/core/overlay/abstract-overlay.config.d.ts +5 -0
  21. package/core/theme/index.d.ts +2 -0
  22. package/core/theme/store.d.ts +11 -0
  23. package/core/theme/theme.d.ts +5 -0
  24. package/date-picker/styles/calendar.scss +1 -1
  25. package/date-picker/styles/decade-panel.scss +1 -1
  26. package/date-picker/styles/picker.scss +1 -1
  27. package/date-picker/styles/range-picker.scss +3 -3
  28. package/date-picker/styles/year-panel.scss +2 -2
  29. package/dialog/styles/dialog.scss +6 -6
  30. package/drag-drop/drag-content.directive.d.ts +1 -0
  31. package/drag-drop/drag-drop.service.d.ts +1 -0
  32. package/drag-drop/drag-handle.directive.d.ts +1 -0
  33. package/drag-drop/drag.directive.d.ts +1 -0
  34. package/drag-drop/drop-container.directive.d.ts +2 -5
  35. package/drag-drop/module.d.ts +4 -0
  36. package/dropdown/styles/dropdown.scss +3 -3
  37. package/empty/styles/empty.scss +22 -2
  38. package/esm2022/carousel/carousel.component.mjs +3 -3
  39. package/esm2022/core/index.mjs +2 -1
  40. package/esm2022/core/overlay/abstract-overlay.config.mjs +1 -1
  41. package/esm2022/core/overlay/abstract-overlay.service.mjs +2 -2
  42. package/esm2022/core/theme/index.mjs +3 -0
  43. package/esm2022/core/theme/store.mjs +42 -0
  44. package/esm2022/core/theme/theme.mjs +2 -0
  45. package/esm2022/dialog/dialog-container.component.mjs +2 -2
  46. package/esm2022/drag-drop/drag-content.directive.mjs +2 -1
  47. package/esm2022/drag-drop/drag-drop.service.mjs +2 -1
  48. package/esm2022/drag-drop/drag-handle.directive.mjs +2 -1
  49. package/esm2022/drag-drop/drag.directive.mjs +2 -1
  50. package/esm2022/drag-drop/drop-container.directive.mjs +2 -1
  51. package/esm2022/drag-drop/module.mjs +9 -2
  52. package/esm2022/empty/svgs.mjs +103 -8
  53. package/esm2022/guider/guider-hint/guider-hint.component.mjs +3 -3
  54. package/esm2022/notify/notify.component.mjs +3 -3
  55. package/esm2022/result/result.component.mjs +3 -3
  56. package/esm2022/table/table-skeleton.component.mjs +3 -3
  57. package/esm2022/version.mjs +2 -2
  58. package/esm2022/watermark/config.mjs +2 -2
  59. package/esm2022/watermark/watermark.directive.mjs +18 -10
  60. package/fesm2022/ngx-tethys-carousel.mjs +2 -2
  61. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  62. package/fesm2022/ngx-tethys-core.mjs +43 -3
  63. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-dialog.mjs +1 -1
  65. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-drag-drop.mjs +13 -2
  67. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-empty.mjs +102 -7
  69. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-guider.mjs +2 -2
  71. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-notify.mjs +2 -2
  73. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-result.mjs +2 -2
  75. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  76. package/fesm2022/ngx-tethys-table.mjs +2 -2
  77. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  78. package/fesm2022/ngx-tethys-watermark.mjs +18 -10
  79. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  80. package/fesm2022/ngx-tethys.mjs +1 -1
  81. package/fesm2022/ngx-tethys.mjs.map +1 -1
  82. package/form/styles/form-check.scss +1 -1
  83. package/form/styles/forms.scss +2 -3
  84. package/form/styles/mixin.scss +6 -5
  85. package/guider/styles/guider-tip.scss +2 -1
  86. package/icon/examples/all/all.component.scss +3 -1
  87. package/image/styles/image.scss +15 -11
  88. package/input/styles/input-group.scss +1 -1
  89. package/input/styles/input.scss +2 -2
  90. package/layout/examples/sidebar/sidebar.component.scss +1 -1
  91. package/layout/styles/layout.scss +3 -3
  92. package/menu/examples/theme/theme.component.scss +0 -8
  93. package/menu/styles/theme.scss +4 -4
  94. package/message/styles/message.scss +1 -1
  95. package/nav/examples/basic/basic.component.scss +1 -1
  96. package/nav/examples/extra/extra.component.scss +1 -1
  97. package/nav/examples/fill/fill.component.scss +1 -1
  98. package/nav/examples/lite/lite.component.scss +1 -1
  99. package/nav/examples/pills/pills.component.scss +1 -1
  100. package/nav/examples/responsive/responsive.component.scss +1 -1
  101. package/nav/examples/size/size.component.scss +1 -1
  102. package/nav/examples/tabs/tabs.component.scss +1 -1
  103. package/nav/examples/type/type.component.scss +1 -1
  104. package/nav/examples/vertical/vertical.component.scss +1 -1
  105. package/notify/styles/notify.scss +4 -4
  106. package/package.json +1 -1
  107. package/pagination/styles/pagination.scss +2 -2
  108. package/popover/styles.scss +3 -3
  109. package/property/styles/properties.scss +1 -1
  110. package/resizable/examples/line/line.component.scss +3 -1
  111. package/resizable/examples/style.scss +7 -5
  112. package/result/styles/result.scss +25 -1
  113. package/schematics/version.d.ts +1 -1
  114. package/schematics/version.js +1 -1
  115. package/segment/styles/mixin.scss +2 -3
  116. package/segment/styles/segment.scss +1 -1
  117. package/select/styles/select.scss +1 -1
  118. package/shared/option/styles/option.mixin.scss +1 -1
  119. package/shared/select/styles/select.mixin.scss +2 -2
  120. package/slide/examples/drawer-container/drawer-container.component.scss +1 -1
  121. package/slide/examples/layout/layout.component.scss +4 -2
  122. package/slide/styles/slide.scss +3 -2
  123. package/slider/slider.scss +2 -2
  124. package/stepper/examples/basic/basic.component.scss +3 -1
  125. package/stepper/examples/icon/icon.component.scss +3 -1
  126. package/stepper/styles/stepper.scss +7 -3
  127. package/styles/bootstrap/_variables.scss +14 -876
  128. package/styles/bootstrap/utilities/_background.scss +27 -5
  129. package/styles/bootstrap/utilities/_text.scss +29 -31
  130. package/styles/index.scss +2 -1
  131. package/styles/mixins/background-variant.scss +2 -10
  132. package/styles/mixins/utilities.scss +2 -11
  133. package/styles/modules/cdk/drag-drop.scss +6 -8
  134. package/styles/modules/close.scss +1 -1
  135. package/styles/modules/reboot.scss +1 -1
  136. package/styles/modules/tables.scss +1 -1
  137. package/styles/modules/utils.scss +0 -17
  138. package/styles/theme/dark.scss +70 -0
  139. package/styles/theme/default.scss +70 -0
  140. package/styles/theme/index.scss +2 -0
  141. package/styles/variables.scss +114 -76
  142. package/switch/styles/mixin.scss +0 -13
  143. package/table/styles/table.scss +7 -19
  144. package/tabs/styles/tabs.scss +1 -1
  145. package/tag/styles/mixin.scss +7 -42
  146. package/tag/styles/tag.scss +2 -2
  147. package/time-picker/styles/time-panel.scss +1 -1
  148. package/timeline/styles/timeline.scss +2 -2
  149. package/tooltip/styles.scss +4 -4
  150. package/transfer/styles/transfer.scss +2 -2
  151. package/tree/styles/tree.scss +3 -5
  152. package/watermark/config.d.ts +1 -1
  153. package/watermark/watermark.directive.d.ts +23 -2
  154. package/carousel/styles/index.scss +0 -1
  155. package/carousel/styles/variables.scss +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-carousel.mjs","sources":["../../../src/carousel/carousel-item.directive.ts","../../../src/carousel/engine/carousel-base.ts","../../../src/carousel/engine/carousel-noop.ts","../../../src/carousel/engine/carousel-slide.ts","../../../src/carousel/engine/carousel-fade.ts","../../../src/carousel/carousel.service.ts","../../../src/carousel/carousel.component.ts","../../../src/carousel/carousel.component.html","../../../src/carousel/module.ts","../../../src/carousel/ngx-tethys-carousel.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2, inject } from '@angular/core';\n\n/**\n * @private\n */\n@Directive({\n selector: '[thyCarouselItem],[thy-carousel-item]',\n exportAs: 'thyCarouseItem',\n standalone: true\n})\nexport class ThyCarouselItemDirective {\n private renderer = inject(Renderer2);\n\n private _active = false;\n\n readonly el: HTMLElement;\n\n set isActive(value: boolean) {\n this._active = value;\n if (this.isActive) {\n this.renderer.addClass(this.el, 'thy-carousel-item-active');\n } else {\n this.renderer.removeClass(this.el, 'thy-carousel-item-active');\n }\n }\n\n get isActive(): boolean {\n return this._active;\n }\n\n constructor() {\n const elementRef = inject(ElementRef);\n\n this.el = elementRef.nativeElement;\n this.renderer.addClass(elementRef.nativeElement, 'thy-carousel-item');\n }\n}\n","import { ChangeDetectorRef, Renderer2, QueryList } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Observable } from 'rxjs';\nimport { ThyCarouselItemDirective } from '../carousel-item.directive';\nimport { ThyCarousel } from '../carousel.component';\nimport { ThyDistanceVector, ThyCarouselEngine } from '../typings';\n\nexport abstract class ThyCarouselBaseEngine implements ThyCarouselEngine {\n protected contentWidth: number;\n protected contentHeight: number;\n protected readonly carouselComponent: ThyCarousel;\n protected wrapperEl: HTMLElement;\n protected playTime: number;\n protected length: number;\n protected contents: ThyCarouselItemDirective[];\n\n protected get maxIndex(): number {\n return this.length - 1;\n }\n\n protected get firstEl(): HTMLElement {\n return this.contents[0].el;\n }\n\n protected get lastEl(): HTMLElement {\n return this.contents[this.maxIndex].el;\n }\n\n protected constructor(\n thyCarouselComponent: ThyCarousel,\n protected cdr: ChangeDetectorRef,\n protected renderer: Renderer2,\n protected platform: Platform\n ) {\n this.carouselComponent = thyCarouselComponent;\n }\n\n initializeContents(contents: QueryList<ThyCarouselItemDirective> | null) {\n const carousel = this.carouselComponent!;\n const { wrapperEl, playTime } = carousel;\n this.wrapperEl = wrapperEl;\n this.playTime = playTime;\n const { width, height } = wrapperEl.getBoundingClientRect();\n this.contentHeight = height;\n this.contentWidth = width;\n\n this.contents = contents?.toArray();\n this.length = this.contents.length;\n if (this.platform.isBrowser && this.contents.length) {\n this.renderer.setStyle(this.wrapperEl, 'transform', 'translate3d(0, 0, 0)');\n this.renderer.setStyle(this.wrapperEl, `height`, `${this.contentHeight}px`);\n }\n this.contents.forEach(content => {\n content.el.removeAttribute('style');\n });\n }\n\n abstract dragging(pointerVector: ThyDistanceVector, rect: DOMRect): void;\n\n abstract initializeCarouselContents(contents: QueryList<ThyCarouselItemDirective> | null): void;\n\n abstract switch(to: number, from: number): Observable<void>;\n\n correctionOffset(): void {\n const carousel = this.carouselComponent!;\n const { wrapperEl } = carousel;\n const { width, height } = wrapperEl.getBoundingClientRect();\n this.contentWidth = width;\n this.contentHeight = height;\n }\n}\n","import { ChangeDetectorRef, QueryList, Renderer2 } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Observable, Subject } from 'rxjs';\nimport { ThyCarousel } from '../carousel.component';\nimport { ThyDistanceVector } from '../typings';\nimport { ThyCarouselItemDirective } from '../carousel-item.directive';\nimport { ThyCarouselBaseEngine } from '../engine/carousel-base';\n\nexport class ThyCarouselNoopEngine extends ThyCarouselBaseEngine {\n constructor(thyCarouselComponent: ThyCarousel, cdr: ChangeDetectorRef, renderer: Renderer2, platform: Platform) {\n super(thyCarouselComponent, cdr, renderer, platform);\n }\n\n dragging(pointerVector: ThyDistanceVector, rect: DOMRect): void {}\n\n initializeCarouselContents(contents: QueryList<ThyCarouselItemDirective> | null): void {\n this.initializeContents(contents);\n }\n\n switch(to: number, from: number): Observable<void> {\n const switch$ = new Subject<void>();\n this.renderer.setStyle(\n this.wrapperEl,\n `transform`,\n `translate3d(${(-(to + this.length) % this.length) * this.contentWidth}px,0 , 0)`\n );\n setTimeout(() => {\n switch$.next();\n }, 0);\n setTimeout(() => {\n switch$.complete();\n }, 0);\n return switch$.asObservable();\n }\n\n correctionOffset(): void {\n super.correctionOffset();\n const { activeIndex } = this.carouselComponent!;\n this.renderer.setStyle(this.wrapperEl, `transform`, `translate3d(${-activeIndex * this.contentWidth}px,0 , 0)`);\n }\n}\n","import { ChangeDetectorRef, QueryList, Renderer2 } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Observable, Subject } from 'rxjs';\nimport { ThyCarousel } from '../carousel.component';\nimport { ThyDistanceVector } from '../typings';\nimport { ThyCarouselItemDirective } from '../carousel-item.directive';\nimport { ThyCarouselBaseEngine } from '../engine/carousel-base';\n\nexport class ThyCarouselSlideEngine extends ThyCarouselBaseEngine {\n constructor(thyCarouselComponent: ThyCarousel, cdr: ChangeDetectorRef, renderer: Renderer2, platform: Platform) {\n super(thyCarouselComponent, cdr, renderer, platform);\n }\n\n private prepareHorizontalContext(activeIndex: number): void {\n if (activeIndex >= this.maxIndex) {\n this.renderer.setStyle(this.firstEl, 'left', `${this.length * this.contentWidth}px`);\n this.renderer.setStyle(this.lastEl, 'left', null);\n } else if (activeIndex <= 0) {\n this.renderer.setStyle(this.firstEl, 'left', null);\n this.renderer.setStyle(this.lastEl, 'left', `${-this.length * this.contentWidth}px`);\n } else {\n this.resetContext();\n }\n }\n\n private resetContext() {\n this.renderer.setStyle(this.lastEl, 'left', null);\n this.renderer.setStyle(this.firstEl, 'left', null);\n }\n\n initializeCarouselContents(contents: QueryList<ThyCarouselItemDirective> | null): void {\n this.initializeContents(contents);\n }\n\n dragging(pointerVector: ThyDistanceVector, rect: DOMRect): void {\n const { x } = pointerVector;\n const { width, height } = rect;\n this.contentWidth = width;\n this.contentHeight = height;\n const activeIndex = this.carouselComponent!.activeIndex;\n if (this.length > 1) {\n this.prepareHorizontalContext(activeIndex);\n }\n this.renderer.setStyle(this.wrapperEl, 'transform', `translate3d(${-activeIndex * this.contentWidth + x}px,0 , 0)`);\n }\n\n switch(to: number, from: number): Observable<void> {\n const switch$ = new Subject<void>();\n if (Math.abs(from - to) === 1 || from === to) {\n this.prepareHorizontalContext(to);\n }\n this.renderer.setStyle(this.wrapperEl, `transition-duration`, `${this.playTime}ms`);\n this.renderer.setStyle(this.wrapperEl, `transform`, `translate3d(${-to * this.contentWidth}px,0 , 0)`);\n setTimeout(() => {\n switch$.next();\n }, 0);\n setTimeout(() => {\n this.resetContext();\n this.renderer.setStyle(this.wrapperEl, `transition-duration`, `0s`);\n this.renderer.setStyle(\n this.wrapperEl,\n `transform`,\n `translate3d(${-((to + this.length) % this.length) * this.contentWidth}px,0 , 0)`\n );\n switch$.complete();\n }, this.playTime);\n return switch$.asObservable();\n }\n\n correctionOffset(): void {\n super.correctionOffset();\n const { activeIndex } = this.carouselComponent!;\n this.renderer.setStyle(this.wrapperEl, `transform`, `translate3d(${-activeIndex * this.contentWidth}px,0 , 0)`);\n }\n}\n","import { ChangeDetectorRef, QueryList, Renderer2 } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Observable, Subject } from 'rxjs';\nimport { ThyCarousel } from '../carousel.component';\nimport { ThyDistanceVector } from '../typings';\nimport { ThyCarouselItemDirective } from '../carousel-item.directive';\nimport { ThyCarouselBaseEngine } from '../engine/carousel-base';\n\nexport class ThyCarouselFadeEngine extends ThyCarouselBaseEngine {\n contentsEl: HTMLElement[];\n constructor(thyCarouselComponent: ThyCarousel, cdr: ChangeDetectorRef, renderer: Renderer2, platform: Platform) {\n super(thyCarouselComponent, cdr, renderer, platform);\n }\n\n dragging(pointerVector: ThyDistanceVector, rect: DOMRect): void {\n const { x } = pointerVector;\n const { width } = rect;\n const activeIndex = this.carouselComponent!.activeIndex;\n const currentContent = this.contentsEl[activeIndex];\n this.renderer.setStyle(currentContent, 'opacity', `${1 - Math.abs(x) / width}`);\n }\n\n initializeCarouselContents(contents: QueryList<ThyCarouselItemDirective> | null): void {\n this.initializeContents(contents);\n this.contentsEl = [];\n contents.forEach((content, index) => {\n this.contentsEl.push(content.el);\n this.renderer.setStyle(content.el, 'opacity', this.carouselComponent!.activeIndex === index ? '1' : '0');\n this.renderer.setStyle(content.el, 'position', 'absolute');\n this.renderer.setStyle(content.el, 'left', '0');\n this.renderer.setStyle(content.el, `transition-property`, 'opacity');\n this.renderer.setStyle(content.el, `transition-timing-function`, 'ease');\n });\n }\n\n switch(to: number, from: number): Observable<void> {\n const switch$ = new Subject<void>();\n const currentEl = this.contentsEl[from];\n const nextEl = this.contentsEl[(to + this.length) % this.length];\n this.renderer.setStyle(currentEl, `transition-duration`, `${this.playTime}ms`);\n this.renderer.setStyle(nextEl, `transition-duration`, `${this.playTime}ms`);\n this.renderer.setStyle(currentEl, 'opacity', '0');\n this.renderer.setStyle(nextEl, 'opacity', '1');\n setTimeout(() => {\n switch$.next();\n }, 0);\n setTimeout(() => {\n this.renderer.setStyle(currentEl, `transition-duration`, `0s`);\n this.renderer.setStyle(nextEl, `transition-duration`, `0s`);\n switch$.complete();\n }, this.playTime);\n return switch$.asObservable();\n }\n\n correctionOffset(): void {}\n}\n","import { Injectable, NgZone, inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ThyDistanceVector } from './typings';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyCarouselService {\n private ngZone = inject(NgZone);\n\n private listeners = new Map<string, (event: MouseEvent | TouchEvent) => void>();\n private document: Document;\n\n documentDraggingOutside$ = new Subject<MouseEvent | Touch>();\n\n constructor() {\n const document = inject(DOCUMENT);\n\n this.document = document;\n }\n\n private clearListeners(): void {\n this.listeners.forEach((handler, name) => {\n this.document.removeEventListener(name, handler as EventListener);\n });\n this.listeners.clear();\n }\n\n private getEventPotions(event: MouseEvent | TouchEvent): MouseEvent | Touch {\n if (event instanceof MouseEvent) {\n return event;\n } else {\n return event.touches[0] || event.changedTouches[0];\n }\n }\n\n registerDrag(event: MouseEvent | TouchEvent): Observable<ThyDistanceVector> {\n if (this.documentDraggingOutside$) {\n this.documentDraggingOutside$.complete();\n }\n\n const startPoint = this.getEventPotions(event);\n\n this.documentDraggingOutside$ = new Subject<MouseEvent | Touch>();\n\n this.registerHandler(event);\n\n return this.documentDraggingOutside$.pipe(\n map(e => {\n return {\n x: e.pageX - startPoint!.pageX,\n y: e.pageY - startPoint!.pageY\n };\n })\n );\n }\n\n registerHandler(event: MouseEvent | TouchEvent) {\n this.clearListeners();\n const _isTouchEvent = event instanceof MouseEvent;\n const moveEvent = _isTouchEvent ? 'mousemove' : 'touchmove';\n const upEvent = _isTouchEvent ? 'mouseup' : 'touchend';\n const moveEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentDraggingOutside$.next(e instanceof MouseEvent ? e : e.touches[0] || e.changedTouches[0]);\n };\n const upEventHandler = () => {\n this.documentDraggingOutside$.complete();\n this.clearListeners();\n };\n this.listeners.set(moveEvent, moveEventHandler);\n this.listeners.set(upEvent, upEventHandler);\n this.ngZone.runOutsideAngular(() => {\n this.listeners.forEach((handler, name) => {\n this.document.addEventListener(name, handler as EventListener);\n });\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n TemplateRef,\n ViewEncapsulation,\n AfterContentInit,\n OnChanges,\n SimpleChanges,\n NgZone,\n OnDestroy,\n numberAttribute,\n inject\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { ThyCarouselItemDirective } from './carousel-item.directive';\nimport {\n ThyCarouselEngine,\n ThyDistanceVector,\n ThyCarouselSwitchData,\n ThyCarouselEffect,\n ThyCarouselTrigger,\n ThyCarouselPause\n} from './typings';\nimport { ThyCarouselSlideEngine, ThyCarouselNoopEngine, ThyCarouselFadeEngine } from './engine';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ThyCarouselService } from './carousel.service';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyDot } from 'ngx-tethys/dot';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty, isNumber } from 'ngx-tethys/util';\n\n/**\n * 走马灯组件\n * @name thy-carousel\n */\n@Component({\n selector: 'thy-carousel',\n templateUrl: './carousel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n class: 'thy-carousel'\n },\n standalone: true,\n imports: [NgTemplateOutlet, ThyDot, ThyIcon]\n})\nexport class ThyCarousel implements OnInit, AfterViewInit, AfterContentInit, OnChanges, OnDestroy {\n protected renderer = inject(Renderer2);\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private readonly carouselService = inject(ThyCarouselService);\n private readonly platform = inject(Platform);\n\n /**\n * @private\n */\n @ContentChildren(ThyCarouselItemDirective) carouselItems!: QueryList<ThyCarouselItemDirective>;\n\n /**\n * @private\n */\n @ViewChild('carouselWrapper', { static: true }) carouselWrapper: ElementRef<HTMLElement>;\n\n /**\n * 是否自动切换,默认 false\n */\n @Input({ transform: coerceBooleanProperty }) thyAutoPlay: boolean = false;\n\n /**\n * 自动切换时间间隔(毫秒)\n */\n @Input({ transform: numberAttribute }) thyAutoPlayInterval: number = 3000;\n\n /**\n * 切换动画样式\n * @type slide | fade | noop\n */\n @Input() thyEffect: ThyCarouselEffect = 'slide';\n\n /**\n * 是否显示切换指示器\n */\n @Input({ transform: coerceBooleanProperty }) thyIndicators = true;\n\n /**\n * 指示器 Item 的渲染模板\n */\n @Input() thyIndicatorRender?: TemplateRef<{ $implicit: boolean }>;\n\n /**\n * 是否显示左右切换\n */\n @Input({ transform: coerceBooleanProperty }) thyControls = true;\n\n /**\n * 上一个控制器渲染模板\n */\n @Input() thyControlPrev?: TemplateRef<any>;\n\n /**\n * 下一个控制器渲染模板\n */\n @Input() thyControlNext?: TemplateRef<any>;\n\n /**\n * 是否支持手势滑动\n */\n @Input({ transform: coerceBooleanProperty }) thyTouchable = true;\n\n /**\n * 指示点切换的触发条件\n * @type click | hover\n */\n @Input() thyTrigger: ThyCarouselTrigger = 'click';\n\n /**\n * 鼠标移动到指示器时是否暂停播放\n * @type false | hover\n */\n @Input() thyPause: ThyCarouselPause = 'hover';\n\n /**\n * 触发切换帧之前,返回 `{from: number, to: number}`\n */\n @Output() readonly thyBeforeChange = new EventEmitter<ThyCarouselSwitchData>();\n\n /**\n * 切换帧之后的回调,返回当前帧索引\n */\n @Output() readonly thyAfterChange = new EventEmitter<number>();\n\n private isDragging = false;\n\n private isTransitioning = false;\n\n private pointerVector: ThyDistanceVector = { x: 0, y: 0 };\n\n private engine: ThyCarouselEngine;\n\n private _trigger$ = new Subject<number | null>();\n\n private _destroy$ = new Subject<void>();\n\n wrapperDomRect: DOMRect;\n\n activeIndex = 0;\n\n wrapperEl: HTMLElement;\n\n transitionTimer: any = null;\n\n playTime: number = 400;\n\n isPause: boolean = false;\n\n private moveTo(index: number): void {\n if (this.carouselItems && this.carouselItems.length && !this.isTransitioning) {\n this.setInitialValue();\n const len = this.carouselItems.length;\n const from = this.activeIndex;\n const to = (index + len) % len;\n this.thyBeforeChange.emit({ from, to });\n this.isTransitioning = true;\n this.engine?.switch(index, this.activeIndex).subscribe(\n () => {\n this.activeIndex = to;\n this.markContentActive(this.activeIndex);\n this.scheduleNextTransition();\n this.thyAfterChange.emit(this.activeIndex);\n },\n () => {},\n () => {\n this.isTransitioning = false;\n }\n );\n this.cdr.markForCheck();\n }\n }\n\n private switchEngine(): void {\n switch (this.thyEffect) {\n case 'slide':\n this.engine = new ThyCarouselSlideEngine(this, this.cdr, this.renderer, this.platform);\n break;\n case 'fade':\n this.engine = new ThyCarouselFadeEngine(this, this.cdr, this.renderer, this.platform);\n break;\n default:\n this.engine = new ThyCarouselNoopEngine(this, this.cdr, this.renderer, this.platform);\n }\n }\n\n private markContentActive(index: number) {\n this.activeIndex = index;\n this.carouselItems.forEach((carouselContent: ThyCarouselItemDirective, i: number) => {\n carouselContent.isActive = index === i;\n });\n this.cdr.detectChanges();\n }\n\n private setInitialValue(): void {\n if (this.engine) {\n this.engine.initializeCarouselContents(this.carouselItems);\n }\n }\n\n private scheduleNextTransition(): void {\n this.clearScheduledTransition();\n if (this.thyAutoPlay && !this.isPause) {\n this.transitionTimer = setTimeout(() => {\n this.moveTo(this.activeIndex + 1);\n }, this.thyAutoPlayInterval);\n }\n }\n\n private clearScheduledTransition(): void {\n if (this.transitionTimer) {\n clearTimeout(this.transitionTimer);\n this.transitionTimer = null;\n }\n }\n\n onDrag(event: TouchEvent | MouseEvent): void {\n if (!this.isDragging && !this.isTransitioning && this.thyTouchable) {\n const mouseDownTime = new Date().getTime();\n let mouseUpTime: number;\n this.clearScheduledTransition();\n this.wrapperDomRect = this.wrapperEl.getBoundingClientRect();\n this.carouselService.registerDrag(event).subscribe(\n pointerVector => {\n this.renderer.setStyle(this.wrapperEl, 'cursor', 'grabbing');\n this.pointerVector = pointerVector;\n this.isDragging = true;\n this.engine?.dragging(this.pointerVector, this.wrapperDomRect);\n },\n () => {},\n () => {\n if (this.isDragging) {\n mouseUpTime = new Date().getTime();\n const holdDownTime = mouseUpTime - mouseDownTime;\n // Fast enough to switch to the next frame\n // or\n // If the pointerVector is more than one third switch to the next frame\n if (\n Math.abs(this.pointerVector.x) > this.wrapperDomRect.width / 3 ||\n Math.abs(this.pointerVector.x) / holdDownTime >= 1\n ) {\n this.moveTo(this.pointerVector.x > 0 ? this.activeIndex - 1 : this.activeIndex + 1);\n } else {\n this.moveTo(this.activeIndex);\n }\n }\n this.isDragging = false;\n this.renderer.setStyle(this.wrapperEl, 'cursor', 'grab');\n }\n );\n }\n }\n\n indicatorHandleClick(index: number): void {\n if (this.thyTrigger === 'click') {\n this.moveTo(index);\n }\n }\n\n indicatorHandleTrigger(index: number): void {\n if (this.thyPause === 'hover') {\n this.isPause = true;\n this.clearScheduledTransition();\n }\n if (this.thyTrigger === 'hover') {\n this._trigger$.next(index);\n }\n }\n\n indicatorHandleLeave() {\n if (this.thyPause === 'hover') {\n this.isPause = false;\n this.scheduleNextTransition();\n }\n }\n\n next(): void {\n this.moveTo(this.activeIndex + 1);\n }\n\n pre(): void {\n this.moveTo(this.activeIndex - 1);\n }\n\n ngOnInit(): void {\n this.wrapperEl = this.carouselWrapper!.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n fromEvent(window, 'resize')\n .pipe(takeUntil(this._destroy$), debounceTime(100))\n .subscribe(() => {\n this.engine?.correctionOffset();\n });\n });\n }\n ngOnChanges(changes: SimpleChanges) {\n const { thyEffect, thyTouchable } = changes;\n if (thyEffect && !thyEffect.isFirstChange()) {\n this.switchEngine();\n this.markContentActive(0);\n this.setInitialValue();\n }\n\n if (thyTouchable && !thyTouchable.isFirstChange()) {\n this.renderer.setStyle(this.wrapperEl, 'cursor', thyTouchable.currentValue ? 'grab' : 'default');\n }\n\n if (!this.thyAutoPlay || !this.thyAutoPlayInterval) {\n this.clearScheduledTransition();\n } else {\n this.scheduleNextTransition();\n }\n }\n\n ngAfterViewInit(): void {\n this.carouselItems.changes.subscribe(() => {\n this.markContentActive(0);\n this.setInitialValue();\n });\n this.switchEngine();\n this.markContentActive(0);\n this.setInitialValue();\n\n if (!this.thyTouchable) {\n this.renderer.setStyle(this.wrapperEl, 'cursor', 'default');\n }\n }\n\n ngAfterContentInit() {\n this._trigger$.pipe(takeUntil(this._destroy$), debounceTime(this.playTime)).subscribe(index => {\n if (isNumber(index)) {\n this.moveTo(index);\n }\n });\n }\n\n ngOnDestroy() {\n this.clearScheduledTransition();\n this._trigger$.next(null);\n this._trigger$.complete();\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<div class=\"thy-carousel thy-carousel-initialized thy-carousel-point-events\">\n <div #carouselWrapper class=\"thy-carousel-wrapper\" (mousedown)=\"onDrag($event)\" (touchstart)=\"onDrag($event)\">\n <ng-content></ng-content>\n </div>\n @if (thyControls && carouselItems.length > 1) {\n <div class=\"thy-carousel-control-pre-wrapper\" (click)=\"pre()\">\n <ng-container *ngTemplateOutlet=\"thyControlPrev || defaultControlPrev\"></ng-container>\n </div>\n <div class=\"thy-carousel-control-next-wrapper\" (click)=\"next()\">\n <ng-container *ngTemplateOutlet=\"thyControlNext || defaultControlNext\"></ng-container>\n </div>\n }\n @if (thyIndicators) {\n <div class=\"thy-carousel-indicators\">\n @for (content of carouselItems; track $index; let i = $index) {\n <span\n class=\"thy-carousel-indicator\"\n (mouseenter)=\"indicatorHandleTrigger(i)\"\n (mouseleave)=\"indicatorHandleLeave()\"\n (click)=\"indicatorHandleClick(i)\">\n <ng-template\n [ngTemplateOutlet]=\"thyIndicatorRender || defaultIndicatorRender\"\n [ngTemplateOutletContext]=\"{ $implicit: i === activeIndex }\"></ng-template>\n </span>\n }\n </div>\n }\n</div>\n\n<ng-template #defaultIndicatorRender let-active>\n <thy-dot thyColor=\"#fff\" [class.active]=\"active\"></thy-dot>\n</ng-template>\n\n<ng-template #defaultControlPrev>\n <div class=\"thy-carousel-control thy-carousel-control-pre\">\n <thy-icon thyIconName=\"angle-left-bold\"></thy-icon>\n </div>\n</ng-template>\n\n<ng-template #defaultControlNext>\n <div class=\"thy-carousel-control thy-carousel-control-next\">\n <thy-icon thyIconName=\"angle-right-bold\"></thy-icon>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyCarousel } from './carousel.component';\nimport { ThyCarouselItemDirective } from './carousel-item.directive';\nimport { ThyDotModule } from 'ngx-tethys/dot';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nconst COMPONENTS = [ThyCarousel, ThyCarouselItemDirective];\n\n@NgModule({\n exports: [...COMPONENTS],\n imports: [CommonModule, ThyDotModule, ThyIconModule, ...COMPONENTS]\n})\nexport class ThyCarouselModule {}\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-carousel.mjs","sources":["../../../src/carousel/carousel-item.directive.ts","../../../src/carousel/engine/carousel-base.ts","../../../src/carousel/engine/carousel-noop.ts","../../../src/carousel/engine/carousel-slide.ts","../../../src/carousel/engine/carousel-fade.ts","../../../src/carousel/carousel.service.ts","../../../src/carousel/carousel.component.ts","../../../src/carousel/carousel.component.html","../../../src/carousel/module.ts","../../../src/carousel/ngx-tethys-carousel.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2, inject } from '@angular/core';\n\n/**\n * @private\n */\n@Directive({\n selector: '[thyCarouselItem],[thy-carousel-item]',\n exportAs: 'thyCarouseItem',\n standalone: true\n})\nexport class ThyCarouselItemDirective {\n private renderer = inject(Renderer2);\n\n private _active = false;\n\n readonly el: HTMLElement;\n\n set isActive(value: boolean) {\n this._active = value;\n if (this.isActive) {\n this.renderer.addClass(this.el, 'thy-carousel-item-active');\n } else {\n this.renderer.removeClass(this.el, 'thy-carousel-item-active');\n }\n }\n\n get isActive(): boolean {\n return this._active;\n }\n\n constructor() {\n const elementRef = inject(ElementRef);\n\n this.el = elementRef.nativeElement;\n this.renderer.addClass(elementRef.nativeElement, 'thy-carousel-item');\n }\n}\n","import { ChangeDetectorRef, Renderer2, QueryList } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Observable } from 'rxjs';\nimport { ThyCarouselItemDirective } from '../carousel-item.directive';\nimport { ThyCarousel } from '../carousel.component';\nimport { ThyDistanceVector, ThyCarouselEngine } from '../typings';\n\nexport abstract class ThyCarouselBaseEngine implements ThyCarouselEngine {\n protected contentWidth: number;\n protected contentHeight: number;\n protected readonly carouselComponent: ThyCarousel;\n protected wrapperEl: HTMLElement;\n protected playTime: number;\n protected length: number;\n protected contents: ThyCarouselItemDirective[];\n\n protected get maxIndex(): number {\n return this.length - 1;\n }\n\n protected get firstEl(): HTMLElement {\n return this.contents[0].el;\n }\n\n protected get lastEl(): HTMLElement {\n return this.contents[this.maxIndex].el;\n }\n\n protected constructor(\n thyCarouselComponent: ThyCarousel,\n protected cdr: ChangeDetectorRef,\n protected renderer: Renderer2,\n protected platform: Platform\n ) {\n this.carouselComponent = thyCarouselComponent;\n }\n\n initializeContents(contents: QueryList<ThyCarouselItemDirective> | null) {\n const carousel = this.carouselComponent!;\n const { wrapperEl, playTime } = carousel;\n this.wrapperEl = wrapperEl;\n this.playTime = playTime;\n const { width, height } = wrapperEl.getBoundingClientRect();\n this.contentHeight = height;\n this.contentWidth = width;\n\n this.contents = contents?.toArray();\n this.length = this.contents.length;\n if (this.platform.isBrowser && this.contents.length) {\n this.renderer.setStyle(this.wrapperEl, 'transform', 'translate3d(0, 0, 0)');\n this.renderer.setStyle(this.wrapperEl, `height`, `${this.contentHeight}px`);\n }\n this.contents.forEach(content => {\n content.el.removeAttribute('style');\n });\n }\n\n abstract dragging(pointerVector: ThyDistanceVector, rect: DOMRect): void;\n\n abstract initializeCarouselContents(contents: QueryList<ThyCarouselItemDirective> | null): void;\n\n abstract switch(to: number, from: number): Observable<void>;\n\n correctionOffset(): void {\n const carousel = this.carouselComponent!;\n const { wrapperEl } = carousel;\n const { width, height } = wrapperEl.getBoundingClientRect();\n this.contentWidth = width;\n this.contentHeight = height;\n }\n}\n","import { ChangeDetectorRef, QueryList, Renderer2 } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Observable, Subject } from 'rxjs';\nimport { ThyCarousel } from '../carousel.component';\nimport { ThyDistanceVector } from '../typings';\nimport { ThyCarouselItemDirective } from '../carousel-item.directive';\nimport { ThyCarouselBaseEngine } from '../engine/carousel-base';\n\nexport class ThyCarouselNoopEngine extends ThyCarouselBaseEngine {\n constructor(thyCarouselComponent: ThyCarousel, cdr: ChangeDetectorRef, renderer: Renderer2, platform: Platform) {\n super(thyCarouselComponent, cdr, renderer, platform);\n }\n\n dragging(pointerVector: ThyDistanceVector, rect: DOMRect): void {}\n\n initializeCarouselContents(contents: QueryList<ThyCarouselItemDirective> | null): void {\n this.initializeContents(contents);\n }\n\n switch(to: number, from: number): Observable<void> {\n const switch$ = new Subject<void>();\n this.renderer.setStyle(\n this.wrapperEl,\n `transform`,\n `translate3d(${(-(to + this.length) % this.length) * this.contentWidth}px,0 , 0)`\n );\n setTimeout(() => {\n switch$.next();\n }, 0);\n setTimeout(() => {\n switch$.complete();\n }, 0);\n return switch$.asObservable();\n }\n\n correctionOffset(): void {\n super.correctionOffset();\n const { activeIndex } = this.carouselComponent!;\n this.renderer.setStyle(this.wrapperEl, `transform`, `translate3d(${-activeIndex * this.contentWidth}px,0 , 0)`);\n }\n}\n","import { ChangeDetectorRef, QueryList, Renderer2 } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Observable, Subject } from 'rxjs';\nimport { ThyCarousel } from '../carousel.component';\nimport { ThyDistanceVector } from '../typings';\nimport { ThyCarouselItemDirective } from '../carousel-item.directive';\nimport { ThyCarouselBaseEngine } from '../engine/carousel-base';\n\nexport class ThyCarouselSlideEngine extends ThyCarouselBaseEngine {\n constructor(thyCarouselComponent: ThyCarousel, cdr: ChangeDetectorRef, renderer: Renderer2, platform: Platform) {\n super(thyCarouselComponent, cdr, renderer, platform);\n }\n\n private prepareHorizontalContext(activeIndex: number): void {\n if (activeIndex >= this.maxIndex) {\n this.renderer.setStyle(this.firstEl, 'left', `${this.length * this.contentWidth}px`);\n this.renderer.setStyle(this.lastEl, 'left', null);\n } else if (activeIndex <= 0) {\n this.renderer.setStyle(this.firstEl, 'left', null);\n this.renderer.setStyle(this.lastEl, 'left', `${-this.length * this.contentWidth}px`);\n } else {\n this.resetContext();\n }\n }\n\n private resetContext() {\n this.renderer.setStyle(this.lastEl, 'left', null);\n this.renderer.setStyle(this.firstEl, 'left', null);\n }\n\n initializeCarouselContents(contents: QueryList<ThyCarouselItemDirective> | null): void {\n this.initializeContents(contents);\n }\n\n dragging(pointerVector: ThyDistanceVector, rect: DOMRect): void {\n const { x } = pointerVector;\n const { width, height } = rect;\n this.contentWidth = width;\n this.contentHeight = height;\n const activeIndex = this.carouselComponent!.activeIndex;\n if (this.length > 1) {\n this.prepareHorizontalContext(activeIndex);\n }\n this.renderer.setStyle(this.wrapperEl, 'transform', `translate3d(${-activeIndex * this.contentWidth + x}px,0 , 0)`);\n }\n\n switch(to: number, from: number): Observable<void> {\n const switch$ = new Subject<void>();\n if (Math.abs(from - to) === 1 || from === to) {\n this.prepareHorizontalContext(to);\n }\n this.renderer.setStyle(this.wrapperEl, `transition-duration`, `${this.playTime}ms`);\n this.renderer.setStyle(this.wrapperEl, `transform`, `translate3d(${-to * this.contentWidth}px,0 , 0)`);\n setTimeout(() => {\n switch$.next();\n }, 0);\n setTimeout(() => {\n this.resetContext();\n this.renderer.setStyle(this.wrapperEl, `transition-duration`, `0s`);\n this.renderer.setStyle(\n this.wrapperEl,\n `transform`,\n `translate3d(${-((to + this.length) % this.length) * this.contentWidth}px,0 , 0)`\n );\n switch$.complete();\n }, this.playTime);\n return switch$.asObservable();\n }\n\n correctionOffset(): void {\n super.correctionOffset();\n const { activeIndex } = this.carouselComponent!;\n this.renderer.setStyle(this.wrapperEl, `transform`, `translate3d(${-activeIndex * this.contentWidth}px,0 , 0)`);\n }\n}\n","import { ChangeDetectorRef, QueryList, Renderer2 } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { Observable, Subject } from 'rxjs';\nimport { ThyCarousel } from '../carousel.component';\nimport { ThyDistanceVector } from '../typings';\nimport { ThyCarouselItemDirective } from '../carousel-item.directive';\nimport { ThyCarouselBaseEngine } from '../engine/carousel-base';\n\nexport class ThyCarouselFadeEngine extends ThyCarouselBaseEngine {\n contentsEl: HTMLElement[];\n constructor(thyCarouselComponent: ThyCarousel, cdr: ChangeDetectorRef, renderer: Renderer2, platform: Platform) {\n super(thyCarouselComponent, cdr, renderer, platform);\n }\n\n dragging(pointerVector: ThyDistanceVector, rect: DOMRect): void {\n const { x } = pointerVector;\n const { width } = rect;\n const activeIndex = this.carouselComponent!.activeIndex;\n const currentContent = this.contentsEl[activeIndex];\n this.renderer.setStyle(currentContent, 'opacity', `${1 - Math.abs(x) / width}`);\n }\n\n initializeCarouselContents(contents: QueryList<ThyCarouselItemDirective> | null): void {\n this.initializeContents(contents);\n this.contentsEl = [];\n contents.forEach((content, index) => {\n this.contentsEl.push(content.el);\n this.renderer.setStyle(content.el, 'opacity', this.carouselComponent!.activeIndex === index ? '1' : '0');\n this.renderer.setStyle(content.el, 'position', 'absolute');\n this.renderer.setStyle(content.el, 'left', '0');\n this.renderer.setStyle(content.el, `transition-property`, 'opacity');\n this.renderer.setStyle(content.el, `transition-timing-function`, 'ease');\n });\n }\n\n switch(to: number, from: number): Observable<void> {\n const switch$ = new Subject<void>();\n const currentEl = this.contentsEl[from];\n const nextEl = this.contentsEl[(to + this.length) % this.length];\n this.renderer.setStyle(currentEl, `transition-duration`, `${this.playTime}ms`);\n this.renderer.setStyle(nextEl, `transition-duration`, `${this.playTime}ms`);\n this.renderer.setStyle(currentEl, 'opacity', '0');\n this.renderer.setStyle(nextEl, 'opacity', '1');\n setTimeout(() => {\n switch$.next();\n }, 0);\n setTimeout(() => {\n this.renderer.setStyle(currentEl, `transition-duration`, `0s`);\n this.renderer.setStyle(nextEl, `transition-duration`, `0s`);\n switch$.complete();\n }, this.playTime);\n return switch$.asObservable();\n }\n\n correctionOffset(): void {}\n}\n","import { Injectable, NgZone, inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ThyDistanceVector } from './typings';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyCarouselService {\n private ngZone = inject(NgZone);\n\n private listeners = new Map<string, (event: MouseEvent | TouchEvent) => void>();\n private document: Document;\n\n documentDraggingOutside$ = new Subject<MouseEvent | Touch>();\n\n constructor() {\n const document = inject(DOCUMENT);\n\n this.document = document;\n }\n\n private clearListeners(): void {\n this.listeners.forEach((handler, name) => {\n this.document.removeEventListener(name, handler as EventListener);\n });\n this.listeners.clear();\n }\n\n private getEventPotions(event: MouseEvent | TouchEvent): MouseEvent | Touch {\n if (event instanceof MouseEvent) {\n return event;\n } else {\n return event.touches[0] || event.changedTouches[0];\n }\n }\n\n registerDrag(event: MouseEvent | TouchEvent): Observable<ThyDistanceVector> {\n if (this.documentDraggingOutside$) {\n this.documentDraggingOutside$.complete();\n }\n\n const startPoint = this.getEventPotions(event);\n\n this.documentDraggingOutside$ = new Subject<MouseEvent | Touch>();\n\n this.registerHandler(event);\n\n return this.documentDraggingOutside$.pipe(\n map(e => {\n return {\n x: e.pageX - startPoint!.pageX,\n y: e.pageY - startPoint!.pageY\n };\n })\n );\n }\n\n registerHandler(event: MouseEvent | TouchEvent) {\n this.clearListeners();\n const _isTouchEvent = event instanceof MouseEvent;\n const moveEvent = _isTouchEvent ? 'mousemove' : 'touchmove';\n const upEvent = _isTouchEvent ? 'mouseup' : 'touchend';\n const moveEventHandler = (e: MouseEvent | TouchEvent) => {\n this.documentDraggingOutside$.next(e instanceof MouseEvent ? e : e.touches[0] || e.changedTouches[0]);\n };\n const upEventHandler = () => {\n this.documentDraggingOutside$.complete();\n this.clearListeners();\n };\n this.listeners.set(moveEvent, moveEventHandler);\n this.listeners.set(upEvent, upEventHandler);\n this.ngZone.runOutsideAngular(() => {\n this.listeners.forEach((handler, name) => {\n this.document.addEventListener(name, handler as EventListener);\n });\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n TemplateRef,\n ViewEncapsulation,\n AfterContentInit,\n OnChanges,\n SimpleChanges,\n NgZone,\n OnDestroy,\n numberAttribute,\n inject\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { ThyCarouselItemDirective } from './carousel-item.directive';\nimport {\n ThyCarouselEngine,\n ThyDistanceVector,\n ThyCarouselSwitchData,\n ThyCarouselEffect,\n ThyCarouselTrigger,\n ThyCarouselPause\n} from './typings';\nimport { ThyCarouselSlideEngine, ThyCarouselNoopEngine, ThyCarouselFadeEngine } from './engine';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ThyCarouselService } from './carousel.service';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyDot } from 'ngx-tethys/dot';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty, isNumber } from 'ngx-tethys/util';\n\n/**\n * 走马灯组件\n * @name thy-carousel\n */\n@Component({\n selector: 'thy-carousel',\n templateUrl: './carousel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false,\n host: {\n class: 'thy-carousel'\n },\n standalone: true,\n imports: [NgTemplateOutlet, ThyDot, ThyIcon]\n})\nexport class ThyCarousel implements OnInit, AfterViewInit, AfterContentInit, OnChanges, OnDestroy {\n protected renderer = inject(Renderer2);\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private readonly carouselService = inject(ThyCarouselService);\n private readonly platform = inject(Platform);\n\n /**\n * @private\n */\n @ContentChildren(ThyCarouselItemDirective) carouselItems!: QueryList<ThyCarouselItemDirective>;\n\n /**\n * @private\n */\n @ViewChild('carouselWrapper', { static: true }) carouselWrapper: ElementRef<HTMLElement>;\n\n /**\n * 是否自动切换,默认 false\n */\n @Input({ transform: coerceBooleanProperty }) thyAutoPlay: boolean = false;\n\n /**\n * 自动切换时间间隔(毫秒)\n */\n @Input({ transform: numberAttribute }) thyAutoPlayInterval: number = 3000;\n\n /**\n * 切换动画样式\n * @type slide | fade | noop\n */\n @Input() thyEffect: ThyCarouselEffect = 'slide';\n\n /**\n * 是否显示切换指示器\n */\n @Input({ transform: coerceBooleanProperty }) thyIndicators = true;\n\n /**\n * 指示器 Item 的渲染模板\n */\n @Input() thyIndicatorRender?: TemplateRef<{ $implicit: boolean }>;\n\n /**\n * 是否显示左右切换\n */\n @Input({ transform: coerceBooleanProperty }) thyControls = true;\n\n /**\n * 上一个控制器渲染模板\n */\n @Input() thyControlPrev?: TemplateRef<any>;\n\n /**\n * 下一个控制器渲染模板\n */\n @Input() thyControlNext?: TemplateRef<any>;\n\n /**\n * 是否支持手势滑动\n */\n @Input({ transform: coerceBooleanProperty }) thyTouchable = true;\n\n /**\n * 指示点切换的触发条件\n * @type click | hover\n */\n @Input() thyTrigger: ThyCarouselTrigger = 'click';\n\n /**\n * 鼠标移动到指示器时是否暂停播放\n * @type false | hover\n */\n @Input() thyPause: ThyCarouselPause = 'hover';\n\n /**\n * 触发切换帧之前,返回 `{from: number, to: number}`\n */\n @Output() readonly thyBeforeChange = new EventEmitter<ThyCarouselSwitchData>();\n\n /**\n * 切换帧之后的回调,返回当前帧索引\n */\n @Output() readonly thyAfterChange = new EventEmitter<number>();\n\n private isDragging = false;\n\n private isTransitioning = false;\n\n private pointerVector: ThyDistanceVector = { x: 0, y: 0 };\n\n private engine: ThyCarouselEngine;\n\n private _trigger$ = new Subject<number | null>();\n\n private _destroy$ = new Subject<void>();\n\n wrapperDomRect: DOMRect;\n\n activeIndex = 0;\n\n wrapperEl: HTMLElement;\n\n transitionTimer: any = null;\n\n playTime: number = 400;\n\n isPause: boolean = false;\n\n private moveTo(index: number): void {\n if (this.carouselItems && this.carouselItems.length && !this.isTransitioning) {\n this.setInitialValue();\n const len = this.carouselItems.length;\n const from = this.activeIndex;\n const to = (index + len) % len;\n this.thyBeforeChange.emit({ from, to });\n this.isTransitioning = true;\n this.engine?.switch(index, this.activeIndex).subscribe(\n () => {\n this.activeIndex = to;\n this.markContentActive(this.activeIndex);\n this.scheduleNextTransition();\n this.thyAfterChange.emit(this.activeIndex);\n },\n () => {},\n () => {\n this.isTransitioning = false;\n }\n );\n this.cdr.markForCheck();\n }\n }\n\n private switchEngine(): void {\n switch (this.thyEffect) {\n case 'slide':\n this.engine = new ThyCarouselSlideEngine(this, this.cdr, this.renderer, this.platform);\n break;\n case 'fade':\n this.engine = new ThyCarouselFadeEngine(this, this.cdr, this.renderer, this.platform);\n break;\n default:\n this.engine = new ThyCarouselNoopEngine(this, this.cdr, this.renderer, this.platform);\n }\n }\n\n private markContentActive(index: number) {\n this.activeIndex = index;\n this.carouselItems.forEach((carouselContent: ThyCarouselItemDirective, i: number) => {\n carouselContent.isActive = index === i;\n });\n this.cdr.detectChanges();\n }\n\n private setInitialValue(): void {\n if (this.engine) {\n this.engine.initializeCarouselContents(this.carouselItems);\n }\n }\n\n private scheduleNextTransition(): void {\n this.clearScheduledTransition();\n if (this.thyAutoPlay && !this.isPause) {\n this.transitionTimer = setTimeout(() => {\n this.moveTo(this.activeIndex + 1);\n }, this.thyAutoPlayInterval);\n }\n }\n\n private clearScheduledTransition(): void {\n if (this.transitionTimer) {\n clearTimeout(this.transitionTimer);\n this.transitionTimer = null;\n }\n }\n\n onDrag(event: TouchEvent | MouseEvent): void {\n if (!this.isDragging && !this.isTransitioning && this.thyTouchable) {\n const mouseDownTime = new Date().getTime();\n let mouseUpTime: number;\n this.clearScheduledTransition();\n this.wrapperDomRect = this.wrapperEl.getBoundingClientRect();\n this.carouselService.registerDrag(event).subscribe(\n pointerVector => {\n this.renderer.setStyle(this.wrapperEl, 'cursor', 'grabbing');\n this.pointerVector = pointerVector;\n this.isDragging = true;\n this.engine?.dragging(this.pointerVector, this.wrapperDomRect);\n },\n () => {},\n () => {\n if (this.isDragging) {\n mouseUpTime = new Date().getTime();\n const holdDownTime = mouseUpTime - mouseDownTime;\n // Fast enough to switch to the next frame\n // or\n // If the pointerVector is more than one third switch to the next frame\n if (\n Math.abs(this.pointerVector.x) > this.wrapperDomRect.width / 3 ||\n Math.abs(this.pointerVector.x) / holdDownTime >= 1\n ) {\n this.moveTo(this.pointerVector.x > 0 ? this.activeIndex - 1 : this.activeIndex + 1);\n } else {\n this.moveTo(this.activeIndex);\n }\n }\n this.isDragging = false;\n this.renderer.setStyle(this.wrapperEl, 'cursor', 'grab');\n }\n );\n }\n }\n\n indicatorHandleClick(index: number): void {\n if (this.thyTrigger === 'click') {\n this.moveTo(index);\n }\n }\n\n indicatorHandleTrigger(index: number): void {\n if (this.thyPause === 'hover') {\n this.isPause = true;\n this.clearScheduledTransition();\n }\n if (this.thyTrigger === 'hover') {\n this._trigger$.next(index);\n }\n }\n\n indicatorHandleLeave() {\n if (this.thyPause === 'hover') {\n this.isPause = false;\n this.scheduleNextTransition();\n }\n }\n\n next(): void {\n this.moveTo(this.activeIndex + 1);\n }\n\n pre(): void {\n this.moveTo(this.activeIndex - 1);\n }\n\n ngOnInit(): void {\n this.wrapperEl = this.carouselWrapper!.nativeElement;\n this.ngZone.runOutsideAngular(() => {\n fromEvent(window, 'resize')\n .pipe(takeUntil(this._destroy$), debounceTime(100))\n .subscribe(() => {\n this.engine?.correctionOffset();\n });\n });\n }\n ngOnChanges(changes: SimpleChanges) {\n const { thyEffect, thyTouchable } = changes;\n if (thyEffect && !thyEffect.isFirstChange()) {\n this.switchEngine();\n this.markContentActive(0);\n this.setInitialValue();\n }\n\n if (thyTouchable && !thyTouchable.isFirstChange()) {\n this.renderer.setStyle(this.wrapperEl, 'cursor', thyTouchable.currentValue ? 'grab' : 'default');\n }\n\n if (!this.thyAutoPlay || !this.thyAutoPlayInterval) {\n this.clearScheduledTransition();\n } else {\n this.scheduleNextTransition();\n }\n }\n\n ngAfterViewInit(): void {\n this.carouselItems.changes.subscribe(() => {\n this.markContentActive(0);\n this.setInitialValue();\n });\n this.switchEngine();\n this.markContentActive(0);\n this.setInitialValue();\n\n if (!this.thyTouchable) {\n this.renderer.setStyle(this.wrapperEl, 'cursor', 'default');\n }\n }\n\n ngAfterContentInit() {\n this._trigger$.pipe(takeUntil(this._destroy$), debounceTime(this.playTime)).subscribe(index => {\n if (isNumber(index)) {\n this.moveTo(index);\n }\n });\n }\n\n ngOnDestroy() {\n this.clearScheduledTransition();\n this._trigger$.next(null);\n this._trigger$.complete();\n this._destroy$.next();\n this._destroy$.complete();\n }\n}\n","<div class=\"thy-carousel thy-carousel-initialized thy-carousel-point-events\">\n <div #carouselWrapper class=\"thy-carousel-wrapper\" (mousedown)=\"onDrag($event)\" (touchstart)=\"onDrag($event)\">\n <ng-content></ng-content>\n </div>\n @if (thyControls && carouselItems.length > 1) {\n <div class=\"thy-carousel-control-pre-wrapper\" (click)=\"pre()\">\n <ng-container *ngTemplateOutlet=\"thyControlPrev || defaultControlPrev\"></ng-container>\n </div>\n <div class=\"thy-carousel-control-next-wrapper\" (click)=\"next()\">\n <ng-container *ngTemplateOutlet=\"thyControlNext || defaultControlNext\"></ng-container>\n </div>\n }\n @if (thyIndicators) {\n <div class=\"thy-carousel-indicators\">\n @for (content of carouselItems; track $index; let i = $index) {\n <span\n class=\"thy-carousel-indicator\"\n (mouseenter)=\"indicatorHandleTrigger(i)\"\n (mouseleave)=\"indicatorHandleLeave()\"\n (click)=\"indicatorHandleClick(i)\">\n <ng-template\n [ngTemplateOutlet]=\"thyIndicatorRender || defaultIndicatorRender\"\n [ngTemplateOutletContext]=\"{ $implicit: i === activeIndex }\"></ng-template>\n </span>\n }\n </div>\n }\n</div>\n\n<ng-template #defaultIndicatorRender let-active>\n <thy-dot [class.active]=\"active\"></thy-dot>\n</ng-template>\n\n<ng-template #defaultControlPrev>\n <div class=\"thy-carousel-control thy-carousel-control-pre\">\n <thy-icon thyIconName=\"angle-left-bold\"></thy-icon>\n </div>\n</ng-template>\n\n<ng-template #defaultControlNext>\n <div class=\"thy-carousel-control thy-carousel-control-next\">\n <thy-icon thyIconName=\"angle-right-bold\"></thy-icon>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyCarousel } from './carousel.component';\nimport { ThyCarouselItemDirective } from './carousel-item.directive';\nimport { ThyDotModule } from 'ngx-tethys/dot';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nconst COMPONENTS = [ThyCarousel, ThyCarouselItemDirective];\n\n@NgModule({\n exports: [...COMPONENTS],\n imports: [CommonModule, ThyDotModule, ThyIconModule, ...COMPONENTS]\n})\nexport class ThyCarouselModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAEA;;AAEG;MAMU,wBAAwB,CAAA;IAOjC,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAC;SAC/D;aAAM;YACH,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAC;SAClE;KACJ;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;AAED,IAAA,WAAA,GAAA;AAnBQ,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAE7B,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAkBpB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtC,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;KACzE;8GAzBQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCFqB,qBAAqB,CAAA;AASvC,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KAC1B;AAED,IAAA,IAAc,OAAO,GAAA;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B;AAED,IAAA,IAAc,MAAM,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;KAC1C;AAED,IAAA,WAAA,CACI,oBAAiC,EACvB,GAAsB,EACtB,QAAmB,EACnB,QAAkB,EAAA;QAFlB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAE5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;KACjD;AAED,IAAA,kBAAkB,CAAC,QAAoD,EAAA;AACnE,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAkB,CAAC;AACzC,QAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;AACzC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;AAC5D,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;AAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAE1B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACnC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACjD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,sBAAsB,CAAC,CAAC;AAC5E,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA,MAAA,CAAQ,EAAE,CAAG,EAAA,IAAI,CAAC,aAAa,CAAA,EAAA,CAAI,CAAC,CAAC;SAC/E;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC5B,YAAA,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACN;IAQD,gBAAgB,GAAA;AACZ,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAkB,CAAC;AACzC,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QAC/B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;AAC5D,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;KAC/B;AACJ;;AC9DK,MAAO,qBAAsB,SAAQ,qBAAqB,CAAA;AAC5D,IAAA,WAAA,CAAY,oBAAiC,EAAE,GAAsB,EAAE,QAAmB,EAAE,QAAkB,EAAA;QAC1G,KAAK,CAAC,oBAAoB,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACxD;AAED,IAAA,QAAQ,CAAC,aAAgC,EAAE,IAAa,KAAU;AAElE,IAAA,0BAA0B,CAAC,QAAoD,EAAA;AAC3E,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;KACrC;IAED,MAAM,CAAC,EAAU,EAAE,IAAY,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAQ,CAAC;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,SAAS,EACd,CAAW,SAAA,CAAA,EACX,CAAe,YAAA,EAAA,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAA,SAAA,CAAW,CACpF,CAAC;QACF,UAAU,CAAC,MAAK;YACZ,OAAO,CAAC,IAAI,EAAE,CAAC;SAClB,EAAE,CAAC,CAAC,CAAC;QACN,UAAU,CAAC,MAAK;YACZ,OAAO,CAAC,QAAQ,EAAE,CAAC;SACtB,EAAE,CAAC,CAAC,CAAC;AACN,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC;KACjC;IAED,gBAAgB,GAAA;QACZ,KAAK,CAAC,gBAAgB,EAAE,CAAC;AACzB,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,iBAAkB,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA,SAAA,CAAW,EAAE,CAAe,YAAA,EAAA,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAA,SAAA,CAAW,CAAC,CAAC;KACnH;AACJ;;AChCK,MAAO,sBAAuB,SAAQ,qBAAqB,CAAA;AAC7D,IAAA,WAAA,CAAY,oBAAiC,EAAE,GAAsB,EAAE,QAAmB,EAAE,QAAkB,EAAA;QAC1G,KAAK,CAAC,oBAAoB,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACxD;AAEO,IAAA,wBAAwB,CAAC,WAAmB,EAAA;AAChD,QAAA,IAAI,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAG,EAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAI,EAAA,CAAA,CAAC,CAAC;AACrF,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;SACrD;AAAM,aAAA,IAAI,WAAW,IAAI,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAI,EAAA,CAAA,CAAC,CAAC;SACxF;aAAM;YACH,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;KACJ;IAEO,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;KACtD;AAED,IAAA,0BAA0B,CAAC,QAAoD,EAAA;AAC3E,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;KACrC;IAED,QAAQ,CAAC,aAAgC,EAAE,IAAa,EAAA;AACpD,QAAA,MAAM,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC;AAC5B,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;AAC5B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAkB,CAAC,WAAW,CAAC;AACxD,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACjB,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;SAC9C;QACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAW,SAAA,CAAA,CAAC,CAAC;KACvH;IAED,MAAM,CAAC,EAAU,EAAE,IAAY,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAQ,CAAC;AACpC,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE;AAC1C,YAAA,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;SACrC;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA,mBAAA,CAAqB,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAA,EAAA,CAAI,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA,SAAA,CAAW,EAAE,CAAe,YAAA,EAAA,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAA,SAAA,CAAW,CAAC,CAAC;QACvG,UAAU,CAAC,MAAK;YACZ,OAAO,CAAC,IAAI,EAAE,CAAC;SAClB,EAAE,CAAC,CAAC,CAAC;QACN,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA,mBAAA,CAAqB,EAAE,CAAA,EAAA,CAAI,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,SAAS,EACd,CAAW,SAAA,CAAA,EACX,CAAe,YAAA,EAAA,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAA,SAAA,CAAW,CACpF,CAAC;YACF,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvB,SAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClB,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC;KACjC;IAED,gBAAgB,GAAA;QACZ,KAAK,CAAC,gBAAgB,EAAE,CAAC;AACzB,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,iBAAkB,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA,SAAA,CAAW,EAAE,CAAe,YAAA,EAAA,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAA,SAAA,CAAW,CAAC,CAAC;KACnH;AACJ;;AClEK,MAAO,qBAAsB,SAAQ,qBAAqB,CAAA;AAE5D,IAAA,WAAA,CAAY,oBAAiC,EAAE,GAAsB,EAAE,QAAmB,EAAE,QAAkB,EAAA;QAC1G,KAAK,CAAC,oBAAoB,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACxD;IAED,QAAQ,CAAC,aAAgC,EAAE,IAAa,EAAA;AACpD,QAAA,MAAM,EAAE,CAAC,EAAE,GAAG,aAAa,CAAC;AAC5B,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AACvB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAkB,CAAC,WAAW,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,SAAS,EAAE,CAAG,EAAA,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAE,CAAA,CAAC,CAAC;KACnF;AAED,IAAA,0BAA0B,CAAC,QAAoD,EAAA;AAC3E,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,KAAI;YAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAkB,CAAC,WAAW,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACzG,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA,mBAAA,CAAqB,EAAE,SAAS,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA,0BAAA,CAA4B,EAAE,MAAM,CAAC,CAAC;AAC7E,SAAC,CAAC,CAAC;KACN;IAED,MAAM,CAAC,EAAU,EAAE,IAAY,EAAA;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAQ,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACxC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAqB,mBAAA,CAAA,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA,EAAA,CAAI,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAqB,mBAAA,CAAA,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA,EAAA,CAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC/C,UAAU,CAAC,MAAK;YACZ,OAAO,CAAC,IAAI,EAAE,CAAC;SAClB,EAAE,CAAC,CAAC,CAAC;QACN,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAqB,mBAAA,CAAA,EAAE,CAAI,EAAA,CAAA,CAAC,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAqB,mBAAA,CAAA,EAAE,CAAI,EAAA,CAAA,CAAC,CAAC;YAC5D,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvB,SAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClB,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC;KACjC;AAED,IAAA,gBAAgB,MAAW;AAC9B;;ACjDD;;AAEG;MAIU,kBAAkB,CAAA;AAQ3B,IAAA,WAAA,GAAA;AAPQ,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAExB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAoD,CAAC;AAGhF,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,OAAO,EAAsB,CAAC;AAGzD,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAElC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;IAEO,cAAc,GAAA;QAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAI;YACrC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAwB,CAAC,CAAC;AACtE,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;KAC1B;AAEO,IAAA,eAAe,CAAC,KAA8B,EAAA;AAClD,QAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC;SAChB;aAAM;AACH,YAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SACtD;KACJ;AAED,IAAA,YAAY,CAAC,KAA8B,EAAA;AACvC,QAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;SAC5C;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAE/C,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,OAAO,EAAsB,CAAC;AAElE,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,IAAI,CAAC,wBAAwB,CAAC,IAAI,CACrC,GAAG,CAAC,CAAC,IAAG;YACJ,OAAO;AACH,gBAAA,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,UAAW,CAAC,KAAK;AAC9B,gBAAA,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,UAAW,CAAC,KAAK;aACjC,CAAC;SACL,CAAC,CACL,CAAC;KACL;AAED,IAAA,eAAe,CAAC,KAA8B,EAAA;QAC1C,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,MAAM,aAAa,GAAG,KAAK,YAAY,UAAU,CAAC;QAClD,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;QAC5D,MAAM,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AACvD,QAAA,MAAM,gBAAgB,GAAG,CAAC,CAA0B,KAAI;AACpD,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,YAAY,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1G,SAAC,CAAC;QACF,MAAM,cAAc,GAAG,MAAK;AACxB,YAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,SAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YAC/B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAI;gBACrC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAwB,CAAC,CAAC;AACnE,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;8GArEQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;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,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACgCD;;;AAGG;MAaU,WAAW,CAAA;AAZxB,IAAA,WAAA,GAAA;AAac,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACf,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAY7C;;AAEG;QAC0C,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAE1E;;AAEG;QACoC,IAAmB,CAAA,mBAAA,GAAW,IAAI,CAAC;AAE1E;;;AAGG;QACM,IAAS,CAAA,SAAA,GAAsB,OAAO,CAAC;AAEhD;;AAEG;QAC0C,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAOlE;;AAEG;QAC0C,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AAYhE;;AAEG;QAC0C,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAEjE;;;AAGG;QACM,IAAU,CAAA,UAAA,GAAuB,OAAO,CAAC;AAElD;;;AAGG;QACM,IAAQ,CAAA,QAAA,GAAqB,OAAO,CAAC;AAE9C;;AAEG;AACgB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAyB,CAAC;AAE/E;;AAEG;AACgB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;QAEvD,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAEnB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QAExB,IAAa,CAAA,aAAA,GAAsB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAIlD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAiB,CAAC;AAEzC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;QAIxC,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAIhB,IAAe,CAAA,eAAA,GAAQ,IAAI,CAAC;QAE5B,IAAQ,CAAA,QAAA,GAAW,GAAG,CAAC;QAEvB,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;AAmM5B,KAAA;AAjMW,IAAA,MAAM,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAC1E,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACtC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,YAAA,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAClD,MAAK;AACD,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/C,aAAC,EACD,SAAQ,EACR,MAAK;AACD,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,aAAC,CACJ,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B;KACJ;IAEO,YAAY,GAAA;AAChB,QAAA,QAAQ,IAAI,CAAC,SAAS;AAClB,YAAA,KAAK,OAAO;gBACR,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvF,MAAM;AACV,YAAA,KAAK,MAAM;gBACP,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtF,MAAM;AACV,YAAA;gBACI,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC7F;KACJ;AAEO,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,eAAyC,EAAE,CAAS,KAAI;AAChF,YAAA,eAAe,CAAC,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;IAEO,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC9D;KACJ;IAEO,sBAAsB,GAAA;QAC1B,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACtC,aAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAChC;KACJ;IAEO,wBAAwB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/B;KACJ;AAED,IAAA,MAAM,CAAC,KAA8B,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,EAAE;YAChE,MAAM,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAC3C,YAAA,IAAI,WAAmB,CAAC;YACxB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;AAC7D,YAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAC9C,aAAa,IAAG;AACZ,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC7D,gBAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACnC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACnE,aAAC,EACD,SAAQ,EACR,MAAK;AACD,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,oBAAA,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AACnC,oBAAA,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,CAAC;;;;AAIjD,oBAAA,IACI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC;AAC9D,wBAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EACpD;wBACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;qBACvF;yBAAM;AACH,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;qBACjC;iBACJ;AACD,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC7D,aAAC,CACJ,CAAC;SACL;KACJ;AAED,IAAA,oBAAoB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtB;KACJ;AAED,IAAA,sBAAsB,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACnC;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;KACJ;IAED,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC;KACJ;IAED,IAAI,GAAA;QACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;KACrC;IAED,GAAG,GAAA;QACC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;KACrC;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAgB,CAAC,aAAa,CAAC;AACrD,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC/B,YAAA,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;AACtB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;iBAClD,SAAS,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;AACpC,aAAC,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;KACN;AACD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;QAC5C,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE;YACzC,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,YAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;QAED,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE;YAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;SACpG;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAChD,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACnC;aAAM;YACH,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC;KACJ;IAED,eAAe,GAAA;QACX,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;AACtC,YAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3B,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC/D;KACJ;IAED,kBAAkB,GAAA;QACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC1F,YAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACjB,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACtB;AACL,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;QACP,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC7B;8GA7SQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,sGAoBA,qBAAqB,CAAA,EAAA,mBAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,EAKrB,eAAe,CAWf,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,CAAA,eAAA,EAAA,eAAA,EAAA,qBAAqB,yFAUrB,qBAAqB,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAerB,qBAAqB,CAnDxB,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAAA,wBAAwB,oLCrE7C,2tDA4CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDac,gBAAgB,EAAE,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAM,gIAAE,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,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAElC,WAAW,EAAA,UAAA,EAAA,CAAA;kBAZvB,SAAS;+BACI,cAAc,EAAA,eAAA,EAEP,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAChB,mBAAA,EAAA,KAAK,EACpB,IAAA,EAAA;AACF,wBAAA,KAAK,EAAE,cAAc;qBACxB,EACW,UAAA,EAAA,IAAI,WACP,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,2tDAAA,EAAA,CAAA;8BAYD,aAAa,EAAA,CAAA;sBAAvD,eAAe;uBAAC,wBAAwB,CAAA;gBAKO,eAAe,EAAA,CAAA;sBAA9D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAKD,WAAW,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAKJ,mBAAmB,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBAM5B,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKuC,aAAa,EAAA,CAAA;sBAAzD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAKlC,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAKuC,WAAW,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAKlC,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAKG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAKuC,YAAY,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAMlC,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAMG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAKa,eAAe,EAAA,CAAA;sBAAjC,MAAM;gBAKY,cAAc,EAAA,CAAA;sBAAhC,MAAM;;;AEvIX,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC;MAM9C,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;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,EAFhB,OAAA,EAAA,CAAA,YAAY,EAAE,YAAY,EAAE,aAAa,EAJnC,WAAW,EAAE,wBAAwB,CAArC,EAAA,OAAA,EAAA,CAAA,WAAW,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA;AAM5C,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,YAFhB,YAAY,EAAE,YAAY,EAAE,aAAa,EAJnC,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMlB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;oBACxB,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;AACtE,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}
@@ -3,7 +3,7 @@ import { coerceBooleanProperty as coerceBooleanProperty$1, coerceNumberProperty
3
3
  import { Subject, fromEvent, Observable, of, throwError, BehaviorSubject, from } from 'rxjs';
4
4
  import { FocusMonitor } from '@angular/cdk/a11y';
5
5
  import * as i0 from '@angular/core';
6
- import { inject, ElementRef, Injectable, NgZone, EventEmitter, TemplateRef, reflectComponentType, Directive, Renderer2, InjectionToken, isDevMode } from '@angular/core';
6
+ import { inject, ElementRef, Injectable, NgZone, signal, EventEmitter, TemplateRef, reflectComponentType, Directive, Renderer2, InjectionToken, isDevMode } from '@angular/core';
7
7
  import { takeUntil, take, finalize, filter, catchError, shareReplay, exhaustMap, map, distinctUntilChanged, debounceTime } from 'rxjs/operators';
8
8
  import { ThyClickDispatcher } from '@tethys/cdk/event';
9
9
  export * from '@tethys/cdk/event';
@@ -487,6 +487,46 @@ const scaleMotion = trigger('scaleMotion', [
487
487
  ])
488
488
  ]);
489
489
 
490
+ class ThyThemeStore {
491
+ constructor() {
492
+ this.theme = signal("light" /* ThyTheme.light */);
493
+ }
494
+ setTheme(theme) {
495
+ this.theme.set(theme);
496
+ }
497
+ normalizeColor(color) {
498
+ if (typeof color === 'string') {
499
+ return color;
500
+ }
501
+ if (Array.isArray(color)) {
502
+ if (color.length === 1) {
503
+ return color[0];
504
+ }
505
+ if (color.length > 1) {
506
+ if (this.isDark()) {
507
+ return color[1];
508
+ }
509
+ else {
510
+ return color[0];
511
+ }
512
+ }
513
+ }
514
+ }
515
+ isDark() {
516
+ const theme = this.theme();
517
+ return (theme === "dark" /* ThyTheme.dark */ ||
518
+ (theme === "system" /* ThyTheme.system */ && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches));
519
+ }
520
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyThemeStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
521
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyThemeStore, providedIn: 'root' }); }
522
+ }
523
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyThemeStore, decorators: [{
524
+ type: Injectable,
525
+ args: [{
526
+ providedIn: 'root'
527
+ }]
528
+ }], ctorParameters: () => [] });
529
+
490
530
  const POSITION_MAP = {
491
531
  top: {
492
532
  originX: 'center',
@@ -1125,7 +1165,7 @@ class ThyAbstractOverlayService {
1125
1165
  }
1126
1166
  else {
1127
1167
  const injector = this.createInjector(config, abstractOverlayRef, containerInstance);
1128
- const contentRef = containerInstance.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector));
1168
+ const contentRef = containerInstance.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector, undefined, config.projectableNodes));
1129
1169
  if (config.initialState) {
1130
1170
  const metadata = reflectComponentType(componentOrTemplateRef);
1131
1171
  const inputsByTemplateName = keyBy(metadata.inputs, 'templateName');
@@ -1597,5 +1637,5 @@ class DebounceTimeWrapper {
1597
1637
  * Generated bundle index. Do not edit.
1598
1638
  */
1599
1639
 
1600
- export { AbstractControlValueAccessor, AnimationCurves, AnimationDuration, AnonymousClass, DebounceTimeWrapper, EXPANDED_DROPDOWN_POSITIONS, InputBoolean, InputCssPixel, InputNumber, MiniAction, MiniActionState, MiniStore, MixinBase, POSITION_MAP, ScrollToService, TabIndexDisabledControlValueAccessorMixin, TabIndexMixinBase, ThyAbstractInternalOverlayRef, ThyAbstractOverlayConfig, ThyAbstractOverlayContainer, ThyAbstractOverlayRef, ThyAbstractOverlayService, ThyClickPositioner, ThyOverlayDirectiveBase, ThyPortalOutlet, ThyScrollService, ThyTranslate, UpdateHostClassService, buildConnectedPositionOffset, buildConnectedPositionPair, cancelRequestAnimationFrame, collapseMotion, fadeMotion, getFallbackPlacements, getFlexiblePositions, getNumericSize, getPlacementByPosition, isBgColor, isTextColor, isThemeColor, mixinDisabled, mixinInitialized, mixinLoadingDone, mixinTabIndex, mixinUnsubscribe, presetBgColors, presetTextColors, presetThemeColors, reqAnimFrame, scaleMotion, scaleXMotion, scaleYMotion, throwPopoverContentAlreadyAttachedError, thumbMotion, useHostFocusControl };
1640
+ export { AbstractControlValueAccessor, AnimationCurves, AnimationDuration, AnonymousClass, DebounceTimeWrapper, EXPANDED_DROPDOWN_POSITIONS, InputBoolean, InputCssPixel, InputNumber, MiniAction, MiniActionState, MiniStore, MixinBase, POSITION_MAP, ScrollToService, TabIndexDisabledControlValueAccessorMixin, TabIndexMixinBase, ThyAbstractInternalOverlayRef, ThyAbstractOverlayConfig, ThyAbstractOverlayContainer, ThyAbstractOverlayRef, ThyAbstractOverlayService, ThyClickPositioner, ThyOverlayDirectiveBase, ThyPortalOutlet, ThyScrollService, ThyThemeStore, ThyTranslate, UpdateHostClassService, buildConnectedPositionOffset, buildConnectedPositionPair, cancelRequestAnimationFrame, collapseMotion, fadeMotion, getFallbackPlacements, getFlexiblePositions, getNumericSize, getPlacementByPosition, isBgColor, isTextColor, isThemeColor, mixinDisabled, mixinInitialized, mixinLoadingDone, mixinTabIndex, mixinUnsubscribe, presetBgColors, presetTextColors, presetThemeColors, reqAnimFrame, scaleMotion, scaleXMotion, scaleYMotion, throwPopoverContentAlreadyAttachedError, thumbMotion, useHostFocusControl };
1601
1641
  //# sourceMappingURL=ngx-tethys-core.mjs.map