ngx-tethys 20.0.1 → 20.0.2

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 (239) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/action/index.d.ts +3 -3
  3. package/affix/index.d.ts +1 -1
  4. package/alert/index.d.ts +3 -3
  5. package/anchor/index.d.ts +3 -3
  6. package/arrow-switcher/index.d.ts +6 -6
  7. package/autocomplete/index.d.ts +7 -7
  8. package/avatar/index.d.ts +9 -9
  9. package/back-top/index.d.ts +3 -3
  10. package/badge/index.d.ts +6 -6
  11. package/breadcrumb/index.d.ts +7 -7
  12. package/button/index.d.ts +19 -19
  13. package/calendar/index.d.ts +8 -8
  14. package/card/index.d.ts +6 -6
  15. package/carousel/index.d.ts +4 -4
  16. package/cascader/index.d.ts +24 -24
  17. package/collapse/index.d.ts +4 -4
  18. package/color-picker/index.d.ts +16 -16
  19. package/comment/index.d.ts +3 -3
  20. package/copy/index.d.ts +2 -2
  21. package/core/index.d.ts +22 -22
  22. package/date-picker/index.d.ts +111 -111
  23. package/date-range/index.d.ts +5 -5
  24. package/dialog/index.d.ts +18 -18
  25. package/divider/index.d.ts +3 -3
  26. package/drag-drop/index.d.ts +7 -7
  27. package/dropdown/index.d.ts +10 -10
  28. package/empty/index.d.ts +12 -12
  29. package/fesm2022/ngx-tethys-action.mjs +14 -12
  30. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-affix.mjs +7 -7
  32. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-alert.mjs +10 -10
  34. package/fesm2022/ngx-tethys-anchor.mjs +11 -11
  35. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  36. package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
  37. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  38. package/fesm2022/ngx-tethys-autocomplete.mjs +19 -18
  39. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  40. package/fesm2022/ngx-tethys-avatar.mjs +23 -22
  41. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  42. package/fesm2022/ngx-tethys-back-top.mjs +7 -7
  43. package/fesm2022/ngx-tethys-badge.mjs +7 -7
  44. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
  46. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-button.mjs +16 -16
  48. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-calendar.mjs +16 -16
  50. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-card.mjs +13 -13
  52. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-carousel.mjs +15 -15
  54. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-cascader.mjs +41 -34
  56. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
  58. package/fesm2022/ngx-tethys-collapse.mjs +10 -10
  59. package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
  60. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-comment.mjs +13 -13
  62. package/fesm2022/ngx-tethys-copy.mjs +10 -10
  63. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-core.mjs +30 -25
  65. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
  67. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-date-range.mjs +16 -16
  69. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-dialog.mjs +24 -24
  71. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-divider.mjs +7 -7
  73. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-dot.mjs +7 -7
  75. package/fesm2022/ngx-tethys-drag-drop.mjs +24 -24
  76. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
  78. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-empty.mjs +13 -13
  80. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
  82. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-form.mjs +64 -61
  84. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
  86. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-grid.mjs +34 -33
  88. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-guider.mjs +25 -24
  90. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-i18n.mjs +3 -3
  92. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-icon.mjs +15 -13
  94. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-image.mjs +31 -29
  96. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-input-number.mjs +17 -10
  98. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-input.mjs +28 -27
  100. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-layout.mjs +63 -63
  102. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-list.mjs +21 -18
  104. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  106. package/fesm2022/ngx-tethys-mention.mjs +35 -31
  107. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  108. package/fesm2022/ngx-tethys-menu.mjs +26 -26
  109. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  110. package/fesm2022/ngx-tethys-message.mjs +24 -24
  111. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  112. package/fesm2022/ngx-tethys-nav.mjs +27 -27
  113. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  114. package/fesm2022/ngx-tethys-notify.mjs +20 -20
  115. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  116. package/fesm2022/ngx-tethys-pagination.mjs +18 -18
  117. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  118. package/fesm2022/ngx-tethys-popover.mjs +22 -21
  119. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  120. package/fesm2022/ngx-tethys-progress.mjs +17 -17
  121. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  122. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  123. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  124. package/fesm2022/ngx-tethys-property.mjs +12 -11
  125. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  126. package/fesm2022/ngx-tethys-radio.mjs +17 -17
  127. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  128. package/fesm2022/ngx-tethys-rate.mjs +12 -12
  129. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-resizable.mjs +21 -18
  131. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-result.mjs +11 -11
  133. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-segment.mjs +19 -16
  135. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-select.mjs +60 -38
  137. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-shared.mjs +82 -79
  139. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
  141. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-slide.mjs +37 -36
  143. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-slider.mjs +11 -11
  145. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-space.mjs +10 -10
  147. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  148. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys-stepper.mjs +22 -22
  150. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-strength.mjs +7 -7
  152. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  154. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-table.mjs +28 -28
  156. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-tabs.mjs +13 -13
  158. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-tag.mjs +11 -11
  160. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-testing.mjs +1 -1
  162. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
  164. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-timeline.mjs +14 -14
  166. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-tooltip.mjs +19 -16
  168. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-transfer.mjs +15 -15
  170. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
  172. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  173. package/fesm2022/ngx-tethys-tree.mjs +50 -43
  174. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  175. package/fesm2022/ngx-tethys-typography.mjs +16 -16
  176. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  177. package/fesm2022/ngx-tethys-upload.mjs +26 -25
  178. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  179. package/fesm2022/ngx-tethys-util.mjs +11 -5
  180. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  181. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  182. package/fesm2022/ngx-tethys-watermark.mjs +18 -15
  183. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys.mjs +1 -1
  185. package/fesm2022/ngx-tethys.mjs.map +1 -1
  186. package/flexible-text/index.d.ts +5 -5
  187. package/form/index.d.ts +26 -22
  188. package/fullscreen/index.d.ts +4 -4
  189. package/grid/index.d.ts +12 -12
  190. package/guider/index.d.ts +10 -10
  191. package/i18n/index.d.ts +1 -1
  192. package/icon/index.d.ts +3 -3
  193. package/image/index.d.ts +12 -12
  194. package/input/index.d.ts +22 -22
  195. package/input-number/index.d.ts +4 -4
  196. package/layout/index.d.ts +16 -16
  197. package/list/index.d.ts +16 -15
  198. package/mention/index.d.ts +4 -4
  199. package/menu/index.d.ts +7 -7
  200. package/message/index.d.ts +5 -5
  201. package/nav/index.d.ts +12 -12
  202. package/notify/index.d.ts +1 -1
  203. package/package.json +1 -1
  204. package/pagination/index.d.ts +21 -17
  205. package/popover/index.d.ts +8 -8
  206. package/progress/index.d.ts +18 -18
  207. package/property/index.d.ts +6 -6
  208. package/property-operation/index.d.ts +3 -3
  209. package/radio/index.d.ts +6 -6
  210. package/rate/index.d.ts +5 -5
  211. package/resizable/index.d.ts +2 -2
  212. package/result/index.d.ts +8 -8
  213. package/schematics/testing/test-workspace.js +1 -0
  214. package/schematics/version.d.ts +1 -1
  215. package/schematics/version.js +1 -1
  216. package/segment/index.d.ts +9 -9
  217. package/select/index.d.ts +21 -21
  218. package/shared/index.d.ts +29 -29
  219. package/skeleton/index.d.ts +52 -52
  220. package/slide/index.d.ts +5 -5
  221. package/slider/index.d.ts +6 -6
  222. package/space/index.d.ts +1 -1
  223. package/statistic/index.d.ts +18 -18
  224. package/stepper/index.d.ts +8 -8
  225. package/switch/index.d.ts +2 -2
  226. package/table/index.d.ts +24 -24
  227. package/tabs/index.d.ts +6 -6
  228. package/testing/index.d.ts +1 -1
  229. package/time-picker/index.d.ts +21 -21
  230. package/timeline/index.d.ts +8 -8
  231. package/tooltip/index.d.ts +12 -12
  232. package/transfer/index.d.ts +16 -16
  233. package/tree/index.d.ts +28 -28
  234. package/tree-select/index.d.ts +13 -13
  235. package/typography/index.d.ts +3 -3
  236. package/upload/index.d.ts +4 -4
  237. package/util/index.d.ts +17 -7
  238. package/vote/index.d.ts +2 -2
  239. package/watermark/index.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-slider.mjs","sources":["../../../src/slider/slider.component.ts","../../../src/slider/slider.component.html","../../../src/slider/slider.module.ts","../../../src/slider/ngx-tethys-slider.ts"],"sourcesContent":["import { NgStyle } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n WritableSignal,\n effect,\n forwardRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { clamp, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { Observable, Subscription, fromEvent } from 'rxjs';\nimport { distinctUntilChanged, map, pluck, takeUntil, tap } from 'rxjs/operators';\n\nexport type ThySliderType = 'primary' | 'success' | 'info' | 'warning' | 'danger';\n\nexport type ThySliderSize = 'sm' | 'md' | 'lg';\n\n/**\n * 滑动输入条组件\n * @name thy-slider\n * @order 10\n */\n@Component({\n selector: 'thy-slider',\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySlider),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `tabIndex`,\n '[class.slider-vertical]': 'thyVertical()',\n '[class.slider-disabled]': '!!disabled',\n '[class.thy-slider]': 'true',\n '[class.cursor-pointer]': 'true'\n },\n imports: [NgStyle]\n})\nexport class ThySlider\n extends TabIndexDisabledControlValueAccessorMixin\n implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor\n{\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private ref = inject(ElementRef);\n\n /**\n * 是否切换为纵轴模式\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n this.toggleDisabled();\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n disabled = false;\n\n readonly sliderRail = viewChild<ElementRef>('sliderRail');\n\n readonly sliderTrack = viewChild<ElementRef>('sliderTrack');\n\n readonly sliderPointer = viewChild<ElementRef>('sliderPointer');\n\n private typeClassName: WritableSignal<string> = signal('');\n\n private sizeClassName: WritableSignal<string> = signal('');\n\n /**\n * 最大值\n */\n readonly thyMax = input<number, unknown>(100, { transform: numberAttribute });\n\n /**\n * 最小值\n */\n readonly thyMin = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 步长,需要被 thyMax - thyMin 的差值整除。\n */\n readonly thyStep = input<number, unknown>(1, { transform: numberAttribute });\n\n /**\n * 切换主题类型\n * @type primary | success | info | warning | danger\n */\n readonly thyType = input<ThySliderType>('success');\n\n /**\n * 通过变量设置颜色\n */\n readonly thyColor = input<string>();\n\n /**\n * 滑动输入条大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThySliderSize>('sm');\n\n /**\n * 移动结束后的回调,参数为当前值\n */\n readonly thyAfterChange = output<{ value: number }>();\n\n public value: number;\n\n private dragStartListener: Observable<number>;\n\n private dragMoveListener: Observable<number>;\n\n private dragEndListener: Observable<Event>;\n\n private dragStartHandler: Subscription | null;\n\n private dragMoveHandler: Subscription | null;\n\n private dragEndHandler: Subscription | null;\n\n private hostRenderer = useHostRenderer();\n\n private onChangeCallback = (v: any) => {};\n\n private onTouchedCallback = (v: any) => {};\n\n constructor() {\n super();\n effect(() => {\n if (this.thyType()) {\n const typeName = `thy-slider-${this.thyType() || 'success'}`;\n this.typeClassName() && this.hostRenderer.removeClass(this.typeClassName());\n this.hostRenderer.addClass(typeName);\n this.typeClassName.set(typeName);\n }\n });\n\n effect(() => {\n if (this.thySize()) {\n const sizeName = `thy-slider-${this.thySize() || 'sm'}`;\n this.sizeClassName() && this.hostRenderer.removeClass(this.sizeClassName());\n this.hostRenderer.addClass(sizeName);\n this.sizeClassName.set(sizeName);\n }\n });\n }\n\n ngOnInit() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n\n this.toggleDisabled();\n if (this.value === null || this.value === undefined) {\n this.setValue(this.ensureValueInRange(null));\n }\n }\n\n ngAfterViewInit() {\n this.registerMouseEventsListeners();\n this.toggleDisabled();\n }\n\n writeValue(newValue: number) {\n this.setValue(this.ensureValueInRange(newValue));\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (changes.hasOwnProperty('thyMin') || changes.hasOwnProperty('thyMax') || changes.hasOwnProperty('thyStep')) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n }\n }\n\n ngOnDestroy() {\n this.unsubscribeMouseListeners();\n }\n\n private toggleDisabled() {\n if (this.thyDisabled) {\n this.unsubscribeMouseListeners();\n } else {\n this.subscribeMouseListeners(['start']);\n }\n }\n\n private setValue(value: number) {\n if (this.value !== value) {\n this.value = value;\n this.updateTrackAndPointer();\n }\n this.onChangeCallback(this.value);\n }\n\n private ensureValueInRange(value: number): number {\n if (!this.valueMustBeValid(value)) {\n return this.thyMin();\n }\n return clamp(value, this.thyMin(), this.thyMax());\n }\n\n private valueMustBeValid(value: number): boolean {\n return !isNaN(typeof value !== 'number' ? parseFloat(value) : value);\n }\n\n private updateTrackAndPointer() {\n const offset = this.valueToOffset(this.value);\n this.updateStyle(offset / 100);\n this.cdr.markForCheck();\n }\n\n private valueToOffset(value: number): number {\n return ((value - this.thyMin()) * 100) / (this.thyMax() - this.thyMin());\n }\n\n private updateStyle(offsetPercentage: number) {\n const percentage = Math.min(1, Math.max(0, offsetPercentage));\n const orientFields: string[] = this.thyVertical() ? ['height', 'bottom'] : ['width', 'left'];\n this.sliderTrack().nativeElement.style[orientFields[0]] = `${percentage * 100}%`;\n this.sliderPointer().nativeElement.style[orientFields[1]] = `${percentage * 100}%`;\n }\n\n private unsubscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartHandler) {\n this.dragStartHandler.unsubscribe();\n this.dragStartHandler = null;\n }\n if (actions.includes('move') && this.dragMoveHandler) {\n this.dragMoveHandler.unsubscribe();\n this.dragMoveHandler = null;\n }\n if (actions.includes('end') && this.dragEndHandler) {\n this.dragEndHandler.unsubscribe();\n this.dragEndHandler = null;\n }\n }\n\n private subscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartListener && !this.dragStartHandler) {\n this.dragStartHandler = this.dragStartListener.subscribe(this.mouseStartMoving.bind(this));\n }\n\n if (actions.includes('move') && this.dragMoveListener && !this.dragMoveHandler) {\n this.dragMoveHandler = this.dragMoveListener.subscribe(this.mouseMoving.bind(this));\n }\n\n if (actions.includes('end') && this.dragEndListener && !this.dragEndHandler) {\n this.dragEndHandler = this.dragEndListener.subscribe(this.mouseStopMoving.bind(this));\n }\n }\n\n private mouseStartMoving(value: number) {\n this.pointerController(true);\n this.setValue(value);\n }\n\n private mouseMoving(value: number) {\n this.setValue(this.ensureValueInRange(value));\n this.cdr.markForCheck();\n }\n\n private mouseStopMoving(): void {\n this.pointerController(false);\n this.cdr.markForCheck();\n this.thyAfterChange.emit({ value: this.value });\n }\n\n private pointerController(movable: boolean) {\n if (movable) {\n this.subscribeMouseListeners(['move', 'end']);\n } else {\n this.unsubscribeMouseListeners(['move', 'end']);\n }\n }\n private registerMouseEventsListeners() {\n const orientField = this.thyVertical() ? 'pageY' : 'pageX';\n\n this.dragStartListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(this.ref.nativeElement, 'mousedown').pipe(\n pluck(orientField),\n map((position: number, index) => this.mousePositionToAdaptiveValue(position))\n );\n });\n\n this.dragEndListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mouseup');\n });\n\n this.dragMoveListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mousemove').pipe(\n tap((e: Event) => {\n e.stopPropagation();\n e.preventDefault();\n }),\n pluck(orientField),\n distinctUntilChanged(),\n map((position: number) => this.mousePositionToAdaptiveValue(position)),\n distinctUntilChanged(),\n takeUntil(this.dragEndListener)\n );\n });\n }\n\n private mousePositionToAdaptiveValue(position: number): number {\n const sliderStartPosition = this.getSliderPagePosition();\n const sliderLength = this.getRailLength();\n if (!sliderLength) {\n return this.value;\n }\n const ratio = this.convertPointerPositionToRatio(position, sliderStartPosition, sliderLength);\n const value = this.ratioToValue(ratio);\n return parseFloat(value.toFixed(this.getDecimals(this.thyStep())));\n }\n\n private getSliderPagePosition(): number {\n const rect = this.ref.nativeElement.getBoundingClientRect();\n const window = this.ref.nativeElement.ownerDocument.defaultView;\n const orientFields: string[] = this.thyVertical() ? ['bottom', 'pageYOffset'] : ['left', 'pageXOffset'];\n return rect[orientFields[0]] + window[orientFields[1]];\n }\n\n private getRailLength() {\n const orientFiled = this.thyVertical() ? 'clientHeight' : 'clientWidth';\n\n return this.sliderRail().nativeElement[orientFiled];\n }\n\n private convertPointerPositionToRatio(pointerPosition: number, startPosition: number, totalLength: number) {\n if (this.thyVertical()) {\n return clamp((startPosition - pointerPosition) / totalLength, 0, 1);\n }\n return clamp((pointerPosition - startPosition) / totalLength, 0, 1);\n }\n\n private ratioToValue(ratio: number) {\n let value = (this.thyMax() - this.thyMin()) * ratio + this.thyMin();\n const step = this.thyStep();\n if (ratio === 0) {\n value = this.thyMin();\n } else if (ratio === 1) {\n value = this.thyMax();\n } else {\n value = Math.round(value / step) * step;\n }\n return clamp(value, this.thyMin(), this.thyMax());\n }\n\n private getDecimals(value: number): number {\n const valueString = value.toString();\n const integerLength = valueString.indexOf('.') + 1;\n return integerLength >= 0 ? valueString.length - integerLength : 0;\n }\n}\n\n// Note: keep `verifyMinAndMax` and `verifyStepValues` as separate functions (not as class properties)\n// so they're tree-shakable in production mode.\n\nfunction verifyMinAndMax(ctx: ThySlider): void | never {\n if (ctx.thyMin() >= ctx.thyMax()) {\n throw new Error('min value must less than max value.');\n }\n}\n\nfunction verifyStepValues(ctx: ThySlider): void | never {\n const thyStep = ctx.thyStep();\n if (ctx.thyStep() <= 0 || !thyStep) {\n throw new Error('step value must be greater than 0.');\n } else if (Number.isInteger(thyStep) && (ctx.thyMax() - ctx.thyMin()) % thyStep) {\n throw new Error('(max - min) must be divisible by step.');\n }\n}\n","<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor() }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor() }\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ThySlider } from './slider.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySlider],\n exports: [ThySlider],\n providers: []\n})\nexport class ThySliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAiCA;;;;AAIG;AAoBG,MAAO,SACT,SAAQ,yCAAyC,CAAA;AAYjD;;AAEG;IACH,IACa,WAAW,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,cAAc,EAAE;IACzB;AACA,IAAA,IAAa,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,QAAQ;IACxB;AAuEA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AA3FH,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AAEhC;;AAEG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,+CAAI,SAAS,EAAE,qBAAqB,EAAA,CAAA,GAAA,CAAlC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAC;QAczE,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEP,QAAA,IAAA,CAAA,UAAU,GAAG,SAAS,CAAa,YAAY,sDAAC;AAEhD,QAAA,IAAA,CAAA,WAAW,GAAG,SAAS,CAAa,aAAa,uDAAC;AAElD,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAAa,eAAe,yDAAC;AAEvD,QAAA,IAAA,CAAA,aAAa,GAA2B,MAAM,CAAC,EAAE,yDAAC;AAElD,QAAA,IAAA,CAAA,aAAa,GAA2B,MAAM,CAAC,EAAE,yDAAC;AAE1D;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAkB,GAAG,0CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAE7E;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAkB,CAAC,0CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAE3E;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAkB,CAAC,2CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;AAE5E;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAgB,SAAS,mDAAC;AAElD;;AAEG;QACM,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AAEnC;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAgB,IAAI,mDAAC;AAE7C;;AAEG;QACM,IAAA,CAAA,cAAc,GAAG,MAAM,EAAqB;QAgB7C,IAAA,CAAA,YAAY,GAAG,eAAe,EAAE;AAEhC,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAM,KAAI,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,CAAM,KAAI,EAAE,CAAC;QAItC,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;gBAChB,MAAM,QAAQ,GAAG,CAAA,WAAA,EAAc,IAAI,CAAC,OAAO,EAAE,IAAI,SAAS,CAAA,CAAE;AAC5D,gBAAA,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC3E,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACpC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpC;AACJ,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACR,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;gBAChB,MAAM,QAAQ,GAAG,CAAA,WAAA,EAAc,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAA,CAAE;AACvD,gBAAA,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC3E,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACpC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpC;AACJ,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;YAC/C,eAAe,CAAC,IAAI,CAAC;YACrB,gBAAgB,CAAC,IAAI,CAAC;QAC1B;QAEA,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAChD;IACJ;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,4BAA4B,EAAE;QACnC,IAAI,CAAC,cAAc,EAAE;IACzB;AAEA,IAAA,UAAU,CAAC,QAAgB,EAAA;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACpD;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;IAC9B;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;IAC/B;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;YAC/C,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBAC3G,eAAe,CAAC,IAAI,CAAC;gBACrB,gBAAgB,CAAC,IAAI,CAAC;YAC1B;QACJ;IACJ;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,yBAAyB,EAAE;IACpC;IAEQ,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,yBAAyB,EAAE;QACpC;aAAO;AACH,YAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3C;IACJ;AAEQ,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;YAClB,IAAI,CAAC,qBAAqB,EAAE;QAChC;AACA,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;IACrC;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;QACpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;AAC/B,YAAA,OAAO,IAAI,CAAC,MAAM,EAAE;QACxB;AACA,QAAA,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrD;AAEQ,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACxE;IAEQ,qBAAqB,GAAA;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7C,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IAC3B;AAEQ,IAAA,aAAa,CAAC,KAAa,EAAA;QAC/B,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5E;AAEQ,IAAA,WAAW,CAAC,gBAAwB,EAAA;AACxC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAa,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;AAC5F,QAAA,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,EAAG,UAAU,GAAG,GAAG,GAAG;AAChF,QAAA,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,EAAG,UAAU,GAAG,GAAG,GAAG;IACtF;IAEQ,yBAAyB,CAAC,UAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAA;QAC1E,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACpD,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;AACnC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAChC;QACA,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE;AAClD,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;QAC/B;QACA,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;AAChD,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;QAC9B;IACJ;IAEQ,uBAAuB,CAAC,UAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAA;AACxE,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC/E,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9F;AAEA,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AAC5E,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF;AAEA,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACzE,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzF;IACJ;AAEQ,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IACxB;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IAC3B;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACnD;AAEQ,IAAA,iBAAiB,CAAC,OAAgB,EAAA;QACtC,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,uBAAuB,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjD;aAAO;YACH,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD;IACJ;IACQ,4BAA4B,GAAA;AAChC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,GAAG,OAAO;QAE1D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACxD,YAAA,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,IAAI,CACtD,KAAK,CAAC,WAAW,CAAC,EAClB,GAAG,CAAC,CAAC,QAAgB,EAAE,KAAK,KAAK,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAChF;AACL,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACtD,YAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;AACzC,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACvD,YAAA,OAAO,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,CACxC,GAAG,CAAC,CAAC,CAAQ,KAAI;gBACb,CAAC,CAAC,eAAe,EAAE;gBACnB,CAAC,CAAC,cAAc,EAAE;AACtB,YAAA,CAAC,CAAC,EACF,KAAK,CAAC,WAAW,CAAC,EAClB,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,QAAgB,KAAK,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,EACtE,oBAAoB,EAAE,EACtB,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAClC;AACL,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,4BAA4B,CAAC,QAAgB,EAAA;AACjD,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACxD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;QACzC,IAAI,CAAC,YAAY,EAAE;YACf,OAAO,IAAI,CAAC,KAAK;QACrB;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,CAAC;QAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACtC,QAAA,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACtE;IAEQ,qBAAqB,GAAA;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,qBAAqB,EAAE;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW;QAC/D,MAAM,YAAY,GAAa,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;AACvG,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1D;IAEQ,aAAa,GAAA;AACjB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,cAAc,GAAG,aAAa;QAEvE,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;IACvD;AAEQ,IAAA,6BAA6B,CAAC,eAAuB,EAAE,aAAqB,EAAE,WAAmB,EAAA;AACrG,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACpB,YAAA,OAAO,KAAK,CAAC,CAAC,aAAa,GAAG,eAAe,IAAI,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QACvE;AACA,QAAA,OAAO,KAAK,CAAC,CAAC,eAAe,GAAG,aAAa,IAAI,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;IACvE;AAEQ,IAAA,YAAY,CAAC,KAAa,EAAA;QAC9B,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;AACnE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACb,YAAA,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;QACzB;AAAO,aAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACpB,YAAA,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE;QACzB;aAAO;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI;QAC3C;AACA,QAAA,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACrD;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;AAC7B,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE;QACpC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAClD,QAAA,OAAO,aAAa,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,aAAa,GAAG,CAAC;IACtE;+GA1US,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,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,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAgBE,qBAAqB,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EAhC9B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,SAAS,CAAC;AACxC,gBAAA,KAAK,EAAE;AACV;SACJ,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,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,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/CL,uQAIA,4CDmDc,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAER,SAAS,EAAA,UAAA,EAAA,CAAA;kBAnBrB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,SAAA,EAEX;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC;AACxC,4BAAA,KAAK,EAAE;AACV;qBACJ,EAAA,IAAA,EACK;AACF,wBAAA,iBAAiB,EAAE,CAAA,QAAA,CAAU;AAC7B,wBAAA,yBAAyB,EAAE,eAAe;AAC1C,wBAAA,yBAAyB,EAAE,YAAY;AACvC,wBAAA,oBAAoB,EAAE,MAAM;AAC5B,wBAAA,wBAAwB,EAAE;qBAC7B,EAAA,OAAA,EACQ,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,uQAAA,EAAA;;sBAkBjB,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE;0DAWC,YAAY,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAEX,aAAa,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAEX,eAAe,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;AA8SlE;AACA;AAEA,SAAS,eAAe,CAAC,GAAc,EAAA;IACnC,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;IAC1D;AACJ;AAEA,SAAS,gBAAgB,CAAC,GAAc,EAAA;AACpC,IAAA,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE;IAC7B,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAChC,QAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;IACzD;SAAO,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,OAAO,EAAE;AAC7E,QAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;IAC7D;AACJ;;ME5Ya,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJd,YAAY,EAAE,WAAW,EAAE,SAAS,aACpC,SAAS,CAAA,EAAA,CAAA,CAAA;gHAGV,eAAe,EAAA,OAAA,EAAA,CAJd,YAAY,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA;;4FAI1B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC;oBAC/C,OAAO,EAAE,CAAC,SAAS,CAAC;AACpB,oBAAA,SAAS,EAAE;AACd,iBAAA;;;ACTD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys-slider.mjs","sources":["../../../src/slider/slider.component.ts","../../../src/slider/slider.component.html","../../../src/slider/slider.module.ts","../../../src/slider/ngx-tethys-slider.ts"],"sourcesContent":["import { NgStyle } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n WritableSignal,\n effect,\n forwardRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { clamp, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { Observable, Subscription, fromEvent } from 'rxjs';\nimport { distinctUntilChanged, map, pluck, takeUntil, tap } from 'rxjs/operators';\nimport { SafeAny } from 'ngx-tethys/types';\n\nexport type ThySliderType = 'primary' | 'success' | 'info' | 'warning' | 'danger';\n\nexport type ThySliderSize = 'sm' | 'md' | 'lg';\n\n/**\n * 滑动输入条组件\n * @name thy-slider\n * @order 10\n */\n@Component({\n selector: 'thy-slider',\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySlider),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `tabIndex`,\n '[class.slider-vertical]': 'thyVertical()',\n '[class.slider-disabled]': '!!disabled',\n '[class.thy-slider]': 'true',\n '[class.cursor-pointer]': 'true'\n },\n imports: [NgStyle]\n})\nexport class ThySlider\n extends TabIndexDisabledControlValueAccessorMixin\n implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor\n{\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private ref = inject(ElementRef);\n\n /**\n * 是否切换为纵轴模式\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n this.toggleDisabled();\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n disabled = false;\n\n readonly sliderRail = viewChild.required<ElementRef>('sliderRail');\n\n readonly sliderTrack = viewChild.required<ElementRef>('sliderTrack');\n\n readonly sliderPointer = viewChild.required<ElementRef>('sliderPointer');\n\n private typeClassName: WritableSignal<string> = signal('');\n\n private sizeClassName: WritableSignal<string> = signal('');\n\n /**\n * 最大值\n */\n readonly thyMax = input<number, unknown>(100, { transform: numberAttribute });\n\n /**\n * 最小值\n */\n readonly thyMin = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 步长,需要被 thyMax - thyMin 的差值整除。\n */\n readonly thyStep = input<number, unknown>(1, { transform: numberAttribute });\n\n /**\n * 切换主题类型\n * @type primary | success | info | warning | danger\n */\n readonly thyType = input<ThySliderType>('success');\n\n /**\n * 通过变量设置颜色\n */\n readonly thyColor = input<string>();\n\n /**\n * 滑动输入条大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThySliderSize>('sm');\n\n /**\n * 移动结束后的回调,参数为当前值\n */\n readonly thyAfterChange = output<{ value: number }>();\n\n public value!: number;\n\n private dragStartListener?: Observable<number>;\n\n private dragMoveListener?: Observable<number>;\n\n private dragEndListener!: Observable<Event>;\n\n private dragStartHandler?: Subscription | null;\n\n private dragMoveHandler?: Subscription | null;\n\n private dragEndHandler?: Subscription | null;\n\n private hostRenderer = useHostRenderer();\n\n private onChangeCallback = (v: any) => {};\n\n private onTouchedCallback = (v: any) => {};\n\n constructor() {\n super();\n effect(() => {\n if (this.thyType()) {\n const typeName = `thy-slider-${this.thyType() || 'success'}`;\n this.typeClassName() && this.hostRenderer.removeClass(this.typeClassName());\n this.hostRenderer.addClass(typeName);\n this.typeClassName.set(typeName);\n }\n });\n\n effect(() => {\n if (this.thySize()) {\n const sizeName = `thy-slider-${this.thySize() || 'sm'}`;\n this.sizeClassName() && this.hostRenderer.removeClass(this.sizeClassName());\n this.hostRenderer.addClass(sizeName);\n this.sizeClassName.set(sizeName);\n }\n });\n }\n\n ngOnInit() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n\n this.toggleDisabled();\n if (this.value === null || this.value === undefined) {\n this.setValue(this.ensureValueInRange(''));\n }\n }\n\n ngAfterViewInit() {\n this.registerMouseEventsListeners();\n this.toggleDisabled();\n }\n\n writeValue(newValue: number) {\n this.setValue(this.ensureValueInRange(newValue));\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (changes.hasOwnProperty('thyMin') || changes.hasOwnProperty('thyMax') || changes.hasOwnProperty('thyStep')) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n }\n }\n\n ngOnDestroy() {\n this.unsubscribeMouseListeners();\n }\n\n private toggleDisabled() {\n if (this.thyDisabled) {\n this.unsubscribeMouseListeners();\n } else {\n this.subscribeMouseListeners(['start']);\n }\n }\n\n private setValue(value: number) {\n if (this.value !== value) {\n this.value = value;\n this.updateTrackAndPointer();\n }\n this.onChangeCallback(this.value);\n }\n\n private ensureValueInRange(value: number | string): number {\n if (!this.valueMustBeValid(value)) {\n return this.thyMin();\n }\n return clamp(value as number, this.thyMin(), this.thyMax());\n }\n\n private valueMustBeValid(value: number | string): boolean {\n return !isNaN(typeof value !== 'number' ? parseFloat(value) : value);\n }\n\n private updateTrackAndPointer() {\n const offset = this.valueToOffset(this.value!);\n this.updateStyle(offset / 100);\n this.cdr.markForCheck();\n }\n\n private valueToOffset(value: number): number {\n return ((value - this.thyMin()) * 100) / (this.thyMax() - this.thyMin());\n }\n\n private updateStyle(offsetPercentage: number) {\n const percentage = Math.min(1, Math.max(0, offsetPercentage));\n const orientFields: string[] = this.thyVertical() ? ['height', 'bottom'] : ['width', 'left'];\n this.sliderTrack().nativeElement.style[orientFields[0]] = `${percentage * 100}%`;\n this.sliderPointer().nativeElement.style[orientFields[1]] = `${percentage * 100}%`;\n }\n\n private unsubscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartHandler) {\n this.dragStartHandler.unsubscribe();\n this.dragStartHandler = null;\n }\n if (actions.includes('move') && this.dragMoveHandler) {\n this.dragMoveHandler.unsubscribe();\n this.dragMoveHandler = null;\n }\n if (actions.includes('end') && this.dragEndHandler) {\n this.dragEndHandler.unsubscribe();\n this.dragEndHandler = null;\n }\n }\n\n private subscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartListener && !this.dragStartHandler) {\n this.dragStartHandler = this.dragStartListener.subscribe(this.mouseStartMoving.bind(this));\n }\n\n if (actions.includes('move') && this.dragMoveListener && !this.dragMoveHandler) {\n this.dragMoveHandler = this.dragMoveListener.subscribe(this.mouseMoving.bind(this));\n }\n\n if (actions.includes('end') && this.dragEndListener && !this.dragEndHandler) {\n this.dragEndHandler = this.dragEndListener.subscribe(this.mouseStopMoving.bind(this));\n }\n }\n\n private mouseStartMoving(value: number) {\n this.pointerController(true);\n this.setValue(value);\n }\n\n private mouseMoving(value: number) {\n this.setValue(this.ensureValueInRange(value));\n this.cdr.markForCheck();\n }\n\n private mouseStopMoving(): void {\n this.pointerController(false);\n this.cdr.markForCheck();\n this.thyAfterChange.emit({ value: this.value! });\n }\n\n private pointerController(movable: boolean) {\n if (movable) {\n this.subscribeMouseListeners(['move', 'end']);\n } else {\n this.unsubscribeMouseListeners(['move', 'end']);\n }\n }\n private registerMouseEventsListeners() {\n const orientField = this.thyVertical() ? 'pageY' : 'pageX';\n\n this.dragStartListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent<Event>(this.ref.nativeElement, 'mousedown').pipe(\n pluck<Event, SafeAny>(orientField),\n map((position: number, index) => this.mousePositionToAdaptiveValue(position))\n );\n });\n\n this.dragEndListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mouseup');\n });\n\n this.dragMoveListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent<Event>(document, 'mousemove').pipe(\n tap((e: Event) => {\n e.stopPropagation();\n e.preventDefault();\n }),\n pluck<Event, SafeAny>(orientField),\n distinctUntilChanged<number>(),\n map((position: number) => this.mousePositionToAdaptiveValue(position)),\n distinctUntilChanged(),\n takeUntil(this.dragEndListener)\n );\n });\n }\n\n private mousePositionToAdaptiveValue(position: number): number {\n const sliderStartPosition = this.getSliderPagePosition();\n const sliderLength = this.getRailLength();\n if (!sliderLength) {\n return this.value!;\n }\n const ratio = this.convertPointerPositionToRatio(position, sliderStartPosition, sliderLength);\n const value = this.ratioToValue(ratio);\n return parseFloat(value.toFixed(this.getDecimals(this.thyStep())));\n }\n\n private getSliderPagePosition(): number {\n const rect = this.ref.nativeElement.getBoundingClientRect();\n const window = this.ref.nativeElement.ownerDocument.defaultView;\n const orientFields: string[] = this.thyVertical() ? ['bottom', 'pageYOffset'] : ['left', 'pageXOffset'];\n return rect[orientFields[0]] + window[orientFields[1]];\n }\n\n private getRailLength() {\n const orientFiled = this.thyVertical() ? 'clientHeight' : 'clientWidth';\n\n return this.sliderRail().nativeElement[orientFiled];\n }\n\n private convertPointerPositionToRatio(pointerPosition: number, startPosition: number, totalLength: number) {\n if (this.thyVertical()) {\n return clamp((startPosition - pointerPosition) / totalLength, 0, 1);\n }\n return clamp((pointerPosition - startPosition) / totalLength, 0, 1);\n }\n\n private ratioToValue(ratio: number) {\n let value = (this.thyMax() - this.thyMin()) * ratio + this.thyMin();\n const step = this.thyStep();\n if (ratio === 0) {\n value = this.thyMin();\n } else if (ratio === 1) {\n value = this.thyMax();\n } else {\n value = Math.round(value / step) * step;\n }\n return clamp(value, this.thyMin(), this.thyMax());\n }\n\n private getDecimals(value: number): number {\n const valueString = value.toString();\n const integerLength = valueString.indexOf('.') + 1;\n return integerLength >= 0 ? valueString.length - integerLength : 0;\n }\n}\n\n// Note: keep `verifyMinAndMax` and `verifyStepValues` as separate functions (not as class properties)\n// so they're tree-shakable in production mode.\n\nfunction verifyMinAndMax(ctx: ThySlider): void | never {\n if (ctx.thyMin() >= ctx.thyMax()) {\n throw new Error('min value must less than max value.');\n }\n}\n\nfunction verifyStepValues(ctx: ThySlider): void | never {\n const thyStep = ctx.thyStep();\n if (ctx.thyStep() <= 0 || !thyStep) {\n throw new Error('step value must be greater than 0.');\n } else if (Number.isInteger(thyStep) && (ctx.thyMax() - ctx.thyMin()) % thyStep) {\n throw new Error('(max - min) must be divisible by step.');\n }\n}\n","<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor() }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor() }\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ThySlider } from './slider.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySlider],\n exports: [ThySlider],\n providers: []\n})\nexport class ThySliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -11,10 +11,10 @@ import { coerceBooleanProperty } from 'ngx-tethys/util';
