ngx-tethys 18.0.0-next.0 → 18.0.0-next.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 (404) hide show
  1. package/CHANGELOG.md +161 -1
  2. package/action/action.component.d.ts +3 -3
  3. package/alert/alert.component.d.ts +1 -1
  4. package/anchor/anchor.component.d.ts +3 -1
  5. package/autocomplete/autocomplete.component.d.ts +1 -1
  6. package/autocomplete/autocomplete.trigger.directive.d.ts +1 -1
  7. package/avatar/avatar.component.d.ts +4 -4
  8. package/badge/badge.component.d.ts +3 -3
  9. package/breadcrumb/breadcrumb.component.d.ts +30 -2
  10. package/breadcrumb/module.d.ts +3 -1
  11. package/breadcrumb/styles/breadcrumb.scss +8 -0
  12. package/button/button-icon.component.d.ts +2 -2
  13. package/button/button.component.d.ts +2 -2
  14. package/button/styles/button.scss +5 -5
  15. package/card/card.component.d.ts +3 -3
  16. package/card/content.component.d.ts +1 -1
  17. package/carousel/carousel.component.d.ts +4 -4
  18. package/cascader/cascader-li.component.d.ts +5 -5
  19. package/cascader/cascader-search-option.component.d.ts +3 -3
  20. package/cascader/cascader.component.d.ts +8 -8
  21. package/checkbox/checkbox.component.d.ts +1 -1
  22. package/collapse/collapse-item.component.d.ts +2 -2
  23. package/collapse/collapse.component.d.ts +1 -1
  24. package/color-picker/color-picker-panel.component.d.ts +1 -1
  25. package/color-picker/color-picker.component.d.ts +3 -3
  26. package/copy/copy.directive.d.ts +1 -1
  27. package/core/behaviors/decorators.d.ts +1 -1
  28. package/core/overlay/abstract-overlay.config.d.ts +6 -0
  29. package/date-picker/abstract-picker.component.d.ts +15 -8
  30. package/date-picker/abstract-picker.directive.d.ts +3 -3
  31. package/date-picker/base-picker.component.d.ts +2 -2
  32. package/date-picker/date-picker.config.d.ts +1 -0
  33. package/date-picker/date-picker.service.d.ts +1 -0
  34. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -1
  35. package/date-picker/lib/popups/date-popup.component.d.ts +2 -1
  36. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
  37. package/date-picker/picker.component.d.ts +1 -1
  38. package/date-picker/picker.util.d.ts +2 -0
  39. package/date-range/date-range.component.d.ts +8 -2
  40. package/dialog/body/dialog-body.component.d.ts +1 -1
  41. package/dialog/footer/dialog-footer.component.d.ts +1 -1
  42. package/dialog/header/dialog-header.component.d.ts +1 -1
  43. package/divider/divider.component.d.ts +2 -2
  44. package/drag-drop/drag-handle.directive.d.ts +1 -1
  45. package/drag-drop/drag.directive.d.ts +1 -1
  46. package/drag-drop/drop-container.directive.d.ts +1 -1
  47. package/dropdown/dropdown-menu-item.directive.d.ts +2 -2
  48. package/dropdown/dropdown-menu.component.d.ts +1 -1
  49. package/dropdown/dropdown.directive.d.ts +1 -1
  50. package/empty/empty.component.d.ts +1 -1
  51. package/esm2022/action/action.component.mjs +7 -6
  52. package/esm2022/alert/alert.component.mjs +5 -5
  53. package/esm2022/anchor/anchor.component.mjs +5 -5
  54. package/esm2022/autocomplete/autocomplete.component.mjs +5 -4
  55. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +5 -5
  56. package/esm2022/avatar/avatar.component.mjs +8 -8
  57. package/esm2022/badge/badge.component.mjs +7 -6
  58. package/esm2022/breadcrumb/breadcrumb.component.mjs +73 -32
  59. package/esm2022/breadcrumb/module.mjs +6 -4
  60. package/esm2022/button/button-icon.component.mjs +6 -5
  61. package/esm2022/button/button.component.mjs +6 -6
  62. package/esm2022/card/card.component.mjs +7 -6
  63. package/esm2022/card/content.component.mjs +5 -4
  64. package/esm2022/carousel/carousel.component.mjs +8 -7
  65. package/esm2022/cascader/cascader-li.component.mjs +9 -8
  66. package/esm2022/cascader/cascader-search-option.component.mjs +7 -6
  67. package/esm2022/cascader/cascader.component.mjs +19 -12
  68. package/esm2022/checkbox/checkbox.component.mjs +5 -4
  69. package/esm2022/collapse/collapse-item.component.mjs +6 -6
  70. package/esm2022/collapse/collapse.component.mjs +5 -4
  71. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -4
  72. package/esm2022/color-picker/color-picker.component.mjs +7 -6
  73. package/esm2022/color-picker/parts/inputs/inputs.component.mjs +1 -1
  74. package/esm2022/copy/copy.directive.mjs +5 -4
  75. package/esm2022/core/behaviors/decorators.mjs +2 -2
  76. package/esm2022/core/overlay/abstract-overlay.config.mjs +7 -1
  77. package/esm2022/date-picker/abstract-picker.component.mjs +28 -17
  78. package/esm2022/date-picker/abstract-picker.directive.mjs +8 -7
  79. package/esm2022/date-picker/base-picker.component.mjs +5 -5
  80. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  81. package/esm2022/date-picker/date-picker.config.mjs +2 -1
  82. package/esm2022/date-picker/date-picker.service.mjs +4 -1
  83. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  84. package/esm2022/date-picker/lib/date/date-header.component.mjs +4 -4
  85. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +4 -4
  86. package/esm2022/date-picker/lib/month/month-header.component.mjs +4 -4
  87. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +7 -4
  88. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -5
  89. package/esm2022/date-picker/lib/year/year-header.component.mjs +4 -4
  90. package/esm2022/date-picker/month-picker.component.mjs +3 -3
  91. package/esm2022/date-picker/picker.component.mjs +5 -5
  92. package/esm2022/date-picker/picker.util.mjs +14 -2
  93. package/esm2022/date-picker/quarter-picker.component.mjs +3 -3
  94. package/esm2022/date-picker/range-picker.component.mjs +3 -3
  95. package/esm2022/date-picker/week-picker.component.mjs +3 -3
  96. package/esm2022/date-picker/year-picker.component.mjs +3 -3
  97. package/esm2022/date-range/date-range.component.mjs +6 -5
  98. package/esm2022/dialog/body/dialog-body.component.mjs +5 -4
  99. package/esm2022/dialog/footer/dialog-footer.component.mjs +5 -4
  100. package/esm2022/dialog/header/dialog-header.component.mjs +5 -4
  101. package/esm2022/divider/divider.component.mjs +6 -5
  102. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -4
  103. package/esm2022/drag-drop/drag.directive.mjs +5 -4
  104. package/esm2022/drag-drop/drop-container.directive.mjs +5 -4
  105. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +7 -6
  106. package/esm2022/dropdown/dropdown-menu.component.mjs +5 -4
  107. package/esm2022/dropdown/dropdown.directive.mjs +5 -5
  108. package/esm2022/empty/empty.component.mjs +5 -4
  109. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -4
  110. package/esm2022/form/form-group-label.directive.mjs +5 -4
  111. package/esm2022/form/form-group.component.mjs +7 -6
  112. package/esm2022/icon/icon.component.mjs +6 -5
  113. package/esm2022/image/image.class.mjs +1 -1
  114. package/esm2022/image/image.directive.mjs +6 -5
  115. package/esm2022/image/index.mjs +6 -5
  116. package/esm2022/image/preview/image-preview.component.mjs +21 -13
  117. package/esm2022/input/input-search.component.mjs +5 -4
  118. package/esm2022/input/input.component.mjs +6 -5
  119. package/esm2022/input-number/input-number.component.mjs +14 -7
  120. package/esm2022/layout/header.component.mjs +7 -6
  121. package/esm2022/layout/sidebar-header.component.mjs +5 -4
  122. package/esm2022/layout/sidebar.component.mjs +12 -11
  123. package/esm2022/list/list.component.mjs +5 -4
  124. package/esm2022/list/selection/selection-list.mjs +7 -7
  125. package/esm2022/loading/loading.component.mjs +6 -5
  126. package/esm2022/mention/mention.directive.mjs +3 -3
  127. package/esm2022/menu/group/menu-group.component.mjs +10 -9
  128. package/esm2022/menu/item/action/menu-item-action.component.mjs +17 -7
  129. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -4
  130. package/esm2022/menu/menu.component.mjs +5 -4
  131. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +5 -4
  132. package/esm2022/nav/nav-ink-bar.directive.mjs +6 -5
  133. package/esm2022/nav/nav-item.directive.mjs +7 -6
  134. package/esm2022/nav/nav.component.mjs +18 -7
  135. package/esm2022/pagination/pagination.class.mjs +1 -1
  136. package/esm2022/pagination/pagination.component.mjs +22 -10
  137. package/esm2022/pagination/pagination.config.mjs +3 -2
  138. package/esm2022/popover/popover.directive.mjs +6 -5
  139. package/esm2022/popover/popover.service.mjs +2 -1
  140. package/esm2022/property/property-item.component.mjs +6 -5
  141. package/esm2022/property-operation/property-operation.component.mjs +9 -9
  142. package/esm2022/radio/group/radio-group.component.mjs +5 -4
  143. package/esm2022/rate/rate-item.component.mjs +5 -4
  144. package/esm2022/rate/rate.component.mjs +7 -7
  145. package/esm2022/resizable/resizable.directive.mjs +7 -6
  146. package/esm2022/resizable/resize-handle.component.mjs +5 -4
  147. package/esm2022/resizable/resize-handles.component.mjs +5 -4
  148. package/esm2022/segment/segment-item.component.mjs +5 -5
  149. package/esm2022/segment/segment.component.mjs +5 -4
  150. package/esm2022/select/custom-select/custom-select.component.mjs +14 -14
  151. package/esm2022/select/native-select/native-select.component.mjs +5 -5
  152. package/esm2022/shared/base-form-check.component.mjs +6 -5
  153. package/esm2022/shared/directives/thy-autofocus.directive.mjs +6 -5
  154. package/esm2022/shared/directives/thy-scroll.directive.mjs +5 -4
  155. package/esm2022/shared/directives/thy-show.mjs +5 -4
  156. package/esm2022/shared/option/group/option-group.component.mjs +5 -4
  157. package/esm2022/shared/option/list-option/list-option.component.mjs +5 -4
  158. package/esm2022/shared/option/option.component.mjs +5 -5
  159. package/esm2022/shared/select/select-control/select-control.component.mjs +10 -10
  160. package/esm2022/skeleton/skeleton-circle.component.mjs +5 -5
  161. package/esm2022/skeleton/skeleton-rectangle.component.mjs +5 -5
  162. package/esm2022/skeleton/skeleton.component.mjs +5 -4
  163. package/esm2022/skeleton/stylized/bullet-list.component.mjs +5 -4
  164. package/esm2022/skeleton/stylized/list.component.mjs +5 -4
  165. package/esm2022/skeleton/stylized/paragraph.component.mjs +5 -4
  166. package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -4
  167. package/esm2022/slider/slider.component.mjs +6 -6
  168. package/esm2022/space/space.component.mjs +5 -4
  169. package/esm2022/stepper/step-header.component.mjs +6 -5
  170. package/esm2022/stepper/stepper.component.mjs +5 -4
  171. package/esm2022/switch/switch.component.mjs +6 -5
  172. package/esm2022/table/table-column.component.mjs +9 -9
  173. package/esm2022/table/table-skeleton.component.mjs +8 -7
  174. package/esm2022/table/table.component.mjs +19 -17
  175. package/esm2022/tabs/tab.component.mjs +5 -4
  176. package/esm2022/tabs/tabs.component.mjs +6 -6
  177. package/esm2022/tag/tag.component.mjs +5 -5
  178. package/esm2022/time-picker/time-picker-panel.component.mjs +6 -6
  179. package/esm2022/time-picker/time-picker.component.mjs +9 -9
  180. package/esm2022/timeline/timeline.component.mjs +5 -4
  181. package/esm2022/tooltip/tooltip.directive.mjs +6 -6
  182. package/esm2022/tree/tree-node.component.mjs +9 -8
  183. package/esm2022/tree/tree.component.mjs +32 -11
  184. package/esm2022/tree/tree.service.mjs +3 -3
  185. package/esm2022/tree-select/tree-select.component.mjs +20 -18
  186. package/esm2022/upload/file-select.component.mjs +24 -27
  187. package/esm2022/version.mjs +2 -2
  188. package/esm2022/vote/vote.component.mjs +7 -6
  189. package/esm2022/watermark/watermark.directive.mjs +5 -4
  190. package/fesm2022/ngx-tethys-action.mjs +6 -5
  191. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-alert.mjs +4 -4
  193. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-anchor.mjs +4 -4
  195. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-autocomplete.mjs +6 -6
  197. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-avatar.mjs +7 -7
  199. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-badge.mjs +6 -5
  201. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-breadcrumb.mjs +117 -77
  203. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-button.mjs +8 -8
  205. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-card.mjs +8 -7
  207. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-carousel.mjs +7 -6
  209. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-cascader.mjs +28 -21
  211. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-checkbox.mjs +4 -3
  213. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-collapse.mjs +7 -7
  215. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-color-picker.mjs +9 -8
  217. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-copy.mjs +4 -3
  219. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-core.mjs +7 -1
  221. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-date-picker.mjs +86 -57
  223. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-date-range.mjs +5 -4
  225. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-dialog.mjs +8 -7
  227. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-divider.mjs +5 -4
  229. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-drag-drop.mjs +8 -8
  231. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-dropdown.mjs +10 -10
  233. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-empty.mjs +4 -3
  235. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-form.mjs +10 -10
  237. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-icon.mjs +5 -5
  239. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-image.mjs +24 -16
  241. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-input-number.mjs +13 -6
  243. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-input.mjs +7 -6
  245. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-layout.mjs +17 -16
  247. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-list.mjs +8 -8
  249. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-loading.mjs +5 -4
  251. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-mention.mjs +2 -2
  253. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-menu.mjs +26 -16
  255. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-nav.mjs +26 -16
  257. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys-pagination.mjs +23 -10
  259. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  260. package/fesm2022/ngx-tethys-popover.mjs +6 -5
  261. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  262. package/fesm2022/ngx-tethys-property-operation.mjs +8 -8
  263. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  264. package/fesm2022/ngx-tethys-property.mjs +5 -4
  265. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  266. package/fesm2022/ngx-tethys-radio.mjs +7 -6
  267. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  268. package/fesm2022/ngx-tethys-rate.mjs +8 -8
  269. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  270. package/fesm2022/ngx-tethys-resizable.mjs +10 -10
  271. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  272. package/fesm2022/ngx-tethys-segment.mjs +6 -6
  273. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  274. package/fesm2022/ngx-tethys-select.mjs +15 -15
  275. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  276. package/fesm2022/ngx-tethys-shared.mjs +25 -25
  277. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  278. package/fesm2022/ngx-tethys-skeleton.mjs +14 -14
  279. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  280. package/fesm2022/ngx-tethys-slide.mjs +4 -4
  281. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  282. package/fesm2022/ngx-tethys-slider.mjs +5 -5
  283. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  284. package/fesm2022/ngx-tethys-space.mjs +4 -3
  285. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  286. package/fesm2022/ngx-tethys-stepper.mjs +7 -6
  287. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  288. package/fesm2022/ngx-tethys-switch.mjs +5 -4
  289. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  290. package/fesm2022/ngx-tethys-table.mjs +29 -27
  291. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  292. package/fesm2022/ngx-tethys-tabs.mjs +7 -7
  293. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  294. package/fesm2022/ngx-tethys-tag.mjs +4 -4
  295. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  296. package/fesm2022/ngx-tethys-time-picker.mjs +11 -11
  297. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  298. package/fesm2022/ngx-tethys-timeline.mjs +4 -3
  299. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  300. package/fesm2022/ngx-tethys-tooltip.mjs +5 -5
  301. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  302. package/fesm2022/ngx-tethys-tree-select.mjs +14 -11
  303. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  304. package/fesm2022/ngx-tethys-tree.mjs +39 -18
  305. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  306. package/fesm2022/ngx-tethys-upload.mjs +23 -27
  307. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  308. package/fesm2022/ngx-tethys-vote.mjs +6 -5
  309. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  310. package/fesm2022/ngx-tethys-watermark.mjs +4 -3
  311. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  312. package/fesm2022/ngx-tethys.mjs +1 -1
  313. package/fesm2022/ngx-tethys.mjs.map +1 -1
  314. package/form/form-group-error/form-group-error.component.d.ts +1 -1
  315. package/form/form-group-label.directive.d.ts +1 -1
  316. package/form/form-group.component.d.ts +3 -3
  317. package/icon/icon.component.d.ts +2 -2
  318. package/image/image.class.d.ts +1 -1
  319. package/image/image.directive.d.ts +2 -2
  320. package/image/index.d.ts +5 -4
  321. package/image/preview/image-preview.component.d.ts +5 -5
  322. package/input/input-search.component.d.ts +1 -1
  323. package/input/input.component.d.ts +2 -2
  324. package/input/styles/input-group.scss +3 -0
  325. package/input-number/input-number.component.d.ts +10 -3
  326. package/layout/header.component.d.ts +3 -3
  327. package/layout/sidebar-header.component.d.ts +1 -1
  328. package/layout/sidebar.component.d.ts +7 -7
  329. package/list/list.component.d.ts +1 -1
  330. package/list/selection/selection-list.d.ts +3 -3
  331. package/loading/loading.component.d.ts +2 -2
  332. package/menu/group/menu-group.component.d.ts +6 -6
  333. package/menu/item/action/menu-item-action.component.d.ts +8 -3
  334. package/menu/item/name/menu-item-name.component.d.ts +1 -1
  335. package/menu/menu.component.d.ts +1 -1
  336. package/menu/styles/menu.scss +8 -0
  337. package/nav/icon-nav/icon-nav-link.directive.d.ts +1 -1
  338. package/nav/nav-ink-bar.directive.d.ts +2 -2
  339. package/nav/nav-item.directive.d.ts +3 -3
  340. package/nav/nav.component.d.ts +7 -5
  341. package/package.json +2 -2
  342. package/pagination/pagination.class.d.ts +4 -0
  343. package/pagination/pagination.component.d.ts +11 -6
  344. package/popover/popover.directive.d.ts +2 -2
  345. package/property/property-item.component.d.ts +4 -1
  346. package/property/styles/properties.scss +2 -0
  347. package/property-operation/property-operation.component.d.ts +5 -5
  348. package/radio/group/radio-group.component.d.ts +1 -1
  349. package/rate/rate-item.component.d.ts +1 -1
  350. package/rate/rate.component.d.ts +3 -3
  351. package/resizable/resizable.directive.d.ts +3 -3
  352. package/resizable/resize-handle.component.d.ts +1 -1
  353. package/resizable/resize-handles.component.d.ts +1 -1
  354. package/schematics/ng-update/update-18/complete.js +0 -10
  355. package/schematics/ng-update/update-18/index.spec.js +0 -73
  356. package/schematics/ng-update/update-18/update-data.js +4 -860
  357. package/schematics/version.d.ts +1 -1
  358. package/schematics/version.js +1 -1
  359. package/segment/segment-item.component.d.ts +1 -1
  360. package/segment/segment.component.d.ts +5 -1
  361. package/select/custom-select/custom-select.component.d.ts +10 -10
  362. package/select/native-select/native-select.component.d.ts +1 -1
  363. package/shared/base-form-check.component.d.ts +2 -2
  364. package/shared/directives/thy-autofocus.directive.d.ts +2 -2
  365. package/shared/directives/thy-scroll.directive.d.ts +1 -1
  366. package/shared/directives/thy-show.d.ts +1 -1
  367. package/shared/option/group/option-group.component.d.ts +1 -1
  368. package/shared/option/list-option/list-option.component.d.ts +1 -1
  369. package/shared/option/option.component.d.ts +1 -1
  370. package/shared/option/styles/select-dropdown.scss +1 -0
  371. package/shared/select/select-control/select-control.component.d.ts +6 -6
  372. package/skeleton/skeleton-circle.component.d.ts +1 -1
  373. package/skeleton/skeleton-rectangle.component.d.ts +1 -1
  374. package/skeleton/skeleton.component.d.ts +1 -1
  375. package/skeleton/stylized/bullet-list.component.d.ts +1 -1
  376. package/skeleton/stylized/list.component.d.ts +1 -1
  377. package/skeleton/stylized/paragraph.component.d.ts +1 -1
  378. package/slide/slide-body/slide-body-section.component.d.ts +1 -1
  379. package/slider/slider.component.d.ts +2 -2
  380. package/slider/slider.scss +12 -20
  381. package/space/space.component.d.ts +1 -1
  382. package/stepper/step-header.component.d.ts +2 -2
  383. package/stepper/stepper.component.d.ts +1 -1
  384. package/styles/modules/tables.scss +20 -0
  385. package/styles/variables.scss +2 -2
  386. package/switch/switch.component.d.ts +2 -2
  387. package/table/styles/skeleton.scss +5 -0
  388. package/table/table-column.component.d.ts +5 -5
  389. package/table/table-skeleton.component.d.ts +2 -2
  390. package/table/table.component.d.ts +13 -11
  391. package/tabs/tab.component.d.ts +1 -1
  392. package/tabs/tabs.component.d.ts +2 -2
  393. package/tag/tag.component.d.ts +1 -1
  394. package/time-picker/time-picker-panel.component.d.ts +2 -2
  395. package/time-picker/time-picker.component.d.ts +5 -5
  396. package/timeline/timeline.component.d.ts +1 -1
  397. package/tooltip/tooltip.directive.d.ts +10 -2
  398. package/tree/tree-node.component.d.ts +20 -5
  399. package/tree/tree.component.d.ts +17 -7
  400. package/tree/tree.service.d.ts +1 -1
  401. package/tree-select/tree-select.component.d.ts +7 -7
  402. package/upload/file-select.component.d.ts +7 -8
  403. package/vote/vote.component.d.ts +3 -3
  404. package/watermark/watermark.directive.d.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  import * as i2 from 'ngx-tethys/core';
