@ng-nest/ui 15.0.17 → 15.0.19

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 (578) hide show
  1. package/anchor/anchor.component.d.ts +1 -1
  2. package/avatar/avatar.component.d.ts +1 -1
  3. package/back-top/back-top.component.d.ts +5 -3
  4. package/button/button.component.d.ts +2 -0
  5. package/color/color.component.d.ts +2 -2
  6. package/core/config/config.d.ts +6 -2
  7. package/core/config/config.service.d.ts +4 -3
  8. package/core/functions/resize.d.ts +4 -2
  9. package/core/services/storage.service.d.ts +3 -1
  10. package/core/theme/theme.service.d.ts +2 -2
  11. package/core/util/computed-style.d.ts +2 -1
  12. package/core/util/index.d.ts +1 -0
  13. package/esm2020/affix/affix.component.mjs +3 -3
  14. package/esm2020/affix/affix.module.mjs +4 -4
  15. package/esm2020/affix/affix.property.mjs +3 -3
  16. package/esm2020/alert/alert.component.mjs +3 -3
  17. package/esm2020/alert/alert.module.mjs +4 -4
  18. package/esm2020/alert/alert.property.mjs +3 -3
  19. package/esm2020/anchor/anchor-inner.component.mjs +3 -3
  20. package/esm2020/anchor/anchor.component.mjs +16 -19
  21. package/esm2020/anchor/anchor.module.mjs +4 -4
  22. package/esm2020/anchor/anchor.property.mjs +6 -6
  23. package/esm2020/api/api.component.mjs +3 -3
  24. package/esm2020/api/api.module.mjs +4 -4
  25. package/esm2020/auto-complete/auto-complete-portal.component.mjs +3 -3
  26. package/esm2020/auto-complete/auto-complete.component.mjs +3 -3
  27. package/esm2020/auto-complete/auto-complete.module.mjs +4 -4
  28. package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
  29. package/esm2020/avatar/avatar-group.component.mjs +3 -3
  30. package/esm2020/avatar/avatar.component.mjs +8 -11
  31. package/esm2020/avatar/avatar.module.mjs +4 -4
  32. package/esm2020/avatar/avatar.property.mjs +6 -6
  33. package/esm2020/back-top/back-top.component.mjs +17 -16
  34. package/esm2020/back-top/back-top.module.mjs +4 -4
  35. package/esm2020/back-top/back-top.property.mjs +3 -3
  36. package/esm2020/badge/badge.component.mjs +3 -3
  37. package/esm2020/badge/badge.module.mjs +4 -4
  38. package/esm2020/badge/badge.property.mjs +3 -3
  39. package/esm2020/base-form/base-form.component.mjs +3 -3
  40. package/esm2020/base-form/base-form.module.mjs +4 -4
  41. package/esm2020/base-form/base-form.property.mjs +3 -3
  42. package/esm2020/border/border.component.mjs +3 -3
  43. package/esm2020/border/border.module.mjs +4 -4
  44. package/esm2020/button/button.component.mjs +22 -10
  45. package/esm2020/button/button.module.mjs +4 -4
  46. package/esm2020/button/button.property.mjs +6 -6
  47. package/esm2020/button/buttons.component.mjs +3 -3
  48. package/esm2020/calendar/calendar.component.mjs +3 -3
  49. package/esm2020/calendar/calendar.module.mjs +4 -4
  50. package/esm2020/calendar/calendar.property.mjs +3 -3
  51. package/esm2020/card/card.component.mjs +3 -3
  52. package/esm2020/card/card.module.mjs +4 -4
  53. package/esm2020/card/card.property.mjs +3 -3
  54. package/esm2020/carousel/carousel-panel.component.mjs +3 -3
  55. package/esm2020/carousel/carousel.component.mjs +4 -4
  56. package/esm2020/carousel/carousel.module.mjs +4 -4
  57. package/esm2020/carousel/carousel.property.mjs +6 -6
  58. package/esm2020/cascade/cascade-portal.component.mjs +3 -3
  59. package/esm2020/cascade/cascade.component.mjs +3 -3
  60. package/esm2020/cascade/cascade.module.mjs +4 -4
  61. package/esm2020/cascade/cascade.property.mjs +3 -3
  62. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  63. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  64. package/esm2020/checkbox/checkbox.property.mjs +3 -3
  65. package/esm2020/collapse/collapse-panel.component.mjs +3 -3
  66. package/esm2020/collapse/collapse.component.mjs +3 -3
  67. package/esm2020/collapse/collapse.module.mjs +4 -4
  68. package/esm2020/collapse/collapse.property.mjs +6 -6
  69. package/esm2020/color/color.component.mjs +10 -13
  70. package/esm2020/color/color.module.mjs +4 -4
  71. package/esm2020/color/color.property.mjs +3 -3
  72. package/esm2020/color-picker/color-picker-portal.component.mjs +6 -6
  73. package/esm2020/color-picker/color-picker.component.mjs +3 -3
  74. package/esm2020/color-picker/color-picker.module.mjs +4 -4
  75. package/esm2020/color-picker/color-picker.property.mjs +3 -3
  76. package/esm2020/comment/comment-reply.component.mjs +3 -3
  77. package/esm2020/comment/comment.component.mjs +3 -3
  78. package/esm2020/comment/comment.module.mjs +4 -4
  79. package/esm2020/comment/comment.property.mjs +6 -6
  80. package/esm2020/container/aside.component.mjs +3 -3
  81. package/esm2020/container/container.component.mjs +3 -3
  82. package/esm2020/container/container.module.mjs +4 -4
  83. package/esm2020/container/container.property.mjs +12 -12
  84. package/esm2020/container/footer.component.mjs +3 -3
  85. package/esm2020/container/header.component.mjs +3 -3
  86. package/esm2020/container/main.component.mjs +3 -3
  87. package/esm2020/core/config/config.mjs +1 -1
  88. package/esm2020/core/config/config.service.mjs +11 -20
  89. package/esm2020/core/functions/resize.mjs +4 -1
  90. package/esm2020/core/services/http.service.mjs +3 -3
  91. package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
  92. package/esm2020/core/services/storage.service.mjs +45 -12
  93. package/esm2020/core/theme/theme.service.mjs +10 -12
  94. package/esm2020/core/util/computed-style.mjs +9 -3
  95. package/esm2020/core/util/index.mjs +2 -0
  96. package/esm2020/crumb/crumb.component.mjs +3 -3
  97. package/esm2020/crumb/crumb.module.mjs +4 -4
  98. package/esm2020/crumb/crumb.property.mjs +3 -3
  99. package/esm2020/date-picker/date-picker-portal.component.mjs +3 -3
  100. package/esm2020/date-picker/date-picker.component.mjs +3 -3
  101. package/esm2020/date-picker/date-picker.module.mjs +4 -4
  102. package/esm2020/date-picker/date-picker.property.mjs +18 -18
  103. package/esm2020/date-picker/date-quarter.pipe.mjs +3 -3
  104. package/esm2020/date-picker/date-range-portal.component.mjs +3 -3
  105. package/esm2020/date-picker/date-range.component.mjs +3 -3
  106. package/esm2020/date-picker/picker-date.component.mjs +3 -3
  107. package/esm2020/date-picker/picker-month.component.mjs +3 -3
  108. package/esm2020/date-picker/picker-quarter.component.mjs +3 -3
  109. package/esm2020/date-picker/picker-year.component.mjs +3 -3
  110. package/esm2020/description/description-item.component.mjs +3 -3
  111. package/esm2020/description/description.component.mjs +3 -3
  112. package/esm2020/description/description.module.mjs +4 -4
  113. package/esm2020/description/description.property.mjs +6 -6
  114. package/esm2020/dialog/dialog-container.component.mjs +3 -3
  115. package/esm2020/dialog/dialog-portal.component.mjs +3 -3
  116. package/esm2020/dialog/dialog-portal.directives.mjs +18 -18
  117. package/esm2020/dialog/dialog.component.mjs +3 -3
  118. package/esm2020/dialog/dialog.module.mjs +4 -4
  119. package/esm2020/dialog/dialog.property.mjs +6 -6
  120. package/esm2020/dialog/dialog.service.mjs +3 -3
  121. package/esm2020/doc/doc.component.mjs +3 -3
  122. package/esm2020/doc/doc.module.mjs +4 -4
  123. package/esm2020/drawer/drawer-container.component.mjs +3 -3
  124. package/esm2020/drawer/drawer-portal.component.mjs +3 -3
  125. package/esm2020/drawer/drawer-portal.directives.mjs +9 -9
  126. package/esm2020/drawer/drawer.component.mjs +3 -3
  127. package/esm2020/drawer/drawer.module.mjs +4 -4
  128. package/esm2020/drawer/drawer.property.mjs +6 -6
  129. package/esm2020/drawer/drawer.service.mjs +3 -3
  130. package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
  131. package/esm2020/dropdown/dropdown.component.mjs +3 -3
  132. package/esm2020/dropdown/dropdown.module.mjs +4 -4
  133. package/esm2020/dropdown/dropdown.property.mjs +3 -3
  134. package/esm2020/empty/empty.component.mjs +3 -3
  135. package/esm2020/empty/empty.module.mjs +4 -4
  136. package/esm2020/empty/empty.property.mjs +7 -4
  137. package/esm2020/examples/examples.component.mjs +3 -3
  138. package/esm2020/examples/examples.module.mjs +4 -4
  139. package/esm2020/find/find.component.mjs +4 -4
  140. package/esm2020/find/find.module.mjs +4 -4
  141. package/esm2020/find/find.property.mjs +3 -3
  142. package/esm2020/form/control.component.mjs +3 -3
  143. package/esm2020/form/form.component.mjs +3 -3
  144. package/esm2020/form/form.module.mjs +4 -4
  145. package/esm2020/form/form.property.mjs +6 -6
  146. package/esm2020/highlight/highlight.component.mjs +9 -8
  147. package/esm2020/highlight/highlight.module.mjs +4 -4
  148. package/esm2020/highlight/highlight.property.mjs +3 -3
  149. package/esm2020/i18n/i18n.directive.mjs +3 -3
  150. package/esm2020/i18n/i18n.module.mjs +4 -4
  151. package/esm2020/i18n/i18n.pipe.mjs +3 -3
  152. package/esm2020/i18n/i18n.property.mjs +1 -1
  153. package/esm2020/i18n/i18n.service.mjs +3 -3
  154. package/esm2020/i18n/languages/en_GB.mjs +5 -2
  155. package/esm2020/i18n/languages/en_US.mjs +5 -2
  156. package/esm2020/i18n/languages/zh_CN.mjs +5 -2
  157. package/esm2020/i18n/languages/zh_TW.mjs +5 -2
  158. package/esm2020/icon/icon.component.mjs +9 -14
  159. package/esm2020/icon/icon.module.mjs +4 -4
  160. package/esm2020/icon/icon.property.mjs +3 -3
  161. package/esm2020/icon/icon.service.mjs +3 -3
  162. package/esm2020/image/image-group.component.mjs +3 -3
  163. package/esm2020/image/image-preview.component.mjs +14 -10
  164. package/esm2020/image/image.component.mjs +3 -3
  165. package/esm2020/image/image.module.mjs +4 -4
  166. package/esm2020/image/image.property.mjs +6 -6
  167. package/esm2020/inner/inner.component.mjs +3 -3
  168. package/esm2020/inner/inner.module.mjs +4 -4
  169. package/esm2020/inner/inner.property.mjs +3 -3
  170. package/esm2020/input/input-group.component.mjs +3 -3
  171. package/esm2020/input/input.component.mjs +3 -3
  172. package/esm2020/input/input.module.mjs +4 -4
  173. package/esm2020/input/input.property.mjs +6 -6
  174. package/esm2020/input-number/input-number.component.mjs +3 -3
  175. package/esm2020/input-number/input-number.module.mjs +4 -4
  176. package/esm2020/input-number/input-number.property.mjs +3 -3
  177. package/esm2020/keyword/keyword.directive.mjs +3 -3
  178. package/esm2020/keyword/keyword.module.mjs +4 -4
  179. package/esm2020/keyword/keyword.property.mjs +3 -3
  180. package/esm2020/layout/col.component.mjs +3 -3
  181. package/esm2020/layout/layout.module.mjs +4 -4
  182. package/esm2020/layout/layout.property.mjs +6 -6
  183. package/esm2020/layout/row.component.mjs +3 -3
  184. package/esm2020/link/link.component.mjs +3 -3
  185. package/esm2020/link/link.module.mjs +4 -4
  186. package/esm2020/link/link.property.mjs +3 -3
  187. package/esm2020/list/list-drop-group.directive.mjs +3 -3
  188. package/esm2020/list/list-option.component.mjs +3 -3
  189. package/esm2020/list/list.component.mjs +5 -5
  190. package/esm2020/list/list.module.mjs +4 -4
  191. package/esm2020/list/list.property.mjs +6 -6
  192. package/esm2020/loading/loading.component.mjs +3 -3
  193. package/esm2020/loading/loading.module.mjs +4 -4
  194. package/esm2020/loading/loading.property.mjs +3 -3
  195. package/esm2020/menu/menu-node.component.mjs +3 -3
  196. package/esm2020/menu/menu.component.mjs +12 -12
  197. package/esm2020/menu/menu.module.mjs +4 -4
  198. package/esm2020/menu/menu.property.mjs +6 -6
  199. package/esm2020/message/message.component.mjs +3 -3
  200. package/esm2020/message/message.module.mjs +4 -4
  201. package/esm2020/message/message.service.mjs +3 -3
  202. package/esm2020/message-box/message-box.component.mjs +3 -3
  203. package/esm2020/message-box/message-box.module.mjs +4 -4
  204. package/esm2020/message-box/message-box.service.mjs +3 -3
  205. package/esm2020/notification/notification.component.mjs +3 -3
  206. package/esm2020/notification/notification.module.mjs +4 -4
  207. package/esm2020/notification/notification.service.mjs +3 -3
  208. package/esm2020/outlet/outlet.directive.mjs +3 -3
  209. package/esm2020/outlet/outlet.module.mjs +4 -4
  210. package/esm2020/page-header/page-header.component.mjs +3 -3
  211. package/esm2020/page-header/page-header.module.mjs +4 -4
  212. package/esm2020/page-header/page-header.property.mjs +3 -3
  213. package/esm2020/pagination/pagination.component.mjs +3 -3
  214. package/esm2020/pagination/pagination.module.mjs +4 -4
  215. package/esm2020/pagination/pagination.property.mjs +3 -3
  216. package/esm2020/pattern/pattern.component.mjs +3 -3
  217. package/esm2020/pattern/pattern.module.mjs +4 -4
  218. package/esm2020/popconfirm/popconfirm.component.mjs +3 -3
  219. package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
  220. package/esm2020/popconfirm/popconfirm.property.mjs +3 -3
  221. package/esm2020/popover/popover-portal.component.mjs +3 -3
  222. package/esm2020/popover/popover.directive.mjs +3 -3
  223. package/esm2020/popover/popover.module.mjs +4 -4
  224. package/esm2020/popover/popover.property.mjs +3 -3
  225. package/esm2020/portal/portal.module.mjs +4 -4
  226. package/esm2020/portal/portal.service.mjs +6 -5
  227. package/esm2020/progress/progress.component.mjs +3 -3
  228. package/esm2020/progress/progress.module.mjs +4 -4
  229. package/esm2020/progress/progress.property.mjs +3 -3
  230. package/esm2020/radio/radio.component.mjs +5 -5
  231. package/esm2020/radio/radio.module.mjs +4 -4
  232. package/esm2020/radio/radio.property.mjs +3 -3
  233. package/esm2020/rate/rate.component.mjs +3 -3
  234. package/esm2020/rate/rate.module.mjs +4 -4
  235. package/esm2020/rate/rate.property.mjs +3 -3
  236. package/esm2020/resizable/resizable.directive.mjs +10 -13
  237. package/esm2020/resizable/resizable.module.mjs +4 -4
  238. package/esm2020/resizable/resizable.property.mjs +3 -3
  239. package/esm2020/result/result.component.mjs +3 -3
  240. package/esm2020/result/result.module.mjs +4 -4
  241. package/esm2020/result/result.property.mjs +3 -3
  242. package/esm2020/ripple/ripple.directive.mjs +6 -5
  243. package/esm2020/ripple/ripple.module.mjs +4 -4
  244. package/esm2020/ripple/ripple.property.mjs +3 -3
  245. package/esm2020/select/select-portal.component.mjs +3 -3
  246. package/esm2020/select/select.component.mjs +6 -6
  247. package/esm2020/select/select.module.mjs +4 -4
  248. package/esm2020/select/select.property.mjs +3 -3
  249. package/esm2020/skeleton/skeleton.component.mjs +3 -3
  250. package/esm2020/skeleton/skeleton.module.mjs +4 -4
  251. package/esm2020/skeleton/skeleton.property.mjs +3 -3
  252. package/esm2020/slider/slider.component.mjs +7 -5
  253. package/esm2020/slider/slider.module.mjs +4 -4
  254. package/esm2020/slider/slider.property.mjs +3 -3
  255. package/esm2020/slider-select/slider-select.component.mjs +21 -14
  256. package/esm2020/slider-select/slider-select.module.mjs +4 -4
  257. package/esm2020/slider-select/slider-select.property.mjs +3 -3
  258. package/esm2020/statistic/countdown.component.mjs +3 -3
  259. package/esm2020/statistic/statistic.component.mjs +3 -3
  260. package/esm2020/statistic/statistic.module.mjs +4 -4
  261. package/esm2020/statistic/statistic.property.mjs +6 -6
  262. package/esm2020/steps/steps.component.mjs +3 -3
  263. package/esm2020/steps/steps.module.mjs +4 -4
  264. package/esm2020/steps/steps.property.mjs +3 -3
  265. package/esm2020/switch/switch.component.mjs +3 -3
  266. package/esm2020/switch/switch.module.mjs +4 -4
  267. package/esm2020/switch/switch.property.mjs +3 -3
  268. package/esm2020/table/drag.directive.mjs +8 -11
  269. package/esm2020/table/table-body.component.mjs +11 -14
  270. package/esm2020/table/table-foot.component.mjs +3 -3
  271. package/esm2020/table/table-head.component.mjs +3 -3
  272. package/esm2020/table/table.component.mjs +3 -3
  273. package/esm2020/table/table.module.mjs +4 -4
  274. package/esm2020/table/table.property.mjs +29 -13
  275. package/esm2020/tabs/tab-content.component.mjs +3 -3
  276. package/esm2020/tabs/tab-link.directive.mjs +6 -6
  277. package/esm2020/tabs/tab.component.mjs +3 -3
  278. package/esm2020/tabs/tabs.component.mjs +4 -4
  279. package/esm2020/tabs/tabs.module.mjs +4 -4
  280. package/esm2020/tabs/tabs.property.mjs +6 -6
  281. package/esm2020/tag/tag.component.mjs +3 -3
  282. package/esm2020/tag/tag.module.mjs +4 -4
  283. package/esm2020/tag/tag.property.mjs +3 -3
  284. package/esm2020/text-retract/text-retract.component.mjs +3 -3
  285. package/esm2020/text-retract/text-retract.module.mjs +4 -4
  286. package/esm2020/text-retract/text-retract.property.mjs +3 -3
  287. package/esm2020/textarea/textarea.component.mjs +3 -3
  288. package/esm2020/textarea/textarea.module.mjs +4 -4
  289. package/esm2020/textarea/textarea.property.mjs +3 -3
  290. package/esm2020/theme/theme.component.mjs +3 -3
  291. package/esm2020/theme/theme.module.mjs +4 -4
  292. package/esm2020/theme/theme.property.mjs +3 -3
  293. package/esm2020/time-ago/time-ago.module.mjs +4 -4
  294. package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
  295. package/esm2020/time-picker/time-picker-frame.component.mjs +3 -3
  296. package/esm2020/time-picker/time-picker-portal.component.mjs +3 -3
  297. package/esm2020/time-picker/time-picker.component.mjs +21 -5
  298. package/esm2020/time-picker/time-picker.module.mjs +4 -4
  299. package/esm2020/time-picker/time-picker.property.mjs +3 -3
  300. package/esm2020/time-range/time-range.module.mjs +4 -4
  301. package/esm2020/time-range/time-range.pipe.mjs +3 -3
  302. package/esm2020/timeline/timeline.component.mjs +3 -3
  303. package/esm2020/timeline/timeline.module.mjs +4 -4
  304. package/esm2020/timeline/timeline.property.mjs +3 -3
  305. package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
  306. package/esm2020/tooltip/tooltip.directive.mjs +3 -3
  307. package/esm2020/tooltip/tooltip.module.mjs +4 -4
  308. package/esm2020/tooltip/tooltip.property.mjs +3 -3
  309. package/esm2020/transfer/transfer.component.mjs +3 -3
  310. package/esm2020/transfer/transfer.module.mjs +4 -4
  311. package/esm2020/transfer/transfer.property.mjs +3 -3
  312. package/esm2020/tree/tree-node.component.mjs +3 -3
  313. package/esm2020/tree/tree.component.mjs +4 -4
  314. package/esm2020/tree/tree.module.mjs +4 -4
  315. package/esm2020/tree/tree.property.mjs +6 -6
  316. package/esm2020/tree/tree.service.mjs +3 -3
  317. package/esm2020/tree-file/tree-file.component.mjs +9 -6
  318. package/esm2020/tree-file/tree-file.module.mjs +4 -4
  319. package/esm2020/tree-file/tree-file.property.mjs +5 -5
  320. package/esm2020/tree-select/tree-select-portal.component.mjs +3 -3
  321. package/esm2020/tree-select/tree-select.component.mjs +6 -6
  322. package/esm2020/tree-select/tree-select.module.mjs +4 -4
  323. package/esm2020/tree-select/tree-select.property.mjs +3 -3
  324. package/esm2020/typography/typography.component.mjs +3 -3
  325. package/esm2020/typography/typography.module.mjs +4 -4
  326. package/esm2020/typography/typography.property.mjs +3 -3
  327. package/esm2020/upload/upload-portal.component.mjs +8 -11
  328. package/esm2020/upload/upload.component.mjs +3 -3
  329. package/esm2020/upload/upload.module.mjs +4 -4
  330. package/esm2020/upload/upload.property.mjs +3 -3
  331. package/fesm2015/ng-nest-ui-affix.mjs +10 -10
  332. package/fesm2015/ng-nest-ui-alert.mjs +10 -10
  333. package/fesm2015/ng-nest-ui-anchor.mjs +28 -33
  334. package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
  335. package/fesm2015/ng-nest-ui-api.mjs +7 -7
  336. package/fesm2015/ng-nest-ui-auto-complete.mjs +13 -13
  337. package/fesm2015/ng-nest-ui-avatar.mjs +20 -25
  338. package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
  339. package/fesm2015/ng-nest-ui-back-top.mjs +23 -24
  340. package/fesm2015/ng-nest-ui-back-top.mjs.map +1 -1
  341. package/fesm2015/ng-nest-ui-badge.mjs +10 -10
  342. package/fesm2015/ng-nest-ui-base-form.mjs +10 -10
  343. package/fesm2015/ng-nest-ui-border.mjs +7 -7
  344. package/fesm2015/ng-nest-ui-button.mjs +35 -22
  345. package/fesm2015/ng-nest-ui-button.mjs.map +1 -1
  346. package/fesm2015/ng-nest-ui-calendar.mjs +10 -10
  347. package/fesm2015/ng-nest-ui-card.mjs +10 -10
  348. package/fesm2015/ng-nest-ui-carousel.mjs +16 -16
  349. package/fesm2015/ng-nest-ui-carousel.mjs.map +1 -1
  350. package/fesm2015/ng-nest-ui-cascade.mjs +13 -13
  351. package/fesm2015/ng-nest-ui-checkbox.mjs +10 -10
  352. package/fesm2015/ng-nest-ui-collapse.mjs +16 -16
  353. package/fesm2015/ng-nest-ui-color-picker.mjs +15 -15
  354. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  355. package/fesm2015/ng-nest-ui-color.mjs +16 -21
  356. package/fesm2015/ng-nest-ui-color.mjs.map +1 -1
  357. package/fesm2015/ng-nest-ui-comment.mjs +16 -16
  358. package/fesm2015/ng-nest-ui-container.mjs +31 -31
  359. package/fesm2015/ng-nest-ui-core.mjs +78 -51
  360. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  361. package/fesm2015/ng-nest-ui-crumb.mjs +10 -10
  362. package/fesm2015/ng-nest-ui-date-picker.mjs +49 -49
  363. package/fesm2015/ng-nest-ui-description.mjs +16 -16
  364. package/fesm2015/ng-nest-ui-dialog.mjs +40 -40
  365. package/fesm2015/ng-nest-ui-doc.mjs +7 -7
  366. package/fesm2015/ng-nest-ui-drawer.mjs +31 -31
  367. package/fesm2015/ng-nest-ui-dropdown.mjs +13 -13
  368. package/fesm2015/ng-nest-ui-empty.mjs +13 -10
  369. package/fesm2015/ng-nest-ui-empty.mjs.map +1 -1
  370. package/fesm2015/ng-nest-ui-examples.mjs +7 -7
  371. package/fesm2015/ng-nest-ui-find.mjs +10 -10
  372. package/fesm2015/ng-nest-ui-find.mjs.map +1 -1
  373. package/fesm2015/ng-nest-ui-form.mjs +16 -16
  374. package/fesm2015/ng-nest-ui-highlight.mjs +15 -14
  375. package/fesm2015/ng-nest-ui-highlight.mjs.map +1 -1
  376. package/fesm2015/ng-nest-ui-i18n.mjs +29 -17
  377. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  378. package/fesm2015/ng-nest-ui-icon.mjs +18 -25
  379. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  380. package/fesm2015/ng-nest-ui-image.mjs +30 -26
  381. package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
  382. package/fesm2015/ng-nest-ui-inner.mjs +10 -10
  383. package/fesm2015/ng-nest-ui-input-number.mjs +10 -10
  384. package/fesm2015/ng-nest-ui-input.mjs +16 -16
  385. package/fesm2015/ng-nest-ui-keyword.mjs +10 -10
  386. package/fesm2015/ng-nest-ui-layout.mjs +16 -16
  387. package/fesm2015/ng-nest-ui-link.mjs +10 -10
  388. package/fesm2015/ng-nest-ui-list.mjs +20 -20
  389. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  390. package/fesm2015/ng-nest-ui-loading.mjs +10 -10
  391. package/fesm2015/ng-nest-ui-menu.mjs +24 -26
  392. package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
  393. package/fesm2015/ng-nest-ui-message-box.mjs +10 -10
  394. package/fesm2015/ng-nest-ui-message.mjs +10 -10
  395. package/fesm2015/ng-nest-ui-notification.mjs +10 -10
  396. package/fesm2015/ng-nest-ui-outlet.mjs +7 -7
  397. package/fesm2015/ng-nest-ui-page-header.mjs +10 -10
  398. package/fesm2015/ng-nest-ui-pagination.mjs +10 -10
  399. package/fesm2015/ng-nest-ui-pattern.mjs +7 -7
  400. package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -10
  401. package/fesm2015/ng-nest-ui-popover.mjs +13 -13
  402. package/fesm2015/ng-nest-ui-portal.mjs +9 -9
  403. package/fesm2015/ng-nest-ui-portal.mjs.map +1 -1
  404. package/fesm2015/ng-nest-ui-progress.mjs +10 -10
  405. package/fesm2015/ng-nest-ui-radio.mjs +11 -11
  406. package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
  407. package/fesm2015/ng-nest-ui-rate.mjs +10 -10
  408. package/fesm2015/ng-nest-ui-resizable.mjs +16 -21
  409. package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
  410. package/fesm2015/ng-nest-ui-result.mjs +10 -10
  411. package/fesm2015/ng-nest-ui-ripple.mjs +12 -12
  412. package/fesm2015/ng-nest-ui-ripple.mjs.map +1 -1
  413. package/fesm2015/ng-nest-ui-select.mjs +15 -15
  414. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  415. package/fesm2015/ng-nest-ui-skeleton.mjs +10 -10
  416. package/fesm2015/ng-nest-ui-slider-select.mjs +27 -20
  417. package/fesm2015/ng-nest-ui-slider-select.mjs.map +1 -1
  418. package/fesm2015/ng-nest-ui-slider.mjs +13 -11
  419. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  420. package/fesm2015/ng-nest-ui-statistic.mjs +16 -16
  421. package/fesm2015/ng-nest-ui-steps.mjs +10 -10
  422. package/fesm2015/ng-nest-ui-switch.mjs +10 -10
  423. package/fesm2015/ng-nest-ui-table.mjs +57 -51
  424. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  425. package/fesm2015/ng-nest-ui-tabs.mjs +25 -25
  426. package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
  427. package/fesm2015/ng-nest-ui-tag.mjs +10 -10
  428. package/fesm2015/ng-nest-ui-text-retract.mjs +10 -10
  429. package/fesm2015/ng-nest-ui-textarea.mjs +10 -10
  430. package/fesm2015/ng-nest-ui-theme.mjs +10 -10
  431. package/fesm2015/ng-nest-ui-time-ago.mjs +7 -7
  432. package/fesm2015/ng-nest-ui-time-picker.mjs +33 -17
  433. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  434. package/fesm2015/ng-nest-ui-time-range.mjs +7 -7
  435. package/fesm2015/ng-nest-ui-timeline.mjs +10 -10
  436. package/fesm2015/ng-nest-ui-tooltip.mjs +13 -13
  437. package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
  438. package/fesm2015/ng-nest-ui-tree-file.mjs +16 -13
  439. package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
  440. package/fesm2015/ng-nest-ui-tree-select.mjs +15 -15
  441. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -1
  442. package/fesm2015/ng-nest-ui-tree.mjs +19 -19
  443. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  444. package/fesm2015/ng-nest-ui-typography.mjs +10 -10
  445. package/fesm2015/ng-nest-ui-upload.mjs +17 -22
  446. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  447. package/fesm2020/ng-nest-ui-affix.mjs +10 -10
  448. package/fesm2020/ng-nest-ui-alert.mjs +10 -10
  449. package/fesm2020/ng-nest-ui-anchor.mjs +28 -31
  450. package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
  451. package/fesm2020/ng-nest-ui-api.mjs +7 -7
  452. package/fesm2020/ng-nest-ui-auto-complete.mjs +13 -13
  453. package/fesm2020/ng-nest-ui-avatar.mjs +20 -23
  454. package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
  455. package/fesm2020/ng-nest-ui-back-top.mjs +23 -22
  456. package/fesm2020/ng-nest-ui-back-top.mjs.map +1 -1
  457. package/fesm2020/ng-nest-ui-badge.mjs +10 -10
  458. package/fesm2020/ng-nest-ui-base-form.mjs +10 -10
  459. package/fesm2020/ng-nest-ui-border.mjs +7 -7
  460. package/fesm2020/ng-nest-ui-button.mjs +34 -22
  461. package/fesm2020/ng-nest-ui-button.mjs.map +1 -1
  462. package/fesm2020/ng-nest-ui-calendar.mjs +10 -10
  463. package/fesm2020/ng-nest-ui-card.mjs +10 -10
  464. package/fesm2020/ng-nest-ui-carousel.mjs +16 -16
  465. package/fesm2020/ng-nest-ui-carousel.mjs.map +1 -1
  466. package/fesm2020/ng-nest-ui-cascade.mjs +13 -13
  467. package/fesm2020/ng-nest-ui-checkbox.mjs +10 -10
  468. package/fesm2020/ng-nest-ui-collapse.mjs +16 -16
  469. package/fesm2020/ng-nest-ui-color-picker.mjs +15 -15
  470. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  471. package/fesm2020/ng-nest-ui-color.mjs +16 -19
  472. package/fesm2020/ng-nest-ui-color.mjs.map +1 -1
  473. package/fesm2020/ng-nest-ui-comment.mjs +16 -16
  474. package/fesm2020/ng-nest-ui-container.mjs +31 -31
  475. package/fesm2020/ng-nest-ui-core.mjs +78 -47
  476. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  477. package/fesm2020/ng-nest-ui-crumb.mjs +10 -10
  478. package/fesm2020/ng-nest-ui-date-picker.mjs +49 -49
  479. package/fesm2020/ng-nest-ui-description.mjs +16 -16
  480. package/fesm2020/ng-nest-ui-dialog.mjs +40 -40
  481. package/fesm2020/ng-nest-ui-doc.mjs +7 -7
  482. package/fesm2020/ng-nest-ui-drawer.mjs +31 -31
  483. package/fesm2020/ng-nest-ui-dropdown.mjs +13 -13
  484. package/fesm2020/ng-nest-ui-empty.mjs +13 -10
  485. package/fesm2020/ng-nest-ui-empty.mjs.map +1 -1
  486. package/fesm2020/ng-nest-ui-examples.mjs +7 -7
  487. package/fesm2020/ng-nest-ui-find.mjs +10 -10
  488. package/fesm2020/ng-nest-ui-find.mjs.map +1 -1
  489. package/fesm2020/ng-nest-ui-form.mjs +16 -16
  490. package/fesm2020/ng-nest-ui-highlight.mjs +15 -14
  491. package/fesm2020/ng-nest-ui-highlight.mjs.map +1 -1
  492. package/fesm2020/ng-nest-ui-i18n.mjs +29 -17
  493. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  494. package/fesm2020/ng-nest-ui-icon.mjs +18 -23
  495. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  496. package/fesm2020/ng-nest-ui-image.mjs +29 -26
  497. package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
  498. package/fesm2020/ng-nest-ui-inner.mjs +10 -10
  499. package/fesm2020/ng-nest-ui-input-number.mjs +10 -10
  500. package/fesm2020/ng-nest-ui-input.mjs +16 -16
  501. package/fesm2020/ng-nest-ui-keyword.mjs +10 -10
  502. package/fesm2020/ng-nest-ui-layout.mjs +16 -16
  503. package/fesm2020/ng-nest-ui-link.mjs +10 -10
  504. package/fesm2020/ng-nest-ui-list.mjs +20 -20
  505. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  506. package/fesm2020/ng-nest-ui-loading.mjs +10 -10
  507. package/fesm2020/ng-nest-ui-menu.mjs +24 -24
  508. package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
  509. package/fesm2020/ng-nest-ui-message-box.mjs +10 -10
  510. package/fesm2020/ng-nest-ui-message.mjs +10 -10
  511. package/fesm2020/ng-nest-ui-notification.mjs +10 -10
  512. package/fesm2020/ng-nest-ui-outlet.mjs +7 -7
  513. package/fesm2020/ng-nest-ui-page-header.mjs +10 -10
  514. package/fesm2020/ng-nest-ui-pagination.mjs +10 -10
  515. package/fesm2020/ng-nest-ui-pattern.mjs +7 -7
  516. package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -10
  517. package/fesm2020/ng-nest-ui-popover.mjs +13 -13
  518. package/fesm2020/ng-nest-ui-portal.mjs +9 -9
  519. package/fesm2020/ng-nest-ui-portal.mjs.map +1 -1
  520. package/fesm2020/ng-nest-ui-progress.mjs +10 -10
  521. package/fesm2020/ng-nest-ui-radio.mjs +11 -11
  522. package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
  523. package/fesm2020/ng-nest-ui-rate.mjs +10 -10
  524. package/fesm2020/ng-nest-ui-resizable.mjs +16 -19
  525. package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
  526. package/fesm2020/ng-nest-ui-result.mjs +10 -10
  527. package/fesm2020/ng-nest-ui-ripple.mjs +12 -12
  528. package/fesm2020/ng-nest-ui-ripple.mjs.map +1 -1
  529. package/fesm2020/ng-nest-ui-select.mjs +15 -15
  530. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  531. package/fesm2020/ng-nest-ui-skeleton.mjs +10 -10
  532. package/fesm2020/ng-nest-ui-slider-select.mjs +27 -20
  533. package/fesm2020/ng-nest-ui-slider-select.mjs.map +1 -1
  534. package/fesm2020/ng-nest-ui-slider.mjs +13 -11
  535. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  536. package/fesm2020/ng-nest-ui-statistic.mjs +16 -16
  537. package/fesm2020/ng-nest-ui-steps.mjs +10 -10
  538. package/fesm2020/ng-nest-ui-switch.mjs +10 -10
  539. package/fesm2020/ng-nest-ui-table.mjs +57 -47
  540. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  541. package/fesm2020/ng-nest-ui-tabs.mjs +25 -25
  542. package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
  543. package/fesm2020/ng-nest-ui-tag.mjs +10 -10
  544. package/fesm2020/ng-nest-ui-text-retract.mjs +10 -10
  545. package/fesm2020/ng-nest-ui-textarea.mjs +10 -10
  546. package/fesm2020/ng-nest-ui-theme.mjs +10 -10
  547. package/fesm2020/ng-nest-ui-time-ago.mjs +7 -7
  548. package/fesm2020/ng-nest-ui-time-picker.mjs +33 -17
  549. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  550. package/fesm2020/ng-nest-ui-time-range.mjs +7 -7
  551. package/fesm2020/ng-nest-ui-timeline.mjs +10 -10
  552. package/fesm2020/ng-nest-ui-tooltip.mjs +13 -13
  553. package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
  554. package/fesm2020/ng-nest-ui-tree-file.mjs +16 -13
  555. package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
  556. package/fesm2020/ng-nest-ui-tree-select.mjs +15 -15
  557. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -1
  558. package/fesm2020/ng-nest-ui-tree.mjs +19 -19
  559. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  560. package/fesm2020/ng-nest-ui-typography.mjs +10 -10
  561. package/fesm2020/ng-nest-ui-upload.mjs +17 -20
  562. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  563. package/i18n/i18n.property.d.ts +3 -0
  564. package/i18n/languages/en_GB.d.ts +3 -0
  565. package/i18n/languages/en_US.d.ts +3 -0
  566. package/i18n/languages/zh_CN.d.ts +3 -0
  567. package/i18n/languages/zh_TW.d.ts +3 -0
  568. package/icon/icon.component.d.ts +4 -4
  569. package/image/image-preview.component.d.ts +1 -0
  570. package/menu/menu.component.d.ts +2 -2
  571. package/package.json +1 -1
  572. package/resizable/resizable.directive.d.ts +1 -1
  573. package/slider-select/slider-select.component.d.ts +1 -1
  574. package/table/drag.directive.d.ts +1 -1
  575. package/table/table-body.component.d.ts +2 -2
  576. package/table/table.property.d.ts +16 -1
  577. package/time-picker/time-picker.component.d.ts +1 -0
  578. package/upload/upload-portal.component.d.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import { DOCUMENT, CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Directive, Input, Output, Inject, HostBinding, HostListener, NgModule } from '@angular/core';
