ngx-tethys 20.0.1 → 20.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/CHANGELOG.md +35 -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 +12 -6
  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 +65 -28
  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 +27 -26
  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-native-table.mjs +1119 -0
  113. package/fesm2022/ngx-tethys-native-table.mjs.map +1 -0
  114. package/fesm2022/ngx-tethys-nav.mjs +27 -27
  115. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  116. package/fesm2022/ngx-tethys-notify.mjs +20 -20
  117. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  118. package/fesm2022/ngx-tethys-pagination.mjs +18 -18
  119. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  120. package/fesm2022/ngx-tethys-popover.mjs +22 -21
  121. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  122. package/fesm2022/ngx-tethys-progress.mjs +17 -17
  123. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  124. package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
  125. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  126. package/fesm2022/ngx-tethys-property.mjs +15 -12
  127. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  128. package/fesm2022/ngx-tethys-radio.mjs +17 -17
  129. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  130. package/fesm2022/ngx-tethys-rate.mjs +12 -12
  131. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  132. package/fesm2022/ngx-tethys-resizable.mjs +21 -18
  133. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  134. package/fesm2022/ngx-tethys-result.mjs +11 -11
  135. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  136. package/fesm2022/ngx-tethys-segment.mjs +19 -16
  137. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  138. package/fesm2022/ngx-tethys-select.mjs +95 -46
  139. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  140. package/fesm2022/ngx-tethys-shared.mjs +85 -81
  141. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  142. package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
  143. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  144. package/fesm2022/ngx-tethys-slide.mjs +37 -36
  145. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  146. package/fesm2022/ngx-tethys-slider.mjs +11 -11
  147. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  148. package/fesm2022/ngx-tethys-space.mjs +10 -10
  149. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  150. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-stepper.mjs +22 -22
  152. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-strength.mjs +7 -7
  154. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  155. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  156. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  157. package/fesm2022/ngx-tethys-table.mjs +28 -28
  158. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  159. package/fesm2022/ngx-tethys-tabs.mjs +13 -13
  160. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  161. package/fesm2022/ngx-tethys-tag.mjs +11 -11
  162. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  163. package/fesm2022/ngx-tethys-testing.mjs +1 -1
  164. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  165. package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
  166. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  167. package/fesm2022/ngx-tethys-timeline.mjs +14 -14
  168. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  169. package/fesm2022/ngx-tethys-tooltip.mjs +36 -29
  170. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  171. package/fesm2022/ngx-tethys-transfer.mjs +15 -15
  172. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  173. package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
  174. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  175. package/fesm2022/ngx-tethys-tree.mjs +50 -43
  176. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  177. package/fesm2022/ngx-tethys-typography.mjs +16 -16
  178. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  179. package/fesm2022/ngx-tethys-upload.mjs +26 -25
  180. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  181. package/fesm2022/ngx-tethys-util.mjs +11 -5
  182. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  183. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  184. package/fesm2022/ngx-tethys-watermark.mjs +18 -15
  185. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys.mjs +1 -1
  187. package/fesm2022/ngx-tethys.mjs.map +1 -1
  188. package/flexible-text/index.d.ts +5 -5
  189. package/form/index.d.ts +26 -22
  190. package/fullscreen/index.d.ts +4 -4
  191. package/grid/index.d.ts +12 -12
  192. package/guider/index.d.ts +10 -10
  193. package/i18n/index.d.ts +1 -1
  194. package/icon/index.d.ts +3 -3
  195. package/image/index.d.ts +12 -12
  196. package/input/index.d.ts +23 -23
  197. package/input-number/index.d.ts +4 -4
  198. package/layout/index.d.ts +16 -16
  199. package/list/index.d.ts +16 -15
  200. package/mention/index.d.ts +4 -4
  201. package/menu/index.d.ts +7 -7
  202. package/message/index.d.ts +5 -5
  203. package/native-table/index.d.ts +305 -0
  204. package/native-table/styles/native-table.scss +174 -0
  205. package/nav/index.d.ts +12 -12
  206. package/notify/index.d.ts +1 -1
  207. package/package.json +5 -1
  208. package/pagination/index.d.ts +21 -17
  209. package/popover/index.d.ts +8 -8
  210. package/progress/index.d.ts +18 -18
  211. package/property/index.d.ts +6 -6
  212. package/property-operation/index.d.ts +3 -3
  213. package/radio/index.d.ts +6 -6
  214. package/rate/index.d.ts +5 -5
  215. package/resizable/index.d.ts +2 -2
  216. package/result/index.d.ts +8 -8
  217. package/schematics/testing/test-workspace.js +1 -0
  218. package/schematics/version.d.ts +1 -1
  219. package/schematics/version.js +1 -1
  220. package/segment/index.d.ts +9 -9
  221. package/select/index.d.ts +28 -22
  222. package/shared/index.d.ts +31 -30
  223. package/shared/option/styles/select-dropdown.scss +5 -2
  224. package/skeleton/index.d.ts +52 -52
  225. package/slide/index.d.ts +5 -5
  226. package/slider/index.d.ts +6 -6
  227. package/space/index.d.ts +1 -1
  228. package/statistic/index.d.ts +18 -18
  229. package/stepper/index.d.ts +8 -8
  230. package/styles/index.scss +1 -0
  231. package/switch/index.d.ts +2 -2
  232. package/table/index.d.ts +24 -24
  233. package/tabs/index.d.ts +6 -6
  234. package/testing/index.d.ts +1 -1
  235. package/time-picker/index.d.ts +21 -21
  236. package/timeline/index.d.ts +8 -8
  237. package/tooltip/index.d.ts +12 -12
  238. package/transfer/index.d.ts +16 -16
  239. package/tree/index.d.ts +28 -28
  240. package/tree-select/index.d.ts +13 -13
  241. package/typography/index.d.ts +3 -3
  242. package/upload/index.d.ts +4 -4
  243. package/util/index.d.ts +17 -7
  244. package/vote/index.d.ts +2 -2
  245. package/watermark/index.d.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-popover.mjs","sources":["../../../src/popover/popover.config.ts","../../../src/popover/popover.options.ts","../../../src/popover/popover-container.component.ts","../../../src/popover/popover-container.component.html","../../../src/popover/popover-ref.ts","../../../src/popover/popover.service.ts","../../../src/popover/body/popover-body.component.ts","../../../src/popover/header/popover-header.component.ts","../../../src/popover/header/popover-header.component.html","../../../src/popover/popover.directive.ts","../../../src/popover/module.ts","../../../src/popover/popover-animations.ts","../../../src/popover/ngx-tethys-popover.ts"],"sourcesContent":["import { ThyPlacement, ThyAbstractOverlayConfig } from 'ngx-tethys/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken } from '@angular/core';\n\n/**\n * @public\n * @order 20\n */\nexport class ThyPopoverConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * 弹出悬浮层位置计算的 Origin Element,Connected Element\n * @description.en-us Origin Element, for overlay flexible connected to\n */\n origin: ElementRef<any> | HTMLElement;\n\n /**\n * 源点位置\n * @description.en-us Origin point, default use origin's boundingClientRect\n */\n originPosition?: {\n x: number;\n y: number;\n } & { width?: number; height?: number };\n\n /**\n * 相对于源点的位置,可选值:topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n * @description.en-us Placement be relative to origin, topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n */\n placement?: ThyPlacement;\n\n /**\n * 点击popover内部是否自动关闭弹出框\n * @description.en-us Click inside can been close\n */\n insideClosable?: boolean;\n\n /**\n * 相对于源点的偏移量\n * @description.en-us Offset be relative to origin, default is 0\n * @default 0\n */\n offset?: number;\n\n /**\n * 是否只能手动关闭,唯一标识为origin\n * @description.en-us Manually close it, default rules is which auto close last popover when open a new unless set manualClosure as true\n */\n manualClosure?: boolean;\n\n /**\n * 对弹出悬浮层位置计算的 Origin Element,Connected Element 添加 class\n * @description.en-us Origin active class when popover is opened\n * @default thy-popover-origin-active\n */\n originActiveClass?: string | string[];\n\n /**\n * 滚动策略\n */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * 点击popover外部是否自动关闭弹出框,hasBackdrop=false 时该参数起作用\n * @description.en-us Click outside can been close\n */\n outsideClosable?: boolean;\n\n /**\n * 是否开启自动适配大小模式,开启后当弹出框内容宽高发生变化后自动更新位置\n * @description.en-us autoAdaptive is true when height change can auto update position\n */\n autoAdaptive?: boolean;\n\n /**\n * 是否禁用动画\n * @default false\n */\n animationDisabled?: boolean;\n}\n\nexport const THY_POPOVER_DEFAULT_CONFIG = new InjectionToken<ThyPopoverConfig>('thy-popover-default-config');\n\nexport const THY_POPOVER_DEFAULT_CONFIG_VALUE = {\n hasBackdrop: true,\n backdropClass: 'thy-popover-backdrop',\n panelClass: '',\n offset: 0,\n backdropClosable: true,\n closeOnNavigation: true,\n placement: 'bottom' as ThyPlacement,\n insideClosable: false,\n manualClosure: false,\n originActiveClass: 'thy-popover-origin-active',\n autoAdaptive: false,\n minWidth: '240px'\n};\n\nexport const THY_POPOVER_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_POPOVER_DEFAULT_CONFIG,\n useValue: THY_POPOVER_DEFAULT_CONFIG_VALUE\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('thy-popover-scroll-strategy');\n\nexport const THY_POPOVER_SCROLL_STRATEGY_FACTORY: (overlay: Overlay) => () => ScrollStrategy = (overlay: Overlay) => {\n return () => overlay.scrollStrategies.block();\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY_PROVIDER = {\n provide: THY_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: THY_POPOVER_SCROLL_STRATEGY_FACTORY\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const popoverAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'popover',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ThyAbstractOverlayContainer, ThyClickDispatcher, ThyPortalOutlet } from 'ngx-tethys/core';\nimport { from, Observable, timer } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n ViewChild,\n inject\n} from '@angular/core';\n\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-popover-container',\n templateUrl: './popover-container.component.html',\n animations: [scaleXMotion, scaleYMotion, scaleMotion],\n host: {\n class: 'thy-popover-container',\n tabindex: '-1',\n '[attr.role]': `'popover'`,\n '[attr.id]': 'id',\n '[@.disabled]': '!!config.animationDisabled',\n '[@scaleXMotion]': '(config.placement === \"left\" || config.placement === \"right\") ? animationState : \"void\"',\n '(@scaleXMotion.start)': 'onAnimationStart($event)',\n '(@scaleXMotion.done)': 'onAnimationDone($event)',\n '[@scaleYMotion]': '(config.placement === \"top\" || config.placement === \"bottom\") ? animationState : \"void\"',\n '(@scaleYMotion.start)': 'onAnimationStart($event)',\n '(@scaleYMotion.done)': 'onAnimationDone($event)',\n '[@scaleMotion]':\n '(config.placement !== \"left\" && config.placement !== \"right\" && config.placement !== \"top\" && config.placement !== \"bottom\") ? animationState : \"void\"',\n '(@scaleMotion.start)': 'onAnimationStart($event)',\n '(@scaleMotion.done)': 'onAnimationDone($event)'\n },\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThyPopoverContainer<TData = unknown> extends ThyAbstractOverlayContainer<TData> implements AfterViewInit, OnDestroy {\n private elementRef = inject(ElementRef);\n config = inject<ThyPopoverConfig<TData>>(ThyPopoverConfig);\n private thyClickDispatcher = inject(ThyClickDispatcher);\n private contentObserver = inject(ContentObserver);\n private ngZone = inject(NgZone);\n\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet: ThyPortalOutlet;\n\n /** State of the popover animation. */\n animationState: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n insideClicked = new EventEmitter();\n\n updatePosition = new EventEmitter();\n\n outsideClicked = new EventEmitter();\n\n beforeAttachPortal(): void {}\n\n constructor() {\n const changeDetectorRef = inject(ChangeDetectorRef);\n\n super(popoverAbstractOverlayOptions, changeDetectorRef);\n\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'enter';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n ngAfterViewInit() {\n if (this.config.outsideClosable && !this.config.hasBackdrop) {\n timer(0).subscribe(() => {\n this.thyClickDispatcher\n .clicked()\n .pipe(takeUntil(this.animationClosingDone))\n .subscribe((event: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(event.target as HTMLElement)) {\n this.ngZone.run(() => {\n this.outsideClicked.emit();\n });\n }\n });\n });\n }\n\n if (this.config.autoAdaptive) {\n const onStable$ = this.ngZone.isStable ? from(Promise.resolve()) : this.ngZone.onStable.pipe(take(1));\n this.ngZone.runOutsideAngular(() => {\n onStable$.pipe(takeUntil(this.containerDestroy)).subscribe(() => {\n this.contentObserver\n .observe(this.elementRef)\n .pipe(takeUntil(this.containerDestroy))\n .subscribe(() => {\n this.updatePosition.emit();\n });\n });\n });\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n // if (event.toState === 'void') {\n // this.trapFocus();\n // } else if (event.toState === 'exit') {\n // this.restoreFocus();\n // }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation(): void {\n this.animationState = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n @HostListener('click', [])\n onInsideClick() {\n if (this.config.insideClosable) {\n this.insideClicked.emit();\n }\n }\n\n ngOnDestroy() {\n super.destroy();\n this.insideClicked.complete();\n this.updatePosition.complete();\n this.outsideClicked.complete();\n }\n}\n","<ng-template thyPortalOutlet></ng-template>\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayOptions, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { merge } from 'rxjs';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\nexport abstract class ThyPopoverRef<T, TResult = unknown, TData = unknown> extends ThyAbstractOverlayRef<\n T,\n ThyPopoverContainer<TData>,\n TResult\n> {}\n\nexport class ThyInternalPopoverRef<T, TResult = unknown>\n extends ThyAbstractInternalOverlayRef<T, ThyPopoverContainer, TResult, ThyPopoverConfig>\n implements ThyPopoverRef<T, TResult>\n{\n protected get options(): ThyAbstractOverlayOptions {\n return popoverAbstractOverlayOptions;\n }\n\n constructor() {\n super();\n }\n\n override initialize(overlayRef: OverlayRef, containerInstance: ThyPopoverContainer, config: ThyPopoverConfig): void {\n super.initialize(overlayRef, containerInstance, config);\n // Note: doesn't need to unsubscribe, because `insideClicked` and `outsideClicked`\n // get completed by `ThyPopoverContainerComponent` when the view is destroyed.\n merge(containerInstance.insideClicked, containerInstance.outsideClicked).subscribe(() => this.close());\n containerInstance.updatePosition.subscribe(() => {\n this.updatePosition();\n });\n }\n\n /**\n * Updates the popover's position.\n * @param position New popover position.\n */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n","import { ComponentTypeOrTemplateRef, getFlexiblePositions, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { FunctionProp, isFunction } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceArray, coerceElement } from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { ElementRef, Injectable, Injector, NgZone, OnDestroy, StaticProvider, TemplateRef, inject, DOCUMENT } from '@angular/core';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyInternalPopoverRef, ThyPopoverRef } from './popover-ref';\nimport {\n THY_POPOVER_DEFAULT_CONFIG,\n THY_POPOVER_DEFAULT_CONFIG_VALUE,\n THY_POPOVER_SCROLL_STRATEGY,\n ThyPopoverConfig\n} from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { SafeAny } from 'ngx-tethys/types';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThyPopover extends ThyAbstractOverlayService<ThyPopoverConfig, ThyPopoverContainer> implements OnDestroy {\n private ngZone = inject(NgZone);\n private _viewportRuler = inject(ViewportRuler);\n private _document = inject(DOCUMENT, { optional: true })!;\n private _platform = inject(Platform);\n private _overlayContainer = inject(OverlayContainer);\n\n private readonly ngUnsubscribe$ = new Subject();\n\n private originInstancesMap = new Map<\n ElementRef | HTMLElement,\n {\n config: ThyPopoverConfig;\n popoverRef: ThyPopoverRef<any, any>;\n }\n >();\n\n private buildPositionStrategy<TData>(config: ThyPopoverConfig<TData>): PositionStrategy {\n const origin: FlexibleConnectedPositionStrategyOrigin = config.originPosition ? config.originPosition : config.origin;\n // const positionStrategy = this.overlay.position().flexibleConnectedTo(origin);\n const positionStrategy = new FlexibleConnectedPositionStrategy(\n origin,\n this._viewportRuler,\n this._document,\n this._platform,\n this._overlayContainer\n );\n const positions = getFlexiblePositions(config.placement, config.offset, 'thy-popover');\n positionStrategy.withPositions(positions);\n positionStrategy.withPush(config.canPush);\n positionStrategy.withGrowAfterOpen(true);\n positionStrategy.withTransformOriginOn('.thy-popover-container');\n positionStrategy.positionChanges.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(change => {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.close());\n }\n });\n return positionStrategy;\n }\n\n private buildScrollStrategy(config: ThyPopoverConfig): ScrollStrategy {\n if (config.scrollStrategy) {\n return config.scrollStrategy;\n } else if (this.scrollStrategy && isFunction(this.scrollStrategy)) {\n return this.scrollStrategy();\n } else {\n this.overlay.scrollStrategies.block();\n }\n }\n\n protected buildOverlayConfig<TData>(config: ThyPopoverConfig<TData>): OverlayConfig {\n const positionStrategy = this.buildPositionStrategy(config);\n const overlayConfig = this.buildBaseOverlayConfig(config, 'thy-popover-panel');\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.scrollStrategy = this.buildScrollStrategy(config);\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyPopoverConfig<any>): ThyPopoverContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyPopoverConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyPopoverContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyPopoverContainer>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult = unknown>(\n overlayRef: OverlayRef,\n containerInstance: ThyPopoverContainer,\n config: ThyPopoverConfig\n ): ThyAbstractOverlayRef<T, ThyPopoverContainer, TResult> {\n const popoverRef = new ThyInternalPopoverRef<T, TResult>();\n popoverRef.initialize(overlayRef, containerInstance, config);\n return popoverRef;\n }\n\n protected createInjector<T>(config: ThyPopoverConfig, popoverRef: ThyPopoverRef<T>, popoverContainer: ThyPopoverContainer): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyPopoverContainer, useValue: popoverContainer },\n {\n provide: ThyPopoverRef,\n useValue: popoverRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private originElementAddActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n constructor() {\n const overlay = inject(Overlay);\n const injector = inject(Injector);\n const defaultConfig = inject(THY_POPOVER_DEFAULT_CONFIG, { optional: true })!;\n const scrollStrategy = inject<FunctionProp<ScrollStrategy>>(THY_POPOVER_SCROLL_STRATEGY);\n\n super(\n popoverAbstractOverlayOptions,\n overlay,\n injector,\n {\n ...THY_POPOVER_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n },\n scrollStrategy\n );\n }\n\n private ensureCloseClosest(origin: HTMLElement) {\n let closeAndEnd = false;\n this.originInstancesMap.forEach((value, key) => {\n if (value.config.manualClosure) {\n if (key === origin) {\n value.popoverRef.close();\n closeAndEnd = true;\n }\n } else {\n if (key === origin) {\n closeAndEnd = true;\n }\n value.popoverRef.close();\n }\n });\n return closeAndEnd;\n }\n\n /**\n * 打开悬浮层\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: ThyPopoverConfig<TData>\n ): ThyPopoverRef<T, TResult> {\n const originElement = coerceElement(config.origin);\n // 默认关闭之前的弹出框\n // 1. 当之前的 Popover 设置 manualClosure 为 true 时, 弹出其他 Popover 时不自动关闭 manualClosure 为 true 的 Popover\n // 2. 当前的 Origin 对应的 Popover 已经弹出,不管 manualClosure 设置为何,直接关闭并返回\n if (this.ensureCloseClosest(originElement)) {\n return;\n }\n\n const popoverRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config) as ThyPopoverRef<T, TResult, TData>;\n config = popoverRef.containerInstance.config;\n popoverRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(config);\n this.originInstancesMap.delete(originElement);\n });\n\n this.originElementAddActiveClass(config);\n this.originInstancesMap.set(originElement, {\n config,\n popoverRef\n });\n\n return popoverRef;\n }\n\n /**\n * 根据Id获取打开的悬浮层\n */\n getPopoverById(id: string): ThyPopoverRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyPopoverRef<any> | undefined;\n }\n\n /**\n * 获取已经打开的悬浮层\n */\n getOpenedPopovers(): ThyPopoverRef<SafeAny>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * @description.en-us Finds the closest ThyPopoverRef to an element by looking at the DOM.\n * @description 通过 Dom 元素查找最近弹出的悬浮层\n */\n getClosestPopover(element: HTMLElement): ThyPopoverRef<any> | undefined {\n const parent = element.closest('.thy-popover-container');\n\n if (parent && parent.id) {\n return this.getPopoverById(parent.id);\n }\n return null;\n }\n\n /**\n * 关闭悬浮层\n */\n close<T>(result?: T, force?: boolean) {\n super.close(result, force);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * 悬浮层内容组件\n * @name thy-popover-body\n * @order 40\n */\n@Component({\n selector: 'thy-popover-body',\n template: '<ng-content></ng-content>',\n exportAs: 'thyPopoverBody',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-body'\n }\n})\nexport class ThyPopoverBody {}\n","import { ChangeDetectionStrategy, Component, computed, TemplateRef, inject, input, output, contentChild } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyPopover } from '../popover.service';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * 悬浮层头部组件\n * @name thy-popover-header\n * @order 30\n */\n@Component({\n selector: 'thy-popover-header',\n templateUrl: './popover-header.component.html',\n exportAs: 'thyPopoverHeader',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-header'\n },\n imports: [NgTemplateOutlet, ThyIcon]\n})\nexport class ThyPopoverHeader {\n private translate = inject(ThyTranslate);\n private thyPopover = inject(ThyPopover);\n\n /**\n * 头部标题\n */\n readonly thyTitle = input<string>(undefined);\n\n /**\n * 标题的多语言 Key\n */\n readonly thyTitleTranslationKey = input<string>(undefined);\n\n protected readonly titleSignal = computed(() => {\n const title = this.thyTitle();\n if (title) {\n return title;\n }\n const titleTranslationKey = this.thyTitleTranslationKey();\n if (titleTranslationKey) {\n return this.translate.instant(titleTranslationKey);\n }\n return '';\n });\n\n /**\n * 自定义头部模板\n * @type TemplateRef\n */\n public headerTemplate = contentChild<TemplateRef<any>>('popoverHeader');\n\n /**\n * @internal\n */\n readonly thyClosed = output<Event>();\n\n /**\n * @internal\n */\n close(event: Event) {\n this.thyClosed.emit(event);\n this.thyPopover.close();\n }\n}\n","@if (headerTemplate()) {\n <template [ngTemplateOutlet]=\"headerTemplate()\"></template>\n} @else {\n <h5 class=\"thy-popover-title\">{{ titleSignal() }}</h5>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </button>\n}\n","import {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n Input,\n TemplateRef,\n OnInit,\n ViewContainerRef,\n HostBinding,\n ChangeDetectorRef,\n numberAttribute,\n inject,\n input,\n effect\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover } from './popover.service';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ThyPopoverRef } from './popover-ref';\nimport { ThyPopoverConfig } from './popover.config';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 弹出悬浮层指令\n * @name thyPopover\n * @order 50\n */\n@Directive({\n selector: '[thyPopover]'\n})\nexport class ThyPopoverDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n elementRef: ElementRef;\n private popover = inject(ThyPopover);\n private viewContainerRef = inject(ViewContainerRef);\n private cdr = inject(ChangeDetectorRef);\n\n @HostBinding(`class.thy-popover-opened`) popoverOpened = false;\n\n /**\n * 悬浮组件或者模板\n */\n readonly content = input<ComponentType<any> | TemplateRef<any>>(undefined, { alias: 'thyPopover' });\n\n /**\n * 弹出悬浮层的触发方式\n */\n readonly thyTrigger = input<ThyOverlayTrigger>('click');\n\n /**\n * 弹出悬浮层的位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n readonly thyPlacement = input<ThyPlacement>('bottom');\n\n /**\n * 弹出悬浮层的偏移量\n */\n readonly thyOffset = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 弹出悬浮层的配置\n */\n readonly thyConfig = input<ThyPopoverConfig>(undefined);\n\n /**\n * 显示延迟时间\n */\n readonly thyShowDelay = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 隐藏延迟时间\n */\n readonly thyHideDelay = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 自动适配内容变化重新计算位置\n */\n readonly thyAutoAdaptive = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用打开悬浮层\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n private popoverRef: ThyPopoverRef<any>;\n\n constructor() {\n const elementRef = inject(ElementRef);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n const ngZone = inject(NgZone);\n super(elementRef, platform, focusMonitor, ngZone, true);\n this.elementRef = elementRef;\n\n effect(() => {\n this.trigger = this.thyTrigger();\n });\n effect(() => {\n this.showDelay = this.thyShowDelay();\n });\n effect(() => {\n this.hideDelay = this.thyHideDelay();\n });\n }\n\n ngOnInit(): void {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n const config = Object.assign(\n {\n origin: this.elementRef.nativeElement,\n hasBackdrop: this.trigger === 'click' || this.trigger === 'focus',\n viewContainerRef: this.viewContainerRef,\n placement: this.thyPlacement(),\n offset: this.thyOffset(),\n autoAdaptive: this.thyAutoAdaptive()\n },\n this.thyConfig()\n );\n this.popoverRef = this.popover.open(this.content(), config);\n\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n if (!this.disabled) {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.cdr.markForCheck();\n }\n this.showTimeoutId = null;\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n this.cdr.markForCheck();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPopoverBody } from './body/popover-body.component';\nimport { ThyPopoverHeader } from './header/popover-header.component';\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER } from './popover.config';\nimport { ThyPopoverDirective } from './popover.directive';\nimport { ThyPopover } from './popover.service';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n ThyIconModule,\n ThyPopoverContainer,\n ThyPopoverDirective,\n ThyPopoverHeader,\n ThyPopoverBody\n ],\n exports: [ThyPopoverDirective, ThyPopoverHeader, ThyPopoverBody],\n providers: [THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER, ThyPopover]\n})\nexport class ThyPopoverModule {}\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' }))\n // transition('* => enter', animate('100ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n // transition(\n // '* => exit',\n // animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 }))\n // )\n];\n\n/**\n * Animations used by ThyPopover.\n * @docs-private\n */\nexport const thyPopoverAnimations: {\n readonly popoverContainer: AnimationTriggerMetadata;\n} = {\n popoverContainer: trigger('popoverContainer', animationBody)\n};\n\n// export const setAnimationStart\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-popover.mjs","sources":["../../../src/popover/popover.config.ts","../../../src/popover/popover.options.ts","../../../src/popover/popover-container.component.ts","../../../src/popover/popover-container.component.html","../../../src/popover/popover-ref.ts","../../../src/popover/popover.service.ts","../../../src/popover/body/popover-body.component.ts","../../../src/popover/header/popover-header.component.ts","../../../src/popover/header/popover-header.component.html","../../../src/popover/popover.directive.ts","../../../src/popover/module.ts","../../../src/popover/popover-animations.ts","../../../src/popover/ngx-tethys-popover.ts"],"sourcesContent":["import { ThyPlacement, ThyAbstractOverlayConfig } from 'ngx-tethys/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken } from '@angular/core';\n\n/**\n * @public\n * @order 20\n */\nexport class ThyPopoverConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * 弹出悬浮层位置计算的 Origin Element,Connected Element\n * @description.en-us Origin Element, for overlay flexible connected to\n */\n origin!: ElementRef<any> | HTMLElement;\n\n /**\n * 源点位置\n * @description.en-us Origin point, default use origin's boundingClientRect\n */\n originPosition?: {\n x: number;\n y: number;\n } & { width?: number; height?: number };\n\n /**\n * 相对于源点的位置,可选值:topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n * @description.en-us Placement be relative to origin, topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n */\n placement?: ThyPlacement;\n\n /**\n * 点击popover内部是否自动关闭弹出框\n * @description.en-us Click inside can been close\n */\n insideClosable?: boolean;\n\n /**\n * 相对于源点的偏移量\n * @description.en-us Offset be relative to origin, default is 0\n * @default 0\n */\n offset?: number;\n\n /**\n * 是否只能手动关闭,唯一标识为origin\n * @description.en-us Manually close it, default rules is which auto close last popover when open a new unless set manualClosure as true\n */\n manualClosure?: boolean;\n\n /**\n * 对弹出悬浮层位置计算的 Origin Element,Connected Element 添加 class\n * @description.en-us Origin active class when popover is opened\n * @default thy-popover-origin-active\n */\n originActiveClass?: string | string[];\n\n /**\n * 滚动策略\n */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * 点击popover外部是否自动关闭弹出框,hasBackdrop=false 时该参数起作用\n * @description.en-us Click outside can been close\n */\n outsideClosable?: boolean;\n\n /**\n * 是否开启自动适配大小模式,开启后当弹出框内容宽高发生变化后自动更新位置\n * @description.en-us autoAdaptive is true when height change can auto update position\n */\n autoAdaptive?: boolean;\n\n /**\n * 是否禁用动画\n * @default false\n */\n animationDisabled?: boolean;\n}\n\nexport const THY_POPOVER_DEFAULT_CONFIG = new InjectionToken<ThyPopoverConfig>('thy-popover-default-config');\n\nexport const THY_POPOVER_DEFAULT_CONFIG_VALUE = {\n hasBackdrop: true,\n backdropClass: 'thy-popover-backdrop',\n panelClass: '',\n offset: 0,\n backdropClosable: true,\n closeOnNavigation: true,\n placement: 'bottom' as ThyPlacement,\n insideClosable: false,\n manualClosure: false,\n originActiveClass: 'thy-popover-origin-active',\n autoAdaptive: false,\n minWidth: '240px'\n};\n\nexport const THY_POPOVER_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_POPOVER_DEFAULT_CONFIG,\n useValue: THY_POPOVER_DEFAULT_CONFIG_VALUE\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('thy-popover-scroll-strategy');\n\nexport const THY_POPOVER_SCROLL_STRATEGY_FACTORY: (overlay: Overlay) => () => ScrollStrategy = (overlay: Overlay) => {\n return () => overlay.scrollStrategies.block();\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY_PROVIDER = {\n provide: THY_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: THY_POPOVER_SCROLL_STRATEGY_FACTORY\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const popoverAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'popover',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ThyAbstractOverlayContainer, ThyClickDispatcher, ThyPortalOutlet, scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\nimport { from, Observable, timer } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n ViewChild,\n inject\n} from '@angular/core';\n\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-popover-container',\n templateUrl: './popover-container.component.html',\n animations: [scaleXMotion, scaleYMotion, scaleMotion],\n host: {\n class: 'thy-popover-container',\n tabindex: '-1',\n '[attr.role]': `'popover'`,\n '[attr.id]': 'id',\n '[@.disabled]': '!!config.animationDisabled',\n '[@scaleXMotion]': '(config.placement === \"left\" || config.placement === \"right\") ? animationState : \"void\"',\n '(@scaleXMotion.start)': 'onAnimationStart($event)',\n '(@scaleXMotion.done)': 'onAnimationDone($event)',\n '[@scaleYMotion]': '(config.placement === \"top\" || config.placement === \"bottom\") ? animationState : \"void\"',\n '(@scaleYMotion.start)': 'onAnimationStart($event)',\n '(@scaleYMotion.done)': 'onAnimationDone($event)',\n '[@scaleMotion]':\n '(config.placement !== \"left\" && config.placement !== \"right\" && config.placement !== \"top\" && config.placement !== \"bottom\") ? animationState : \"void\"',\n '(@scaleMotion.start)': 'onAnimationStart($event)',\n '(@scaleMotion.done)': 'onAnimationDone($event)'\n },\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThyPopoverContainer<TData = unknown> extends ThyAbstractOverlayContainer<TData> implements AfterViewInit, OnDestroy {\n private elementRef = inject(ElementRef);\n config = inject<ThyPopoverConfig<TData>>(ThyPopoverConfig);\n private thyClickDispatcher = inject(ThyClickDispatcher);\n private contentObserver = inject(ContentObserver);\n private ngZone = inject(NgZone);\n\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet!: ThyPortalOutlet;\n\n /** State of the popover animation. */\n animationState: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n animationOpeningDone!: Observable<AnimationEvent>;\n animationClosingDone!: Observable<AnimationEvent>;\n\n insideClicked = new EventEmitter();\n\n updatePosition = new EventEmitter();\n\n outsideClicked = new EventEmitter();\n\n beforeAttachPortal(): void {}\n\n constructor() {\n const changeDetectorRef = inject(ChangeDetectorRef);\n\n super(popoverAbstractOverlayOptions, changeDetectorRef);\n\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'enter';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n ngAfterViewInit() {\n if (this.config.outsideClosable && !this.config.hasBackdrop) {\n timer(0).subscribe(() => {\n this.thyClickDispatcher\n .clicked()\n .pipe(takeUntil(this.animationClosingDone))\n // @ts-ignore\n .subscribe((event: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(event.target as HTMLElement)) {\n this.ngZone.run(() => {\n this.outsideClicked.emit();\n });\n }\n });\n });\n }\n\n if (this.config.autoAdaptive) {\n const onStable$ = this.ngZone.isStable ? from(Promise.resolve()) : this.ngZone.onStable.pipe(take(1));\n this.ngZone.runOutsideAngular(() => {\n onStable$.pipe(takeUntil(this.containerDestroy)).subscribe(() => {\n this.contentObserver\n .observe(this.elementRef)\n .pipe(takeUntil(this.containerDestroy))\n .subscribe(() => {\n this.updatePosition.emit();\n });\n });\n });\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n // if (event.toState === 'void') {\n // this.trapFocus();\n // } else if (event.toState === 'exit') {\n // this.restoreFocus();\n // }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation(): void {\n this.animationState = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n @HostListener('click', [])\n onInsideClick() {\n if (this.config.insideClosable) {\n this.insideClicked.emit();\n }\n }\n\n ngOnDestroy() {\n super.destroy();\n this.insideClicked.complete();\n this.updatePosition.complete();\n this.outsideClicked.complete();\n }\n}\n","<ng-template thyPortalOutlet></ng-template>\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayOptions, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { merge } from 'rxjs';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\nexport abstract class ThyPopoverRef<T, TResult = unknown, TData = unknown> extends ThyAbstractOverlayRef<\n T,\n ThyPopoverContainer<TData>,\n TResult\n> {}\n\nexport class ThyInternalPopoverRef<T, TResult = unknown>\n extends ThyAbstractInternalOverlayRef<T, ThyPopoverContainer, TResult, ThyPopoverConfig>\n implements ThyPopoverRef<T, TResult>\n{\n protected get options(): ThyAbstractOverlayOptions {\n return popoverAbstractOverlayOptions;\n }\n\n constructor() {\n super();\n }\n\n override initialize(overlayRef: OverlayRef, containerInstance: ThyPopoverContainer, config: ThyPopoverConfig): void {\n super.initialize(overlayRef, containerInstance, config);\n // Note: doesn't need to unsubscribe, because `insideClicked` and `outsideClicked`\n // get completed by `ThyPopoverContainerComponent` when the view is destroyed.\n merge(containerInstance.insideClicked, containerInstance.outsideClicked).subscribe(() => this.close());\n containerInstance.updatePosition.subscribe(() => {\n this.updatePosition();\n });\n }\n\n /**\n * Updates the popover's position.\n * @param position New popover position.\n */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n","import { ComponentTypeOrTemplateRef, getFlexiblePositions, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { FunctionProp, isFunction } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceArray, coerceElement } from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { ElementRef, Injectable, Injector, NgZone, OnDestroy, StaticProvider, inject, DOCUMENT } from '@angular/core';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyInternalPopoverRef, ThyPopoverRef } from './popover-ref';\nimport {\n THY_POPOVER_DEFAULT_CONFIG,\n THY_POPOVER_DEFAULT_CONFIG_VALUE,\n THY_POPOVER_SCROLL_STRATEGY,\n ThyPopoverConfig\n} from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { SafeAny } from 'ngx-tethys/types';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThyPopover extends ThyAbstractOverlayService<ThyPopoverConfig, ThyPopoverContainer> implements OnDestroy {\n private ngZone = inject(NgZone);\n private _viewportRuler = inject(ViewportRuler);\n private _document = inject(DOCUMENT, { optional: true })!;\n private _platform = inject(Platform);\n private _overlayContainer = inject(OverlayContainer);\n\n private readonly ngUnsubscribe$ = new Subject();\n\n private originInstancesMap = new Map<\n ElementRef | HTMLElement,\n {\n config: ThyPopoverConfig;\n popoverRef: ThyPopoverRef<any, any>;\n }\n >();\n\n private buildPositionStrategy<TData>(config: ThyPopoverConfig<TData>): PositionStrategy {\n const origin: FlexibleConnectedPositionStrategyOrigin = config.originPosition ? config.originPosition : config.origin;\n // const positionStrategy = this.overlay.position().flexibleConnectedTo(origin);\n const positionStrategy = new FlexibleConnectedPositionStrategy(\n origin,\n this._viewportRuler,\n this._document,\n this._platform,\n this._overlayContainer\n );\n const positions = getFlexiblePositions(config.placement!, config.offset, 'thy-popover');\n positionStrategy.withPositions(positions);\n positionStrategy.withPush(config.canPush);\n positionStrategy.withGrowAfterOpen(true);\n positionStrategy.withTransformOriginOn('.thy-popover-container');\n positionStrategy.positionChanges.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(change => {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.close());\n }\n });\n return positionStrategy;\n }\n\n private buildScrollStrategy(config: ThyPopoverConfig): ScrollStrategy {\n if (config.scrollStrategy) {\n return config.scrollStrategy!;\n } else if (this.scrollStrategy && isFunction(this.scrollStrategy)) {\n return this.scrollStrategy();\n } else {\n return this.overlay.scrollStrategies.block();\n }\n }\n\n protected buildOverlayConfig<TData>(config: ThyPopoverConfig<TData>): OverlayConfig {\n const positionStrategy = this.buildPositionStrategy(config);\n const overlayConfig = this.buildBaseOverlayConfig(config, 'thy-popover-panel');\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.scrollStrategy = this.buildScrollStrategy(config);\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyPopoverConfig<any>): ThyPopoverContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyPopoverConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyPopoverContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyPopoverContainer>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult = unknown>(\n overlayRef: OverlayRef,\n containerInstance: ThyPopoverContainer,\n config: ThyPopoverConfig\n ): ThyAbstractOverlayRef<T, ThyPopoverContainer, TResult> {\n const popoverRef = new ThyInternalPopoverRef<T, TResult>();\n popoverRef.initialize(overlayRef, containerInstance, config);\n return popoverRef;\n }\n\n protected createInjector<T>(config: ThyPopoverConfig, popoverRef: ThyPopoverRef<T>, popoverContainer: ThyPopoverContainer): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyPopoverContainer, useValue: popoverContainer },\n {\n provide: ThyPopoverRef,\n useValue: popoverRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private originElementAddActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n constructor() {\n const overlay = inject(Overlay);\n const injector = inject(Injector);\n const defaultConfig = inject(THY_POPOVER_DEFAULT_CONFIG, { optional: true })!;\n const scrollStrategy = inject<FunctionProp<ScrollStrategy>>(THY_POPOVER_SCROLL_STRATEGY);\n\n super(\n popoverAbstractOverlayOptions,\n overlay,\n injector,\n {\n ...THY_POPOVER_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n },\n scrollStrategy\n );\n }\n\n private ensureCloseClosest(origin: HTMLElement) {\n let closeAndEnd = false;\n this.originInstancesMap.forEach((value, key) => {\n if (value.config.manualClosure) {\n if (key === origin) {\n value.popoverRef.close();\n closeAndEnd = true;\n }\n } else {\n if (key === origin) {\n closeAndEnd = true;\n }\n value.popoverRef.close();\n }\n });\n return closeAndEnd;\n }\n\n /**\n * 打开悬浮层\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: ThyPopoverConfig<TData>\n ): ThyPopoverRef<T, TResult> | undefined {\n const originElement = coerceElement(config?.origin);\n // 默认关闭之前的弹出框\n // 1. 当之前的 Popover 设置 manualClosure 为 true 时, 弹出其他 Popover 时不自动关闭 manualClosure 为 true 的 Popover\n // 2. 当前的 Origin 对应的 Popover 已经弹出,不管 manualClosure 设置为何,直接关闭并返回\n if (this.ensureCloseClosest(originElement)) {\n return;\n }\n\n const popoverRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config) as ThyPopoverRef<T, TResult, TData>;\n config = popoverRef.containerInstance.config;\n popoverRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(config);\n this.originInstancesMap.delete(originElement);\n });\n\n this.originElementAddActiveClass(config);\n this.originInstancesMap.set(originElement, {\n config,\n popoverRef\n });\n\n return popoverRef;\n }\n\n /**\n * 根据Id获取打开的悬浮层\n */\n getPopoverById(id: string): ThyPopoverRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyPopoverRef<any> | undefined;\n }\n\n /**\n * 获取已经打开的悬浮层\n */\n getOpenedPopovers(): ThyPopoverRef<SafeAny>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * @description.en-us Finds the closest ThyPopoverRef to an element by looking at the DOM.\n * @description 通过 Dom 元素查找最近弹出的悬浮层\n */\n getClosestPopover(element: HTMLElement): ThyPopoverRef<any> | undefined | null {\n const parent = element.closest('.thy-popover-container');\n\n if (parent && parent.id) {\n return this.getPopoverById(parent.id);\n }\n return null;\n }\n\n /**\n * 关闭悬浮层\n */\n close<T>(result?: T, force?: boolean) {\n super.close(result, force);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * 悬浮层内容组件\n * @name thy-popover-body\n * @order 40\n */\n@Component({\n selector: 'thy-popover-body',\n template: '<ng-content></ng-content>',\n exportAs: 'thyPopoverBody',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-body'\n }\n})\nexport class ThyPopoverBody {}\n","import { ChangeDetectionStrategy, Component, computed, TemplateRef, inject, input, output, contentChild } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyPopover } from '../popover.service';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * 悬浮层头部组件\n * @name thy-popover-header\n * @order 30\n */\n@Component({\n selector: 'thy-popover-header',\n templateUrl: './popover-header.component.html',\n exportAs: 'thyPopoverHeader',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-header'\n },\n imports: [NgTemplateOutlet, ThyIcon]\n})\nexport class ThyPopoverHeader {\n private translate = inject(ThyTranslate);\n private thyPopover = inject(ThyPopover);\n\n /**\n * 头部标题\n */\n readonly thyTitle = input<string | undefined>(undefined);\n\n /**\n * 标题的多语言 Key\n */\n readonly thyTitleTranslationKey = input<string | undefined>(undefined);\n\n protected readonly titleSignal = computed(() => {\n const title = this.thyTitle();\n if (title) {\n return title;\n }\n const titleTranslationKey = this.thyTitleTranslationKey();\n if (titleTranslationKey) {\n return this.translate.instant(titleTranslationKey);\n }\n return '';\n });\n\n /**\n * 自定义头部模板\n * @type TemplateRef\n */\n public headerTemplate = contentChild<TemplateRef<any>>('popoverHeader');\n\n /**\n * @internal\n */\n readonly thyClosed = output<Event>();\n\n /**\n * @internal\n */\n close(event: Event) {\n this.thyClosed.emit(event);\n this.thyPopover.close();\n }\n}\n","@if (headerTemplate()) {\n <template [ngTemplateOutlet]=\"headerTemplate()\"></template>\n} @else {\n <h5 class=\"thy-popover-title\">{{ titleSignal() }}</h5>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </button>\n}\n","import {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n Input,\n TemplateRef,\n OnInit,\n ViewContainerRef,\n HostBinding,\n ChangeDetectorRef,\n numberAttribute,\n inject,\n input,\n effect\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover } from './popover.service';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ThyPopoverRef } from './popover-ref';\nimport { ThyPopoverConfig } from './popover.config';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 弹出悬浮层指令\n * @name thyPopover\n * @order 50\n */\n@Directive({\n selector: '[thyPopover]'\n})\nexport class ThyPopoverDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n elementRef!: ElementRef;\n private popover = inject(ThyPopover);\n private viewContainerRef = inject(ViewContainerRef);\n private cdr = inject(ChangeDetectorRef);\n\n @HostBinding(`class.thy-popover-opened`) popoverOpened = false;\n\n /**\n * 悬浮组件或者模板\n */\n readonly content = input<ComponentType<any> | TemplateRef<any>>(undefined, { alias: 'thyPopover' });\n\n /**\n * 弹出悬浮层的触发方式\n */\n readonly thyTrigger = input<ThyOverlayTrigger>('click');\n\n /**\n * 弹出悬浮层的位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n readonly thyPlacement = input<ThyPlacement>('bottom');\n\n /**\n * 弹出悬浮层的偏移量\n */\n readonly thyOffset = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 弹出悬浮层的配置\n */\n readonly thyConfig = input<ThyPopoverConfig | undefined>(undefined);\n\n /**\n * 显示延迟时间\n */\n readonly thyShowDelay = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 隐藏延迟时间\n */\n readonly thyHideDelay = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 自动适配内容变化重新计算位置\n */\n readonly thyAutoAdaptive = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用打开悬浮层\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n private popoverRef?: ThyPopoverRef<any>;\n\n constructor() {\n const elementRef = inject(ElementRef);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n const ngZone = inject(NgZone);\n super(elementRef, platform, focusMonitor, ngZone, true);\n this.elementRef = elementRef;\n\n effect(() => {\n this.trigger = this.thyTrigger();\n });\n effect(() => {\n this.showDelay = this.thyShowDelay();\n });\n effect(() => {\n this.hideDelay = this.thyHideDelay();\n });\n }\n\n ngOnInit(): void {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n const config = Object.assign(\n {\n origin: this.elementRef.nativeElement,\n hasBackdrop: this.trigger === 'click' || this.trigger === 'focus',\n viewContainerRef: this.viewContainerRef,\n placement: this.thyPlacement(),\n offset: this.thyOffset(),\n autoAdaptive: this.thyAutoAdaptive()\n },\n this.thyConfig()\n );\n this.popoverRef = this.popover.open(this.content()!, config);\n\n this.popoverRef!.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n });\n\n return this.popoverRef!.getOverlayRef();\n }\n\n show(delay: number = this.showDelay!) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n if (!this.disabled) {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.cdr.markForCheck();\n }\n this.showTimeoutId = null;\n }, delay);\n }\n\n hide(delay: number = this.hideDelay!) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n this.cdr.markForCheck();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPopoverBody } from './body/popover-body.component';\nimport { ThyPopoverHeader } from './header/popover-header.component';\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER } from './popover.config';\nimport { ThyPopoverDirective } from './popover.directive';\nimport { ThyPopover } from './popover.service';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n ThyIconModule,\n ThyPopoverContainer,\n ThyPopoverDirective,\n ThyPopoverHeader,\n ThyPopoverBody\n ],\n exports: [ThyPopoverDirective, ThyPopoverHeader, ThyPopoverBody],\n providers: [THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER, ThyPopover]\n})\nexport class ThyPopoverModule {}\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' }))\n // transition('* => enter', animate('100ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n // transition(\n // '* => exit',\n // animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 }))\n // )\n];\n\n/**\n * Animations used by ThyPopover.\n * @docs-private\n */\nexport const thyPopoverAnimations: {\n readonly popoverContainer: AnimationTriggerMetadata;\n} = {\n popoverContainer: trigger('popoverContainer', animationBody)\n};\n\n// export const setAnimationStart\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isString, isNumber } from 'ngx-tethys/util';
1
+ import { isString, isNumber, isUndefinedOrNull } from 'ngx-tethys/util';
2
2
  import * as i0 from '@angular/core';
3
3
  import { input, numberAttribute, computed, effect, ViewEncapsulation, Component, InjectionToken, inject, viewChildren, ChangeDetectionStrategy, NgModule } from '@angular/core';
4
4
  import { useHostRenderer } from '@tethys/cdk/dom';
@@ -106,10 +106,10 @@ class ThyProgressCircle {
106
106
  this.hostRenderer.updateClass(type ? [`progress-circle-${type}`] : []);
107
107
  });
108
108
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyProgressCircle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyProgressCircle, isStandalone: true, selector: "thy-progress-circle", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyMax: { classPropertyName: "thyMax", publicName: "thyMax", isSignal: true, isRequired: false, transformFunction: null }, thyTips: { classPropertyName: "thyTips", publicName: "thyTips", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null }, thyGapDegree: { classPropertyName: "thyGapDegree", publicName: "thyGapDegree", isSignal: true, isRequired: false, transformFunction: null }, thyGapPosition: { classPropertyName: "thyGapPosition", publicName: "thyGapPosition", isSignal: true, isRequired: false, transformFunction: null }, thyStrokeWidth: { classPropertyName: "thyStrokeWidth", publicName: "thyStrokeWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "progress-circle" }, ngImport: i0, template: "@let tips = thyTips();\n@let circleAttr = circle();\n<div\n [thyTooltip]=\"tips\"\n [thyTooltipDisabled]=\"!tips\"\n [style.width.px]=\"width()\"\n [style.height.px]=\"width()\"\n [ngClass]=\"progressSize()\"\n class=\"progress-circle-inner\">\n <svg class=\"progress-circle-svg\" viewBox=\"0 0 100 100\">\n <path\n class=\"progress-circle-trail\"\n fill-opacity=\"0\"\n [attr.d]=\"circleAttr.pathString\"\n [ngStyle]=\"circleAttr.trailPathStyle\"\n [attr.stroke-width]=\"strokeWidth()\"></path>\n @for (p of circleAttr.progressCirclePath; track $index) {\n <path\n class=\"progress-circle-path\"\n [ngClass]=\"p.className\"\n fill-opacity=\"0\"\n [attr.d]=\"circleAttr.pathString\"\n [attr.stroke-linecap]=\"'round'\"\n [attr.stroke]=\"p.stroke\"\n [attr.stroke-width]=\"p.value ? strokeWidth() : 0\"\n [ngStyle]=\"p.strokePathStyle\"></path>\n }\n </svg>\n <span class=\"progress-circle-content\">\n <ng-content></ng-content>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProgressCircle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyProgressCircle, isStandalone: true, selector: "thy-progress-circle", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyMax: { classPropertyName: "thyMax", publicName: "thyMax", isSignal: true, isRequired: false, transformFunction: null }, thyTips: { classPropertyName: "thyTips", publicName: "thyTips", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null }, thyGapDegree: { classPropertyName: "thyGapDegree", publicName: "thyGapDegree", isSignal: true, isRequired: false, transformFunction: null }, thyGapPosition: { classPropertyName: "thyGapPosition", publicName: "thyGapPosition", isSignal: true, isRequired: false, transformFunction: null }, thyStrokeWidth: { classPropertyName: "thyStrokeWidth", publicName: "thyStrokeWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "progress-circle" }, ngImport: i0, template: "@let tips = thyTips();\n@let circleAttr = circle();\n<div\n [thyTooltip]=\"tips\"\n [thyTooltipDisabled]=\"!tips\"\n [style.width.px]=\"width()\"\n [style.height.px]=\"width()\"\n [ngClass]=\"progressSize()\"\n class=\"progress-circle-inner\">\n <svg class=\"progress-circle-svg\" viewBox=\"0 0 100 100\">\n <path\n class=\"progress-circle-trail\"\n fill-opacity=\"0\"\n [attr.d]=\"circleAttr.pathString\"\n [ngStyle]=\"circleAttr.trailPathStyle\"\n [attr.stroke-width]=\"strokeWidth()\"></path>\n @for (p of circleAttr.progressCirclePath; track $index) {\n <path\n class=\"progress-circle-path\"\n [ngClass]=\"p.className\"\n fill-opacity=\"0\"\n [attr.d]=\"circleAttr.pathString\"\n [attr.stroke-linecap]=\"'round'\"\n [attr.stroke]=\"p.stroke\"\n [attr.stroke-width]=\"p.value ? strokeWidth() : 0\"\n [ngStyle]=\"p.strokePathStyle\"></path>\n }\n </svg>\n <span class=\"progress-circle-content\">\n <ng-content></ng-content>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
111
111
  }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyProgressCircle, decorators: [{
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProgressCircle, decorators: [{
113
113
  type: Component,
114
114
  args: [{ selector: 'thy-progress-circle', encapsulation: ViewEncapsulation.None, host: {
115
115
  class: 'progress-circle'
@@ -142,10 +142,10 @@ class ThyProgressStrip {
142
142
  this.hostRenderer.updateClass(type ? [`progress-bar-${type}`] : []);
143
143
  });
144
144
  }
145
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyProgressStrip, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
146
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.14", type: ThyProgressStrip, isStandalone: true, selector: "thy-progress-bar", inputs: { thyTips: { classPropertyName: "thyTips", publicName: "thyTips", isSignal: true, isRequired: false, transformFunction: null }, thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.width.%": "percent()" }, classAttribute: "progress-bar" }, ngImport: i0, template: "<div class=\"progress-bar-inner\" [ngStyle]=\"{ 'background-color': thyColor() }\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
145
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProgressStrip, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyProgressStrip, isStandalone: true, selector: "thy-progress-bar", inputs: { thyTips: { classPropertyName: "thyTips", publicName: "thyTips", isSignal: true, isRequired: false, transformFunction: null }, thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.width.%": "percent()" }, classAttribute: "progress-bar" }, ngImport: i0, template: "<div class=\"progress-bar-inner\" [ngStyle]=\"{ 'background-color': thyColor() }\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
147
147
  }
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyProgressStrip, decorators: [{
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProgressStrip, decorators: [{
149
149
  type: Component,
150
150
  args: [{ selector: 'thy-progress-bar', encapsulation: ViewEncapsulation.None, imports: [NgStyle], host: {
151
151
  class: 'progress-bar',
@@ -179,7 +179,7 @@ class ThyProgress {
179
179
  else if (isNumber(barsTotalValue)) {
180
180
  result = barsTotalValue;
181
181
  }
182
- if (result < barsTotalValue) {
182
+ if (!isUndefinedOrNull(barsTotalValue) && result < barsTotalValue) {
183
183
  result = barsTotalValue;
184
184
  }
185
185
  return result;
@@ -250,15 +250,15 @@ class ThyProgress {
250
250
  this.hostRenderer.updateClass(size ? [`progress-${size}`] : []);
251
251
  });
252
252
  }
253
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyProgress, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
254
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: ThyProgress, isStandalone: true, selector: "thy-progress", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyMax: { classPropertyName: "thyMax", publicName: "thyMax", isSignal: true, isRequired: false, transformFunction: null }, thyTips: { classPropertyName: "thyTips", publicName: "thyTips", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null }, thyGapDegree: { classPropertyName: "thyGapDegree", publicName: "thyGapDegree", isSignal: true, isRequired: false, transformFunction: null }, thyGapPosition: { classPropertyName: "thyGapPosition", publicName: "thyGapPosition", isSignal: true, isRequired: false, transformFunction: null }, thyStrokeWidth: { classPropertyName: "thyStrokeWidth", publicName: "thyStrokeWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-progress-strip": "thyShape() === 'strip'", "class.thy-progress-circle": "thyShape() === 'circle'", "class.progress-stacked": "isStacked()", "attr.max": "max()" }, classAttribute: "thy-progress progress" }, providers: [
253
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProgress, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyProgress, isStandalone: true, selector: "thy-progress", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyValue: { classPropertyName: "thyValue", publicName: "thyValue", isSignal: true, isRequired: false, transformFunction: null }, thyMax: { classPropertyName: "thyMax", publicName: "thyMax", isSignal: true, isRequired: false, transformFunction: null }, thyTips: { classPropertyName: "thyTips", publicName: "thyTips", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null }, thyGapDegree: { classPropertyName: "thyGapDegree", publicName: "thyGapDegree", isSignal: true, isRequired: false, transformFunction: null }, thyGapPosition: { classPropertyName: "thyGapPosition", publicName: "thyGapPosition", isSignal: true, isRequired: false, transformFunction: null }, thyStrokeWidth: { classPropertyName: "thyStrokeWidth", publicName: "thyStrokeWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-progress-strip": "thyShape() === 'strip'", "class.thy-progress-circle": "thyShape() === 'circle'", "class.progress-stacked": "isStacked()", "attr.max": "max()" }, classAttribute: "thy-progress progress" }, providers: [
255
255
  {
256
256
  provide: THY_PROGRESS_COMPONENT,
257
257
  useExisting: ThyProgress
258
258
  }
259
- ], viewQueries: [{ propertyName: "bars", predicate: ThyProgressStrip, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container>\n @if (thyShape()=== 'strip') {\n <div class=\"thy-progress-strip-outer\">\n @if (isStacked()) {\n @for (item of thyValue(); track $index) {\n <thy-progress-bar\n [thyType]=\"item.type\"\n [ngClass]=\"{ 'cursor-pointer': item.tips || thyTips()}\"\n [thyTooltip]=\"item.tips || thyTips()\"\n [thyTooltipTemplateContext]=\"item\"\n [thyTooltipDisabled]=\"!thyTips() && !item.tips\"\n [thyColor]=\"item.color\"\n [thyValue]=\"item.value\"\n >{{ item.label }}\n </thy-progress-bar>\n }\n } @else {\n @let value = thyValue();\n @if (value) {\n <thy-progress-bar\n [thyType]=\"thyType()\"\n [ngClass]=\"{ 'cursor-pointer': thyTips()}\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyValue]=\"value\">\n </thy-progress-bar>\n }\n }\n </div>\n @if (thyShape()=== 'strip') {\n <div class=\"thy-progress-strip-text\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n </div>\n }\n } @else {\n @let value = thyValue();\n <thy-progress-circle\n [thyType]=\"thyType()\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyValue]=\"value\"\n [thySize]=\"thySize()\"\n [thyMax]=\"max()\"\n [thyGapDegree]=\"thyGapDegree()\"\n [thyGapPosition]=\"thyGapPosition()\"\n [thyStrokeWidth]=\"thyStrokeWidth()\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template\n ></thy-progress-circle>\n }\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyProgressStrip, selector: "thy-progress-bar", inputs: ["thyTips", "thyType", "thyValue", "thyColor"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyProgressCircle, selector: "thy-progress-circle", inputs: ["thyType", "thySize", "thyValue", "thyMax", "thyTips", "thyShape", "thyGapDegree", "thyGapPosition", "thyStrokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
259
+ ], viewQueries: [{ propertyName: "bars", predicate: ThyProgressStrip, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container>\n @if (thyShape() === 'strip') {\n <div class=\"thy-progress-strip-outer\">\n @if (isStacked()) {\n @for (item of thyValue(); track $index) {\n <thy-progress-bar\n [thyType]=\"item.type\"\n [ngClass]=\"{ 'cursor-pointer': item.tips || thyTips() }\"\n [thyTooltip]=\"item.tips || thyTips()\"\n [thyTooltipTemplateContext]=\"item\"\n [thyTooltipDisabled]=\"!thyTips() && !item.tips\"\n [thyColor]=\"item.color\"\n [thyValue]=\"item.value\"\n >{{ item.label }}\n </thy-progress-bar>\n }\n } @else {\n @let value = thyValue();\n @if (value) {\n <thy-progress-bar\n [thyType]=\"thyType()\"\n [ngClass]=\"{ 'cursor-pointer': thyTips() }\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyValue]=\"value\">\n </thy-progress-bar>\n }\n }\n </div>\n @if (thyShape() === 'strip') {\n <div class=\"thy-progress-strip-text\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n </div>\n }\n } @else {\n @let value = thyValue();\n <thy-progress-circle\n [thyType]=\"thyType()\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyValue]=\"value\"\n [thySize]=\"thySize()\"\n [thyMax]=\"max()\"\n [thyGapDegree]=\"thyGapDegree()\"\n [thyGapPosition]=\"thyGapPosition()\"\n [thyStrokeWidth]=\"thyStrokeWidth()\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template\n ></thy-progress-circle>\n }\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyProgressStrip, selector: "thy-progress-bar", inputs: ["thyTips", "thyType", "thyValue", "thyColor"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ThyTooltipDirective, selector: "[thyTooltip],[thy-tooltip]", inputs: ["thyTooltip", "thyTooltipPlacement", "thyTooltipClass", "thyTooltipShowDelay", "thyTooltipHideDelay", "thyTooltipTrigger", "thyTooltipDisabled", "thyTooltipTemplateContext", "thyTooltipOffset", "thyTooltipPin"], exportAs: ["thyTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyProgressCircle, selector: "thy-progress-circle", inputs: ["thyType", "thySize", "thyValue", "thyMax", "thyTips", "thyShape", "thyGapDegree", "thyGapPosition", "thyStrokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
260
260
  }
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyProgress, decorators: [{
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProgress, decorators: [{
262
262
  type: Component,
263
263
  args: [{ selector: 'thy-progress', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
264
264
  {
@@ -271,15 +271,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
271
271
  '[class.thy-progress-circle]': `thyShape() === 'circle'`,
272
272
  '[class.progress-stacked]': 'isStacked()',
273
273
  '[attr.max]': 'max()'
274
- }, imports: [ThyProgressStrip, NgClass, ThyTooltipDirective, NgTemplateOutlet, ThyProgressCircle], template: "<ng-container>\n @if (thyShape()=== 'strip') {\n <div class=\"thy-progress-strip-outer\">\n @if (isStacked()) {\n @for (item of thyValue(); track $index) {\n <thy-progress-bar\n [thyType]=\"item.type\"\n [ngClass]=\"{ 'cursor-pointer': item.tips || thyTips()}\"\n [thyTooltip]=\"item.tips || thyTips()\"\n [thyTooltipTemplateContext]=\"item\"\n [thyTooltipDisabled]=\"!thyTips() && !item.tips\"\n [thyColor]=\"item.color\"\n [thyValue]=\"item.value\"\n >{{ item.label }}\n </thy-progress-bar>\n }\n } @else {\n @let value = thyValue();\n @if (value) {\n <thy-progress-bar\n [thyType]=\"thyType()\"\n [ngClass]=\"{ 'cursor-pointer': thyTips()}\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyValue]=\"value\">\n </thy-progress-bar>\n }\n }\n </div>\n @if (thyShape()=== 'strip') {\n <div class=\"thy-progress-strip-text\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n </div>\n }\n } @else {\n @let value = thyValue();\n <thy-progress-circle\n [thyType]=\"thyType()\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyValue]=\"value\"\n [thySize]=\"thySize()\"\n [thyMax]=\"max()\"\n [thyGapDegree]=\"thyGapDegree()\"\n [thyGapPosition]=\"thyGapPosition()\"\n [thyStrokeWidth]=\"thyStrokeWidth()\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template\n ></thy-progress-circle>\n }\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n" }]
274
+ }, imports: [ThyProgressStrip, NgClass, ThyTooltipDirective, NgTemplateOutlet, ThyProgressCircle], template: "<ng-container>\n @if (thyShape() === 'strip') {\n <div class=\"thy-progress-strip-outer\">\n @if (isStacked()) {\n @for (item of thyValue(); track $index) {\n <thy-progress-bar\n [thyType]=\"item.type\"\n [ngClass]=\"{ 'cursor-pointer': item.tips || thyTips() }\"\n [thyTooltip]=\"item.tips || thyTips()\"\n [thyTooltipTemplateContext]=\"item\"\n [thyTooltipDisabled]=\"!thyTips() && !item.tips\"\n [thyColor]=\"item.color\"\n [thyValue]=\"item.value\"\n >{{ item.label }}\n </thy-progress-bar>\n }\n } @else {\n @let value = thyValue();\n @if (value) {\n <thy-progress-bar\n [thyType]=\"thyType()\"\n [ngClass]=\"{ 'cursor-pointer': thyTips() }\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyValue]=\"value\">\n </thy-progress-bar>\n }\n }\n </div>\n @if (thyShape() === 'strip') {\n <div class=\"thy-progress-strip-text\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n </div>\n }\n } @else {\n @let value = thyValue();\n <thy-progress-circle\n [thyType]=\"thyType()\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyValue]=\"value\"\n [thySize]=\"thySize()\"\n [thyMax]=\"max()\"\n [thyGapDegree]=\"thyGapDegree()\"\n [thyGapPosition]=\"thyGapPosition()\"\n [thyStrokeWidth]=\"thyStrokeWidth()\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template\n ></thy-progress-circle>\n }\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n" }]
275
275
  }], ctorParameters: () => [], propDecorators: { bars: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => ThyProgressStrip), { isSignal: true }] }], thyType: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyType", required: false }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyValue", required: false }] }], thyMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyMax", required: false }] }], thyTips: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyTips", required: false }] }], thyShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShape", required: false }] }], thyGapDegree: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyGapDegree", required: false }] }], thyGapPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyGapPosition", required: false }] }], thyStrokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyStrokeWidth", required: false }] }] } });