2
2
  import { ThyAbstractOverlayConfig, ThyAbstractOverlayContainer, ThyPortalOutlet, scaleXMotion, scaleYMotion, scaleMotion, ThyAbstractOverlayRef, ThyAbstractInternalOverlayRef, ThyAbstractOverlayService, getFlexiblePositions, ThyOverlayDirectiveBase } from 'ngx-tethys/core';
3
- import { isFunction } from 'ngx-tethys/util';
3
+ import { isFunction, coerceBooleanProperty } from 'ngx-tethys/util';
4
4
  import { timer, from, merge, of, Subject } from 'rxjs';
5
5
  import { filter, takeUntil, take } from 'rxjs/operators';
6
6
  import { Directionality } from '@angular/cdk/bidi';
@@ -11,7 +11,7 @@ import * as i2$1 from '@angular/cdk/platform';
11
11
  import { PortalModule, ComponentPortal } from '@angular/cdk/portal';
12
12
  import { DOCUMENT, NgIf, NgTemplateOutlet, CommonModule } from '@angular/common';
13
13
  import * as i0 from '@angular/core';
14
- import { InjectionToken, EventEmitter, Component, ViewChild, HostListener, Injector, Injectable, Optional, Inject, ChangeDetectionStrategy, Input, ContentChild, Output, numberAttribute, booleanAttribute, Directive, HostBinding, NgModule } from '@angular/core';
14
+ import { InjectionToken, EventEmitter, Component, ViewChild, HostListener, Injector, Injectable, Optional, Inject, ChangeDetectionStrategy, Input, ContentChild, Output, numberAttribute, Directive, HostBinding, NgModule } from '@angular/core';
15
15
  import * as i3 from '@angular/cdk/observers';
16
16
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
17
17
  import * as i2$2 from '@angular/cdk/a11y';
@@ -205,6 +205,7 @@ class ThyPopover extends ThyAbstractOverlayService {
205
205
  const positionStrategy = new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);
206
206
  const positions = getFlexiblePositions(config.placement, config.offset, 'thy-popover');
207
207
  positionStrategy.withPositions(positions);
208
+ positionStrategy.withPush(config.canPush);
208
209
  positionStrategy.withGrowAfterOpen(true);
209
210
  positionStrategy.withTransformOriginOn('.thy-popover-container');
210
211
  positionStrategy.positionChanges.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(change => {
@@ -566,7 +567,7 @@ class ThyPopoverDirective extends ThyOverlayDirectiveBase {
566
567
  this.dispose();
567
568
  }
568
569
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPopoverDirective, deps: [{ token: i0.ElementRef }, { token: i2$1.Platform }, { token: i2$2.FocusMonitor }, { token: i0.NgZone }, { token: ThyPopover }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
569
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThyPopoverDirective, isStandalone: true, selector: "[thyPopover]", inputs: { content: ["thyPopover", "content"], thyTrigger: "thyTrigger", thyPlacement: "thyPlacement", thyOffset: ["thyOffset", "thyOffset", numberAttribute], thyConfig: "thyConfig", thyShowDelay: ["thyShowDelay", "thyShowDelay", numberAttribute], thyHideDelay: ["thyHideDelay", "thyHideDelay", numberAttribute], thyAutoAdaptive: ["thyAutoAdaptive", "thyAutoAdaptive", booleanAttribute], thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute] }, host: { properties: { "class.thy-popover-opened": "this.popoverOpened" } }, usesInheritance: true, ngImport: i0 }); }
570
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0", type: ThyPopoverDirective, isStandalone: true, selector: "[thyPopover]", inputs: { content: ["thyPopover", "content"], thyTrigger: "thyTrigger", thyPlacement: "thyPlacement", thyOffset: ["thyOffset", "thyOffset", numberAttribute], thyConfig: "thyConfig", thyShowDelay: ["thyShowDelay", "thyShowDelay", numberAttribute], thyHideDelay: ["thyHideDelay", "thyHideDelay", numberAttribute], thyAutoAdaptive: ["thyAutoAdaptive", "thyAutoAdaptive", coerceBooleanProperty], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, host: { properties: { "class.thy-popover-opened": "this.popoverOpened" } }, usesInheritance: true, ngImport: i0 }); }
570
571
  }