11
11
  * @order 20
12
12
  */
13
13
  class ThySpaceItemDirective {
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThySpaceItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: ThySpaceItemDirective, isStandalone: true, selector: "[thySpaceItem]", host: { classAttribute: "thy-space-item" }, ngImport: i0 }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySpaceItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThySpaceItemDirective, isStandalone: true, selector: "[thySpaceItem]", host: { classAttribute: "thy-space-item" }, ngImport: i0 }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThySpaceItemDirective, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySpaceItemDirective, decorators: [{
18
18
  type: Directive,
19
19
  args: [{ selector: '[thySpaceItem]', host: { class: 'thy-space-item' } }]
20
20
  }] });
@@ -49,10 +49,10 @@ class ThySpace {
49
49
  this.hostRenderer.updateClass(this.thyAlign() ? [`align-items-${this.thyAlign()}`] : []);
50
50
  });
51
51
  }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThySpace, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThySpace, isStandalone: true, selector: "thy-space", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyVertical: { classPropertyName: "thyVertical", publicName: "thyVertical", isSignal: true, isRequired: false, transformFunction: null }, thyAlign: { classPropertyName: "thyAlign", publicName: "thyAlign", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-space": "true", "class.thy-space-vertical": "thyVertical()" } }, queries: [{ propertyName: "items", predicate: ThySpaceItemDirective, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n\n@for (item of items(); track $index; let last = $last; let index = $index) {\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space()\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySpace, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThySpace, isStandalone: true, selector: "thy-space", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyVertical: { classPropertyName: "thyVertical", publicName: "thyVertical", isSignal: true, isRequired: false, transformFunction: null }, thyAlign: { classPropertyName: "thyAlign", publicName: "thyAlign", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-space": "true", "class.thy-space-vertical": "thyVertical()" } }, queries: [{ propertyName: "items", predicate: ThySpaceItemDirective, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n\n@for (item of items(); track $index; let last = $last; let index = $index) {\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space()\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
54
54
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThySpace, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySpace, decorators: [{
56
56
  type: Component,
57
57
  args: [{ selector: 'thy-space', changeDetection: ChangeDetectionStrategy.OnPush, host: {
58
58
  '[class.thy-space]': 'true',
@@ -61,11 +61,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
61
61
  }], ctorParameters: () => [], propDecorators: { thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyVertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyVertical", required: false }] }], thyAlign: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAlign", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ThySpaceItemDirective), { ...{ read: (TemplateRef) }, isSignal: true }] }] } });
