@ng-nest/ui 18.0.12 → 19.0.0

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 (881) hide show
  1. package/README.md +1 -1
  2. package/affix/affix.property.d.ts +1 -1
  3. package/alert/alert.property.d.ts +1 -1
  4. package/anchor/anchor.property.d.ts +2 -2
  5. package/auto-complete/auto-complete.property.d.ts +16 -19
  6. package/avatar/avatar.property.d.ts +2 -2
  7. package/back-top/back-top.property.d.ts +1 -1
  8. package/badge/badge.property.d.ts +1 -1
  9. package/base-form/base-form.property.d.ts +2 -2
  10. package/button/button.property.d.ts +2 -2
  11. package/calendar/calendar.property.d.ts +1 -1
  12. package/card/card.property.d.ts +1 -1
  13. package/carousel/carousel.property.d.ts +2 -2
  14. package/cascade/cascade.property.d.ts +16 -27
  15. package/checkbox/checkbox.property.d.ts +16 -22
  16. package/collapse/collapse.property.d.ts +2 -2
  17. package/color/color.property.d.ts +1 -1
  18. package/color-picker/color-picker-portal.component.d.ts +10 -10
  19. package/color-picker/color-picker.property.d.ts +15 -15
  20. package/comment/comment.property.d.ts +2 -2
  21. package/container/container.property.d.ts +4 -4
  22. package/crumb/crumb.property.d.ts +1 -1
  23. package/date-picker/date-picker-portal.component.d.ts +1 -1
  24. package/date-picker/date-picker.property.d.ts +34 -34
  25. package/date-picker/date-range-portal.component.d.ts +5 -5
  26. package/description/description.property.d.ts +2 -2
  27. package/dialog/dialog-portal.component.d.ts +0 -2
  28. package/dialog/dialog-portal.directives.d.ts +2 -3
  29. package/dialog/dialog-ref.d.ts +4 -2
  30. package/dialog/dialog.component.d.ts +0 -5
  31. package/dialog/dialog.property.d.ts +14 -10
  32. package/drag/drag.property.d.ts +1 -1
  33. package/drawer/drawer.property.d.ts +2 -2
  34. package/dropdown/dropdown.property.d.ts +1 -1
  35. package/empty/empty.property.d.ts +1 -1
  36. package/fesm2022/ng-nest-ui-affix.mjs +14 -12
  37. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  38. package/fesm2022/ng-nest-ui-alert.mjs +14 -12
  39. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  40. package/fesm2022/ng-nest-ui-anchor.mjs +23 -20
  41. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  42. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  43. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  44. package/fesm2022/ng-nest-ui-auto-complete.mjs +16 -16
  45. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  46. package/fesm2022/ng-nest-ui-avatar.mjs +18 -18
  47. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  48. package/fesm2022/ng-nest-ui-back-top.mjs +13 -12
  49. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  50. package/fesm2022/ng-nest-ui-badge.mjs +11 -11
  51. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  52. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  53. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  54. package/fesm2022/ng-nest-ui-button.mjs +18 -18
  55. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  56. package/fesm2022/ng-nest-ui-calendar.mjs +14 -15
  57. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  58. package/fesm2022/ng-nest-ui-card.mjs +11 -12
  59. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  60. package/fesm2022/ng-nest-ui-carousel.mjs +20 -19
  61. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  62. package/fesm2022/ng-nest-ui-cascade.mjs +16 -16
  63. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  64. package/fesm2022/ng-nest-ui-checkbox.mjs +12 -12
  65. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  66. package/fesm2022/ng-nest-ui-collapse.mjs +18 -18
  67. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  68. package/fesm2022/ng-nest-ui-color-picker.mjs +15 -15
  69. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  70. package/fesm2022/ng-nest-ui-color.mjs +11 -11
  71. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  72. package/fesm2022/ng-nest-ui-comment.mjs +18 -18
  73. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  74. package/fesm2022/ng-nest-ui-container.mjs +36 -36
  75. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  76. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  77. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  78. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  79. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  80. package/fesm2022/ng-nest-ui-date-picker.mjs +57 -57
  81. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  82. package/fesm2022/ng-nest-ui-description.mjs +18 -18
  83. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  84. package/fesm2022/ng-nest-ui-dialog.mjs +70 -144
  85. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  87. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  88. package/fesm2022/ng-nest-ui-drag.mjs +11 -11
  89. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  90. package/fesm2022/ng-nest-ui-drawer.mjs +38 -41
  91. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  92. package/fesm2022/ng-nest-ui-dropdown.mjs +15 -16
  93. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  94. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  95. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  96. package/fesm2022/ng-nest-ui-examples.mjs +8 -8
  97. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-find.mjs +11 -11
  99. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-form.mjs +21 -40
  101. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  102. package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
  103. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  104. package/fesm2022/ng-nest-ui-i18n.mjs +15 -17
  105. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  106. package/fesm2022/ng-nest-ui-icon.mjs +14 -14
  107. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  108. package/fesm2022/ng-nest-ui-image.mjs +24 -24
  109. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  110. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  111. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
  113. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-input.mjs +19 -19
  115. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  116. package/fesm2022/ng-nest-ui-keyword.mjs +12 -13
  117. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  118. package/fesm2022/ng-nest-ui-layout.mjs +18 -18
  119. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  120. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  121. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  122. package/fesm2022/ng-nest-ui-list.mjs +22 -23
  123. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  124. package/fesm2022/ng-nest-ui-loading.mjs +12 -12
  125. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  126. package/fesm2022/ng-nest-ui-menu.mjs +19 -20
  127. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  128. package/fesm2022/ng-nest-ui-message-box.mjs +11 -13
  129. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  130. package/fesm2022/ng-nest-ui-message.mjs +11 -11
  131. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  132. package/fesm2022/ng-nest-ui-notification.mjs +11 -11
  133. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  134. package/fesm2022/ng-nest-ui-outlet.mjs +8 -8
  135. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  136. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  137. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  138. package/fesm2022/ng-nest-ui-pagination.mjs +11 -11
  139. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  140. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  141. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  142. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  143. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  144. package/fesm2022/ng-nest-ui-popover.mjs +15 -15
  145. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  146. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  147. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  148. package/fesm2022/ng-nest-ui-progress.mjs +11 -11
  149. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  150. package/fesm2022/ng-nest-ui-radio.mjs +11 -11
  151. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  152. package/fesm2022/ng-nest-ui-rate.mjs +11 -12
  153. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  154. package/fesm2022/ng-nest-ui-resizable.mjs +12 -12
  155. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  156. package/fesm2022/ng-nest-ui-result.mjs +11 -11
  157. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  158. package/fesm2022/ng-nest-ui-ripple.mjs +11 -12
  159. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  160. package/fesm2022/ng-nest-ui-select.mjs +15 -15
  161. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  162. package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
  163. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  164. package/fesm2022/ng-nest-ui-slider-select.mjs +11 -22
  165. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  166. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  167. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  168. package/fesm2022/ng-nest-ui-statistic.mjs +18 -18
  169. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  170. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  171. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  172. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  173. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  174. package/fesm2022/ng-nest-ui-table.mjs +32 -32
  175. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  176. package/fesm2022/ng-nest-ui-tabs.mjs +30 -32
  177. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  178. package/fesm2022/ng-nest-ui-tag.mjs +11 -11
  179. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  180. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  181. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  182. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  183. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  184. package/fesm2022/ng-nest-ui-theme.mjs +13 -14
  185. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  186. package/fesm2022/ng-nest-ui-time-ago.mjs +8 -8
  187. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  188. package/fesm2022/ng-nest-ui-time-picker.mjs +19 -19
  189. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  190. package/fesm2022/ng-nest-ui-time-range.mjs +8 -8
  191. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  192. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  193. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  194. package/fesm2022/ng-nest-ui-tooltip.mjs +15 -15
  195. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  196. package/fesm2022/ng-nest-ui-transfer.mjs +12 -13
  197. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  198. package/fesm2022/ng-nest-ui-tree-file.mjs +12 -20
  199. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  200. package/fesm2022/ng-nest-ui-tree-select.mjs +15 -15
  201. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  202. package/fesm2022/ng-nest-ui-tree.mjs +21 -21
  203. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  204. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  205. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  206. package/fesm2022/ng-nest-ui-upload.mjs +15 -15
  207. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  208. package/find/find.property.d.ts +12 -18
  209. package/form/form.property.d.ts +10 -21
  210. package/highlight/highlight.property.d.ts +1 -1
  211. package/icon/icon.property.d.ts +1 -1
  212. package/image/image.property.d.ts +2 -2
  213. package/inner/inner.property.d.ts +1 -1
  214. package/input/input.property.d.ts +17 -20
  215. package/input-number/input-number.property.d.ts +13 -13
  216. package/layout/layout.property.d.ts +2 -2
  217. package/link/link.property.d.ts +1 -1
  218. package/list/list.property.d.ts +12 -12
  219. package/loading/loading.property.d.ts +1 -1
  220. package/menu/menu.property.d.ts +2 -2
  221. package/package.json +83 -257
  222. package/page-header/page-header.property.d.ts +1 -1
  223. package/pagination/pagination.property.d.ts +1 -1
  224. package/popconfirm/popconfirm.property.d.ts +1 -1
  225. package/popover/popover.property.d.ts +1 -1
  226. package/progress/progress.property.d.ts +1 -1
  227. package/radio/radio.property.d.ts +13 -16
  228. package/rate/rate.property.d.ts +14 -22
  229. package/result/result.property.d.ts +1 -1
  230. package/ripple/ripple.property.d.ts +1 -1
  231. package/select/select-portal.component.d.ts +1 -1
  232. package/select/select.property.d.ts +15 -15
  233. package/skeleton/skeleton.property.d.ts +1 -1
  234. package/slider/slider.property.d.ts +1 -1
  235. package/slider-select/slider-select.property.d.ts +13 -17
  236. package/statistic/statistic.property.d.ts +2 -2
  237. package/steps/steps.property.d.ts +1 -1
  238. package/style/core/index.css +87 -174
  239. package/style/core/index.css.map +1 -1
  240. package/style/core/index.scss +32 -5
  241. package/style/directives/index.scss +3 -3
  242. package/style/directives/keyword/index.scss +3 -2
  243. package/style/directives/keyword/mixin.scss +9 -11
  244. package/style/directives/keyword/param.scss +2 -1
  245. package/style/directives/resizable/index.scss +3 -2
  246. package/style/directives/resizable/mixin.scss +122 -16
  247. package/style/directives/resizable/param.scss +2 -1
  248. package/style/directives/ripple/index.scss +3 -2
  249. package/style/directives/ripple/mixin.scss +12 -12
  250. package/style/directives/ripple/param.scss +2 -1
  251. package/style/mixins/compatibility.scss +7 -5
  252. package/style/mixins/form.scss +6 -4
  253. package/style/mixins/hidden.scss +5 -2
  254. package/style/params/index.scss +282 -3
  255. package/switch/switch.property.d.ts +14 -14
  256. package/table/table.property.d.ts +4 -4
  257. package/tabs/tabs.property.d.ts +2 -2
  258. package/tag/tag.property.d.ts +1 -1
  259. package/text-retract/text-retract.property.d.ts +1 -1
  260. package/textarea/textarea.property.d.ts +14 -17
  261. package/theme/theme.property.d.ts +6 -10
  262. package/time-picker/time-picker.property.d.ts +17 -23
  263. package/timeline/timeline.property.d.ts +1 -1
  264. package/tooltip/tooltip.property.d.ts +1 -1
  265. package/transfer/transfer.property.d.ts +9 -13
  266. package/tree/tree.property.d.ts +2 -2
  267. package/tree-file/tree-file.property.d.ts +1 -1
  268. package/tree-select/tree-select-portal.component.d.ts +1 -1
  269. package/tree-select/tree-select.property.d.ts +15 -15
  270. package/typography/typography.property.d.ts +1 -1
  271. package/upload/upload.property.d.ts +9 -9
  272. package/esm2022/affix/affix.component.mjs +0 -12
  273. package/esm2022/affix/affix.module.mjs +0 -16
  274. package/esm2022/affix/affix.property.mjs +0 -51
  275. package/esm2022/affix/ng-nest-ui-affix.mjs +0 -5
  276. package/esm2022/affix/public-api.mjs +0 -4
  277. package/esm2022/alert/alert.component.mjs +0 -73
  278. package/esm2022/alert/alert.module.mjs +0 -16
  279. package/esm2022/alert/alert.property.mjs +0 -313
  280. package/esm2022/alert/ng-nest-ui-alert.mjs +0 -5
  281. package/esm2022/alert/public-api.mjs +0 -4
  282. package/esm2022/anchor/anchor-inner.component.mjs +0 -18
  283. package/esm2022/anchor/anchor.component.mjs +0 -160
  284. package/esm2022/anchor/anchor.module.mjs +0 -17
  285. package/esm2022/anchor/anchor.property.mjs +0 -121
  286. package/esm2022/anchor/ng-nest-ui-anchor.mjs +0 -5
  287. package/esm2022/anchor/public-api.mjs +0 -5
  288. package/esm2022/api/api.component.mjs +0 -18
  289. package/esm2022/api/api.module.mjs +0 -16
  290. package/esm2022/api/api.property.mjs +0 -7
  291. package/esm2022/api/ng-nest-ui-api.mjs +0 -5
  292. package/esm2022/api/public-api.mjs +0 -4
  293. package/esm2022/auto-complete/auto-complete-portal.component.mjs +0 -80
  294. package/esm2022/auto-complete/auto-complete.component.mjs +0 -306
  295. package/esm2022/auto-complete/auto-complete.module.mjs +0 -16
  296. package/esm2022/auto-complete/auto-complete.property.mjs +0 -172
  297. package/esm2022/auto-complete/ng-nest-ui-auto-complete.mjs +0 -5
  298. package/esm2022/auto-complete/public-api.mjs +0 -5
  299. package/esm2022/avatar/avatar-group.component.mjs +0 -19
  300. package/esm2022/avatar/avatar.component.mjs +0 -109
  301. package/esm2022/avatar/avatar.module.mjs +0 -17
  302. package/esm2022/avatar/avatar.property.mjs +0 -143
  303. package/esm2022/avatar/ng-nest-ui-avatar.mjs +0 -5
  304. package/esm2022/avatar/public-api.mjs +0 -5
  305. package/esm2022/back-top/back-top.component.mjs +0 -104
  306. package/esm2022/back-top/back-top.module.mjs +0 -16
  307. package/esm2022/back-top/back-top.property.mjs +0 -50
  308. package/esm2022/back-top/ng-nest-ui-back-top.mjs +0 -5
  309. package/esm2022/back-top/public-api.mjs +0 -4
  310. package/esm2022/badge/badge.component.mjs +0 -63
  311. package/esm2022/badge/badge.module.mjs +0 -16
  312. package/esm2022/badge/badge.property.mjs +0 -133
  313. package/esm2022/badge/ng-nest-ui-badge.mjs +0 -5
  314. package/esm2022/badge/public-api.mjs +0 -4
  315. package/esm2022/base-form/base-form.component.mjs +0 -101
  316. package/esm2022/base-form/base-form.module.mjs +0 -15
  317. package/esm2022/base-form/base-form.property.mjs +0 -237
  318. package/esm2022/base-form/ng-nest-ui-base-form.mjs +0 -5
  319. package/esm2022/base-form/public-api.mjs +0 -4
  320. package/esm2022/button/button.component.mjs +0 -71
  321. package/esm2022/button/button.module.mjs +0 -17
  322. package/esm2022/button/button.property.mjs +0 -331
  323. package/esm2022/button/buttons.component.mjs +0 -55
  324. package/esm2022/button/ng-nest-ui-button.mjs +0 -5
  325. package/esm2022/button/public-api.mjs +0 -5
  326. package/esm2022/calendar/calendar.component.mjs +0 -117
  327. package/esm2022/calendar/calendar.module.mjs +0 -16
  328. package/esm2022/calendar/calendar.property.mjs +0 -110
  329. package/esm2022/calendar/ng-nest-ui-calendar.mjs +0 -5
  330. package/esm2022/calendar/public-api.mjs +0 -4
  331. package/esm2022/card/card.component.mjs +0 -22
  332. package/esm2022/card/card.module.mjs +0 -16
  333. package/esm2022/card/card.property.mjs +0 -77
  334. package/esm2022/card/ng-nest-ui-card.mjs +0 -5
  335. package/esm2022/card/public-api.mjs +0 -4
  336. package/esm2022/carousel/carousel-panel.component.mjs +0 -157
  337. package/esm2022/carousel/carousel.component.mjs +0 -95
  338. package/esm2022/carousel/carousel.module.mjs +0 -17
  339. package/esm2022/carousel/carousel.property.mjs +0 -256
  340. package/esm2022/carousel/ng-nest-ui-carousel.mjs +0 -5
  341. package/esm2022/carousel/public-api.mjs +0 -5
  342. package/esm2022/cascade/cascade-portal.component.mjs +0 -141
  343. package/esm2022/cascade/cascade.component.mjs +0 -238
  344. package/esm2022/cascade/cascade.module.mjs +0 -16
  345. package/esm2022/cascade/cascade.property.mjs +0 -167
  346. package/esm2022/cascade/ng-nest-ui-cascade.mjs +0 -5
  347. package/esm2022/cascade/public-api.mjs +0 -5
  348. package/esm2022/checkbox/checkbox.component.mjs +0 -102
  349. package/esm2022/checkbox/checkbox.module.mjs +0 -16
  350. package/esm2022/checkbox/checkbox.property.mjs +0 -136
  351. package/esm2022/checkbox/ng-nest-ui-checkbox.mjs +0 -5
  352. package/esm2022/checkbox/public-api.mjs +0 -4
  353. package/esm2022/collapse/collapse-panel.component.mjs +0 -55
  354. package/esm2022/collapse/collapse.component.mjs +0 -49
  355. package/esm2022/collapse/collapse.module.mjs +0 -17
  356. package/esm2022/collapse/collapse.property.mjs +0 -189
  357. package/esm2022/collapse/ng-nest-ui-collapse.mjs +0 -5
  358. package/esm2022/collapse/public-api.mjs +0 -5
  359. package/esm2022/color/color.component.mjs +0 -35
  360. package/esm2022/color/color.module.mjs +0 -16
  361. package/esm2022/color/color.property.mjs +0 -71
  362. package/esm2022/color/ng-nest-ui-color.mjs +0 -5
  363. package/esm2022/color/public-api.mjs +0 -4
  364. package/esm2022/color-picker/color-picker-portal.component.mjs +0 -396
  365. package/esm2022/color-picker/color-picker.component.mjs +0 -191
  366. package/esm2022/color-picker/color-picker.module.mjs +0 -16
  367. package/esm2022/color-picker/color-picker.property.mjs +0 -142
  368. package/esm2022/color-picker/ng-nest-ui-color-picker.mjs +0 -5
  369. package/esm2022/color-picker/public-api.mjs +0 -5
  370. package/esm2022/comment/comment-reply.component.mjs +0 -24
  371. package/esm2022/comment/comment.component.mjs +0 -55
  372. package/esm2022/comment/comment.module.mjs +0 -17
  373. package/esm2022/comment/comment.property.mjs +0 -90
  374. package/esm2022/comment/ng-nest-ui-comment.mjs +0 -5
  375. package/esm2022/comment/public-api.mjs +0 -5
  376. package/esm2022/container/aside.component.mjs +0 -25
  377. package/esm2022/container/container.component.mjs +0 -31
  378. package/esm2022/container/container.module.mjs +0 -20
  379. package/esm2022/container/container.property.mjs +0 -115
  380. package/esm2022/container/footer.component.mjs +0 -35
  381. package/esm2022/container/header.component.mjs +0 -35
  382. package/esm2022/container/main.component.mjs +0 -18
  383. package/esm2022/container/ng-nest-ui-container.mjs +0 -5
  384. package/esm2022/container/public-api.mjs +0 -8
  385. package/esm2022/core/animation/badge.mjs +0 -53
  386. package/esm2022/core/animation/connect.mjs +0 -31
  387. package/esm2022/core/animation/consts.mjs +0 -11
  388. package/esm2022/core/animation/drop.mjs +0 -13
  389. package/esm2022/core/animation/fade.mjs +0 -24
  390. package/esm2022/core/animation/move.mjs +0 -179
  391. package/esm2022/core/animation/opacity.mjs +0 -13
  392. package/esm2022/core/animation/public-api.mjs +0 -9
  393. package/esm2022/core/animation/slide.mjs +0 -17
  394. package/esm2022/core/config/config.mjs +0 -3
  395. package/esm2022/core/config/config.service.mjs +0 -54
  396. package/esm2022/core/config/index.mjs +0 -2
  397. package/esm2022/core/config/public-api.mjs +0 -3
  398. package/esm2022/core/functions/chunk.mjs +0 -25
  399. package/esm2022/core/functions/clone-deep.mjs +0 -28
  400. package/esm2022/core/functions/convert.mjs +0 -230
  401. package/esm2022/core/functions/csspx.mjs +0 -17
  402. package/esm2022/core/functions/date.mjs +0 -223
  403. package/esm2022/core/functions/drop.mjs +0 -20
  404. package/esm2022/core/functions/flex.mjs +0 -25
  405. package/esm2022/core/functions/group-by.mjs +0 -14
  406. package/esm2022/core/functions/guid.mjs +0 -11
  407. package/esm2022/core/functions/has-in.mjs +0 -8
  408. package/esm2022/core/functions/order-by.mjs +0 -56
  409. package/esm2022/core/functions/parent-path.mjs +0 -27
  410. package/esm2022/core/functions/property.mjs +0 -20
  411. package/esm2022/core/functions/public-api.mjs +0 -16
  412. package/esm2022/core/functions/remove.mjs +0 -19
  413. package/esm2022/core/functions/resize.mjs +0 -22
  414. package/esm2022/core/interfaces/data.type.mjs +0 -164
  415. package/esm2022/core/interfaces/identify.type.mjs +0 -7
  416. package/esm2022/core/interfaces/index.mjs +0 -2
  417. package/esm2022/core/interfaces/layout.type.mjs +0 -2
  418. package/esm2022/core/interfaces/public-api.mjs +0 -5
  419. package/esm2022/core/interfaces/result-list.type.mjs +0 -2
  420. package/esm2022/core/ng-nest-ui-core.mjs +0 -5
  421. package/esm2022/core/public-api.mjs +0 -8
  422. package/esm2022/core/services/http.service.mjs +0 -58
  423. package/esm2022/core/services/preloading-strategy.service.mjs +0 -24
  424. package/esm2022/core/services/public-api.mjs +0 -6
  425. package/esm2022/core/services/repository.service.mjs +0 -29
  426. package/esm2022/core/services/reuse-strategy.service.mjs +0 -47
  427. package/esm2022/core/services/storage.service.mjs +0 -75
  428. package/esm2022/core/theme/index.mjs +0 -2
  429. package/esm2022/core/theme/public-api.mjs +0 -3
  430. package/esm2022/core/theme/theme.mjs +0 -89
  431. package/esm2022/core/theme/theme.service.mjs +0 -270
  432. package/esm2022/core/util/animation.mjs +0 -26
  433. package/esm2022/core/util/camel-to-kebab.mjs +0 -16
  434. package/esm2022/core/util/check.mjs +0 -15
  435. package/esm2022/core/util/computed-style.mjs +0 -20
  436. package/esm2022/core/util/host.mjs +0 -14
  437. package/esm2022/core/util/html.mjs +0 -12
  438. package/esm2022/core/util/index.mjs +0 -2
  439. package/esm2022/core/util/kebab-to-camel.mjs +0 -16
  440. package/esm2022/core/util/log.mjs +0 -15
  441. package/esm2022/core/util/option.mjs +0 -14
  442. package/esm2022/core/util/public-api.mjs +0 -11
  443. package/esm2022/core/util/sleep.mjs +0 -8
  444. package/esm2022/crumb/crumb.component.mjs +0 -25
  445. package/esm2022/crumb/crumb.module.mjs +0 -16
  446. package/esm2022/crumb/crumb.property.mjs +0 -45
  447. package/esm2022/crumb/ng-nest-ui-crumb.mjs +0 -5
  448. package/esm2022/crumb/public-api.mjs +0 -4
  449. package/esm2022/date-picker/date-picker-portal.component.mjs +0 -196
  450. package/esm2022/date-picker/date-picker.component.mjs +0 -320
  451. package/esm2022/date-picker/date-picker.module.mjs +0 -17
  452. package/esm2022/date-picker/date-picker.property.mjs +0 -770
  453. package/esm2022/date-picker/date-quarter.pipe.mjs +0 -19
  454. package/esm2022/date-picker/date-range-portal.component.mjs +0 -349
  455. package/esm2022/date-picker/date-range.component.mjs +0 -432
  456. package/esm2022/date-picker/ng-nest-ui-date-picker.mjs +0 -5
  457. package/esm2022/date-picker/picker-date.component.mjs +0 -334
  458. package/esm2022/date-picker/picker-month.component.mjs +0 -232
  459. package/esm2022/date-picker/picker-quarter.component.mjs +0 -237
  460. package/esm2022/date-picker/picker-year.component.mjs +0 -233
  461. package/esm2022/date-picker/public-api.mjs +0 -12
  462. package/esm2022/description/description-item.component.mjs +0 -24
  463. package/esm2022/description/description.component.mjs +0 -48
  464. package/esm2022/description/description.module.mjs +0 -17
  465. package/esm2022/description/description.property.mjs +0 -219
  466. package/esm2022/description/ng-nest-ui-description.mjs +0 -5
  467. package/esm2022/description/public-api.mjs +0 -5
  468. package/esm2022/dialog/dialog-container.component.mjs +0 -29
  469. package/esm2022/dialog/dialog-portal.component.mjs +0 -97
  470. package/esm2022/dialog/dialog-portal.directives.mjs +0 -119
  471. package/esm2022/dialog/dialog-ref.mjs +0 -100
  472. package/esm2022/dialog/dialog.component.mjs +0 -282
  473. package/esm2022/dialog/dialog.module.mjs +0 -50
  474. package/esm2022/dialog/dialog.property.mjs +0 -207
  475. package/esm2022/dialog/dialog.service.mjs +0 -122
  476. package/esm2022/dialog/ng-nest-ui-dialog.mjs +0 -5
  477. package/esm2022/dialog/public-api.mjs +0 -9
  478. package/esm2022/doc/doc.component.mjs +0 -18
  479. package/esm2022/doc/doc.module.mjs +0 -16
  480. package/esm2022/doc/doc.property.mjs +0 -7
  481. package/esm2022/doc/ng-nest-ui-doc.mjs +0 -5
  482. package/esm2022/doc/public-api.mjs +0 -4
  483. package/esm2022/drag/drag.directive.mjs +0 -57
  484. package/esm2022/drag/drag.module.mjs +0 -16
  485. package/esm2022/drag/drag.property.mjs +0 -25
  486. package/esm2022/drag/ng-nest-ui-drag.mjs +0 -5
  487. package/esm2022/drag/public-api.mjs +0 -4
  488. package/esm2022/drawer/drawer-container.component.mjs +0 -29
  489. package/esm2022/drawer/drawer-portal.component.mjs +0 -50
  490. package/esm2022/drawer/drawer-portal.directives.mjs +0 -58
  491. package/esm2022/drawer/drawer-ref.mjs +0 -17
  492. package/esm2022/drawer/drawer.component.mjs +0 -95
  493. package/esm2022/drawer/drawer.module.mjs +0 -38
  494. package/esm2022/drawer/drawer.property.mjs +0 -84
  495. package/esm2022/drawer/drawer.service.mjs +0 -65
  496. package/esm2022/drawer/ng-nest-ui-drawer.mjs +0 -5
  497. package/esm2022/drawer/public-api.mjs +0 -10
  498. package/esm2022/dropdown/dropdown-portal.component.mjs +0 -204
  499. package/esm2022/dropdown/dropdown.component.mjs +0 -179
  500. package/esm2022/dropdown/dropdown.module.mjs +0 -16
  501. package/esm2022/dropdown/dropdown.property.mjs +0 -96
  502. package/esm2022/dropdown/ng-nest-ui-dropdown.mjs +0 -5
  503. package/esm2022/dropdown/public-api.mjs +0 -5
  504. package/esm2022/empty/empty.component.mjs +0 -15
  505. package/esm2022/empty/empty.module.mjs +0 -16
  506. package/esm2022/empty/empty.property.mjs +0 -54
  507. package/esm2022/empty/ng-nest-ui-empty.mjs +0 -5
  508. package/esm2022/empty/public-api.mjs +0 -4
  509. package/esm2022/examples/examples.component.mjs +0 -18
  510. package/esm2022/examples/examples.module.mjs +0 -16
  511. package/esm2022/examples/examples.property.mjs +0 -7
  512. package/esm2022/examples/ng-nest-ui-examples.mjs +0 -5
  513. package/esm2022/examples/public-api.mjs +0 -4
  514. package/esm2022/find/find.component.mjs +0 -331
  515. package/esm2022/find/find.module.mjs +0 -16
  516. package/esm2022/find/find.property.mjs +0 -260
  517. package/esm2022/find/ng-nest-ui-find.mjs +0 -5
  518. package/esm2022/find/public-api.mjs +0 -4
  519. package/esm2022/form/control.component.mjs +0 -249
  520. package/esm2022/form/form.component.mjs +0 -116
  521. package/esm2022/form/form.module.mjs +0 -17
  522. package/esm2022/form/form.property.mjs +0 -202
  523. package/esm2022/form/ng-nest-ui-form.mjs +0 -5
  524. package/esm2022/form/public-api.mjs +0 -5
  525. package/esm2022/highlight/highlight.component.mjs +0 -85
  526. package/esm2022/highlight/highlight.module.mjs +0 -16
  527. package/esm2022/highlight/highlight.property.mjs +0 -45
  528. package/esm2022/highlight/highlight.service.mjs +0 -17
  529. package/esm2022/highlight/ng-nest-ui-highlight.mjs +0 -5
  530. package/esm2022/highlight/public-api.mjs +0 -5
  531. package/esm2022/i18n/i18n.directive.mjs +0 -29
  532. package/esm2022/i18n/i18n.module.mjs +0 -17
  533. package/esm2022/i18n/i18n.pipe.mjs +0 -28
  534. package/esm2022/i18n/i18n.property.mjs +0 -9
  535. package/esm2022/i18n/i18n.service.mjs +0 -57
  536. package/esm2022/i18n/languages/ar_EG.mjs +0 -169
  537. package/esm2022/i18n/languages/bg_BG.mjs +0 -172
  538. package/esm2022/i18n/languages/ca_ES.mjs +0 -172
  539. package/esm2022/i18n/languages/cs_CZ.mjs +0 -172
  540. package/esm2022/i18n/languages/da_DK.mjs +0 -172
  541. package/esm2022/i18n/languages/de_DE.mjs +0 -172
  542. package/esm2022/i18n/languages/el_GR.mjs +0 -172
  543. package/esm2022/i18n/languages/en_GB.mjs +0 -181
  544. package/esm2022/i18n/languages/en_US.mjs +0 -181
  545. package/esm2022/i18n/languages/es_ES.mjs +0 -172
  546. package/esm2022/i18n/languages/et_EE.mjs +0 -172
  547. package/esm2022/i18n/languages/fa_IR.mjs +0 -172
  548. package/esm2022/i18n/languages/fi_FI.mjs +0 -172
  549. package/esm2022/i18n/languages/fr_BE.mjs +0 -172
  550. package/esm2022/i18n/languages/fr_FR.mjs +0 -172
  551. package/esm2022/i18n/languages/he_IL.mjs +0 -169
  552. package/esm2022/i18n/languages/hi_IN.mjs +0 -172
  553. package/esm2022/i18n/languages/hr_HR.mjs +0 -172
  554. package/esm2022/i18n/languages/hu_HU.mjs +0 -172
  555. package/esm2022/i18n/languages/hy_AM.mjs +0 -172
  556. package/esm2022/i18n/languages/id_ID.mjs +0 -172
  557. package/esm2022/i18n/languages/is_IS.mjs +0 -172
  558. package/esm2022/i18n/languages/it_IT.mjs +0 -172
  559. package/esm2022/i18n/languages/ja_JP.mjs +0 -172
  560. package/esm2022/i18n/languages/ka_GE.mjs +0 -172
  561. package/esm2022/i18n/languages/kn_IN.mjs +0 -172
  562. package/esm2022/i18n/languages/ko_KR.mjs +0 -180
  563. package/esm2022/i18n/languages/ku_IQ.mjs +0 -156
  564. package/esm2022/i18n/languages/lv_LV.mjs +0 -180
  565. package/esm2022/i18n/languages/mn_MN.mjs +0 -180
  566. package/esm2022/i18n/languages/ms_MY.mjs +0 -180
  567. package/esm2022/i18n/languages/nb_NO.mjs +0 -180
  568. package/esm2022/i18n/languages/ne_NP.mjs +0 -180
  569. package/esm2022/i18n/languages/nl_BE.mjs +0 -180
  570. package/esm2022/i18n/languages/nl_NL.mjs +0 -180
  571. package/esm2022/i18n/languages/pl_PL.mjs +0 -180
  572. package/esm2022/i18n/languages/pt_BR.mjs +0 -180
  573. package/esm2022/i18n/languages/pt_PT.mjs +0 -180
  574. package/esm2022/i18n/languages/ro_RO.mjs +0 -180
  575. package/esm2022/i18n/languages/ru_RU.mjs +0 -180
  576. package/esm2022/i18n/languages/sk_SK.mjs +0 -171
  577. package/esm2022/i18n/languages/sl_SI.mjs +0 -172
  578. package/esm2022/i18n/languages/sr_RS.mjs +0 -172
  579. package/esm2022/i18n/languages/sv_SE.mjs +0 -172
  580. package/esm2022/i18n/languages/ta_IN.mjs +0 -180
  581. package/esm2022/i18n/languages/th_TH.mjs +0 -180
  582. package/esm2022/i18n/languages/tr_TR.mjs +0 -180
  583. package/esm2022/i18n/languages/uk_UA.mjs +0 -180
  584. package/esm2022/i18n/languages/vi_VN.mjs +0 -180
  585. package/esm2022/i18n/languages/zh_CN.mjs +0 -180
  586. package/esm2022/i18n/languages/zh_TW.mjs +0 -180
  587. package/esm2022/i18n/ng-nest-ui-i18n.mjs +0 -5
  588. package/esm2022/i18n/public-api.mjs +0 -57
  589. package/esm2022/icon/icon.component.mjs +0 -158
  590. package/esm2022/icon/icon.module.mjs +0 -16
  591. package/esm2022/icon/icon.property.mjs +0 -65
  592. package/esm2022/icon/icon.service.mjs +0 -89
  593. package/esm2022/icon/ng-nest-ui-icon.mjs +0 -5
  594. package/esm2022/icon/public-api.mjs +0 -5
  595. package/esm2022/image/image-group.component.mjs +0 -27
  596. package/esm2022/image/image-preview.component.mjs +0 -135
  597. package/esm2022/image/image.component.mjs +0 -75
  598. package/esm2022/image/image.module.mjs +0 -18
  599. package/esm2022/image/image.property.mjs +0 -196
  600. package/esm2022/image/ng-nest-ui-image.mjs +0 -5
  601. package/esm2022/image/public-api.mjs +0 -6
  602. package/esm2022/index.mjs +0 -106
  603. package/esm2022/inner/inner.component.mjs +0 -25
  604. package/esm2022/inner/inner.module.mjs +0 -16
  605. package/esm2022/inner/inner.property.mjs +0 -30
  606. package/esm2022/inner/ng-nest-ui-inner.mjs +0 -5
  607. package/esm2022/inner/public-api.mjs +0 -4
  608. package/esm2022/input/input-group.component.mjs +0 -16
  609. package/esm2022/input/input.component.mjs +0 -224
  610. package/esm2022/input/input.module.mjs +0 -17
  611. package/esm2022/input/input.property.mjs +0 -281
  612. package/esm2022/input/ng-nest-ui-input.mjs +0 -5
  613. package/esm2022/input/public-api.mjs +0 -5
  614. package/esm2022/input-number/input-number.component.mjs +0 -131
  615. package/esm2022/input-number/input-number.module.mjs +0 -16
  616. package/esm2022/input-number/input-number.property.mjs +0 -146
  617. package/esm2022/input-number/ng-nest-ui-input-number.mjs +0 -5
  618. package/esm2022/input-number/public-api.mjs +0 -4
  619. package/esm2022/keyword/keyword.directive.mjs +0 -61
  620. package/esm2022/keyword/keyword.module.mjs +0 -16
  621. package/esm2022/keyword/keyword.property.mjs +0 -45
  622. package/esm2022/keyword/ng-nest-ui-keyword.mjs +0 -5
  623. package/esm2022/keyword/public-api.mjs +0 -4
  624. package/esm2022/layout/col.component.mjs +0 -68
  625. package/esm2022/layout/layout.module.mjs +0 -17
  626. package/esm2022/layout/layout.property.mjs +0 -150
  627. package/esm2022/layout/ng-nest-ui-layout.mjs +0 -5
  628. package/esm2022/layout/public-api.mjs +0 -5
  629. package/esm2022/layout/row.component.mjs +0 -54
  630. package/esm2022/link/link.component.mjs +0 -28
  631. package/esm2022/link/link.module.mjs +0 -16
  632. package/esm2022/link/link.property.mjs +0 -109
  633. package/esm2022/link/ng-nest-ui-link.mjs +0 -5
  634. package/esm2022/link/public-api.mjs +0 -4
  635. package/esm2022/list/list-drop-group.directive.mjs +0 -39
  636. package/esm2022/list/list-option.component.mjs +0 -37
  637. package/esm2022/list/list.component.mjs +0 -409
  638. package/esm2022/list/list.module.mjs +0 -18
  639. package/esm2022/list/list.property.mjs +0 -273
  640. package/esm2022/list/ng-nest-ui-list.mjs +0 -5
  641. package/esm2022/list/public-api.mjs +0 -6
  642. package/esm2022/loading/loading.component.mjs +0 -77
  643. package/esm2022/loading/loading.module.mjs +0 -16
  644. package/esm2022/loading/loading.property.mjs +0 -70
  645. package/esm2022/loading/ng-nest-ui-loading.mjs +0 -5
  646. package/esm2022/loading/public-api.mjs +0 -4
  647. package/esm2022/menu/menu-node.component.mjs +0 -36
  648. package/esm2022/menu/menu.component.mjs +0 -171
  649. package/esm2022/menu/menu.module.mjs +0 -17
  650. package/esm2022/menu/menu.property.mjs +0 -107
  651. package/esm2022/menu/ng-nest-ui-menu.mjs +0 -5
  652. package/esm2022/menu/public-api.mjs +0 -5
  653. package/esm2022/message/message-ref.mjs +0 -13
  654. package/esm2022/message/message.component.mjs +0 -40
  655. package/esm2022/message/message.module.mjs +0 -15
  656. package/esm2022/message/message.property.mjs +0 -9
  657. package/esm2022/message/message.service.mjs +0 -146
  658. package/esm2022/message/ng-nest-ui-message.mjs +0 -5
  659. package/esm2022/message/public-api.mjs +0 -6
  660. package/esm2022/message-box/message-box.component.mjs +0 -122
  661. package/esm2022/message-box/message-box.module.mjs +0 -15
  662. package/esm2022/message-box/message-box.property.mjs +0 -8
  663. package/esm2022/message-box/message-box.service.mjs +0 -97
  664. package/esm2022/message-box/ng-nest-ui-message-box.mjs +0 -5
  665. package/esm2022/message-box/public-api.mjs +0 -5
  666. package/esm2022/ng-nest-ui.mjs +0 -5
  667. package/esm2022/notification/ng-nest-ui-notification.mjs +0 -5
  668. package/esm2022/notification/notification.component.mjs +0 -42
  669. package/esm2022/notification/notification.module.mjs +0 -15
  670. package/esm2022/notification/notification.property.mjs +0 -8
  671. package/esm2022/notification/notification.service.mjs +0 -107
  672. package/esm2022/notification/public-api.mjs +0 -5
  673. package/esm2022/outlet/ng-nest-ui-outlet.mjs +0 -5
  674. package/esm2022/outlet/outlet.directive.mjs +0 -72
  675. package/esm2022/outlet/outlet.module.mjs +0 -16
  676. package/esm2022/outlet/outlet.property.mjs +0 -7
  677. package/esm2022/outlet/public-api.mjs +0 -4
  678. package/esm2022/page-header/ng-nest-ui-page-header.mjs +0 -5
  679. package/esm2022/page-header/page-header.component.mjs +0 -24
  680. package/esm2022/page-header/page-header.module.mjs +0 -16
  681. package/esm2022/page-header/page-header.property.mjs +0 -50
  682. package/esm2022/page-header/public-api.mjs +0 -4
  683. package/esm2022/pagination/ng-nest-ui-pagination.mjs +0 -5
  684. package/esm2022/pagination/pagination.component.mjs +0 -205
  685. package/esm2022/pagination/pagination.module.mjs +0 -16
  686. package/esm2022/pagination/pagination.property.mjs +0 -149
  687. package/esm2022/pagination/public-api.mjs +0 -4
  688. package/esm2022/pattern/ng-nest-ui-pattern.mjs +0 -5
  689. package/esm2022/pattern/pattern.component.mjs +0 -18
  690. package/esm2022/pattern/pattern.module.mjs +0 -16
  691. package/esm2022/pattern/pattern.property.mjs +0 -7
  692. package/esm2022/pattern/public-api.mjs +0 -4
  693. package/esm2022/popconfirm/ng-nest-ui-popconfirm.mjs +0 -5
  694. package/esm2022/popconfirm/popconfirm.component.mjs +0 -59
  695. package/esm2022/popconfirm/popconfirm.module.mjs +0 -16
  696. package/esm2022/popconfirm/popconfirm.property.mjs +0 -100
  697. package/esm2022/popconfirm/public-api.mjs +0 -4
  698. package/esm2022/popover/ng-nest-ui-popover.mjs +0 -5
  699. package/esm2022/popover/popover-portal.component.mjs +0 -52
  700. package/esm2022/popover/popover.directive.mjs +0 -186
  701. package/esm2022/popover/popover.module.mjs +0 -16
  702. package/esm2022/popover/popover.property.mjs +0 -101
  703. package/esm2022/popover/public-api.mjs +0 -5
  704. package/esm2022/portal/ng-nest-ui-portal.mjs +0 -5
  705. package/esm2022/portal/portal.module.mjs +0 -16
  706. package/esm2022/portal/portal.property.mjs +0 -24
  707. package/esm2022/portal/portal.service.mjs +0 -190
  708. package/esm2022/portal/public-api.mjs +0 -4
  709. package/esm2022/progress/ng-nest-ui-progress.mjs +0 -5
  710. package/esm2022/progress/progress.component.mjs +0 -224
  711. package/esm2022/progress/progress.module.mjs +0 -16
  712. package/esm2022/progress/progress.property.mjs +0 -110
  713. package/esm2022/progress/public-api.mjs +0 -4
  714. package/esm2022/radio/ng-nest-ui-radio.mjs +0 -5
  715. package/esm2022/radio/public-api.mjs +0 -4
  716. package/esm2022/radio/radio.component.mjs +0 -77
  717. package/esm2022/radio/radio.module.mjs +0 -16
  718. package/esm2022/radio/radio.property.mjs +0 -121
  719. package/esm2022/rate/ng-nest-ui-rate.mjs +0 -5
  720. package/esm2022/rate/public-api.mjs +0 -4
  721. package/esm2022/rate/rate.component.mjs +0 -99
  722. package/esm2022/rate/rate.module.mjs +0 -16
  723. package/esm2022/rate/rate.property.mjs +0 -86
  724. package/esm2022/resizable/ng-nest-ui-resizable.mjs +0 -5
  725. package/esm2022/resizable/public-api.mjs +0 -4
  726. package/esm2022/resizable/resizable.directive.mjs +0 -264
  727. package/esm2022/resizable/resizable.module.mjs +0 -16
  728. package/esm2022/resizable/resizable.property.mjs +0 -64
  729. package/esm2022/result/ng-nest-ui-result.mjs +0 -5
  730. package/esm2022/result/public-api.mjs +0 -4
  731. package/esm2022/result/result.component.mjs +0 -25
  732. package/esm2022/result/result.module.mjs +0 -16
  733. package/esm2022/result/result.property.mjs +0 -45
  734. package/esm2022/ripple/ng-nest-ui-ripple.mjs +0 -5
  735. package/esm2022/ripple/public-api.mjs +0 -4
  736. package/esm2022/ripple/ripple.directive.mjs +0 -94
  737. package/esm2022/ripple/ripple.module.mjs +0 -16
  738. package/esm2022/ripple/ripple.property.mjs +0 -40
  739. package/esm2022/select/ng-nest-ui-select.mjs +0 -5
  740. package/esm2022/select/public-api.mjs +0 -5
  741. package/esm2022/select/select-portal.component.mjs +0 -103
  742. package/esm2022/select/select.component.mjs +0 -687
  743. package/esm2022/select/select.module.mjs +0 -16
  744. package/esm2022/select/select.property.mjs +0 -238
  745. package/esm2022/skeleton/ng-nest-ui-skeleton.mjs +0 -5
  746. package/esm2022/skeleton/public-api.mjs +0 -4
  747. package/esm2022/skeleton/skeleton.component.mjs +0 -25
  748. package/esm2022/skeleton/skeleton.module.mjs +0 -16
  749. package/esm2022/skeleton/skeleton.property.mjs +0 -55
  750. package/esm2022/slider/ng-nest-ui-slider.mjs +0 -5
  751. package/esm2022/slider/public-api.mjs +0 -4
  752. package/esm2022/slider/slider.component.mjs +0 -222
  753. package/esm2022/slider/slider.module.mjs +0 -17
  754. package/esm2022/slider/slider.property.mjs +0 -102
  755. package/esm2022/slider-select/ng-nest-ui-slider-select.mjs +0 -5
  756. package/esm2022/slider-select/public-api.mjs +0 -4
  757. package/esm2022/slider-select/slider-select.component.mjs +0 -368
  758. package/esm2022/slider-select/slider-select.module.mjs +0 -16
  759. package/esm2022/slider-select/slider-select.property.mjs +0 -136
  760. package/esm2022/statistic/countdown.component.mjs +0 -70
  761. package/esm2022/statistic/ng-nest-ui-statistic.mjs +0 -5
  762. package/esm2022/statistic/public-api.mjs +0 -5
  763. package/esm2022/statistic/statistic.component.mjs +0 -34
  764. package/esm2022/statistic/statistic.module.mjs +0 -17
  765. package/esm2022/statistic/statistic.property.mjs +0 -106
  766. package/esm2022/steps/ng-nest-ui-steps.mjs +0 -5
  767. package/esm2022/steps/public-api.mjs +0 -4
  768. package/esm2022/steps/steps.component.mjs +0 -49
  769. package/esm2022/steps/steps.module.mjs +0 -16
  770. package/esm2022/steps/steps.property.mjs +0 -60
  771. package/esm2022/switch/ng-nest-ui-switch.mjs +0 -5
  772. package/esm2022/switch/public-api.mjs +0 -4
  773. package/esm2022/switch/switch.component.mjs +0 -37
  774. package/esm2022/switch/switch.module.mjs +0 -16
  775. package/esm2022/switch/switch.property.mjs +0 -91
  776. package/esm2022/table/ng-nest-ui-table.mjs +0 -5
  777. package/esm2022/table/public-api.mjs +0 -7
  778. package/esm2022/table/table-body.component.mjs +0 -236
  779. package/esm2022/table/table-foot.component.mjs +0 -29
  780. package/esm2022/table/table-head.component.mjs +0 -169
  781. package/esm2022/table/table.component.mjs +0 -372
  782. package/esm2022/table/table.module.mjs +0 -19
  783. package/esm2022/table/table.property.mjs +0 -624
  784. package/esm2022/tabs/ng-nest-ui-tabs.mjs +0 -5
  785. package/esm2022/tabs/public-api.mjs +0 -7
  786. package/esm2022/tabs/tab-content.component.mjs +0 -21
  787. package/esm2022/tabs/tab-link.directive.mjs +0 -46
  788. package/esm2022/tabs/tab.component.mjs +0 -19
  789. package/esm2022/tabs/tabs.component.mjs +0 -143
  790. package/esm2022/tabs/tabs.module.mjs +0 -18
  791. package/esm2022/tabs/tabs.property.mjs +0 -141
  792. package/esm2022/tag/ng-nest-ui-tag.mjs +0 -5
  793. package/esm2022/tag/public-api.mjs +0 -4
  794. package/esm2022/tag/tag.component.mjs +0 -51
  795. package/esm2022/tag/tag.module.mjs +0 -16
  796. package/esm2022/tag/tag.property.mjs +0 -80
  797. package/esm2022/text-retract/ng-nest-ui-text-retract.mjs +0 -5
  798. package/esm2022/text-retract/public-api.mjs +0 -4
  799. package/esm2022/text-retract/text-retract.component.mjs +0 -42
  800. package/esm2022/text-retract/text-retract.module.mjs +0 -16
  801. package/esm2022/text-retract/text-retract.property.mjs +0 -35
  802. package/esm2022/textarea/ng-nest-ui-textarea.mjs +0 -5
  803. package/esm2022/textarea/public-api.mjs +0 -4
  804. package/esm2022/textarea/textarea.component.mjs +0 -68
  805. package/esm2022/textarea/textarea.module.mjs +0 -16
  806. package/esm2022/textarea/textarea.property.mjs +0 -126
  807. package/esm2022/theme/ng-nest-ui-theme.mjs +0 -5
  808. package/esm2022/theme/public-api.mjs +0 -4
  809. package/esm2022/theme/theme.component.mjs +0 -179
  810. package/esm2022/theme/theme.module.mjs +0 -16
  811. package/esm2022/theme/theme.property.mjs +0 -63
  812. package/esm2022/time-ago/ng-nest-ui-time-ago.mjs +0 -5
  813. package/esm2022/time-ago/public-api.mjs +0 -4
  814. package/esm2022/time-ago/time-ago.module.mjs +0 -16
  815. package/esm2022/time-ago/time-ago.pipe.mjs +0 -70
  816. package/esm2022/time-ago/time-ago.property.mjs +0 -7
  817. package/esm2022/time-picker/ng-nest-ui-time-picker.mjs +0 -5
  818. package/esm2022/time-picker/public-api.mjs +0 -6
  819. package/esm2022/time-picker/time-picker-frame.component.mjs +0 -312
  820. package/esm2022/time-picker/time-picker-portal.component.mjs +0 -78
  821. package/esm2022/time-picker/time-picker.component.mjs +0 -266
  822. package/esm2022/time-picker/time-picker.module.mjs +0 -17
  823. package/esm2022/time-picker/time-picker.property.mjs +0 -198
  824. package/esm2022/time-range/ng-nest-ui-time-range.mjs +0 -5
  825. package/esm2022/time-range/public-api.mjs +0 -4
  826. package/esm2022/time-range/time-range.module.mjs +0 -16
  827. package/esm2022/time-range/time-range.pipe.mjs +0 -44
  828. package/esm2022/time-range/time-range.property.mjs +0 -7
  829. package/esm2022/timeline/ng-nest-ui-timeline.mjs +0 -5
  830. package/esm2022/timeline/public-api.mjs +0 -4
  831. package/esm2022/timeline/timeline.component.mjs +0 -45
  832. package/esm2022/timeline/timeline.module.mjs +0 -16
  833. package/esm2022/timeline/timeline.property.mjs +0 -50
  834. package/esm2022/tooltip/ng-nest-ui-tooltip.mjs +0 -5
  835. package/esm2022/tooltip/public-api.mjs +0 -5
  836. package/esm2022/tooltip/tooltip-portal.component.mjs +0 -103
  837. package/esm2022/tooltip/tooltip.directive.mjs +0 -143
  838. package/esm2022/tooltip/tooltip.module.mjs +0 -16
  839. package/esm2022/tooltip/tooltip.property.mjs +0 -86
  840. package/esm2022/transfer/ng-nest-ui-transfer.mjs +0 -5
  841. package/esm2022/transfer/public-api.mjs +0 -4
  842. package/esm2022/transfer/transfer.component.mjs +0 -659
  843. package/esm2022/transfer/transfer.module.mjs +0 -16
  844. package/esm2022/transfer/transfer.property.mjs +0 -112
  845. package/esm2022/tree/ng-nest-ui-tree.mjs +0 -5
  846. package/esm2022/tree/public-api.mjs +0 -5
  847. package/esm2022/tree/tree-node.component.mjs +0 -297
  848. package/esm2022/tree/tree.component.mjs +0 -579
  849. package/esm2022/tree/tree.module.mjs +0 -17
  850. package/esm2022/tree/tree.property.mjs +0 -337
  851. package/esm2022/tree/tree.service.mjs +0 -102
  852. package/esm2022/tree-file/ng-nest-ui-tree-file.mjs +0 -5
  853. package/esm2022/tree-file/public-api.mjs +0 -4
  854. package/esm2022/tree-file/tree-file.component.mjs +0 -118
  855. package/esm2022/tree-file/tree-file.module.mjs +0 -16
  856. package/esm2022/tree-file/tree-file.property.mjs +0 -90
  857. package/esm2022/tree-select/ng-nest-ui-tree-select.mjs +0 -5
  858. package/esm2022/tree-select/public-api.mjs +0 -5
  859. package/esm2022/tree-select/tree-select-portal.component.mjs +0 -86
  860. package/esm2022/tree-select/tree-select.component.mjs +0 -659
  861. package/esm2022/tree-select/tree-select.module.mjs +0 -17
  862. package/esm2022/tree-select/tree-select.property.mjs +0 -237
  863. package/esm2022/typography/ng-nest-ui-typography.mjs +0 -5
  864. package/esm2022/typography/public-api.mjs +0 -4
  865. package/esm2022/typography/typography.component.mjs +0 -27
  866. package/esm2022/typography/typography.module.mjs +0 -16
  867. package/esm2022/typography/typography.property.mjs +0 -34
  868. package/esm2022/upload/ng-nest-ui-upload.mjs +0 -5
  869. package/esm2022/upload/public-api.mjs +0 -5
  870. package/esm2022/upload/upload-portal.component.mjs +0 -196
  871. package/esm2022/upload/upload.component.mjs +0 -233
  872. package/esm2022/upload/upload.module.mjs +0 -16
  873. package/esm2022/upload/upload.property.mjs +0 -118
  874. package/style/core/base.scss +0 -20
  875. package/style/core/cdk.scss +0 -72
  876. package/style/core/portal.scss +0 -5
  877. package/style/core/var.scss +0 -4
  878. package/style/mixins/index.scss +0 -9
  879. package/style/params/layout.scss +0 -73
  880. package/style/params/primary.scss +0 -208
  881. package/style/themes/default.scss +0 -1