571
572
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPopoverDirective, decorators: [{
572
573
  type: Directive,
@@ -597,10 +598,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
597
598
  args: [{ transform: numberAttribute }]
598
599
  }], thyAutoAdaptive: [{
599
600
  type: Input,
600
- args: [{ transform: booleanAttribute }]
601
+ args: [{ transform: coerceBooleanProperty }]
601
602
  }], thyDisabled: [{
602
603
  type: Input,
603
- args: [{ transform: booleanAttribute }]
604
+ args: [{ transform: coerceBooleanProperty }]
604
605
  }] } });
605
606
 
606
607
  class ThyPopoverModule {
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-popover.mjs","sources":["../../../src/popover/popover.config.ts","../../../src/popover/popover.options.ts","../../../src/popover/popover-container.component.ts","../../../src/popover/popover-container.component.html","../../../src/popover/popover-ref.ts","../../../src/popover/popover.service.ts","../../../src/popover/body/popover-body.component.ts","../../../src/popover/header/popover-header.component.ts","../../../src/popover/header/popover-header.component.html","../../../src/popover/popover.directive.ts","../../../src/popover/module.ts","../../../src/popover/popover-animations.ts","../../../src/popover/ngx-tethys-popover.ts"],"sourcesContent":["import { ThyPlacement, ThyAbstractOverlayConfig } from 'ngx-tethys/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken } from '@angular/core';\n\n/**\n * @public\n * @order 20\n */\nexport class ThyPopoverConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * 弹出悬浮层位置计算的 Origin Element,Connected Element\n * @description.en-us Origin Element, for overlay flexible connected to\n */\n origin: ElementRef<any> | HTMLElement;\n\n /**\n * 源点位置\n * @description.en-us Origin point, default use origin's boundingClientRect\n */\n originPosition?: {\n x: number;\n y: number;\n } & { width?: number; height?: number };\n\n /**\n * 相对于源点的位置,可选值:topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n * @description.en-us Placement be relative to origin, topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n */\n placement?: ThyPlacement;\n\n /**\n * 点击popover内部是否自动关闭弹出框\n * @description.en-us Click inside can been close\n */\n insideClosable?: boolean;\n\n /**\n * 相对于源点的偏移量\n * @description.en-us Offset be relative to origin, default is 0\n * @default 0\n */\n offset?: number;\n\n /**\n * 是否只能手动关闭,唯一标识为origin\n * @description.en-us Manually close it, default rules is which auto close last popover when open a new unless set manualClosure as true\n */\n manualClosure?: boolean;\n\n /**\n * 对弹出悬浮层位置计算的 Origin Element,Connected Element 添加 class\n * @description.en-us Origin active class when popover is opened\n * @default thy-popover-origin-active\n */\n originActiveClass?: string | string[];\n\n /**\n * 滚动策略\n */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * 点击popover外部是否自动关闭弹出框,hasBackdrop=false 时该参数起作用\n * @description.en-us Click outside can been close\n */\n outsideClosable?: boolean;\n\n /**\n * 是否开启自动适配大小模式,开启后当弹出框内容宽高发生变化后自动更新位置\n * @description.en-us autoAdaptive is true when height change can auto update position\n */\n autoAdaptive?: boolean;\n\n /**\n * 是否禁用动画\n * @default false\n */\n animationDisabled?: boolean;\n}\n\nexport const THY_POPOVER_DEFAULT_CONFIG = new InjectionToken<ThyPopoverConfig>('thy-popover-default-config');\n\nexport const THY_POPOVER_DEFAULT_CONFIG_VALUE = {\n hasBackdrop: true,\n backdropClass: 'thy-popover-backdrop',\n panelClass: '',\n offset: 0,\n backdropClosable: true,\n closeOnNavigation: true,\n placement: 'bottom' as ThyPlacement,\n insideClosable: false,\n manualClosure: false,\n originActiveClass: 'thy-popover-origin-active',\n autoAdaptive: false,\n minWidth: '240px'\n};\n\nexport const THY_POPOVER_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_POPOVER_DEFAULT_CONFIG,\n useValue: THY_POPOVER_DEFAULT_CONFIG_VALUE\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('thy-popover-scroll-strategy');\n\nexport const THY_POPOVER_SCROLL_STRATEGY_FACTORY = (overlay: Overlay) => {\n return () => overlay.scrollStrategies.block();\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY_PROVIDER = {\n provide: THY_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: THY_POPOVER_SCROLL_STRATEGY_FACTORY\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const popoverAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'popover',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ThyAbstractOverlayContainer, ThyClickDispatcher, ThyPortalOutlet } from 'ngx-tethys/core';\nimport { from, Observable, timer } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n ViewChild\n} from '@angular/core';\n\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-popover-container',\n templateUrl: './popover-container.component.html',\n animations: [scaleXMotion, scaleYMotion, scaleMotion],\n host: {\n class: 'thy-popover-container',\n tabindex: '-1',\n '[attr.role]': `'popover'`,\n '[attr.id]': 'id',\n\n '[@.disabled]': '!!config.animationDisabled',\n\n '[@scaleXMotion]': '(config.placement === \"left\" || config.placement === \"right\") ? animationState : \"void\"',\n '(@scaleXMotion.start)': 'onAnimationStart($event)',\n '(@scaleXMotion.done)': 'onAnimationDone($event)',\n\n '[@scaleYMotion]': '(config.placement === \"top\" || config.placement === \"bottom\") ? animationState : \"void\"',\n '(@scaleYMotion.start)': 'onAnimationStart($event)',\n '(@scaleYMotion.done)': 'onAnimationDone($event)',\n\n '[@scaleMotion]':\n '(config.placement !== \"left\" && config.placement !== \"right\" && config.placement !== \"top\" && config.placement !== \"bottom\") ? animationState : \"void\"',\n '(@scaleMotion.start)': 'onAnimationStart($event)',\n '(@scaleMotion.done)': 'onAnimationDone($event)'\n },\n standalone: true,\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThyPopoverContainer<TData = unknown> extends ThyAbstractOverlayContainer<TData> implements AfterViewInit, OnDestroy {\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet: ThyPortalOutlet;\n\n /** State of the popover animation. */\n animationState: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n insideClicked = new EventEmitter();\n\n updatePosition = new EventEmitter();\n\n outsideClicked = new EventEmitter();\n\n beforeAttachPortal(): void {}\n\n constructor(\n private elementRef: ElementRef,\n public config: ThyPopoverConfig<TData>,\n changeDetectorRef: ChangeDetectorRef,\n private thyClickDispatcher: ThyClickDispatcher,\n private contentObserver: ContentObserver,\n private ngZone: NgZone\n ) {\n super(popoverAbstractOverlayOptions, changeDetectorRef);\n\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'enter';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n ngAfterViewInit() {\n if (this.config.outsideClosable && !this.config.hasBackdrop) {\n timer(0).subscribe(() => {\n this.thyClickDispatcher\n .clicked()\n .pipe(takeUntil(this.animationClosingDone))\n .subscribe((event: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(event.target as HTMLElement)) {\n this.ngZone.run(() => {\n this.outsideClicked.emit();\n });\n }\n });\n });\n }\n\n if (this.config.autoAdaptive) {\n const onStable$ = this.ngZone.isStable ? from(Promise.resolve()) : this.ngZone.onStable.pipe(take(1));\n this.ngZone.runOutsideAngular(() => {\n onStable$.pipe(takeUntil(this.containerDestroy)).subscribe(() => {\n this.contentObserver\n .observe(this.elementRef)\n .pipe(takeUntil(this.containerDestroy))\n .subscribe(() => {\n this.updatePosition.emit();\n });\n });\n });\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n // if (event.toState === 'void') {\n // this.trapFocus();\n // } else if (event.toState === 'exit') {\n // this.restoreFocus();\n // }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation(): void {\n this.animationState = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n @HostListener('click', [])\n onInsideClick() {\n if (this.config.insideClosable) {\n this.insideClicked.emit();\n }\n }\n\n ngOnDestroy() {\n super.destroy();\n this.insideClicked.complete();\n this.updatePosition.complete();\n this.outsideClicked.complete();\n }\n}\n","<ng-template thyPortalOutlet></ng-template>\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { merge } from 'rxjs';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\nexport abstract class ThyPopoverRef<T, TResult = unknown, TData = unknown> extends ThyAbstractOverlayRef<\n T,\n ThyPopoverContainer<TData>,\n TResult\n> {}\n\nexport class ThyInternalPopoverRef<T, TResult = unknown>\n extends ThyAbstractInternalOverlayRef<T, ThyPopoverContainer, TResult>\n implements ThyPopoverRef<T, TResult>\n{\n constructor(overlayRef: OverlayRef, containerInstance: ThyPopoverContainer, config: ThyPopoverConfig) {\n super(popoverAbstractOverlayOptions, overlayRef, containerInstance, config);\n // Note: doesn't need to unsubscribe, because `insideClicked` and `outsideClicked`\n // get completed by `ThyPopoverContainerComponent` when the view is destroyed.\n merge(containerInstance.insideClicked, containerInstance.outsideClicked).subscribe(() => this.close());\n containerInstance.updatePosition.subscribe(() => {\n this.updatePosition();\n });\n }\n\n /**\n * Updates the popover's position.\n * @param position New popover position.\n */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n","import { ComponentTypeOrTemplateRef, getFlexiblePositions, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { FunctionProp, isFunction } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceArray, coerceElement } from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable, Injector, NgZone, OnDestroy, Optional, StaticProvider, TemplateRef } from '@angular/core';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyInternalPopoverRef, ThyPopoverRef } from './popover-ref';\nimport {\n THY_POPOVER_DEFAULT_CONFIG,\n THY_POPOVER_DEFAULT_CONFIG_VALUE,\n THY_POPOVER_SCROLL_STRATEGY,\n ThyPopoverConfig\n} from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { SafeAny } from 'ngx-tethys/types';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThyPopover extends ThyAbstractOverlayService<ThyPopoverConfig, ThyPopoverContainer> implements OnDestroy {\n private readonly ngUnsubscribe$ = new Subject();\n\n private originInstancesMap = new Map<\n ElementRef | HTMLElement,\n {\n config: ThyPopoverConfig;\n popoverRef: ThyPopoverRef<any, any>;\n }\n >();\n\n private buildPositionStrategy<TData>(config: ThyPopoverConfig<TData>): PositionStrategy {\n const origin: FlexibleConnectedPositionStrategyOrigin = config.originPosition ? config.originPosition : config.origin;\n // const positionStrategy = this.overlay.position().flexibleConnectedTo(origin);\n const positionStrategy = new FlexibleConnectedPositionStrategy(\n origin,\n this._viewportRuler,\n this._document,\n this._platform,\n this._overlayContainer\n );\n const positions = getFlexiblePositions(config.placement, config.offset, 'thy-popover');\n positionStrategy.withPositions(positions);\n positionStrategy.withGrowAfterOpen(true);\n positionStrategy.withTransformOriginOn('.thy-popover-container');\n positionStrategy.positionChanges.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(change => {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.close());\n }\n });\n return positionStrategy;\n }\n\n private buildScrollStrategy(config: ThyPopoverConfig): ScrollStrategy {\n if (config.scrollStrategy) {\n return config.scrollStrategy;\n } else if (this.scrollStrategy && isFunction(this.scrollStrategy)) {\n return this.scrollStrategy();\n } else {\n this.overlay.scrollStrategies.block();\n }\n }\n\n protected buildOverlayConfig<TData>(config: ThyPopoverConfig<TData>): OverlayConfig {\n const positionStrategy = this.buildPositionStrategy(config);\n const overlayConfig = this.buildBaseOverlayConfig(config, 'thy-popover-panel');\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.scrollStrategy = this.buildScrollStrategy(config);\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyPopoverConfig<any>): ThyPopoverContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyPopoverConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyPopoverContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyPopoverContainer>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult = unknown>(\n overlayRef: OverlayRef,\n containerInstance: ThyPopoverContainer,\n config: ThyPopoverConfig\n ): ThyAbstractOverlayRef<T, ThyPopoverContainer, TResult> {\n return new ThyInternalPopoverRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(config: ThyPopoverConfig, popoverRef: ThyPopoverRef<T>, popoverContainer: ThyPopoverContainer): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyPopoverContainer, useValue: popoverContainer },\n {\n provide: ThyPopoverRef,\n useValue: popoverRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private originElementAddActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(THY_POPOVER_DEFAULT_CONFIG)\n defaultConfig: ThyPopoverConfig,\n @Inject(THY_POPOVER_SCROLL_STRATEGY)\n scrollStrategy: FunctionProp<ScrollStrategy>,\n private ngZone: NgZone,\n private _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private _document: any,\n private _platform: Platform,\n private _overlayContainer: OverlayContainer\n ) {\n super(\n popoverAbstractOverlayOptions,\n overlay,\n injector,\n {\n ...THY_POPOVER_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n },\n scrollStrategy\n );\n }\n\n private ensureCloseClosest(origin: HTMLElement) {\n let closeAndEnd = false;\n this.originInstancesMap.forEach((value, key) => {\n if (value.config.manualClosure) {\n if (key === origin) {\n value.popoverRef.close();\n closeAndEnd = true;\n }\n } else {\n if (key === origin) {\n closeAndEnd = true;\n }\n value.popoverRef.close();\n }\n });\n return closeAndEnd;\n }\n\n /**\n * 打开悬浮层\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: ThyPopoverConfig<TData>\n ): ThyPopoverRef<T, TResult> {\n const originElement = coerceElement(config.origin);\n // 默认关闭之前的弹出框\n // 1. 当之前的 Popover 设置 manualClosure 为 true 时, 弹出其他 Popover 时不自动关闭 manualClosure 为 true 的 Popover\n // 2. 当前的 Origin 对应的 Popover 已经弹出,不管 manualClosure 设置为何,直接关闭并返回\n if (this.ensureCloseClosest(originElement)) {\n return;\n }\n\n const popoverRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config) as ThyPopoverRef<T, TResult, TData>;\n config = popoverRef.containerInstance.config;\n popoverRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(config);\n this.originInstancesMap.delete(originElement);\n });\n\n this.originElementAddActiveClass(config);\n this.originInstancesMap.set(originElement, {\n config,\n popoverRef\n });\n\n return popoverRef;\n }\n\n /**\n * 根据Id获取打开的悬浮层\n */\n getPopoverById(id: string): ThyPopoverRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyPopoverRef<any> | undefined;\n }\n\n /**\n * 获取已经打开的悬浮层\n */\n getOpenedPopovers(): ThyPopoverRef<SafeAny>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * @description.en-us Finds the closest ThyPopoverRef to an element by looking at the DOM.\n * @description 通过 Dom 元素查找最近弹出的悬浮层\n */\n getClosestPopover(element: HTMLElement): ThyPopoverRef<any> | undefined {\n const parent = element.closest('.thy-popover-container');\n\n if (parent && parent.id) {\n return this.getPopoverById(parent.id);\n }\n return null;\n }\n\n /**\n * 关闭悬浮层\n */\n close<T>(result?: T, force?: boolean) {\n super.close(result, force);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * 悬浮层内容组件\n * @name thy-popover-body\n * @order 40\n */\n@Component({\n selector: 'thy-popover-body',\n template: '<ng-content></ng-content>',\n exportAs: 'thyPopoverBody',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-body'\n },\n standalone: true\n})\nexport class ThyPopoverBody {}\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyPopover } from '../popover.service';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\n/**\n * 悬浮层头部组件\n * @name thy-popover-header\n * @order 30\n */\n@Component({\n selector: 'thy-popover-header',\n templateUrl: './popover-header.component.html',\n exportAs: 'thyPopoverHeader',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-header'\n },\n standalone: true,\n imports: [NgIf, NgTemplateOutlet, ThyIcon]\n})\nexport class ThyPopoverHeader {\n /**\n * 头部标题\n */\n @Input() thyTitle: string;\n\n /**\n * 标题的多语言 Key\n */\n @Input()\n set thyTitleTranslationKey(key: string) {\n if (key && !this.thyTitle) {\n this.thyTitle = this.translate.instant(key);\n }\n }\n\n /**\n * 自定义头部模板\n * @type TemplateRef\n */\n @ContentChild('popoverHeader')\n public headerTemplate: TemplateRef<any>;\n\n /**\n * @internal\n */\n @Output() thyClosed: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(private translate: ThyTranslate, private thyPopover: ThyPopover) {}\n\n /**\n * @internal\n */\n close(event: Event) {\n this.thyClosed.emit(event);\n this.thyPopover.close();\n }\n}\n","<ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <template [ngTemplateOutlet]=\"headerTemplate\"></template>\n</ng-container>\n<ng-template #defaultHeader>\n <h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </button>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n Input,\n TemplateRef,\n OnInit,\n ViewContainerRef,\n HostBinding,\n ChangeDetectorRef,\n numberAttribute,\n booleanAttribute\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover } from './popover.service';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ThyPopoverRef } from './popover-ref';\nimport { ThyPopoverConfig } from './popover.config';\n\n/**\n * 弹出悬浮层指令\n * @name thyPopover\n * @order 50\n */\n@Directive({\n selector: '[thyPopover]',\n standalone: true\n})\nexport class ThyPopoverDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n @HostBinding(`class.thy-popover-opened`) popoverOpened = false;\n\n /**\n * 悬浮组件或者模板\n */\n @Input('thyPopover') content: ComponentType<any> | TemplateRef<any>;\n\n /**\n * 弹出悬浮层的触发方式\n */\n @Input() set thyTrigger(trigger: ThyOverlayTrigger) {\n this.trigger = trigger;\n }\n\n /**\n * 弹出悬浮层的位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n @Input() thyPlacement: ThyPlacement = 'bottom';\n\n /**\n * 弹出悬浮层的偏移量\n */\n @Input({ transform: numberAttribute }) thyOffset: number = 0;\n\n /**\n * 弹出悬浮层的配置\n */\n @Input() thyConfig: ThyPopoverConfig;\n\n /**\n * 显示延迟时间\n */\n @Input({ transform: numberAttribute })\n set thyShowDelay(value: number) {\n this.showDelay = value;\n }\n\n /**\n * 隐藏延迟时间\n */\n @Input({ transform: numberAttribute })\n set thyHideDelay(value: number) {\n this.hideDelay = value;\n }\n\n /**\n * 自动适配内容变化重新计算位置\n */\n @Input({ transform: booleanAttribute }) thyAutoAdaptive = false;\n\n /**\n * 是否禁用打开悬浮层\n * @default false\n */\n @Input({ transform: booleanAttribute }) set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n private popoverRef: ThyPopoverRef<any>;\n\n constructor(\n public elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n private popover: ThyPopover,\n private viewContainerRef: ViewContainerRef,\n private cdr: ChangeDetectorRef\n ) {\n super(elementRef, platform, focusMonitor, ngZone, true);\n }\n\n ngOnInit(): void {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n const config = Object.assign(\n {\n origin: this.elementRef.nativeElement,\n hasBackdrop: this.trigger === 'click' || this.trigger === 'focus',\n viewContainerRef: this.viewContainerRef,\n placement: this.thyPlacement,\n offset: this.thyOffset,\n autoAdaptive: this.thyAutoAdaptive\n },\n this.thyConfig\n );\n this.popoverRef = this.popover.open(this.content, config);\n\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n if (!this.disabled) {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.cdr.markForCheck();\n }\n this.showTimeoutId = null;\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n this.cdr.markForCheck();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPopoverBody } from './body/popover-body.component';\nimport { ThyPopoverHeader } from './header/popover-header.component';\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER } from './popover.config';\nimport { ThyPopoverDirective } from './popover.directive';\nimport { ThyPopover } from './popover.service';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n ThyIconModule,\n ThyPopoverContainer,\n ThyPopoverDirective,\n ThyPopoverHeader,\n ThyPopoverBody\n ],\n exports: [ThyPopoverDirective, ThyPopoverHeader, ThyPopoverBody],\n providers: [THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER, ThyPopover]\n})\nexport class ThyPopoverModule {}\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' }))\n // transition('* => enter', animate('100ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n // transition(\n // '* => exit',\n // animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 }))\n // )\n];\n\n/**\n * Animations used by ThyPopover.\n * @docs-private\n */\nexport const thyPopoverAnimations: {\n readonly popoverContainer: AnimationTriggerMetadata;\n} = {\n popoverContainer: trigger('popoverContainer', animationBody)\n};\n\n// export const setAnimationStart\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyPopoverConfig","i2","i1","i2.ThyPopover","i3.ThyPopover"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-popover.mjs","sources":["../../../src/popover/popover.config.ts","../../../src/popover/popover.options.ts","../../../src/popover/popover-container.component.ts","../../../src/popover/popover-container.component.html","../../../src/popover/popover-ref.ts","../../../src/popover/popover.service.ts","../../../src/popover/body/popover-body.component.ts","../../../src/popover/header/popover-header.component.ts","../../../src/popover/header/popover-header.component.html","../../../src/popover/popover.directive.ts","../../../src/popover/module.ts","../../../src/popover/popover-animations.ts","../../../src/popover/ngx-tethys-popover.ts"],"sourcesContent":["import { ThyPlacement, ThyAbstractOverlayConfig } from 'ngx-tethys/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ElementRef, InjectionToken } from '@angular/core';\n\n/**\n * @public\n * @order 20\n */\nexport class ThyPopoverConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * 弹出悬浮层位置计算的 Origin Element,Connected Element\n * @description.en-us Origin Element, for overlay flexible connected to\n */\n origin: ElementRef<any> | HTMLElement;\n\n /**\n * 源点位置\n * @description.en-us Origin point, default use origin's boundingClientRect\n */\n originPosition?: {\n x: number;\n y: number;\n } & { width?: number; height?: number };\n\n /**\n * 相对于源点的位置,可选值:topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n * @description.en-us Placement be relative to origin, topCenter, topLeft, topRight, bottomCenter, bottomLeft, bottomRight ...\n */\n placement?: ThyPlacement;\n\n /**\n * 点击popover内部是否自动关闭弹出框\n * @description.en-us Click inside can been close\n */\n insideClosable?: boolean;\n\n /**\n * 相对于源点的偏移量\n * @description.en-us Offset be relative to origin, default is 0\n * @default 0\n */\n offset?: number;\n\n /**\n * 是否只能手动关闭,唯一标识为origin\n * @description.en-us Manually close it, default rules is which auto close last popover when open a new unless set manualClosure as true\n */\n manualClosure?: boolean;\n\n /**\n * 对弹出悬浮层位置计算的 Origin Element,Connected Element 添加 class\n * @description.en-us Origin active class when popover is opened\n * @default thy-popover-origin-active\n */\n originActiveClass?: string | string[];\n\n /**\n * 滚动策略\n */\n scrollStrategy?: ScrollStrategy;\n\n /**\n * 点击popover外部是否自动关闭弹出框,hasBackdrop=false 时该参数起作用\n * @description.en-us Click outside can been close\n */\n outsideClosable?: boolean;\n\n /**\n * 是否开启自动适配大小模式,开启后当弹出框内容宽高发生变化后自动更新位置\n * @description.en-us autoAdaptive is true when height change can auto update position\n */\n autoAdaptive?: boolean;\n\n /**\n * 是否禁用动画\n * @default false\n */\n animationDisabled?: boolean;\n}\n\nexport const THY_POPOVER_DEFAULT_CONFIG = new InjectionToken<ThyPopoverConfig>('thy-popover-default-config');\n\nexport const THY_POPOVER_DEFAULT_CONFIG_VALUE = {\n hasBackdrop: true,\n backdropClass: 'thy-popover-backdrop',\n panelClass: '',\n offset: 0,\n backdropClosable: true,\n closeOnNavigation: true,\n placement: 'bottom' as ThyPlacement,\n insideClosable: false,\n manualClosure: false,\n originActiveClass: 'thy-popover-origin-active',\n autoAdaptive: false,\n minWidth: '240px'\n};\n\nexport const THY_POPOVER_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_POPOVER_DEFAULT_CONFIG,\n useValue: THY_POPOVER_DEFAULT_CONFIG_VALUE\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('thy-popover-scroll-strategy');\n\nexport const THY_POPOVER_SCROLL_STRATEGY_FACTORY = (overlay: Overlay) => {\n return () => overlay.scrollStrategies.block();\n};\n\nexport const THY_POPOVER_SCROLL_STRATEGY_PROVIDER = {\n provide: THY_POPOVER_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: THY_POPOVER_SCROLL_STRATEGY_FACTORY\n};\n","import { ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nexport const popoverAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'popover',\n animationEnabled: true,\n disposeWhenClose: true\n};\n","import { ThyAbstractOverlayContainer, ThyClickDispatcher, ThyPortalOutlet } from 'ngx-tethys/core';\nimport { from, Observable, timer } from 'rxjs';\nimport { filter, take, takeUntil } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ContentObserver } from '@angular/cdk/observers';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n ViewChild\n} from '@angular/core';\n\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { scaleMotion, scaleXMotion, scaleYMotion } from 'ngx-tethys/core';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-popover-container',\n templateUrl: './popover-container.component.html',\n animations: [scaleXMotion, scaleYMotion, scaleMotion],\n host: {\n class: 'thy-popover-container',\n tabindex: '-1',\n '[attr.role]': `'popover'`,\n '[attr.id]': 'id',\n\n '[@.disabled]': '!!config.animationDisabled',\n\n '[@scaleXMotion]': '(config.placement === \"left\" || config.placement === \"right\") ? animationState : \"void\"',\n '(@scaleXMotion.start)': 'onAnimationStart($event)',\n '(@scaleXMotion.done)': 'onAnimationDone($event)',\n\n '[@scaleYMotion]': '(config.placement === \"top\" || config.placement === \"bottom\") ? animationState : \"void\"',\n '(@scaleYMotion.start)': 'onAnimationStart($event)',\n '(@scaleYMotion.done)': 'onAnimationDone($event)',\n\n '[@scaleMotion]':\n '(config.placement !== \"left\" && config.placement !== \"right\" && config.placement !== \"top\" && config.placement !== \"bottom\") ? animationState : \"void\"',\n '(@scaleMotion.start)': 'onAnimationStart($event)',\n '(@scaleMotion.done)': 'onAnimationDone($event)'\n },\n standalone: true,\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThyPopoverContainer<TData = unknown> extends ThyAbstractOverlayContainer<TData> implements AfterViewInit, OnDestroy {\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet: ThyPortalOutlet;\n\n /** State of the popover animation. */\n animationState: 'void' | 'enter' | 'exit' = 'enter';\n\n /** Emits when an animation state changes. */\n animationStateChanged = new EventEmitter<AnimationEvent>();\n\n animationOpeningDone: Observable<AnimationEvent>;\n animationClosingDone: Observable<AnimationEvent>;\n\n insideClicked = new EventEmitter();\n\n updatePosition = new EventEmitter();\n\n outsideClicked = new EventEmitter();\n\n beforeAttachPortal(): void {}\n\n constructor(\n private elementRef: ElementRef,\n public config: ThyPopoverConfig<TData>,\n changeDetectorRef: ChangeDetectorRef,\n private thyClickDispatcher: ThyClickDispatcher,\n private contentObserver: ContentObserver,\n private ngZone: NgZone\n ) {\n super(popoverAbstractOverlayOptions, changeDetectorRef);\n\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'enter';\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n }\n\n ngAfterViewInit() {\n if (this.config.outsideClosable && !this.config.hasBackdrop) {\n timer(0).subscribe(() => {\n this.thyClickDispatcher\n .clicked()\n .pipe(takeUntil(this.animationClosingDone))\n .subscribe((event: MouseEvent) => {\n if (!this.elementRef.nativeElement.contains(event.target as HTMLElement)) {\n this.ngZone.run(() => {\n this.outsideClicked.emit();\n });\n }\n });\n });\n }\n\n if (this.config.autoAdaptive) {\n const onStable$ = this.ngZone.isStable ? from(Promise.resolve()) : this.ngZone.onStable.pipe(take(1));\n this.ngZone.runOutsideAngular(() => {\n onStable$.pipe(takeUntil(this.containerDestroy)).subscribe(() => {\n this.contentObserver\n .observe(this.elementRef)\n .pipe(takeUntil(this.containerDestroy))\n .subscribe(() => {\n this.updatePosition.emit();\n });\n });\n });\n }\n }\n\n /** Callback, invoked whenever an animation on the host completes. */\n onAnimationDone(event: AnimationEvent) {\n // if (event.toState === 'void') {\n // this.trapFocus();\n // } else if (event.toState === 'exit') {\n // this.restoreFocus();\n // }\n this.animationStateChanged.emit(event);\n }\n\n /** Callback, invoked when an animation on the host starts. */\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n startExitAnimation(): void {\n this.animationState = 'exit';\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this.changeDetectorRef.markForCheck();\n }\n\n @HostListener('click', [])\n onInsideClick() {\n if (this.config.insideClosable) {\n this.insideClicked.emit();\n }\n }\n\n ngOnDestroy() {\n super.destroy();\n this.insideClicked.complete();\n this.updatePosition.complete();\n this.outsideClicked.complete();\n }\n}\n","<ng-template thyPortalOutlet></ng-template>\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { merge } from 'rxjs';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyPopoverConfig } from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\n\nexport abstract class ThyPopoverRef<T, TResult = unknown, TData = unknown> extends ThyAbstractOverlayRef<\n T,\n ThyPopoverContainer<TData>,\n TResult\n> {}\n\nexport class ThyInternalPopoverRef<T, TResult = unknown>\n extends ThyAbstractInternalOverlayRef<T, ThyPopoverContainer, TResult>\n implements ThyPopoverRef<T, TResult>\n{\n constructor(overlayRef: OverlayRef, containerInstance: ThyPopoverContainer, config: ThyPopoverConfig) {\n super(popoverAbstractOverlayOptions, overlayRef, containerInstance, config);\n // Note: doesn't need to unsubscribe, because `insideClicked` and `outsideClicked`\n // get completed by `ThyPopoverContainerComponent` when the view is destroyed.\n merge(containerInstance.insideClicked, containerInstance.outsideClicked).subscribe(() => this.close());\n containerInstance.updatePosition.subscribe(() => {\n this.updatePosition();\n });\n }\n\n /**\n * Updates the popover's position.\n * @param position New popover position.\n */\n updatePosition(): this {\n this.overlayRef.updatePosition();\n return this;\n }\n}\n","import { ComponentTypeOrTemplateRef, getFlexiblePositions, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { FunctionProp, isFunction } from 'ngx-tethys/util';\nimport { of, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceArray, coerceElement } from '@angular/cdk/coercion';\nimport {\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayConfig,\n OverlayContainer,\n OverlayRef,\n PositionStrategy,\n ScrollStrategy,\n ViewportRuler\n} from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable, Injector, NgZone, OnDestroy, Optional, StaticProvider, TemplateRef } from '@angular/core';\n\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { ThyInternalPopoverRef, ThyPopoverRef } from './popover-ref';\nimport {\n THY_POPOVER_DEFAULT_CONFIG,\n THY_POPOVER_DEFAULT_CONFIG_VALUE,\n THY_POPOVER_SCROLL_STRATEGY,\n ThyPopoverConfig\n} from './popover.config';\nimport { popoverAbstractOverlayOptions } from './popover.options';\nimport { SafeAny } from 'ngx-tethys/types';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThyPopover extends ThyAbstractOverlayService<ThyPopoverConfig, ThyPopoverContainer> implements OnDestroy {\n private readonly ngUnsubscribe$ = new Subject();\n\n private originInstancesMap = new Map<\n ElementRef | HTMLElement,\n {\n config: ThyPopoverConfig;\n popoverRef: ThyPopoverRef<any, any>;\n }\n >();\n\n private buildPositionStrategy<TData>(config: ThyPopoverConfig<TData>): PositionStrategy {\n const origin: FlexibleConnectedPositionStrategyOrigin = config.originPosition ? config.originPosition : config.origin;\n // const positionStrategy = this.overlay.position().flexibleConnectedTo(origin);\n const positionStrategy = new FlexibleConnectedPositionStrategy(\n origin,\n this._viewportRuler,\n this._document,\n this._platform,\n this._overlayContainer\n );\n const positions = getFlexiblePositions(config.placement, config.offset, 'thy-popover');\n positionStrategy.withPositions(positions);\n positionStrategy.withPush(config.canPush);\n positionStrategy.withGrowAfterOpen(true);\n positionStrategy.withTransformOriginOn('.thy-popover-container');\n positionStrategy.positionChanges.pipe(takeUntil(this.ngUnsubscribe$)).subscribe(change => {\n if (change.scrollableViewProperties.isOverlayClipped) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.close());\n }\n });\n return positionStrategy;\n }\n\n private buildScrollStrategy(config: ThyPopoverConfig): ScrollStrategy {\n if (config.scrollStrategy) {\n return config.scrollStrategy;\n } else if (this.scrollStrategy && isFunction(this.scrollStrategy)) {\n return this.scrollStrategy();\n } else {\n this.overlay.scrollStrategies.block();\n }\n }\n\n protected buildOverlayConfig<TData>(config: ThyPopoverConfig<TData>): OverlayConfig {\n const positionStrategy = this.buildPositionStrategy(config);\n const overlayConfig = this.buildBaseOverlayConfig(config, 'thy-popover-panel');\n overlayConfig.positionStrategy = positionStrategy;\n overlayConfig.scrollStrategy = this.buildScrollStrategy(config);\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThyPopoverConfig<any>): ThyPopoverContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThyPopoverConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThyPopoverContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThyPopoverContainer>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T, TResult = unknown>(\n overlayRef: OverlayRef,\n containerInstance: ThyPopoverContainer,\n config: ThyPopoverConfig\n ): ThyAbstractOverlayRef<T, ThyPopoverContainer, TResult> {\n return new ThyInternalPopoverRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(config: ThyPopoverConfig, popoverRef: ThyPopoverRef<T>, popoverContainer: ThyPopoverContainer): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThyPopoverContainer, useValue: popoverContainer },\n {\n provide: ThyPopoverRef,\n useValue: popoverRef\n }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private originElementAddActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThyPopoverConfig) {\n if (config.originActiveClass) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n constructor(\n overlay: Overlay,\n injector: Injector,\n @Optional()\n @Inject(THY_POPOVER_DEFAULT_CONFIG)\n defaultConfig: ThyPopoverConfig,\n @Inject(THY_POPOVER_SCROLL_STRATEGY)\n scrollStrategy: FunctionProp<ScrollStrategy>,\n private ngZone: NgZone,\n private _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private _document: any,\n private _platform: Platform,\n private _overlayContainer: OverlayContainer\n ) {\n super(\n popoverAbstractOverlayOptions,\n overlay,\n injector,\n {\n ...THY_POPOVER_DEFAULT_CONFIG_VALUE,\n ...defaultConfig\n },\n scrollStrategy\n );\n }\n\n private ensureCloseClosest(origin: HTMLElement) {\n let closeAndEnd = false;\n this.originInstancesMap.forEach((value, key) => {\n if (value.config.manualClosure) {\n if (key === origin) {\n value.popoverRef.close();\n closeAndEnd = true;\n }\n } else {\n if (key === origin) {\n closeAndEnd = true;\n }\n value.popoverRef.close();\n }\n });\n return closeAndEnd;\n }\n\n /**\n * 打开悬浮层\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config?: ThyPopoverConfig<TData>\n ): ThyPopoverRef<T, TResult> {\n const originElement = coerceElement(config.origin);\n // 默认关闭之前的弹出框\n // 1. 当之前的 Popover 设置 manualClosure 为 true 时, 弹出其他 Popover 时不自动关闭 manualClosure 为 true 的 Popover\n // 2. 当前的 Origin 对应的 Popover 已经弹出,不管 manualClosure 设置为何,直接关闭并返回\n if (this.ensureCloseClosest(originElement)) {\n return;\n }\n\n const popoverRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config) as ThyPopoverRef<T, TResult, TData>;\n config = popoverRef.containerInstance.config;\n popoverRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(config);\n this.originInstancesMap.delete(originElement);\n });\n\n this.originElementAddActiveClass(config);\n this.originInstancesMap.set(originElement, {\n config,\n popoverRef\n });\n\n return popoverRef;\n }\n\n /**\n * 根据Id获取打开的悬浮层\n */\n getPopoverById(id: string): ThyPopoverRef<any> | undefined {\n return this.getAbstractOverlayById(id) as ThyPopoverRef<any> | undefined;\n }\n\n /**\n * 获取已经打开的悬浮层\n */\n getOpenedPopovers(): ThyPopoverRef<SafeAny>[] {\n return this.getAbstractOverlays();\n }\n\n /**\n * @description.en-us Finds the closest ThyPopoverRef to an element by looking at the DOM.\n * @description 通过 Dom 元素查找最近弹出的悬浮层\n */\n getClosestPopover(element: HTMLElement): ThyPopoverRef<any> | undefined {\n const parent = element.closest('.thy-popover-container');\n\n if (parent && parent.id) {\n return this.getPopoverById(parent.id);\n }\n return null;\n }\n\n /**\n * 关闭悬浮层\n */\n close<T>(result?: T, force?: boolean) {\n super.close(result, force);\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * 悬浮层内容组件\n * @name thy-popover-body\n * @order 40\n */\n@Component({\n selector: 'thy-popover-body',\n template: '<ng-content></ng-content>',\n exportAs: 'thyPopoverBody',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-body'\n },\n standalone: true\n})\nexport class ThyPopoverBody {}\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { ThyPopover } from '../popover.service';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\n\n/**\n * 悬浮层头部组件\n * @name thy-popover-header\n * @order 30\n */\n@Component({\n selector: 'thy-popover-header',\n templateUrl: './popover-header.component.html',\n exportAs: 'thyPopoverHeader',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-popover-header'\n },\n standalone: true,\n imports: [NgIf, NgTemplateOutlet, ThyIcon]\n})\nexport class ThyPopoverHeader {\n /**\n * 头部标题\n */\n @Input() thyTitle: string;\n\n /**\n * 标题的多语言 Key\n */\n @Input()\n set thyTitleTranslationKey(key: string) {\n if (key && !this.thyTitle) {\n this.thyTitle = this.translate.instant(key);\n }\n }\n\n /**\n * 自定义头部模板\n * @type TemplateRef\n */\n @ContentChild('popoverHeader')\n public headerTemplate: TemplateRef<any>;\n\n /**\n * @internal\n */\n @Output() thyClosed: EventEmitter<Event> = new EventEmitter<Event>();\n\n constructor(private translate: ThyTranslate, private thyPopover: ThyPopover) {}\n\n /**\n * @internal\n */\n close(event: Event) {\n this.thyClosed.emit(event);\n this.thyPopover.close();\n }\n}\n","<ng-container *ngIf=\"headerTemplate; else defaultHeader\">\n <template [ngTemplateOutlet]=\"headerTemplate\"></template>\n</ng-container>\n<ng-template #defaultHeader>\n <h5 class=\"thy-popover-title\">{{ thyTitle }}</h5>\n <button type=\"button\" class=\"close\" (click)=\"close($event)\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n </button>\n</ng-template>\n","import {\n Directive,\n ElementRef,\n NgZone,\n OnDestroy,\n Input,\n TemplateRef,\n OnInit,\n ViewContainerRef,\n HostBinding,\n ChangeDetectorRef,\n numberAttribute\n} from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover } from './popover.service';\nimport { ComponentType } from '@angular/cdk/portal';\nimport { ThyPopoverRef } from './popover-ref';\nimport { ThyPopoverConfig } from './popover.config';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 弹出悬浮层指令\n * @name thyPopover\n * @order 50\n */\n@Directive({\n selector: '[thyPopover]',\n standalone: true\n})\nexport class ThyPopoverDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n @HostBinding(`class.thy-popover-opened`) popoverOpened = false;\n\n /**\n * 悬浮组件或者模板\n */\n @Input('thyPopover') content: ComponentType<any> | TemplateRef<any>;\n\n /**\n * 弹出悬浮层的触发方式\n */\n @Input() set thyTrigger(trigger: ThyOverlayTrigger) {\n this.trigger = trigger;\n }\n\n /**\n * 弹出悬浮层的位置\n * @type top | topLeft | topRight | bottom | bottomLeft | bottomRight | left | leftTop | leftBottom | right | rightTop | rightBottom\n */\n @Input() thyPlacement: ThyPlacement = 'bottom';\n\n /**\n * 弹出悬浮层的偏移量\n */\n @Input({ transform: numberAttribute }) thyOffset: number = 0;\n\n /**\n * 弹出悬浮层的配置\n */\n @Input() thyConfig: ThyPopoverConfig;\n\n /**\n * 显示延迟时间\n */\n @Input({ transform: numberAttribute })\n set thyShowDelay(value: number) {\n this.showDelay = value;\n }\n\n /**\n * 隐藏延迟时间\n */\n @Input({ transform: numberAttribute })\n set thyHideDelay(value: number) {\n this.hideDelay = value;\n }\n\n /**\n * 自动适配内容变化重新计算位置\n */\n @Input({ transform: coerceBooleanProperty }) thyAutoAdaptive = false;\n\n /**\n * 是否禁用打开悬浮层\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n\n private popoverRef: ThyPopoverRef<any>;\n\n constructor(\n public elementRef: ElementRef,\n platform: Platform,\n focusMonitor: FocusMonitor,\n ngZone: NgZone,\n private popover: ThyPopover,\n private viewContainerRef: ViewContainerRef,\n private cdr: ChangeDetectorRef\n ) {\n super(elementRef, platform, focusMonitor, ngZone, true);\n }\n\n ngOnInit(): void {\n this.initialize();\n }\n\n createOverlay(): OverlayRef {\n const config = Object.assign(\n {\n origin: this.elementRef.nativeElement,\n hasBackdrop: this.trigger === 'click' || this.trigger === 'focus',\n viewContainerRef: this.viewContainerRef,\n placement: this.thyPlacement,\n offset: this.thyOffset,\n autoAdaptive: this.thyAutoAdaptive\n },\n this.thyConfig\n );\n this.popoverRef = this.popover.open(this.content, config);\n\n this.popoverRef.afterClosed().subscribe(() => {\n this.popoverOpened = false;\n });\n\n return this.popoverRef.getOverlayRef();\n }\n\n show(delay: number = this.showDelay) {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n if (!this.disabled) {\n const overlayRef = this.createOverlay();\n this.overlayRef = overlayRef;\n this.popoverOpened = true;\n this.cdr.markForCheck();\n }\n this.showTimeoutId = null;\n }, delay);\n }\n\n hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef.close();\n this.cdr.markForCheck();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPopoverBody } from './body/popover-body.component';\nimport { ThyPopoverHeader } from './header/popover-header.component';\nimport { ThyPopoverContainer } from './popover-container.component';\nimport { THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER } from './popover.config';\nimport { ThyPopoverDirective } from './popover.directive';\nimport { ThyPopover } from './popover.service';\n\n@NgModule({\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule,\n ThyIconModule,\n ThyPopoverContainer,\n ThyPopoverDirective,\n ThyPopoverHeader,\n ThyPopoverBody\n ],\n exports: [ThyPopoverDirective, ThyPopoverHeader, ThyPopoverBody],\n providers: [THY_POPOVER_DEFAULT_CONFIG_PROVIDER, THY_POPOVER_SCROLL_STRATEGY_PROVIDER, ThyPopover]\n})\nexport class ThyPopoverModule {}\n","import { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\nconst animationBody = [\n // Note: The `enter` animation transitions to `transform: none`, because for some reason\n // specifying the transform explicitly, causes IE both to blur the dialog content and\n // decimate the animation performance. Leaving it as `none` solves both issues. translate(-300px,-100px)\n state('void, exit', style({ opacity: 0, transform: 'scale(0.1)' })),\n state('enter', style({ transform: 'none' }))\n // transition('* => enter', animate('100ms cubic-bezier(0, 0, 0.57, 1)', style({ transform: 'none', opacity: 1 }))),\n // transition(\n // '* => exit',\n // animate('150ms cubic-bezier(0.24, 0.18, 0.96, 0.52)', style({ transform: 'scale(0.3)', opacity: 0 }))\n // )\n];\n\n/**\n * Animations used by ThyPopover.\n * @docs-private\n */\nexport const thyPopoverAnimations: {\n readonly popoverContainer: AnimationTriggerMetadata;\n} = {\n popoverContainer: trigger('popoverContainer', animationBody)\n};\n\n// export const setAnimationStart\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ThyPopoverConfig","i2","i1","i2.ThyPopover","i3.ThyPopover"],"mappings":"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"}
@@ -3,10 +3,10 @@ import { ThyFlexibleText, ThyFlexibleTextModule } from 'ngx-tethys/flexible-text
3
3
  import { ThyIcon, ThyIconModule } from 'ngx-tethys/icon';