4
- import { XProperty, XInputBoolean, XInputNumber, XIsChange, XIsString, XIsArray } from '@ng-nest/ui/core';
3
+ import { EventEmitter, Directive, Input, Output, inject, HostBinding, HostListener, NgModule } from '@angular/core';
4
+ import { XProperty, XInputBoolean, XInputNumber, XIsChange, XIsString, XIsArray, XComputed } from '@ng-nest/ui/core';
5
5
  import { fromEvent, takeUntil } from 'rxjs';
6
6
  import { __decorate } from 'tslib';
7
7
 
@@ -60,8 +60,8 @@ class XResizableProperty extends XProperty {
60
60
  this.resizeEnd = new EventEmitter();
61
61
  }
62
62
  }
63
- /** @nocollapse */ XResizableProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResizableProperty, deps: null, target: i0.ɵɵFactoryTarget.Directive });
64
- /** @nocollapse */ XResizableProperty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: XResizableProperty, selector: "[xResizable]", inputs: { xResizable: "xResizable", position: "position", ghost: "ghost", offsetLeft: "offsetLeft", offsetTop: "offsetTop" }, outputs: { resizeBegin: "resizeBegin", resizing: "resizing", resizeEnd: "resizeEnd" }, usesInheritance: true, ngImport: i0 });
63
+ /** @nocollapse */ XResizableProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResizableProperty, deps: null, target: i0.ɵɵFactoryTarget.Directive });
64
+ /** @nocollapse */ XResizableProperty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: XResizableProperty, selector: "[xResizable]", inputs: { xResizable: "xResizable", position: "position", ghost: "ghost", offsetLeft: "offsetLeft", offsetTop: "offsetTop" }, outputs: { resizeBegin: "resizeBegin", resizing: "resizing", resizeEnd: "resizeEnd" }, usesInheritance: true, ngImport: i0 });
65
65
  __decorate([
66
66
  XInputBoolean()
67
67
  ], XResizableProperty.prototype, "xResizable", void 0);