@@ -60,10 +60,10 @@ class XIconProperty extends XPropertyFunction(X_ICON_CONFIG_NAME) {
60
60
  */
61
61
  this.spin = input(false, { transform: XToBoolean });
62
62
  }
63
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: XIconProperty, selector: "x-icon-property", inputs: { href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, spin: { classPropertyName: "spin", publicName: "spin", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
63
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: XIconProperty, isStandalone: true, selector: "x-icon-property", inputs: { href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, spin: { classPropertyName: "spin", publicName: "spin", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconProperty, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconProperty, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: `${XIconPrefix}-property`, template: '' }]
69
69
  }] });
@@ -142,10 +142,10 @@ class XIconService {
142
142
  const safeUrl = this.sanitizer.sanitize(SecurityContext.URL, url);
143
143
  return this.http.get(safeUrl, { responseType: 'text' });
144
144
  }
145
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
146
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconService, providedIn: 'root' }); }
145
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
146
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconService, providedIn: 'root' }); }
147
147
  }
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconService, decorators: [{
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconService, decorators: [{
149
149
  type: Injectable,
150
150
  args: [{ providedIn: 'root' }]
151
151
  }], ctorParameters: () => [] });
@@ -285,12 +285,12 @@ class XIconComponent extends XIconProperty {
285
285
  }