276
276
 
277
277
  class ThyProgressModule {
278
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
279
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.14", ngImport: i0, type: ThyProgressModule, imports: [CommonModule, ThyTooltipModule, ThyProgress, ThyProgressStrip, ThyProgressCircle], exports: [ThyProgress] }); }
280
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyProgressModule, imports: [CommonModule, ThyTooltipModule] }); }
278
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
279
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyProgressModule, imports: [CommonModule, ThyTooltipModule, ThyProgress, ThyProgressStrip, ThyProgressCircle], exports: [ThyProgress] }); }
280
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProgressModule, imports: [CommonModule, ThyTooltipModule] }); }
281
281
  }
282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: ThyProgressModule, decorators: [{
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyProgressModule, decorators: [{
283
283
  type: NgModule,
284
284
  args: [{
285
285
  imports: [CommonModule, ThyTooltipModule, ThyProgress, ThyProgressStrip, ThyProgressCircle],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-progress.mjs","sources":["../../../src/progress/progress-circle.component.ts","../../../src/progress/progress-circle.component.html","../../../src/progress/progress-strip.component.ts","../../../src/progress/progress-strip.component.html","../../../src/progress/progress.component.ts","../../../src/progress/progress.component.html","../../../src/progress/progress.module.ts","../../../src/progress/ngx-tethys-progress.ts"],"sourcesContent":["import { isNumber, isString } from 'ngx-tethys/util';\nimport { Component, TemplateRef, ViewEncapsulation, numberAttribute, input, effect, computed } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyProgressGapPositionType, ThyProgressShapeType, ThyProgressStackedValue, ThyProgressType } from './interfaces';\nimport { NgClass, NgStyle } from '@angular/common';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-progress-circle',\n templateUrl: './progress-circle.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'progress-circle'\n },\n imports: [ThyTooltipDirective, NgClass, NgStyle]\n})\nexport class ThyProgressCircle {\n private hostRenderer = useHostRenderer();\n\n readonly thyType = input<ThyProgressType>(undefined);\n\n readonly thySize = input<string | number>(undefined);\n\n readonly thyValue = input<number | ThyProgressStackedValue[]>(undefined);\n\n readonly thyMax = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly thyTips = input<string | TemplateRef<unknown>>(undefined);\n\n readonly thyShape = input<ThyProgressShapeType>('strip');\n\n readonly thyGapDegree = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly thyGapPosition = input<ThyProgressGapPositionType>('top');\n\n readonly thyStrokeWidth = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly strokeWidth = computed(() => {\n return this.thyStrokeWidth() || 6;\n });\n\n readonly progressSize = computed(() => {\n const size = this.thySize();\n if (size && isString(size)) {\n return `progress-circle-inner-${size}`;\n }\n return '';\n });\n\n readonly width = computed(() => {\n const size = this.thySize();\n if (size && isNumber(size)) {\n return size;\n }\n return 112;\n });\n\n readonly circle = computed(() => {\n let values: ThyProgressStackedValue[] = [];\n\n const thyValue = this.thyValue();\n if (Array.isArray(thyValue)) {\n let totalValue = 0;\n values = (thyValue as ThyProgressStackedValue[]).map((item, index) => {\n totalValue += item.value;\n const currentValue = +((totalValue / this.thyMax()) * 100).toFixed(2);\n return { ...item, value: currentValue };\n });\n } else {\n values = [{ value: thyValue }];\n }\n\n const radius = 50 - this.strokeWidth() / 2;\n const gapPosition = this.thyGapPosition() || 'top';\n const len = Math.PI * 2 * radius;\n const gapDegree = this.thyGapDegree() || 0;\n\n let beginPositionX = 0;\n let beginPositionY = -radius;\n let endPositionX = 0;\n let endPositionY = radius * -2;\n\n switch (gapPosition) {\n case 'left':\n beginPositionX = -radius;\n beginPositionY = 0;\n endPositionX = radius * 2;\n endPositionY = 0;\n break;\n case 'right':\n beginPositionX = radius;\n beginPositionY = 0;\n endPositionX = radius * -2;\n endPositionY = 0;\n break;\n case 'bottom':\n beginPositionY = radius;\n endPositionY = radius * 2;\n break;\n default:\n }\n\n const pathString = `M 50,50 m ${beginPositionX},${beginPositionY} a ${radius},${radius} 0 1 1 ${endPositionX},${-endPositionY} a ${radius},${radius} 0 1 1 ${-endPositionX},${endPositionY}`;\n\n const trailPathStyle = {\n strokeDasharray: `${len - gapDegree}px ${len}px`,\n strokeDashoffset: `-${gapDegree / 2}px`,\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s'\n };\n\n const progressCirclePath = values\n .map((item, index) => {\n return {\n stroke: '',\n value: +item.value,\n className: item.type ? `progress-circle-path-${item.type}` : null,\n strokePathStyle: {\n stroke: item?.color ? item?.color : null,\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s',\n strokeDasharray: `${((item.value || 0) / 100) * (len - gapDegree)}px ${len}px`,\n strokeDashoffset: `-${gapDegree / 2}px`\n }\n };\n })\n .reverse();\n return { pathString, trailPathStyle, progressCirclePath };\n });\n\n constructor() {\n effect(() => {\n const type = this.thyType();\n this.hostRenderer.updateClass(type ? [`progress-circle-${type}`] : []);\n });\n }\n}\n","@let tips = thyTips();\n@let circleAttr = circle();\n<div\n [thyTooltip]=\"tips\"\n [thyTooltipDisabled]=\"!tips\"\n [style.width.px]=\"width()\"\n [style.height.px]=\"width()\"\n [ngClass]=\"progressSize()\"\n class=\"progress-circle-inner\">\n <svg class=\"progress-circle-svg\" viewBox=\"0 0 100 100\">\n <path\n class=\"progress-circle-trail\"\n fill-opacity=\"0\"\n [attr.d]=\"circleAttr.pathString\"\n [ngStyle]=\"circleAttr.trailPathStyle\"\n [attr.stroke-width]=\"strokeWidth()\"></path>\n @for (p of circleAttr.progressCirclePath; track $index) {\n <path\n class=\"progress-circle-path\"\n [ngClass]=\"p.className\"\n fill-opacity=\"0\"\n [attr.d]=\"circleAttr.pathString\"\n [attr.stroke-linecap]=\"'round'\"\n [attr.stroke]=\"p.stroke\"\n [attr.stroke-width]=\"p.value ? strokeWidth() : 0\"\n [ngStyle]=\"p.strokePathStyle\"></path>\n }\n </svg>\n <span class=\"progress-circle-content\">\n <ng-content></ng-content>\n </span>\n</div>\n","import {\n Component,\n InjectionToken,\n computed,\n TemplateRef,\n ViewEncapsulation,\n numberAttribute,\n inject,\n input,\n effect,\n Signal\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyProgressType } from './interfaces';\nimport { NgStyle } from '@angular/common';\n\nexport interface ThyParentProgress {\n readonly max: Signal<number>;\n readonly bars: Signal<readonly ThyProgressStrip[]>;\n}\nexport const THY_PROGRESS_COMPONENT = new InjectionToken<ThyParentProgress>('THY_PROGRESS_COMPONENT');\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-progress-bar',\n templateUrl: './progress-strip.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [NgStyle],\n host: {\n class: 'progress-bar',\n '[style.width.%]': 'percent()'\n }\n})\nexport class ThyProgressStrip {\n private progress = inject(THY_PROGRESS_COMPONENT);\n\n private hostRenderer = useHostRenderer();\n\n readonly thyTips = input<string | TemplateRef<HTMLElement>>(undefined);\n\n readonly thyType = input<ThyProgressType>();\n\n readonly thyValue = input(0, {\n transform: numberAttribute\n });\n\n readonly thyColor = input<string>();\n\n protected readonly percent = computed(() => {\n const value = this.thyValue();\n if (!value && value !== 0) {\n return 0;\n }\n return +((value / this.progress.max()) * 100).toFixed(2);\n });\n\n constructor() {\n effect(() => {\n const type = this.thyType();\n this.hostRenderer.updateClass(type ? [`progress-bar-${type}`] : []);\n });\n }\n}\n","<div class=\"progress-bar-inner\" [ngStyle]=\"{ 'background-color': thyColor() }\">\n <ng-content></ng-content>\n</div>\n","import { isNumber } from 'ngx-tethys/util';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n TemplateRef,\n ViewEncapsulation,\n numberAttribute,\n input,\n viewChildren,\n effect\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyProgressGapPositionType, ThyProgressShapeType, ThyProgressStackedValue, ThyProgressType } from './interfaces';\nimport { THY_PROGRESS_COMPONENT, ThyParentProgress, ThyProgressStrip } from './progress-strip.component';\nimport { ThyProgressCircle } from './progress-circle.component';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\n/**\n * 进度条组件\n * @name thy-progress\n */\n@Component({\n selector: 'thy-progress',\n templateUrl: './progress.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: THY_PROGRESS_COMPONENT,\n useExisting: ThyProgress\n }\n ],\n host: {\n class: `thy-progress progress`,\n '[class.thy-progress-strip]': `thyShape() === 'strip'`,\n '[class.thy-progress-circle]': `thyShape() === 'circle'`,\n '[class.progress-stacked]': 'isStacked()',\n '[attr.max]': 'max()'\n },\n imports: [ThyProgressStrip, NgClass, ThyTooltipDirective, NgTemplateOutlet, ThyProgressCircle]\n})\nexport class ThyProgress implements ThyParentProgress {\n private hostRenderer = useHostRenderer();\n\n readonly barsTotalValue = computed(() => {\n const value = this.thyValue();\n if (Array.isArray(value)) {\n return value.reduce((total, item) => {\n return total + item.value;\n }, 0);\n }\n return undefined;\n });\n\n readonly max = computed(() => {\n const setMax = this.thyMax();\n const barsTotalValue = this.barsTotalValue();\n let result: number = 100;\n if (isNumber(setMax) && setMax > 0) {\n result = setMax;\n } else if (isNumber(barsTotalValue)) {\n result = barsTotalValue;\n }\n if (result < barsTotalValue) {\n result = barsTotalValue;\n }\n return result;\n });\n\n readonly isStacked = computed(() => {\n return Array.isArray(this.thyValue());\n });\n\n readonly bars = viewChildren(ThyProgressStrip);\n\n /**\n * 进度条类型: `primary` | `success` | `info` | `warning` | `danger`\n */\n readonly thyType = input<ThyProgressType>('primary');\n\n /**\n * 进度条大小\n * @type xs | sm | md\n * @default md\n */\n readonly thySize = input<string | number>('md');\n\n /**\n * 进度值,传入数字时显示百分比 = value / max * 100,当传入数组时显示多个 bar,stacked 模式的进度条\n * @type number | ThyProgressStackedValue[]\n */\n readonly thyValue = input<number | ThyProgressStackedValue[], number | ThyProgressStackedValue[]>(undefined, {\n transform: (value: number | ThyProgressStackedValue[]) => {\n if (Array.isArray(value)) {\n return [...value].filter(item => item.value !== 0);\n } else {\n return value;\n }\n }\n });\n\n /**\n * 最大值,主要计算百分比进度的分母使用,当 thyValue 传入数组时,自动累加数组中的 value 之和为 max\n */\n readonly thyMax = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 鼠标移入进度条时显示的提示文案或者模板\n */\n readonly thyTips = input<string | TemplateRef<unknown>>(undefined);\n\n /**\n * 进度形状\n * @type strip | circle\n */\n readonly thyShape = input<ThyProgressShapeType>('strip');\n\n /**\n * 圆形进度条缺口角度,可取值 0 ~ 360\n */\n readonly thyGapDegree = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 圆形进度条缺口位置\n * @type top | bottom | left | right\n */\n readonly thyGapPosition = input<ThyProgressGapPositionType>('top');\n\n /**\n * \t圆形进度条线的宽度\n */\n readonly thyStrokeWidth = input<number, unknown>(undefined, { transform: numberAttribute });\n\n constructor() {\n effect(() => {\n const size = this.thySize();\n this.hostRenderer.updateClass(size ? [`progress-${size}`] : []);\n });\n }\n}\n","<ng-container>\n @if (thyShape()=== 'strip') {\n <div class=\"thy-progress-strip-outer\">\n @if (isStacked()) {\n @for (item of thyValue(); track $index) {\n <thy-progress-bar\n [thyType]=\"item.type\"\n [ngClass]=\"{ 'cursor-pointer': item.tips || thyTips()}\"\n [thyTooltip]=\"item.tips || thyTips()\"\n [thyTooltipTemplateContext]=\"item\"\n [thyTooltipDisabled]=\"!thyTips() && !item.tips\"\n [thyColor]=\"item.color\"\n [thyValue]=\"item.value\"\n >{{ item.label }}\n </thy-progress-bar>\n }\n } @else {\n @let value = thyValue();\n @if (value) {\n <thy-progress-bar\n [thyType]=\"thyType()\"\n [ngClass]=\"{ 'cursor-pointer': thyTips()}\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyValue]=\"value\">\n </thy-progress-bar>\n }\n }\n </div>\n @if (thyShape()=== 'strip') {\n <div class=\"thy-progress-strip-text\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n </div>\n }\n } @else {\n @let value = thyValue();\n <thy-progress-circle\n [thyType]=\"thyType()\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyValue]=\"value\"\n [thySize]=\"thySize()\"\n [thyMax]=\"max()\"\n [thyGapDegree]=\"thyGapDegree()\"\n [thyGapPosition]=\"thyGapPosition()\"\n [thyStrokeWidth]=\"thyStrokeWidth()\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template\n ></thy-progress-circle>\n }\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyProgressCircle } from './progress-circle.component';\nimport { ThyProgressStrip } from './progress-strip.component';\nimport { ThyProgress } from './progress.component';\n\n@NgModule({\n imports: [CommonModule, ThyTooltipModule, ThyProgress, ThyProgressStrip, ThyProgressCircle],\n exports: [ThyProgress]\n})\nexport class ThyProgressModule {}\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-progress.mjs","sources":["../../../src/progress/progress-circle.component.ts","../../../src/progress/progress-circle.component.html","../../../src/progress/progress-strip.component.ts","../../../src/progress/progress-strip.component.html","../../../src/progress/progress.component.ts","../../../src/progress/progress.component.html","../../../src/progress/progress.module.ts","../../../src/progress/ngx-tethys-progress.ts"],"sourcesContent":["import { isNumber, isString } from 'ngx-tethys/util';\nimport { Component, TemplateRef, ViewEncapsulation, numberAttribute, input, effect, computed } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyProgressGapPositionType, ThyProgressShapeType, ThyProgressStackedValue, ThyProgressType } from './interfaces';\nimport { NgClass, NgStyle } from '@angular/common';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-progress-circle',\n templateUrl: './progress-circle.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'progress-circle'\n },\n imports: [ThyTooltipDirective, NgClass, NgStyle]\n})\nexport class ThyProgressCircle {\n private hostRenderer = useHostRenderer();\n\n readonly thyType = input<ThyProgressType | undefined>(undefined);\n\n readonly thySize = input<string | number | undefined>(undefined);\n\n readonly thyValue = input<number | ThyProgressStackedValue[] | undefined>(undefined);\n\n readonly thyMax = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly thyTips = input<string | TemplateRef<unknown> | undefined>(undefined);\n\n readonly thyShape = input<ThyProgressShapeType>('strip');\n\n readonly thyGapDegree = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly thyGapPosition = input<ThyProgressGapPositionType>('top');\n\n readonly thyStrokeWidth = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly strokeWidth = computed(() => {\n return this.thyStrokeWidth() || 6;\n });\n\n readonly progressSize = computed(() => {\n const size = this.thySize();\n if (size && isString(size)) {\n return `progress-circle-inner-${size}`;\n }\n return '';\n });\n\n readonly width = computed(() => {\n const size = this.thySize();\n if (size && isNumber(size)) {\n return size;\n }\n return 112;\n });\n\n readonly circle = computed(() => {\n let values: ThyProgressStackedValue[] = [];\n\n const thyValue = this.thyValue();\n if (Array.isArray(thyValue)) {\n let totalValue = 0;\n values = (thyValue as ThyProgressStackedValue[]).map((item, index) => {\n totalValue += item.value;\n const currentValue = +((totalValue / this.thyMax()!) * 100).toFixed(2);\n return { ...item, value: currentValue };\n });\n } else {\n values = [{ value: thyValue! }];\n }\n\n const radius = 50 - this.strokeWidth() / 2;\n const gapPosition = this.thyGapPosition() || 'top';\n const len = Math.PI * 2 * radius;\n const gapDegree = this.thyGapDegree() || 0;\n\n let beginPositionX = 0;\n let beginPositionY = -radius;\n let endPositionX = 0;\n let endPositionY = radius * -2;\n\n switch (gapPosition) {\n case 'left':\n beginPositionX = -radius;\n beginPositionY = 0;\n endPositionX = radius * 2;\n endPositionY = 0;\n break;\n case 'right':\n beginPositionX = radius;\n beginPositionY = 0;\n endPositionX = radius * -2;\n endPositionY = 0;\n break;\n case 'bottom':\n beginPositionY = radius;\n endPositionY = radius * 2;\n break;\n default:\n }\n\n const pathString = `M 50,50 m ${beginPositionX},${beginPositionY} a ${radius},${radius} 0 1 1 ${endPositionX},${-endPositionY} a ${radius},${radius} 0 1 1 ${-endPositionX},${endPositionY}`;\n\n const trailPathStyle = {\n strokeDasharray: `${len - gapDegree}px ${len}px`,\n strokeDashoffset: `-${gapDegree / 2}px`,\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s'\n };\n\n const progressCirclePath = values\n .map((item, index) => {\n return {\n stroke: '',\n value: +item.value,\n className: item.type ? `progress-circle-path-${item.type}` : null,\n strokePathStyle: {\n stroke: item?.color ? item?.color : null,\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s',\n strokeDasharray: `${((item.value || 0) / 100) * (len - gapDegree)}px ${len}px`,\n strokeDashoffset: `-${gapDegree / 2}px`\n }\n };\n })\n .reverse();\n return { pathString, trailPathStyle, progressCirclePath };\n });\n\n constructor() {\n effect(() => {\n const type = this.thyType();\n this.hostRenderer.updateClass(type ? [`progress-circle-${type}`] : []);\n });\n }\n}\n","@let tips = thyTips();\n@let circleAttr = circle();\n<div\n [thyTooltip]=\"tips\"\n [thyTooltipDisabled]=\"!tips\"\n [style.width.px]=\"width()\"\n [style.height.px]=\"width()\"\n [ngClass]=\"progressSize()\"\n class=\"progress-circle-inner\">\n <svg class=\"progress-circle-svg\" viewBox=\"0 0 100 100\">\n <path\n class=\"progress-circle-trail\"\n fill-opacity=\"0\"\n [attr.d]=\"circleAttr.pathString\"\n [ngStyle]=\"circleAttr.trailPathStyle\"\n [attr.stroke-width]=\"strokeWidth()\"></path>\n @for (p of circleAttr.progressCirclePath; track $index) {\n <path\n class=\"progress-circle-path\"\n [ngClass]=\"p.className\"\n fill-opacity=\"0\"\n [attr.d]=\"circleAttr.pathString\"\n [attr.stroke-linecap]=\"'round'\"\n [attr.stroke]=\"p.stroke\"\n [attr.stroke-width]=\"p.value ? strokeWidth() : 0\"\n [ngStyle]=\"p.strokePathStyle\"></path>\n }\n </svg>\n <span class=\"progress-circle-content\">\n <ng-content></ng-content>\n </span>\n</div>\n","import {\n Component,\n InjectionToken,\n computed,\n TemplateRef,\n ViewEncapsulation,\n numberAttribute,\n inject,\n input,\n effect,\n Signal\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyProgressType } from './interfaces';\nimport { NgStyle } from '@angular/common';\n\nexport interface ThyParentProgress {\n readonly max: Signal<number>;\n readonly bars: Signal<readonly ThyProgressStrip[]>;\n}\nexport const THY_PROGRESS_COMPONENT = new InjectionToken<ThyParentProgress>('THY_PROGRESS_COMPONENT');\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-progress-bar',\n templateUrl: './progress-strip.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [NgStyle],\n host: {\n class: 'progress-bar',\n '[style.width.%]': 'percent()'\n }\n})\nexport class ThyProgressStrip {\n private progress = inject(THY_PROGRESS_COMPONENT);\n\n private hostRenderer = useHostRenderer();\n\n readonly thyTips = input<string | TemplateRef<HTMLElement> | undefined>(undefined);\n\n readonly thyType = input<ThyProgressType>();\n\n readonly thyValue = input(0, {\n transform: numberAttribute\n });\n\n readonly thyColor = input<string>();\n\n protected readonly percent = computed(() => {\n const value = this.thyValue();\n if (!value && value !== 0) {\n return 0;\n }\n return +((value / this.progress.max()) * 100).toFixed(2);\n });\n\n constructor() {\n effect(() => {\n const type = this.thyType();\n this.hostRenderer.updateClass(type ? [`progress-bar-${type}`] : []);\n });\n }\n}\n","<div class=\"progress-bar-inner\" [ngStyle]=\"{ 'background-color': thyColor() }\">\n <ng-content></ng-content>\n</div>\n","import { isNumber, isUndefinedOrNull } from 'ngx-tethys/util';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n TemplateRef,\n ViewEncapsulation,\n numberAttribute,\n input,\n viewChildren,\n effect\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyProgressGapPositionType, ThyProgressShapeType, ThyProgressStackedValue, ThyProgressType } from './interfaces';\nimport { THY_PROGRESS_COMPONENT, ThyParentProgress, ThyProgressStrip } from './progress-strip.component';\nimport { ThyProgressCircle } from './progress-circle.component';\nimport { ThyTooltipDirective } from 'ngx-tethys/tooltip';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\n\n/**\n * 进度条组件\n * @name thy-progress\n */\n@Component({\n selector: 'thy-progress',\n templateUrl: './progress.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: THY_PROGRESS_COMPONENT,\n useExisting: ThyProgress\n }\n ],\n host: {\n class: `thy-progress progress`,\n '[class.thy-progress-strip]': `thyShape() === 'strip'`,\n '[class.thy-progress-circle]': `thyShape() === 'circle'`,\n '[class.progress-stacked]': 'isStacked()',\n '[attr.max]': 'max()'\n },\n imports: [ThyProgressStrip, NgClass, ThyTooltipDirective, NgTemplateOutlet, ThyProgressCircle]\n})\nexport class ThyProgress implements ThyParentProgress {\n private hostRenderer = useHostRenderer();\n\n readonly barsTotalValue = computed(() => {\n const value = this.thyValue();\n if (Array.isArray(value)) {\n return value.reduce((total, item) => {\n return total + item.value;\n }, 0);\n }\n return undefined;\n });\n\n readonly max = computed(() => {\n const setMax = this.thyMax();\n const barsTotalValue = this.barsTotalValue();\n let result = 100;\n if (isNumber(setMax) && setMax > 0) {\n result = setMax;\n } else if (isNumber(barsTotalValue)) {\n result = barsTotalValue;\n }\n if (!isUndefinedOrNull(barsTotalValue) && result < barsTotalValue) {\n result = barsTotalValue;\n }\n return result;\n });\n\n readonly isStacked = computed(() => {\n return Array.isArray(this.thyValue());\n });\n\n readonly bars = viewChildren(ThyProgressStrip);\n\n /**\n * 进度条类型: `primary` | `success` | `info` | `warning` | `danger`\n */\n readonly thyType = input<ThyProgressType>('primary');\n\n /**\n * 进度条大小\n * @type xs | sm | md\n * @default md\n */\n readonly thySize = input<string | number>('md');\n\n /**\n * 进度值,传入数字时显示百分比 = value / max * 100,当传入数组时显示多个 bar,stacked 模式的进度条\n * @type number | ThyProgressStackedValue[]\n */\n readonly thyValue = input<number | ThyProgressStackedValue[], number | ThyProgressStackedValue[]>(undefined, {\n transform: (value: number | ThyProgressStackedValue[]) => {\n if (Array.isArray(value)) {\n return [...value].filter(item => item.value !== 0);\n } else {\n return value;\n }\n }\n });\n\n /**\n * 最大值,主要计算百分比进度的分母使用,当 thyValue 传入数组时,自动累加数组中的 value 之和为 max\n */\n readonly thyMax = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 鼠标移入进度条时显示的提示文案或者模板\n */\n readonly thyTips = input<string | TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * 进度形状\n * @type strip | circle\n */\n readonly thyShape = input<ThyProgressShapeType>('strip');\n\n /**\n * 圆形进度条缺口角度,可取值 0 ~ 360\n */\n readonly thyGapDegree = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 圆形进度条缺口位置\n * @type top | bottom | left | right\n */\n readonly thyGapPosition = input<ThyProgressGapPositionType>('top');\n\n /**\n * \t圆形进度条线的宽度\n */\n readonly thyStrokeWidth = input<number, unknown>(undefined, { transform: numberAttribute });\n\n constructor() {\n effect(() => {\n const size = this.thySize();\n this.hostRenderer.updateClass(size ? [`progress-${size}`] : []);\n });\n }\n}\n","<ng-container>\n @if (thyShape() === 'strip') {\n <div class=\"thy-progress-strip-outer\">\n @if (isStacked()) {\n @for (item of thyValue(); track $index) {\n <thy-progress-bar\n [thyType]=\"item.type\"\n [ngClass]=\"{ 'cursor-pointer': item.tips || thyTips() }\"\n [thyTooltip]=\"item.tips || thyTips()\"\n [thyTooltipTemplateContext]=\"item\"\n [thyTooltipDisabled]=\"!thyTips() && !item.tips\"\n [thyColor]=\"item.color\"\n [thyValue]=\"item.value\"\n >{{ item.label }}\n </thy-progress-bar>\n }\n } @else {\n @let value = thyValue();\n @if (value) {\n <thy-progress-bar\n [thyType]=\"thyType()\"\n [ngClass]=\"{ 'cursor-pointer': thyTips() }\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyValue]=\"value\">\n </thy-progress-bar>\n }\n }\n </div>\n @if (thyShape() === 'strip') {\n <div class=\"thy-progress-strip-text\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\n </div>\n }\n } @else {\n @let value = thyValue();\n <thy-progress-circle\n [thyType]=\"thyType()\"\n [thyTooltip]=\"thyTips()\"\n [thyTooltipDisabled]=\"!thyTips()\"\n [thyTooltipTemplateContext]=\"value\"\n [thyValue]=\"value\"\n [thySize]=\"thySize()\"\n [thyMax]=\"max()\"\n [thyGapDegree]=\"thyGapDegree()\"\n [thyGapPosition]=\"thyGapPosition()\"\n [thyStrokeWidth]=\"thyStrokeWidth()\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template\n ></thy-progress-circle>\n }\n</ng-container>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import { ThyTooltipModule } from 'ngx-tethys/tooltip';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyProgressCircle } from './progress-circle.component';\nimport { ThyProgressStrip } from './progress-strip.component';\nimport { ThyProgress } from './progress.component';\n\n@NgModule({\n imports: [CommonModule, ThyTooltipModule, ThyProgress, ThyProgressStrip, ThyProgressCircle],\n exports: [ThyProgress]\n})\nexport class ThyProgressModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}