ngx-tethys 18.0.0 → 18.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (614) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/action/styles/action.scss +1 -1
  3. package/action/styles/mixin.scss +8 -3
  4. package/alert/styles/mixin.scss +3 -10
  5. package/back-top/examples/custom/custom.scss +3 -1
  6. package/badge/examples/basic/basic.component.scss +3 -1
  7. package/badge/examples/custom-color/custom-color.component.scss +3 -1
  8. package/badge/examples/overflow/overflow.component.scss +3 -1
  9. package/badge/examples/state-point/state-point.component.scss +3 -1
  10. package/badge/examples/type/type.component.scss +3 -1
  11. package/badge/styles/badge.scss +1 -1
  12. package/badge/styles/mixin.scss +2 -16
  13. package/button/styles/button.scss +8 -7
  14. package/button/styles/mixin.scss +22 -15
  15. package/carousel/styles/variables.scss +1 -1
  16. package/cascader/cascader.service.d.ts +1 -1
  17. package/cascader/styles/cascader.scss +3 -6
  18. package/collapse/examples/custom/custom.component.scss +3 -1
  19. package/color-picker/parts/inputs/inputs.component.d.ts +1 -0
  20. package/color-picker/styles/inputs.scss +8 -1
  21. package/color-picker/styles/saturation.scss +3 -3
  22. package/core/debounce-time.d.ts +8 -0
  23. package/core/index.d.ts +1 -0
  24. package/date-picker/styles/decade-panel.scss +1 -1
  25. package/date-picker/styles/mixin.scss +1 -1
  26. package/date-picker/styles/picker.scss +3 -0
  27. package/date-picker/styles/variables.scss +1 -4
  28. package/date-picker/styles/year-panel.scss +1 -1
  29. package/drag-drop/examples/tree-drag/tree-drag.component.scss +0 -1
  30. package/dropdown/styles/dropdown.scss +1 -1
  31. package/esm2022/action/action.component.mjs +4 -4
  32. package/esm2022/action/action.module.mjs +4 -4
  33. package/esm2022/action/actions.component.mjs +3 -3
  34. package/esm2022/affix/affix.component.mjs +4 -4
  35. package/esm2022/affix/affix.module.mjs +4 -4
  36. package/esm2022/alert/alert.component.mjs +3 -3
  37. package/esm2022/alert/alert.directive.mjs +3 -3
  38. package/esm2022/alert/alert.module.mjs +4 -4
  39. package/esm2022/anchor/anchor-link.component.mjs +4 -4
  40. package/esm2022/anchor/anchor.component.mjs +4 -4
  41. package/esm2022/anchor/anchor.module.mjs +4 -4
  42. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +3 -3
  43. package/esm2022/arrow-switcher/module.mjs +4 -4
  44. package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
  45. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +3 -3
  46. package/esm2022/autocomplete/module.mjs +4 -4
  47. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +3 -3
  48. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +3 -3
  49. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +3 -3
  50. package/esm2022/avatar/avatar.component.mjs +4 -4
  51. package/esm2022/avatar/avatar.module.mjs +4 -4
  52. package/esm2022/avatar/avatar.pipe.mjs +9 -9
  53. package/esm2022/avatar/avatar.service.mjs +3 -3
  54. package/esm2022/back-top/back-top.component.mjs +3 -3
  55. package/esm2022/back-top/back-top.module.mjs +4 -4
  56. package/esm2022/badge/badge.component.mjs +3 -3
  57. package/esm2022/badge/badge.module.mjs +4 -4
  58. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +4 -4
  59. package/esm2022/breadcrumb/breadcrumb.component.mjs +3 -3
  60. package/esm2022/breadcrumb/module.mjs +4 -4
  61. package/esm2022/button/button-group.component.mjs +3 -3
  62. package/esm2022/button/button-icon.component.mjs +3 -3
  63. package/esm2022/button/button.component.mjs +4 -4
  64. package/esm2022/button/button.module.mjs +4 -4
  65. package/esm2022/calendar/calendar-cells.mjs +6 -6
  66. package/esm2022/calendar/calendar-header.component.mjs +3 -3
  67. package/esm2022/calendar/calendar.component.mjs +3 -3
  68. package/esm2022/calendar/module.mjs +4 -4
  69. package/esm2022/card/card.component.mjs +3 -3
  70. package/esm2022/card/card.module.mjs +4 -4
  71. package/esm2022/card/content.component.mjs +3 -3
  72. package/esm2022/card/header.component.mjs +3 -3
  73. package/esm2022/carousel/carousel-item.directive.mjs +4 -4
  74. package/esm2022/carousel/carousel.component.mjs +7 -7
  75. package/esm2022/carousel/carousel.service.mjs +4 -4
  76. package/esm2022/carousel/module.mjs +4 -4
  77. package/esm2022/cascader/cascader-li.component.mjs +3 -3
  78. package/esm2022/cascader/cascader-search-option.component.mjs +6 -6
  79. package/esm2022/cascader/cascader.component.mjs +7 -7
  80. package/esm2022/cascader/cascader.service.mjs +9 -21
  81. package/esm2022/cascader/module.mjs +4 -4
  82. package/esm2022/checkbox/checkbox.component.mjs +3 -3
  83. package/esm2022/checkbox/module.mjs +4 -4
  84. package/esm2022/collapse/collapse-item.component.mjs +4 -4
  85. package/esm2022/collapse/collapse.component.mjs +3 -3
  86. package/esm2022/collapse/module.mjs +4 -4
  87. package/esm2022/color-picker/color-picker-custom-panel.component.mjs +3 -3
  88. package/esm2022/color-picker/color-picker-panel.component.mjs +3 -3
  89. package/esm2022/color-picker/color-picker.component.mjs +4 -4
  90. package/esm2022/color-picker/coordinates.directive.mjs +3 -3
  91. package/esm2022/color-picker/helpers/rgba.class.mjs +1 -1
  92. package/esm2022/color-picker/module.mjs +4 -4
  93. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +3 -3
  94. package/esm2022/color-picker/parts/hue/hue.component.mjs +3 -3
  95. package/esm2022/color-picker/parts/indicator/indicator.component.mjs +3 -3
  96. package/esm2022/color-picker/parts/inputs/inputs.component.mjs +20 -10
  97. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +3 -3
  98. package/esm2022/comment/comment-actions.directive.mjs +3 -3
  99. package/esm2022/comment/comment-content.directive.mjs +3 -3
  100. package/esm2022/comment/comment.component.mjs +3 -3
  101. package/esm2022/comment/comment.module.mjs +4 -4
  102. package/esm2022/copy/copy.directive.mjs +3 -3
  103. package/esm2022/copy/module.mjs +4 -4
  104. package/esm2022/core/click-positioner.mjs +3 -3
  105. package/esm2022/core/debounce-time.mjs +11 -0
  106. package/esm2022/core/index.mjs +2 -1
  107. package/esm2022/core/overlay/abstract-overlay-container.mjs +1 -1
  108. package/esm2022/core/overlay/overlay.directive.mjs +1 -1
  109. package/esm2022/core/overlay/portal-directives.mjs +3 -3
  110. package/esm2022/core/scroll.mjs +4 -4
  111. package/esm2022/core/store/store.mjs +3 -3
  112. package/esm2022/core/translate.mjs +3 -3
  113. package/esm2022/core/update-host-class.service.mjs +3 -3
  114. package/esm2022/date-picker/abstract-picker.component.mjs +3 -3
  115. package/esm2022/date-picker/abstract-picker.directive.mjs +4 -4
  116. package/esm2022/date-picker/base-picker.component.mjs +4 -4
  117. package/esm2022/date-picker/date-helper.service.mjs +3 -3
  118. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  119. package/esm2022/date-picker/date-picker.directive.mjs +3 -3
  120. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  121. package/esm2022/date-picker/date-picker.service.mjs +3 -3
  122. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +3 -3
  123. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -3
  124. package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -3
  125. package/esm2022/date-picker/lib/date/date-header.component.mjs +3 -3
  126. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +3 -3
  127. package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
  128. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +3 -3
  129. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
  130. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +3 -3
  131. package/esm2022/date-picker/lib/lib-packer.module.mjs +4 -4
  132. package/esm2022/date-picker/lib/month/month-header.component.mjs +3 -3
  133. package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -3
  134. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +4 -4
  135. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +3 -3
  136. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +3 -3
  137. package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
  138. package/esm2022/date-picker/lib/year/year-table.component.mjs +3 -3
  139. package/esm2022/date-picker/month-picker.component.mjs +4 -4
  140. package/esm2022/date-picker/picker.component.mjs +5 -5
  141. package/esm2022/date-picker/picker.pipes.mjs +12 -12
  142. package/esm2022/date-picker/picker.validators.mjs +6 -6
  143. package/esm2022/date-picker/quarter-picker.component.mjs +4 -4
  144. package/esm2022/date-picker/range-picker.component.mjs +4 -4
  145. package/esm2022/date-picker/range-picker.directive.mjs +3 -3
  146. package/esm2022/date-picker/week-picker.component.mjs +4 -4
  147. package/esm2022/date-picker/year-picker.component.mjs +4 -4
  148. package/esm2022/date-range/date-range.component.mjs +4 -4
  149. package/esm2022/date-range/module.mjs +4 -4
  150. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +3 -3
  151. package/esm2022/dialog/body/dialog-body.component.mjs +3 -3
  152. package/esm2022/dialog/confirm/confirm.component.mjs +3 -3
  153. package/esm2022/dialog/dialog-container.component.mjs +3 -3
  154. package/esm2022/dialog/dialog.module.mjs +4 -4
  155. package/esm2022/dialog/dialog.service.mjs +3 -3
  156. package/esm2022/dialog/footer/dialog-footer.component.mjs +3 -3
  157. package/esm2022/dialog/header/dialog-header.component.mjs +3 -3
  158. package/esm2022/divider/divider.component.mjs +3 -3
  159. package/esm2022/divider/divider.module.mjs +4 -4
  160. package/esm2022/dot/dot.component.mjs +4 -4
  161. package/esm2022/dot/dot.module.mjs +4 -4
  162. package/esm2022/drag-drop/drag-content.directive.mjs +4 -4
  163. package/esm2022/drag-drop/drag-drop.service.mjs +3 -3
  164. package/esm2022/drag-drop/drag-handle.directive.mjs +4 -4
  165. package/esm2022/drag-drop/drag.directive.mjs +3 -3
  166. package/esm2022/drag-drop/drop-container.directive.mjs +3 -3
  167. package/esm2022/drag-drop/module.mjs +4 -4
  168. package/esm2022/dropdown/dropdown-active.directive.mjs +4 -4
  169. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +21 -21
  170. package/esm2022/dropdown/dropdown-menu.component.mjs +12 -12
  171. package/esm2022/dropdown/dropdown-submenu.component.mjs +4 -4
  172. package/esm2022/dropdown/dropdown.directive.mjs +3 -3
  173. package/esm2022/dropdown/module.mjs +4 -4
  174. package/esm2022/empty/empty.component.mjs +3 -3
  175. package/esm2022/empty/empty.config.mjs +3 -3
  176. package/esm2022/empty/empty.module.mjs +4 -4
  177. package/esm2022/flexible-text/flexible-text.component.mjs +3 -3
  178. package/esm2022/flexible-text/flexible-text.module.mjs +4 -4
  179. package/esm2022/form/form-group-error/form-group-error.component.mjs +3 -3
  180. package/esm2022/form/form-group-label.directive.mjs +3 -3
  181. package/esm2022/form/form-group.component.mjs +4 -4
  182. package/esm2022/form/form-submit.directive.mjs +3 -3
  183. package/esm2022/form/form-validator-loader.mjs +3 -3
  184. package/esm2022/form/form-validator.service.mjs +3 -3
  185. package/esm2022/form/form.directive.mjs +3 -3
  186. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
  187. package/esm2022/form/module.mjs +4 -4
  188. package/esm2022/form/validator/confirm-validator.directive.mjs +3 -3
  189. package/esm2022/form/validator/max-validator.directive.mjs +3 -3
  190. package/esm2022/form/validator/min-validator.directive.mjs +3 -3
  191. package/esm2022/form/validator/unique-validator.directive.mjs +4 -4
  192. package/esm2022/fullscreen/fullscreen-launch.directive.mjs +3 -3
  193. package/esm2022/fullscreen/fullscreen-ref.mjs +3 -2
  194. package/esm2022/fullscreen/fullscreen.component.mjs +4 -4
  195. package/esm2022/fullscreen/fullscreen.module.mjs +4 -4
  196. package/esm2022/fullscreen/fullscreen.service.mjs +4 -4
  197. package/esm2022/grid/flex.mjs +12 -12
  198. package/esm2022/grid/module.mjs +4 -4
  199. package/esm2022/grid/thy-col.directive.mjs +3 -3
  200. package/esm2022/grid/thy-grid-item.component.mjs +4 -4
  201. package/esm2022/grid/thy-grid.component.mjs +7 -7
  202. package/esm2022/grid/thy-row.directive.mjs +3 -3
  203. package/esm2022/guider/guider-hint/guider-hint.component.mjs +3 -3
  204. package/esm2022/guider/guider-manager.mjs +3 -3
  205. package/esm2022/guider/guider.directive.mjs +4 -4
  206. package/esm2022/guider/guider.module.mjs +4 -4
  207. package/esm2022/guider/guider.service.mjs +3 -3
  208. package/esm2022/icon/icon-registry.mjs +4 -4
  209. package/esm2022/icon/icon.component.mjs +4 -4
  210. package/esm2022/icon/icon.module.mjs +4 -4
  211. package/esm2022/image/image-group.component.mjs +4 -4
  212. package/esm2022/image/image.directive.mjs +4 -4
  213. package/esm2022/image/image.service.mjs +3 -3
  214. package/esm2022/image/module.mjs +4 -4
  215. package/esm2022/image/preview/image-preview.component.mjs +4 -4
  216. package/esm2022/input/input-count.component.mjs +4 -4
  217. package/esm2022/input/input-group.component.mjs +4 -4
  218. package/esm2022/input/input-search.component.mjs +4 -4
  219. package/esm2022/input/input.component.mjs +4 -4
  220. package/esm2022/input/input.directive.mjs +4 -4
  221. package/esm2022/input/module.mjs +4 -4
  222. package/esm2022/input-number/input-number.component.mjs +3 -3
  223. package/esm2022/input-number/module.mjs +4 -4
  224. package/esm2022/layout/content-main.component.mjs +6 -6
  225. package/esm2022/layout/content-section.component.mjs +6 -6
  226. package/esm2022/layout/content.component.mjs +6 -6
  227. package/esm2022/layout/header.component.mjs +6 -6
  228. package/esm2022/layout/layout.component.mjs +6 -6
  229. package/esm2022/layout/layout.module.mjs +4 -4
  230. package/esm2022/layout/sidebar-content.component.mjs +6 -6
  231. package/esm2022/layout/sidebar-footer.component.mjs +6 -6
  232. package/esm2022/layout/sidebar-header.component.mjs +6 -6
  233. package/esm2022/layout/sidebar.component.mjs +7 -7
  234. package/esm2022/list/list-item-meta.component.mjs +3 -3
  235. package/esm2022/list/list-item.component.mjs +3 -3
  236. package/esm2022/list/list.component.mjs +3 -3
  237. package/esm2022/list/list.module.mjs +4 -4
  238. package/esm2022/list/selection/selection-list.mjs +3 -3
  239. package/esm2022/loading/loading.component.mjs +3 -3
  240. package/esm2022/loading/loading.module.mjs +4 -4
  241. package/esm2022/mention/mention.directive.mjs +3 -3
  242. package/esm2022/mention/mention.module.mjs +4 -4
  243. package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
  244. package/esm2022/menu/divider/menu-divider.component.mjs +3 -3
  245. package/esm2022/menu/group/menu-group.component.mjs +3 -3
  246. package/esm2022/menu/item/action/menu-item-action.component.mjs +4 -4
  247. package/esm2022/menu/item/icon/menu-item-icon.component.mjs +3 -3
  248. package/esm2022/menu/item/menu-item.component.mjs +3 -3
  249. package/esm2022/menu/item/name/menu-item-name.component.mjs +3 -3
  250. package/esm2022/menu/menu.component.mjs +3 -3
  251. package/esm2022/menu/menu.module.mjs +4 -4
  252. package/esm2022/message/abstract/abstract-message-container.component.mjs +4 -4
  253. package/esm2022/message/abstract/abstract-message.component.mjs +4 -4
  254. package/esm2022/message/abstract/abstract-message.service.mjs +1 -1
  255. package/esm2022/message/message-container.component.mjs +3 -3
  256. package/esm2022/message/message-queue.service.mjs +3 -3
  257. package/esm2022/message/message.component.mjs +3 -3
  258. package/esm2022/message/message.service.mjs +3 -3
  259. package/esm2022/message/module.mjs +4 -4
  260. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +3 -3
  261. package/esm2022/nav/icon-nav/icon-nav.component.mjs +3 -3
  262. package/esm2022/nav/nav-ink-bar.directive.mjs +3 -3
  263. package/esm2022/nav/nav-item.directive.mjs +4 -4
  264. package/esm2022/nav/nav.component.mjs +3 -3
  265. package/esm2022/nav/nav.module.mjs +4 -4
  266. package/esm2022/nav/nav.pipe.mjs +3 -3
  267. package/esm2022/notify/module.mjs +4 -4
  268. package/esm2022/notify/notify-container.component.mjs +3 -3
  269. package/esm2022/notify/notify-queue.service.mjs +3 -3
  270. package/esm2022/notify/notify.component.mjs +5 -5
  271. package/esm2022/notify/notify.service.mjs +3 -3
  272. package/esm2022/pagination/pagination.component.mjs +29 -29
  273. package/esm2022/pagination/pagination.module.mjs +4 -4
  274. package/esm2022/pagination/pagination.pipe.mjs +3 -3
  275. package/esm2022/popover/body/popover-body.component.mjs +3 -3
  276. package/esm2022/popover/header/popover-header.component.mjs +4 -4
  277. package/esm2022/popover/module.mjs +4 -4
  278. package/esm2022/popover/popover-container.component.mjs +3 -3
  279. package/esm2022/popover/popover.directive.mjs +3 -3
  280. package/esm2022/popover/popover.service.mjs +3 -3
  281. package/esm2022/progress/progress-circle.component.mjs +3 -3
  282. package/esm2022/progress/progress-strip.component.mjs +3 -3
  283. package/esm2022/progress/progress.component.mjs +3 -3
  284. package/esm2022/progress/progress.module.mjs +4 -4
  285. package/esm2022/property/module.mjs +4 -4
  286. package/esm2022/property/properties.component.mjs +3 -3
  287. package/esm2022/property/property-item.component.mjs +4 -4
  288. package/esm2022/property-operation/group/property-operation-group.component.mjs +3 -3
  289. package/esm2022/property-operation/module.mjs +4 -4
  290. package/esm2022/property-operation/property-operation.component.mjs +4 -4
  291. package/esm2022/radio/button/radio-button.component.mjs +3 -3
  292. package/esm2022/radio/group/radio-group.component.mjs +3 -3
  293. package/esm2022/radio/module.mjs +4 -4
  294. package/esm2022/radio/radio.component.mjs +3 -3
  295. package/esm2022/rate/module.mjs +4 -4
  296. package/esm2022/rate/rate-item.component.mjs +3 -3
  297. package/esm2022/rate/rate.component.mjs +3 -3
  298. package/esm2022/resizable/module.mjs +4 -4
  299. package/esm2022/resizable/resizable.directive.mjs +3 -3
  300. package/esm2022/resizable/resizable.service.mjs +4 -4
  301. package/esm2022/resizable/resize-handle.component.mjs +4 -4
  302. package/esm2022/resizable/resize-handles.component.mjs +3 -3
  303. package/esm2022/result/result.component.mjs +3 -3
  304. package/esm2022/result/result.module.mjs +4 -4
  305. package/esm2022/segment/segment-item.component.mjs +3 -3
  306. package/esm2022/segment/segment.component.mjs +4 -4
  307. package/esm2022/segment/segment.module.mjs +4 -4
  308. package/esm2022/select/custom-select/custom-select.component.mjs +3 -3
  309. package/esm2022/select/module.mjs +4 -4
  310. package/esm2022/select/native-select/native-select.component.mjs +3 -3
  311. package/esm2022/shared/base-form-check.component.mjs +4 -4
  312. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +4 -4
  313. package/esm2022/shared/directives/thy-autofocus.directive.mjs +4 -4
  314. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +4 -4
  315. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +4 -4
  316. package/esm2022/shared/directives/thy-drag-drop.directive.mjs +4 -4
  317. package/esm2022/shared/directives/thy-enter.directive.mjs +4 -4
  318. package/esm2022/shared/directives/thy-scroll.directive.mjs +4 -4
  319. package/esm2022/shared/directives/thy-show.mjs +4 -4
  320. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +3 -3
  321. package/esm2022/shared/directives/view-outlet.directive.mjs +4 -4
  322. package/esm2022/shared/ng-transclude.directive.mjs +3 -3
  323. package/esm2022/shared/option/group/option-group.component.mjs +4 -4
  324. package/esm2022/shared/option/list-option/list-option.component.mjs +3 -3
  325. package/esm2022/shared/option/module.mjs +4 -4
  326. package/esm2022/shared/option/option-group.component.mjs +3 -3
  327. package/esm2022/shared/option/option.component.mjs +4 -4
  328. package/esm2022/shared/option/options-container.component.mjs +3 -3
  329. package/esm2022/shared/select/module.mjs +4 -4
  330. package/esm2022/shared/select/select-control/select-control.component.mjs +3 -3
  331. package/esm2022/shared/shared.module.mjs +4 -4
  332. package/esm2022/skeleton/module.mjs +4 -4
  333. package/esm2022/skeleton/skeleton-circle.component.mjs +3 -3
  334. package/esm2022/skeleton/skeleton-rectangle.component.mjs +3 -3
  335. package/esm2022/skeleton/skeleton.component.mjs +3 -3
  336. package/esm2022/skeleton/stylized/bullet-list.component.mjs +3 -3
  337. package/esm2022/skeleton/stylized/list.component.mjs +3 -3
  338. package/esm2022/skeleton/stylized/paragraph.component.mjs +3 -3
  339. package/esm2022/slide/drawer/drawer-container.directive.mjs +3 -3
  340. package/esm2022/slide/slide-body/slide-body-section.component.mjs +3 -3
  341. package/esm2022/slide/slide-body/slide-body.component.mjs +3 -3
  342. package/esm2022/slide/slide-container.component.mjs +3 -3
  343. package/esm2022/slide/slide-footer/slide-footer.component.mjs +3 -3
  344. package/esm2022/slide/slide-header/slide-header.component.mjs +3 -3
  345. package/esm2022/slide/slide-layout/slide-layout.component.mjs +3 -3
  346. package/esm2022/slide/slide-ref.service.mjs +3 -3
  347. package/esm2022/slide/slide.module.mjs +4 -4
  348. package/esm2022/slide/slide.service.mjs +3 -3
  349. package/esm2022/slider/slider.component.mjs +4 -4
  350. package/esm2022/slider/slider.module.mjs +4 -4
  351. package/esm2022/space/space.component.mjs +6 -6
  352. package/esm2022/space/space.module.mjs +4 -4
  353. package/esm2022/statistic/statistic.component.mjs +3 -3
  354. package/esm2022/statistic/statistic.module.mjs +4 -4
  355. package/esm2022/stepper/step-header.component.mjs +3 -3
  356. package/esm2022/stepper/step.component.mjs +3 -3
  357. package/esm2022/stepper/stepper-button.directive.mjs +6 -6
  358. package/esm2022/stepper/stepper.component.mjs +3 -3
  359. package/esm2022/stepper/stepper.module.mjs +4 -4
  360. package/esm2022/strength/strength.component.mjs +3 -3
  361. package/esm2022/strength/strength.module.mjs +4 -4
  362. package/esm2022/switch/switch.component.mjs +3 -3
  363. package/esm2022/switch/switch.module.mjs +4 -4
  364. package/esm2022/table/pipes/drag.pipe.mjs +3 -3
  365. package/esm2022/table/pipes/table.pipe.mjs +3 -3
  366. package/esm2022/table/table-column.component.mjs +3 -3
  367. package/esm2022/table/table-skeleton.component.mjs +3 -3
  368. package/esm2022/table/table.component.mjs +5 -5
  369. package/esm2022/table/table.module.mjs +4 -4
  370. package/esm2022/tabs/tab-content.component.mjs +3 -3
  371. package/esm2022/tabs/tab.component.mjs +3 -3
  372. package/esm2022/tabs/tabs.component.mjs +4 -4
  373. package/esm2022/tabs/tabs.module.mjs +4 -4
  374. package/esm2022/tag/tag.component.mjs +3 -3
  375. package/esm2022/tag/tag.module.mjs +4 -4
  376. package/esm2022/tag/tags.component.mjs +3 -3
  377. package/esm2022/testing/data-transfer.mjs +1 -1
  378. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +4 -4
  379. package/esm2022/time-picker/inner/inner-time-picker.config.mjs +3 -3
  380. package/esm2022/time-picker/inner/inner-time-picker.store.mjs +3 -3
  381. package/esm2022/time-picker/time-picker-panel.component.mjs +4 -4
  382. package/esm2022/time-picker/time-picker.component.mjs +4 -4
  383. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  384. package/esm2022/timeline/timeline-item.component.mjs +4 -4
  385. package/esm2022/timeline/timeline.component.mjs +4 -4
  386. package/esm2022/timeline/timeline.module.mjs +4 -4
  387. package/esm2022/timeline/timeline.service.mjs +3 -3
  388. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  389. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  390. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  391. package/esm2022/tooltip/tooltip.service.mjs +3 -3
  392. package/esm2022/transfer/transfer-list.component.mjs +4 -4
  393. package/esm2022/transfer/transfer.component.mjs +3 -3
  394. package/esm2022/transfer/transfer.module.mjs +4 -4
  395. package/esm2022/tree/tree-node.component.mjs +4 -4
  396. package/esm2022/tree/tree.component.mjs +5 -5
  397. package/esm2022/tree/tree.module.mjs +4 -4
  398. package/esm2022/tree/tree.pipe.mjs +3 -3
  399. package/esm2022/tree/tree.service.mjs +3 -3
  400. package/esm2022/tree-select/module.mjs +4 -4
  401. package/esm2022/tree-select/tree-select.component.mjs +13 -12
  402. package/esm2022/typography/bg-color.directive.mjs +3 -3
  403. package/esm2022/typography/module.mjs +4 -4
  404. package/esm2022/typography/text/text.component.mjs +3 -3
  405. package/esm2022/typography/text-color.directive.mjs +3 -3
  406. package/esm2022/upload/file-drop.directive.mjs +7 -6
  407. package/esm2022/upload/file-select-base.mjs +3 -3
  408. package/esm2022/upload/file-select.component.mjs +4 -4
  409. package/esm2022/upload/module.mjs +4 -4
  410. package/esm2022/upload/upload.service.mjs +3 -3
  411. package/esm2022/util/logger/logger.mjs +1 -1
  412. package/esm2022/version.mjs +2 -2
  413. package/esm2022/vote/vote.component.mjs +3 -3
  414. package/esm2022/vote/vote.module.mjs +4 -4
  415. package/esm2022/watermark/watermark.directive.mjs +3 -3
  416. package/esm2022/watermark/watermark.module.mjs +4 -4
  417. package/fesm2022/ngx-tethys-action.mjs +10 -10
  418. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-affix.mjs +7 -7
  420. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-alert.mjs +10 -10
  422. package/fesm2022/ngx-tethys-anchor.mjs +10 -10
  423. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  424. package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
  425. package/fesm2022/ngx-tethys-autocomplete.mjs +16 -16
  426. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-avatar.mjs +22 -22
  428. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-back-top.mjs +7 -7
  430. package/fesm2022/ngx-tethys-badge.mjs +7 -7
  431. package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
  432. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  433. package/fesm2022/ngx-tethys-button.mjs +13 -13
  434. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  435. package/fesm2022/ngx-tethys-calendar.mjs +16 -16
  436. package/fesm2022/ngx-tethys-card.mjs +13 -13
  437. package/fesm2022/ngx-tethys-carousel.mjs +16 -16
  438. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  439. package/fesm2022/ngx-tethys-cascader.mjs +25 -37
  440. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  441. package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
  442. package/fesm2022/ngx-tethys-collapse.mjs +10 -10
  443. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  444. package/fesm2022/ngx-tethys-color-picker.mjs +47 -37
  445. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  446. package/fesm2022/ngx-tethys-comment.mjs +13 -13
  447. package/fesm2022/ngx-tethys-copy.mjs +7 -7
  448. package/fesm2022/ngx-tethys-core.mjs +30 -20
  449. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  450. package/fesm2022/ngx-tethys-date-picker.mjs +117 -117
  451. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  452. package/fesm2022/ngx-tethys-date-range.mjs +10 -10
  453. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  454. package/fesm2022/ngx-tethys-dialog.mjs +22 -22
  455. package/fesm2022/ngx-tethys-divider.mjs +7 -7
  456. package/fesm2022/ngx-tethys-dot.mjs +7 -7
  457. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  458. package/fesm2022/ngx-tethys-drag-drop.mjs +19 -19
  459. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  460. package/fesm2022/ngx-tethys-dropdown.mjs +46 -46
  461. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  462. package/fesm2022/ngx-tethys-empty.mjs +10 -10
  463. package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
  464. package/fesm2022/ngx-tethys-form.mjs +40 -40
  465. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  466. package/fesm2022/ngx-tethys-fullscreen.mjs +15 -14
  467. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  468. package/fesm2022/ngx-tethys-grid.mjs +31 -31
  469. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  470. package/fesm2022/ngx-tethys-guider.mjs +16 -16
  471. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  472. package/fesm2022/ngx-tethys-icon.mjs +10 -10
  473. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  474. package/fesm2022/ngx-tethys-image.mjs +16 -16
  475. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  476. package/fesm2022/ngx-tethys-input-number.mjs +7 -7
  477. package/fesm2022/ngx-tethys-input.mjs +19 -19
  478. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  479. package/fesm2022/ngx-tethys-layout.mjs +58 -58
  480. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  481. package/fesm2022/ngx-tethys-list.mjs +16 -16
  482. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  483. package/fesm2022/ngx-tethys-mention.mjs +10 -10
  484. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  485. package/fesm2022/ngx-tethys-menu.mjs +25 -25
  486. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  487. package/fesm2022/ngx-tethys-message.mjs +22 -22
  488. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  489. package/fesm2022/ngx-tethys-nav.mjs +22 -22
  490. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  491. package/fesm2022/ngx-tethys-notify.mjs +17 -17
  492. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  493. package/fesm2022/ngx-tethys-pagination.mjs +34 -34
  494. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  495. package/fesm2022/ngx-tethys-popover.mjs +19 -19
  496. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  497. package/fesm2022/ngx-tethys-progress.mjs +13 -13
  498. package/fesm2022/ngx-tethys-property-operation.mjs +10 -10
  499. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  500. package/fesm2022/ngx-tethys-property.mjs +10 -10
  501. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  502. package/fesm2022/ngx-tethys-radio.mjs +13 -13
  503. package/fesm2022/ngx-tethys-rate.mjs +10 -10
  504. package/fesm2022/ngx-tethys-resizable.mjs +16 -16
  505. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  506. package/fesm2022/ngx-tethys-result.mjs +7 -7
  507. package/fesm2022/ngx-tethys-segment.mjs +10 -10
  508. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  509. package/fesm2022/ngx-tethys-select.mjs +10 -10
  510. package/fesm2022/ngx-tethys-shared.mjs +66 -66
  511. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  512. package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
  513. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  514. package/fesm2022/ngx-tethys-slide.mjs +31 -31
  515. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  516. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  517. package/fesm2022/ngx-tethys-space.mjs +10 -10
  518. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  519. package/fesm2022/ngx-tethys-stepper.mjs +19 -19
  520. package/fesm2022/ngx-tethys-strength.mjs +7 -7
  521. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  522. package/fesm2022/ngx-tethys-table.mjs +20 -20
  523. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  524. package/fesm2022/ngx-tethys-tabs.mjs +13 -13
  525. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  526. package/fesm2022/ngx-tethys-tag.mjs +10 -10
  527. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  528. package/fesm2022/ngx-tethys-time-picker.mjs +19 -19
  529. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  530. package/fesm2022/ngx-tethys-timeline.mjs +13 -13
  531. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  532. package/fesm2022/ngx-tethys-tooltip.mjs +13 -13
  533. package/fesm2022/ngx-tethys-transfer.mjs +10 -10
  534. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  535. package/fesm2022/ngx-tethys-tree-select.mjs +16 -15
  536. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  537. package/fesm2022/ngx-tethys-tree.mjs +17 -17
  538. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  539. package/fesm2022/ngx-tethys-typography.mjs +13 -13
  540. package/fesm2022/ngx-tethys-upload.mjs +18 -17
  541. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  542. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  543. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  544. package/fesm2022/ngx-tethys-watermark.mjs +7 -7
  545. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  546. package/fesm2022/ngx-tethys.mjs +1 -1
  547. package/fesm2022/ngx-tethys.mjs.map +1 -1
  548. package/flexible-text/examples/placement/placement.component.scss +3 -1
  549. package/form/styles/form-check.scss +2 -3
  550. package/form/styles/mixin.scss +1 -1
  551. package/grid/examples/basic/basic.component.scss +5 -3
  552. package/grid/examples/flex/flex.component.scss +5 -3
  553. package/grid/examples/gap/gap.component.scss +5 -3
  554. package/grid/examples/offset/offset.component.scss +5 -3
  555. package/grid/examples/responsive/responsive.component.scss +6 -4
  556. package/grid/examples/row-col/row-col.component.scss +5 -3
  557. package/grid/examples/span/span.component.scss +5 -3
  558. package/guider/styles/guider-tip.scss +6 -6
  559. package/loading/styles/loading.scss +3 -3
  560. package/menu/examples/basic/basic.component.scss +3 -1
  561. package/menu/examples/divider/divider.component.scss +3 -1
  562. package/menu/examples/group/group.component.scss +3 -1
  563. package/menu/examples/theme/theme.component.scss +2 -2
  564. package/nav/examples/basic/basic.component.scss +3 -5
  565. package/nav/examples/extra/extra.component.scss +3 -1
  566. package/nav/examples/fill/fill.component.scss +3 -1
  567. package/nav/examples/lite/lite.component.scss +3 -1
  568. package/nav/examples/pills/pills.component.scss +3 -1
  569. package/nav/examples/responsive/responsive.component.scss +3 -1
  570. package/nav/examples/size/size.component.scss +3 -1
  571. package/nav/examples/tabs/tabs.component.scss +3 -1
  572. package/nav/examples/type/type.component.scss +3 -4
  573. package/nav/examples/vertical/vertical.component.scss +3 -1
  574. package/nav/nav.component.d.ts +1 -1
  575. package/nav/styles/mixin.scss +26 -10
  576. package/notify/styles/notify.scss +2 -2
  577. package/package.json +1 -1
  578. package/pagination/pagination.component.d.ts +3 -3
  579. package/pagination/styles/pagination.scss +1 -0
  580. package/progress/styles/progress-strip.scss +1 -1
  581. package/property-operation/styles/property-operation.scss +1 -15
  582. package/resizable/examples/layout/layout.style.scss +7 -5
  583. package/resizable/examples/table/table.style.scss +3 -1
  584. package/resizable/resize-handle.component.d.ts +4 -1
  585. package/schematics/version.d.ts +1 -1
  586. package/schematics/version.js +1 -1
  587. package/segment/styles/mixin.scss +8 -5
  588. package/segment/styles/segment.scss +1 -1
  589. package/shared/option/styles/option.mixin.scss +6 -6
  590. package/shared/option/styles/select-dropdown.scss +3 -1
  591. package/shared/select/select-control/select-control.scss +1 -1
  592. package/space/examples/align/align.component.scss +3 -2
  593. package/statistic/examples/prefix-suffix/prefix-suffix.component.scss +3 -1
  594. package/styles/bootstrap/_type.scss +8 -8
  595. package/styles/bootstrap/mixins/_transition.scss +3 -1
  596. package/styles/mixins/close.scss +4 -1
  597. package/styles/mixins/shadow.scss +3 -1
  598. package/styles/mixins/tables.scss +3 -166
  599. package/styles/modules/cdk/drag-drop.scss +1 -1
  600. package/styles/modules/link.scss +1 -1
  601. package/styles/modules/tables.scss +0 -1
  602. package/styles/variables.scss +73 -41
  603. package/switch/styles/mixin.scss +1 -1
  604. package/table/styles/table.scss +1 -1
  605. package/tabs/styles/tabs.scss +1 -0
  606. package/tag/styles/mixin.scss +10 -5
  607. package/tag/styles/tag.scss +4 -4
  608. package/tree/styles/tree.scss +0 -8
  609. package/tree-select/styles/tree-select.scss +4 -1
  610. package/tree-select/tree-select.component.d.ts +3 -3
  611. package/watermark/examples/basic/basic.component.scss +3 -1
  612. package/watermark/examples/custom/custom.component.scss +8 -0
  613. package/watermark/styles/watermark.scss +1 -2
  614. package/tabs/examples/basic/basic.component.scss +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-guider.mjs","sources":["../../../src/guider/guider-manager.ts","../../../src/guider/utils.ts","../../../src/guider/guider-step-ref.ts","../../../src/guider/guider.class.ts","../../../src/guider/guider-ref.ts","../../../src/guider/guider.service.ts","../../../src/guider/guider.directive.ts","../../../src/guider/guider-hint/guider-hint.component.ts","../../../src/guider/guider-hint/guider-hint.component.html","../../../src/guider/guider.module.ts","../../../src/guider/ngx-tethys-guider.ts"],"sourcesContent":["import { ThyGuiderRef } from './guider-ref';\nimport { Injectable } from '@angular/core';\n\n/**\n * @public\n * @order 60\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuiderManager {\n private targetListMap = {};\n\n private thyGuiderRef: ThyGuiderRef;\n\n private activeStepKey: string;\n\n constructor() {}\n\n public updateActive(key: string, guiderRef: ThyGuiderRef) {\n this.activeStepKey = key;\n this.thyGuiderRef = guiderRef;\n }\n\n public addStepTarget(key: string, el: HTMLElement) {\n this.targetListMap[key] = el;\n }\n\n public removeStepTarget(key: string) {\n delete this.targetListMap[key];\n }\n\n public getActiveTarget(key: string): HTMLElement {\n return this.targetListMap[key];\n }\n\n public getActive(): { key: string; guiderRef: ThyGuiderRef } {\n return {\n key: this.activeStepKey,\n guiderRef: this.thyGuiderRef\n };\n }\n}\n","import { SafeAny } from 'ngx-tethys/types';\nimport { isArray, isNumber, isObject } from 'ngx-tethys/util';\n\nexport function isPositionDataType(target: any): target is { x: number; y: number } {\n if (isObject(target) && !isArray(target)) {\n if (isNumber((target as SafeAny).x) && isNumber((target as SafeAny).y)) {\n return true;\n }\n }\n return false;\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceArray, isArray, isNull, isString, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderRef } from './guider-ref';\nimport { ThyGuiderStep } from './guider.class';\nimport { isPositionDataType } from './utils';\n\nconst pointContainerSize = 28;\n\n/**\n * @public\n * @order 50\n */\nexport class ThyGuiderStepRef {\n private renderer: Renderer2;\n\n private lastPointerContainer: any;\n\n private lastTargetElement: Element;\n\n private targetElementObserver: Subscription;\n\n private lastTipContainer: any;\n\n private guiderRef: ThyGuiderRef;\n\n private lastPopoverRef: ThyPopoverRef<any>;\n\n constructor(\n public step: ThyGuiderStep,\n public stepIndex: number,\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private guiderManager: ThyGuiderManager,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: Document\n ) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n public show(guiderRef: ThyGuiderRef) {\n this.guiderRef = guiderRef;\n this.createPoint(this.step, guiderRef);\n }\n\n public dispose() {\n this.removeLastPointContainer();\n this.removeTip();\n }\n\n private getTargetElement(step: ThyGuiderStep) {\n let targetElement: HTMLElement;\n\n if (step.target && !isPositionDataType(step.target)) {\n const target = [...coerceArray(step.target)];\n\n while (target.length && isUndefinedOrNull(targetElement)) {\n targetElement = this.document.querySelector(target.shift());\n }\n } else {\n targetElement = this.guiderManager.getActiveTarget(step.key);\n }\n return targetElement;\n }\n\n private createPoint(step: ThyGuiderStep, guiderRef: ThyGuiderRef) {\n // target 为空并且 guiderManager 中的 targetMap 也没有此step 的 key,或者 target 直接为 坐标数组\n // 则执行无 target 的显示\n if (!this.isTipHasTarget(step)) {\n this.createTip(this.step);\n return;\n }\n\n const targetElement = this.getTargetElement(step);\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && isNull(targetElement)) {\n throw new Error(`there is no target called ${coerceArray(step.target).join(' or ')}`);\n }\n this.targetElementObserver = fromEvent(targetElement, 'click').subscribe(() => {\n guiderRef.targetClicked().next(step);\n });\n const positionValue = targetElement?.style?.position;\n if (!positionValue || positionValue === 'static') {\n this.renderer.setStyle(targetElement, 'position', 'relative');\n }\n this.setStyleForPointContainer(step, targetElement);\n }\n\n private setStyleForPointContainer(step: ThyGuiderStep, targetElement: Element) {\n const pointPosition = this.getPointPosition(step, targetElement);\n const pointContainer = this.setPointPosition(pointPosition);\n\n this.renderPoint(targetElement, pointContainer);\n }\n\n private getPointPosition(step: ThyGuiderStep, targetElement: Element): [number, number] {\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n const pointOffset = step.pointOffset;\n // 只通过 pointOffset 控制 point 的位置,默认在 target 的右下角,\n // offset 的基点也为默认位置\n return [targetElementWidth + pointOffset[0], targetElementHeight + pointOffset[1]];\n }\n\n private setPointPosition(pointPosition: [number, number]) {\n const currentPointContainer = this.renderer.createElement('div');\n\n this.renderer.addClass(currentPointContainer, 'thy-guider-highlight-container');\n if (this.guiderRef.config.pointClass) {\n this.addPointClass(currentPointContainer, this.guiderRef.config.pointClass);\n }\n this.renderer.setStyle(currentPointContainer, 'position', 'absolute');\n this.renderer.setStyle(currentPointContainer, 'left', pointPosition[0] + 'px');\n this.renderer.setStyle(currentPointContainer, 'top', pointPosition[1] + 'px');\n this.renderer.setStyle(currentPointContainer, 'transform', 'translate(-100%,-100%)');\n\n return currentPointContainer;\n }\n\n private addPointClass(el: any, pointClass: string | string[]) {\n if (isString(pointClass)) {\n this.renderer.addClass(el, pointClass);\n }\n if (isArray(pointClass)) {\n pointClass.forEach(classItem => {\n this.renderer.addClass(el, classItem);\n });\n }\n }\n\n private renderPoint(targetElement: Element, pointContainer: any) {\n this.renderer.appendChild(targetElement, pointContainer);\n this.lastPointerContainer = pointContainer;\n this.lastTargetElement = targetElement;\n this.createTip(this.step);\n }\n\n private removeLastPointContainer() {\n if (this.lastPointerContainer) {\n this.renderer.removeChild(this.document.body, this.lastPointerContainer);\n this.lastPointerContainer = undefined;\n }\n }\n\n private createTip(step: ThyGuiderStep) {\n if (this.isTipHasTarget(step)) {\n this.tipWithTarget(step);\n } else {\n this.tipWithoutTarget(step);\n }\n }\n\n private tipWithoutTarget(step: ThyGuiderStep) {\n const position = this.getTipPosition(step);\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {\n origin: null,\n originPosition: position,\n originActiveClass: '',\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n }\n\n private getTipPosition(step: ThyGuiderStep): { x: number; y: number } {\n if (isPositionDataType(step.target)) {\n return step.target;\n }\n return this.guiderRef.config.defaultPosition;\n }\n\n private createTipContainer() {\n const tipContainer = this.renderer.createElement('div');\n this.renderer.addClass(tipContainer, 'thy-guider-content-container');\n this.renderer.setStyle(tipContainer, 'position', 'absolute');\n this.renderer.setStyle(tipContainer, 'top', '0px');\n this.renderer.setStyle(tipContainer, 'right', '0px');\n this.renderer.setStyle(tipContainer, 'bottom', '0px');\n this.renderer.setStyle(tipContainer, 'left', '0px');\n return tipContainer;\n }\n\n private tipWithTarget(step: ThyGuiderStep) {\n const targetElement = this.getTargetElement(step);\n const hintContainer = this.createTipContainer();\n\n this.renderer.appendChild(targetElement, hintContainer);\n this.lastTipContainer = hintContainer;\n\n const popoverConfig = {\n origin: hintContainer,\n placement: step.hintPlacement,\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n } as ThyPopoverConfig<any>;\n\n const pointPosition = this.getPointPosition(step, targetElement);\n const hintOffset = this.getTipOffset(step, pointPosition, targetElement);\n if (hintOffset) {\n popoverConfig.offset = hintOffset;\n }\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, popoverConfig);\n }\n\n private getTipOffset(step: ThyGuiderStep, pointPosition: [number, number], targetElement: Element): number {\n const hintPlacement = step.hintPlacement;\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n let hintOffset: number = step.hintOffset || 0;\n const pointXAxisOffset = pointPosition[0];\n const pointYAxisOffset = pointPosition[1];\n\n if (hintPlacement.startsWith('top')) {\n if (pointYAxisOffset < pointContainerSize) {\n hintOffset = hintOffset + Math.abs(pointYAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('bottom')) {\n if (pointYAxisOffset > targetElementHeight) {\n hintOffset = hintOffset + (pointYAxisOffset - targetElementHeight) + 10; // 10 为空隙量\n }\n } else if (hintPlacement.startsWith('left')) {\n if (pointXAxisOffset < 0) {\n hintOffset = hintOffset + Math.abs(pointXAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('right')) {\n if (pointXAxisOffset > targetElementWidth) {\n hintOffset = hintOffset + (pointXAxisOffset - targetElementWidth) + 10; // 10 为空隙量\n }\n }\n return hintOffset;\n }\n\n private removeTip() {\n if (this.lastPopoverRef) {\n this.lastPopoverRef.close();\n this.lastPopoverRef = undefined;\n }\n if (this.lastTipContainer) {\n this.renderer.removeChild(this.document.body, this.lastTipContainer);\n this.lastTipContainer = undefined;\n }\n if (this.lastTargetElement && this.targetElementObserver) {\n this.targetElementObserver.unsubscribe();\n this.lastTargetElement = undefined;\n this.targetElementObserver = undefined;\n }\n }\n\n private isTipHasTarget(step: ThyGuiderStep): boolean {\n if (step.target) {\n return !isPositionDataType(step.target);\n } else {\n return !!this.guiderManager.getActiveTarget(step.key);\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\n/**\n * @public\n * @order 30\n */\nexport interface ThyGuiderStep<TData = any> {\n /**\n * 步骤的唯一标识符\n */\n key: string;\n\n /**\n * 步骤的目标DOM selectors,如果为 [number,number] 类型则是相对浏览器视窗的位置\n * @type string | string[] | { x: number; y: number }\n */\n target?: string | string[] | { x: number; y: number };\n\n /**\n * 新手引导内容组件的值\n */\n data: TData;\n\n /**\n * 步骤对应的路由\n */\n route?: string;\n\n /**\n * 当前步骤内容组件基于 target 元素的方位\n */\n hintPlacement?: ThyPlacement;\n\n /**\n * 当前步骤内容组件基于位置的偏移量(与 popover 中 offset 相同作用)\n */\n hintOffset?: number;\n\n /**\n * 当前步骤高亮圆圈基于默认位置的偏移量\n */\n pointOffset?: [number, number];\n}\n\n/**\n * 新手引导服务的配置项\n * @public\n * @order 20\n */\nexport class ThyGuiderConfig {\n /**\n * 新手引导内容组件\n */\n hintComponent?: Type<unknown>;\n\n /**\n * 新手引导步骤信息\n * @type ThyGuiderStep[]\n */\n steps: ThyGuiderStep[];\n\n /**\n * 新手引导内容组件基于 target 元素的方位\n */\n hintPlacement?: ThyPlacement;\n\n /**\n * 新手引导内容组件默认位置(基于浏览器视窗,优先级小于 hintPlacement\n */\n defaultPosition?: { x: number; y: number };\n\n /**\n * 新手引导高亮圆圈基于默认位置的偏移量\n */\n pointOffset?: [number, number];\n\n /**\n * 新手引导内容组件基于位置的偏移量(与 popover 中 offset 相同作用)\n */\n hintOffset?: number;\n\n /**\n * 新手引导弹窗的自定义类\n * @type string | string[]\n */\n hintClass?: string | string[];\n\n /**\n * 新手引导point的自定义类\n * @type string | string[]\n */\n pointClass?: string | string[];\n}\n\nexport const defaultGuiderPositionConfig = {\n hintComponent: null as Type<unknown>,\n hintPlacement: 'rightBottom',\n defaultPosition: { x: 0, y: 0 },\n pointOffset: [0, 0],\n hintOffset: 4\n};\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderStepRef } from './guider-step-ref';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { ThyGuiderConfig, ThyGuiderStep } from './guider.class';\nimport { Inject, NgZone, RendererFactory2 } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport class ThyGuiderRef {\n public steps: ThyGuiderStep[];\n\n private stepChange$: ReplaySubject<ThyGuiderStep> = new ReplaySubject<ThyGuiderStep>();\n\n private guiderEnded$ = new Subject();\n\n private closed$ = new Subject<ThyGuiderStep>();\n\n private targetClicked$ = new Subject<ThyGuiderStep>();\n\n private currentStep: ThyGuiderStep;\n\n private currentStepIndex: number;\n\n private stepsRef: ThyGuiderStepRef[];\n\n constructor(\n public config: ThyGuiderConfig,\n private rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {\n this.stepsRef = config.steps.map((step, index) => {\n return new ThyGuiderStepRef(step, index, this.rendererFactory, this.popover, this.guiderManager, this.overlay, this.document);\n });\n this.steps = config.steps;\n }\n\n public stepChange(): Observable<ThyGuiderStep> {\n return this.stepChange$.asObservable();\n }\n\n public ended() {\n return this.guiderEnded$;\n }\n\n public closed() {\n return this.closed$;\n }\n\n public targetClicked() {\n return this.targetClicked$;\n }\n\n public start(startWith?: number) {\n this.to(startWith);\n\n return this.stepChange();\n }\n\n public next() {\n if (this.currentStepIndex + 1 > this.steps.length) {\n return;\n }\n this.to(this.currentStepIndex + 1);\n }\n\n public previous() {\n if (this.currentStepIndex - 1 < 0) {\n return;\n }\n\n this.to(this.currentStepIndex - 1);\n }\n\n public active(indexOrKey: number | string): void {\n if (helpers.isNumber(indexOrKey)) {\n this.to(indexOrKey as number);\n return;\n }\n if (helpers.isString(indexOrKey)) {\n const index = this.steps.findIndex(step => step.key === (indexOrKey as string));\n this.to(index);\n return;\n }\n }\n\n private to(index: number): void {\n this.removeExistedStep();\n\n if (!helpers.isNumber(index) || index >= this.steps.length || index < 0 || Number.isNaN(index)) {\n index = 0;\n }\n this.currentStep = this.steps[index];\n this.currentStepIndex = index;\n\n // update guiderManager\n this.guiderManager.updateActive(this.currentStep.key, this);\n if (this.currentStep.route && this.currentStep.route !== this.router.url) {\n this.ngZone.run(() => {\n this.router.navigateByUrl(this.currentStep.route);\n });\n return;\n }\n setTimeout(() => {\n this.drawStep();\n this.notifyStepClicked();\n }, 0);\n }\n\n public close() {\n this.removeManagerActiveKey();\n this.stepsRef[this.currentStepIndex]?.dispose();\n this.closed$.next(this.currentStep);\n }\n\n public end() {\n this.close();\n this.guiderEnded$.next(this.currentStep);\n this.notifyGuiderIsFinished();\n }\n\n private removeManagerActiveKey() {\n const activeKey = this.guiderManager.getActive().key;\n if (activeKey && this.steps.some(step => step.key === activeKey)) {\n this.guiderManager.updateActive('', undefined);\n }\n }\n\n private notifyStepClicked() {\n this.stepChange$.next(this.currentStep);\n }\n\n private drawStep() {\n this.removeExistedStep();\n this.stepsRef[this.currentStepIndex].show(this);\n }\n\n private notifyGuiderIsFinished() {\n this.stepChange$.complete();\n // this.targetClicked().unsubscribe();\n this.currentStepIndex = 0;\n }\n\n private removeExistedStep() {\n this.stepsRef[this.currentStepIndex]?.dispose();\n }\n}\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyGuiderRef } from './guider-ref';\nimport { Inject, NgZone } from '@angular/core';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { Injectable, RendererFactory2 } from '@angular/core';\nimport { ThyGuiderStep, ThyGuiderConfig, defaultGuiderPositionConfig } from './guider.class';\nimport { Overlay } from '@angular/cdk/overlay';\n\n/**\n * 新手引导服务\n * @public\n * @order 10\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuider {\n private guiderRef: ThyGuiderRef;\n\n private guiderRefs: ThyGuiderRef[] = [];\n\n constructor(\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {}\n\n public create(config: ThyGuiderConfig): ThyGuiderRef {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!config || !config?.steps || !helpers.isArray(config?.steps)) {\n throw new Error(`'config.steps' must be an array of length greater than 0`);\n }\n }\n const normalizeConfig = this.normalizeConfig(config);\n this.guiderRef = new ThyGuiderRef(\n normalizeConfig,\n this.rendererFactory,\n this.popover,\n this.router,\n this.guiderManager,\n this.ngZone,\n this.overlay,\n this.document\n );\n this.guiderRef.closed().subscribe(() => {\n const index = this.guiderRefs.findIndex(guiderRef => guiderRef === this.guiderRef);\n this.guiderRefs.splice(index, 1);\n });\n this.guiderRefs.push(this.guiderRef);\n return this.guiderRef;\n }\n\n private normalizeConfig(config: ThyGuiderConfig): ThyGuiderConfig {\n const normalizeConfig = Object.assign({}, defaultGuiderPositionConfig, config);\n normalizeConfig.steps = normalizeConfig.steps.map(step => {\n return this.normalizeStep(step, normalizeConfig);\n });\n return normalizeConfig;\n }\n\n private normalizeStep(step: ThyGuiderStep, config: ThyGuiderConfig): ThyGuiderStep {\n const tempStep = Object.assign(\n {\n hintPlacement: config.hintPlacement,\n hintOffset: config.hintOffset,\n pointOffset: config.pointOffset\n },\n step\n );\n\n return tempStep;\n }\n\n close() {\n if (this.guiderRefs.length > 0) {\n const lasGuiderRef = this.guiderRefs[this.guiderRefs.length - 1];\n if (lasGuiderRef) {\n lasGuiderRef.close();\n this.guiderRefs.pop();\n }\n }\n }\n}\n","import { ThyGuiderManager } from './guider-manager';\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\n\n/**\n * 标记新手引导的步骤的target,使用指令方式的新手引导支持多路由跳转\n * @name thyGuiderTarget\n * @order 40\n */\n@Directive({\n selector: '[thyGuiderTarget]',\n exportAs: 'thyGuiderTarget',\n standalone: true\n})\nexport class ThyGuiderTargetDirective implements OnInit, OnDestroy, AfterViewInit {\n /**\n * 标记当前元素对应的新手引导中 step 的 key\n */\n @Input('thyGuiderTarget')\n target: string;\n\n constructor(private guiderManager: ThyGuiderManager, private el: ElementRef, private ngZone: NgZone) {}\n\n ngOnInit() {\n this.guiderManager.addStepTarget(this.target, this.el.nativeElement);\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n const { key, guiderRef } = this.guiderManager.getActive();\n if (key === this.target) {\n const index = guiderRef.steps.findIndex(step => step.key === this.target);\n this.ngZone.run(() => {\n guiderRef.active(index);\n });\n }\n });\n }\n\n ngAfterViewInit() {}\n\n ngOnDestroy() {\n const { guiderRef } = this.guiderManager.getActive();\n if (guiderRef) {\n guiderRef.close();\n }\n this.guiderManager.removeStepTarget(this.target);\n }\n}\n","import { HostBinding, Component, OnInit, TemplateRef } from '@angular/core';\nimport { ThyGuiderRef } from '../guider-ref';\nimport { helpers } from 'ngx-tethys/util';\nimport { defaultGuiderPositionConfig, ThyGuiderStep } from '../guider.class';\nimport { ThyGuiderStepRef } from '../guider-step-ref';\nimport { NgIf, NgTemplateOutlet, NgFor, NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-guider-hint',\n templateUrl: 'guider-hint.component.html',\n standalone: true,\n imports: [NgIf, NgTemplateOutlet, NgFor, NgClass]\n})\nexport class ThyGuiderHint implements OnInit {\n @HostBinding('class.thy-guider-tip-container') guiderHint = true;\n\n public guiderRef: ThyGuiderRef;\n\n public stepRef: ThyGuiderStepRef;\n\n public descriptionString: string;\n\n public descriptionTemplateRef: TemplateRef<any>;\n\n public currentStepIndex: number;\n\n constructor() {}\n\n ngOnInit() {\n this.setDescription(this.stepRef.step.data.description);\n }\n\n private setDescription(value: string | TemplateRef<any>) {\n if (helpers.isString(value)) {\n this.descriptionString = value as string;\n } else {\n this.descriptionTemplateRef = value as TemplateRef<any>;\n }\n }\n\n public jump() {\n this.guiderRef.end();\n }\n\n public prev() {\n this.guiderRef.previous();\n }\n\n public next() {\n this.guiderRef.next();\n }\n\n public end() {\n this.guiderRef.end();\n }\n\n public trackByFn(index: number, step: ThyGuiderStep) {\n return step.key || index;\n }\n}\n\ndefaultGuiderPositionConfig.hintComponent = ThyGuiderHint;\n","<div class=\"thy-guider-tip-top\">\n <img [src]=\"stepRef.step.data.image\" [alt]=\"stepRef.step.data.title\" />\n <a href=\"javascript:;\" class=\"thy-guider-tip-top-btn\" (click)=\"jump()\">跳过</a>\n</div>\n<div class=\"thy-guider-tip-content bg-white\">\n <div class=\"thy-guider-tip-content-title\">{{ stepRef.step.data.title }}</div>\n <div class=\"thy-guider-tip-content-description\">\n <ng-container *ngIf=\"descriptionTemplateRef; else stringTemplateRef\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #stringTemplateRef>{{ descriptionString }}</ng-template>\n </div>\n <div class=\"thy-guider-tip-step\">\n <div class=\"thy-guider-tip-step-pagination\">\n <span\n class=\"pagination-item\"\n *ngFor=\"let step of guiderRef.steps; let i = index; trackBy: trackByFn\"\n [ngClass]=\"{ active: i === stepRef.stepIndex }\"\n ></span>\n </div>\n <div class=\"thy-guider-tip-step-btn\">\n <ng-container *ngIf=\"stepRef.stepIndex !== 0\">\n <a href=\"javascript:;\" (click)=\"prev()\" class=\"thy-guider-tip-step-pre\">上一步</a>\n </ng-container>\n <ng-container *ngIf=\"stepRef.stepIndex !== guiderRef.steps.length - 1; else finish\">\n <a href=\"javascript:;\" (click)=\"next()\" class=\"thy-guider-tip-step-next\">下一步</a>\n </ng-container>\n <ng-template #finish>\n <a href=\"javascript:;\" (click)=\"end()\" class=\"thy-guider-tip-step-next\">完成</a>\n </ng-template>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ThyGuider } from './guider.service';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyGuiderTargetDirective } from './guider.directive';\nimport { ThyGuiderHint } from './guider-hint/guider-hint.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyButtonModule, ThyPopoverModule, ThyGuiderHint, ThyGuiderTargetDirective],\n exports: [ThyGuiderHint, ThyGuiderTargetDirective],\n providers: [ThyGuider]\n})\nexport class ThyGuiderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyGuiderManager"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-guider.mjs","sources":["../../../src/guider/guider-manager.ts","../../../src/guider/utils.ts","../../../src/guider/guider-step-ref.ts","../../../src/guider/guider.class.ts","../../../src/guider/guider-ref.ts","../../../src/guider/guider.service.ts","../../../src/guider/guider.directive.ts","../../../src/guider/guider-hint/guider-hint.component.ts","../../../src/guider/guider-hint/guider-hint.component.html","../../../src/guider/guider.module.ts","../../../src/guider/ngx-tethys-guider.ts"],"sourcesContent":["import { ThyGuiderRef } from './guider-ref';\nimport { Injectable } from '@angular/core';\n\n/**\n * @public\n * @order 60\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuiderManager {\n private targetListMap = {};\n\n private thyGuiderRef: ThyGuiderRef;\n\n private activeStepKey: string;\n\n constructor() {}\n\n public updateActive(key: string, guiderRef: ThyGuiderRef) {\n this.activeStepKey = key;\n this.thyGuiderRef = guiderRef;\n }\n\n public addStepTarget(key: string, el: HTMLElement) {\n this.targetListMap[key] = el;\n }\n\n public removeStepTarget(key: string) {\n delete this.targetListMap[key];\n }\n\n public getActiveTarget(key: string): HTMLElement {\n return this.targetListMap[key];\n }\n\n public getActive(): { key: string; guiderRef: ThyGuiderRef } {\n return {\n key: this.activeStepKey,\n guiderRef: this.thyGuiderRef\n };\n }\n}\n","import { SafeAny } from 'ngx-tethys/types';\nimport { isArray, isNumber, isObject } from 'ngx-tethys/util';\n\nexport function isPositionDataType(target: any): target is { x: number; y: number } {\n if (isObject(target) && !isArray(target)) {\n if (isNumber((target as SafeAny).x) && isNumber((target as SafeAny).y)) {\n return true;\n }\n }\n return false;\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport { ThyPopover, ThyPopoverConfig, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceArray, isArray, isNull, isString, isUndefinedOrNull } from 'ngx-tethys/util';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderRef } from './guider-ref';\nimport { ThyGuiderStep } from './guider.class';\nimport { isPositionDataType } from './utils';\n\nconst pointContainerSize = 28;\n\n/**\n * @public\n * @order 50\n */\nexport class ThyGuiderStepRef {\n private renderer: Renderer2;\n\n private lastPointerContainer: any;\n\n private lastTargetElement: Element;\n\n private targetElementObserver: Subscription;\n\n private lastTipContainer: any;\n\n private guiderRef: ThyGuiderRef;\n\n private lastPopoverRef: ThyPopoverRef<any>;\n\n constructor(\n public step: ThyGuiderStep,\n public stepIndex: number,\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private guiderManager: ThyGuiderManager,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: Document\n ) {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n public show(guiderRef: ThyGuiderRef) {\n this.guiderRef = guiderRef;\n this.createPoint(this.step, guiderRef);\n }\n\n public dispose() {\n this.removeLastPointContainer();\n this.removeTip();\n }\n\n private getTargetElement(step: ThyGuiderStep) {\n let targetElement: HTMLElement;\n\n if (step.target && !isPositionDataType(step.target)) {\n const target = [...coerceArray(step.target)];\n\n while (target.length && isUndefinedOrNull(targetElement)) {\n targetElement = this.document.querySelector(target.shift());\n }\n } else {\n targetElement = this.guiderManager.getActiveTarget(step.key);\n }\n return targetElement;\n }\n\n private createPoint(step: ThyGuiderStep, guiderRef: ThyGuiderRef) {\n // target 为空并且 guiderManager 中的 targetMap 也没有此step 的 key,或者 target 直接为 坐标数组\n // 则执行无 target 的显示\n if (!this.isTipHasTarget(step)) {\n this.createTip(this.step);\n return;\n }\n\n const targetElement = this.getTargetElement(step);\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && isNull(targetElement)) {\n throw new Error(`there is no target called ${coerceArray(step.target).join(' or ')}`);\n }\n this.targetElementObserver = fromEvent(targetElement, 'click').subscribe(() => {\n guiderRef.targetClicked().next(step);\n });\n const positionValue = targetElement?.style?.position;\n if (!positionValue || positionValue === 'static') {\n this.renderer.setStyle(targetElement, 'position', 'relative');\n }\n this.setStyleForPointContainer(step, targetElement);\n }\n\n private setStyleForPointContainer(step: ThyGuiderStep, targetElement: Element) {\n const pointPosition = this.getPointPosition(step, targetElement);\n const pointContainer = this.setPointPosition(pointPosition);\n\n this.renderPoint(targetElement, pointContainer);\n }\n\n private getPointPosition(step: ThyGuiderStep, targetElement: Element): [number, number] {\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n const pointOffset = step.pointOffset;\n // 只通过 pointOffset 控制 point 的位置,默认在 target 的右下角,\n // offset 的基点也为默认位置\n return [targetElementWidth + pointOffset[0], targetElementHeight + pointOffset[1]];\n }\n\n private setPointPosition(pointPosition: [number, number]) {\n const currentPointContainer = this.renderer.createElement('div');\n\n this.renderer.addClass(currentPointContainer, 'thy-guider-highlight-container');\n if (this.guiderRef.config.pointClass) {\n this.addPointClass(currentPointContainer, this.guiderRef.config.pointClass);\n }\n this.renderer.setStyle(currentPointContainer, 'position', 'absolute');\n this.renderer.setStyle(currentPointContainer, 'left', pointPosition[0] + 'px');\n this.renderer.setStyle(currentPointContainer, 'top', pointPosition[1] + 'px');\n this.renderer.setStyle(currentPointContainer, 'transform', 'translate(-100%,-100%)');\n\n return currentPointContainer;\n }\n\n private addPointClass(el: any, pointClass: string | string[]) {\n if (isString(pointClass)) {\n this.renderer.addClass(el, pointClass);\n }\n if (isArray(pointClass)) {\n pointClass.forEach(classItem => {\n this.renderer.addClass(el, classItem);\n });\n }\n }\n\n private renderPoint(targetElement: Element, pointContainer: any) {\n this.renderer.appendChild(targetElement, pointContainer);\n this.lastPointerContainer = pointContainer;\n this.lastTargetElement = targetElement;\n this.createTip(this.step);\n }\n\n private removeLastPointContainer() {\n if (this.lastPointerContainer) {\n this.renderer.removeChild(this.document.body, this.lastPointerContainer);\n this.lastPointerContainer = undefined;\n }\n }\n\n private createTip(step: ThyGuiderStep) {\n if (this.isTipHasTarget(step)) {\n this.tipWithTarget(step);\n } else {\n this.tipWithoutTarget(step);\n }\n }\n\n private tipWithoutTarget(step: ThyGuiderStep) {\n const position = this.getTipPosition(step);\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, {\n origin: null,\n originPosition: position,\n originActiveClass: '',\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n });\n }\n\n private getTipPosition(step: ThyGuiderStep): { x: number; y: number } {\n if (isPositionDataType(step.target)) {\n return step.target;\n }\n return this.guiderRef.config.defaultPosition;\n }\n\n private createTipContainer() {\n const tipContainer = this.renderer.createElement('div');\n this.renderer.addClass(tipContainer, 'thy-guider-content-container');\n this.renderer.setStyle(tipContainer, 'position', 'absolute');\n this.renderer.setStyle(tipContainer, 'top', '0px');\n this.renderer.setStyle(tipContainer, 'right', '0px');\n this.renderer.setStyle(tipContainer, 'bottom', '0px');\n this.renderer.setStyle(tipContainer, 'left', '0px');\n return tipContainer;\n }\n\n private tipWithTarget(step: ThyGuiderStep) {\n const targetElement = this.getTargetElement(step);\n const hintContainer = this.createTipContainer();\n\n this.renderer.appendChild(targetElement, hintContainer);\n this.lastTipContainer = hintContainer;\n\n const popoverConfig = {\n origin: hintContainer,\n placement: step.hintPlacement,\n panelClass: this.guiderRef.config.hintClass || '',\n backdropClosable: false,\n hasBackdrop: false,\n manualClosure: true,\n initialState: {\n guiderRef: this.guiderRef,\n stepRef: this\n },\n scrollStrategy: this.overlay.scrollStrategies.block()\n } as ThyPopoverConfig<any>;\n\n const pointPosition = this.getPointPosition(step, targetElement);\n const hintOffset = this.getTipOffset(step, pointPosition, targetElement);\n if (hintOffset) {\n popoverConfig.offset = hintOffset;\n }\n this.lastPopoverRef = this.popover.open(this.guiderRef.config.hintComponent, popoverConfig);\n }\n\n private getTipOffset(step: ThyGuiderStep, pointPosition: [number, number], targetElement: Element): number {\n const hintPlacement = step.hintPlacement;\n const targetElementClientRect = targetElement.getBoundingClientRect();\n const { width: targetElementWidth, height: targetElementHeight } = targetElementClientRect;\n let hintOffset: number = step.hintOffset || 0;\n const pointXAxisOffset = pointPosition[0];\n const pointYAxisOffset = pointPosition[1];\n\n if (hintPlacement.startsWith('top')) {\n if (pointYAxisOffset < pointContainerSize) {\n hintOffset = hintOffset + Math.abs(pointYAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('bottom')) {\n if (pointYAxisOffset > targetElementHeight) {\n hintOffset = hintOffset + (pointYAxisOffset - targetElementHeight) + 10; // 10 为空隙量\n }\n } else if (hintPlacement.startsWith('left')) {\n if (pointXAxisOffset < 0) {\n hintOffset = hintOffset + Math.abs(pointXAxisOffset) + pointContainerSize;\n }\n } else if (hintPlacement.startsWith('right')) {\n if (pointXAxisOffset > targetElementWidth) {\n hintOffset = hintOffset + (pointXAxisOffset - targetElementWidth) + 10; // 10 为空隙量\n }\n }\n return hintOffset;\n }\n\n private removeTip() {\n if (this.lastPopoverRef) {\n this.lastPopoverRef.close();\n this.lastPopoverRef = undefined;\n }\n if (this.lastTipContainer) {\n this.renderer.removeChild(this.document.body, this.lastTipContainer);\n this.lastTipContainer = undefined;\n }\n if (this.lastTargetElement && this.targetElementObserver) {\n this.targetElementObserver.unsubscribe();\n this.lastTargetElement = undefined;\n this.targetElementObserver = undefined;\n }\n }\n\n private isTipHasTarget(step: ThyGuiderStep): boolean {\n if (step.target) {\n return !isPositionDataType(step.target);\n } else {\n return !!this.guiderManager.getActiveTarget(step.key);\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\n/**\n * @public\n * @order 30\n */\nexport interface ThyGuiderStep<TData = any> {\n /**\n * 步骤的唯一标识符\n */\n key: string;\n\n /**\n * 步骤的目标DOM selectors,如果为 [number,number] 类型则是相对浏览器视窗的位置\n * @type string | string[] | { x: number; y: number }\n */\n target?: string | string[] | { x: number; y: number };\n\n /**\n * 新手引导内容组件的值\n */\n data: TData;\n\n /**\n * 步骤对应的路由\n */\n route?: string;\n\n /**\n * 当前步骤内容组件基于 target 元素的方位\n */\n hintPlacement?: ThyPlacement;\n\n /**\n * 当前步骤内容组件基于位置的偏移量(与 popover 中 offset 相同作用)\n */\n hintOffset?: number;\n\n /**\n * 当前步骤高亮圆圈基于默认位置的偏移量\n */\n pointOffset?: [number, number];\n}\n\n/**\n * 新手引导服务的配置项\n * @public\n * @order 20\n */\nexport class ThyGuiderConfig {\n /**\n * 新手引导内容组件\n */\n hintComponent?: Type<unknown>;\n\n /**\n * 新手引导步骤信息\n * @type ThyGuiderStep[]\n */\n steps: ThyGuiderStep[];\n\n /**\n * 新手引导内容组件基于 target 元素的方位\n */\n hintPlacement?: ThyPlacement;\n\n /**\n * 新手引导内容组件默认位置(基于浏览器视窗,优先级小于 hintPlacement\n */\n defaultPosition?: { x: number; y: number };\n\n /**\n * 新手引导高亮圆圈基于默认位置的偏移量\n */\n pointOffset?: [number, number];\n\n /**\n * 新手引导内容组件基于位置的偏移量(与 popover 中 offset 相同作用)\n */\n hintOffset?: number;\n\n /**\n * 新手引导弹窗的自定义类\n * @type string | string[]\n */\n hintClass?: string | string[];\n\n /**\n * 新手引导point的自定义类\n * @type string | string[]\n */\n pointClass?: string | string[];\n}\n\nexport const defaultGuiderPositionConfig = {\n hintComponent: null as Type<unknown>,\n hintPlacement: 'rightBottom',\n defaultPosition: { x: 0, y: 0 },\n pointOffset: [0, 0],\n hintOffset: 4\n};\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { ThyGuiderStepRef } from './guider-step-ref';\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { ThyGuiderConfig, ThyGuiderStep } from './guider.class';\nimport { Inject, NgZone, RendererFactory2 } from '@angular/core';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport class ThyGuiderRef {\n public steps: ThyGuiderStep[];\n\n private stepChange$: ReplaySubject<ThyGuiderStep> = new ReplaySubject<ThyGuiderStep>();\n\n private guiderEnded$ = new Subject();\n\n private closed$ = new Subject<ThyGuiderStep>();\n\n private targetClicked$ = new Subject<ThyGuiderStep>();\n\n private currentStep: ThyGuiderStep;\n\n private currentStepIndex: number;\n\n private stepsRef: ThyGuiderStepRef[];\n\n constructor(\n public config: ThyGuiderConfig,\n private rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {\n this.stepsRef = config.steps.map((step, index) => {\n return new ThyGuiderStepRef(step, index, this.rendererFactory, this.popover, this.guiderManager, this.overlay, this.document);\n });\n this.steps = config.steps;\n }\n\n public stepChange(): Observable<ThyGuiderStep> {\n return this.stepChange$.asObservable();\n }\n\n public ended() {\n return this.guiderEnded$;\n }\n\n public closed() {\n return this.closed$;\n }\n\n public targetClicked() {\n return this.targetClicked$;\n }\n\n public start(startWith?: number) {\n this.to(startWith);\n\n return this.stepChange();\n }\n\n public next() {\n if (this.currentStepIndex + 1 > this.steps.length) {\n return;\n }\n this.to(this.currentStepIndex + 1);\n }\n\n public previous() {\n if (this.currentStepIndex - 1 < 0) {\n return;\n }\n\n this.to(this.currentStepIndex - 1);\n }\n\n public active(indexOrKey: number | string): void {\n if (helpers.isNumber(indexOrKey)) {\n this.to(indexOrKey as number);\n return;\n }\n if (helpers.isString(indexOrKey)) {\n const index = this.steps.findIndex(step => step.key === (indexOrKey as string));\n this.to(index);\n return;\n }\n }\n\n private to(index: number): void {\n this.removeExistedStep();\n\n if (!helpers.isNumber(index) || index >= this.steps.length || index < 0 || Number.isNaN(index)) {\n index = 0;\n }\n this.currentStep = this.steps[index];\n this.currentStepIndex = index;\n\n // update guiderManager\n this.guiderManager.updateActive(this.currentStep.key, this);\n if (this.currentStep.route && this.currentStep.route !== this.router.url) {\n this.ngZone.run(() => {\n this.router.navigateByUrl(this.currentStep.route);\n });\n return;\n }\n setTimeout(() => {\n this.drawStep();\n this.notifyStepClicked();\n }, 0);\n }\n\n public close() {\n this.removeManagerActiveKey();\n this.stepsRef[this.currentStepIndex]?.dispose();\n this.closed$.next(this.currentStep);\n }\n\n public end() {\n this.close();\n this.guiderEnded$.next(this.currentStep);\n this.notifyGuiderIsFinished();\n }\n\n private removeManagerActiveKey() {\n const activeKey = this.guiderManager.getActive().key;\n if (activeKey && this.steps.some(step => step.key === activeKey)) {\n this.guiderManager.updateActive('', undefined);\n }\n }\n\n private notifyStepClicked() {\n this.stepChange$.next(this.currentStep);\n }\n\n private drawStep() {\n this.removeExistedStep();\n this.stepsRef[this.currentStepIndex].show(this);\n }\n\n private notifyGuiderIsFinished() {\n this.stepChange$.complete();\n // this.targetClicked().unsubscribe();\n this.currentStepIndex = 0;\n }\n\n private removeExistedStep() {\n this.stepsRef[this.currentStepIndex]?.dispose();\n }\n}\n","import { Router } from '@angular/router';\nimport { helpers } from 'ngx-tethys/util';\nimport { DOCUMENT } from '@angular/common';\nimport { ThyGuiderRef } from './guider-ref';\nimport { Inject, NgZone } from '@angular/core';\nimport { ThyPopover } from 'ngx-tethys/popover';\nimport { ThyGuiderManager } from './guider-manager';\nimport { Injectable, RendererFactory2 } from '@angular/core';\nimport { ThyGuiderStep, ThyGuiderConfig, defaultGuiderPositionConfig } from './guider.class';\nimport { Overlay } from '@angular/cdk/overlay';\n\n/**\n * 新手引导服务\n * @public\n * @order 10\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyGuider {\n private guiderRef: ThyGuiderRef;\n\n private guiderRefs: ThyGuiderRef[] = [];\n\n constructor(\n private readonly rendererFactory: RendererFactory2,\n private popover: ThyPopover,\n private router: Router,\n private guiderManager: ThyGuiderManager,\n private ngZone: NgZone,\n private overlay: Overlay,\n @Inject(DOCUMENT) private document: any\n ) {}\n\n public create(config: ThyGuiderConfig): ThyGuiderRef {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!config || !config?.steps || !helpers.isArray(config?.steps)) {\n throw new Error(`'config.steps' must be an array of length greater than 0`);\n }\n }\n const normalizeConfig = this.normalizeConfig(config);\n this.guiderRef = new ThyGuiderRef(\n normalizeConfig,\n this.rendererFactory,\n this.popover,\n this.router,\n this.guiderManager,\n this.ngZone,\n this.overlay,\n this.document\n );\n this.guiderRef.closed().subscribe(() => {\n const index = this.guiderRefs.findIndex(guiderRef => guiderRef === this.guiderRef);\n this.guiderRefs.splice(index, 1);\n });\n this.guiderRefs.push(this.guiderRef);\n return this.guiderRef;\n }\n\n private normalizeConfig(config: ThyGuiderConfig): ThyGuiderConfig {\n const normalizeConfig = Object.assign({}, defaultGuiderPositionConfig, config);\n normalizeConfig.steps = normalizeConfig.steps.map(step => {\n return this.normalizeStep(step, normalizeConfig);\n });\n return normalizeConfig;\n }\n\n private normalizeStep(step: ThyGuiderStep, config: ThyGuiderConfig): ThyGuiderStep {\n const tempStep = Object.assign(\n {\n hintPlacement: config.hintPlacement,\n hintOffset: config.hintOffset,\n pointOffset: config.pointOffset\n },\n step\n );\n\n return tempStep;\n }\n\n close() {\n if (this.guiderRefs.length > 0) {\n const lasGuiderRef = this.guiderRefs[this.guiderRefs.length - 1];\n if (lasGuiderRef) {\n lasGuiderRef.close();\n this.guiderRefs.pop();\n }\n }\n }\n}\n","import { ThyGuiderManager } from './guider-manager';\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit, NgZone } from '@angular/core';\nimport { take } from 'rxjs/operators';\n\n/**\n * 标记新手引导的步骤的target,使用指令方式的新手引导支持多路由跳转\n * @name thyGuiderTarget\n * @order 40\n */\n@Directive({\n selector: '[thyGuiderTarget]',\n exportAs: 'thyGuiderTarget',\n standalone: true\n})\nexport class ThyGuiderTargetDirective implements OnInit, OnDestroy, AfterViewInit {\n /**\n * 标记当前元素对应的新手引导中 step 的 key\n */\n @Input('thyGuiderTarget')\n target: string;\n\n constructor(\n private guiderManager: ThyGuiderManager,\n private el: ElementRef,\n private ngZone: NgZone\n ) {}\n\n ngOnInit() {\n this.guiderManager.addStepTarget(this.target, this.el.nativeElement);\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n const { key, guiderRef } = this.guiderManager.getActive();\n if (key === this.target) {\n const index = guiderRef.steps.findIndex(step => step.key === this.target);\n this.ngZone.run(() => {\n guiderRef.active(index);\n });\n }\n });\n }\n\n ngAfterViewInit() {}\n\n ngOnDestroy() {\n const { guiderRef } = this.guiderManager.getActive();\n if (guiderRef) {\n guiderRef.close();\n }\n this.guiderManager.removeStepTarget(this.target);\n }\n}\n","import { HostBinding, Component, OnInit, TemplateRef } from '@angular/core';\nimport { ThyGuiderRef } from '../guider-ref';\nimport { helpers } from 'ngx-tethys/util';\nimport { defaultGuiderPositionConfig, ThyGuiderStep } from '../guider.class';\nimport { ThyGuiderStepRef } from '../guider-step-ref';\nimport { NgIf, NgTemplateOutlet, NgFor, NgClass } from '@angular/common';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-guider-hint',\n templateUrl: 'guider-hint.component.html',\n standalone: true,\n imports: [NgIf, NgTemplateOutlet, NgFor, NgClass]\n})\nexport class ThyGuiderHint implements OnInit {\n @HostBinding('class.thy-guider-tip-container') guiderHint = true;\n\n public guiderRef: ThyGuiderRef;\n\n public stepRef: ThyGuiderStepRef;\n\n public descriptionString: string;\n\n public descriptionTemplateRef: TemplateRef<any>;\n\n public currentStepIndex: number;\n\n constructor() {}\n\n ngOnInit() {\n this.setDescription(this.stepRef.step.data.description);\n }\n\n private setDescription(value: string | TemplateRef<any>) {\n if (helpers.isString(value)) {\n this.descriptionString = value as string;\n } else {\n this.descriptionTemplateRef = value as TemplateRef<any>;\n }\n }\n\n public jump() {\n this.guiderRef.end();\n }\n\n public prev() {\n this.guiderRef.previous();\n }\n\n public next() {\n this.guiderRef.next();\n }\n\n public end() {\n this.guiderRef.end();\n }\n\n public trackByFn(index: number, step: ThyGuiderStep) {\n return step.key || index;\n }\n}\n\ndefaultGuiderPositionConfig.hintComponent = ThyGuiderHint;\n","<div class=\"thy-guider-tip-top\">\n <img [src]=\"stepRef.step.data.image\" [alt]=\"stepRef.step.data.title\" />\n <a href=\"javascript:;\" class=\"thy-guider-tip-top-btn\" (click)=\"jump()\">跳过</a>\n</div>\n<div class=\"thy-guider-tip-content bg-white\">\n <div class=\"thy-guider-tip-content-title\">{{ stepRef.step.data.title }}</div>\n <div class=\"thy-guider-tip-content-description\">\n <ng-container *ngIf=\"descriptionTemplateRef; else stringTemplateRef\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n </ng-container>\n <ng-template #stringTemplateRef>{{ descriptionString }}</ng-template>\n </div>\n <div class=\"thy-guider-tip-step\">\n <div class=\"thy-guider-tip-step-pagination\">\n <span\n class=\"pagination-item\"\n *ngFor=\"let step of guiderRef.steps; let i = index; trackBy: trackByFn\"\n [ngClass]=\"{ active: i === stepRef.stepIndex }\"\n ></span>\n </div>\n <div class=\"thy-guider-tip-step-btn\">\n <ng-container *ngIf=\"stepRef.stepIndex !== 0\">\n <a href=\"javascript:;\" (click)=\"prev()\" class=\"thy-guider-tip-step-pre\">上一步</a>\n </ng-container>\n <ng-container *ngIf=\"stepRef.stepIndex !== guiderRef.steps.length - 1; else finish\">\n <a href=\"javascript:;\" (click)=\"next()\" class=\"thy-guider-tip-step-next\">下一步</a>\n </ng-container>\n <ng-template #finish>\n <a href=\"javascript:;\" (click)=\"end()\" class=\"thy-guider-tip-step-next\">完成</a>\n </ng-template>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ThyGuider } from './guider.service';\nimport { CommonModule } from '@angular/common';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyPopoverModule } from 'ngx-tethys/popover';\nimport { ThyGuiderTargetDirective } from './guider.directive';\nimport { ThyGuiderHint } from './guider-hint/guider-hint.component';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyIconModule, ThyButtonModule, ThyPopoverModule, ThyGuiderHint, ThyGuiderTargetDirective],\n exports: [ThyGuiderHint, ThyGuiderTargetDirective],\n providers: [ThyGuider]\n})\nexport class ThyGuiderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyGuiderManager"],"mappings":"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"}
@@ -340,10 +340,10 @@ class ThyIconRegistry {
340
340
  setIconMode(mode) {
341
341
  this.internalIconMode = mode;
342
342
  }
343
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIconRegistry, deps: [{ token: i1.DomSanitizer }, { token: i2.HttpClient }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
344
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIconRegistry, providedIn: 'root' }); }
343
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyIconRegistry, deps: [{ token: i1.DomSanitizer }, { token: i2.HttpClient }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
344
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyIconRegistry, providedIn: 'root' }); }
345
345
  }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIconRegistry, decorators: [{
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyIconRegistry, decorators: [{
347
347
  type: Injectable,
348
348
  args: [{
349
349
  providedIn: 'root'
@@ -503,10 +503,10 @@ class ThyIcon {
503
503
  const titleElement = svg.querySelector('title');
504
504
  titleElement && titleElement.remove();
505
505
  }
506
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIcon, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: ThyIconRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
507
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.4", type: ThyIcon, isStandalone: true, selector: "thy-icon, [thy-icon]", inputs: { iconType: ["thyIconType", "iconType"], iconTwotoneColor: ["thyTwotoneColor", "iconTwotoneColor"], iconName: ["thyIconName", "iconName"], iconRotate: ["thyIconRotate", "iconRotate", numberAttribute], iconSet: ["thyIconSet", "iconSet"], iconLegging: ["thyIconLegging", "iconLegging", coerceBooleanProperty], iconLinearGradient: ["thyIconLinearGradient", "iconLinearGradient", coerceBooleanProperty] }, host: { properties: { "class.thy-icon-legging": "this.iconLegging" }, classAttribute: "thy-icon" }, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
506
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyIcon, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: ThyIconRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
507
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyIcon, isStandalone: true, selector: "thy-icon, [thy-icon]", inputs: { iconType: ["thyIconType", "iconType"], iconTwotoneColor: ["thyTwotoneColor", "iconTwotoneColor"], iconName: ["thyIconName", "iconName"], iconRotate: ["thyIconRotate", "iconRotate", numberAttribute], iconSet: ["thyIconSet", "iconSet"], iconLegging: ["thyIconLegging", "iconLegging", coerceBooleanProperty], iconLinearGradient: ["thyIconLinearGradient", "iconLinearGradient", coerceBooleanProperty] }, host: { properties: { "class.thy-icon-legging": "this.iconLegging" }, classAttribute: "thy-icon" }, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
508
508
  }
509
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIcon, decorators: [{
509
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyIcon, decorators: [{
510
510
  type: Component,
511
511
  args: [{
512
512
  selector: 'thy-icon, [thy-icon]',
@@ -545,11 +545,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
545
545
  }] } });
546
546
 
547
547
  class ThyIconModule {
548
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
549
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ThyIconModule, imports: [ThyIcon, CommonModule, FormsModule], exports: [ThyIcon] }); }
550
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIconModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule, FormsModule] }); }
548
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
549
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyIconModule, imports: [ThyIcon, CommonModule, FormsModule], exports: [ThyIcon] }); }
550
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyIconModule, providers: [provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule, FormsModule] }); }
551
551
  }