4
4
  import { NgTemplateOutlet, NgIf, NgClass, CommonModule } from '@angular/common';
5
5
  import * as i0 from '@angular/core';
6
- import { Component, HostBinding, EventEmitter, booleanAttribute, Output, ContentChild, ViewChild, Input, NgModule } from '@angular/core';
6
+ import { Component, HostBinding, EventEmitter, Output, ContentChild, ViewChild, Input, NgModule } from '@angular/core';
7
7
  import { useHostRenderer } from '@tethys/cdk/dom';
8
8
  import * as i1 from 'ngx-tethys/core';
9
- import { htmlElementIsEmpty } from 'ngx-tethys/util';
9
+ import { htmlElementIsEmpty, coerceBooleanProperty } from 'ngx-tethys/util';
10
10
  import { Subject, fromEvent } from 'rxjs';
11
11
  import { takeUntil } from 'rxjs/operators';
12
12
 
@@ -149,7 +149,7 @@ class ThyPropertyOperation {
149
149
  this.thyOnRemove.emit($event);
150
150
  }
151
151
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPropertyOperation, deps: [{ token: i1.ThyTranslate }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyPropertyOperation, isStandalone: true, selector: "thy-property-operation", inputs: { thyLabelText: "thyLabelText", thyValue: "thyValue", thyLabelTextTranslateKey: "thyLabelTextTranslateKey", thyIcon: "thyIcon", thyShowClose: ["thyShowClose", "thyShowClose", booleanAttribute], thyLabelHasValue: ["thyLabelHasValue", "thyLabelHasValue", booleanAttribute], thyLabelHideWhenHasValue: ["thyLabelHideWhenHasValue", "thyLabelHideWhenHasValue", booleanAttribute], thyType: "thyType", active: ["thyActive", "active", booleanAttribute], disabled: ["thyDisabled", "disabled", booleanAttribute] }, outputs: { thyOnRemove: "thyOnRemove", thyClick: "thyClick" }, host: { properties: { "class.thy-property-operation": "this._isPropertyOperation", "class.active": "this.active", "class.thy-property-operation-disabled": "this.disabled" } }, queries: [{ propertyName: "operationIcon", first: true, predicate: ["operationIcon"], descendants: true }], viewQueries: [{ propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n <button\n *ngIf=\"icon\"\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"value\">\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n </ng-container>\n\n <div class=\"thy-tips\" *ngIf=\"!value || (!labelHideWhenHasValue && value)\">{{ labelText }}</div>\n</div>\n<span *ngIf=\"showClose && !disabled\" (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n</span>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyButtonIcon, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: ["thySize", "thyIcon", "thyButtonIcon", "thyShape", "thyLight", "thyActive", "thyTheme", "thyColor"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyPropertyOperation, isStandalone: true, selector: "thy-property-operation", inputs: { thyLabelText: "thyLabelText", thyValue: "thyValue", thyLabelTextTranslateKey: "thyLabelTextTranslateKey", thyIcon: "thyIcon", thyShowClose: ["thyShowClose", "thyShowClose", coerceBooleanProperty], thyLabelHasValue: ["thyLabelHasValue", "thyLabelHasValue", coerceBooleanProperty], thyLabelHideWhenHasValue: ["thyLabelHideWhenHasValue", "thyLabelHideWhenHasValue", coerceBooleanProperty], thyType: "thyType", active: ["thyActive", "active", coerceBooleanProperty], disabled: ["thyDisabled", "disabled", coerceBooleanProperty] }, outputs: { thyOnRemove: "thyOnRemove", thyClick: "thyClick" }, host: { properties: { "class.thy-property-operation": "this._isPropertyOperation", "class.active": "this.active", "class.thy-property-operation-disabled": "this.disabled" } }, queries: [{ propertyName: "operationIcon", first: true, predicate: ["operationIcon"], descendants: true }], viewQueries: [{ propertyName: "contentElement", first: true, predicate: ["contentElement"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n <button\n *ngIf=\"icon\"\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"value\">\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n </ng-container>\n\n <div class=\"thy-tips\" *ngIf=\"!value || (!labelHideWhenHasValue && value)\">{{ labelText }}</div>\n</div>\n<span *ngIf=\"showClose && !disabled\" (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n</span>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyButtonIcon, selector: "thy-button-icon,[thy-button-icon],[thyButtonIcon]", inputs: ["thySize", "thyIcon", "thyButtonIcon", "thyShape", "thyLight", "thyActive", "thyTheme", "thyColor"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }] }); }
153
153
  }
154
154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPropertyOperation, decorators: [{
155
155
  type: Component,
@@ -177,13 +177,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
177
177
  type: Input
178
178
  }], thyShowClose: [{
179
179
  type: Input,
180
- args: [{ transform: booleanAttribute }]
180
+ args: [{ transform: coerceBooleanProperty }]
181
181
  }], thyLabelHasValue: [{
182
182
  type: Input,
183
- args: [{ transform: booleanAttribute }]
183
+ args: [{ transform: coerceBooleanProperty }]
184
184
  }], thyLabelHideWhenHasValue: [{
185
185
  type: Input,
186
- args: [{ transform: booleanAttribute }]
186
+ args: [{ transform: coerceBooleanProperty }]
187
187
  }], thyType: [{
188
188
  type: Input
189
189
  }], active: [{
@@ -191,13 +191,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
191
191
  args: ['class.active']
192
192
  }, {
193
193
  type: Input,
194
- args: [{ alias: 'thyActive', transform: booleanAttribute }]
194
+ args: [{ alias: 'thyActive', transform: coerceBooleanProperty }]
195
195
  }], disabled: [{
196
196
  type: HostBinding,
197
197
  args: ['class.thy-property-operation-disabled']
198
198
  }, {
199
199
  type: Input,
200
- args: [{ alias: 'thyDisabled', transform: booleanAttribute }]
200
+ args: [{ alias: 'thyDisabled', transform: coerceBooleanProperty }]
201
201
  }] } });