62
62
 
63
63
  class ThySpaceModule {
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThySpaceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
65
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThySpaceModule, imports: [CommonModule, ThySpace, ThySpaceItemDirective], exports: [ThySpace, ThySpaceItemDirective] }); }
66
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThySpaceModule, imports: [CommonModule] }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySpaceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
65
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThySpaceModule, imports: [CommonModule, ThySpace, ThySpaceItemDirective], exports: [ThySpace, ThySpaceItemDirective] }); }
66
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySpaceModule, imports: [CommonModule] }); }
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThySpaceModule, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThySpaceModule, decorators: [{
69
69
  type: NgModule,
70
70
  args: [{
71
71
  imports: [CommonModule, ThySpace, ThySpaceItemDirective],
@@ -140,20 +140,20 @@ class ThyStatistic {
140
140
  this.hostRenderer.setStyle('background-color', hexToRgb(color, 0.05));
141
141
  }
142
142
  }
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStatistic, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyStatistic, isStandalone: true, selector: "thy-statistic", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyValueStyle: { classPropertyName: "thyValueStyle", publicName: "thyValueStyle", isSignal: true, isRequired: false, transformFunction: null }, thyPrefix: { classPropertyName: "thyPrefix", publicName: "thyPrefix", isSignal: true, isRequired: false, transformFunction: null }, thySuffix: { classPropertyName: "thySuffix", publicName: "thySuffix", isSignal: true, isRequired: false, transformFunction: null }, thyTitle: { classPropertyName: "thyTitle", publicName: "thyTitle", isSignal: true, isRequired: false, transformFunction: null }, thyTitlePosition: { classPropertyName: "thyTitlePosition", publicName: "thyTitlePosition", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyValueTemplate: { classPropertyName: "thyValueTemplate", publicName: "thyValueTemplate", isSignal: true, isRequired: false, transformFunction: null }, thyTitleTemplate: { classPropertyName: "thyTitleTemplate", publicName: "thyTitleTemplate", isSignal: true, isRequired: false, transformFunction: null }, thyPrefixTemplate: { classPropertyName: "thyPrefixTemplate", publicName: "thyPrefixTemplate", isSignal: true, isRequired: false, transformFunction: null }, thySuffixTemplate: { classPropertyName: "thySuffixTemplate", publicName: "thySuffixTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-statistic": "true" } }, queries: [{ propertyName: "contentValueTemplate", first: true, predicate: ["value"], descendants: true, isSignal: true }, { propertyName: "contentTitleTemplate", first: true, predicate: ["title"], descendants: true, isSignal: true }, { propertyName: "contentPrefixTemplate", first: true, predicate: ["prefix"], descendants: true, isSignal: true }, { propertyName: "contentSuffixTemplate", first: true, predicate: ["suffix"], descendants: true, isSignal: true }], ngImport: i0, template: "@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n<div class=\"thy-statistic-content\" [ngStyle]=\"thyValueStyle()\">\n @if (thyPrefix() || prefixTemplate()) {\n <span class=\"thy-statistic-content-prefix\">\n @if (thyPrefix()) {\n <span>{{ thyPrefix() }}</span>\n }\n @if (prefixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"prefixTemplate()\"></ng-container>\n }\n </span>\n }\n\n <span class=\"thy-statistic-content-value\">\n @if (!valueTemplate()) {\n <span>{{ thyValue() }}</span>\n }\n @if (valueTemplate()) {\n <ng-container [ngTemplateOutlet]=\"valueTemplate()\"></ng-container>\n }\n </span>\n\n @if (thySuffix() || suffixTemplate()) {\n <span class=\"thy-statistic-content-suffix\">\n @if (thySuffix()) {\n <span>{{ thySuffix() }}</span>\n }\n @if (suffixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"suffixTemplate()\"></ng-container>\n }\n </span>\n }\n</div>\n@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n\n<ng-template #title>\n <div class=\"thy-statistic-title\">\n @if (thyTitle()) {\n <span>{{ thyTitle() }}</span>\n }\n <ng-container [ngTemplateOutlet]=\"titleTemplate()\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStatistic, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyStatistic, isStandalone: true, selector: "thy-statistic", inputs: { thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyValueStyle: { classPropertyName: "thyValueStyle", publicName: "thyValueStyle", isSignal: true, isRequired: false, transformFunction: null }, thyPrefix: { classPropertyName: "thyPrefix", publicName: "thyPrefix", isSignal: true, isRequired: false, transformFunction: null }, thySuffix: { classPropertyName: "thySuffix", publicName: "thySuffix", isSignal: true, isRequired: false, transformFunction: null }, thyTitle: { classPropertyName: "thyTitle", publicName: "thyTitle", isSignal: true, isRequired: false, transformFunction: null }, thyTitlePosition: { classPropertyName: "thyTitlePosition", publicName: "thyTitlePosition", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyValueTemplate: { classPropertyName: "thyValueTemplate", publicName: "thyValueTemplate", isSignal: true, isRequired: false, transformFunction: null }, thyTitleTemplate: { classPropertyName: "thyTitleTemplate", publicName: "thyTitleTemplate", isSignal: true, isRequired: false, transformFunction: null }, thyPrefixTemplate: { classPropertyName: "thyPrefixTemplate", publicName: "thyPrefixTemplate", isSignal: true, isRequired: false, transformFunction: null }, thySuffixTemplate: { classPropertyName: "thySuffixTemplate", publicName: "thySuffixTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-statistic": "true" } }, queries: [{ propertyName: "contentValueTemplate", first: true, predicate: ["value"], descendants: true, isSignal: true }, { propertyName: "contentTitleTemplate", first: true, predicate: ["title"], descendants: true, isSignal: true }, { propertyName: "contentPrefixTemplate", first: true, predicate: ["prefix"], descendants: true, isSignal: true }, { propertyName: "contentSuffixTemplate", first: true, predicate: ["suffix"], descendants: true, isSignal: true }], ngImport: i0, template: "@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n<div class=\"thy-statistic-content\" [ngStyle]=\"thyValueStyle()\">\n @if (thyPrefix() || prefixTemplate()) {\n <span class=\"thy-statistic-content-prefix\">\n @if (thyPrefix()) {\n <span>{{ thyPrefix() }}</span>\n }\n @if (prefixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"prefixTemplate()\"></ng-container>\n }\n </span>\n }\n\n <span class=\"thy-statistic-content-value\">\n @if (!valueTemplate()) {\n <span>{{ thyValue() }}</span>\n }\n @if (valueTemplate()) {\n <ng-container [ngTemplateOutlet]=\"valueTemplate()\"></ng-container>\n }\n </span>\n\n @if (thySuffix() || suffixTemplate()) {\n <span class=\"thy-statistic-content-suffix\">\n @if (thySuffix()) {\n <span>{{ thySuffix() }}</span>\n }\n @if (suffixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"suffixTemplate()\"></ng-container>\n }\n </span>\n }\n</div>\n@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n\n<ng-template #title>\n <div class=\"thy-statistic-title\">\n @if (thyTitle()) {\n <span>{{ thyTitle() }}</span>\n }\n <ng-container [ngTemplateOutlet]=\"titleTemplate()\"></ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
145
145
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStatistic, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStatistic, decorators: [{
147
147
  type: Component,
148
148
  args: [{ selector: 'thy-statistic', imports: [NgTemplateOutlet, NgStyle], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class.thy-statistic]': 'true' }, template: "@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n<div class=\"thy-statistic-content\" [ngStyle]=\"thyValueStyle()\">\n @if (thyPrefix() || prefixTemplate()) {\n <span class=\"thy-statistic-content-prefix\">\n @if (thyPrefix()) {\n <span>{{ thyPrefix() }}</span>\n }\n @if (prefixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"prefixTemplate()\"></ng-container>\n }\n </span>\n }\n\n <span class=\"thy-statistic-content-value\">\n @if (!valueTemplate()) {\n <span>{{ thyValue() }}</span>\n }\n @if (valueTemplate()) {\n <ng-container [ngTemplateOutlet]=\"valueTemplate()\"></ng-container>\n }\n </span>\n\n @if (thySuffix() || suffixTemplate()) {\n <span class=\"thy-statistic-content-suffix\">\n @if (thySuffix()) {\n <span>{{ thySuffix() }}</span>\n }\n @if (suffixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"suffixTemplate()\"></ng-container>\n }\n </span>\n }\n</div>\n@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n\n<ng-template #title>\n <div class=\"thy-statistic-title\">\n @if (thyTitle()) {\n <span>{{ thyTitle() }}</span>\n }\n <ng-container [ngTemplateOutlet]=\"titleTemplate()\"></ng-container>\n </div>\n</ng-template>\n" }]
149
149
  }], ctorParameters: () => [], propDecorators: { thyValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyValue", required: false }] }], thyValueStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyValueStyle", required: false }] }], thyPrefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPrefix", required: false }] }], thySuffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySuffix", required: false }] }], thyTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTitle", required: false }] }], thyTitlePosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTitlePosition", required: false }] }], thyShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShape", required: false }] }], thyColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyColor", required: false }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyValueTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyValueTemplate", required: false }] }], thyTitleTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTitleTemplate", required: false }] }], thyPrefixTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPrefixTemplate", required: false }] }], thySuffixTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySuffixTemplate", required: false }] }], contentValueTemplate: [{ type: i0.ContentChild, args: ['value', { isSignal: true }] }], contentTitleTemplate: [{ type: i0.ContentChild, args: ['title', { isSignal: true }] }], contentPrefixTemplate: [{ type: i0.ContentChild, args: ['prefix', { isSignal: true }] }], contentSuffixTemplate: [{ type: i0.ContentChild, args: ['suffix', { isSignal: true }] }] } });