@@ -74,7 +74,7 @@ __decorate([
74
74
  __decorate([
75
75
  XInputNumber()
76
76
  ], XResizableProperty.prototype, "offsetTop", void 0);
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResizableProperty, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResizableProperty, decorators: [{
78
78
  type: Directive,
79
79
  args: [{ selector: '[xResizable]' }]
80
80
  }], propDecorators: { xResizable: [{
@@ -96,10 +96,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
96
96
  }] } });
97
97
 
98
98
  class XResizableDirective extends XResizableProperty {
99
- constructor(renderer, elementRef, doc) {
99
+ constructor(renderer, elementRef) {
100
100
  super();
101
101
  this.renderer = renderer;
102
102
  this.elementRef = elementRef;
103
+ this.document = inject(DOCUMENT);
103
104
  this.cornerPositions = ['top-start', 'top-end', 'bottom-start', 'bottom-end'];
104
105
  this.allPositions = ['left', 'right', 'top', 'bottom', ...this.cornerPositions];
105
106
  this.positions = [];
@@ -107,7 +108,6 @@ class XResizableDirective extends XResizableProperty {
107
108
  this.positionNodes = {};
108
109
  this.activatingNodes = [];
109
110
  this.firstLoaded = true;
110
- this.document = doc;
111
111
  this.ele = this.elementRef.nativeElement;
112
112
  }
113
113
  get getDisabled() {
@@ -176,7 +176,7 @@ class XResizableDirective extends XResizableProperty {
176
176
  this.positions = positions;
177
177
  }
178
178
  this.createNode(...this.positions);
179
- const computedStyle = window.getComputedStyle(this.ele);
179
+ const computedStyle = XComputed(this.ele);
180
180
  setTimeout(() => {
181
181
  this.minWidth = parseFloat(computedStyle.minWidth);
182
182
  this.maxWidth = parseFloat(computedStyle.maxWidth);
@@ -336,17 +336,12 @@ class XResizableDirective extends XResizableProperty {
336
336
  }
337
337
  }
338
338
  }
339
- /** @nocollapse */ XResizableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResizableDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
340
- /** @nocollapse */ XResizableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: XResizableDirective, selector: "[xResizable]", host: { listeners: { "mousedown": "mousedown($event)", "touchstart": "mousedown($event)" }, properties: { "class.x-resizable-disabled": "this.getDisabled" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResizableDirective, decorators: [{
339
+ /** @nocollapse */ XResizableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResizableDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
340
+ /** @nocollapse */ XResizableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: XResizableDirective, selector: "[xResizable]", host: { listeners: { "mousedown": "mousedown($event)", "touchstart": "mousedown($event)" }, properties: { "class.x-resizable-disabled": "this.getDisabled" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
341
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResizableDirective, decorators: [{
342
342
  type: Directive,
343
343
  args: [{ selector: '[xResizable]' }]
344
- }], ctorParameters: function () {
345
- return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{
346
- type: Inject,
347
- args: [DOCUMENT]
348
- }] }];
349
- }, propDecorators: { getDisabled: [{
344
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { getDisabled: [{
350
345
  type: HostBinding,
351
346
  args: ['class.x-resizable-disabled']
352
347
  }], mousedown: [{
@@ -359,10 +354,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
359
354
 
360
355
  class XResizableModule {
361
356
  }
362
- /** @nocollapse */ XResizableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
363
- /** @nocollapse */ XResizableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: XResizableModule, declarations: [XResizableDirective], imports: [CommonModule], exports: [XResizableDirective] });
364
- /** @nocollapse */ XResizableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResizableModule, imports: [CommonModule] });
365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResizableModule, decorators: [{
357
+ /** @nocollapse */ XResizableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
358
+ /** @nocollapse */ XResizableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XResizableModule, declarations: [XResizableDirective], imports: [CommonModule], exports: [XResizableDirective] });
359
+ /** @nocollapse */ XResizableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResizableModule, imports: [CommonModule] });
360
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResizableModule, decorators: [{
366
361
  type: NgModule,
367
362
  args: [{
368
363
  declarations: [XResizableDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-resizable.mjs","sources":["../../../../lib/ng-nest/ui/resizable/resizable.property.ts","../../../../lib/ng-nest/ui/resizable/resizable.directive.ts","../../../../lib/ng-nest/ui/resizable/resizable.module.ts","../../../../lib/ng-nest/ui/resizable/ng-nest-ui-resizable.ts"],"sourcesContent":["import { Directive, EventEmitter, Input, Output } from '@angular/core';\r\nimport { XBoolean, XCorner, XInputBoolean, XInputNumber, XNumber, XPosition, XProperty } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Resizable 指令名称\r\n * @selector x-resizable\r\n * @decorator Directive\r\n */\r\nexport const XResizablePrefix = 'x-resizable';\r\n// const X_CONFIG_NAME = 'resizable';\r\n\r\n/**\r\n * Resizable Property\r\n */\r\n@Directive({ selector: '[xResizable]' })\r\nexport class XResizableProperty extends XProperty {\r\n /**\r\n * @zh_CN 启用调整尺寸大小\r\n * @en_US Enable adjustment size size\r\n */\r\n @Input() @XInputBoolean() xResizable: XBoolean = true;\r\n /**\r\n * @zh_CN 调整方位\r\n * @en_US Adjust the orientation\r\n */\r\n @Input() position?: XResizablePosition | XResizablePosition[] = 'all';\r\n /**\r\n * @zh_CN 手动调整,通过回调的数值自行调整\r\n * @en_US Manual adjustment, adjustment of the number of callbacks\r\n */\r\n @Input() @XInputBoolean() ghost: XBoolean = false;\r\n /**\r\n * @zh_CN 偏移屏幕左边\r\n * @en_US Distance on the left side\r\n */\r\n @Input() @XInputNumber() offsetLeft: XNumber = 0;\r\n /**\r\n * @zh_CN 偏移屏幕顶部\r\n * @en_US Distance to the top of the screen\r\n */\r\n @Input() @XInputNumber() offsetTop: XNumber = 0;\r\n /**\r\n * @zh_CN 开始调整\r\n * @en_US Adjust the orientation\r\n */\r\n @Output() resizeBegin: EventEmitter<any> = new EventEmitter();\r\n /**\r\n * @zh_CN 调整中\r\n * @en_US Adjust the orientation\r\n */\r\n @Output() resizing: EventEmitter<XResizableEvent> = new EventEmitter();\r\n /**\r\n * @zh_CN 调整结束\r\n * @en_US Adjust the orientation\r\n */\r\n @Output() resizeEnd: EventEmitter<XResizableEvent> = new EventEmitter();\r\n}\r\n\r\n/**\r\n * @zh_CN 调整方位\r\n * @en_US Adjust the orientation\r\n */\r\nexport type XResizablePosition = XPosition | XCorner | 'all';\r\n\r\n/**\r\n * @zh_CN 调整尺寸的事件对象\r\n * @en_US Adjust the size of event objects\r\n */\r\nexport interface XResizableEvent {\r\n /**\r\n * @zh_CN 事件\r\n * @en_US Event\r\n */\r\n event?: MouseEvent | Touch;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n clientWidth?: number;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US height\r\n */\r\n clientHeight?: number;\r\n /**\r\n * @zh_CN 距离屏幕左边\r\n * @en_US Distance on the left side\r\n */\r\n offsetLeft?: number;\r\n /**\r\n * @zh_CN 距离屏幕顶部\r\n * @en_US Distance to the top of the screen\r\n */\r\n offsetTop?: number;\r\n /**\r\n * @zh_CN 改变方位\r\n * @en_US Change position\r\n */\r\n direction?: XResizablePosition | null;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Directive, ElementRef, HostBinding, HostListener, Inject, OnDestroy, OnInit, Renderer2, SimpleChanges } from '@angular/core';\r\nimport { XIsArray, XIsChange, XIsString } from '@ng-nest/ui/core';\r\nimport { fromEvent, Subscription, takeUntil } from 'rxjs';\r\nimport { XResizablePosition, XResizablePrefix, XResizableProperty } from './resizable.property';\r\n\r\n@Directive({ selector: '[xResizable]' })\r\nexport class XResizableDirective extends XResizableProperty implements OnInit, OnDestroy {\r\n @HostBinding('class.x-resizable-disabled') get getDisabled() {\r\n return !this.xResizable;\r\n }\r\n document!: Document;\r\n ele!: HTMLElement;\r\n cornerPositions: XResizablePosition[] = ['top-start', 'top-end', 'bottom-start', 'bottom-end'];\r\n allPositions: XResizablePosition[] = ['left', 'right', 'top', 'bottom', ...this.cornerPositions];\r\n positions: XResizablePosition[] = [];\r\n direction?: XResizablePosition | null;\r\n newBox = { clientWidth: 0, clientHeight: 0, offsetLeft: 0, offsetTop: 0 };\r\n mouseUpSub?: Subscription;\r\n\r\n minWidth?: number;\r\n maxWidth?: number;\r\n minHeight?: number;\r\n maxHeight?: number;\r\n\r\n positionNodes: { [key: string]: HTMLElement } = {};\r\n activatingNodes: HTMLElement[] = [];\r\n\r\n firstLoaded = true;\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef, @Inject(DOCUMENT) doc: any) {\r\n super();\r\n this.document = doc;\r\n this.ele = this.elementRef.nativeElement;\r\n }\r\n\r\n ngOnInit() {\r\n this.setMapClass();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPosition();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroySubscription();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { xResizable } = changes;\r\n XIsChange(xResizable) && this.setPosition();\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n @HostListener('touchstart', ['$event'])\r\n mousedown(event: MouseEvent | TouchEvent) {\r\n if (!this.xResizable) return;\r\n const classList = (event.target as HTMLElement).classList;\r\n let direction: XResizablePosition | null = null;\r\n for (let pos of this.allPositions) {\r\n if (classList.contains(`x-resizable-${pos}`)) {\r\n direction = pos;\r\n break;\r\n }\r\n }\r\n if (!direction) return;\r\n\r\n const evt = event.type.startsWith('touch') ? (event as TouchEvent).targetTouches[0] : (event as MouseEvent);\r\n const { clientWidth, clientHeight, offsetLeft, offsetTop } = this.ele;\r\n const { screenX, screenY } = evt;\r\n const isTouchEvent = event.type.startsWith('touch');\r\n const moveEvent = isTouchEvent ? 'touchmove' : 'mousemove';\r\n const upEvent = isTouchEvent ? 'touchend' : 'mouseup';\r\n\r\n this.setActivatingNodes(direction);\r\n this.initResize(event, direction);\r\n\r\n const mouseup = fromEvent(this.document, upEvent);\r\n this.mouseUpSub = mouseup.subscribe((ev) => {\r\n this.mouseup(ev as MouseEvent | TouchEvent);\r\n });\r\n const mouseMoveSub = fromEvent(document, moveEvent)\r\n .pipe(takeUntil(mouseup))\r\n .subscribe((ev) => this.move(ev as MouseEvent | TouchEvent, clientWidth, clientHeight, offsetTop, offsetLeft, screenX, screenY));\r\n\r\n this.mouseUpSub.add(mouseMoveSub);\r\n }\r\n\r\n setMapClass() {\r\n this.renderer.addClass(this.ele, XResizablePrefix);\r\n }\r\n\r\n setPosition() {\r\n if (!this.xResizable || !this.firstLoaded) return;\r\n let positions: XResizablePosition[] = [];\r\n if (XIsString(this.position)) {\r\n positions.push(this.position as XResizablePosition);\r\n } else if (XIsArray(this.position)) {\r\n positions = this.position as XResizablePosition[];\r\n }\r\n\r\n if (positions.includes('all')) {\r\n this.positions = this.allPositions;\r\n } else {\r\n this.positions = positions;\r\n }\r\n this.createNode(...this.positions);\r\n\r\n const computedStyle = window.getComputedStyle(this.ele);\r\n setTimeout(() => {\r\n this.minWidth = parseFloat(computedStyle.minWidth);\r\n this.maxWidth = parseFloat(computedStyle.maxWidth);\r\n this.minHeight = parseFloat(computedStyle.minHeight);\r\n this.maxHeight = parseFloat(computedStyle.maxHeight);\r\n this.firstLoaded = false;\r\n });\r\n }\r\n\r\n setActivatingNodes(direction: XResizablePosition) {\r\n if (!this.positions.includes(direction)) return;\r\n const addActivatingNode = (...direction: XResizablePosition[]) => {\r\n for (let item of direction) {\r\n const nd = this.positionNodes[item];\r\n const isNd = this.activatingNodes.includes(nd);\r\n if (!nd || isNd) continue;\r\n this.renderer.addClass(nd, 'x-resizable-activating');\r\n this.activatingNodes.push(nd);\r\n }\r\n };\r\n if (this.cornerPositions.includes(direction)) {\r\n switch (direction) {\r\n case 'bottom-end':\r\n addActivatingNode('bottom', 'right');\r\n break;\r\n case 'top-end':\r\n addActivatingNode('top', 'right');\r\n break;\r\n case 'bottom-start':\r\n addActivatingNode('bottom', 'left');\r\n break;\r\n case 'top-start':\r\n addActivatingNode('top', 'left');\r\n break;\r\n }\r\n }\r\n addActivatingNode(direction);\r\n }\r\n\r\n createNode(...classes: XResizablePosition[]) {\r\n for (let cla of classes) {\r\n const pos = this.renderer.createElement('div');\r\n this.renderer.addClass(pos, `x-resizable-${cla}`);\r\n this.renderer.appendChild(this.ele, pos);\r\n this.positionNodes[cla] = pos;\r\n }\r\n }\r\n\r\n initResize(event: MouseEvent | TouchEvent, direction: XResizablePosition) {\r\n this.direction = direction;\r\n this.renderer.addClass(this.ele, `x-resizable-resizing`);\r\n let { clientWidth, clientHeight, offsetLeft, offsetTop } = this.ele;\r\n this.newBox = { clientWidth, clientHeight, offsetLeft, offsetTop };\r\n event.stopPropagation();\r\n this.resizeBegin.emit();\r\n }\r\n\r\n mouseup(event: MouseEvent | TouchEvent) {\r\n this.endResize(event);\r\n this.destroySubscription();\r\n }\r\n\r\n endResize(event: MouseEvent | TouchEvent) {\r\n const evt = event.type.startsWith('touch') ? (event as TouchEvent).targetTouches[0] : (event as MouseEvent);\r\n this.direction = null;\r\n this.renderer.removeClass(this.ele, `x-resizable-resizing`);\r\n for (const node of this.activatingNodes) {\r\n this.renderer.removeClass(node, 'x-resizable-activating');\r\n }\r\n this.activatingNodes = [];\r\n this.resizeEnd.emit({ event: evt, ...this.newBox });\r\n }\r\n\r\n move(event: MouseEvent | TouchEvent, width: number, height: number, top: number, left: number, screenX: number, screenY: number) {\r\n const evt = event.type.startsWith('touch') ? (event as TouchEvent).targetTouches[0] : (event as MouseEvent);\r\n const movementX = evt.screenX - screenX;\r\n const movementY = evt.screenY - screenY;\r\n\r\n this.newBox = {\r\n clientWidth: width - (['bottom-start', 'left', 'top-start'].includes(this.direction as string) ? movementX : -movementX),\r\n clientHeight: height - (['top-start', 'top', 'top-end'].includes(this.direction as string) ? movementY : -movementY),\r\n offsetLeft: left + movementX,\r\n offsetTop: top + movementY\r\n };\r\n\r\n const box = {\r\n ...this.newBox,\r\n offsetLeft: this.newBox.offsetLeft - Number(this.offsetLeft),\r\n offsetTop: this.newBox.offsetTop - Number(this.offsetTop)\r\n };\r\n\r\n this.resizeBox(box);\r\n\r\n this.resizing.emit({ ...this.newBox, event: evt, direction: this.direction });\r\n }\r\n\r\n resizeBox(box: { clientWidth: number; clientHeight: number; offsetLeft: number; offsetTop: number }) {\r\n if (this.ghost) return;\r\n const overMinWidth = !this.minWidth || box.clientWidth >= this.minWidth;\r\n const underMaxWidth = !this.maxWidth || box.clientWidth <= this.maxWidth;\r\n const overMinHeight = !this.minHeight || box.clientHeight >= this.minHeight;\r\n const underMaxHeight = !this.maxHeight || box.clientHeight <= this.maxHeight;\r\n\r\n switch (this.direction) {\r\n case 'right':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n break;\r\n case 'top-end':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'top', `${box.offsetTop}px`);\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'bottom-end':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'bottom-start':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'left', `${box.offsetLeft}px`);\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'left':\r\n console.log(this.minWidth);\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'left', `${box.offsetLeft}px`);\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n break;\r\n case 'top-start':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'left', `${box.offsetLeft}px`);\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'top', `${box.offsetTop}px`);\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'top':\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'top', `${box.offsetTop}px`);\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'bottom':\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private destroySubscription() {\r\n if (this.mouseUpSub) {\r\n this.mouseUpSub.unsubscribe();\r\n this.mouseUpSub = undefined;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XResizableDirective } from './resizable.directive';\r\n\r\n@NgModule({\r\n declarations: [XResizableDirective],\r\n exports: [XResizableDirective],\r\n imports: [CommonModule]\r\n})\r\nexport class XResizableModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-resizable.mjs","sources":["../../../../lib/ng-nest/ui/resizable/resizable.property.ts","../../../../lib/ng-nest/ui/resizable/resizable.directive.ts","../../../../lib/ng-nest/ui/resizable/resizable.module.ts","../../../../lib/ng-nest/ui/resizable/ng-nest-ui-resizable.ts"],"sourcesContent":["import { Directive, EventEmitter, Input, Output } from '@angular/core';\r\nimport { XBoolean, XCorner, XInputBoolean, XInputNumber, XNumber, XPosition, XProperty } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Resizable 指令名称\r\n * @selector x-resizable\r\n * @decorator Directive\r\n */\r\nexport const XResizablePrefix = 'x-resizable';\r\n// const X_CONFIG_NAME = 'resizable';\r\n\r\n/**\r\n * Resizable Property\r\n */\r\n@Directive({ selector: '[xResizable]' })\r\nexport class XResizableProperty extends XProperty {\r\n /**\r\n * @zh_CN 启用调整尺寸大小\r\n * @en_US Enable adjustment size size\r\n */\r\n @Input() @XInputBoolean() xResizable: XBoolean = true;\r\n /**\r\n * @zh_CN 调整方位\r\n * @en_US Adjust the orientation\r\n */\r\n @Input() position?: XResizablePosition | XResizablePosition[] = 'all';\r\n /**\r\n * @zh_CN 手动调整,通过回调的数值自行调整\r\n * @en_US Manual adjustment, adjustment of the number of callbacks\r\n */\r\n @Input() @XInputBoolean() ghost: XBoolean = false;\r\n /**\r\n * @zh_CN 偏移屏幕左边\r\n * @en_US Distance on the left side\r\n */\r\n @Input() @XInputNumber() offsetLeft: XNumber = 0;\r\n /**\r\n * @zh_CN 偏移屏幕顶部\r\n * @en_US Distance to the top of the screen\r\n */\r\n @Input() @XInputNumber() offsetTop: XNumber = 0;\r\n /**\r\n * @zh_CN 开始调整\r\n * @en_US Adjust the orientation\r\n */\r\n @Output() resizeBegin: EventEmitter<any> = new EventEmitter();\r\n /**\r\n * @zh_CN 调整中\r\n * @en_US Adjust the orientation\r\n */\r\n @Output() resizing: EventEmitter<XResizableEvent> = new EventEmitter();\r\n /**\r\n * @zh_CN 调整结束\r\n * @en_US Adjust the orientation\r\n */\r\n @Output() resizeEnd: EventEmitter<XResizableEvent> = new EventEmitter();\r\n}\r\n\r\n/**\r\n * @zh_CN 调整方位\r\n * @en_US Adjust the orientation\r\n */\r\nexport type XResizablePosition = XPosition | XCorner | 'all';\r\n\r\n/**\r\n * @zh_CN 调整尺寸的事件对象\r\n * @en_US Adjust the size of event objects\r\n */\r\nexport interface XResizableEvent {\r\n /**\r\n * @zh_CN 事件\r\n * @en_US Event\r\n */\r\n event?: MouseEvent | Touch;\r\n /**\r\n * @zh_CN 宽度\r\n * @en_US Width\r\n */\r\n clientWidth?: number;\r\n /**\r\n * @zh_CN 高度\r\n * @en_US height\r\n */\r\n clientHeight?: number;\r\n /**\r\n * @zh_CN 距离屏幕左边\r\n * @en_US Distance on the left side\r\n */\r\n offsetLeft?: number;\r\n /**\r\n * @zh_CN 距离屏幕顶部\r\n * @en_US Distance to the top of the screen\r\n */\r\n offsetTop?: number;\r\n /**\r\n * @zh_CN 改变方位\r\n * @en_US Change position\r\n */\r\n direction?: XResizablePosition | null;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport {\r\n Directive,\r\n ElementRef,\r\n HostBinding,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n Renderer2,\r\n SimpleChanges,\r\n inject\r\n} from '@angular/core';\r\nimport { XComputed, XIsArray, XIsChange, XIsString } from '@ng-nest/ui/core';\r\nimport { fromEvent, Subscription, takeUntil } from 'rxjs';\r\nimport { XResizablePosition, XResizablePrefix, XResizableProperty } from './resizable.property';\r\n\r\n@Directive({ selector: '[xResizable]' })\r\nexport class XResizableDirective extends XResizableProperty implements OnInit, OnDestroy {\r\n @HostBinding('class.x-resizable-disabled') get getDisabled() {\r\n return !this.xResizable;\r\n }\r\n document = inject(DOCUMENT);\r\n ele!: HTMLElement;\r\n cornerPositions: XResizablePosition[] = ['top-start', 'top-end', 'bottom-start', 'bottom-end'];\r\n allPositions: XResizablePosition[] = ['left', 'right', 'top', 'bottom', ...this.cornerPositions];\r\n positions: XResizablePosition[] = [];\r\n direction?: XResizablePosition | null;\r\n newBox = { clientWidth: 0, clientHeight: 0, offsetLeft: 0, offsetTop: 0 };\r\n mouseUpSub?: Subscription;\r\n\r\n minWidth?: number;\r\n maxWidth?: number;\r\n minHeight?: number;\r\n maxHeight?: number;\r\n\r\n positionNodes: { [key: string]: HTMLElement } = {};\r\n activatingNodes: HTMLElement[] = [];\r\n\r\n firstLoaded = true;\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {\r\n super();\r\n this.ele = this.elementRef.nativeElement;\r\n }\r\n\r\n ngOnInit() {\r\n this.setMapClass();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPosition();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroySubscription();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { xResizable } = changes;\r\n XIsChange(xResizable) && this.setPosition();\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n @HostListener('touchstart', ['$event'])\r\n mousedown(event: MouseEvent | TouchEvent) {\r\n if (!this.xResizable) return;\r\n const classList = (event.target as HTMLElement).classList;\r\n let direction: XResizablePosition | null = null;\r\n for (let pos of this.allPositions) {\r\n if (classList.contains(`x-resizable-${pos}`)) {\r\n direction = pos;\r\n break;\r\n }\r\n }\r\n if (!direction) return;\r\n\r\n const evt = event.type.startsWith('touch') ? (event as TouchEvent).targetTouches[0] : (event as MouseEvent);\r\n const { clientWidth, clientHeight, offsetLeft, offsetTop } = this.ele;\r\n const { screenX, screenY } = evt;\r\n const isTouchEvent = event.type.startsWith('touch');\r\n const moveEvent = isTouchEvent ? 'touchmove' : 'mousemove';\r\n const upEvent = isTouchEvent ? 'touchend' : 'mouseup';\r\n\r\n this.setActivatingNodes(direction);\r\n this.initResize(event, direction);\r\n\r\n const mouseup = fromEvent(this.document, upEvent);\r\n this.mouseUpSub = mouseup.subscribe((ev) => {\r\n this.mouseup(ev as MouseEvent | TouchEvent);\r\n });\r\n const mouseMoveSub = fromEvent(document, moveEvent)\r\n .pipe(takeUntil(mouseup))\r\n .subscribe((ev) => this.move(ev as MouseEvent | TouchEvent, clientWidth, clientHeight, offsetTop, offsetLeft, screenX, screenY));\r\n\r\n this.mouseUpSub.add(mouseMoveSub);\r\n }\r\n\r\n setMapClass() {\r\n this.renderer.addClass(this.ele, XResizablePrefix);\r\n }\r\n\r\n setPosition() {\r\n if (!this.xResizable || !this.firstLoaded) return;\r\n let positions: XResizablePosition[] = [];\r\n if (XIsString(this.position)) {\r\n positions.push(this.position as XResizablePosition);\r\n } else if (XIsArray(this.position)) {\r\n positions = this.position as XResizablePosition[];\r\n }\r\n\r\n if (positions.includes('all')) {\r\n this.positions = this.allPositions;\r\n } else {\r\n this.positions = positions;\r\n }\r\n this.createNode(...this.positions);\r\n\r\n const computedStyle = XComputed(this.ele);\r\n setTimeout(() => {\r\n this.minWidth = parseFloat(computedStyle.minWidth);\r\n this.maxWidth = parseFloat(computedStyle.maxWidth);\r\n this.minHeight = parseFloat(computedStyle.minHeight);\r\n this.maxHeight = parseFloat(computedStyle.maxHeight);\r\n this.firstLoaded = false;\r\n });\r\n }\r\n\r\n setActivatingNodes(direction: XResizablePosition) {\r\n if (!this.positions.includes(direction)) return;\r\n const addActivatingNode = (...direction: XResizablePosition[]) => {\r\n for (let item of direction) {\r\n const nd = this.positionNodes[item];\r\n const isNd = this.activatingNodes.includes(nd);\r\n if (!nd || isNd) continue;\r\n this.renderer.addClass(nd, 'x-resizable-activating');\r\n this.activatingNodes.push(nd);\r\n }\r\n };\r\n if (this.cornerPositions.includes(direction)) {\r\n switch (direction) {\r\n case 'bottom-end':\r\n addActivatingNode('bottom', 'right');\r\n break;\r\n case 'top-end':\r\n addActivatingNode('top', 'right');\r\n break;\r\n case 'bottom-start':\r\n addActivatingNode('bottom', 'left');\r\n break;\r\n case 'top-start':\r\n addActivatingNode('top', 'left');\r\n break;\r\n }\r\n }\r\n addActivatingNode(direction);\r\n }\r\n\r\n createNode(...classes: XResizablePosition[]) {\r\n for (let cla of classes) {\r\n const pos = this.renderer.createElement('div');\r\n this.renderer.addClass(pos, `x-resizable-${cla}`);\r\n this.renderer.appendChild(this.ele, pos);\r\n this.positionNodes[cla] = pos;\r\n }\r\n }\r\n\r\n initResize(event: MouseEvent | TouchEvent, direction: XResizablePosition) {\r\n this.direction = direction;\r\n this.renderer.addClass(this.ele, `x-resizable-resizing`);\r\n let { clientWidth, clientHeight, offsetLeft, offsetTop } = this.ele;\r\n this.newBox = { clientWidth, clientHeight, offsetLeft, offsetTop };\r\n event.stopPropagation();\r\n this.resizeBegin.emit();\r\n }\r\n\r\n mouseup(event: MouseEvent | TouchEvent) {\r\n this.endResize(event);\r\n this.destroySubscription();\r\n }\r\n\r\n endResize(event: MouseEvent | TouchEvent) {\r\n const evt = event.type.startsWith('touch') ? (event as TouchEvent).targetTouches[0] : (event as MouseEvent);\r\n this.direction = null;\r\n this.renderer.removeClass(this.ele, `x-resizable-resizing`);\r\n for (const node of this.activatingNodes) {\r\n this.renderer.removeClass(node, 'x-resizable-activating');\r\n }\r\n this.activatingNodes = [];\r\n this.resizeEnd.emit({ event: evt, ...this.newBox });\r\n }\r\n\r\n move(event: MouseEvent | TouchEvent, width: number, height: number, top: number, left: number, screenX: number, screenY: number) {\r\n const evt = event.type.startsWith('touch') ? (event as TouchEvent).targetTouches[0] : (event as MouseEvent);\r\n const movementX = evt.screenX - screenX;\r\n const movementY = evt.screenY - screenY;\r\n\r\n this.newBox = {\r\n clientWidth: width - (['bottom-start', 'left', 'top-start'].includes(this.direction as string) ? movementX : -movementX),\r\n clientHeight: height - (['top-start', 'top', 'top-end'].includes(this.direction as string) ? movementY : -movementY),\r\n offsetLeft: left + movementX,\r\n offsetTop: top + movementY\r\n };\r\n\r\n const box = {\r\n ...this.newBox,\r\n offsetLeft: this.newBox.offsetLeft - Number(this.offsetLeft),\r\n offsetTop: this.newBox.offsetTop - Number(this.offsetTop)\r\n };\r\n\r\n this.resizeBox(box);\r\n\r\n this.resizing.emit({ ...this.newBox, event: evt, direction: this.direction });\r\n }\r\n\r\n resizeBox(box: { clientWidth: number; clientHeight: number; offsetLeft: number; offsetTop: number }) {\r\n if (this.ghost) return;\r\n const overMinWidth = !this.minWidth || box.clientWidth >= this.minWidth;\r\n const underMaxWidth = !this.maxWidth || box.clientWidth <= this.maxWidth;\r\n const overMinHeight = !this.minHeight || box.clientHeight >= this.minHeight;\r\n const underMaxHeight = !this.maxHeight || box.clientHeight <= this.maxHeight;\r\n\r\n switch (this.direction) {\r\n case 'right':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n break;\r\n case 'top-end':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'top', `${box.offsetTop}px`);\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'bottom-end':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'bottom-start':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'left', `${box.offsetLeft}px`);\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'left':\r\n console.log(this.minWidth);\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'left', `${box.offsetLeft}px`);\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n break;\r\n case 'top-start':\r\n if (overMinWidth && underMaxWidth) {\r\n this.renderer.setStyle(this.ele, 'left', `${box.offsetLeft}px`);\r\n this.renderer.setStyle(this.ele, 'width', `${box.clientWidth}px`);\r\n }\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'top', `${box.offsetTop}px`);\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'top':\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'top', `${box.offsetTop}px`);\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n case 'bottom':\r\n if (overMinHeight && underMaxHeight) {\r\n this.renderer.setStyle(this.ele, 'height', `${box.clientHeight}px`);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n private destroySubscription() {\r\n if (this.mouseUpSub) {\r\n this.mouseUpSub.unsubscribe();\r\n this.mouseUpSub = undefined;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XResizableDirective } from './resizable.directive';\r\n\r\n@NgModule({\r\n declarations: [XResizableDirective],\r\n exports: [XResizableDirective],\r\n imports: [CommonModule]\r\n})\r\nexport class XResizableModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -28,9 +28,9 @@ class XResultProperty extends XProperty {
28
28
  this.status = 'info';
29
29
  }
30
30
  }
31
- /** @nocollapse */ XResultProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResultProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
32
- /** @nocollapse */ XResultProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XResultProperty, selector: "ng-component", inputs: { status: "status", title: "title", icon: "icon", subTitle: "subTitle" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResultProperty, decorators: [{
31
+ /** @nocollapse */ XResultProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResultProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
32
+ /** @nocollapse */ XResultProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XResultProperty, selector: "ng-component", inputs: { status: "status", title: "title", icon: "icon", subTitle: "subTitle" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResultProperty, decorators: [{
34
34
  type: Component,
35
35
  args: [{ template: '' }]
36
36
  }], propDecorators: { status: [{
@@ -61,19 +61,19 @@ class XResultComponent extends XResultProperty {
61
61
  this.classMap[`${XResultPrefix}-${this.status}`] = !XIsEmpty(this.status);
62
62
  }
63
63
  }
64
- /** @nocollapse */ XResultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResultComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
65
- /** @nocollapse */ XResultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XResultComponent, selector: "x-result", usesInheritance: true, ngImport: i0, template: "<div #result class=\"x-result\" [ngClass]=\"classMap\">\r\n <div class=\"x-result-icon\">\r\n <ng-container *ngIf=\"!icon; else iconTpl\" [ngSwitch]=\"status\">\r\n <x-icon *ngSwitchCase=\"'success'\" type=\"adf-check-circle\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'info'\" type=\"adf-info-circle\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'warning'\" type=\"adf-warning\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'error'\" type=\"adf-close-circle\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'403'\" type=\"fto-lock\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'404'\" type=\"fto-code\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'500'\" type=\"adf-close-circle\"></x-icon>\r\n </ng-container>\r\n <ng-template #iconTpl>\r\n <ng-container *xOutlet=\"icon\">\r\n <x-icon [type]=\"strIcon\"></x-icon>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"x-result-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <div class=\"x-result-subTitle\">\r\n <ng-container *xOutlet=\"subTitle\">{{ subTitle }}</ng-container>\r\n </div>\r\n <div class=\"x-result-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".x-result{margin:0;padding:0;display:flex;flex-direction:column;align-items:center;padding:3rem 2rem}.x-result-icon{font-size:calc(var(--x-font-size) * 5);margin-bottom:var(--x-font-size-large)}.x-result-title{font-size:var(--x-font-size-large);line-height:calc(var(--x-font-size-large) * 1.5)}.x-result-subTitle{color:var(--x-text-400)}.x-result-content{margin-top:var(--x-font-size-large)}.x-result-success .x-result-icon{color:var(--x-success)}.x-result-info .x-result-icon{color:var(--x-info)}.x-result-warning .x-result-icon{color:var(--x-warning)}.x-result-error .x-result-icon{color:var(--x-danger)}.x-result-403 .x-result-icon,.x-result-404 .x-result-icon{color:var(--x-text-400)}.x-result-500 .x-result-icon{color:var(--x-danger)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResultComponent, decorators: [{
64
+ /** @nocollapse */ XResultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResultComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
65
+ /** @nocollapse */ XResultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: XResultComponent, selector: "x-result", usesInheritance: true, ngImport: i0, template: "<div #result class=\"x-result\" [ngClass]=\"classMap\">\r\n <div class=\"x-result-icon\">\r\n <ng-container *ngIf=\"!icon; else iconTpl\" [ngSwitch]=\"status\">\r\n <x-icon *ngSwitchCase=\"'success'\" type=\"adf-check-circle\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'info'\" type=\"adf-info-circle\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'warning'\" type=\"adf-warning\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'error'\" type=\"adf-close-circle\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'403'\" type=\"fto-lock\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'404'\" type=\"fto-code\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'500'\" type=\"adf-close-circle\"></x-icon>\r\n </ng-container>\r\n <ng-template #iconTpl>\r\n <ng-container *xOutlet=\"icon\">\r\n <x-icon [type]=\"strIcon\"></x-icon>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"x-result-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <div class=\"x-result-subTitle\">\r\n <ng-container *xOutlet=\"subTitle\">{{ subTitle }}</ng-container>\r\n </div>\r\n <div class=\"x-result-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".x-result{margin:0;padding:0;display:flex;flex-direction:column;align-items:center;padding:3rem 2rem}.x-result-icon{font-size:calc(var(--x-font-size) * 5);margin-bottom:var(--x-font-size-large)}.x-result-title{font-size:var(--x-font-size-large);line-height:calc(var(--x-font-size-large) * 1.5)}.x-result-subTitle{color:var(--x-text-400)}.x-result-content{margin-top:var(--x-font-size-large)}.x-result-success .x-result-icon{color:var(--x-success)}.x-result-info .x-result-icon{color:var(--x-info)}.x-result-warning .x-result-icon{color:var(--x-warning)}.x-result-error .x-result-icon{color:var(--x-danger)}.x-result-403 .x-result-icon,.x-result-404 .x-result-icon{color:var(--x-text-400)}.x-result-500 .x-result-icon{color:var(--x-danger)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResultComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: `${XResultPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #result class=\"x-result\" [ngClass]=\"classMap\">\r\n <div class=\"x-result-icon\">\r\n <ng-container *ngIf=\"!icon; else iconTpl\" [ngSwitch]=\"status\">\r\n <x-icon *ngSwitchCase=\"'success'\" type=\"adf-check-circle\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'info'\" type=\"adf-info-circle\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'warning'\" type=\"adf-warning\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'error'\" type=\"adf-close-circle\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'403'\" type=\"fto-lock\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'404'\" type=\"fto-code\"></x-icon>\r\n <x-icon *ngSwitchCase=\"'500'\" type=\"adf-close-circle\"></x-icon>\r\n </ng-container>\r\n <ng-template #iconTpl>\r\n <ng-container *xOutlet=\"icon\">\r\n <x-icon [type]=\"strIcon\"></x-icon>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"x-result-title\">\r\n <ng-container *xOutlet=\"title\">{{ title }}</ng-container>\r\n </div>\r\n <div class=\"x-result-subTitle\">\r\n <ng-container *xOutlet=\"subTitle\">{{ subTitle }}</ng-container>\r\n </div>\r\n <div class=\"x-result-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".x-result{margin:0;padding:0;display:flex;flex-direction:column;align-items:center;padding:3rem 2rem}.x-result-icon{font-size:calc(var(--x-font-size) * 5);margin-bottom:var(--x-font-size-large)}.x-result-title{font-size:var(--x-font-size-large);line-height:calc(var(--x-font-size-large) * 1.5)}.x-result-subTitle{color:var(--x-text-400)}.x-result-content{margin-top:var(--x-font-size-large)}.x-result-success .x-result-icon{color:var(--x-success)}.x-result-info .x-result-icon{color:var(--x-info)}.x-result-warning .x-result-icon{color:var(--x-warning)}.x-result-error .x-result-icon{color:var(--x-danger)}.x-result-403 .x-result-icon,.x-result-404 .x-result-icon{color:var(--x-text-400)}.x-result-500 .x-result-icon{color:var(--x-danger)}\n"] }]
69
69
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; } });
70
70
 
71
71
  class XResultModule {
72
72
  }
73
- /** @nocollapse */ XResultModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResultModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
74
- /** @nocollapse */ XResultModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: XResultModule, declarations: [XResultComponent, XResultProperty], imports: [CommonModule, XIconModule, XOutletModule], exports: [XResultComponent] });
75
- /** @nocollapse */ XResultModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResultModule, imports: [CommonModule, XIconModule, XOutletModule] });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XResultModule, decorators: [{
73
+ /** @nocollapse */ XResultModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResultModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
74
+ /** @nocollapse */ XResultModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XResultModule, declarations: [XResultComponent, XResultProperty], imports: [CommonModule, XIconModule, XOutletModule], exports: [XResultComponent] });
75
+ /** @nocollapse */ XResultModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResultModule, imports: [CommonModule, XIconModule, XOutletModule] });
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XResultModule, decorators: [{
77
77
  type: NgModule,
78
78
  args: [{
79
79
  declarations: [XResultComponent, XResultProperty],
@@ -3,7 +3,7 @@ import { Directive, Input, NgModule } from '@angular/core';
3
3
  import { Subject, fromEvent, of } from 'rxjs';
4
4
  import { takeUntil, delay, tap } from 'rxjs/operators';
5
5
  import { __decorate } from 'tslib';
6
- import { XProperty, XWithConfig, XInputBoolean } from '@ng-nest/ui/core';
6
+ import { XProperty, XWithConfig, XInputBoolean, XComputed } from '@ng-nest/ui/core';
7
7
  import { CommonModule } from '@angular/common';
8
8
 
9
9
  /**
@@ -18,15 +18,15 @@ const X_CONFIG_NAME = 'ripple';
18
18
  */
19
19
  class XRippleProperty extends XProperty {
20
20
  }
21
- /** @nocollapse */ XRippleProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XRippleProperty, deps: null, target: i0.ɵɵFactoryTarget.Directive });
22
- /** @nocollapse */ XRippleProperty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: XRippleProperty, selector: "[x-ripple]", inputs: { type: "type", disabled: "disabled" }, usesInheritance: true, ngImport: i0 });
21
+ /** @nocollapse */ XRippleProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XRippleProperty, deps: null, target: i0.ɵɵFactoryTarget.Directive });
22
+ /** @nocollapse */ XRippleProperty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: XRippleProperty, selector: "[x-ripple]", inputs: { type: "type", disabled: "disabled" }, usesInheritance: true, ngImport: i0 });
23
23
  __decorate([
24
24
  XWithConfig(X_CONFIG_NAME, 'initial')
25
25
  ], XRippleProperty.prototype, "type", void 0);
26
26
  __decorate([
27
27
  XInputBoolean()
28
28
  ], XRippleProperty.prototype, "disabled", void 0);
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XRippleProperty, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XRippleProperty, decorators: [{
30
30
  type: Directive,
31
31
  args: [{ selector: '[x-ripple]' }]
32
32
  }], propDecorators: { type: [{
@@ -86,12 +86,12 @@ class XRippleDirective extends XRippleProperty {
86
86
  return Math.sqrt(distX * distX + distY * distY);
87
87
  }
88
88
  enforceStyleRecalculation(element) {
89
- window.getComputedStyle(element).getPropertyValue('opacity');
89
+ XComputed(element).getPropertyValue('opacity');
90
90
  }
91
91
  }
92
- /** @nocollapse */ XRippleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XRippleDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
93
- /** @nocollapse */ XRippleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: XRippleDirective, selector: "[x-ripple]", usesInheritance: true, ngImport: i0 });
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XRippleDirective, decorators: [{
92
+ /** @nocollapse */ XRippleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XRippleDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
93
+ /** @nocollapse */ XRippleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: XRippleDirective, selector: "[x-ripple]", usesInheritance: true, ngImport: i0 });
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XRippleDirective, decorators: [{
95
95
  type: Directive,
96
96
  args: [{
97
97
  selector: '[x-ripple]'
@@ -100,10 +100,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
100
100
 
101
101
  class XRippleModule {
102
102
  }
103
- /** @nocollapse */ XRippleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XRippleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
104
- /** @nocollapse */ XRippleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: XRippleModule, declarations: [XRippleDirective, XRippleProperty], imports: [CommonModule], exports: [XRippleDirective] });
105
- /** @nocollapse */ XRippleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XRippleModule, imports: [CommonModule] });
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XRippleModule, decorators: [{
103
+ /** @nocollapse */ XRippleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XRippleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
104
+ /** @nocollapse */ XRippleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: XRippleModule, declarations: [XRippleDirective, XRippleProperty], imports: [CommonModule], exports: [XRippleDirective] });
105
+ /** @nocollapse */ XRippleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XRippleModule, imports: [CommonModule] });
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: XRippleModule, decorators: [{
107
107
  type: NgModule,
108
108
  args: [{
109
109
  declarations: [XRippleDirective, XRippleProperty],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-ripple.mjs","sources":["../../../../lib/ng-nest/ui/ripple/ripple.property.ts","../../../../lib/ng-nest/ui/ripple/ripple.directive.ts","../../../../lib/ng-nest/ui/ripple/ripple.module.ts","../../../../lib/ng-nest/ui/ripple/ng-nest-ui-ripple.ts"],"sourcesContent":["import { XBoolean, XInputBoolean, XProperty, XType, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Directive } from '@angular/core';\r\n\r\n/**\r\n * Ripple\r\n * @selector x-ripple\r\n * @decorator directive\r\n */\r\nexport const XRipplePrefix = 'x-ripple';\r\nconst X_CONFIG_NAME = 'ripple';\r\n\r\n/**\r\n * Ripple Property\r\n */\r\n@Directive({ selector: '[x-ripple]' })\r\nexport class XRippleProperty extends XProperty {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n @Input() @XWithConfig<XRippleType>(X_CONFIG_NAME, 'initial') type?: XRippleType;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disable\r\n */\r\n @Input() @XInputBoolean() disabled?: XBoolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 波纹类型\r\n * @en_US Ripple type\r\n */\r\nexport type XRippleType = XType;\r\n","import { OnInit, Renderer2, ElementRef, Directive, OnDestroy } from '@angular/core';\r\nimport { fromEvent, of, Subject } from 'rxjs';\r\nimport { delay, takeUntil, tap } from 'rxjs/operators';\r\nimport { XRipplePrefix, XRippleProperty } from './ripple.property';\r\n\r\n@Directive({\r\n selector: '[x-ripple]'\r\n})\r\nexport class XRippleDirective extends XRippleProperty implements OnInit, OnDestroy {\r\n duration = 800;\r\n private _unSub = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.disabled) return;\r\n fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown')\r\n .pipe(takeUntil(this._unSub))\r\n .subscribe((event) => {\r\n const eleRect = this.elementRef.nativeElement.getBoundingClientRect();\r\n const radius = this.distanceToFurthestCorner(event.x, event.y, eleRect);\r\n const offsetX = event.x - eleRect.left;\r\n const offsetY = event.y - eleRect.top;\r\n const ripple = this.renderer.createElement('div');\r\n this.renderer.addClass(ripple, 'x-ripple-element');\r\n ripple.style.left = `${offsetX - radius}px`;\r\n ripple.style.top = `${offsetY - radius}px`;\r\n ripple.style.height = `${radius * 2}px`;\r\n ripple.style.width = `${radius * 2}px`;\r\n ripple.style.transitionDuration = `${this.duration}ms`;\r\n this.renderer.appendChild(this.elementRef.nativeElement, ripple);\r\n this.enforceStyleRecalculation(ripple);\r\n ripple.style.transform = 'scale(1)';\r\n ripple.style.opacity = '0';\r\n\r\n of(true)\r\n .pipe(\r\n delay(this.duration),\r\n tap(() => {\r\n this.renderer.removeChild(this.elementRef.nativeElement, ripple);\r\n }),\r\n takeUntil(this._unSub)\r\n )\r\n .subscribe();\r\n });\r\n this.setClassMap();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSub.next();\r\n this._unSub.complete();\r\n }\r\n\r\n setClassMap() {\r\n this.renderer.addClass(this.elementRef.nativeElement, XRipplePrefix);\r\n this.renderer.addClass(this.elementRef.nativeElement, `${XRipplePrefix}-${this.type}`);\r\n }\r\n\r\n distanceToFurthestCorner(x: number, y: number, rect: ClientRect) {\r\n const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\r\n const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\r\n return Math.sqrt(distX * distX + distY * distY);\r\n }\r\n\r\n enforceStyleRecalculation(element: HTMLElement) {\r\n window.getComputedStyle(element).getPropertyValue('opacity');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XRippleDirective } from './ripple.directive';\r\nimport { XRippleProperty } from './ripple.property';\r\n\r\n@NgModule({\r\n declarations: [XRippleDirective, XRippleProperty],\r\n exports: [XRippleDirective],\r\n imports: [CommonModule]\r\n})\r\nexport class XRippleModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-ripple.mjs","sources":["../../../../lib/ng-nest/ui/ripple/ripple.property.ts","../../../../lib/ng-nest/ui/ripple/ripple.directive.ts","../../../../lib/ng-nest/ui/ripple/ripple.module.ts","../../../../lib/ng-nest/ui/ripple/ng-nest-ui-ripple.ts"],"sourcesContent":["import { XBoolean, XInputBoolean, XProperty, XType, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Directive } from '@angular/core';\r\n\r\n/**\r\n * Ripple\r\n * @selector x-ripple\r\n * @decorator directive\r\n */\r\nexport const XRipplePrefix = 'x-ripple';\r\nconst X_CONFIG_NAME = 'ripple';\r\n\r\n/**\r\n * Ripple Property\r\n */\r\n@Directive({ selector: '[x-ripple]' })\r\nexport class XRippleProperty extends XProperty {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n @Input() @XWithConfig<XRippleType>(X_CONFIG_NAME, 'initial') type?: XRippleType;\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disable\r\n */\r\n @Input() @XInputBoolean() disabled?: XBoolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 波纹类型\r\n * @en_US Ripple type\r\n */\r\nexport type XRippleType = XType;\r\n","import { OnInit, Renderer2, ElementRef, Directive, OnDestroy } from '@angular/core';\r\nimport { fromEvent, of, Subject } from 'rxjs';\r\nimport { delay, takeUntil, tap } from 'rxjs/operators';\r\nimport { XRipplePrefix, XRippleProperty } from './ripple.property';\r\nimport { XComputed } from '@ng-nest/ui/core';\r\n\r\n@Directive({\r\n selector: '[x-ripple]'\r\n})\r\nexport class XRippleDirective extends XRippleProperty implements OnInit, OnDestroy {\r\n duration = 800;\r\n private _unSub = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.disabled) return;\r\n fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown')\r\n .pipe(takeUntil(this._unSub))\r\n .subscribe((event) => {\r\n const eleRect = this.elementRef.nativeElement.getBoundingClientRect();\r\n const radius = this.distanceToFurthestCorner(event.x, event.y, eleRect);\r\n const offsetX = event.x - eleRect.left;\r\n const offsetY = event.y - eleRect.top;\r\n const ripple = this.renderer.createElement('div');\r\n this.renderer.addClass(ripple, 'x-ripple-element');\r\n ripple.style.left = `${offsetX - radius}px`;\r\n ripple.style.top = `${offsetY - radius}px`;\r\n ripple.style.height = `${radius * 2}px`;\r\n ripple.style.width = `${radius * 2}px`;\r\n ripple.style.transitionDuration = `${this.duration}ms`;\r\n this.renderer.appendChild(this.elementRef.nativeElement, ripple);\r\n this.enforceStyleRecalculation(ripple);\r\n ripple.style.transform = 'scale(1)';\r\n ripple.style.opacity = '0';\r\n\r\n of(true)\r\n .pipe(\r\n delay(this.duration),\r\n tap(() => {\r\n this.renderer.removeChild(this.elementRef.nativeElement, ripple);\r\n }),\r\n takeUntil(this._unSub)\r\n )\r\n .subscribe();\r\n });\r\n this.setClassMap();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSub.next();\r\n this._unSub.complete();\r\n }\r\n\r\n setClassMap() {\r\n this.renderer.addClass(this.elementRef.nativeElement, XRipplePrefix);\r\n this.renderer.addClass(this.elementRef.nativeElement, `${XRipplePrefix}-${this.type}`);\r\n }\r\n\r\n distanceToFurthestCorner(x: number, y: number, rect: ClientRect) {\r\n const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));\r\n const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));\r\n return Math.sqrt(distX * distX + distY * distY);\r\n }\r\n\r\n enforceStyleRecalculation(element: HTMLElement) {\r\n XComputed(element).getPropertyValue('opacity');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XRippleDirective } from './ripple.directive';\r\nimport { XRippleProperty } from './ripple.property';\r\n\r\n@NgModule({\r\n declarations: [XRippleDirective, XRippleProperty],\r\n exports: [XRippleDirective],\r\n imports: [CommonModule]\r\n})\r\nexport class XRippleModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}