202
202
 
203
203
  class ThyPropertyOperationModule {
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-property-operation.mjs","sources":["../../../src/property-operation/group/property-operation-group.component.ts","../../../src/property-operation/group/property-operation-group.component.html","../../../src/property-operation/property-operation.component.ts","../../../src/property-operation/property-operation.component.html","../../../src/property-operation/module.ts","../../../src/property-operation/ngx-tethys-property-operation.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n/**\n * @name thy-property-operation-group\n */\n@Component({\n selector: 'thy-property-operation-group',\n templateUrl: './property-operation-group.component.html',\n standalone: true\n})\nexport class ThyPropertyOperationGroup {\n @HostBinding('class.thy-property-operation-group') _isPropertyOperationGroup = true;\n\n constructor() {}\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n OnDestroy,\n NgZone,\n booleanAttribute\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { htmlElementIsEmpty } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { NgTemplateOutlet, NgIf, NgClass } from '@angular/common';\n\ntype ThyPropertyOperationTypes = 'primary' | 'success' | 'warning' | 'danger';\n\n/**\n * 属性操作组件\n * @name thy-property-operation\n * @order 10\n */\n@Component({\n selector: 'thy-property-operation',\n templateUrl: './property-operation.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, NgIf, NgClass, ThyButtonIcon, ThyFlexibleText, ThyIcon]\n})\nexport class ThyPropertyOperation implements OnInit, AfterContentInit, OnDestroy {\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n labelText: string;\n\n onlyHasTips = false;\n\n showClose = false;\n\n type: ThyPropertyOperationTypes;\n\n icon: string;\n\n value: string;\n\n labelHideWhenHasValue = false;\n\n /**\n * 点击移除图标时的事件回调,此函数只有在thyShowClose为true时才会发生\n */\n @Output() thyOnRemove = new EventEmitter();\n\n /**\n * 点击事件回调\n */\n @Output() thyClick = new EventEmitter<Event>();\n\n @HostBinding('class.thy-property-operation') _isPropertyOperation = true;\n\n @ContentChild('operationIcon') operationIcon: TemplateRef<any>;\n\n @ViewChild('contentElement', { static: true }) contentElement: ElementRef;\n\n /**\n * 属性的 Label 文本\n */\n @Input()\n set thyLabelText(value: string) {\n this.labelText = value;\n }\n\n /**\n * 属性的值\n */\n @Input()\n set thyValue(value: string) {\n this.value = value;\n this.setOnlyHasTips();\n }\n\n /**\n * 属性的 Label Translate Key\n */\n @Input()\n set thyLabelTextTranslateKey(value: string) {\n this.labelText = this.thyTranslate.instant(value);\n }\n\n /**\n * 图标\n */\n @Input()\n set thyIcon(value: string) {\n this.icon = value;\n }\n\n /**\n * 当有属性值时是否展示移除图标\n * @default false\n */\n @Input({ transform: booleanAttribute })\n set thyShowClose(value: boolean) {\n this.showClose = value;\n }\n\n // 支持有值时,label不显示\n @Input({ transform: booleanAttribute })\n set thyLabelHasValue(value: boolean) {\n this.labelHideWhenHasValue = !value;\n }\n\n /**\n * 有值时隐藏 label\n * @default false\n */\n @Input({ transform: booleanAttribute })\n set thyLabelHideWhenHasValue(value: boolean) {\n this.labelHideWhenHasValue = value;\n }\n\n /**\n * 属性类型\n * @type danger | primary | success | warning | null\n * @default null\n */\n @Input()\n set thyType(value: ThyPropertyOperationTypes) {\n this.type = value;\n this.setHostClass();\n }\n\n /**\n * 激活状态\n * @default false\n */\n @HostBinding('class.active')\n @Input({ alias: 'thyActive', transform: booleanAttribute })\n active: boolean;\n\n /**\n * 禁用操作,添加后property operation中thyClick和thyOnRemove事件将会被禁用\n * @default false\n */\n @HostBinding('class.thy-property-operation-disabled')\n @Input({ alias: 'thyDisabled', transform: booleanAttribute })\n disabled: boolean;\n\n private destroy$ = new Subject<void>();\n\n private setHostClass(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n this.hostRenderer.updateClass(this.type ? [`thy-property-operation-${this.type}`] : []);\n }\n\n private setOnlyHasTips(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n if (this.value) {\n this.onlyHasTips = false;\n } else if (htmlElementIsEmpty(this.contentElement.nativeElement)) {\n this.onlyHasTips = true;\n } else {\n this.onlyHasTips = false;\n }\n }\n\n constructor(private thyTranslate: ThyTranslate, private elementRef: ElementRef<HTMLElement>, private ngZone: NgZone) {}\n\n ngOnInit() {\n this.setHostClass(true);\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent<Event>(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n if (this.disabled || this.thyClick.observers.length === 0) {\n return;\n }\n\n this.ngZone.run(() => this.thyClick.emit(event));\n })\n );\n }\n\n ngAfterContentInit() {\n this.setOnlyHasTips(true);\n this.initialized = true;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n remove($event: Event) {\n $event.stopPropagation();\n this.thyOnRemove.emit($event);\n }\n}\n","<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n <button\n *ngIf=\"icon\"\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"value\">\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n </ng-container>\n\n <div class=\"thy-tips\" *ngIf=\"!value || (!labelHideWhenHasValue && value)\">{{ labelText }}</div>\n</div>\n<span *ngIf=\"showClose && !disabled\" (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n</span>\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPropertyOperationGroup } from './group/property-operation-group.component';\nimport { ThyPropertyOperation } from './property-operation.component';\n\n@NgModule({\n imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation, ThyPropertyOperationGroup],\n exports: [ThyPropertyOperation, ThyPropertyOperationGroup]\n})\nexport class ThyPropertyOperationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAEA;;AAEG;MAMU,yBAAyB,CAAA;AAGlC,IAAA,WAAA,GAAA;QAFmD,IAAyB,CAAA,yBAAA,GAAG,IAAI,CAAC;KAEpE;8GAHP,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,0LCVtC,6BACA,EAAA,CAAA,CAAA,EAAA;;2FDSa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,cAE5B,IAAI,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;wDAGmC,yBAAyB,EAAA,CAAA;sBAA3E,WAAW;uBAAC,oCAAoC,CAAA;;;AEiBrD;;;;AAIG;MAOU,oBAAoB,CAAA;AAmC7B;;AAEG;IACH,IACI,YAAY,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAED;;AAEG;IACH,IACI,QAAQ,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AAED;;AAEG;IACH,IACI,wBAAwB,CAAC,KAAa,EAAA;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrD;AAED;;AAEG;IACH,IACI,OAAO,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;AAED;;;AAGG;IACH,IACI,YAAY,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;;IAGD,IACI,gBAAgB,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,KAAK,CAAC;KACvC;AAED;;;AAGG;IACH,IACI,wBAAwB,CAAC,KAAc,EAAA;AACvC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACtC;AAED;;;;AAIG;IACH,IACI,OAAO,CAAC,KAAgC,EAAA;AACxC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAoBO,YAAY,CAAC,KAAK,GAAG,KAAK,EAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE;YAC7B,OAAO;SACV;QACD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAA0B,uBAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,GAAG,EAAE,CAAC,CAAC;KAC3F;IAEO,cAAc,CAAC,KAAK,GAAG,KAAK,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE;YAC7B,OAAO;SACV;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;aAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;AAC9D,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;aAAM;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;KACJ;AAED,IAAA,WAAA,CAAoB,YAA0B,EAAU,UAAmC,EAAU,MAAc,EAAA;QAA/F,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAAU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QA5I3G,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE,CAAC;QAIzC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAQlB,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;AAE9B;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AAE3C;;AAEG;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAS,CAAC;QAEF,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;AA0FjE,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAsBgF;IAEvH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAExB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAC1B,SAAS,CAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;AACnD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,KAAK,IAAG;AACf,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvD,OAAO;aACV;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACpD,CAAC,CACT,CAAC;KACL;IAED,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;AAED,IAAA,MAAM,CAAC,MAAa,EAAA;QAChB,MAAM,CAAC,eAAe,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjC;8GA3KQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAwET,gBAAgB,CAMhB,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAAA,gBAAgB,sFAShB,gBAAgB,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAqBI,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAQd,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,2BAAA,EAAA,cAAA,EAAA,aAAA,EAAA,uCAAA,EAAA,eAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3J9D,63BAsBA,EDec,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAE,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,aAAa,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEzE,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAEtB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,63BAAA,EAAA,CAAA;+HAwBzE,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAKG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAEsC,oBAAoB,EAAA,CAAA;sBAAhE,WAAW;uBAAC,8BAA8B,CAAA;gBAEZ,aAAa,EAAA,CAAA;sBAA3C,YAAY;uBAAC,eAAe,CAAA;gBAEkB,cAAc,EAAA,CAAA;sBAA5D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAMzC,YAAY,EAAA,CAAA;sBADf,KAAK;gBASF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAUF,wBAAwB,EAAA,CAAA;sBAD3B,KAAK;gBASF,OAAO,EAAA,CAAA;sBADV,KAAK;gBAUF,YAAY,EAAA,CAAA;sBADf,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAOlC,gBAAgB,EAAA,CAAA;sBADnB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAUlC,wBAAwB,EAAA,CAAA;sBAD3B,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAWlC,OAAO,EAAA,CAAA;sBADV,KAAK;gBAYN,MAAM,EAAA,CAAA;sBAFL,WAAW;uBAAC,cAAc,CAAA;;sBAC1B,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAS1D,QAAQ,EAAA,CAAA;sBAFP,WAAW;uBAAC,uCAAuC,CAAA;;sBACnD,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;;ME7InD,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAHzB,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,yBAAyB,CACpH,EAAA,OAAA,EAAA,CAAA,oBAAoB,EAAE,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEhD,0BAA0B,EAAA,OAAA,EAAA,CAHzB,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG1F,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;AAC/H,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;AAC7D,iBAAA,CAAA;;;ACbD;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys-property-operation.mjs","sources":["../../../src/property-operation/group/property-operation-group.component.ts","../../../src/property-operation/group/property-operation-group.component.html","../../../src/property-operation/property-operation.component.ts","../../../src/property-operation/property-operation.component.html","../../../src/property-operation/module.ts","../../../src/property-operation/ngx-tethys-property-operation.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n/**\n * @name thy-property-operation-group\n */\n@Component({\n selector: 'thy-property-operation-group',\n templateUrl: './property-operation-group.component.html',\n standalone: true\n})\nexport class ThyPropertyOperationGroup {\n @HostBinding('class.thy-property-operation-group') _isPropertyOperationGroup = true;\n\n constructor() {}\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n OnDestroy,\n NgZone\n} from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTranslate } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, htmlElementIsEmpty } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyFlexibleText } from 'ngx-tethys/flexible-text';\nimport { ThyButtonIcon } from 'ngx-tethys/button';\nimport { NgTemplateOutlet, NgIf, NgClass } from '@angular/common';\n\ntype ThyPropertyOperationTypes = 'primary' | 'success' | 'warning' | 'danger';\n\n/**\n * 属性操作组件\n * @name thy-property-operation\n * @order 10\n */\n@Component({\n selector: 'thy-property-operation',\n templateUrl: './property-operation.component.html',\n standalone: true,\n imports: [NgTemplateOutlet, NgIf, NgClass, ThyButtonIcon, ThyFlexibleText, ThyIcon]\n})\nexport class ThyPropertyOperation implements OnInit, AfterContentInit, OnDestroy {\n private initialized = false;\n\n private hostRenderer = useHostRenderer();\n\n labelText: string;\n\n onlyHasTips = false;\n\n showClose = false;\n\n type: ThyPropertyOperationTypes;\n\n icon: string;\n\n value: string;\n\n labelHideWhenHasValue = false;\n\n /**\n * 点击移除图标时的事件回调,此函数只有在thyShowClose为true时才会发生\n */\n @Output() thyOnRemove = new EventEmitter();\n\n /**\n * 点击事件回调\n */\n @Output() thyClick = new EventEmitter<Event>();\n\n @HostBinding('class.thy-property-operation') _isPropertyOperation = true;\n\n @ContentChild('operationIcon') operationIcon: TemplateRef<any>;\n\n @ViewChild('contentElement', { static: true }) contentElement: ElementRef;\n\n /**\n * 属性的 Label 文本\n */\n @Input()\n set thyLabelText(value: string) {\n this.labelText = value;\n }\n\n /**\n * 属性的值\n */\n @Input()\n set thyValue(value: string) {\n this.value = value;\n this.setOnlyHasTips();\n }\n\n /**\n * 属性的 Label Translate Key\n */\n @Input()\n set thyLabelTextTranslateKey(value: string) {\n this.labelText = this.thyTranslate.instant(value);\n }\n\n /**\n * 图标\n */\n @Input()\n set thyIcon(value: string) {\n this.icon = value;\n }\n\n /**\n * 当有属性值时是否展示移除图标\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyShowClose(value: boolean) {\n this.showClose = value;\n }\n\n // 支持有值时,label不显示\n @Input({ transform: coerceBooleanProperty })\n set thyLabelHasValue(value: boolean) {\n this.labelHideWhenHasValue = !value;\n }\n\n /**\n * 有值时隐藏 label\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyLabelHideWhenHasValue(value: boolean) {\n this.labelHideWhenHasValue = value;\n }\n\n /**\n * 属性类型\n * @type danger | primary | success | warning | null\n * @default null\n */\n @Input()\n set thyType(value: ThyPropertyOperationTypes) {\n this.type = value;\n this.setHostClass();\n }\n\n /**\n * 激活状态\n * @default false\n */\n @HostBinding('class.active')\n @Input({ alias: 'thyActive', transform: coerceBooleanProperty })\n active: boolean;\n\n /**\n * 禁用操作,添加后property operation中thyClick和thyOnRemove事件将会被禁用\n * @default false\n */\n @HostBinding('class.thy-property-operation-disabled')\n @Input({ alias: 'thyDisabled', transform: coerceBooleanProperty })\n disabled: boolean;\n\n private destroy$ = new Subject<void>();\n\n private setHostClass(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n this.hostRenderer.updateClass(this.type ? [`thy-property-operation-${this.type}`] : []);\n }\n\n private setOnlyHasTips(first = false) {\n if (!this.initialized && !first) {\n return;\n }\n if (this.value) {\n this.onlyHasTips = false;\n } else if (htmlElementIsEmpty(this.contentElement.nativeElement)) {\n this.onlyHasTips = true;\n } else {\n this.onlyHasTips = false;\n }\n }\n\n constructor(private thyTranslate: ThyTranslate, private elementRef: ElementRef<HTMLElement>, private ngZone: NgZone) {}\n\n ngOnInit() {\n this.setHostClass(true);\n\n this.ngZone.runOutsideAngular(() =>\n fromEvent<Event>(this.elementRef.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n if (this.disabled || this.thyClick.observers.length === 0) {\n return;\n }\n\n this.ngZone.run(() => this.thyClick.emit(event));\n })\n );\n }\n\n ngAfterContentInit() {\n this.setOnlyHasTips(true);\n this.initialized = true;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n }\n\n remove($event: Event) {\n $event.stopPropagation();\n this.thyOnRemove.emit($event);\n }\n}\n","<div class=\"thy-operation-icon\">\n <ng-container *ngTemplateOutlet=\"operationIcon\"></ng-container>\n <button\n *ngIf=\"icon\"\n [ngClass]=\"{ disabled: disabled }\"\n [thyButtonIcon]=\"icon\"\n [thyShape]=\"onlyHasTips ? 'circle-thick-dashed' : 'circle-thick-solid'\"\n ></button>\n</div>\n<div class=\"thy-operation-content\" [ngClass]=\"{ 'only-has-tips': onlyHasTips }\">\n <div #contentElement>\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"value\">\n <span thyFlexibleText [thyTooltipContent]=\"value\">{{ value }}</span>\n </ng-container>\n\n <div class=\"thy-tips\" *ngIf=\"!value || (!labelHideWhenHasValue && value)\">{{ labelText }}</div>\n</div>\n<span *ngIf=\"showClose && !disabled\" (click)=\"remove($event)\" class=\"close-link close-link-danger\">\n <thy-icon thyIconName=\"close\" class=\" close-link-sm\"></thy-icon>\n</span>\n","import { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';\nimport { ThyIconModule } from 'ngx-tethys/icon';\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThyPropertyOperationGroup } from './group/property-operation-group.component';\nimport { ThyPropertyOperation } from './property-operation.component';\n\n@NgModule({\n imports: [CommonModule, ThyButtonModule, ThyIconModule, ThyFlexibleTextModule, ThyPropertyOperation, ThyPropertyOperationGroup],\n exports: [ThyPropertyOperation, ThyPropertyOperationGroup]\n})\nexport class ThyPropertyOperationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAEA;;AAEG;MAMU,yBAAyB,CAAA;AAGlC,IAAA,WAAA,GAAA;QAFmD,IAAyB,CAAA,yBAAA,GAAG,IAAI,CAAC;KAEpE;8GAHP,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,0LCVtC,6BACA,EAAA,CAAA,CAAA,EAAA;;2FDSa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,cAE5B,IAAI,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;wDAGmC,yBAAyB,EAAA,CAAA;sBAA3E,WAAW;uBAAC,oCAAoC,CAAA;;;AEgBrD;;;;AAIG;MAOU,oBAAoB,CAAA;AAmC7B;;AAEG;IACH,IACI,YAAY,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;AAED;;AAEG;IACH,IACI,QAAQ,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AAED;;AAEG;IACH,IACI,wBAAwB,CAAC,KAAa,EAAA;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrD;AAED;;AAEG;IACH,IACI,OAAO,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;AAED;;;AAGG;IACH,IACI,YAAY,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KAC1B;;IAGD,IACI,gBAAgB,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,qBAAqB,GAAG,CAAC,KAAK,CAAC;KACvC;AAED;;;AAGG;IACH,IACI,wBAAwB,CAAC,KAAc,EAAA;AACvC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;KACtC;AAED;;;;AAIG;IACH,IACI,OAAO,CAAC,KAAgC,EAAA;AACxC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAoBO,YAAY,CAAC,KAAK,GAAG,KAAK,EAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE;YAC7B,OAAO;SACV;QACD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAA0B,uBAAA,EAAA,IAAI,CAAC,IAAI,CAAE,CAAA,CAAC,GAAG,EAAE,CAAC,CAAC;KAC3F;IAEO,cAAc,CAAC,KAAK,GAAG,KAAK,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE;YAC7B,OAAO;SACV;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;aAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE;AAC9D,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;aAAM;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;KACJ;AAED,IAAA,WAAA,CAAoB,YAA0B,EAAU,UAAmC,EAAU,MAAc,EAAA;QAA/F,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAAU,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QA5I3G,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAY,CAAA,YAAA,GAAG,eAAe,EAAE,CAAC;QAIzC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAEpB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAQlB,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;AAE9B;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AAE3C;;AAEG;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAS,CAAC;QAEF,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;AA0FjE,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAsBgF;IAEvH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAExB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAC1B,SAAS,CAAQ,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC;AACnD,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,KAAK,IAAG;AACf,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvD,OAAO;aACV;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACpD,CAAC,CACT,CAAC;KACL;IAED,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;AAED,IAAA,MAAM,CAAC,MAAa,EAAA;QAChB,MAAM,CAAC,eAAe,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjC;8GA3KQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAwET,qBAAqB,CAMrB,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAAA,qBAAqB,sFASrB,qBAAqB,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAqBD,qBAAqB,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAQnB,qBAAqB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,2BAAA,EAAA,cAAA,EAAA,aAAA,EAAA,uCAAA,EAAA,eAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1JnE,63BAsBA,EDcc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAE,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,EAAE,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,aAAa,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEzE,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAEtB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,63BAAA,EAAA,CAAA;+HAwBzE,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAKG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAEsC,oBAAoB,EAAA,CAAA;sBAAhE,WAAW;uBAAC,8BAA8B,CAAA;gBAEZ,aAAa,EAAA,CAAA;sBAA3C,YAAY;uBAAC,eAAe,CAAA;gBAEkB,cAAc,EAAA,CAAA;sBAA5D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAMzC,YAAY,EAAA,CAAA;sBADf,KAAK;gBASF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAUF,wBAAwB,EAAA,CAAA;sBAD3B,KAAK;gBASF,OAAO,EAAA,CAAA;sBADV,KAAK;gBAUF,YAAY,EAAA,CAAA;sBADf,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAOvC,gBAAgB,EAAA,CAAA;sBADnB,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAUvC,wBAAwB,EAAA,CAAA;sBAD3B,KAAK;uBAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAWvC,OAAO,EAAA,CAAA;sBADV,KAAK;gBAYN,MAAM,EAAA,CAAA;sBAFL,WAAW;uBAAC,cAAc,CAAA;;sBAC1B,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;gBAS/D,QAAQ,EAAA,CAAA;sBAFP,WAAW;uBAAC,uCAAuC,CAAA;;sBACnD,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAA;;;ME5IxD,0BAA0B,CAAA;8GAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAHzB,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,yBAAyB,CACpH,EAAA,OAAA,EAAA,CAAA,oBAAoB,EAAE,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEhD,0BAA0B,EAAA,OAAA,EAAA,CAHzB,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG1F,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;AAC/H,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;AAC7D,iBAAA,CAAA;;;ACbD;;AAEG;;;;"}
@@ -1,11 +1,12 @@
1
1
  import { BehaviorSubject, Subject, fromEvent, combineLatest, timer } from 'rxjs';
2
2
  import * as i0 from '@angular/core';
3
- import { numberAttribute, Component, ChangeDetectionStrategy, Input, HostBinding, EventEmitter, booleanAttribute, Output, ContentChild, ViewChild, NgModule } from '@angular/core';
3
+ import { numberAttribute, Component, ChangeDetectionStrategy, Input, HostBinding, EventEmitter, Output, ContentChild, ViewChild, NgModule } from '@angular/core';
4
4
  import * as i1 from 'ngx-tethys/core';
5
5
  import { ThyFlexibleText, ThyFlexibleTextModule } from 'ngx-tethys/flexible-text';
6
6
  import { takeUntil, delay, take, filter } from 'rxjs/operators';
7
7
  import * as i2 from '@angular/cdk/overlay';
8
8
  import { NgIf, NgTemplateOutlet, CommonModule } from '@angular/common';
9
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
9
10
  import { ThyTooltipModule } from 'ngx-tethys/tooltip';
10
11
 
11
12
  /**
@@ -188,7 +189,7 @@ class ThyPropertyItem {
188
189
  this.eventDestroy$.complete();
189
190
  }
190
191
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPropertyItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ThyClickDispatcher }, { token: i0.NgZone }, { token: i2.OverlayOutsideClickDispatcher }, { token: ThyProperties }], target: i0.ɵɵFactoryTarget.Component }); }
191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyPropertyItem, isStandalone: true, selector: "thy-property-item", inputs: { thyLabelText: "thyLabelText", thyEditable: ["thyEditable", "thyEditable", booleanAttribute], thySpan: ["thySpan", "thySpan", numberAttribute], thyOperationTrigger: "thyOperationTrigger" }, outputs: { thyEditingChange: "thyEditingChange" }, host: { properties: { "class.thy-property-item-operational": "!!operation", "class.thy-property-item-operational-hover": "thyOperationTrigger === 'hover'", "style.grid-column": "this.gridColumn" }, classAttribute: "thy-property-item" }, queries: [{ propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, static: true }, { propertyName: "operation", first: true, predicate: ["operation"], descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "itemContent", first: true, predicate: ["item"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: ThyPropertyItem, isStandalone: true, selector: "thy-property-item", inputs: { thyLabelText: "thyLabelText", thyEditable: ["thyEditable", "thyEditable", coerceBooleanProperty], thySpan: ["thySpan", "thySpan", numberAttribute], thyOperationTrigger: "thyOperationTrigger" }, outputs: { thyEditingChange: "thyEditingChange" }, host: { properties: { "class.thy-property-item-operational": "!!operation", "class.thy-property-item-operational-hover": "thyOperationTrigger === 'hover'", "style.grid-column": "this.gridColumn" }, classAttribute: "thy-property-item" }, queries: [{ propertyName: "label", first: true, predicate: ["label"], descendants: true, static: true }, { propertyName: "editor", first: true, predicate: ["editor"], descendants: true, static: true }, { propertyName: "operation", first: true, predicate: ["operation"], descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "itemContent", first: true, predicate: ["item"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation && isVertical\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation && !isVertical\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
192
193
  }
193
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ThyPropertyItem, decorators: [{
194
195
  type: Component,
@@ -196,12 +197,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
196
197
  class: 'thy-property-item',
197
198
  '[class.thy-property-item-operational]': '!!operation',
198
199
  '[class.thy-property-item-operational-hover]': "thyOperationTrigger === 'hover'"
199
- }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ThyFlexibleText, NgTemplateOutlet], template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n" }]
200
+ }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ThyFlexibleText, NgTemplateOutlet], template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n<div class=\"thy-property-item-label\">\n <span *ngIf=\"thyLabelText\" thyFlexibleText [thyTooltipContent]=\"thyLabelText\">{{ thyLabelText }}</span>\n <ng-container *ngIf=\"label\">\n <span> <ng-template [ngTemplateOutlet]=\"label\"></ng-template></span>\n </ng-container>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation && isVertical\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n<div class=\"thy-property-item-wrapper\">\n <div\n #item\n class=\"thy-property-item-content\"\n [class.thy-property-item-content-editable]=\"thyEditable\"\n [class.thy-property-item-content-editing]=\"editing\">\n <div class=\"thy-property-item-content-text\">\n <ng-template *ngIf=\"content\" [ngTemplateOutlet]=\"content\"></ng-template>\n </div>\n <div class=\"thy-property-item-content-editor\" *ngIf=\"thyEditable\">\n <ng-template *ngIf=\"editor\" [ngTemplateOutlet]=\"editor\"></ng-template>\n </div>\n </div>\n <div class=\"thy-property-item-operation\" *ngIf=\"operation && !isVertical\">\n <ng-template [ngTemplateOutlet]=\"operation\"></ng-template>\n </div>\n</div>\n" }]
200
201
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ThyClickDispatcher }, { type: i0.NgZone }, { type: i2.OverlayOutsideClickDispatcher }, { type: ThyProperties }], propDecorators: { thyLabelText: [{
201
202
  type: Input
202
203
  }], thyEditable: [{
203
204
  type: Input,
204
- args: [{ transform: booleanAttribute }]
205
+ args: [{ transform: coerceBooleanProperty }]
205
206
  }], thySpan: [{
206
207
  type: Input,
207
208
  args: [{ transform: numberAttribute }]