150
150
 
151
151
  class ThyStatisticModule {
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStatisticModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyStatisticModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyStatistic], exports: [ThyStatistic] }); }
154
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStatisticModule, imports: [CommonModule, ThySharedModule, ThyIconModule] }); }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStatisticModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyStatisticModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyStatistic], exports: [ThyStatistic] }); }
154
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStatisticModule, imports: [CommonModule, ThySharedModule, ThyIconModule] }); }
155
155
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStatisticModule, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStatisticModule, decorators: [{
157
157
  type: NgModule,
158
158
  args: [{
159
159
  imports: [CommonModule, ThySharedModule, ThyIconModule, ThyStatistic],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-statistic.mjs","sources":["../../../src/statistic/statistic.component.ts","../../../src/statistic/statistic.component.html","../../../src/statistic/statistic.module.ts","../../../src/statistic/ngx-tethys-statistic.ts"],"sourcesContent":["import { Component, TemplateRef, ChangeDetectionStrategy, input, contentChild, effect, computed } from '@angular/core';\nimport { hexToRgb } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgTemplateOutlet, NgStyle } from '@angular/common';\n\nexport type ThyStatisticColorType = 'primary' | 'success' | 'warning' | 'danger' | 'info';\n\nexport type ThyStatisticShape = 'card';\n\nexport type ThyStatisticSizes = 'default';\n\nexport type ThyStatisticTitlePosition = 'top' | 'bottom';\n\n/**\n * 用于展示数据统计\n * @name thy-statistic\n */\n@Component({\n selector: 'thy-statistic',\n templateUrl: './statistic.component.html',\n imports: [NgTemplateOutlet, NgStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class.thy-statistic]': 'true' }\n})\nexport class ThyStatistic {\n /**\n * @description 展示数据\n * @type number | string\n */\n readonly thyValue = input<number | string>();\n\n /**\n * @description 展示数据的 css 样式\n * @type { [key: string]: string; }\n */\n readonly thyValueStyle = input<{ [key: string]: string }>({});\n\n /**\n * @description 展示数据的前缀\n * @type string\n */\n readonly thyPrefix = input<string>();\n\n /**\n * @description 展示数据的后缀\n * @type string\n */\n readonly thySuffix = input<string>();\n\n /**\n * @description 展示数据的标题\n * @type string\n */\n readonly thyTitle = input<string>();\n\n /**\n * @description 展示数据标题的位置,可设置 `top`|`bottom`\n * @type ThyStatisticTitlePosition\n */\n readonly thyTitlePosition = input<ThyStatisticTitlePosition>('bottom');\n\n /**\n * @description 展示形状\n * @type ThyStatisticShape\n * @default card\n */\n readonly thyShape = input<ThyStatisticShape>();\n\n /**\n * @description 主题颜色,可以使用提供的主题色,也可以自定义颜色。 `ThyStatisticColorType` 中包含 `primary` | `success` | `warning` | `danger` | `info`\n * @type ThyStatisticColorType | string\n */\n readonly thyColor = input<string | ThyStatisticColorType>();\n\n /**\n * @description 前缀和展示数据字体大小\n * @type ThyStatisticSizes\n * @default default\n */\n readonly thySize = input<ThyStatisticSizes>('default');\n\n /**\n * @description 自定义展示数据模板\n * @type TemplateRef<void>\n */\n readonly thyValueTemplate = input<TemplateRef<void>>();\n\n /**\n * @description 自定义标题模板\n * @type TemplateRef<void>\n */\n readonly thyTitleTemplate = input<TemplateRef<void>>();\n\n /**\n * @description 自定义前缀模板\n * @type TemplateRef<void>\n */\n readonly thyPrefixTemplate = input<TemplateRef<void>>();\n\n /**\n * @description 自定义后缀模板\n * @type TemplateRef<void>\n */\n readonly thySuffixTemplate = input<TemplateRef<void>>();\n\n /**\n * @description 自定义展示数据模板\n * @type TemplateRef<void>\n */\n readonly contentValueTemplate = contentChild<TemplateRef<void>>('value');\n\n /**\n * @description 自定义标题模板\n * @type TemplateRef<void>\n */\n readonly contentTitleTemplate = contentChild<TemplateRef<void>>('title');\n\n /**\n * @description 自定义前缀模板\n * @type TemplateRef<void>\n */\n readonly contentPrefixTemplate = contentChild<TemplateRef<void>>('prefix');\n\n /**\n * @description 自定义后缀模板\n * @type TemplateRef<void>\n */\n readonly contentSuffixTemplate = contentChild<TemplateRef<void>>('suffix');\n\n readonly valueTemplate = computed(() => {\n return this.thyValueTemplate() || this.contentValueTemplate();\n });\n\n readonly titleTemplate = computed(() => {\n return this.thyTitleTemplate() || this.contentTitleTemplate();\n });\n\n readonly prefixTemplate = computed(() => {\n return this.thyPrefixTemplate() || this.contentPrefixTemplate();\n });\n\n readonly suffixTemplate = computed(() => {\n return this.thySuffixTemplate() || this.contentSuffixTemplate();\n });\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n effect(() => {\n this.setClassesByType();\n });\n }\n\n private setClassesByType() {\n const classNames = [];\n if (this.thyColor()) {\n if (RegExp(/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/).test(this.thyColor())) {\n this.setColor(this.thyColor());\n } else {\n classNames.push(`thy-statistic-${this.thyColor()}`);\n }\n }\n if (this.thyShape()) {\n classNames.push(`thy-statistic-${this.thyShape()}`);\n }\n classNames.push(`thy-statistic-${this.thySize()}`);\n\n this.hostRenderer.setStyle('font-size', this.thySize());\n this.hostRenderer.updateClass(classNames);\n }\n\n private setColor(color: string) {\n this.hostRenderer.setStyle('color', color);\n if (this.thyShape() === 'card') {\n this.hostRenderer.setStyle('border-color', color);\n this.hostRenderer.setStyle('background-color', hexToRgb(color, 0.05));\n }\n }\n}\n","@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n<div class=\"thy-statistic-content\" [ngStyle]=\"thyValueStyle()\">\n @if (thyPrefix() || prefixTemplate()) {\n <span class=\"thy-statistic-content-prefix\">\n @if (thyPrefix()) {\n <span>{{ thyPrefix() }}</span>\n }\n @if (prefixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"prefixTemplate()\"></ng-container>\n }\n </span>\n }\n\n <span class=\"thy-statistic-content-value\">\n @if (!valueTemplate()) {\n <span>{{ thyValue() }}</span>\n }\n @if (valueTemplate()) {\n <ng-container [ngTemplateOutlet]=\"valueTemplate()\"></ng-container>\n }\n </span>\n\n @if (thySuffix() || suffixTemplate()) {\n <span class=\"thy-statistic-content-suffix\">\n @if (thySuffix()) {\n <span>{{ thySuffix() }}</span>\n }\n @if (suffixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"suffixTemplate()\"></ng-container>\n }\n </span>\n }\n</div>\n@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n\n<ng-template #title>\n <div class=\"thy-statistic-title\">\n @if (thyTitle()) {\n <span>{{ thyTitle() }}</span>\n }\n <ng-container [ngTemplateOutlet]=\"titleTemplate()\"></ng-container>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyStatistic } from './statistic.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyStatistic],\n exports: [ThyStatistic],\n providers: []\n})\nexport class ThyStatisticModule {}\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-statistic.mjs","sources":["../../../src/statistic/statistic.component.ts","../../../src/statistic/statistic.component.html","../../../src/statistic/statistic.module.ts","../../../src/statistic/ngx-tethys-statistic.ts"],"sourcesContent":["import { Component, TemplateRef, ChangeDetectionStrategy, input, contentChild, effect, computed } from '@angular/core';\nimport { hexToRgb } from 'ngx-tethys/util';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { NgTemplateOutlet, NgStyle } from '@angular/common';\n\nexport type ThyStatisticColorType = 'primary' | 'success' | 'warning' | 'danger' | 'info';\n\nexport type ThyStatisticShape = 'card';\n\nexport type ThyStatisticSizes = 'default';\n\nexport type ThyStatisticTitlePosition = 'top' | 'bottom';\n\n/**\n * 用于展示数据统计\n * @name thy-statistic\n */\n@Component({\n selector: 'thy-statistic',\n templateUrl: './statistic.component.html',\n imports: [NgTemplateOutlet, NgStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { '[class.thy-statistic]': 'true' }\n})\nexport class ThyStatistic {\n /**\n * @description 展示数据\n * @type number | string\n */\n readonly thyValue = input<number | string>();\n\n /**\n * @description 展示数据的 css 样式\n * @type { [key: string]: string; }\n */\n readonly thyValueStyle = input<{ [key: string]: string }>({});\n\n /**\n * @description 展示数据的前缀\n * @type string\n */\n readonly thyPrefix = input<string>();\n\n /**\n * @description 展示数据的后缀\n * @type string\n */\n readonly thySuffix = input<string>();\n\n /**\n * @description 展示数据的标题\n * @type string\n */\n readonly thyTitle = input<string>();\n\n /**\n * @description 展示数据标题的位置,可设置 `top`|`bottom`\n * @type ThyStatisticTitlePosition\n */\n readonly thyTitlePosition = input<ThyStatisticTitlePosition>('bottom');\n\n /**\n * @description 展示形状\n * @type ThyStatisticShape\n * @default card\n */\n readonly thyShape = input<ThyStatisticShape>();\n\n /**\n * @description 主题颜色,可以使用提供的主题色,也可以自定义颜色。 `ThyStatisticColorType` 中包含 `primary` | `success` | `warning` | `danger` | `info`\n * @type ThyStatisticColorType | string\n */\n readonly thyColor = input<string | ThyStatisticColorType>();\n\n /**\n * @description 前缀和展示数据字体大小\n * @type ThyStatisticSizes\n * @default default\n */\n readonly thySize = input<ThyStatisticSizes>('default');\n\n /**\n * @description 自定义展示数据模板\n * @type TemplateRef<void>\n */\n readonly thyValueTemplate = input<TemplateRef<void>>();\n\n /**\n * @description 自定义标题模板\n * @type TemplateRef<void>\n */\n readonly thyTitleTemplate = input<TemplateRef<void>>();\n\n /**\n * @description 自定义前缀模板\n * @type TemplateRef<void>\n */\n readonly thyPrefixTemplate = input<TemplateRef<void>>();\n\n /**\n * @description 自定义后缀模板\n * @type TemplateRef<void>\n */\n readonly thySuffixTemplate = input<TemplateRef<void>>();\n\n /**\n * @description 自定义展示数据模板\n * @type TemplateRef<void>\n */\n readonly contentValueTemplate = contentChild<TemplateRef<void>>('value');\n\n /**\n * @description 自定义标题模板\n * @type TemplateRef<void>\n */\n readonly contentTitleTemplate = contentChild<TemplateRef<void>>('title');\n\n /**\n * @description 自定义前缀模板\n * @type TemplateRef<void>\n */\n readonly contentPrefixTemplate = contentChild<TemplateRef<void>>('prefix');\n\n /**\n * @description 自定义后缀模板\n * @type TemplateRef<void>\n */\n readonly contentSuffixTemplate = contentChild<TemplateRef<void>>('suffix');\n\n readonly valueTemplate = computed(() => {\n return this.thyValueTemplate() || this.contentValueTemplate();\n });\n\n readonly titleTemplate = computed(() => {\n return this.thyTitleTemplate() || this.contentTitleTemplate();\n });\n\n readonly prefixTemplate = computed(() => {\n return this.thyPrefixTemplate() || this.contentPrefixTemplate();\n });\n\n readonly suffixTemplate = computed(() => {\n return this.thySuffixTemplate() || this.contentSuffixTemplate();\n });\n\n private hostRenderer = useHostRenderer();\n\n constructor() {\n effect(() => {\n this.setClassesByType();\n });\n }\n\n private setClassesByType() {\n const classNames = [];\n if (this.thyColor()) {\n if (RegExp(/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/).test(this.thyColor()!)) {\n this.setColor(this.thyColor()!);\n } else {\n classNames.push(`thy-statistic-${this.thyColor()}`);\n }\n }\n if (this.thyShape()) {\n classNames.push(`thy-statistic-${this.thyShape()}`);\n }\n classNames.push(`thy-statistic-${this.thySize()}`);\n\n this.hostRenderer.setStyle('font-size', this.thySize());\n this.hostRenderer.updateClass(classNames);\n }\n\n private setColor(color: string) {\n this.hostRenderer.setStyle('color', color);\n if (this.thyShape() === 'card') {\n this.hostRenderer.setStyle('border-color', color);\n this.hostRenderer.setStyle('background-color', hexToRgb(color, 0.05));\n }\n }\n}\n","@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n<div class=\"thy-statistic-content\" [ngStyle]=\"thyValueStyle()\">\n @if (thyPrefix() || prefixTemplate()) {\n <span class=\"thy-statistic-content-prefix\">\n @if (thyPrefix()) {\n <span>{{ thyPrefix() }}</span>\n }\n @if (prefixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"prefixTemplate()\"></ng-container>\n }\n </span>\n }\n\n <span class=\"thy-statistic-content-value\">\n @if (!valueTemplate()) {\n <span>{{ thyValue() }}</span>\n }\n @if (valueTemplate()) {\n <ng-container [ngTemplateOutlet]=\"valueTemplate()\"></ng-container>\n }\n </span>\n\n @if (thySuffix() || suffixTemplate()) {\n <span class=\"thy-statistic-content-suffix\">\n @if (thySuffix()) {\n <span>{{ thySuffix() }}</span>\n }\n @if (suffixTemplate()) {\n <ng-container [ngTemplateOutlet]=\"suffixTemplate()\"></ng-container>\n }\n </span>\n }\n</div>\n@if ((thyTitle() || titleTemplate()) && thyTitlePosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"title\"></ng-container>\n}\n\n<ng-template #title>\n <div class=\"thy-statistic-title\">\n @if (thyTitle()) {\n <span>{{ thyTitle() }}</span>\n }\n <ng-container [ngTemplateOutlet]=\"titleTemplate()\"></ng-container>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyStatistic } from './statistic.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyStatistic],\n exports: [ThyStatistic],\n providers: []\n})\nexport class ThyStatisticModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -13,17 +13,17 @@ class ThyStepHeader {
13
13
  constructor() {
14
14
  this.label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
15
15
  this.icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : []));
16
- this.index = input(undefined, ...(ngDevMode ? [{ debugName: "index", transform: numberAttribute }] : [{ transform: numberAttribute }]));
16
+ this.index = input.required(...(ngDevMode ? [{ debugName: "index", transform: numberAttribute }] : [{ transform: numberAttribute }]));
17
17
  this.selected = input(false, ...(ngDevMode ? [{ debugName: "selected", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
18
18
  this.active = input(false, ...(ngDevMode ? [{ debugName: "active", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: ThyStepHeader, isStandalone: true, selector: "thy-step-header", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-stepper-header" }, ngImport: i0, template: "<div class=\"thy-step-number\">\n <span>{{ index() + 1 }}</span>\n</div>\n<thy-icon class=\"thy-step-icon\" [thyIconName]=\"icon() || 'check-circle'\"></thy-icon>\n<div class=\"thy-step-label\">{{ label() }}</div>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyStepHeader, isStandalone: true, selector: "thy-step-header", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-stepper-header" }, ngImport: i0, template: "<div class=\"thy-step-number\">\n <span>{{ index() + 1 }}</span>\n</div>\n<thy-icon class=\"thy-step-icon\" [thyIconName]=\"icon() || 'check-circle'\"></thy-icon>\n<div class=\"thy-step-label\">{{ label() }}</div>\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepHeader, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepHeader, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'thy-step-header', imports: [ThyIcon], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'thy-stepper-header' }, template: "<div class=\"thy-step-number\">\n <span>{{ index() + 1 }}</span>\n</div>\n<thy-icon class=\"thy-step-icon\" [thyIconName]=\"icon() || 'check-circle'\"></thy-icon>\n<div class=\"thy-step-label\">{{ label() }}</div>\n" }]
26
- }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }] } });
26
+ }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], index: [{ type: i0.Input, args: [{ isSignal: true, alias: "index", required: true }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }] } });
27
27
 