552
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyIconModule, decorators: [{
552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyIconModule, decorators: [{
553
553
  type: NgModule,
554
554
  args: [{
555
555
  declarations: [],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-icon.mjs","sources":["../../../src/icon/config.ts","../../../src/icon/icon-registry.ts","../../../src/icon/icon.component.ts","../../../src/icon/icon.module.ts","../../../src/icon/ngx-tethys-icon.ts"],"sourcesContent":["let printErrorWhenNotFound = true;\n\nexport function setPrintErrorWhenIconNotFound(value: boolean) {\n printErrorWhenNotFound = value;\n}\n\nexport function getWhetherPrintErrorWhenIconNotFound() {\n return printErrorWhenNotFound;\n}\n","import { forkJoin, Observable, of, throwError } from 'rxjs';\nimport { catchError, finalize, map, share, tap } from 'rxjs/operators';\n\nimport { DOCUMENT } from '@angular/common';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Inject, Injectable, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl } from '@angular/platform-browser';\nimport { isString } from 'ngx-tethys/util';\n\nclass SvgIconConfig {\n url: SafeResourceUrl | null;\n svgElement: SVGElement | null;\n\n constructor(data: SafeResourceUrl | SVGElement) {\n // Note that we can't use `instanceof SVGElement` here,\n // because it'll break during server-side rendering.\n if (data && !!(data as any).nodeName) {\n this.svgElement = data as SVGElement;\n } else {\n this.url = data as SafeResourceUrl;\n }\n }\n}\n\nexport type IconMode = 'font' | 'svg';\n\nexport type SvgResourceUrl = SafeResourceUrl | string;\n\nexport type SvgHtml = SafeHtml | string;\n\n/**\n * @order 20\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyIconRegistry {\n private defaultFontSetClass = 'wt-icon';\n private internalIconMode: IconMode = 'svg';\n private svgIconConfigs = new Map<string, SvgIconConfig>();\n private svgIconSetConfigs = new Map<string, SvgIconConfig[]>();\n private inProgressUrlFetches = new Map<string, Observable<string>>();\n\n public get iconMode() {\n return this.internalIconMode;\n }\n\n constructor(private sanitizer: DomSanitizer, private httpClient: HttpClient, @Inject(DOCUMENT) private document: any) {}\n\n private getIconNameNotFoundError(iconName: string): Error {\n return Error(`Unable to find icon with the name \"${iconName}\"`);\n }\n\n private getIconFailedToSanitizeLiteralError(literal: SvgHtml): Error {\n return Error(\n `The literal provided to ThyIconRegistry was not trusted as safe HTML by ` +\n `Angular's DomSanitizer. Attempted literal was \"${literal}\".`\n );\n }\n\n private internalAddSvgIconSet(namespace: string, config: SvgIconConfig): this {\n const configNamespace = this.svgIconSetConfigs.get(namespace);\n\n if (configNamespace) {\n configNamespace.push(config);\n } else {\n this.svgIconSetConfigs.set(namespace, [config]);\n }\n\n return this;\n }\n\n private cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n }\n\n private fetchUrl(safeUrl: SafeResourceUrl | null): Observable<string> {\n if (safeUrl == null) {\n throw Error(`Cannot fetch icon from URL \"${safeUrl}\".`);\n }\n\n const url = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !url) {\n throw new Error(\n `The URL provided to ThyIconRegistry was not trusted as a resource URL ` +\n `via Angular's DomSanitizer. Attempted URL was \"${url}\".`\n );\n }\n\n // Store in-progress fetches to avoid sending a duplicate request for a URL when there is\n // already a request in progress for that URL. It's necessary to call share() on the\n // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.\n const inProgressFetch = this.inProgressUrlFetches.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n } else {\n // TODO(jelbourn): for some reason, the `finalize` operator \"loses\" the generic type on the\n // Observable. Figure out why and fix it.\n const req = this.httpClient.get(url, { responseType: 'text' }).pipe(\n finalize(() => this.inProgressUrlFetches.delete(url)),\n share()\n );\n\n this.inProgressUrlFetches.set(url, req);\n return req;\n }\n }\n\n private toSvgElement(element: Element): SVGElement {\n const svg = this.svgElementFromString('<svg></svg>');\n\n for (let i = 0; i < element.childNodes.length; i++) {\n if (element.childNodes[i].nodeType === this.document.ELEMENT_NODE) {\n svg.appendChild(element.childNodes[i].cloneNode(true));\n }\n }\n\n return svg;\n }\n\n private extractSvgIconFromIconSet(iconSet: SVGElement, iconName: string): SVGElement | null {\n // Use the `id=\"iconName\"` syntax in order to escape special\n // characters in the ID (versus using the #iconName syntax).\n const iconSource = iconSet.querySelector(`[id=\"${iconName}\"]`);\n\n if (!iconSource) {\n return null;\n }\n\n // Clone the element and remove the ID to prevent multiple elements from being added\n // to the page with the same ID.\n const iconElement = iconSource.cloneNode(true) as Element;\n iconElement.removeAttribute('id');\n\n // If the icon node is itself an <svg> node, clone and return it directly. If not, set it as\n // the content of a new <svg> node.\n if (iconElement.nodeName.toLowerCase() === 'svg') {\n return this.setSvgAttributes(iconElement as SVGElement);\n }\n\n // If the node is a <symbol>, it won't be rendered so we have to convert it into <svg>. Note\n // that the same could be achieved by referring to it via <use href=\"#id\">, however the <use>\n // tag is problematic on Firefox, because it needs to include the current page path.\n if (iconElement.nodeName.toLowerCase() === 'symbol') {\n return this.setSvgAttributes(this.toSvgElement(iconElement));\n }\n\n // createElement('SVG') doesn't work as expected; the DOM ends up with\n // the correct nodes, but the SVG content doesn't render. Instead we\n // have to create an empty SVG node using innerHTML and append its content.\n // Elements created using DOMParser.parseFromString have the same problem.\n // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display\n const svg = this.svgElementFromString('<svg></svg>');\n // Clone the node so we don't remove it from the parent icon set element.\n svg.appendChild(iconElement);\n\n return this.setSvgAttributes(svg);\n }\n\n private extractIconWithNameFromIconSetConfigs(iconName: string, iconSetConfigs: SvgIconConfig[]): SVGElement | null {\n // Iterate backwards, so icon sets added later have precedence.\n for (let i = iconSetConfigs.length - 1; i >= 0; i--) {\n const config = iconSetConfigs[i];\n if (config.svgElement) {\n const foundIcon = this.extractSvgIconFromIconSet(config.svgElement, iconName);\n if (foundIcon) {\n return foundIcon;\n }\n }\n }\n return null;\n }\n\n private svgElementFromString(str: string): SVGElement {\n const div = this.document.createElement('DIV');\n div.innerHTML = str;\n const svg = div.querySelector('svg') as SVGElement;\n\n if (!svg) {\n throw Error('<svg> tag not found');\n }\n\n return svg;\n }\n\n private setSvgAttributes(svg: SVGElement): SVGElement {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '1em');\n svg.setAttribute('width', '1em');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n return svg;\n }\n\n private createSvgElementForSingleIcon(responseText: string): SVGElement {\n const svg = this.svgElementFromString(responseText);\n this.setSvgAttributes(svg);\n return svg;\n }\n\n private loadSvgIconFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n return this.fetchUrl(config.url).pipe(map(svgText => this.createSvgElementForSingleIcon(svgText)));\n }\n\n private loadSvgIconSetFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n // If the SVG for this icon set has already been parsed, do nothing.\n if (config.svgElement) {\n return of(config.svgElement);\n }\n\n return this.fetchUrl(config.url).pipe(\n map(svgText => {\n // It is possible that the icon set was parsed and cached by an earlier request, so parsing\n // only needs to occur if the cache is yet unset.\n if (!config.svgElement) {\n config.svgElement = this.svgElementFromString(svgText);\n }\n\n return config.svgElement;\n })\n );\n }\n\n private getSvgFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n if (config.svgElement) {\n // We already have the SVG element for this icon, return a copy.\n return of(this.cloneSvg(config.svgElement));\n } else {\n // Fetch the icon from the config's URL, cache it, and return a copy.\n return this.loadSvgIconFromConfig(config).pipe(\n tap(svg => (config.svgElement = svg)),\n map(svg => this.cloneSvg(svg))\n );\n }\n }\n\n private getSvgFromIconSetConfigs(name: string, iconSetConfigs: SvgIconConfig[]): Observable<SVGElement> {\n // For all the icon set SVG elements we've fetched, see if any contain an icon with the\n // requested name.\n const namedIcon = this.extractIconWithNameFromIconSetConfigs(name, iconSetConfigs);\n\n if (namedIcon) {\n // We could cache namedIcon in svgIconConfigs, but since we have to make a copy every\n // time anyway, there's probably not much advantage compared to just always extracting\n // it from the icon set.\n return of(namedIcon);\n }\n\n // Not found in any cached icon sets. If there are icon sets with URLs that we haven't\n // fetched, fetch them now and look for iconName in the results.\n const iconSetFetchRequests: Observable<SVGElement | null>[] = iconSetConfigs\n .filter(iconSetConfig => !iconSetConfig.svgElement)\n .map(iconSetConfig => {\n return this.loadSvgIconSetFromConfig(iconSetConfig).pipe(\n catchError((err: HttpErrorResponse): Observable<SVGElement | null> => {\n const url = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconSetConfig.url);\n\n // Swallow errors fetching individual URLs so the\n // combined Observable won't necessarily fail.\n console.error(`Loading icon set URL: ${url} failed: ${err.message}`);\n return of(null);\n })\n );\n });\n\n // Fetch all the icon set URLs. When the requests complete, every IconSet should have a\n // cached SVG element (unless the request failed), and we can check again for the icon.\n return forkJoin(iconSetFetchRequests).pipe(\n map(() => {\n const foundIcon = this.extractIconWithNameFromIconSetConfigs(name, iconSetConfigs);\n\n if (!foundIcon) {\n throw this.getIconNameNotFoundError(name);\n }\n\n return foundIcon;\n })\n );\n }\n\n private internalAddSvgIconConfig(namespace: string, iconName: string, config: SvgIconConfig): this {\n this.svgIconConfigs.set(this.buildIconKey(namespace, iconName), config);\n return this;\n }\n\n public buildIconKey(namespace: string, name: string) {\n return namespace + ':' + name;\n }\n\n public splitIconName(iconName: string): [string, string] {\n if (!iconName) {\n return ['', ''];\n }\n const parts = iconName.split(':');\n switch (parts.length) {\n case 1:\n return ['', parts[0]]; // Use default namespace.\n case 2:\n return <[string, string]>parts;\n default:\n throw Error(`Invalid icon name: \"${iconName}\"`);\n }\n }\n\n public addSvgIconSetInNamespace(namespace: string, url: SvgResourceUrl): this {\n url = isString(url) ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : url;\n return this.internalAddSvgIconSet(namespace, new SvgIconConfig(url));\n }\n\n /**\n * 添加SVG图标集,添加到默认命名空间\n */\n public addSvgIconSet(url: SvgResourceUrl): this {\n return this.addSvgIconSetInNamespace('', url);\n }\n\n public addSvgIconSetLiteralInNamespace(namespace: string, literal: SafeHtml): this {\n const sanitizedLiteral = this.sanitizer.sanitize(SecurityContext.HTML, literal);\n\n if (!sanitizedLiteral) {\n throw this.getIconFailedToSanitizeLiteralError(literal);\n }\n\n const svgElement = this.svgElementFromString(sanitizedLiteral);\n return this.internalAddSvgIconSet(namespace, new SvgIconConfig(svgElement));\n }\n\n public addSvgIconSetLiteral(literal: SafeHtml): this {\n return this.addSvgIconSetLiteralInNamespace('', literal);\n }\n\n /**\n * @description.en-us Registers an icon by URL in the specified namespace.\n * @description 添加单个SVG图标到指定的命名空间\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n public addSvgIconInNamespace(namespace: string, iconName: string, url: SvgResourceUrl): this {\n url = isString(url) ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : url;\n return this.internalAddSvgIconConfig(namespace, iconName, new SvgIconConfig(url));\n }\n\n /**\n * @description.en-us Registers an icon by URL in the default namespace.\n * @description 添加单个SVG图标\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n public addSvgIcon(iconName: string, url: SvgResourceUrl): this {\n return this.addSvgIconInNamespace('', iconName, url);\n }\n\n /**\n * @description.en-us Registers an icon using an HTML string in the default namespace.\n * @description 添加单个SVG图标字符串,直接传入 SVG HTML 字符串\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n public addSvgIconLiteral(iconName: string, literal: SvgHtml): this {\n return this.addSvgIconLiteralInNamespace('', iconName, literal);\n }\n\n /**\n * @description.en-us Registers an icon using an HTML string in the specified namespace.\n * @description 添加单个SVG图标字符串到指定的命名空间,直接传入 SVG HTML 字符串\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n public addSvgIconLiteralInNamespace(namespace: string, iconName: string, literal: SvgHtml): this {\n literal = isString(literal) ? this.sanitizer.bypassSecurityTrustHtml(literal) : literal;\n const sanitizedLiteral = this.sanitizer.sanitize(SecurityContext.HTML, literal);\n\n if (!sanitizedLiteral) {\n throw this.getIconFailedToSanitizeLiteralError(literal);\n }\n\n const svgElement = this.createSvgElementForSingleIcon(sanitizedLiteral);\n return this.internalAddSvgIconConfig(namespace, iconName, new SvgIconConfig(svgElement));\n }\n\n public getDefaultFontSetClass() {\n return this.defaultFontSetClass;\n }\n\n public getFontSetClassByAlias(fontSet: string) {\n return fontSet;\n }\n\n /**\n * 获取某个图标\n */\n public getSvgIcon(name: string, namespace: string = ''): Observable<SVGElement> {\n // Return (copy of) cached icon if possible.\n const key = this.buildIconKey(namespace, name);\n const config = this.svgIconConfigs.get(key);\n\n if (config) {\n return this.getSvgFromConfig(config);\n }\n\n // See if we have any icon sets registered for the namespace.\n const iconSetConfigs = this.svgIconSetConfigs.get(namespace);\n\n if (iconSetConfigs) {\n return this.getSvgFromIconSetConfigs(name, iconSetConfigs);\n }\n\n return throwError(this.getIconNameNotFoundError(key));\n }\n\n public setIconMode(mode: IconMode) {\n this.internalIconMode = mode;\n }\n}\n","import { take } from 'rxjs/operators';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewEncapsulation,\n numberAttribute\n} from '@angular/core';\n\nimport { getWhetherPrintErrorWhenIconNotFound } from './config';\nimport { ThyIconRegistry } from './icon-registry';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst iconSuffixMap = {\n fill: 'fill',\n twotone: 'tt'\n};\n\n/**\n * 图标组件\n * @name thy-icon,[thy-icon]\n * @order 10\n */\n@Component({\n selector: 'thy-icon, [thy-icon]',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n host: {\n class: 'thy-icon'\n }\n})\nexport class ThyIcon implements OnInit, OnChanges {\n private initialized = false;\n\n /**\n * 图标的类型\n * @type outline | fill | twotone\n */\n @Input('thyIconType') iconType: 'outline' | 'fill' | 'twotone' = 'outline';\n\n @Input('thyTwotoneColor') iconTwotoneColor: string;\n\n /**\n * 图标的名字\n */\n @Input('thyIconName') iconName: string;\n\n /**\n * 图标的旋转角度\n * @default 0\n */\n @Input({ alias: 'thyIconRotate', transform: numberAttribute }) iconRotate: number;\n\n @Input('thyIconSet') iconSet: string;\n\n /**\n * 图标打底色,镂空的图标,会透过颜色来\n * @default false\n */\n @HostBinding(`class.thy-icon-legging`)\n @Input({ alias: 'thyIconLegging', transform: coerceBooleanProperty })\n iconLegging: boolean;\n\n @Input({ alias: 'thyIconLinearGradient', transform: coerceBooleanProperty })\n iconLinearGradient: boolean;\n\n private hostRenderer = useHostRenderer();\n\n constructor(private render: Renderer2, private elementRef: ElementRef, private iconRegistry: ThyIconRegistry) {}\n\n ngOnInit() {\n this.updateClasses();\n this.initialized = true;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.initialized) {\n if (\n changes['iconName'] ||\n changes['iconSet'] ||\n changes['iconTwotoneColor'] ||\n changes['iconType'] ||\n changes['iconLinearGradient']\n ) {\n this.updateClasses();\n } else if (changes['iconRotate']) {\n this.setStyleRotate();\n }\n }\n }\n\n private updateClasses() {\n const [namespace, iconName] = this.iconRegistry.splitIconName(this.iconName);\n if (iconName) {\n if (this.iconRegistry.iconMode === 'svg') {\n this.iconRegistry\n .getSvgIcon(this.buildIconNameByType(iconName), namespace)\n .pipe(take(1))\n .subscribe(\n svg => {\n this.setSvgElement(svg);\n },\n (error: Error) => {\n if (getWhetherPrintErrorWhenIconNotFound()) {\n console.error(`Error retrieving icon: ${error.message}`);\n }\n }\n );\n this.hostRenderer.updateClass([`thy-icon${namespace ? `-${namespace}` : ``}-${this.buildIconNameByType(iconName)}`]);\n } else {\n const fontSetClass = this.iconSet\n ? this.iconRegistry.getFontSetClassByAlias(this.iconSet)\n : this.iconRegistry.getDefaultFontSetClass();\n this.hostRenderer.updateClass([fontSetClass, `${fontSetClass}-${this.iconName}`]);\n }\n }\n }\n\n private setStyleRotate() {\n if (this.iconRotate !== undefined) {\n this.render.setStyle(this.elementRef.nativeElement.querySelector('svg'), 'transform', `rotate(${this.iconRotate}deg)`);\n }\n }\n\n //#region svg element\n\n private setSvgElement(svg: SVGElement) {\n this.clearSvgElement();\n\n // Workaround for IE11 and Edge ignoring `style` tags inside dynamically-created SVGs.\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/\n // Do this before inserting the element into the DOM, in order to avoid a style recalculation.\n const styleTags = svg.querySelectorAll('style') as NodeListOf<HTMLStyleElement>;\n\n for (let i = 0; i < styleTags.length; i++) {\n styleTags[i].textContent += ' ';\n }\n\n if (this.iconType === 'twotone') {\n const allPaths = svg.querySelectorAll('path');\n if (allPaths.length > 1) {\n allPaths.forEach((child, index: number) => {\n if (child.getAttribute('id').includes('secondary-color')) {\n child.setAttribute('fill', this.iconTwotoneColor);\n }\n });\n }\n }\n\n // Note: we do this fix here, rather than the icon registry, because the\n // references have to point to the URL at the time that the icon was created.\n // if (this._location) {\n // const path = this._location.getPathname();\n // this._previousPath = path;\n // this._cacheChildrenWithExternalReferences(svg);\n // this._prependPathToReferences(path);\n // }\n if (this.iconLinearGradient) {\n this.setBaseUrl(svg);\n this.clearTitleElement(svg);\n }\n\n this.elementRef.nativeElement.appendChild(svg);\n this.setStyleRotate();\n }\n\n private clearSvgElement() {\n const layoutElement: HTMLElement = this.elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n // if (this._elementsWithExternalReferences) {\n // this._elementsWithExternalReferences.clear();\n // }\n\n // Remove existing non-element child nodes and SVGs, and add the new SVG element. Note that\n // we can't use innerHTML, because IE will throw if the element has a data binding.\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n // 1 corresponds to Node.ELEMENT_NODE. We remove all non-element nodes in order to get rid\n // of any loose text nodes, as well as any SVG elements in order to remove any old icons.\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n layoutElement.removeChild(child);\n }\n }\n }\n\n //#endregion\n\n private buildIconNameByType(iconName: string) {\n if (this.iconType && ['fill', 'twotone'].indexOf(this.iconType) >= 0) {\n const suffix = iconSuffixMap[this.iconType];\n return iconName.includes(`-${suffix}`) ? iconName : `${iconName}-${suffix}`;\n } else {\n return iconName;\n }\n }\n\n /**\n * Support Safari SVG LinearGradient.\n * @param svg\n */\n private setBaseUrl(svg: SVGElement) {\n const styleElements = svg.querySelectorAll('style');\n styleElements.forEach((n: HTMLElement) => {\n if (n.style.cssText.includes('url')) {\n n.style.fill = n.style.fill.replace('url(\"', 'url(\"' + location.pathname);\n }\n if (n.style.cssText.includes('clip-path')) {\n n.style.clipPath = n.style.clipPath.replace('url(\"', 'url(\"' + location.pathname);\n }\n });\n }\n\n private clearTitleElement(svg: SVGElement) {\n const titleElement = svg.querySelector('title');\n titleElement && titleElement.remove();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ThyIcon } from './icon.component';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\n\n@NgModule({\n declarations: [],\n exports: [ThyIcon],\n imports: [ThyIcon, CommonModule, FormsModule],\n providers: [provideHttpClient(withInterceptorsFromDi())]\n})\nexport class ThyIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyIconRegistry"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-icon.mjs","sources":["../../../src/icon/config.ts","../../../src/icon/icon-registry.ts","../../../src/icon/icon.component.ts","../../../src/icon/icon.module.ts","../../../src/icon/ngx-tethys-icon.ts"],"sourcesContent":["let printErrorWhenNotFound = true;\n\nexport function setPrintErrorWhenIconNotFound(value: boolean) {\n printErrorWhenNotFound = value;\n}\n\nexport function getWhetherPrintErrorWhenIconNotFound() {\n return printErrorWhenNotFound;\n}\n","import { forkJoin, Observable, of, throwError } from 'rxjs';\nimport { catchError, finalize, map, share, tap } from 'rxjs/operators';\n\nimport { DOCUMENT } from '@angular/common';\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Inject, Injectable, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl } from '@angular/platform-browser';\nimport { isString } from 'ngx-tethys/util';\n\nclass SvgIconConfig {\n url: SafeResourceUrl | null;\n svgElement: SVGElement | null;\n\n constructor(data: SafeResourceUrl | SVGElement) {\n // Note that we can't use `instanceof SVGElement` here,\n // because it'll break during server-side rendering.\n if (data && !!(data as any).nodeName) {\n this.svgElement = data as SVGElement;\n } else {\n this.url = data as SafeResourceUrl;\n }\n }\n}\n\nexport type IconMode = 'font' | 'svg';\n\nexport type SvgResourceUrl = SafeResourceUrl | string;\n\nexport type SvgHtml = SafeHtml | string;\n\n/**\n * @order 20\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ThyIconRegistry {\n private defaultFontSetClass = 'wt-icon';\n private internalIconMode: IconMode = 'svg';\n private svgIconConfigs = new Map<string, SvgIconConfig>();\n private svgIconSetConfigs = new Map<string, SvgIconConfig[]>();\n private inProgressUrlFetches = new Map<string, Observable<string>>();\n\n public get iconMode() {\n return this.internalIconMode;\n }\n\n constructor(\n private sanitizer: DomSanitizer,\n private httpClient: HttpClient,\n @Inject(DOCUMENT) private document: any\n ) {}\n\n private getIconNameNotFoundError(iconName: string): Error {\n return Error(`Unable to find icon with the name \"${iconName}\"`);\n }\n\n private getIconFailedToSanitizeLiteralError(literal: SvgHtml): Error {\n return Error(\n `The literal provided to ThyIconRegistry was not trusted as safe HTML by ` +\n `Angular's DomSanitizer. Attempted literal was \"${literal}\".`\n );\n }\n\n private internalAddSvgIconSet(namespace: string, config: SvgIconConfig): this {\n const configNamespace = this.svgIconSetConfigs.get(namespace);\n\n if (configNamespace) {\n configNamespace.push(config);\n } else {\n this.svgIconSetConfigs.set(namespace, [config]);\n }\n\n return this;\n }\n\n private cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n }\n\n private fetchUrl(safeUrl: SafeResourceUrl | null): Observable<string> {\n if (safeUrl == null) {\n throw Error(`Cannot fetch icon from URL \"${safeUrl}\".`);\n }\n\n const url = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !url) {\n throw new Error(\n `The URL provided to ThyIconRegistry was not trusted as a resource URL ` +\n `via Angular's DomSanitizer. Attempted URL was \"${url}\".`\n );\n }\n\n // Store in-progress fetches to avoid sending a duplicate request for a URL when there is\n // already a request in progress for that URL. It's necessary to call share() on the\n // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.\n const inProgressFetch = this.inProgressUrlFetches.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n } else {\n // TODO(jelbourn): for some reason, the `finalize` operator \"loses\" the generic type on the\n // Observable. Figure out why and fix it.\n const req = this.httpClient.get(url, { responseType: 'text' }).pipe(\n finalize(() => this.inProgressUrlFetches.delete(url)),\n share()\n );\n\n this.inProgressUrlFetches.set(url, req);\n return req;\n }\n }\n\n private toSvgElement(element: Element): SVGElement {\n const svg = this.svgElementFromString('<svg></svg>');\n\n for (let i = 0; i < element.childNodes.length; i++) {\n if (element.childNodes[i].nodeType === this.document.ELEMENT_NODE) {\n svg.appendChild(element.childNodes[i].cloneNode(true));\n }\n }\n\n return svg;\n }\n\n private extractSvgIconFromIconSet(iconSet: SVGElement, iconName: string): SVGElement | null {\n // Use the `id=\"iconName\"` syntax in order to escape special\n // characters in the ID (versus using the #iconName syntax).\n const iconSource = iconSet.querySelector(`[id=\"${iconName}\"]`);\n\n if (!iconSource) {\n return null;\n }\n\n // Clone the element and remove the ID to prevent multiple elements from being added\n // to the page with the same ID.\n const iconElement = iconSource.cloneNode(true) as Element;\n iconElement.removeAttribute('id');\n\n // If the icon node is itself an <svg> node, clone and return it directly. If not, set it as\n // the content of a new <svg> node.\n if (iconElement.nodeName.toLowerCase() === 'svg') {\n return this.setSvgAttributes(iconElement as SVGElement);\n }\n\n // If the node is a <symbol>, it won't be rendered so we have to convert it into <svg>. Note\n // that the same could be achieved by referring to it via <use href=\"#id\">, however the <use>\n // tag is problematic on Firefox, because it needs to include the current page path.\n if (iconElement.nodeName.toLowerCase() === 'symbol') {\n return this.setSvgAttributes(this.toSvgElement(iconElement));\n }\n\n // createElement('SVG') doesn't work as expected; the DOM ends up with\n // the correct nodes, but the SVG content doesn't render. Instead we\n // have to create an empty SVG node using innerHTML and append its content.\n // Elements created using DOMParser.parseFromString have the same problem.\n // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display\n const svg = this.svgElementFromString('<svg></svg>');\n // Clone the node so we don't remove it from the parent icon set element.\n svg.appendChild(iconElement);\n\n return this.setSvgAttributes(svg);\n }\n\n private extractIconWithNameFromIconSetConfigs(iconName: string, iconSetConfigs: SvgIconConfig[]): SVGElement | null {\n // Iterate backwards, so icon sets added later have precedence.\n for (let i = iconSetConfigs.length - 1; i >= 0; i--) {\n const config = iconSetConfigs[i];\n if (config.svgElement) {\n const foundIcon = this.extractSvgIconFromIconSet(config.svgElement, iconName);\n if (foundIcon) {\n return foundIcon;\n }\n }\n }\n return null;\n }\n\n private svgElementFromString(str: string): SVGElement {\n const div = this.document.createElement('DIV');\n div.innerHTML = str;\n const svg = div.querySelector('svg') as SVGElement;\n\n if (!svg) {\n throw Error('<svg> tag not found');\n }\n\n return svg;\n }\n\n private setSvgAttributes(svg: SVGElement): SVGElement {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '1em');\n svg.setAttribute('width', '1em');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n return svg;\n }\n\n private createSvgElementForSingleIcon(responseText: string): SVGElement {\n const svg = this.svgElementFromString(responseText);\n this.setSvgAttributes(svg);\n return svg;\n }\n\n private loadSvgIconFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n return this.fetchUrl(config.url).pipe(map(svgText => this.createSvgElementForSingleIcon(svgText)));\n }\n\n private loadSvgIconSetFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n // If the SVG for this icon set has already been parsed, do nothing.\n if (config.svgElement) {\n return of(config.svgElement);\n }\n\n return this.fetchUrl(config.url).pipe(\n map(svgText => {\n // It is possible that the icon set was parsed and cached by an earlier request, so parsing\n // only needs to occur if the cache is yet unset.\n if (!config.svgElement) {\n config.svgElement = this.svgElementFromString(svgText);\n }\n\n return config.svgElement;\n })\n );\n }\n\n private getSvgFromConfig(config: SvgIconConfig): Observable<SVGElement> {\n if (config.svgElement) {\n // We already have the SVG element for this icon, return a copy.\n return of(this.cloneSvg(config.svgElement));\n } else {\n // Fetch the icon from the config's URL, cache it, and return a copy.\n return this.loadSvgIconFromConfig(config).pipe(\n tap(svg => (config.svgElement = svg)),\n map(svg => this.cloneSvg(svg))\n );\n }\n }\n\n private getSvgFromIconSetConfigs(name: string, iconSetConfigs: SvgIconConfig[]): Observable<SVGElement> {\n // For all the icon set SVG elements we've fetched, see if any contain an icon with the\n // requested name.\n const namedIcon = this.extractIconWithNameFromIconSetConfigs(name, iconSetConfigs);\n\n if (namedIcon) {\n // We could cache namedIcon in svgIconConfigs, but since we have to make a copy every\n // time anyway, there's probably not much advantage compared to just always extracting\n // it from the icon set.\n return of(namedIcon);\n }\n\n // Not found in any cached icon sets. If there are icon sets with URLs that we haven't\n // fetched, fetch them now and look for iconName in the results.\n const iconSetFetchRequests: Observable<SVGElement | null>[] = iconSetConfigs\n .filter(iconSetConfig => !iconSetConfig.svgElement)\n .map(iconSetConfig => {\n return this.loadSvgIconSetFromConfig(iconSetConfig).pipe(\n catchError((err: HttpErrorResponse): Observable<SVGElement | null> => {\n const url = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconSetConfig.url);\n\n // Swallow errors fetching individual URLs so the\n // combined Observable won't necessarily fail.\n console.error(`Loading icon set URL: ${url} failed: ${err.message}`);\n return of(null);\n })\n );\n });\n\n // Fetch all the icon set URLs. When the requests complete, every IconSet should have a\n // cached SVG element (unless the request failed), and we can check again for the icon.\n return forkJoin(iconSetFetchRequests).pipe(\n map(() => {\n const foundIcon = this.extractIconWithNameFromIconSetConfigs(name, iconSetConfigs);\n\n if (!foundIcon) {\n throw this.getIconNameNotFoundError(name);\n }\n\n return foundIcon;\n })\n );\n }\n\n private internalAddSvgIconConfig(namespace: string, iconName: string, config: SvgIconConfig): this {\n this.svgIconConfigs.set(this.buildIconKey(namespace, iconName), config);\n return this;\n }\n\n public buildIconKey(namespace: string, name: string) {\n return namespace + ':' + name;\n }\n\n public splitIconName(iconName: string): [string, string] {\n if (!iconName) {\n return ['', ''];\n }\n const parts = iconName.split(':');\n switch (parts.length) {\n case 1:\n return ['', parts[0]]; // Use default namespace.\n case 2:\n return <[string, string]>parts;\n default:\n throw Error(`Invalid icon name: \"${iconName}\"`);\n }\n }\n\n public addSvgIconSetInNamespace(namespace: string, url: SvgResourceUrl): this {\n url = isString(url) ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : url;\n return this.internalAddSvgIconSet(namespace, new SvgIconConfig(url));\n }\n\n /**\n * 添加SVG图标集,添加到默认命名空间\n */\n public addSvgIconSet(url: SvgResourceUrl): this {\n return this.addSvgIconSetInNamespace('', url);\n }\n\n public addSvgIconSetLiteralInNamespace(namespace: string, literal: SafeHtml): this {\n const sanitizedLiteral = this.sanitizer.sanitize(SecurityContext.HTML, literal);\n\n if (!sanitizedLiteral) {\n throw this.getIconFailedToSanitizeLiteralError(literal);\n }\n\n const svgElement = this.svgElementFromString(sanitizedLiteral);\n return this.internalAddSvgIconSet(namespace, new SvgIconConfig(svgElement));\n }\n\n public addSvgIconSetLiteral(literal: SafeHtml): this {\n return this.addSvgIconSetLiteralInNamespace('', literal);\n }\n\n /**\n * @description.en-us Registers an icon by URL in the specified namespace.\n * @description 添加单个SVG图标到指定的命名空间\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n public addSvgIconInNamespace(namespace: string, iconName: string, url: SvgResourceUrl): this {\n url = isString(url) ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : url;\n return this.internalAddSvgIconConfig(namespace, iconName, new SvgIconConfig(url));\n }\n\n /**\n * @description.en-us Registers an icon by URL in the default namespace.\n * @description 添加单个SVG图标\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n public addSvgIcon(iconName: string, url: SvgResourceUrl): this {\n return this.addSvgIconInNamespace('', iconName, url);\n }\n\n /**\n * @description.en-us Registers an icon using an HTML string in the default namespace.\n * @description 添加单个SVG图标字符串,直接传入 SVG HTML 字符串\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n public addSvgIconLiteral(iconName: string, literal: SvgHtml): this {\n return this.addSvgIconLiteralInNamespace('', iconName, literal);\n }\n\n /**\n * @description.en-us Registers an icon using an HTML string in the specified namespace.\n * @description 添加单个SVG图标字符串到指定的命名空间,直接传入 SVG HTML 字符串\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n public addSvgIconLiteralInNamespace(namespace: string, iconName: string, literal: SvgHtml): this {\n literal = isString(literal) ? this.sanitizer.bypassSecurityTrustHtml(literal) : literal;\n const sanitizedLiteral = this.sanitizer.sanitize(SecurityContext.HTML, literal);\n\n if (!sanitizedLiteral) {\n throw this.getIconFailedToSanitizeLiteralError(literal);\n }\n\n const svgElement = this.createSvgElementForSingleIcon(sanitizedLiteral);\n return this.internalAddSvgIconConfig(namespace, iconName, new SvgIconConfig(svgElement));\n }\n\n public getDefaultFontSetClass() {\n return this.defaultFontSetClass;\n }\n\n public getFontSetClassByAlias(fontSet: string) {\n return fontSet;\n }\n\n /**\n * 获取某个图标\n */\n public getSvgIcon(name: string, namespace: string = ''): Observable<SVGElement> {\n // Return (copy of) cached icon if possible.\n const key = this.buildIconKey(namespace, name);\n const config = this.svgIconConfigs.get(key);\n\n if (config) {\n return this.getSvgFromConfig(config);\n }\n\n // See if we have any icon sets registered for the namespace.\n const iconSetConfigs = this.svgIconSetConfigs.get(namespace);\n\n if (iconSetConfigs) {\n return this.getSvgFromIconSetConfigs(name, iconSetConfigs);\n }\n\n return throwError(this.getIconNameNotFoundError(key));\n }\n\n public setIconMode(mode: IconMode) {\n this.internalIconMode = mode;\n }\n}\n","import { take } from 'rxjs/operators';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewEncapsulation,\n numberAttribute\n} from '@angular/core';\n\nimport { getWhetherPrintErrorWhenIconNotFound } from './config';\nimport { ThyIconRegistry } from './icon-registry';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nconst iconSuffixMap = {\n fill: 'fill',\n twotone: 'tt'\n};\n\n/**\n * 图标组件\n * @name thy-icon,[thy-icon]\n * @order 10\n */\n@Component({\n selector: 'thy-icon, [thy-icon]',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n host: {\n class: 'thy-icon'\n }\n})\nexport class ThyIcon implements OnInit, OnChanges {\n private initialized = false;\n\n /**\n * 图标的类型\n * @type outline | fill | twotone\n */\n @Input('thyIconType') iconType: 'outline' | 'fill' | 'twotone' = 'outline';\n\n @Input('thyTwotoneColor') iconTwotoneColor: string;\n\n /**\n * 图标的名字\n */\n @Input('thyIconName') iconName: string;\n\n /**\n * 图标的旋转角度\n * @default 0\n */\n @Input({ alias: 'thyIconRotate', transform: numberAttribute }) iconRotate: number;\n\n @Input('thyIconSet') iconSet: string;\n\n /**\n * 图标打底色,镂空的图标,会透过颜色来\n * @default false\n */\n @HostBinding(`class.thy-icon-legging`)\n @Input({ alias: 'thyIconLegging', transform: coerceBooleanProperty })\n iconLegging: boolean;\n\n @Input({ alias: 'thyIconLinearGradient', transform: coerceBooleanProperty })\n iconLinearGradient: boolean;\n\n private hostRenderer = useHostRenderer();\n\n constructor(\n private render: Renderer2,\n private elementRef: ElementRef,\n private iconRegistry: ThyIconRegistry\n ) {}\n\n ngOnInit() {\n this.updateClasses();\n this.initialized = true;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.initialized) {\n if (\n changes['iconName'] ||\n changes['iconSet'] ||\n changes['iconTwotoneColor'] ||\n changes['iconType'] ||\n changes['iconLinearGradient']\n ) {\n this.updateClasses();\n } else if (changes['iconRotate']) {\n this.setStyleRotate();\n }\n }\n }\n\n private updateClasses() {\n const [namespace, iconName] = this.iconRegistry.splitIconName(this.iconName);\n if (iconName) {\n if (this.iconRegistry.iconMode === 'svg') {\n this.iconRegistry\n .getSvgIcon(this.buildIconNameByType(iconName), namespace)\n .pipe(take(1))\n .subscribe(\n svg => {\n this.setSvgElement(svg);\n },\n (error: Error) => {\n if (getWhetherPrintErrorWhenIconNotFound()) {\n console.error(`Error retrieving icon: ${error.message}`);\n }\n }\n );\n this.hostRenderer.updateClass([`thy-icon${namespace ? `-${namespace}` : ``}-${this.buildIconNameByType(iconName)}`]);\n } else {\n const fontSetClass = this.iconSet\n ? this.iconRegistry.getFontSetClassByAlias(this.iconSet)\n : this.iconRegistry.getDefaultFontSetClass();\n this.hostRenderer.updateClass([fontSetClass, `${fontSetClass}-${this.iconName}`]);\n }\n }\n }\n\n private setStyleRotate() {\n if (this.iconRotate !== undefined) {\n this.render.setStyle(this.elementRef.nativeElement.querySelector('svg'), 'transform', `rotate(${this.iconRotate}deg)`);\n }\n }\n\n //#region svg element\n\n private setSvgElement(svg: SVGElement) {\n this.clearSvgElement();\n\n // Workaround for IE11 and Edge ignoring `style` tags inside dynamically-created SVGs.\n // See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10898469/\n // Do this before inserting the element into the DOM, in order to avoid a style recalculation.\n const styleTags = svg.querySelectorAll('style') as NodeListOf<HTMLStyleElement>;\n\n for (let i = 0; i < styleTags.length; i++) {\n styleTags[i].textContent += ' ';\n }\n\n if (this.iconType === 'twotone') {\n const allPaths = svg.querySelectorAll('path');\n if (allPaths.length > 1) {\n allPaths.forEach((child, index: number) => {\n if (child.getAttribute('id').includes('secondary-color')) {\n child.setAttribute('fill', this.iconTwotoneColor);\n }\n });\n }\n }\n\n // Note: we do this fix here, rather than the icon registry, because the\n // references have to point to the URL at the time that the icon was created.\n // if (this._location) {\n // const path = this._location.getPathname();\n // this._previousPath = path;\n // this._cacheChildrenWithExternalReferences(svg);\n // this._prependPathToReferences(path);\n // }\n if (this.iconLinearGradient) {\n this.setBaseUrl(svg);\n this.clearTitleElement(svg);\n }\n\n this.elementRef.nativeElement.appendChild(svg);\n this.setStyleRotate();\n }\n\n private clearSvgElement() {\n const layoutElement: HTMLElement = this.elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n\n // if (this._elementsWithExternalReferences) {\n // this._elementsWithExternalReferences.clear();\n // }\n\n // Remove existing non-element child nodes and SVGs, and add the new SVG element. Note that\n // we can't use innerHTML, because IE will throw if the element has a data binding.\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n\n // 1 corresponds to Node.ELEMENT_NODE. We remove all non-element nodes in order to get rid\n // of any loose text nodes, as well as any SVG elements in order to remove any old icons.\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n layoutElement.removeChild(child);\n }\n }\n }\n\n //#endregion\n\n private buildIconNameByType(iconName: string) {\n if (this.iconType && ['fill', 'twotone'].indexOf(this.iconType) >= 0) {\n const suffix = iconSuffixMap[this.iconType];\n return iconName.includes(`-${suffix}`) ? iconName : `${iconName}-${suffix}`;\n } else {\n return iconName;\n }\n }\n\n /**\n * Support Safari SVG LinearGradient.\n * @param svg\n */\n private setBaseUrl(svg: SVGElement) {\n const styleElements = svg.querySelectorAll('style');\n styleElements.forEach((n: HTMLElement) => {\n if (n.style.cssText.includes('url')) {\n n.style.fill = n.style.fill.replace('url(\"', 'url(\"' + location.pathname);\n }\n if (n.style.cssText.includes('clip-path')) {\n n.style.clipPath = n.style.clipPath.replace('url(\"', 'url(\"' + location.pathname);\n }\n });\n }\n\n private clearTitleElement(svg: SVGElement) {\n const titleElement = svg.querySelector('title');\n titleElement && titleElement.remove();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ThyIcon } from './icon.component';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\n\n@NgModule({\n declarations: [],\n exports: [ThyIcon],\n imports: [ThyIcon, CommonModule, FormsModule],\n providers: [provideHttpClient(withInterceptorsFromDi())]\n})\nexport class ThyIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyIconRegistry"],"mappings":"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"}