286
286
  }
287
287
  }
288
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
289
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: XIconComponent, isStandalone: true, selector: "x-icon", host: { properties: { "class": "this.className", "class.x-icon-spin": "this.getSpin", "style.color": "this.getColor" } }, usesInheritance: true, ngImport: i0, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon{margin:0;padding:0}.x-icon{display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
288
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
289
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.1", type: XIconComponent, isStandalone: true, selector: "x-icon", host: { properties: { "class": "this.className", "class.x-icon-spin": "this.getSpin", "style.color": "this.getColor" } }, usesInheritance: true, ngImport: i0, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon{margin:0;padding:0}.x-icon{display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
290
290
  }
291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconComponent, decorators: [{
291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconComponent, decorators: [{
292
292
  type: Component,
293
- args: [{ selector: `${XIconPrefix}`, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon{margin:0;padding:0}.x-icon{display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"] }]
293
+ args: [{ selector: `${XIconPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon{margin:0;padding:0}.x-icon{display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"] }]
294
294
  }], ctorParameters: () => [], propDecorators: { className: [{
295
295
  type: HostBinding,
296
296
  args: ['class']
@@ -303,11 +303,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
303
303
  }] } });
304
304
 
305
305
  class XIconModule {
306
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
307
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: XIconModule, imports: [XIconComponent], exports: [XIconComponent] }); }
308
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconModule }); }
306
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
307
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.1", ngImport: i0, type: XIconModule, imports: [XIconComponent], exports: [XIconComponent] }); }
308
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconModule }); }
309
309
  }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XIconModule, decorators: [{
310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconModule, decorators: [{
311
311
  type: NgModule,
312
312
  args: [{
313
313
  exports: [XIconComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-icon.mjs","sources":["../../../../lib/ng-nest/ui/icon/icon.property.ts","../../../../lib/ng-nest/ui/icon/icon.service.ts","../../../../lib/ng-nest/ui/icon/icon.component.ts","../../../../lib/ng-nest/ui/icon/icon.component.html","../../../../lib/ng-nest/ui/icon/icon.module.ts","../../../../lib/ng-nest/ui/icon/ng-nest-ui-icon.ts"],"sourcesContent":["import { XPropertyFunction, XToBoolean } from '@ng-nest/ui/core';\r\nimport { Component, input } from '@angular/core';\r\nimport type { XBoolean } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Icon\r\n * @selector x-icon\r\n * @decorator component\r\n */\r\nexport const XIconPrefix = 'x-icon';\r\nconst X_ICON_CONFIG_NAME = 'icon';\r\n\r\n/**\r\n * Icon Property\r\n */\r\n@Component({ selector: `${XIconPrefix}-property`, template: '' })\r\nexport class XIconProperty extends XPropertyFunction(X_ICON_CONFIG_NAME) {\r\n /**\r\n * @zh_CN SVG 图标根路径地址,可以通过全局只配置一次,所有图标资源在 github 上的 ng-nest-icon 中\r\n * @en_US The root address of the SVG icon can be configured only once globally. All icon resources are in ng-nest-icon on github\r\n */\r\n readonly href = input<string>(this.config?.href ?? 'https://ngnest.com/static/icons/');\r\n /**\r\n * @zh_CN 图标类型\r\n * @en_US Icon type\r\n * @example\r\n *\r\n * ```html\r\n * <x-icon type=\"fto-activity\"></x-icon>\r\n * <x-icon type=\"fto-airplay\"></x-icon>\r\n * <x-icon type=\"fto-anchor\"></x-icon>\r\n * ```\r\n *\r\n */\r\n readonly type = input<string>();\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n * @example\r\n *\r\n * ```html\r\n * <x-icon color=\"red\" type=\"fto-activity\"></x-icon>\r\n * ```\r\n *\r\n */\r\n readonly color = input<string>();\r\n /**\r\n * @zh_CN loading效果(图标一直旋转)\r\n * @en_US Loading effect (icon keeps rotating)\r\n * @example\r\n *\r\n * ```html\r\n * <x-icon spin=\"true\" type=\"fto-loader\"></x-icon>\r\n * ```\r\n *\r\n */\r\n readonly spin = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 图标来源\r\n * @en_US Icon source\r\n */\r\nexport type XIconSource = 'ant-design' | 'eva' | 'feather' | 'font-awesome' | 'material-design';\r\n","import { Injectable, SecurityContext, inject } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { XHasIn, XIsEmpty } from '@ng-nest/ui/core';\r\nimport { XIconPrefix } from './icon.property';\r\n\r\ntype Task<T> = {\r\n name: string;\r\n observable: Observable<T>;\r\n callback: Function;\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class XIconService {\r\n caches: { [property: string]: any } = {};\r\n queue: Task<any>[] = [];\r\n activeTaskXm: number = 0;\r\n isRunningTask = false;\r\n limit: number = 10;\r\n sanitizer = inject(DomSanitizer);\r\n http = inject(HttpClient, { optional: true })!;\r\n\r\n constructor() {\r\n if (!this.http) {\r\n throw new Error(`${XIconPrefix}: Not found 'HttpClient', You can import 'HttpClientModule' in your root module.`);\r\n }\r\n }\r\n\r\n public addTask<T>(task: Task<T>) {\r\n this.queue.push(task);\r\n this.runTask();\r\n }\r\n\r\n private execute<T>(task: Task<T>) {\r\n this.isRunningTask = true;\r\n if (XHasIn(this.caches, task.name)) {\r\n task.callback(this.caches[task.name]);\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n return;\r\n }\r\n return task.observable.subscribe({\r\n next: (result) => {\r\n this.caches[task.name] = result;\r\n task.callback(result);\r\n return result;\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n },\r\n complete: () => {\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n }\r\n });\r\n }\r\n\r\n private runTask() {\r\n if (!this.isRunningTask && this.activeTaskXm < this.limit && this.queue.length > 0) {\r\n const task = this.queue.shift();\r\n this.activeTaskXm++;\r\n this.execute(task!);\r\n }\r\n }\r\n\r\n getSvg(root: string, icon: string): Observable<string> {\r\n return new Observable((subscriber: Subscriber<string>) => {\r\n if (XIsEmpty(icon)) {\r\n subscriber.next('');\r\n subscriber.complete();\r\n return;\r\n }\r\n this.addTask({\r\n name: icon,\r\n observable: this.getSvgElement(root, icon),\r\n callback: (svg: string) => {\r\n subscriber.next(svg);\r\n subscriber.complete();\r\n }\r\n });\r\n });\r\n }\r\n\r\n getSvgElement(root: string, icon: string): Observable<string> {\r\n const url = `${root}${icon}.svg`;\r\n const safeUrl = this.sanitizer.sanitize(SecurityContext.URL, url);\r\n return this.http.get(safeUrl as string, { responseType: 'text' });\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n Renderer2,\r\n HostBinding,\r\n inject,\r\n effect,\r\n computed,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { XIconPrefix, XIconProperty } from './icon.property';\r\nimport { XIconService } from './icon.service';\r\nimport { XWarnIconTypeNotFound, XWarnSVGTagNotFound, XIsEmpty } from '@ng-nest/ui/core';\r\n\r\n// 来源路径对应\r\nexport const XSouceUrl: { [property: string]: string } = {\r\n adf: `ant-design/fill/`,\r\n ado: `ant-design/outline/`,\r\n adt: `ant-design/twotone/`,\r\n eaf: `eva/fill/`,\r\n eao: `eva/outline/`,\r\n fto: `feather/`,\r\n fab: `font-awesome/brands/`,\r\n far: `font-awesome/regular/`,\r\n fas: `font-awesome/solid/`,\r\n mdf: `material-design/fill/`,\r\n mdo: `material-design/outline/`\r\n};\r\n\r\nexport const XViewBox = [\r\n // { souces: [\"adf\", \"ado\", \"adt\"], value: \"0 0 1024 1024\" },\r\n // { souces: [\"eaf\", \"eao\"], value: \"0 0 24 24\" },\r\n // { souces: [\"fto\"], value: \"0 0 24 24\" }\r\n];\r\n\r\n@Component({\r\n selector: `${XIconPrefix}`,\r\n standalone: true,\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XIconComponent extends XIconProperty {\r\n @HostBinding('class') get className() {\r\n return `${XIconPrefix} ${this.type()}`;\r\n }\r\n private svgElement!: SVGElement;\r\n private document = inject(DOCUMENT);\r\n private elementRef = inject(ElementRef);\r\n private renderer = inject(Renderer2);\r\n private cdr = inject(ChangeDetectorRef);\r\n private iconService = inject(XIconService);\r\n\r\n @HostBinding('class.x-icon-spin') get getSpin() {\r\n return this.spin();\r\n }\r\n\r\n @HostBinding('style.color') get getColor() {\r\n return this.color();\r\n }\r\n\r\n sourceUrl = computed(() => {\r\n const type = this.type();\r\n if (typeof type === 'undefined' || type === '') return '';\r\n const split = type.split('-');\r\n const souce = split.shift();\r\n if (typeof souce === 'undefined') return '';\r\n const souceUrl = XSouceUrl[souce];\r\n const fileName = split.join('-');\r\n if (!souceUrl || !fileName) {\r\n XWarnIconTypeNotFound();\r\n }\r\n return `${souceUrl}${fileName}`;\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.iconService.getSvg(this.href(), this.sourceUrl()).subscribe((x) => this.setSvgs(x)));\r\n }\r\n\r\n setSvgs(svg: string) {\r\n if (XIsEmpty(svg)) return;\r\n let firstChild = this.elementRef.nativeElement.firstChild;\r\n if (firstChild) {\r\n this.renderer.removeChild(this.elementRef.nativeElement, firstChild);\r\n }\r\n this.svgElement = this.buildSvg(svg)!;\r\n this.setAttributes(this.svgElement);\r\n this.renderer.appendChild(this.elementRef.nativeElement, this.svgElement);\r\n // TODO: use zoneless, renderer removeChild will not take effect immediately\r\n this.cdr.markForCheck();\r\n }\r\n\r\n setAttributes(svgEle: SVGElement) {\r\n if (svgEle) {\r\n this.renderer.setAttribute(svgEle, 'width', '1em');\r\n this.renderer.setAttribute(svgEle, 'height', '1em');\r\n }\r\n }\r\n\r\n buildSvg(svgStr: string): SVGSVGElement | undefined {\r\n const result = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGSVGElement;\r\n const svg = this.createSvg(svgStr);\r\n if (!svg) return;\r\n svg.children.forEach((x) => {\r\n x.removeAttribute('class');\r\n if (x.tagName === 'rect') {\r\n x.setAttribute('fill', 'none');\r\n }\r\n result.appendChild(x);\r\n });\r\n this.setAttribute(result, svg.ele, 'viewBox');\r\n this.setAttribute(result, svg.ele, 'fill', 'currentColor');\r\n this.setAttribute(result, svg.ele, 'stroke');\r\n this.setAttribute(result, svg.ele, 'stroke-width');\r\n this.setAttribute(result, svg.ele, 'stroke-linecap');\r\n this.setAttribute(result, svg.ele, 'stroke-linejoin');\r\n if (!result) {\r\n XWarnSVGTagNotFound();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n createSvg(svgStr: string) {\r\n const div = this.document.createElement('div');\r\n div.innerHTML = svgStr;\r\n let svgEle = div.querySelector('svg') as SVGElement;\r\n if (!svgEle) return null;\r\n return {\r\n ele: svgEle,\r\n children: svgEle.querySelectorAll('path, polyline, polygon, circle, line, rect')\r\n };\r\n }\r\n\r\n setAttribute(svg: SVGElement, svgEle: SVGElement, attribute: string, def?: string) {\r\n let attr = svgEle.getAttribute(attribute);\r\n if (attr) {\r\n svg.setAttribute(attribute, attr);\r\n } else if (def) {\r\n svg.setAttribute(attribute, def);\r\n }\r\n }\r\n\r\n //<animate begin=\"mouseenter\" dur=\"500ms\" repeatCount=\"1\" attributeName=\"d\" from=\"M86.425,13.204l5.648,12.741H0.55 l0.125-12.616L0.55,0.544h91.523L86.425,13.204z\" to=\"M92.725,13.521l0.044,12.887H1.245 l7-12.616l-7-12.785h91.523L92.725,13.521z\" fill=\"freeze\"></animate>\r\n\r\n setAnimates(svgs: string[]) {\r\n if (svgs?.length > 0) {\r\n let svg = this.createSvg(svgs.shift() as string);\r\n for (let i = 0; i < this.svgElement.children.length; i++) {\r\n let child = this.svgElement.children[i];\r\n let toChild = svg?.children[i];\r\n if (child?.nodeName === 'path' && toChild?.nodeName === 'path') {\r\n let toAnimate = this.document.createElement('animate');\r\n toAnimate.setAttribute('dur', '500ms');\r\n toAnimate.setAttribute('repeatCount', '1');\r\n toAnimate.setAttribute('attributeName', 'd');\r\n toAnimate.setAttribute('fill', 'freeze');\r\n toAnimate.setAttribute('from', child.getAttribute('d') as string);\r\n toAnimate.setAttribute('to', toChild.getAttribute('d') as string);\r\n this.renderer.appendChild(child, toAnimate);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { XIconComponent } from './icon.component';\r\n\r\n@NgModule({\r\n exports: [XIconComponent],\r\n imports: [XIconComponent]\r\n})\r\nexport class XIconModule {}\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-icon.mjs","sources":["../../../../lib/ng-nest/ui/icon/icon.property.ts","../../../../lib/ng-nest/ui/icon/icon.service.ts","../../../../lib/ng-nest/ui/icon/icon.component.ts","../../../../lib/ng-nest/ui/icon/icon.component.html","../../../../lib/ng-nest/ui/icon/icon.module.ts","../../../../lib/ng-nest/ui/icon/ng-nest-ui-icon.ts"],"sourcesContent":["import { XPropertyFunction, XToBoolean } from '@ng-nest/ui/core';\r\nimport { Component, input } from '@angular/core';\r\nimport type { XBoolean } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Icon\r\n * @selector x-icon\r\n * @decorator component\r\n */\r\nexport const XIconPrefix = 'x-icon';\r\nconst X_ICON_CONFIG_NAME = 'icon';\r\n\r\n/**\r\n * Icon Property\r\n */\r\n@Component({ selector: `${XIconPrefix}-property`, template: '' })\r\nexport class XIconProperty extends XPropertyFunction(X_ICON_CONFIG_NAME) {\r\n /**\r\n * @zh_CN SVG 图标根路径地址,可以通过全局只配置一次,所有图标资源在 github 上的 ng-nest-icon 中\r\n * @en_US The root address of the SVG icon can be configured only once globally. All icon resources are in ng-nest-icon on github\r\n */\r\n readonly href = input<string>(this.config?.href ?? 'https://ngnest.com/static/icons/');\r\n /**\r\n * @zh_CN 图标类型\r\n * @en_US Icon type\r\n * @example\r\n *\r\n * ```html\r\n * <x-icon type=\"fto-activity\"></x-icon>\r\n * <x-icon type=\"fto-airplay\"></x-icon>\r\n * <x-icon type=\"fto-anchor\"></x-icon>\r\n * ```\r\n *\r\n */\r\n readonly type = input<string>();\r\n /**\r\n * @zh_CN 图标颜色\r\n * @en_US Icon color\r\n * @example\r\n *\r\n * ```html\r\n * <x-icon color=\"red\" type=\"fto-activity\"></x-icon>\r\n * ```\r\n *\r\n */\r\n readonly color = input<string>();\r\n /**\r\n * @zh_CN loading效果(图标一直旋转)\r\n * @en_US Loading effect (icon keeps rotating)\r\n * @example\r\n *\r\n * ```html\r\n * <x-icon spin=\"true\" type=\"fto-loader\"></x-icon>\r\n * ```\r\n *\r\n */\r\n readonly spin = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n}\r\n\r\n/**\r\n * @zh_CN 图标来源\r\n * @en_US Icon source\r\n */\r\nexport type XIconSource = 'ant-design' | 'eva' | 'feather' | 'font-awesome' | 'material-design';\r\n","import { Injectable, SecurityContext, inject } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { XHasIn, XIsEmpty } from '@ng-nest/ui/core';\r\nimport { XIconPrefix } from './icon.property';\r\n\r\ntype Task<T> = {\r\n name: string;\r\n observable: Observable<T>;\r\n callback: Function;\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class XIconService {\r\n caches: { [property: string]: any } = {};\r\n queue: Task<any>[] = [];\r\n activeTaskXm: number = 0;\r\n isRunningTask = false;\r\n limit: number = 10;\r\n sanitizer = inject(DomSanitizer);\r\n http = inject(HttpClient, { optional: true })!;\r\n\r\n constructor() {\r\n if (!this.http) {\r\n throw new Error(`${XIconPrefix}: Not found 'HttpClient', You can import 'HttpClientModule' in your root module.`);\r\n }\r\n }\r\n\r\n public addTask<T>(task: Task<T>) {\r\n this.queue.push(task);\r\n this.runTask();\r\n }\r\n\r\n private execute<T>(task: Task<T>) {\r\n this.isRunningTask = true;\r\n if (XHasIn(this.caches, task.name)) {\r\n task.callback(this.caches[task.name]);\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n return;\r\n }\r\n return task.observable.subscribe({\r\n next: (result) => {\r\n this.caches[task.name] = result;\r\n task.callback(result);\r\n return result;\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n },\r\n complete: () => {\r\n this.activeTaskXm--;\r\n this.isRunningTask = false;\r\n this.runTask();\r\n }\r\n });\r\n }\r\n\r\n private runTask() {\r\n if (!this.isRunningTask && this.activeTaskXm < this.limit && this.queue.length > 0) {\r\n const task = this.queue.shift();\r\n this.activeTaskXm++;\r\n this.execute(task!);\r\n }\r\n }\r\n\r\n getSvg(root: string, icon: string): Observable<string> {\r\n return new Observable((subscriber: Subscriber<string>) => {\r\n if (XIsEmpty(icon)) {\r\n subscriber.next('');\r\n subscriber.complete();\r\n return;\r\n }\r\n this.addTask({\r\n name: icon,\r\n observable: this.getSvgElement(root, icon),\r\n callback: (svg: string) => {\r\n subscriber.next(svg);\r\n subscriber.complete();\r\n }\r\n });\r\n });\r\n }\r\n\r\n getSvgElement(root: string, icon: string): Observable<string> {\r\n const url = `${root}${icon}.svg`;\r\n const safeUrl = this.sanitizer.sanitize(SecurityContext.URL, url);\r\n return this.http.get(safeUrl as string, { responseType: 'text' });\r\n }\r\n}\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n Renderer2,\r\n HostBinding,\r\n inject,\r\n effect,\r\n computed,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { XIconPrefix, XIconProperty } from './icon.property';\r\nimport { XIconService } from './icon.service';\r\nimport { XWarnIconTypeNotFound, XWarnSVGTagNotFound, XIsEmpty } from '@ng-nest/ui/core';\r\n\r\n// 来源路径对应\r\nexport const XSouceUrl: { [property: string]: string } = {\r\n adf: `ant-design/fill/`,\r\n ado: `ant-design/outline/`,\r\n adt: `ant-design/twotone/`,\r\n eaf: `eva/fill/`,\r\n eao: `eva/outline/`,\r\n fto: `feather/`,\r\n fab: `font-awesome/brands/`,\r\n far: `font-awesome/regular/`,\r\n fas: `font-awesome/solid/`,\r\n mdf: `material-design/fill/`,\r\n mdo: `material-design/outline/`\r\n};\r\n\r\nexport const XViewBox = [\r\n // { souces: [\"adf\", \"ado\", \"adt\"], value: \"0 0 1024 1024\" },\r\n // { souces: [\"eaf\", \"eao\"], value: \"0 0 24 24\" },\r\n // { souces: [\"fto\"], value: \"0 0 24 24\" }\r\n];\r\n\r\n@Component({\r\n selector: `${XIconPrefix}`,\r\n templateUrl: './icon.component.html',\r\n styleUrls: ['./style/index.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XIconComponent extends XIconProperty {\r\n @HostBinding('class') get className() {\r\n return `${XIconPrefix} ${this.type()}`;\r\n }\r\n private svgElement!: SVGElement;\r\n private document = inject(DOCUMENT);\r\n private elementRef = inject(ElementRef);\r\n private renderer = inject(Renderer2);\r\n private cdr = inject(ChangeDetectorRef);\r\n private iconService = inject(XIconService);\r\n\r\n @HostBinding('class.x-icon-spin') get getSpin() {\r\n return this.spin();\r\n }\r\n\r\n @HostBinding('style.color') get getColor() {\r\n return this.color();\r\n }\r\n\r\n sourceUrl = computed(() => {\r\n const type = this.type();\r\n if (typeof type === 'undefined' || type === '') return '';\r\n const split = type.split('-');\r\n const souce = split.shift();\r\n if (typeof souce === 'undefined') return '';\r\n const souceUrl = XSouceUrl[souce];\r\n const fileName = split.join('-');\r\n if (!souceUrl || !fileName) {\r\n XWarnIconTypeNotFound();\r\n }\r\n return `${souceUrl}${fileName}`;\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.iconService.getSvg(this.href(), this.sourceUrl()).subscribe((x) => this.setSvgs(x)));\r\n }\r\n\r\n setSvgs(svg: string) {\r\n if (XIsEmpty(svg)) return;\r\n let firstChild = this.elementRef.nativeElement.firstChild;\r\n if (firstChild) {\r\n this.renderer.removeChild(this.elementRef.nativeElement, firstChild);\r\n }\r\n this.svgElement = this.buildSvg(svg)!;\r\n this.setAttributes(this.svgElement);\r\n this.renderer.appendChild(this.elementRef.nativeElement, this.svgElement);\r\n // TODO: use zoneless, renderer removeChild will not take effect immediately\r\n this.cdr.markForCheck();\r\n }\r\n\r\n setAttributes(svgEle: SVGElement) {\r\n if (svgEle) {\r\n this.renderer.setAttribute(svgEle, 'width', '1em');\r\n this.renderer.setAttribute(svgEle, 'height', '1em');\r\n }\r\n }\r\n\r\n buildSvg(svgStr: string): SVGSVGElement | undefined {\r\n const result = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg') as SVGSVGElement;\r\n const svg = this.createSvg(svgStr);\r\n if (!svg) return;\r\n svg.children.forEach((x) => {\r\n x.removeAttribute('class');\r\n if (x.tagName === 'rect') {\r\n x.setAttribute('fill', 'none');\r\n }\r\n result.appendChild(x);\r\n });\r\n this.setAttribute(result, svg.ele, 'viewBox');\r\n this.setAttribute(result, svg.ele, 'fill', 'currentColor');\r\n this.setAttribute(result, svg.ele, 'stroke');\r\n this.setAttribute(result, svg.ele, 'stroke-width');\r\n this.setAttribute(result, svg.ele, 'stroke-linecap');\r\n this.setAttribute(result, svg.ele, 'stroke-linejoin');\r\n if (!result) {\r\n XWarnSVGTagNotFound();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n createSvg(svgStr: string) {\r\n const div = this.document.createElement('div');\r\n div.innerHTML = svgStr;\r\n let svgEle = div.querySelector('svg') as SVGElement;\r\n if (!svgEle) return null;\r\n return {\r\n ele: svgEle,\r\n children: svgEle.querySelectorAll('path, polyline, polygon, circle, line, rect')\r\n };\r\n }\r\n\r\n setAttribute(svg: SVGElement, svgEle: SVGElement, attribute: string, def?: string) {\r\n let attr = svgEle.getAttribute(attribute);\r\n if (attr) {\r\n svg.setAttribute(attribute, attr);\r\n } else if (def) {\r\n svg.setAttribute(attribute, def);\r\n }\r\n }\r\n\r\n //<animate begin=\"mouseenter\" dur=\"500ms\" repeatCount=\"1\" attributeName=\"d\" from=\"M86.425,13.204l5.648,12.741H0.55 l0.125-12.616L0.55,0.544h91.523L86.425,13.204z\" to=\"M92.725,13.521l0.044,12.887H1.245 l7-12.616l-7-12.785h91.523L92.725,13.521z\" fill=\"freeze\"></animate>\r\n\r\n setAnimates(svgs: string[]) {\r\n if (svgs?.length > 0) {\r\n let svg = this.createSvg(svgs.shift() as string);\r\n for (let i = 0; i < this.svgElement.children.length; i++) {\r\n let child = this.svgElement.children[i];\r\n let toChild = svg?.children[i];\r\n if (child?.nodeName === 'path' && toChild?.nodeName === 'path') {\r\n let toAnimate = this.document.createElement('animate');\r\n toAnimate.setAttribute('dur', '500ms');\r\n toAnimate.setAttribute('repeatCount', '1');\r\n toAnimate.setAttribute('attributeName', 'd');\r\n toAnimate.setAttribute('fill', 'freeze');\r\n toAnimate.setAttribute('from', child.getAttribute('d') as string);\r\n toAnimate.setAttribute('to', toChild.getAttribute('d') as string);\r\n this.renderer.appendChild(child, toAnimate);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n","import { NgModule } from '@angular/core';\r\nimport { XIconComponent } from './icon.component';\r\n\r\n@NgModule({\r\n exports: [XIconComponent],\r\n imports: [XIconComponent]\r\n})\r\nexport class XIconModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { input, output, Component, signal, inject, computed, viewChild, ViewEncapsulation, ChangeDetectionStrategy, effect, NgModule } from '@angular/core';
3
3
  import { XPropertyFunction, XToCssPixelValue, XProperty, XConfigService } from '@ng-nest/ui/core';
4
4
  import { X_DIALOG_DATA, XDialogCloseDirective, XDialogService } from '@ng-nest/ui/dialog';
5
- import { DOCUMENT, NgClass } from '@angular/common';
5
+ import { DOCUMENT } from '@angular/common';
6
6
  import { XIconComponent } from '@ng-nest/ui/icon';
7
7
  import * as i1 from '@angular/cdk/drag-drop';
8
8
  import { DragDropModule } from '@angular/cdk/drag-drop';
@@ -173,10 +173,10 @@ class XImageProperty extends XPropertyFunction(X_IMAGE_CONFIG_NAME) {
173
173
  */
174
174
  this.load = output();
175
175
  }
176
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImageProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
177
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.2", type: XImageProperty, selector: "x-image-property", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, fallback: { classPropertyName: "fallback", publicName: "fallback", isSignal: true, isRequired: false, transformFunction: null }, previewText: { classPropertyName: "previewText", publicName: "previewText", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, previewTpl: { classPropertyName: "previewTpl", publicName: "previewTpl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { error: "error", load: "load" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
176
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
177
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: XImageProperty, isStandalone: true, selector: "x-image-property", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, fallback: { classPropertyName: "fallback", publicName: "fallback", isSignal: true, isRequired: false, transformFunction: null }, previewText: { classPropertyName: "previewText", publicName: "previewText", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, previewTpl: { classPropertyName: "previewTpl", publicName: "previewTpl", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { error: "error", load: "load" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
178
178
  }
179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImageProperty, decorators: [{
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageProperty, decorators: [{
180
180
  type: Component,
181
181
  args: [{ selector: `${XImagePrefix}-property`, template: '' }]
182
182
  }] });
@@ -190,10 +190,10 @@ const XImagePreviewPrefix = 'x-image-preview';
190
190
  * Image Preview Property
191
191
  */
192
192
  class XImagePreviewProperty extends XProperty {
193
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImagePreviewProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
194
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: XImagePreviewProperty, selector: "x-image-preview-property", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
193
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImagePreviewProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
194
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.1", type: XImagePreviewProperty, isStandalone: true, selector: "x-image-preview-property", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
195
195
  }
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImagePreviewProperty, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImagePreviewProperty, decorators: [{
197
197
  type: Component,
198
198
  args: [{ selector: `${XImagePreviewPrefix}-property`, template: '' }]
199
199
  }] });
@@ -323,12 +323,12 @@ class XImagePreviewComponent extends XImagePreviewProperty {
323
323
  }
324
324
  return distance;
325
325
  }
326
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImagePreviewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
327
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XImagePreviewComponent, isStandalone: true, selector: "x-image-preview", viewQueries: [{ propertyName: "imageRef", first: true, predicate: ["imageRef"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"x-image-preview\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n @if (total() != 1) {\r\n <span class=\"x-image-preview-current\">{{ current() }} / {{ total() }}</span>\r\n }\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon\r\n type=\"fto-zoom-out\"\r\n [class.x-image-preview-disabled]=\"imgScale3d().x === 1\"\r\n (click)=\"imgScale3d().x > 1 && onScale(-1)\"\r\n ></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"wrapperTransform()\"\r\n [cdkDragFreeDragPosition]=\"position()\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img\r\n #imageRef\r\n [src]=\"activated()?.src!\"\r\n [attr.alt]=\"activated()?.alt!\"\r\n cdkDragHandle\r\n [style.transform]=\"imgTransform()\"\r\n />\r\n </div>\r\n @if (data && data.length > 1) {\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current() > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === total()\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current() != total() && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["x-image-preview{display:block;width:100%;height:100%}.x-image-preview{margin:0;padding:0}.x-image-preview{width:100%;height:100%}.x-image-preview-header{display:flex;align-items:center;justify-content:center;background-color:#0003;color:#fff;position:absolute;width:100%;z-index:1;height:2.75rem}.x-image-preview-header x-icon{font-size:1.25rem;padding:.75rem;cursor:pointer;transition:background-color var(--x-animation-duration-base)}.x-image-preview-header x-icon:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-header x-icon.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-header-center{position:absolute}.x-image-preview-header-right{position:absolute;right:0}.x-image-preview-header-left{position:absolute;left:0}.x-image-preview-current{padding:.75rem}.x-image-preview-wrapper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-wrapper>img{max-width:100%;max-height:100%;vertical-align:middle;cursor:grab;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-left,.x-image-preview-right{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;color:#fff;background-color:#0003;border-radius:50%;transition:background-color var(--x-animation-duration-base);cursor:pointer;font-size:1.25rem}.x-image-preview-left:hover:not(.x-image-preview-disabled),.x-image-preview-right:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-left.x-image-preview-disabled,.x-image-preview-right.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-left{left:1rem}.x-image-preview-right{right:1rem}.x-image-preview-portal .x-dialog-portal{background:transparent;box-shadow:none;padding:0}\n"], dependencies: [{ kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: XDialogCloseDirective, selector: "[x-dialog-close]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
326
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImagePreviewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
327
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: XImagePreviewComponent, isStandalone: true, selector: "x-image-preview", viewQueries: [{ propertyName: "imageRef", first: true, predicate: ["imageRef"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"x-image-preview\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n @if (total() != 1) {\r\n <span class=\"x-image-preview-current\">{{ current() }} / {{ total() }}</span>\r\n }\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon\r\n type=\"fto-zoom-out\"\r\n [class.x-image-preview-disabled]=\"imgScale3d().x === 1\"\r\n (click)=\"imgScale3d().x > 1 && onScale(-1)\"\r\n ></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"wrapperTransform()\"\r\n [cdkDragFreeDragPosition]=\"position()\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img\r\n #imageRef\r\n [src]=\"activated()?.src!\"\r\n [attr.alt]=\"activated()?.alt!\"\r\n cdkDragHandle\r\n [style.transform]=\"imgTransform()\"\r\n />\r\n </div>\r\n @if (data && data.length > 1) {\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current() > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === total()\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current() != total() && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["x-image-preview{display:block;width:100%;height:100%}.x-image-preview{margin:0;padding:0}.x-image-preview{width:100%;height:100%}.x-image-preview-header{display:flex;align-items:center;justify-content:center;background-color:#0003;color:#fff;position:absolute;width:100%;z-index:1;height:2.75rem}.x-image-preview-header x-icon{font-size:1.25rem;padding:.75rem;cursor:pointer;transition:background-color var(--x-animation-duration-base)}.x-image-preview-header x-icon:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-header x-icon.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-header-center{position:absolute}.x-image-preview-header-right{position:absolute;right:0}.x-image-preview-header-left{position:absolute;left:0}.x-image-preview-current{padding:.75rem}.x-image-preview-wrapper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-wrapper>img{max-width:100%;max-height:100%;vertical-align:middle;cursor:grab;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-left,.x-image-preview-right{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;color:#fff;background-color:#0003;border-radius:50%;transition:background-color var(--x-animation-duration-base);cursor:pointer;font-size:1.25rem}.x-image-preview-left:hover:not(.x-image-preview-disabled),.x-image-preview-right:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-left.x-image-preview-disabled,.x-image-preview-right.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-left{left:1rem}.x-image-preview-right{right:1rem}.x-image-preview-portal .x-dialog-portal{background:transparent;box-shadow:none;padding:0}\n"], dependencies: [{ kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: XDialogCloseDirective, selector: "[x-dialog-close]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
328
328
  }
329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImagePreviewComponent, decorators: [{
329
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImagePreviewComponent, decorators: [{
330
330
  type: Component,
331
- args: [{ selector: `${XImagePreviewPrefix}`, standalone: true, imports: [NgClass, XIconComponent, DragDropModule, XDialogCloseDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image-preview\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n @if (total() != 1) {\r\n <span class=\"x-image-preview-current\">{{ current() }} / {{ total() }}</span>\r\n }\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon\r\n type=\"fto-zoom-out\"\r\n [class.x-image-preview-disabled]=\"imgScale3d().x === 1\"\r\n (click)=\"imgScale3d().x > 1 && onScale(-1)\"\r\n ></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"wrapperTransform()\"\r\n [cdkDragFreeDragPosition]=\"position()\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img\r\n #imageRef\r\n [src]=\"activated()?.src!\"\r\n [attr.alt]=\"activated()?.alt!\"\r\n cdkDragHandle\r\n [style.transform]=\"imgTransform()\"\r\n />\r\n </div>\r\n @if (data && data.length > 1) {\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current() > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === total()\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current() != total() && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["x-image-preview{display:block;width:100%;height:100%}.x-image-preview{margin:0;padding:0}.x-image-preview{width:100%;height:100%}.x-image-preview-header{display:flex;align-items:center;justify-content:center;background-color:#0003;color:#fff;position:absolute;width:100%;z-index:1;height:2.75rem}.x-image-preview-header x-icon{font-size:1.25rem;padding:.75rem;cursor:pointer;transition:background-color var(--x-animation-duration-base)}.x-image-preview-header x-icon:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-header x-icon.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-header-center{position:absolute}.x-image-preview-header-right{position:absolute;right:0}.x-image-preview-header-left{position:absolute;left:0}.x-image-preview-current{padding:.75rem}.x-image-preview-wrapper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-wrapper>img{max-width:100%;max-height:100%;vertical-align:middle;cursor:grab;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-left,.x-image-preview-right{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;color:#fff;background-color:#0003;border-radius:50%;transition:background-color var(--x-animation-duration-base);cursor:pointer;font-size:1.25rem}.x-image-preview-left:hover:not(.x-image-preview-disabled),.x-image-preview-right:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-left.x-image-preview-disabled,.x-image-preview-right.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-left{left:1rem}.x-image-preview-right{right:1rem}.x-image-preview-portal .x-dialog-portal{background:transparent;box-shadow:none;padding:0}\n"] }]
331
+ args: [{ selector: `${XImagePreviewPrefix}`, imports: [XIconComponent, DragDropModule, XDialogCloseDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image-preview\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n @if (total() != 1) {\r\n <span class=\"x-image-preview-current\">{{ current() }} / {{ total() }}</span>\r\n }\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon\r\n type=\"fto-zoom-out\"\r\n [class.x-image-preview-disabled]=\"imgScale3d().x === 1\"\r\n (click)=\"imgScale3d().x > 1 && onScale(-1)\"\r\n ></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"wrapperTransform()\"\r\n [cdkDragFreeDragPosition]=\"position()\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img\r\n #imageRef\r\n [src]=\"activated()?.src!\"\r\n [attr.alt]=\"activated()?.alt!\"\r\n cdkDragHandle\r\n [style.transform]=\"imgTransform()\"\r\n />\r\n </div>\r\n @if (data && data.length > 1) {\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current() > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === total()\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current() != total() && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["x-image-preview{display:block;width:100%;height:100%}.x-image-preview{margin:0;padding:0}.x-image-preview{width:100%;height:100%}.x-image-preview-header{display:flex;align-items:center;justify-content:center;background-color:#0003;color:#fff;position:absolute;width:100%;z-index:1;height:2.75rem}.x-image-preview-header x-icon{font-size:1.25rem;padding:.75rem;cursor:pointer;transition:background-color var(--x-animation-duration-base)}.x-image-preview-header x-icon:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-header x-icon.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-header-center{position:absolute}.x-image-preview-header-right{position:absolute;right:0}.x-image-preview-header-left{position:absolute;left:0}.x-image-preview-current{padding:.75rem}.x-image-preview-wrapper{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-wrapper>img{max-width:100%;max-height:100%;vertical-align:middle;cursor:grab;transition:transform var(--x-animation-duration-base) ease-out 0s}.x-image-preview-left,.x-image-preview-right{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-top:-1.375rem;color:#fff;background-color:#0003;border-radius:50%;transition:background-color var(--x-animation-duration-base);cursor:pointer;font-size:1.25rem}.x-image-preview-left:hover:not(.x-image-preview-disabled),.x-image-preview-right:hover:not(.x-image-preview-disabled){background-color:#0000001a}.x-image-preview-left.x-image-preview-disabled,.x-image-preview-right.x-image-preview-disabled{color:#ffffff80;cursor:default}.x-image-preview-left{left:1rem}.x-image-preview-right{right:1rem}.x-image-preview-portal .x-dialog-portal{background:transparent;box-shadow:none;padding:0}\n"] }]
332
332
  }] });
333
333
 
334
334
  class XImageGroupComponent {
@@ -347,12 +347,12 @@ class XImageGroupComponent {
347
347
  return [...x];
348
348
  });
349
349
  }
350
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImageGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
351
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: XImageGroupComponent, isStandalone: true, selector: "x-image-group", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
350
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
351
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.1", type: XImageGroupComponent, isStandalone: true, selector: "x-image-group", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
352
352
  }
353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImageGroupComponent, decorators: [{
353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageGroupComponent, decorators: [{
354
354
  type: Component,
355
- args: [{ selector: `${XImageGroupPrefix}`, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"] }]
355
+ args: [{ selector: `${XImageGroupPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"] }]
356
356
  }] });
357
357
 
358
358
  class XImageComponent extends XImageProperty {
@@ -371,7 +371,7 @@ class XImageComponent extends XImageProperty {
371
371
  effect(() => {
372
372
  this.src();
373
373
  this.isLoaded.set(false);
374
- }, { allowSignalWrites: true });
374
+ });
375
375
  }
376
376
  ngOnInit() {
377
377
  this.group && this.group.addImage(this);
@@ -409,20 +409,20 @@ class XImageComponent extends XImageProperty {
409
409
  this.isError.set(false);
410
410
  this.load.emit(event);
411
411
  }
412
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
413
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: XImageComponent, isStandalone: true, selector: "x-image", usesInheritance: true, ngImport: i0, template: "<div class=\"x-image\">\r\n <img\r\n [hidden]=\"(placeholder() && !isLoaded()) || isError()\"\r\n class=\"x-image-img\"\r\n [src]=\"src()\"\r\n [style.width]=\"width()\"\r\n [style.height]=\"height()\"\r\n [attr.alt]=\"alt()\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n @if (placeholder() && !isLoaded()) {\r\n <img class=\"x-image-img\" [src]=\"placeholder()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && fallback()) {\r\n <img class=\"x-image-img\" [src]=\"fallback()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && !fallback()) {\r\n <div class=\"x-image-error-icon\" [style.width]=\"width()\" [style.height]=\"height()\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n }\r\n <ng-container *xOutlet=\"previewTpl(); context: { $image: this }\">\r\n @if (!isError()) {\r\n <div class=\"x-image-overlay\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ previewTextSignal() }}</span>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0}.x-image{position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:#00000080;cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"], dependencies: [{ kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
412
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
413
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: XImageComponent, isStandalone: true, selector: "x-image", usesInheritance: true, ngImport: i0, template: "<div class=\"x-image\">\r\n <img\r\n [hidden]=\"(placeholder() && !isLoaded()) || isError()\"\r\n class=\"x-image-img\"\r\n [src]=\"src()\"\r\n [style.width]=\"width()\"\r\n [style.height]=\"height()\"\r\n [attr.alt]=\"alt()\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n @if (placeholder() && !isLoaded()) {\r\n <img class=\"x-image-img\" [src]=\"placeholder()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && fallback()) {\r\n <img class=\"x-image-img\" [src]=\"fallback()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && !fallback()) {\r\n <div class=\"x-image-error-icon\" [style.width]=\"width()\" [style.height]=\"height()\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n }\r\n <ng-container *xOutlet=\"previewTpl(); context: { $image: this }\">\r\n @if (!isError()) {\r\n <div class=\"x-image-overlay\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ previewTextSignal() }}</span>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0}.x-image{position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:#00000080;cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"], dependencies: [{ kind: "component", type: XIconComponent, selector: "x-icon" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
414
414
  }
415
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImageComponent, decorators: [{
415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageComponent, decorators: [{
416
416
  type: Component,
417
- args: [{ selector: `${XImagePrefix}`, standalone: true, imports: [NgClass, XIconComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image\">\r\n <img\r\n [hidden]=\"(placeholder() && !isLoaded()) || isError()\"\r\n class=\"x-image-img\"\r\n [src]=\"src()\"\r\n [style.width]=\"width()\"\r\n [style.height]=\"height()\"\r\n [attr.alt]=\"alt()\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n @if (placeholder() && !isLoaded()) {\r\n <img class=\"x-image-img\" [src]=\"placeholder()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && fallback()) {\r\n <img class=\"x-image-img\" [src]=\"fallback()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && !fallback()) {\r\n <div class=\"x-image-error-icon\" [style.width]=\"width()\" [style.height]=\"height()\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n }\r\n <ng-container *xOutlet=\"previewTpl(); context: { $image: this }\">\r\n @if (!isError()) {\r\n <div class=\"x-image-overlay\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ previewTextSignal() }}</span>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0}.x-image{position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:#00000080;cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"] }]
417
+ args: [{ selector: `${XImagePrefix}`, imports: [XIconComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image\">\r\n <img\r\n [hidden]=\"(placeholder() && !isLoaded()) || isError()\"\r\n class=\"x-image-img\"\r\n [src]=\"src()\"\r\n [style.width]=\"width()\"\r\n [style.height]=\"height()\"\r\n [attr.alt]=\"alt()\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n @if (placeholder() && !isLoaded()) {\r\n <img class=\"x-image-img\" [src]=\"placeholder()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && fallback()) {\r\n <img class=\"x-image-img\" [src]=\"fallback()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && !fallback()) {\r\n <div class=\"x-image-error-icon\" [style.width]=\"width()\" [style.height]=\"height()\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n }\r\n <ng-container *xOutlet=\"previewTpl(); context: { $image: this }\">\r\n @if (!isError()) {\r\n <div class=\"x-image-overlay\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ previewTextSignal() }}</span>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0}.x-image{position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:#00000080;cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"] }]
418
418
  }], ctorParameters: () => [] });
419
419
 
420
420
  class XImageModule {
421
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
422
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: XImageModule, imports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent], exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent] }); }
423
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImageModule, imports: [XImageComponent, XImagePreviewComponent] }); }
421
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
422
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.1", ngImport: i0, type: XImageModule, imports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent], exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent] }); }
423
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageModule, imports: [XImageComponent, XImagePreviewComponent] }); }
424
424
  }
425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: XImageModule, decorators: [{
425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageModule, decorators: [{
426
426
  type: NgModule,
427
427
  args: [{
428
428
  exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-image.mjs","sources":["../../../../lib/ng-nest/ui/image/image.property.ts","../../../../lib/ng-nest/ui/image/image-preview.component.ts","../../../../lib/ng-nest/ui/image/image-preview.component.html","../../../../lib/ng-nest/ui/image/image-group.component.ts","../../../../lib/ng-nest/ui/image/image-group.component.html","../../../../lib/ng-nest/ui/image/image.component.ts","../../../../lib/ng-nest/ui/image/image.component.html","../../../../lib/ng-nest/ui/image/image.module.ts","../../../../lib/ng-nest/ui/image/ng-nest-ui-image.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\r\nimport { XProperty, XPropertyFunction, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport type { XNumber, XTemplate } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Image\r\n * @selector x-image\r\n * @decorator component\r\n */\r\nexport const XImagePrefix = 'x-image';\r\nconst X_IMAGE_CONFIG_NAME = 'image';\r\n\r\n/**\r\n * Image Property\r\n */\r\n@Component({ selector: `${XImagePrefix}-property`, template: '' })\r\nexport class XImageProperty extends XPropertyFunction(X_IMAGE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly src = input<string>();\r\n /**\r\n * @zh_CN 图片宽度\r\n * @en_US Picture width\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly width = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 图片高度\r\n * @en_US Picture height\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly height = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * alt=\"ng-nest-admin-light\"\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly alt = input<string>();\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"error\"\r\n * fallback=\"data:image/png;base64,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\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly fallback = input<string>();\r\n /**\r\n * @zh_CN 预览文字\r\n * @en_US Preview text\r\n * @default '预览'\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * previewText=\"查看\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly previewText = input<string>(this.config?.previewText!);\r\n /**\r\n * @zh_CN 渐进加载显示的图片地址\r\n * @en_US Progressive loading image addresses\r\n */\r\n readonly placeholder = input<string>();\r\n /**\r\n * @zh_CN 自定义预览操作\r\n * @en_US Custom preview operation\r\n */\r\n readonly previewTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 图片加载错误\r\n * @en_US Picture load failed\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"error\"\r\n * (error)=\"onError($event)\"\r\n * ></x-image>\r\n * ```\r\n *\r\n * ```typescript\r\n * onError(event: ErrorEvent) {\r\n * console.log(event)\r\n * }\r\n * ```\r\n *\r\n */\r\n readonly error = output<ErrorEvent>();\r\n /**\r\n * @zh_CN 图片加载完成\r\n * @en_US Picture loading complete\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * (load)=\"onLoad($event)\"\r\n * ></x-image>\r\n * ```\r\n *\r\n * ```typescript\r\n * onLoad(event: Event) {\r\n * console.log(event)\r\n * }\r\n * ```\r\n *\r\n */\r\n readonly load = output<Event>();\r\n}\r\n\r\n/**\r\n * @zh_CN 图片节点数据\r\n * @en_US Image node data\r\n */\r\nexport interface XImageNode {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n src?: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n alt?: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n fallback?: string;\r\n /**\r\n * @zh_CN 当前激活的图片\r\n * @en_US Current activated pictures\r\n */\r\n activated?: boolean;\r\n}\r\n\r\n/**\r\n * Image Preview\r\n * @selector x-image-preview\r\n * @decorator component\r\n */\r\nexport const XImagePreviewPrefix = 'x-image-preview';\r\n\r\n/**\r\n * Image Preview Property\r\n */\r\n@Component({ selector: `${XImagePreviewPrefix}-property`, template: '' })\r\nexport class XImagePreviewProperty extends XProperty {}\r\n\r\n/**\r\n * Image Group\r\n * @selector x-image-group\r\n * @decorator component\r\n */\r\nexport const XImageGroupPrefix = 'x-image-group';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n OnInit,\r\n signal,\r\n computed,\r\n viewChild\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePreviewPrefix, XImagePreviewProperty } from './image.property';\r\nimport { XDialogCloseDirective, X_DIALOG_DATA } from '@ng-nest/ui/dialog';\r\nimport { DOCUMENT, NgClass } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\n@Component({\r\n selector: `${XImagePreviewPrefix}`,\r\n standalone: true,\r\n imports: [NgClass, XIconComponent, DragDropModule, XDialogCloseDirective],\r\n templateUrl: './image-preview.component.html',\r\n styleUrls: ['./image-preview.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImagePreviewComponent extends XImagePreviewProperty implements OnInit {\r\n imgScale3d = signal({\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n });\r\n rotate = signal(0);\r\n\r\n position = signal({\r\n x: 0,\r\n y: 0\r\n });\r\n\r\n activated = signal<XImageNode | undefined>(undefined);\r\n total = signal(1);\r\n current = signal(1);\r\n\r\n private document = inject(DOCUMENT);\r\n\r\n wrapperTransform = computed(() => {\r\n return `translate3d(${this.position().x}px, ${this.position().y}px, 0)`;\r\n });\r\n imgTransform = computed(() => {\r\n return `scale3d(${this.imgScale3d().x}, ${this.imgScale3d().y}, ${this.imgScale3d().z}) rotate(${this.rotate()}deg)`;\r\n });\r\n\r\n imageRef = viewChild.required<ElementRef<HTMLImageElement>>('imageRef');\r\n\r\n data = inject<XImageNode[]>(X_DIALOG_DATA);\r\n\r\n ngOnInit() {\r\n this.setActivated();\r\n }\r\n\r\n initialization() {\r\n this.imgScale3d.set({\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n });\r\n this.rotate.set(0);\r\n this.position.set({\r\n x: 0,\r\n y: 0\r\n });\r\n }\r\n\r\n setActivated() {\r\n if (!this.data) return;\r\n if (this.data.length === 1) {\r\n this.activated.set(this.data[0]);\r\n this.total.set(1);\r\n this.current.set(1);\r\n } else {\r\n this.total.set(this.data.length);\r\n this.activated.set(\r\n this.data.find((x, index) => {\r\n if (x.activated) {\r\n this.current.set(index + 1);\r\n return true;\r\n }\r\n return false;\r\n })\r\n );\r\n }\r\n }\r\n\r\n onCurrentChange(num: number) {\r\n this.current.update((x) => x + num);\r\n this.activated.set(this.data[this.current() - 1]);\r\n this.initialization();\r\n }\r\n\r\n onRotate(deg: number) {\r\n this.rotate.update((x) => x + deg);\r\n }\r\n\r\n onScale(zoom: number) {\r\n this.imgScale3d.update((item) => {\r\n item.x += zoom;\r\n item.y += zoom;\r\n return { ...item };\r\n });\r\n }\r\n\r\n onDragReleased() {\r\n let width = this.imageRef().nativeElement.offsetWidth * this.imgScale3d().x;\r\n let height = this.imageRef().nativeElement.offsetHeight * this.imgScale3d().x;\r\n const clientWidth = this.document.documentElement.clientWidth;\r\n const clientHeight = this.document.defaultView?.innerHeight || this.document.documentElement.clientHeight;\r\n const isRotate = this.rotate() % 180 !== 0;\r\n const box = this.imageRef().nativeElement.getBoundingClientRect();\r\n const docElem = this.document.documentElement;\r\n const left =\r\n box.left +\r\n (this.document.defaultView?.pageXOffset || docElem.scrollLeft) -\r\n (docElem.clientLeft || this.document.body.clientLeft || 0);\r\n const top =\r\n box.top +\r\n (this.document.defaultView?.pageYOffset || docElem.scrollTop) -\r\n (docElem.clientTop || this.document.body.clientTop || 0);\r\n width = isRotate ? height : width;\r\n height = isRotate ? width : height;\r\n\r\n let position = { x: 0, y: 0 };\r\n if (width > clientWidth || height > clientHeight) {\r\n const x = this.fitPoint(left, width, clientWidth);\r\n const y = this.fitPoint(top, height, clientHeight);\r\n position.x = x ? x : 0;\r\n position.y = y ? y : 0;\r\n }\r\n\r\n this.position.update((x) => ({ ...x, ...position }));\r\n }\r\n\r\n fitPoint(start: number, size: number, clientSize: number): number | null {\r\n const startAddSize = start + size;\r\n const offsetStart = (size - clientSize) / 2;\r\n let distance: number | null = null;\r\n\r\n if (size > clientSize) {\r\n if (start > 0) {\r\n distance = offsetStart;\r\n }\r\n if (start < 0 && startAddSize < clientSize) {\r\n distance = -offsetStart;\r\n }\r\n } else {\r\n if (start < 0 || startAddSize > clientSize) {\r\n distance = start < 0 ? offsetStart : -offsetStart;\r\n }\r\n }\r\n\r\n return distance;\r\n }\r\n}\r\n","<div class=\"x-image-preview\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n @if (total() != 1) {\r\n <span class=\"x-image-preview-current\">{{ current() }} / {{ total() }}</span>\r\n }\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon\r\n type=\"fto-zoom-out\"\r\n [class.x-image-preview-disabled]=\"imgScale3d().x === 1\"\r\n (click)=\"imgScale3d().x > 1 && onScale(-1)\"\r\n ></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"wrapperTransform()\"\r\n [cdkDragFreeDragPosition]=\"position()\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img\r\n #imageRef\r\n [src]=\"activated()?.src!\"\r\n [attr.alt]=\"activated()?.alt!\"\r\n cdkDragHandle\r\n [style.transform]=\"imgTransform()\"\r\n />\r\n </div>\r\n @if (data && data.length > 1) {\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current() > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === total()\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current() != total() && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, signal } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImageGroupPrefix } from './image.property';\r\n\r\n@Component({\r\n selector: `${XImageGroupPrefix}`,\r\n standalone: true,\r\n templateUrl: './image-group.component.html',\r\n styleUrls: ['./image-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageGroupComponent {\r\n images = signal<XImageComponent[]>([]);\r\n\r\n addImage(image: XImageComponent): void {\r\n this.images.update((x) => {\r\n x.push(image);\r\n return [...x];\r\n });\r\n }\r\n\r\n removeImage(image: XImageComponent): void {\r\n this.images.update((x) => {\r\n x.splice(x.indexOf(image), 1);\r\n return [...x];\r\n });\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n inject,\r\n computed,\r\n signal,\r\n OnDestroy,\r\n effect\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePrefix, XImageProperty } from './image.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\nimport { XDialogService } from '@ng-nest/ui/dialog';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs';\r\nimport { XImageGroupComponent } from './image-group.component';\r\nimport { NgClass } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XImagePrefix}`,\r\n standalone: true,\r\n imports: [NgClass, XIconComponent, XOutletDirective],\r\n templateUrl: './image.component.html',\r\n styleUrls: ['./image.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageComponent extends XImageProperty implements OnInit, OnDestroy {\r\n private dialog = inject(XDialogService);\r\n private i18n = inject(XI18nService);\r\n private group = inject(XImageGroupComponent, { optional: true });\r\n configService = inject(XConfigService);\r\n isError = signal(false);\r\n isLoaded = signal(false);\r\n\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.image!)), { initialValue: zh_CN.image });\r\n\r\n previewTextSignal = computed(() => {\r\n return this.previewText() || this.locale().previewText;\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(\r\n () => {\r\n this.src();\r\n this.isLoaded.set(false);\r\n },\r\n { allowSignalWrites: true }\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.group && this.group.addImage(this);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.group && this.group.removeImage(this);\r\n }\r\n\r\n onPreview() {\r\n let data: XImageNode[] = [];\r\n if (this.group) {\r\n const activatedIndex = this.group.images().indexOf(this);\r\n data = this.group.images().map((x, index) => ({\r\n src: x.src(),\r\n alt: x.alt(),\r\n fallback: x.fallback(),\r\n activated: index === activatedIndex\r\n }));\r\n } else {\r\n data = [{ src: this.src(), alt: this.alt(), fallback: this.fallback() }];\r\n }\r\n this.dialog.create(XImagePreviewComponent, {\r\n width: '100%',\r\n height: '100%',\r\n className: 'x-image-preview-portal',\r\n data\r\n });\r\n }\r\n\r\n onError(event: ErrorEvent) {\r\n this.isError.set(true);\r\n this.error.emit(event);\r\n }\r\n\r\n onLoad(event: Event) {\r\n this.isLoaded.set(true);\r\n this.isError.set(false);\r\n this.load.emit(event);\r\n }\r\n}\r\n","<div class=\"x-image\">\r\n <img\r\n [hidden]=\"(placeholder() && !isLoaded()) || isError()\"\r\n class=\"x-image-img\"\r\n [src]=\"src()\"\r\n [style.width]=\"width()\"\r\n [style.height]=\"height()\"\r\n [attr.alt]=\"alt()\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n @if (placeholder() && !isLoaded()) {\r\n <img class=\"x-image-img\" [src]=\"placeholder()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && fallback()) {\r\n <img class=\"x-image-img\" [src]=\"fallback()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && !fallback()) {\r\n <div class=\"x-image-error-icon\" [style.width]=\"width()\" [style.height]=\"height()\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n }\r\n <ng-container *xOutlet=\"previewTpl(); context: { $image: this }\">\r\n @if (!isError()) {\r\n <div class=\"x-image-overlay\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ previewTextSignal() }}</span>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XImageGroupComponent } from './image-group.component';\r\n\r\n@NgModule({\r\n exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent],\r\n imports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent]\r\n})\r\nexport class XImageModule {}\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-image.mjs","sources":["../../../../lib/ng-nest/ui/image/image.property.ts","../../../../lib/ng-nest/ui/image/image-preview.component.ts","../../../../lib/ng-nest/ui/image/image-preview.component.html","../../../../lib/ng-nest/ui/image/image-group.component.ts","../../../../lib/ng-nest/ui/image/image-group.component.html","../../../../lib/ng-nest/ui/image/image.component.ts","../../../../lib/ng-nest/ui/image/image.component.html","../../../../lib/ng-nest/ui/image/image.module.ts","../../../../lib/ng-nest/ui/image/ng-nest-ui-image.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\r\nimport { XProperty, XPropertyFunction, XToCssPixelValue } from '@ng-nest/ui/core';\r\nimport type { XNumber, XTemplate } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Image\r\n * @selector x-image\r\n * @decorator component\r\n */\r\nexport const XImagePrefix = 'x-image';\r\nconst X_IMAGE_CONFIG_NAME = 'image';\r\n\r\n/**\r\n * Image Property\r\n */\r\n@Component({ selector: `${XImagePrefix}-property`, template: '' })\r\nexport class XImageProperty extends XPropertyFunction(X_IMAGE_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly src = input<string>();\r\n /**\r\n * @zh_CN 图片宽度\r\n * @en_US Picture width\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly width = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 图片高度\r\n * @en_US Picture height\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly height = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * alt=\"ng-nest-admin-light\"\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly alt = input<string>();\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"error\"\r\n * fallback=\"data:image/png;base64,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\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly fallback = input<string>();\r\n /**\r\n * @zh_CN 预览文字\r\n * @en_US Preview text\r\n * @default '预览'\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * previewText=\"查看\"\r\n * ></x-image>\r\n * ```\r\n *\r\n */\r\n readonly previewText = input<string>(this.config?.previewText!);\r\n /**\r\n * @zh_CN 渐进加载显示的图片地址\r\n * @en_US Progressive loading image addresses\r\n */\r\n readonly placeholder = input<string>();\r\n /**\r\n * @zh_CN 自定义预览操作\r\n * @en_US Custom preview operation\r\n */\r\n readonly previewTpl = input<XTemplate>();\r\n /**\r\n * @zh_CN 图片加载错误\r\n * @en_US Picture load failed\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"error\"\r\n * (error)=\"onError($event)\"\r\n * ></x-image>\r\n * ```\r\n *\r\n * ```typescript\r\n * onError(event: ErrorEvent) {\r\n * console.log(event)\r\n * }\r\n * ```\r\n *\r\n */\r\n readonly error = output<ErrorEvent>();\r\n /**\r\n * @zh_CN 图片加载完成\r\n * @en_US Picture loading complete\r\n * @example\r\n *\r\n * ```html\r\n * <x-image\r\n * width=\"100px\"\r\n * height=\"100px\"\r\n * src=\"https://ngnest.com/static/docs/course/rbac/1-introduction/demo/1__ng-nest-admin/light.png\"\r\n * (load)=\"onLoad($event)\"\r\n * ></x-image>\r\n * ```\r\n *\r\n * ```typescript\r\n * onLoad(event: Event) {\r\n * console.log(event)\r\n * }\r\n * ```\r\n *\r\n */\r\n readonly load = output<Event>();\r\n}\r\n\r\n/**\r\n * @zh_CN 图片节点数据\r\n * @en_US Image node data\r\n */\r\nexport interface XImageNode {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n src?: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n alt?: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n fallback?: string;\r\n /**\r\n * @zh_CN 当前激活的图片\r\n * @en_US Current activated pictures\r\n */\r\n activated?: boolean;\r\n}\r\n\r\n/**\r\n * Image Preview\r\n * @selector x-image-preview\r\n * @decorator component\r\n */\r\nexport const XImagePreviewPrefix = 'x-image-preview';\r\n\r\n/**\r\n * Image Preview Property\r\n */\r\n@Component({ selector: `${XImagePreviewPrefix}-property`, template: '' })\r\nexport class XImagePreviewProperty extends XProperty {}\r\n\r\n/**\r\n * Image Group\r\n * @selector x-image-group\r\n * @decorator component\r\n */\r\nexport const XImageGroupPrefix = 'x-image-group';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n inject,\r\n OnInit,\r\n signal,\r\n computed,\r\n viewChild\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePreviewPrefix, XImagePreviewProperty } from './image.property';\r\nimport { XDialogCloseDirective, X_DIALOG_DATA } from '@ng-nest/ui/dialog';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\n\r\n@Component({\r\n selector: `${XImagePreviewPrefix}`,\r\n imports: [XIconComponent, DragDropModule, XDialogCloseDirective],\r\n templateUrl: './image-preview.component.html',\r\n styleUrls: ['./image-preview.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImagePreviewComponent extends XImagePreviewProperty implements OnInit {\r\n imgScale3d = signal({\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n });\r\n rotate = signal(0);\r\n\r\n position = signal({\r\n x: 0,\r\n y: 0\r\n });\r\n\r\n activated = signal<XImageNode | undefined>(undefined);\r\n total = signal(1);\r\n current = signal(1);\r\n\r\n private document = inject(DOCUMENT);\r\n\r\n wrapperTransform = computed(() => {\r\n return `translate3d(${this.position().x}px, ${this.position().y}px, 0)`;\r\n });\r\n imgTransform = computed(() => {\r\n return `scale3d(${this.imgScale3d().x}, ${this.imgScale3d().y}, ${this.imgScale3d().z}) rotate(${this.rotate()}deg)`;\r\n });\r\n\r\n imageRef = viewChild.required<ElementRef<HTMLImageElement>>('imageRef');\r\n\r\n data = inject<XImageNode[]>(X_DIALOG_DATA);\r\n\r\n ngOnInit() {\r\n this.setActivated();\r\n }\r\n\r\n initialization() {\r\n this.imgScale3d.set({\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n });\r\n this.rotate.set(0);\r\n this.position.set({\r\n x: 0,\r\n y: 0\r\n });\r\n }\r\n\r\n setActivated() {\r\n if (!this.data) return;\r\n if (this.data.length === 1) {\r\n this.activated.set(this.data[0]);\r\n this.total.set(1);\r\n this.current.set(1);\r\n } else {\r\n this.total.set(this.data.length);\r\n this.activated.set(\r\n this.data.find((x, index) => {\r\n if (x.activated) {\r\n this.current.set(index + 1);\r\n return true;\r\n }\r\n return false;\r\n })\r\n );\r\n }\r\n }\r\n\r\n onCurrentChange(num: number) {\r\n this.current.update((x) => x + num);\r\n this.activated.set(this.data[this.current() - 1]);\r\n this.initialization();\r\n }\r\n\r\n onRotate(deg: number) {\r\n this.rotate.update((x) => x + deg);\r\n }\r\n\r\n onScale(zoom: number) {\r\n this.imgScale3d.update((item) => {\r\n item.x += zoom;\r\n item.y += zoom;\r\n return { ...item };\r\n });\r\n }\r\n\r\n onDragReleased() {\r\n let width = this.imageRef().nativeElement.offsetWidth * this.imgScale3d().x;\r\n let height = this.imageRef().nativeElement.offsetHeight * this.imgScale3d().x;\r\n const clientWidth = this.document.documentElement.clientWidth;\r\n const clientHeight = this.document.defaultView?.innerHeight || this.document.documentElement.clientHeight;\r\n const isRotate = this.rotate() % 180 !== 0;\r\n const box = this.imageRef().nativeElement.getBoundingClientRect();\r\n const docElem = this.document.documentElement;\r\n const left =\r\n box.left +\r\n (this.document.defaultView?.pageXOffset || docElem.scrollLeft) -\r\n (docElem.clientLeft || this.document.body.clientLeft || 0);\r\n const top =\r\n box.top +\r\n (this.document.defaultView?.pageYOffset || docElem.scrollTop) -\r\n (docElem.clientTop || this.document.body.clientTop || 0);\r\n width = isRotate ? height : width;\r\n height = isRotate ? width : height;\r\n\r\n let position = { x: 0, y: 0 };\r\n if (width > clientWidth || height > clientHeight) {\r\n const x = this.fitPoint(left, width, clientWidth);\r\n const y = this.fitPoint(top, height, clientHeight);\r\n position.x = x ? x : 0;\r\n position.y = y ? y : 0;\r\n }\r\n\r\n this.position.update((x) => ({ ...x, ...position }));\r\n }\r\n\r\n fitPoint(start: number, size: number, clientSize: number): number | null {\r\n const startAddSize = start + size;\r\n const offsetStart = (size - clientSize) / 2;\r\n let distance: number | null = null;\r\n\r\n if (size > clientSize) {\r\n if (start > 0) {\r\n distance = offsetStart;\r\n }\r\n if (start < 0 && startAddSize < clientSize) {\r\n distance = -offsetStart;\r\n }\r\n } else {\r\n if (start < 0 || startAddSize > clientSize) {\r\n distance = start < 0 ? offsetStart : -offsetStart;\r\n }\r\n }\r\n\r\n return distance;\r\n }\r\n}\r\n","<div class=\"x-image-preview\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n @if (total() != 1) {\r\n <span class=\"x-image-preview-current\">{{ current() }} / {{ total() }}</span>\r\n }\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon\r\n type=\"fto-zoom-out\"\r\n [class.x-image-preview-disabled]=\"imgScale3d().x === 1\"\r\n (click)=\"imgScale3d().x > 1 && onScale(-1)\"\r\n ></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"wrapperTransform()\"\r\n [cdkDragFreeDragPosition]=\"position()\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img\r\n #imageRef\r\n [src]=\"activated()?.src!\"\r\n [attr.alt]=\"activated()?.alt!\"\r\n cdkDragHandle\r\n [style.transform]=\"imgTransform()\"\r\n />\r\n </div>\r\n @if (data && data.length > 1) {\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current() > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n [class.x-image-preview-disabled]=\"current() === total()\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current() != total() && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy, signal } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImageGroupPrefix } from './image.property';\r\n\r\n@Component({\r\n selector: `${XImageGroupPrefix}`,\r\n templateUrl: './image-group.component.html',\r\n styleUrls: ['./image-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageGroupComponent {\r\n images = signal<XImageComponent[]>([]);\r\n\r\n addImage(image: XImageComponent): void {\r\n this.images.update((x) => {\r\n x.push(image);\r\n return [...x];\r\n });\r\n }\r\n\r\n removeImage(image: XImageComponent): void {\r\n this.images.update((x) => {\r\n x.splice(x.indexOf(image), 1);\r\n return [...x];\r\n });\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n inject,\r\n computed,\r\n signal,\r\n OnDestroy,\r\n effect\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePrefix, XImageProperty } from './image.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\nimport { XDialogService } from '@ng-nest/ui/dialog';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { map } from 'rxjs';\r\nimport { XImageGroupComponent } from './image-group.component';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\nimport { XOutletDirective } from '@ng-nest/ui/outlet';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: `${XImagePrefix}`,\r\n imports: [XIconComponent, XOutletDirective],\r\n templateUrl: './image.component.html',\r\n styleUrls: ['./image.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageComponent extends XImageProperty implements OnInit, OnDestroy {\r\n private dialog = inject(XDialogService);\r\n private i18n = inject(XI18nService);\r\n private group = inject(XImageGroupComponent, { optional: true });\r\n configService = inject(XConfigService);\r\n isError = signal(false);\r\n isLoaded = signal(false);\r\n\r\n locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.image!)), { initialValue: zh_CN.image });\r\n\r\n previewTextSignal = computed(() => {\r\n return this.previewText() || this.locale().previewText;\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n this.src();\r\n this.isLoaded.set(false);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.group && this.group.addImage(this);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.group && this.group.removeImage(this);\r\n }\r\n\r\n onPreview() {\r\n let data: XImageNode[] = [];\r\n if (this.group) {\r\n const activatedIndex = this.group.images().indexOf(this);\r\n data = this.group.images().map((x, index) => ({\r\n src: x.src(),\r\n alt: x.alt(),\r\n fallback: x.fallback(),\r\n activated: index === activatedIndex\r\n }));\r\n } else {\r\n data = [{ src: this.src(), alt: this.alt(), fallback: this.fallback() }];\r\n }\r\n this.dialog.create(XImagePreviewComponent, {\r\n width: '100%',\r\n height: '100%',\r\n className: 'x-image-preview-portal',\r\n data\r\n });\r\n }\r\n\r\n onError(event: ErrorEvent) {\r\n this.isError.set(true);\r\n this.error.emit(event);\r\n }\r\n\r\n onLoad(event: Event) {\r\n this.isLoaded.set(true);\r\n this.isError.set(false);\r\n this.load.emit(event);\r\n }\r\n}\r\n","<div class=\"x-image\">\r\n <img\r\n [hidden]=\"(placeholder() && !isLoaded()) || isError()\"\r\n class=\"x-image-img\"\r\n [src]=\"src()\"\r\n [style.width]=\"width()\"\r\n [style.height]=\"height()\"\r\n [attr.alt]=\"alt()\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n @if (placeholder() && !isLoaded()) {\r\n <img class=\"x-image-img\" [src]=\"placeholder()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && fallback()) {\r\n <img class=\"x-image-img\" [src]=\"fallback()\" [style.width]=\"width()\" [style.height]=\"height()\" />\r\n }\r\n @if (isError() && !fallback()) {\r\n <div class=\"x-image-error-icon\" [style.width]=\"width()\" [style.height]=\"height()\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n }\r\n <ng-container *xOutlet=\"previewTpl(); context: { $image: this }\">\r\n @if (!isError()) {\r\n <div class=\"x-image-overlay\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ previewTextSignal() }}</span>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XImageGroupComponent } from './image-group.component';\r\n\r\n@NgModule({\r\n exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent],\r\n imports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent]\r\n})\r\nexport class XImageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}