28
28
  const THY_STEPPER_COMPONENT = new InjectionToken('THY_STEPPER_COMPONENT');
29
29
  /**
@@ -49,10 +49,10 @@ class ThyStep {
49
49
  select() {
50
50
  this.stepper.updateSelected(this);
51
51
  }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStep, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.14", type: ThyStep, isStandalone: true, selector: "thy-step", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, thyLabel: { classPropertyName: "thyLabel", publicName: "thyLabel", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template><ng-content></ng-content></ng-template>\n" }); }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStep, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.15", type: ThyStep, isStandalone: true, selector: "thy-step", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, thyLabel: { classPropertyName: "thyLabel", publicName: "thyLabel", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template><ng-content></ng-content></ng-template>\n" }); }
54
54
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStep, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStep, decorators: [{
56
56
  type: Component,
57
57
  args: [{ selector: 'thy-step', template: "<ng-template><ng-content></ng-content></ng-template>\n" }]
58
58
  }], propDecorators: { content: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], thyLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyLabel", required: false }] }], thyIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyIcon", required: false }] }] } });
@@ -128,12 +128,12 @@ class ThyStepper {
128
128
  previous() {
129
129
  this.updateSelectedIndex(Math.max(this.selectedIndex() - 1, 0));
130
130
  }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyStepper, isStandalone: true, selector: "thy-stepper", inputs: { thySelectedIndex: { classPropertyName: "thySelectedIndex", publicName: "thySelectedIndex", isSignal: true, isRequired: false, transformFunction: null }, thySelected: { classPropertyName: "thySelected", publicName: "thySelected", isSignal: true, isRequired: false, transformFunction: null }, thyShowStepHeader: { classPropertyName: "thyShowStepHeader", publicName: "thyShowStepHeader", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, host: { classAttribute: "thy-stepper" }, providers: [{ provide: THY_STEPPER_COMPONENT, useExisting: ThyStepper }], queries: [{ propertyName: "steps", predicate: ThyStep, isSignal: true }], ngImport: i0, template: "@if (thyShowStepHeader()) {\n <div class=\"thy-stepper-header-container\">\n @for (step of steps(); track $index; let i = $index; let isLast = $last) {\n <thy-step-header\n [index]=\"i\"\n [label]=\"step.thyLabel() || step.label()\"\n [icon]=\"step.thyIcon()\"\n [selected]=\"selectedIndex() === i\"\n [class.thy-stepper-header-active]=\"i <= selectedIndex()\"\n [active]=\"i <= selectedIndex()\">\n </thy-step-header>\n @if (!isLast) {\n <div class=\"thy-stepper-line\" [class.thy-stepper-line-active]=\"i < selectedIndex()\"></div>\n }\n }\n </div>\n}\n\n<div class=\"thy-stepper-content-container\">\n <ng-container [ngTemplateOutlet]=\"selected()?.content()\"></ng-container>\n</div>\n\n ", dependencies: [{ kind: "component", type: ThyStepHeader, selector: "thy-step-header", inputs: ["label", "icon", "index", "selected", "active"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyStepper, isStandalone: true, selector: "thy-stepper", inputs: { thySelectedIndex: { classPropertyName: "thySelectedIndex", publicName: "thySelectedIndex", isSignal: true, isRequired: false, transformFunction: null }, thySelected: { classPropertyName: "thySelected", publicName: "thySelected", isSignal: true, isRequired: false, transformFunction: null }, thyShowStepHeader: { classPropertyName: "thyShowStepHeader", publicName: "thyShowStepHeader", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: "selectionChange" }, host: { classAttribute: "thy-stepper" }, providers: [{ provide: THY_STEPPER_COMPONENT, useExisting: ThyStepper }], queries: [{ propertyName: "steps", predicate: ThyStep, isSignal: true }], ngImport: i0, template: "@if (thyShowStepHeader()) {\n <div class=\"thy-stepper-header-container\">\n @for (step of steps(); track $index; let i = $index; let isLast = $last) {\n <thy-step-header\n [index]=\"i\"\n [label]=\"step.thyLabel() || step.label()\"\n [icon]=\"step.thyIcon()\"\n [selected]=\"selectedIndex() === i\"\n [class.thy-stepper-header-active]=\"i <= selectedIndex()\"\n [active]=\"i <= selectedIndex()\">\n </thy-step-header>\n @if (!isLast) {\n <div class=\"thy-stepper-line\" [class.thy-stepper-line-active]=\"i < selectedIndex()\"></div>\n }\n }\n </div>\n}\n\n<div class=\"thy-stepper-content-container\">\n <ng-container [ngTemplateOutlet]=\"selected()?.content()\"></ng-container>\n</div>\n", dependencies: [{ kind: "component", type: ThyStepHeader, selector: "thy-step-header", inputs: ["label", "icon", "index", "selected", "active"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
133
133
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepper, decorators: [{
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepper, decorators: [{
135
135
  type: Component,
136
- args: [{ selector: 'thy-stepper', providers: [{ provide: THY_STEPPER_COMPONENT, useExisting: ThyStepper }], imports: [ThyStepHeader, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'thy-stepper' }, template: "@if (thyShowStepHeader()) {\n <div class=\"thy-stepper-header-container\">\n @for (step of steps(); track $index; let i = $index; let isLast = $last) {\n <thy-step-header\n [index]=\"i\"\n [label]=\"step.thyLabel() || step.label()\"\n [icon]=\"step.thyIcon()\"\n [selected]=\"selectedIndex() === i\"\n [class.thy-stepper-header-active]=\"i <= selectedIndex()\"\n [active]=\"i <= selectedIndex()\">\n </thy-step-header>\n @if (!isLast) {\n <div class=\"thy-stepper-line\" [class.thy-stepper-line-active]=\"i < selectedIndex()\"></div>\n }\n }\n </div>\n}\n\n<div class=\"thy-stepper-content-container\">\n <ng-container [ngTemplateOutlet]=\"selected()?.content()\"></ng-container>\n</div>\n\n " }]
136
+ args: [{ selector: 'thy-stepper', providers: [{ provide: THY_STEPPER_COMPONENT, useExisting: ThyStepper }], imports: [ThyStepHeader, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'thy-stepper' }, template: "@if (thyShowStepHeader()) {\n <div class=\"thy-stepper-header-container\">\n @for (step of steps(); track $index; let i = $index; let isLast = $last) {\n <thy-step-header\n [index]=\"i\"\n [label]=\"step.thyLabel() || step.label()\"\n [icon]=\"step.thyIcon()\"\n [selected]=\"selectedIndex() === i\"\n [class.thy-stepper-header-active]=\"i <= selectedIndex()\"\n [active]=\"i <= selectedIndex()\">\n </thy-step-header>\n @if (!isLast) {\n <div class=\"thy-stepper-line\" [class.thy-stepper-line-active]=\"i < selectedIndex()\"></div>\n }\n }\n </div>\n}\n\n<div class=\"thy-stepper-content-container\">\n <ng-container [ngTemplateOutlet]=\"selected()?.content()\"></ng-container>\n</div>\n" }]
137
137
  }], ctorParameters: () => [], propDecorators: { thySelectedIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySelectedIndex", required: false }] }], thySelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySelected", required: false }] }], thyShowStepHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShowStepHeader", required: false }] }], selectionChange: [{ type: i0.Output, args: ["selectionChange"] }], steps: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ThyStep), { isSignal: true }] }] } });
138
138
 
139
139
  /**
@@ -149,10 +149,10 @@ class ThyStepperNextDirective {
149
149
  click($event) {
150
150
  this.stepper.next();
151
151
  }
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepperNextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
153
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: ThyStepperNextDirective, isStandalone: true, selector: "[thyStepperNext]", host: { listeners: { "click": "click($event)" } }, ngImport: i0 }); }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepperNextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
153
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThyStepperNextDirective, isStandalone: true, selector: "[thyStepperNext]", host: { listeners: { "click": "click($event)" } }, ngImport: i0 }); }
154
154
  }
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepperNextDirective, decorators: [{
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepperNextDirective, decorators: [{
156
156
  type: Directive,
157
157
  args: [{
158
158
  selector: '[thyStepperNext]'
@@ -174,10 +174,10 @@ class ThyStepperPreviousDirective {
174
174
  click($event) {
175
175
  this.stepper.previous();
176
176
  }
177
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepperPreviousDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
178
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.14", type: ThyStepperPreviousDirective, isStandalone: true, selector: "[thyStepperPrevious]", host: { listeners: { "click": "click($event)" } }, ngImport: i0 }); }
177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepperPreviousDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
178
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.15", type: ThyStepperPreviousDirective, isStandalone: true, selector: "[thyStepperPrevious]", host: { listeners: { "click": "click($event)" } }, ngImport: i0 }); }
179
179
  }
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepperPreviousDirective, decorators: [{
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepperPreviousDirective, decorators: [{
181
181
  type: Directive,
182
182
  args: [{
183
183
  selector: '[thyStepperPrevious]'
@@ -188,11 +188,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
188
188
  }] } });
189
189
 
190
190
  class ThyStepperModule {
191
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
192
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyStepperModule, imports: [CommonModule, ThyStepHeader, ThyStepper, ThyStep, ThyStepperNextDirective, ThyStepperPreviousDirective], exports: [ThyStepper, ThyStep, ThyStepHeader, ThyStepperNextDirective, ThyStepperPreviousDirective] }); }
193
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepperModule, imports: [CommonModule, ThyStepHeader, ThyStepper] }); }
191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
192
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyStepperModule, imports: [CommonModule, ThyStepHeader, ThyStepper, ThyStep, ThyStepperNextDirective, ThyStepperPreviousDirective], exports: [ThyStepper, ThyStep, ThyStepHeader, ThyStepperNextDirective, ThyStepperPreviousDirective] }); }
193
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepperModule, imports: [CommonModule, ThyStepHeader, ThyStepper] }); }
194
194
  }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyStepperModule, decorators: [{
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyStepperModule, decorators: [{
196
196
  type: NgModule,
197
197
  args: [{
198
198
  imports: [CommonModule, ThyStepHeader, ThyStepper, ThyStep, ThyStepperNextDirective, ThyStepperPreviousDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-stepper.mjs","sources":["../../../src/stepper/step-header.component.ts","../../../src/stepper/step-header.component.html","../../../src/stepper/step.component.ts","../../../src/stepper/step.component.html","../../../src/stepper/stepper.component.ts","../../../src/stepper/stepper.component.html","../../../src/stepper/stepper-button.directive.ts","../../../src/stepper/stepper.module.ts","../../../src/stepper/ngx-tethys-stepper.ts"],"sourcesContent":["import { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nimport { Component, HostBinding, Input, numberAttribute, input, ChangeDetectionStrategy } from '@angular/core';\n\n/**\n * 步骤条头部组件\n * @name thy-step-header\n * @order 25\n */\n@Component({\n selector: 'thy-step-header',\n templateUrl: './step-header.component.html',\n imports: [ThyIcon],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'thy-stepper-header' }\n})\nexport class ThyStepHeader {\n readonly label = input<string>();\n\n readonly icon = input<string>();\n\n readonly index = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly selected = input(false, { transform: coerceBooleanProperty });\n\n readonly active = input(false, { transform: coerceBooleanProperty });\n}\n","<div class=\"thy-step-number\">\n <span>{{ index() + 1 }}</span>\n</div>\n<thy-icon class=\"thy-step-icon\" [thyIconName]=\"icon() || 'check-circle'\"></thy-icon>\n<div class=\"thy-step-label\">{{ label() }}</div>\n","import { Component, InjectionToken, TemplateRef, ViewChild, inject, input, WritableSignal, viewChild } from '@angular/core';\n\nexport interface IThyStepperComponent {\n updateSelected(step: ThyStep): void;\n}\n\nexport const THY_STEPPER_COMPONENT = new InjectionToken<IThyStepperComponent>('THY_STEPPER_COMPONENT');\n\n/**\n * 步骤项组件\n * @name thy-step\n * @order 20\n */\n@Component({ selector: 'thy-step', templateUrl: './step.component.html' })\nexport class ThyStep {\n stepper = inject(THY_STEPPER_COMPONENT, { optional: true })!;\n\n readonly content = viewChild<TemplateRef<any>>(TemplateRef);\n\n readonly label = input<string>();\n\n /**\n * 步骤条中每个步骤的label文本\n */\n readonly thyLabel = input<string>();\n\n /**\n * 步骤条中每个步骤完成的图标\n * @default check-circle\n */\n readonly thyIcon = input<string>();\n\n select() {\n this.stepper.updateSelected(this);\n }\n}\n","<ng-template><ng-content></ng-content></ng-template>\n","import {\n Component,\n numberAttribute,\n viewChildren,\n output,\n contentChildren,\n input,\n computed,\n effect,\n ChangeDetectionStrategy,\n signal,\n untracked\n} from '@angular/core';\nimport { ThyStep, IThyStepperComponent, THY_STEPPER_COMPONENT } from './step.component';\nimport { ThyStepHeader } from './step-header.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 步骤条组件\n * @name thy-stepper\n * @order 10\n */\n@Component({\n selector: 'thy-stepper',\n templateUrl: 'stepper.component.html',\n providers: [{ provide: THY_STEPPER_COMPONENT, useExisting: ThyStepper }],\n imports: [ThyStepHeader, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'thy-stepper' }\n})\nexport class ThyStepper implements IThyStepperComponent {\n /**\n * 当前处于激活状态的步骤 index\n */\n readonly thySelectedIndex = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 当前处于激活状态的步骤实例\n */\n readonly thySelected = input<ThyStep>();\n\n /**\n * 步骤条导航是否展示,默认展示\n */\n readonly thyShowStepHeader = input(true, { transform: coerceBooleanProperty });\n\n readonly selectionChange = output<any>();\n\n readonly steps = contentChildren(ThyStep);\n\n readonly selectedIndex = signal(0);\n\n protected readonly selected = computed(() => this.steps()?.[this.selectedIndex()]);\n\n constructor() {\n effect(() => {\n const newIndex = this.thySelectedIndex();\n if (newIndex) {\n untracked(() => {\n this.updateSelectedIndex(newIndex);\n });\n }\n });\n\n effect(() => {\n const selected = this.thySelected();\n if (selected) {\n untracked(() => {\n const index = this.steps()?.indexOf(selected);\n if (index > -1) {\n this.updateSelectedIndex(index);\n }\n });\n }\n });\n }\n\n private updateSelectedIndex(newIndex: number): void {\n if (!this.steps()?.[newIndex]) {\n return;\n }\n const previouslySelectedIndex = this.selectedIndex();\n const previouslySelectedStep = this.steps() ? this.steps()[previouslySelectedIndex] : null;\n this.selectedIndex.set(newIndex);\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: previouslySelectedIndex,\n selectedStep: this.selected(),\n previouslySelectedStep: previouslySelectedStep\n });\n }\n\n updateSelected(step: ThyStep): void {\n const index = this.steps().indexOf(step);\n this.updateSelectedIndex(index);\n }\n\n to(index: number): void {\n this.updateSelectedIndex(Math.min(index, this.steps().length - 1));\n }\n\n next(): void {\n this.updateSelectedIndex(Math.min(this.selectedIndex() + 1, this.steps().length - 1));\n }\n\n /** Selects and focuses the previous step in list. */\n previous(): void {\n this.updateSelectedIndex(Math.max(this.selectedIndex() - 1, 0));\n }\n}\n","@if (thyShowStepHeader()) {\n <div class=\"thy-stepper-header-container\">\n @for (step of steps(); track $index; let i = $index; let isLast = $last) {\n <thy-step-header\n [index]=\"i\"\n [label]=\"step.thyLabel() || step.label()\"\n [icon]=\"step.thyIcon()\"\n [selected]=\"selectedIndex() === i\"\n [class.thy-stepper-header-active]=\"i <= selectedIndex()\"\n [active]=\"i <= selectedIndex()\">\n </thy-step-header>\n @if (!isLast) {\n <div class=\"thy-stepper-line\" [class.thy-stepper-line-active]=\"i < selectedIndex()\"></div>\n }\n }\n </div>\n}\n\n<div class=\"thy-stepper-content-container\">\n <ng-container [ngTemplateOutlet]=\"selected()?.content()\"></ng-container>\n</div>\n\n ","import { Directive, HostListener, inject } from '@angular/core';\nimport { ThyStepper } from './stepper.component';\n\n/**\n * 在步进工作流中移动到下一个步骤的按钮\n * @description.en-us Button that moves to the next step in a stepper workflow.\n * @name thyStepperNext\n * @order 40\n */\n@Directive({\n selector: '[thyStepperNext]'\n})\nexport class ThyStepperNextDirective {\n private stepper = inject(ThyStepper);\n\n @HostListener('click', ['$event'])\n click($event: any) {\n this.stepper.next();\n }\n}\n\n/**\n * 在步进工作流中移动到上一个步骤的按钮\n * @description.en-us Button that moves to the previous step in a stepper workflow.\n * @name thyStepperPrevious\n * @order 30\n */\n@Directive({\n selector: '[thyStepperPrevious]'\n})\nexport class ThyStepperPreviousDirective {\n private stepper = inject(ThyStepper);\n\n @HostListener('click', ['$event'])\n click($event: any) {\n this.stepper.previous();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyStepHeader } from './step-header.component';\nimport { ThyStep } from './step.component';\nimport { ThyStepper } from './stepper.component';\nimport { ThyStepperNextDirective, ThyStepperPreviousDirective } from './stepper-button.directive';\n\n@NgModule({\n imports: [CommonModule, ThyStepHeader, ThyStepper, ThyStep, ThyStepperNextDirective, ThyStepperPreviousDirective],\n exports: [ThyStepper, ThyStep, ThyStepHeader, ThyStepperNextDirective, ThyStepperPreviousDirective],\n providers: []\n})\nexport class ThyStepperModule {}\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-stepper.mjs","sources":["../../../src/stepper/step-header.component.ts","../../../src/stepper/step-header.component.html","../../../src/stepper/step.component.ts","../../../src/stepper/step.component.html","../../../src/stepper/stepper.component.ts","../../../src/stepper/stepper.component.html","../../../src/stepper/stepper-button.directive.ts","../../../src/stepper/stepper.module.ts","../../../src/stepper/ngx-tethys-stepper.ts"],"sourcesContent":["import { ThyIcon } from 'ngx-tethys/icon';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nimport { Component, HostBinding, Input, numberAttribute, input, ChangeDetectionStrategy } from '@angular/core';\n\n/**\n * 步骤条头部组件\n * @name thy-step-header\n * @order 25\n */\n@Component({\n selector: 'thy-step-header',\n templateUrl: './step-header.component.html',\n imports: [ThyIcon],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'thy-stepper-header' }\n})\nexport class ThyStepHeader {\n readonly label = input<string>();\n\n readonly icon = input<string>();\n\n readonly index = input.required<number, unknown>({ transform: numberAttribute });\n\n readonly selected = input(false, { transform: coerceBooleanProperty });\n\n readonly active = input(false, { transform: coerceBooleanProperty });\n}\n","<div class=\"thy-step-number\">\n <span>{{ index() + 1 }}</span>\n</div>\n<thy-icon class=\"thy-step-icon\" [thyIconName]=\"icon() || 'check-circle'\"></thy-icon>\n<div class=\"thy-step-label\">{{ label() }}</div>\n","import { Component, InjectionToken, TemplateRef, ViewChild, inject, input, WritableSignal, viewChild } from '@angular/core';\n\nexport interface IThyStepperComponent {\n updateSelected(step: ThyStep): void;\n}\n\nexport const THY_STEPPER_COMPONENT = new InjectionToken<IThyStepperComponent>('THY_STEPPER_COMPONENT');\n\n/**\n * 步骤项组件\n * @name thy-step\n * @order 20\n */\n@Component({ selector: 'thy-step', templateUrl: './step.component.html' })\nexport class ThyStep {\n stepper = inject(THY_STEPPER_COMPONENT, { optional: true })!;\n\n readonly content = viewChild<TemplateRef<any>>(TemplateRef);\n\n readonly label = input<string>();\n\n /**\n * 步骤条中每个步骤的label文本\n */\n readonly thyLabel = input<string>();\n\n /**\n * 步骤条中每个步骤完成的图标\n * @default check-circle\n */\n readonly thyIcon = input<string>();\n\n select() {\n this.stepper.updateSelected(this);\n }\n}\n","<ng-template><ng-content></ng-content></ng-template>\n","import {\n Component,\n numberAttribute,\n viewChildren,\n output,\n contentChildren,\n input,\n computed,\n effect,\n ChangeDetectionStrategy,\n signal,\n untracked\n} from '@angular/core';\nimport { ThyStep, IThyStepperComponent, THY_STEPPER_COMPONENT } from './step.component';\nimport { ThyStepHeader } from './step-header.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 步骤条组件\n * @name thy-stepper\n * @order 10\n */\n@Component({\n selector: 'thy-stepper',\n templateUrl: 'stepper.component.html',\n providers: [{ provide: THY_STEPPER_COMPONENT, useExisting: ThyStepper }],\n imports: [ThyStepHeader, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'thy-stepper' }\n})\nexport class ThyStepper implements IThyStepperComponent {\n /**\n * 当前处于激活状态的步骤 index\n */\n readonly thySelectedIndex = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 当前处于激活状态的步骤实例\n */\n readonly thySelected = input<ThyStep>();\n\n /**\n * 步骤条导航是否展示,默认展示\n */\n readonly thyShowStepHeader = input(true, { transform: coerceBooleanProperty });\n\n readonly selectionChange = output<any>();\n\n readonly steps = contentChildren(ThyStep);\n\n readonly selectedIndex = signal(0);\n\n protected readonly selected = computed(() => this.steps()?.[this.selectedIndex()]);\n\n constructor() {\n effect(() => {\n const newIndex = this.thySelectedIndex();\n if (newIndex) {\n untracked(() => {\n this.updateSelectedIndex(newIndex);\n });\n }\n });\n\n effect(() => {\n const selected = this.thySelected();\n if (selected) {\n untracked(() => {\n const index = this.steps()?.indexOf(selected);\n if (index > -1) {\n this.updateSelectedIndex(index);\n }\n });\n }\n });\n }\n\n private updateSelectedIndex(newIndex: number): void {\n if (!this.steps()?.[newIndex]) {\n return;\n }\n const previouslySelectedIndex = this.selectedIndex();\n const previouslySelectedStep = this.steps() ? this.steps()[previouslySelectedIndex] : null;\n this.selectedIndex.set(newIndex);\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: previouslySelectedIndex,\n selectedStep: this.selected(),\n previouslySelectedStep: previouslySelectedStep\n });\n }\n\n updateSelected(step: ThyStep): void {\n const index = this.steps().indexOf(step);\n this.updateSelectedIndex(index);\n }\n\n to(index: number): void {\n this.updateSelectedIndex(Math.min(index, this.steps().length - 1));\n }\n\n next(): void {\n this.updateSelectedIndex(Math.min(this.selectedIndex() + 1, this.steps().length - 1));\n }\n\n /** Selects and focuses the previous step in list. */\n previous(): void {\n this.updateSelectedIndex(Math.max(this.selectedIndex() - 1, 0));\n }\n}\n","@if (thyShowStepHeader()) {\n <div class=\"thy-stepper-header-container\">\n @for (step of steps(); track $index; let i = $index; let isLast = $last) {\n <thy-step-header\n [index]=\"i\"\n [label]=\"step.thyLabel() || step.label()\"\n [icon]=\"step.thyIcon()\"\n [selected]=\"selectedIndex() === i\"\n [class.thy-stepper-header-active]=\"i <= selectedIndex()\"\n [active]=\"i <= selectedIndex()\">\n </thy-step-header>\n @if (!isLast) {\n <div class=\"thy-stepper-line\" [class.thy-stepper-line-active]=\"i < selectedIndex()\"></div>\n }\n }\n </div>\n}\n\n<div class=\"thy-stepper-content-container\">\n <ng-container [ngTemplateOutlet]=\"selected()?.content()\"></ng-container>\n</div>\n","import { Directive, HostListener, inject } from '@angular/core';\nimport { ThyStepper } from './stepper.component';\n\n/**\n * 在步进工作流中移动到下一个步骤的按钮\n * @description.en-us Button that moves to the next step in a stepper workflow.\n * @name thyStepperNext\n * @order 40\n */\n@Directive({\n selector: '[thyStepperNext]'\n})\nexport class ThyStepperNextDirective {\n private stepper = inject(ThyStepper);\n\n @HostListener('click', ['$event'])\n click($event: any) {\n this.stepper.next();\n }\n}\n\n/**\n * 在步进工作流中移动到上一个步骤的按钮\n * @description.en-us Button that moves to the previous step in a stepper workflow.\n * @name thyStepperPrevious\n * @order 30\n */\n@Directive({\n selector: '[thyStepperPrevious]'\n})\nexport class ThyStepperPreviousDirective {\n private stepper = inject(ThyStepper);\n\n @HostListener('click', ['$event'])\n click($event: any) {\n this.stepper.previous();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyStepHeader } from './step-header.component';\nimport { ThyStep } from './step.component';\nimport { ThyStepper } from './stepper.component';\nimport { ThyStepperNextDirective, ThyStepperPreviousDirective } from './stepper-button.directive';\n\n@NgModule({\n imports: [CommonModule, ThyStepHeader, ThyStepper, ThyStep, ThyStepperNextDirective, ThyStepperPreviousDirective],\n exports: [ThyStepper, ThyStep, ThyStepHeader, ThyStepperNextDirective, ThyStepperPreviousDirective],\n providers: []\n})\nexport class ThyStepperModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}