@ng-nest/ui 19.0.13 → 20.0.1

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 (707) hide show
  1. package/README.md +1 -1
  2. package/affix/index.d.ts +58 -3
  3. package/alert/index.d.ts +424 -3
  4. package/anchor/index.d.ts +186 -3
  5. package/api/index.d.ts +20 -3
  6. package/auto-complete/index.d.ts +454 -3
  7. package/avatar/index.d.ts +198 -3
  8. package/back-top/index.d.ts +75 -3
  9. package/badge/index.d.ts +153 -3
  10. package/base-form/index.d.ts +248 -3
  11. package/button/index.d.ts +380 -3
  12. package/calendar/index.d.ts +194 -3
  13. package/card/index.d.ts +99 -3
  14. package/carousel/index.d.ts +328 -3
  15. package/cascade/index.d.ts +459 -3
  16. package/checkbox/index.d.ts +351 -3
  17. package/collapse/index.d.ts +198 -3
  18. package/color/index.d.ts +80 -3
  19. package/color-picker/index.d.ts +484 -3
  20. package/comment/index.d.ts +158 -3
  21. package/container/index.d.ts +143 -3
  22. package/core/index.d.ts +1900 -3
  23. package/crumb/index.d.ts +91 -3
  24. package/date-picker/index.d.ts +2081 -3
  25. package/description/index.d.ts +234 -3
  26. package/dialog/index.d.ts +524 -3
  27. package/doc/index.d.ts +20 -3
  28. package/drag/index.d.ts +45 -3
  29. package/drawer/index.d.ts +244 -3
  30. package/dropdown/index.d.ts +201 -3
  31. package/empty/index.d.ts +60 -3
  32. package/examples/index.d.ts +20 -3
  33. package/fesm2022/ng-nest-ui-affix.mjs +11 -11
  34. package/fesm2022/ng-nest-ui-alert.mjs +11 -11
  35. package/fesm2022/ng-nest-ui-anchor.mjs +17 -17
  36. package/fesm2022/ng-nest-ui-api.mjs +8 -8
  37. package/fesm2022/ng-nest-ui-auto-complete.mjs +14 -14
  38. package/fesm2022/ng-nest-ui-avatar.mjs +17 -17
  39. package/fesm2022/ng-nest-ui-back-top.mjs +12 -11
  40. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  41. package/fesm2022/ng-nest-ui-badge.mjs +11 -11
  42. package/fesm2022/ng-nest-ui-base-form.mjs +7 -9
  43. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  44. package/fesm2022/ng-nest-ui-button.mjs +18 -18
  45. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  46. package/fesm2022/ng-nest-ui-calendar.mjs +11 -11
  47. package/fesm2022/ng-nest-ui-card.mjs +11 -11
  48. package/fesm2022/ng-nest-ui-carousel.mjs +17 -17
  49. package/fesm2022/ng-nest-ui-cascade.mjs +15 -14
  50. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  51. package/fesm2022/ng-nest-ui-checkbox.mjs +11 -11
  52. package/fesm2022/ng-nest-ui-collapse.mjs +18 -17
  53. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  54. package/fesm2022/ng-nest-ui-color-picker.mjs +17 -17
  55. package/fesm2022/ng-nest-ui-color.mjs +11 -11
  56. package/fesm2022/ng-nest-ui-comment.mjs +17 -17
  57. package/fesm2022/ng-nest-ui-container.mjs +32 -32
  58. package/fesm2022/ng-nest-ui-core.mjs +19 -19
  59. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  60. package/fesm2022/ng-nest-ui-crumb.mjs +11 -11
  61. package/fesm2022/ng-nest-ui-date-picker.mjs +50 -50
  62. package/fesm2022/ng-nest-ui-description.mjs +17 -17
  63. package/fesm2022/ng-nest-ui-dialog.mjs +41 -41
  64. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  65. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  66. package/fesm2022/ng-nest-ui-drawer.mjs +32 -32
  67. package/fesm2022/ng-nest-ui-dropdown.mjs +14 -14
  68. package/fesm2022/ng-nest-ui-empty.mjs +11 -11
  69. package/fesm2022/ng-nest-ui-examples.mjs +8 -8
  70. package/fesm2022/ng-nest-ui-find.mjs +11 -11
  71. package/fesm2022/ng-nest-ui-form.mjs +20 -21
  72. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  73. package/fesm2022/ng-nest-ui-highlight.mjs +14 -14
  74. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  75. package/fesm2022/ng-nest-ui-icon.mjs +28 -20
  76. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  77. package/fesm2022/ng-nest-ui-image.mjs +20 -20
  78. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  79. package/fesm2022/ng-nest-ui-input-number.mjs +11 -11
  80. package/fesm2022/ng-nest-ui-input.mjs +17 -17
  81. package/fesm2022/ng-nest-ui-keyword.mjs +10 -10
  82. package/fesm2022/ng-nest-ui-layout.mjs +17 -17
  83. package/fesm2022/ng-nest-ui-link.mjs +11 -11
  84. package/fesm2022/ng-nest-ui-list.mjs +26 -26
  85. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-loading.mjs +11 -11
  87. package/fesm2022/ng-nest-ui-menu.mjs +17 -17
  88. package/fesm2022/ng-nest-ui-message-box.mjs +11 -11
  89. package/fesm2022/ng-nest-ui-message.mjs +11 -11
  90. package/fesm2022/ng-nest-ui-notification.mjs +11 -11
  91. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  92. package/fesm2022/ng-nest-ui-page-header.mjs +11 -11
  93. package/fesm2022/ng-nest-ui-pagination.mjs +12 -22
  94. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  95. package/fesm2022/ng-nest-ui-pattern.mjs +8 -8
  96. package/fesm2022/ng-nest-ui-popconfirm.mjs +11 -11
  97. package/fesm2022/ng-nest-ui-popover.mjs +14 -14
  98. package/fesm2022/ng-nest-ui-portal.mjs +8 -8
  99. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-progress.mjs +11 -11
  101. package/fesm2022/ng-nest-ui-radio.mjs +11 -11
  102. package/fesm2022/ng-nest-ui-rate.mjs +11 -11
  103. package/fesm2022/ng-nest-ui-resizable.mjs +11 -11
  104. package/fesm2022/ng-nest-ui-result.mjs +11 -11
  105. package/fesm2022/ng-nest-ui-ripple.mjs +10 -10
  106. package/fesm2022/ng-nest-ui-select.mjs +14 -14
  107. package/fesm2022/ng-nest-ui-skeleton.mjs +11 -11
  108. package/fesm2022/ng-nest-ui-slider-select.mjs +11 -11
  109. package/fesm2022/ng-nest-ui-slider.mjs +11 -11
  110. package/fesm2022/ng-nest-ui-statistic.mjs +17 -17
  111. package/fesm2022/ng-nest-ui-steps.mjs +11 -11
  112. package/fesm2022/ng-nest-ui-switch.mjs +11 -11
  113. package/fesm2022/ng-nest-ui-table.mjs +29 -39
  114. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  115. package/fesm2022/ng-nest-ui-tabs.mjs +26 -26
  116. package/fesm2022/ng-nest-ui-tag.mjs +11 -11
  117. package/fesm2022/ng-nest-ui-text-retract.mjs +11 -11
  118. package/fesm2022/ng-nest-ui-textarea.mjs +11 -11
  119. package/fesm2022/ng-nest-ui-theme.mjs +11 -11
  120. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  121. package/fesm2022/ng-nest-ui-time-picker.mjs +17 -17
  122. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  123. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  124. package/fesm2022/ng-nest-ui-tooltip.mjs +14 -14
  125. package/fesm2022/ng-nest-ui-transfer.mjs +11 -11
  126. package/fesm2022/ng-nest-ui-tree-file.mjs +11 -11
  127. package/fesm2022/ng-nest-ui-tree-select.mjs +14 -14
  128. package/fesm2022/ng-nest-ui-tree.mjs +20 -20
  129. package/fesm2022/ng-nest-ui-typography.mjs +11 -11
  130. package/fesm2022/ng-nest-ui-upload.mjs +14 -14
  131. package/find/index.d.ts +625 -3
  132. package/form/index.d.ts +556 -3
  133. package/highlight/index.d.ts +107 -3
  134. package/i18n/index.d.ts +9399 -3
  135. package/icon/index.d.ts +135 -3
  136. package/image/index.d.ts +282 -3
  137. package/index.d.ts +0 -21
  138. package/inner/index.d.ts +38 -3
  139. package/input/index.d.ts +615 -3
  140. package/input-number/index.d.ts +352 -3
  141. package/keyword/index.d.ts +61 -3
  142. package/layout/index.d.ts +171 -3
  143. package/link/index.d.ts +128 -3
  144. package/list/index.d.ts +482 -3
  145. package/loading/index.d.ts +92 -3
  146. package/menu/index.d.ts +206 -3
  147. package/message/index.d.ts +192 -3
  148. package/message-box/index.d.ts +234 -3
  149. package/notification/index.d.ts +136 -3
  150. package/outlet/index.d.ts +28 -3
  151. package/package.json +18 -18
  152. package/page-header/index.d.ts +61 -3
  153. package/pagination/index.d.ts +212 -3
  154. package/pattern/index.d.ts +20 -3
  155. package/popconfirm/index.d.ts +124 -3
  156. package/popover/index.d.ts +163 -3
  157. package/portal/index.d.ts +157 -3
  158. package/progress/index.d.ts +191 -3
  159. package/radio/index.d.ts +313 -3
  160. package/rate/index.d.ts +231 -3
  161. package/resizable/index.d.ts +155 -3
  162. package/result/index.d.ts +61 -3
  163. package/ripple/index.d.ts +67 -3
  164. package/select/index.d.ts +635 -3
  165. package/skeleton/index.d.ts +132 -3
  166. package/slider/index.d.ts +188 -3
  167. package/slider-select/index.d.ts +386 -3
  168. package/statistic/index.d.ts +129 -3
  169. package/steps/index.d.ts +101 -3
  170. package/switch/index.d.ts +223 -3
  171. package/table/index.d.ts +1076 -3
  172. package/tabs/index.d.ts +238 -3
  173. package/tag/index.d.ts +99 -3
  174. package/text-retract/index.d.ts +45 -3
  175. package/textarea/index.d.ts +340 -3
  176. package/theme/index.d.ts +152 -3
  177. package/time-ago/index.d.ts +32 -3
  178. package/time-picker/index.d.ts +615 -3
  179. package/time-range/index.d.ts +24 -3
  180. package/timeline/index.d.ts +108 -3
  181. package/tooltip/index.d.ts +154 -3
  182. package/transfer/index.d.ts +340 -3
  183. package/tree/index.d.ts +601 -3
  184. package/tree-file/index.d.ts +167 -3
  185. package/tree-select/index.d.ts +642 -3
  186. package/typography/index.d.ts +42 -3
  187. package/upload/index.d.ts +304 -3
  188. package/affix/affix.component.d.ts +0 -6
  189. package/affix/affix.module.d.ts +0 -7
  190. package/affix/affix.property.d.ts +0 -46
  191. package/affix/public-api.d.ts +0 -3
  192. package/alert/alert.component.d.ts +0 -21
  193. package/alert/alert.module.d.ts +0 -7
  194. package/alert/alert.property.d.ts +0 -396
  195. package/alert/public-api.d.ts +0 -3
  196. package/anchor/anchor-inner.component.d.ts +0 -6
  197. package/anchor/anchor.component.d.ts +0 -38
  198. package/anchor/anchor.module.d.ts +0 -8
  199. package/anchor/anchor.property.d.ts +0 -136
  200. package/anchor/public-api.d.ts +0 -4
  201. package/api/api.component.d.ts +0 -6
  202. package/api/api.module.d.ts +0 -7
  203. package/api/api.property.d.ts +0 -6
  204. package/api/public-api.d.ts +0 -3
  205. package/auto-complete/auto-complete-portal.component.d.ts +0 -35
  206. package/auto-complete/auto-complete.component.d.ts +0 -54
  207. package/auto-complete/auto-complete.module.d.ts +0 -7
  208. package/auto-complete/auto-complete.property.d.ts +0 -365
  209. package/auto-complete/public-api.d.ts +0 -4
  210. package/avatar/avatar-group.component.d.ts +0 -7
  211. package/avatar/avatar.component.d.ts +0 -37
  212. package/avatar/avatar.module.d.ts +0 -8
  213. package/avatar/avatar.property.d.ts +0 -149
  214. package/avatar/public-api.d.ts +0 -4
  215. package/back-top/back-top.component.d.ts +0 -25
  216. package/back-top/back-top.module.d.ts +0 -7
  217. package/back-top/back-top.property.d.ts +0 -45
  218. package/back-top/public-api.d.ts +0 -3
  219. package/badge/badge.component.d.ts +0 -14
  220. package/badge/badge.module.d.ts +0 -7
  221. package/badge/badge.property.d.ts +0 -132
  222. package/badge/public-api.d.ts +0 -3
  223. package/base-form/base-form.component.d.ts +0 -61
  224. package/base-form/base-form.module.d.ts +0 -6
  225. package/base-form/base-form.property.d.ts +0 -180
  226. package/base-form/public-api.d.ts +0 -3
  227. package/button/button.component.d.ts +0 -25
  228. package/button/button.module.d.ts +0 -8
  229. package/button/button.property.d.ts +0 -336
  230. package/button/buttons.component.d.ts +0 -13
  231. package/button/public-api.d.ts +0 -4
  232. package/calendar/calendar.component.d.ts +0 -55
  233. package/calendar/calendar.module.d.ts +0 -7
  234. package/calendar/calendar.property.d.ts +0 -132
  235. package/calendar/public-api.d.ts +0 -3
  236. package/card/card.component.d.ts +0 -9
  237. package/card/card.module.d.ts +0 -7
  238. package/card/card.property.d.ts +0 -83
  239. package/card/public-api.d.ts +0 -3
  240. package/carousel/carousel-panel.component.d.ts +0 -34
  241. package/carousel/carousel.component.d.ts +0 -33
  242. package/carousel/carousel.module.d.ts +0 -8
  243. package/carousel/carousel.property.d.ts +0 -259
  244. package/carousel/public-api.d.ts +0 -4
  245. package/cascade/cascade-portal.component.d.ts +0 -41
  246. package/cascade/cascade.component.d.ts +0 -56
  247. package/cascade/cascade.module.d.ts +0 -7
  248. package/cascade/cascade.property.d.ts +0 -360
  249. package/cascade/public-api.d.ts +0 -4
  250. package/checkbox/checkbox.component.d.ts +0 -26
  251. package/checkbox/checkbox.module.d.ts +0 -7
  252. package/checkbox/checkbox.property.d.ts +0 -320
  253. package/checkbox/public-api.d.ts +0 -3
  254. package/collapse/collapse-panel.component.d.ts +0 -16
  255. package/collapse/collapse.component.d.ts +0 -10
  256. package/collapse/collapse.module.d.ts +0 -8
  257. package/collapse/collapse.property.d.ts +0 -168
  258. package/collapse/public-api.d.ts +0 -4
  259. package/color/color.component.d.ts +0 -10
  260. package/color/color.module.d.ts +0 -7
  261. package/color/color.property.d.ts +0 -64
  262. package/color/public-api.d.ts +0 -3
  263. package/color-picker/color-map.data.d.ts +0 -3
  264. package/color-picker/color-picker-portal.component.d.ts +0 -118
  265. package/color-picker/color-picker.component.d.ts +0 -53
  266. package/color-picker/color-picker.directive.d.ts +0 -9
  267. package/color-picker/color-picker.module.d.ts +0 -8
  268. package/color-picker/color-picker.property.d.ts +0 -304
  269. package/color-picker/public-api.d.ts +0 -5
  270. package/comment/comment-reply.component.d.ts +0 -8
  271. package/comment/comment.component.d.ts +0 -14
  272. package/comment/comment.module.d.ts +0 -8
  273. package/comment/comment.property.d.ts +0 -131
  274. package/comment/public-api.d.ts +0 -4
  275. package/container/aside.component.d.ts +0 -8
  276. package/container/container.component.d.ts +0 -10
  277. package/container/container.module.d.ts +0 -11
  278. package/container/container.property.d.ts +0 -94
  279. package/container/footer.component.d.ts +0 -12
  280. package/container/header.component.d.ts +0 -12
  281. package/container/main.component.d.ts +0 -6
  282. package/container/public-api.d.ts +0 -7
  283. package/core/README.md +0 -25
  284. package/core/animation/badge.d.ts +0 -11
  285. package/core/animation/connect.d.ts +0 -11
  286. package/core/animation/consts.d.ts +0 -9
  287. package/core/animation/drop.d.ts +0 -6
  288. package/core/animation/fade.d.ts +0 -6
  289. package/core/animation/move.d.ts +0 -7
  290. package/core/animation/opacity.d.ts +0 -6
  291. package/core/animation/public-api.d.ts +0 -8
  292. package/core/animation/slide.d.ts +0 -6
  293. package/core/components/inner-html.component.d.ts +0 -9
  294. package/core/components/public-api.d.ts +0 -1
  295. package/core/config/config.d.ts +0 -624
  296. package/core/config/config.service.d.ts +0 -22
  297. package/core/config/index.d.ts +0 -1
  298. package/core/config/public-api.d.ts +0 -2
  299. package/core/functions/chunk.d.ts +0 -12
  300. package/core/functions/clone-deep.d.ts +0 -17
  301. package/core/functions/convert.d.ts +0 -90
  302. package/core/functions/csspx.d.ts +0 -5
  303. package/core/functions/date.d.ts +0 -70
  304. package/core/functions/drop.d.ts +0 -13
  305. package/core/functions/flex.d.ts +0 -7
  306. package/core/functions/group-by.d.ts +0 -5
  307. package/core/functions/guid.d.ts +0 -5
  308. package/core/functions/has-in.d.ts +0 -5
  309. package/core/functions/order-by.d.ts +0 -5
  310. package/core/functions/parent-path.d.ts +0 -10
  311. package/core/functions/property.d.ts +0 -16
  312. package/core/functions/public-api.d.ts +0 -15
  313. package/core/functions/remove.d.ts +0 -5
  314. package/core/functions/resize.d.ts +0 -19
  315. package/core/interfaces/data.type.d.ts +0 -194
  316. package/core/interfaces/identify.type.d.ts +0 -83
  317. package/core/interfaces/index.d.ts +0 -1
  318. package/core/interfaces/layout.type.d.ts +0 -169
  319. package/core/interfaces/public-api.d.ts +0 -4
  320. package/core/interfaces/result-list.type.d.ts +0 -116
  321. package/core/public-api.d.ts +0 -8
  322. package/core/services/http.service.d.ts +0 -28
  323. package/core/services/preloading-strategy.service.d.ts +0 -9
  324. package/core/services/public-api.d.ts +0 -5
  325. package/core/services/repository.service.d.ts +0 -28
  326. package/core/services/reuse-strategy.service.d.ts +0 -17
  327. package/core/services/storage.service.d.ts +0 -15
  328. package/core/theme/index.d.ts +0 -1
  329. package/core/theme/public-api.d.ts +0 -2
  330. package/core/theme/theme.d.ts +0 -73
  331. package/core/theme/theme.service.d.ts +0 -76
  332. package/core/util/animation.d.ts +0 -1
  333. package/core/util/camel-to-kebab.d.ts +0 -13
  334. package/core/util/check.d.ts +0 -10
  335. package/core/util/computed-style.d.ts +0 -10
  336. package/core/util/host.d.ts +0 -5
  337. package/core/util/html.d.ts +0 -5
  338. package/core/util/index.d.ts +0 -1
  339. package/core/util/kebab-to-camel.d.ts +0 -13
  340. package/core/util/log.d.ts +0 -10
  341. package/core/util/option.d.ts +0 -9
  342. package/core/util/public-api.d.ts +0 -10
  343. package/core/util/sleep.d.ts +0 -5
  344. package/crumb/crumb.component.d.ts +0 -7
  345. package/crumb/crumb.module.d.ts +0 -7
  346. package/crumb/crumb.property.d.ts +0 -77
  347. package/crumb/public-api.d.ts +0 -3
  348. package/date-picker/date-picker-portal.component.d.ts +0 -104
  349. package/date-picker/date-picker.component.d.ts +0 -113
  350. package/date-picker/date-picker.module.d.ts +0 -8
  351. package/date-picker/date-picker.property.d.ts +0 -1316
  352. package/date-picker/date-quarter.pipe.d.ts +0 -9
  353. package/date-picker/date-range-portal.component.d.ts +0 -135
  354. package/date-picker/date-range.component.d.ts +0 -134
  355. package/date-picker/picker-date.component.d.ts +0 -97
  356. package/date-picker/picker-month.component.d.ts +0 -86
  357. package/date-picker/picker-quarter.component.d.ts +0 -86
  358. package/date-picker/picker-year.component.d.ts +0 -32
  359. package/date-picker/public-api.d.ts +0 -11
  360. package/description/description-item.component.d.ts +0 -8
  361. package/description/description.component.d.ts +0 -15
  362. package/description/description.module.d.ts +0 -8
  363. package/description/description.property.d.ts +0 -207
  364. package/description/public-api.d.ts +0 -4
  365. package/dialog/dialog-container.component.d.ts +0 -7
  366. package/dialog/dialog-portal.component.d.ts +0 -45
  367. package/dialog/dialog-portal.directives.d.ts +0 -36
  368. package/dialog/dialog-ref.d.ts +0 -23
  369. package/dialog/dialog.component.d.ts +0 -72
  370. package/dialog/dialog.module.d.ts +0 -9
  371. package/dialog/dialog.property.d.ts +0 -338
  372. package/dialog/dialog.service.d.ts +0 -20
  373. package/dialog/public-api.d.ts +0 -8
  374. package/doc/doc.component.d.ts +0 -6
  375. package/doc/doc.module.d.ts +0 -7
  376. package/doc/doc.property.d.ts +0 -6
  377. package/doc/public-api.d.ts +0 -3
  378. package/drag/drag.directive.d.ts +0 -13
  379. package/drag/drag.module.d.ts +0 -7
  380. package/drag/drag.property.d.ts +0 -25
  381. package/drag/public-api.d.ts +0 -3
  382. package/drawer/drawer-container.component.d.ts +0 -7
  383. package/drawer/drawer-portal.component.d.ts +0 -17
  384. package/drawer/drawer-portal.directives.d.ts +0 -18
  385. package/drawer/drawer-ref.d.ts +0 -9
  386. package/drawer/drawer.component.d.ts +0 -34
  387. package/drawer/drawer.module.d.ts +0 -9
  388. package/drawer/drawer.property.d.ts +0 -149
  389. package/drawer/drawer.service.d.ts +0 -17
  390. package/drawer/public-api.d.ts +0 -9
  391. package/dropdown/dropdown-portal.component.d.ts +0 -55
  392. package/dropdown/dropdown.component.d.ts +0 -42
  393. package/dropdown/dropdown.module.d.ts +0 -7
  394. package/dropdown/dropdown.property.d.ts +0 -102
  395. package/dropdown/public-api.d.ts +0 -4
  396. package/empty/empty.component.d.ts +0 -6
  397. package/empty/empty.module.d.ts +0 -7
  398. package/empty/empty.property.d.ts +0 -48
  399. package/empty/public-api.d.ts +0 -3
  400. package/examples/examples.component.d.ts +0 -6
  401. package/examples/examples.module.d.ts +0 -7
  402. package/examples/examples.property.d.ts +0 -6
  403. package/examples/public-api.d.ts +0 -3
  404. package/find/find.component.d.ts +0 -57
  405. package/find/find.module.d.ts +0 -7
  406. package/find/find.property.d.ts +0 -563
  407. package/find/public-api.d.ts +0 -3
  408. package/form/control.component.d.ts +0 -51
  409. package/form/form.component.d.ts +0 -25
  410. package/form/form.module.d.ts +0 -8
  411. package/form/form.property.d.ts +0 -494
  412. package/form/public-api.d.ts +0 -4
  413. package/highlight/highlight.component.d.ts +0 -19
  414. package/highlight/highlight.module.d.ts +0 -7
  415. package/highlight/highlight.property.d.ts +0 -72
  416. package/highlight/highlight.service.d.ts +0 -8
  417. package/highlight/public-api.d.ts +0 -4
  418. package/i18n/i18n.directive.d.ts +0 -11
  419. package/i18n/i18n.module.d.ts +0 -8
  420. package/i18n/i18n.pipe.d.ts +0 -12
  421. package/i18n/i18n.property.d.ts +0 -195
  422. package/i18n/i18n.service.d.ts +0 -17
  423. package/i18n/languages/ar_EG.d.ts +0 -180
  424. package/i18n/languages/bg_BG.d.ts +0 -180
  425. package/i18n/languages/ca_ES.d.ts +0 -180
  426. package/i18n/languages/cs_CZ.d.ts +0 -180
  427. package/i18n/languages/da_DK.d.ts +0 -180
  428. package/i18n/languages/de_DE.d.ts +0 -180
  429. package/i18n/languages/el_GR.d.ts +0 -180
  430. package/i18n/languages/en_GB.d.ts +0 -181
  431. package/i18n/languages/en_US.d.ts +0 -181
  432. package/i18n/languages/es_ES.d.ts +0 -180
  433. package/i18n/languages/et_EE.d.ts +0 -180
  434. package/i18n/languages/fa_IR.d.ts +0 -180
  435. package/i18n/languages/fi_FI.d.ts +0 -180
  436. package/i18n/languages/fr_BE.d.ts +0 -180
  437. package/i18n/languages/fr_FR.d.ts +0 -180
  438. package/i18n/languages/he_IL.d.ts +0 -180
  439. package/i18n/languages/hi_IN.d.ts +0 -180
  440. package/i18n/languages/hr_HR.d.ts +0 -180
  441. package/i18n/languages/hu_HU.d.ts +0 -180
  442. package/i18n/languages/hy_AM.d.ts +0 -180
  443. package/i18n/languages/id_ID.d.ts +0 -180
  444. package/i18n/languages/is_IS.d.ts +0 -180
  445. package/i18n/languages/it_IT.d.ts +0 -180
  446. package/i18n/languages/ja_JP.d.ts +0 -180
  447. package/i18n/languages/ka_GE.d.ts +0 -180
  448. package/i18n/languages/kn_IN.d.ts +0 -180
  449. package/i18n/languages/ko_KR.d.ts +0 -180
  450. package/i18n/languages/ku_IQ.d.ts +0 -156
  451. package/i18n/languages/lv_LV.d.ts +0 -180
  452. package/i18n/languages/mn_MN.d.ts +0 -180
  453. package/i18n/languages/ms_MY.d.ts +0 -180
  454. package/i18n/languages/nb_NO.d.ts +0 -180
  455. package/i18n/languages/ne_NP.d.ts +0 -180
  456. package/i18n/languages/nl_BE.d.ts +0 -180
  457. package/i18n/languages/nl_NL.d.ts +0 -180
  458. package/i18n/languages/pl_PL.d.ts +0 -180
  459. package/i18n/languages/pt_BR.d.ts +0 -180
  460. package/i18n/languages/pt_PT.d.ts +0 -180
  461. package/i18n/languages/ro_RO.d.ts +0 -180
  462. package/i18n/languages/ru_RU.d.ts +0 -180
  463. package/i18n/languages/sk_SK.d.ts +0 -179
  464. package/i18n/languages/sl_SI.d.ts +0 -180
  465. package/i18n/languages/sr_RS.d.ts +0 -180
  466. package/i18n/languages/sv_SE.d.ts +0 -180
  467. package/i18n/languages/ta_IN.d.ts +0 -180
  468. package/i18n/languages/th_TH.d.ts +0 -180
  469. package/i18n/languages/tr_TR.d.ts +0 -180
  470. package/i18n/languages/uk_UA.d.ts +0 -180
  471. package/i18n/languages/vi_VN.d.ts +0 -180
  472. package/i18n/languages/zh_CN.d.ts +0 -180
  473. package/i18n/languages/zh_TW.d.ts +0 -180
  474. package/i18n/public-api.d.ts +0 -56
  475. package/icon/icon.component.d.ts +0 -31
  476. package/icon/icon.module.d.ts +0 -7
  477. package/icon/icon.property.d.ts +0 -64
  478. package/icon/icon.service.d.ts +0 -33
  479. package/icon/public-api.d.ts +0 -4
  480. package/image/image-group.component.d.ts +0 -9
  481. package/image/image-preview.component.d.ts +0 -33
  482. package/image/image.component.d.ts +0 -24
  483. package/image/image.module.d.ts +0 -9
  484. package/image/image.property.d.ts +0 -213
  485. package/image/public-api.d.ts +0 -5
  486. package/inner/inner.component.d.ts +0 -8
  487. package/inner/inner.module.d.ts +0 -7
  488. package/inner/inner.property.d.ts +0 -24
  489. package/inner/public-api.d.ts +0 -3
  490. package/input/input-group.component.d.ts +0 -8
  491. package/input/input.component.d.ts +0 -52
  492. package/input/input.module.d.ts +0 -8
  493. package/input/input.property.d.ts +0 -553
  494. package/input/public-api.d.ts +0 -4
  495. package/input-number/input-number.component.d.ts +0 -35
  496. package/input-number/input-number.module.d.ts +0 -7
  497. package/input-number/input-number.property.d.ts +0 -313
  498. package/input-number/public-api.d.ts +0 -3
  499. package/keyword/keyword.directive.d.ts +0 -10
  500. package/keyword/keyword.module.d.ts +0 -7
  501. package/keyword/keyword.property.d.ts +0 -44
  502. package/keyword/public-api.d.ts +0 -3
  503. package/layout/col.component.d.ts +0 -14
  504. package/layout/layout.module.d.ts +0 -8
  505. package/layout/layout.property.d.ts +0 -139
  506. package/layout/public-api.d.ts +0 -4
  507. package/layout/row.component.d.ts +0 -13
  508. package/link/link.component.d.ts +0 -13
  509. package/link/link.module.d.ts +0 -7
  510. package/link/link.property.d.ts +0 -108
  511. package/link/public-api.d.ts +0 -3
  512. package/list/list-drop-group.directive.d.ts +0 -13
  513. package/list/list-option.component.d.ts +0 -18
  514. package/list/list.component.d.ts +0 -76
  515. package/list/list.module.d.ts +0 -9
  516. package/list/list.property.d.ts +0 -378
  517. package/list/public-api.d.ts +0 -5
  518. package/loading/loading.component.d.ts +0 -23
  519. package/loading/loading.module.d.ts +0 -7
  520. package/loading/loading.property.d.ts +0 -64
  521. package/loading/public-api.d.ts +0 -3
  522. package/menu/menu-node.component.d.ts +0 -19
  523. package/menu/menu.component.d.ts +0 -35
  524. package/menu/menu.module.d.ts +0 -8
  525. package/menu/menu.property.d.ts +0 -150
  526. package/menu/public-api.d.ts +0 -4
  527. package/message/README.md +0 -20
  528. package/message/message-ref.d.ts +0 -9
  529. package/message/message.component.d.ts +0 -15
  530. package/message/message.module.d.ts +0 -6
  531. package/message/message.property.d.ts +0 -137
  532. package/message/message.service.d.ts +0 -27
  533. package/message/public-api.d.ts +0 -5
  534. package/message-box/message-box.component.d.ts +0 -31
  535. package/message-box/message-box.module.d.ts +0 -6
  536. package/message-box/message-box.property.d.ts +0 -180
  537. package/message-box/message-box.service.d.ts +0 -17
  538. package/message-box/public-api.d.ts +0 -4
  539. package/notification/notification.component.d.ts +0 -15
  540. package/notification/notification.module.d.ts +0 -6
  541. package/notification/notification.property.d.ts +0 -96
  542. package/notification/notification.service.d.ts +0 -20
  543. package/notification/public-api.d.ts +0 -4
  544. package/outlet/outlet.directive.d.ts +0 -14
  545. package/outlet/outlet.module.d.ts +0 -7
  546. package/outlet/outlet.property.d.ts +0 -6
  547. package/outlet/public-api.d.ts +0 -3
  548. package/page-header/page-header.component.d.ts +0 -12
  549. package/page-header/page-header.module.d.ts +0 -7
  550. package/page-header/page-header.property.d.ts +0 -43
  551. package/page-header/public-api.d.ts +0 -3
  552. package/pagination/pagination.component.d.ts +0 -53
  553. package/pagination/pagination.module.d.ts +0 -7
  554. package/pagination/pagination.property.d.ts +0 -161
  555. package/pagination/public-api.d.ts +0 -3
  556. package/pattern/pattern.component.d.ts +0 -6
  557. package/pattern/pattern.module.d.ts +0 -7
  558. package/pattern/pattern.property.d.ts +0 -6
  559. package/pattern/public-api.d.ts +0 -3
  560. package/popconfirm/popconfirm.component.d.ts +0 -22
  561. package/popconfirm/popconfirm.module.d.ts +0 -7
  562. package/popconfirm/popconfirm.property.d.ts +0 -96
  563. package/popconfirm/public-api.d.ts +0 -3
  564. package/popover/popover-portal.component.d.ts +0 -23
  565. package/popover/popover.directive.d.ts +0 -34
  566. package/popover/popover.module.d.ts +0 -7
  567. package/popover/popover.property.d.ts +0 -103
  568. package/popover/public-api.d.ts +0 -4
  569. package/portal/portal.module.d.ts +0 -6
  570. package/portal/portal.property.d.ts +0 -76
  571. package/portal/portal.service.d.ts +0 -80
  572. package/portal/public-api.d.ts +0 -3
  573. package/progress/progress.component.d.ts +0 -39
  574. package/progress/progress.module.d.ts +0 -7
  575. package/progress/progress.property.d.ts +0 -147
  576. package/progress/public-api.d.ts +0 -3
  577. package/radio/public-api.d.ts +0 -3
  578. package/radio/radio.component.d.ts +0 -23
  579. package/radio/radio.module.d.ts +0 -7
  580. package/radio/radio.property.d.ts +0 -284
  581. package/rate/public-api.d.ts +0 -3
  582. package/rate/rate.component.d.ts +0 -26
  583. package/rate/rate.module.d.ts +0 -7
  584. package/rate/rate.property.d.ts +0 -200
  585. package/resizable/public-api.d.ts +0 -3
  586. package/resizable/resizable.directive.d.ts +0 -52
  587. package/resizable/resizable.module.d.ts +0 -7
  588. package/resizable/resizable.property.d.ts +0 -97
  589. package/result/public-api.d.ts +0 -3
  590. package/result/result.component.d.ts +0 -10
  591. package/result/result.module.d.ts +0 -7
  592. package/result/result.property.d.ts +0 -44
  593. package/ripple/public-api.d.ts +0 -3
  594. package/ripple/ripple.directive.d.ts +0 -21
  595. package/ripple/ripple.module.d.ts +0 -7
  596. package/ripple/ripple.property.d.ts +0 -39
  597. package/select/public-api.d.ts +0 -4
  598. package/select/select-portal.component.d.ts +0 -55
  599. package/select/select.component.d.ts +0 -108
  600. package/select/select.module.d.ts +0 -7
  601. package/select/select.property.d.ts +0 -474
  602. package/skeleton/public-api.d.ts +0 -3
  603. package/skeleton/skeleton.component.d.ts +0 -9
  604. package/skeleton/skeleton.module.d.ts +0 -7
  605. package/skeleton/skeleton.property.d.ts +0 -116
  606. package/slider/public-api.d.ts +0 -3
  607. package/slider/slider.component.d.ts +0 -62
  608. package/slider/slider.module.d.ts +0 -7
  609. package/slider/slider.property.d.ts +0 -121
  610. package/slider-select/public-api.d.ts +0 -3
  611. package/slider-select/slider-select.component.d.ts +0 -60
  612. package/slider-select/slider-select.module.d.ts +0 -7
  613. package/slider-select/slider-select.property.d.ts +0 -321
  614. package/statistic/countdown.component.d.ts +0 -21
  615. package/statistic/public-api.d.ts +0 -4
  616. package/statistic/statistic.component.d.ts +0 -8
  617. package/statistic/statistic.module.d.ts +0 -8
  618. package/statistic/statistic.property.d.ts +0 -95
  619. package/steps/public-api.d.ts +0 -3
  620. package/steps/steps.component.d.ts +0 -11
  621. package/steps/steps.module.d.ts +0 -7
  622. package/steps/steps.property.d.ts +0 -82
  623. package/switch/public-api.d.ts +0 -3
  624. package/switch/switch.component.d.ts +0 -15
  625. package/switch/switch.module.d.ts +0 -7
  626. package/switch/switch.property.d.ts +0 -202
  627. package/table/public-api.d.ts +0 -6
  628. package/table/table-body.component.d.ts +0 -48
  629. package/table/table-foot.component.d.ts +0 -15
  630. package/table/table-head.component.d.ts +0 -48
  631. package/table/table.component.d.ts +0 -106
  632. package/table/table.module.d.ts +0 -10
  633. package/table/table.property.d.ts +0 -879
  634. package/tabs/public-api.d.ts +0 -6
  635. package/tabs/tab-content.component.d.ts +0 -10
  636. package/tabs/tab-link.directive.d.ts +0 -17
  637. package/tabs/tab.component.d.ts +0 -11
  638. package/tabs/tabs.component.d.ts +0 -36
  639. package/tabs/tabs.module.d.ts +0 -9
  640. package/tabs/tabs.property.d.ts +0 -167
  641. package/tag/public-api.d.ts +0 -3
  642. package/tag/tag.component.d.ts +0 -17
  643. package/tag/tag.module.d.ts +0 -7
  644. package/tag/tag.property.d.ts +0 -76
  645. package/text-retract/public-api.d.ts +0 -3
  646. package/text-retract/text-retract.component.d.ts +0 -10
  647. package/text-retract/text-retract.module.d.ts +0 -7
  648. package/text-retract/text-retract.property.d.ts +0 -29
  649. package/textarea/public-api.d.ts +0 -3
  650. package/textarea/textarea.component.d.ts +0 -26
  651. package/textarea/textarea.module.d.ts +0 -7
  652. package/textarea/textarea.property.d.ts +0 -310
  653. package/theme/public-api.d.ts +0 -3
  654. package/theme/theme.component.d.ts +0 -47
  655. package/theme/theme.module.d.ts +0 -7
  656. package/theme/theme.property.d.ts +0 -101
  657. package/time-ago/public-api.d.ts +0 -3
  658. package/time-ago/time-ago.module.d.ts +0 -7
  659. package/time-ago/time-ago.pipe.d.ts +0 -17
  660. package/time-ago/time-ago.property.d.ts +0 -6
  661. package/time-picker/public-api.d.ts +0 -5
  662. package/time-picker/time-picker-frame.component.d.ts +0 -73
  663. package/time-picker/time-picker-portal.component.d.ts +0 -39
  664. package/time-picker/time-picker.component.d.ts +0 -64
  665. package/time-picker/time-picker.module.d.ts +0 -8
  666. package/time-picker/time-picker.property.d.ts +0 -442
  667. package/time-range/public-api.d.ts +0 -3
  668. package/time-range/time-range.module.d.ts +0 -7
  669. package/time-range/time-range.pipe.d.ts +0 -10
  670. package/time-range/time-range.property.d.ts +0 -6
  671. package/timeline/public-api.d.ts +0 -3
  672. package/timeline/timeline.component.d.ts +0 -11
  673. package/timeline/timeline.module.d.ts +0 -7
  674. package/timeline/timeline.property.d.ts +0 -90
  675. package/tooltip/public-api.d.ts +0 -4
  676. package/tooltip/tooltip-portal.component.d.ts +0 -34
  677. package/tooltip/tooltip.directive.d.ts +0 -36
  678. package/tooltip/tooltip.module.d.ts +0 -7
  679. package/tooltip/tooltip.property.d.ts +0 -81
  680. package/transfer/public-api.d.ts +0 -3
  681. package/transfer/transfer.component.d.ts +0 -72
  682. package/transfer/transfer.module.d.ts +0 -7
  683. package/transfer/transfer.property.d.ts +0 -264
  684. package/tree/public-api.d.ts +0 -4
  685. package/tree/tree-node.component.d.ts +0 -57
  686. package/tree/tree.component.d.ts +0 -77
  687. package/tree/tree.module.d.ts +0 -8
  688. package/tree/tree.property.d.ts +0 -460
  689. package/tree/tree.service.d.ts +0 -10
  690. package/tree-file/public-api.d.ts +0 -3
  691. package/tree-file/tree-file.component.d.ts +0 -24
  692. package/tree-file/tree-file.module.d.ts +0 -7
  693. package/tree-file/tree-file.property.d.ts +0 -138
  694. package/tree-select/public-api.d.ts +0 -4
  695. package/tree-select/tree-select-portal.component.d.ts +0 -46
  696. package/tree-select/tree-select.component.d.ts +0 -109
  697. package/tree-select/tree-select.module.d.ts +0 -7
  698. package/tree-select/tree-select.property.d.ts +0 -487
  699. package/typography/public-api.d.ts +0 -3
  700. package/typography/typography.component.d.ts +0 -11
  701. package/typography/typography.module.d.ts +0 -7
  702. package/typography/typography.property.d.ts +0 -25
  703. package/upload/public-api.d.ts +0 -4
  704. package/upload/upload-portal.component.d.ts +0 -48
  705. package/upload/upload.component.d.ts +0 -44
  706. package/upload/upload.module.d.ts +0 -7
  707. package/upload/upload.property.d.ts +0 -209
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, Component, inject, SecurityContext, Injectable, ElementRef, Renderer2, ChangeDetectorRef, computed, effect, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, NgModule } from '@angular/core';
2
+ import { input, Component, inject, SecurityContext, Injectable, ElementRef, Renderer2, ChangeDetectorRef, signal, computed, effect, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
3
3
  import { XPropertyFunction, XToBoolean, XHasIn, XIsEmpty, XWarnIconTypeNotFound, XWarnSVGTagNotFound } from '@ng-nest/ui/core';
4
4
  import { DomSanitizer } from '@angular/platform-browser';
5
5
  import { HttpClient } from '@angular/common/http';
@@ -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: "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 }); }
63
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", 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: "19.0.1", ngImport: i0, type: XIconProperty, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconProperty, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: `${XIconPrefix}-property`, template: '' }]
69
69
  }] });
@@ -146,10 +146,10 @@ class XIconService {
146
146
  register(icon, url) {
147
147
  this.customIcon[icon] = url;
148
148
  }
149
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
150
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconService, providedIn: 'root' }); }
149
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
150
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconService, providedIn: 'root' }); }
151
151
  }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconService, decorators: [{
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconService, decorators: [{
153
153
  type: Injectable,
154
154
  args: [{ providedIn: 'root' }]
155
155
  }], ctorParameters: () => [] });
@@ -174,9 +174,6 @@ const XViewBox = [
174
174
  // { souces: ["fto"], value: "0 0 24 24" }
175
175
  ];
176
176
  class XIconComponent extends XIconProperty {
177
- get className() {
178
- return `${XIconPrefix} ${this.type()}`;
179
- }
180
177
  get getSpin() {
181
178
  return this.spin();
182
179
  }
@@ -190,6 +187,8 @@ class XIconComponent extends XIconProperty {
190
187
  this.renderer = inject(Renderer2);
191
188
  this.cdr = inject(ChangeDetectorRef);
192
189
  this.iconService = inject(XIconService);
190
+ this.beforeClass = signal('');
191
+ this.hostClass = true;
193
192
  this.inSource = computed(() => {
194
193
  const type = this.type();
195
194
  if (typeof type === 'undefined' || type === '' || type === null)
@@ -224,6 +223,15 @@ class XIconComponent extends XIconProperty {
224
223
  this.iconService.getSvg(this.href(), this.sourceUrl()).subscribe((x) => this.setSvgs(x));
225
224
  }
226
225
  });
226
+ effect(() => {
227
+ if (this.elementRef.nativeElement && this.type()) {
228
+ if (this.beforeClass()) {
229
+ this.renderer.removeClass(this.elementRef.nativeElement, this.beforeClass());
230
+ }
231
+ this.renderer.addClass(this.elementRef.nativeElement, this.type());
232
+ this.beforeClass.set(this.type());
233
+ }
234
+ });
227
235
  }
228
236
  setSvgs(svg) {
229
237
  if (XIsEmpty(svg))
@@ -299,15 +307,15 @@ class XIconComponent extends XIconProperty {
299
307
  svg.setAttribute(attribute, def);
300
308
  }
301
309
  }
302
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
303
- /** @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;font-size:1rem}.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 }); }
310
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
311
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: XIconComponent, isStandalone: true, selector: "x-icon", host: { properties: { "class.x-icon": "this.hostClass", "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-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}x-icon{display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
304
312
  }
305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconComponent, decorators: [{
313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconComponent, decorators: [{
306
314
  type: Component,
307
- 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;font-size:1rem}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}\n"] }]
308
- }], ctorParameters: () => [], propDecorators: { className: [{
315
+ args: [{ selector: `${XIconPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n", styles: ["@keyframes x-icon-spin{to{transform:rotate(360deg)}}.x-icon-spin{animation:1s linear infinite x-icon-spin}.x-icon[left]{margin-right:.25rem}.x-icon[right]{margin-left:.25rem}x-icon{display:inline-block;line-height:0;text-align:center;vertical-align:-.125em}\n"] }]
316
+ }], ctorParameters: () => [], propDecorators: { hostClass: [{
309
317
  type: HostBinding,
310
- args: ['class']
318
+ args: ['class.x-icon']
311
319
  }], getSpin: [{
312
320
  type: HostBinding,
313
321
  args: ['class.x-icon-spin']
@@ -317,11 +325,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
317
325
  }] } });
318
326
 
319
327
  class XIconModule {
320
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
321
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.1", ngImport: i0, type: XIconModule, imports: [XIconComponent], exports: [XIconComponent] }); }
322
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconModule }); }
328
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
329
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0", ngImport: i0, type: XIconModule, imports: [XIconComponent], exports: [XIconComponent] }); }
330
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconModule }); }
323
331
  }
324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XIconModule, decorators: [{
332
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XIconModule, decorators: [{
325
333
  type: NgModule,
326
334
  args: [{
327
335
  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 customIcon: { [property: string]: string } = {};\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, isCustom = false): 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, isCustom),\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, isCustom = false): Observable<string> {\r\n const url = isCustom ? `${root}${icon}` : `${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 register(icon: string, url: string) {\r\n this.customIcon[icon] = url;\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 { XIconPrefix, XIconProperty } from './icon.property';\r\nimport { XIconService } from './icon.service';\r\nimport { XWarnIconTypeNotFound, XIsEmpty, XHasIn, XWarnSVGTagNotFound } from '@ng-nest/ui/core';\r\nimport { DOCUMENT } from '@angular/common';\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!: HTMLElement;\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 inSource = computed(() => {\r\n const type = this.type();\r\n if (typeof type === 'undefined' || type === '' || type === null) return false;\r\n const split = type.split('-');\r\n const souce = split.shift();\r\n if (typeof souce === 'undefined') return false;\r\n const souceUrl = XSouceUrl[souce];\r\n return souceUrl ? true : false;\r\n });\r\n\r\n sourceUrl = computed(() => {\r\n if (!this.inSource()) return '';\r\n const split = this.type()!.split('-');\r\n const souce = split.shift();\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 isCustom = computed(() => {\r\n return !this.inSource() && XHasIn(this.iconService.customIcon, this.type()!);\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.isCustom()) {\r\n this.iconService.getSvg('', this.iconService.customIcon[this.type()!], true).subscribe((x) => this.setSvgs(x));\r\n } else if (this.inSource()) {\r\n this.iconService.getSvg(this.href(), this.sourceUrl()).subscribe((x) => this.setSvgs(x));\r\n }\r\n });\r\n }\r\n\r\n setSvgs(svg: string) {\r\n if (XIsEmpty(svg)) return;\r\n if (this.svgElement) {\r\n this.renderer.removeChild(this.elementRef.nativeElement, this.svgElement);\r\n }\r\n if (this.isCustom()) {\r\n const parser = new DOMParser();\r\n const svgDoc = parser.parseFromString(svg, 'image/svg+xml');\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 = svgDoc.documentElement;\r\n } else if (this.inSource()) {\r\n this.svgElement = this.buildSvg(svg)!;\r\n }\r\n if (!this.svgElement) return;\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 buildSvg(svgStr: string): HTMLElement | undefined {\r\n const result = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg') as any;\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 setAttributes(svgEle: HTMLElement) {\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 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","\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 customIcon: { [property: string]: string } = {};\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, isCustom = false): 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, isCustom),\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, isCustom = false): Observable<string> {\r\n const url = isCustom ? `${root}${icon}` : `${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 register(icon: string, url: string) {\r\n this.customIcon[icon] = url;\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 signal\r\n} from '@angular/core';\r\nimport { XIconPrefix, XIconProperty } from './icon.property';\r\nimport { XIconService } from './icon.service';\r\nimport { XWarnIconTypeNotFound, XIsEmpty, XHasIn, XWarnSVGTagNotFound } from '@ng-nest/ui/core';\r\nimport { DOCUMENT } from '@angular/common';\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 private svgElement!: HTMLElement;\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 private beforeClass = signal('');\r\n\r\n @HostBinding('class.x-icon') hostClass = true;\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 inSource = computed(() => {\r\n const type = this.type();\r\n if (typeof type === 'undefined' || type === '' || type === null) return false;\r\n const split = type.split('-');\r\n const souce = split.shift();\r\n if (typeof souce === 'undefined') return false;\r\n const souceUrl = XSouceUrl[souce];\r\n return souceUrl ? true : false;\r\n });\r\n\r\n sourceUrl = computed(() => {\r\n if (!this.inSource()) return '';\r\n const split = this.type()!.split('-');\r\n const souce = split.shift();\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 isCustom = computed(() => {\r\n return !this.inSource() && XHasIn(this.iconService.customIcon, this.type()!);\r\n });\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.isCustom()) {\r\n this.iconService.getSvg('', this.iconService.customIcon[this.type()!], true).subscribe((x) => this.setSvgs(x));\r\n } else if (this.inSource()) {\r\n this.iconService.getSvg(this.href(), this.sourceUrl()).subscribe((x) => this.setSvgs(x));\r\n }\r\n });\r\n effect(() => {\r\n if (this.elementRef.nativeElement && this.type()) {\r\n if (this.beforeClass()) {\r\n this.renderer.removeClass(this.elementRef.nativeElement, this.beforeClass());\r\n }\r\n this.renderer.addClass(this.elementRef.nativeElement, this.type()!);\r\n this.beforeClass.set(this.type()!);\r\n }\r\n });\r\n }\r\n\r\n setSvgs(svg: string) {\r\n if (XIsEmpty(svg)) return;\r\n if (this.svgElement) {\r\n this.renderer.removeChild(this.elementRef.nativeElement, this.svgElement);\r\n }\r\n if (this.isCustom()) {\r\n const parser = new DOMParser();\r\n const svgDoc = parser.parseFromString(svg, 'image/svg+xml');\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 = svgDoc.documentElement;\r\n } else if (this.inSource()) {\r\n this.svgElement = this.buildSvg(svg)!;\r\n }\r\n if (!this.svgElement) return;\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 buildSvg(svgStr: string): HTMLElement | undefined {\r\n const result = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg') as any;\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 setAttributes(svgEle: HTMLElement) {\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 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","\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":";;;;;;;;AAIA;;;;AAIG;AACI,MAAM,WAAW,GAAG;AAC3B,MAAM,kBAAkB,GAAG,MAAM;AAEjC;;AAEG;MAEU,aAAc,SAAQ,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;AADxE,IAAA,WAAA,GAAA;;AAEE;;;AAGG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,CAAS,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,kCAAkC,CAAC;AACtF;;;;;;;;;;;AAWG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,EAAU;AAC/B;;;;;;;;;AASG;QACM,IAAK,CAAA,KAAA,GAAG,KAAK,EAAU;AAChC;;;;;;;;;AASG;QACM,IAAI,CAAA,IAAA,GAAG,KAAK,CAAoB,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAC3E;iIAzCY,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,qkBADkC,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FACjD,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,SAAS;mBAAC,EAAE,QAAQ,EAAE,CAAG,EAAA,WAAW,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;;;MCDnD,YAAY,CAAA;AAUvB,IAAA,WAAA,GAAA;QATA,IAAM,CAAA,MAAA,GAAgC,EAAE;QACxC,IAAK,CAAA,KAAA,GAAgB,EAAE;QACvB,IAAY,CAAA,YAAA,GAAW,CAAC;QACxB,IAAa,CAAA,aAAA,GAAG,KAAK;QACrB,IAAK,CAAA,KAAA,GAAW,EAAE;AAClB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;QAChC,IAAI,CAAA,IAAA,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE;QAC9C,IAAU,CAAA,UAAA,GAAmC,EAAE;AAG7C,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,CAAA,gFAAA,CAAkF,CAAC;;;AAI9G,IAAA,OAAO,CAAI,IAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,EAAE;;AAGR,IAAA,OAAO,CAAI,IAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QACzB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;YAC1B,IAAI,CAAC,OAAO,EAAE;YACd;;AAEF,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;AAC/B,YAAA,IAAI,EAAE,CAAC,MAAM,KAAI;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM;AAC/B,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AACrB,gBAAA,OAAO,MAAM;aACd;AACD,YAAA,KAAK,EAAE,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;gBAC1B,IAAI,CAAC,OAAO,EAAE;aACf;YACD,QAAQ,EAAE,MAAK;gBACb,IAAI,CAAC,YAAY,EAAE;AACnB,gBAAA,IAAI,CAAC,aAAa,GAAG,KAAK;gBAC1B,IAAI,CAAC,OAAO,EAAE;;AAEjB,SAAA,CAAC;;IAGI,OAAO,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YAC/B,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAK,CAAC;;;AAIvB,IAAA,MAAM,CAAC,IAAY,EAAE,IAAY,EAAE,QAAQ,GAAG,KAAK,EAAA;AACjD,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,UAA8B,KAAI;AACvD,YAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClB,gBAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,UAAU,CAAC,QAAQ,EAAE;gBACrB;;YAEF,IAAI,CAAC,OAAO,CAAC;AACX,gBAAA,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;AACpD,gBAAA,QAAQ,EAAE,CAAC,GAAW,KAAI;AACxB,oBAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;oBACpB,UAAU,CAAC,QAAQ,EAAE;;AAExB,aAAA,CAAC;AACJ,SAAC,CAAC;;AAGJ,IAAA,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,QAAQ,GAAG,KAAK,EAAA;AACxD,QAAA,MAAM,GAAG,GAAG,QAAQ,GAAG,GAAG,IAAI,CAAA,EAAG,IAAI,CAAE,CAAA,GAAG,CAAA,EAAG,IAAI,CAAG,EAAA,IAAI,MAAM;AAC9D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC;AACjE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAiB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;;IAGnE,QAAQ,CAAC,IAAY,EAAE,GAAW,EAAA;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG;;iIAnFlB,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA;;2FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACKlC;AACa,MAAA,SAAS,GAAmC;AACvD,IAAA,GAAG,EAAE,CAAkB,gBAAA,CAAA;AACvB,IAAA,GAAG,EAAE,CAAqB,mBAAA,CAAA;AAC1B,IAAA,GAAG,EAAE,CAAqB,mBAAA,CAAA;AAC1B,IAAA,GAAG,EAAE,CAAW,SAAA,CAAA;AAChB,IAAA,GAAG,EAAE,CAAc,YAAA,CAAA;AACnB,IAAA,GAAG,EAAE,CAAU,QAAA,CAAA;AACf,IAAA,GAAG,EAAE,CAAsB,oBAAA,CAAA;AAC3B,IAAA,GAAG,EAAE,CAAuB,qBAAA,CAAA;AAC5B,IAAA,GAAG,EAAE,CAAqB,mBAAA,CAAA;AAC1B,IAAA,GAAG,EAAE,CAAuB,qBAAA,CAAA;AAC5B,IAAA,GAAG,EAAE,CAA0B,wBAAA;;AAGpB,MAAA,QAAQ,GAAG;AACtB;AACA;AACA;;AAUI,MAAO,cAAe,SAAQ,aAAa,CAAA;AAW/C,IAAA,IAAsC,OAAO,GAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE;;AAGpB,IAAA,IAAgC,QAAQ,GAAA;AACtC,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;;AA6BrB,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AA5CD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;AAClC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC;QAEH,IAAS,CAAA,SAAA,GAAG,IAAI;AAU7C,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACvB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACxB,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,OAAO,KAAK;YAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC3B,IAAI,OAAO,KAAK,KAAK,WAAW;AAAE,gBAAA,OAAO,KAAK;AAC9C,YAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;YACjC,OAAO,QAAQ,GAAG,IAAI,GAAG,KAAK;AAChC,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAAE,gBAAA,OAAO,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AACrC,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;AAC3B,YAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAM,CAAC;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAChC,YAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;AAC1B,gBAAA,qBAAqB,EAAE;;AAEzB,YAAA,OAAO,CAAG,EAAA,QAAQ,CAAG,EAAA,QAAQ,EAAE;AACjC,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACvB,YAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAG,CAAC;AAC9E,SAAC,CAAC;QAIA,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;AACzG,iBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC1B,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;AAE5F,SAAC,CAAC;QACF,MAAM,CAAC,MAAK;YACV,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AAChD,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,oBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;;AAE9E,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAG,CAAC;gBACnE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAG,CAAC;;AAEtC,SAAC,CAAC;;AAGJ,IAAA,OAAO,CAAC,GAAW,EAAA;QACjB,IAAI,QAAQ,CAAC,GAAG,CAAC;YAAE;AACnB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;;AAE3E,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC;YAC3D,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU;YACzD,IAAI,UAAU,EAAE;AACd,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC;;AAEtE,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,eAAe;;AACnC,aAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAE;;QAEvC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC;;AAEzE,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGzB,IAAA,QAAQ,CAAC,MAAc,EAAA;AACrB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK,CAAQ;QACxF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;AAClC,QAAA,IAAI,CAAC,GAAG;YAAE;QACV,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACzB,YAAA,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC;AAC1B,YAAA,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE;AACxB,gBAAA,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;;AAEhC,YAAA,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACvB,SAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC;AAC7C,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,mBAAmB,EAAE;;AAGvB,QAAA,OAAO,MAAM;;AAGf,IAAA,SAAS,CAAC,MAAc,EAAA;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC9C,QAAA,GAAG,CAAC,SAAS,GAAG,MAAM;QACtB,IAAI,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAe;AACnD,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;QACxB,OAAO;AACL,YAAA,GAAG,EAAE,MAAM;AACX,YAAA,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,6CAA6C;SAChF;;AAGH,IAAA,aAAa,CAAC,MAAmB,EAAA;QAC/B,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;;;AAIvD,IAAA,YAAY,CAAC,GAAe,EAAE,MAAkB,EAAE,SAAiB,EAAE,GAAY,EAAA;QAC/E,IAAI,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;QACzC,IAAI,IAAI,EAAE;AACR,YAAA,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC;;aAC5B,IAAI,GAAG,EAAE;AACd,YAAA,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC;;;iIAvIzB,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,0NC9C3B,MACA,EAAA,MAAA,EAAA,CAAA,qQAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FD6Ca,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;+BACE,CAAG,EAAA,WAAW,EAAE,EAGX,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,qQAAA,CAAA,EAAA;wDAWlB,SAAS,EAAA,CAAA;sBAArC,WAAW;uBAAC,cAAc;gBAEW,OAAO,EAAA,CAAA;sBAA5C,WAAW;uBAAC,mBAAmB;gBAIA,QAAQ,EAAA,CAAA;sBAAvC,WAAW;uBAAC,aAAa;;;MEtDf,WAAW,CAAA;iIAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kIAAX,WAAW,EAAA,OAAA,EAAA,CAFZ,cAAc,CAAA,EAAA,OAAA,EAAA,CADd,cAAc,CAAA,EAAA,CAAA,CAAA;kIAGb,WAAW,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,OAAO,EAAE,CAAC,cAAc;AACzB,iBAAA;;;ACND;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, output, Component, signal, inject, computed, viewChild, ViewEncapsulation, ChangeDetectionStrategy, effect, NgModule } from '@angular/core';
2
+ import { input, output, Component, signal, inject, computed, viewChild, ChangeDetectionStrategy, ViewEncapsulation, 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
5
  import { DOCUMENT } from '@angular/common';
@@ -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: "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 }); }
176
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImageProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
177
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", 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: "19.0.1", ngImport: i0, type: XImageProperty, decorators: [{
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", 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: "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 }); }
193
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImagePreviewProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
194
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", 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: "19.0.1", ngImport: i0, type: XImagePreviewProperty, decorators: [{
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImagePreviewProperty, decorators: [{
197
197
  type: Component,
198
198
  args: [{ selector: `${XImagePreviewPrefix}-property`, template: '' }]
199
199
  }] });
@@ -323,10 +323,10 @@ class XImagePreviewComponent extends XImagePreviewProperty {
323
323
  }
324
324
  return distance;
325
325
  }
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 }); }
326
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImagePreviewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
327
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", 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: "19.0.1", ngImport: i0, type: XImagePreviewComponent, decorators: [{
329
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImagePreviewComponent, decorators: [{
330
330
  type: Component,
331
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
  }] });
@@ -347,10 +347,10 @@ class XImageGroupComponent {
347
347
  return [...x];
348
348
  });
349
349
  }
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 }); }
350
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImageGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
351
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", 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: "19.0.1", ngImport: i0, type: XImageGroupComponent, decorators: [{
353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImageGroupComponent, decorators: [{
354
354
  type: Component,
355
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
  }] });
@@ -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: "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 x-image-fallback\" [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: "20.0.0", ngImport: i0, type: XImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
413
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", 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 x-image-fallback\" [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: "19.0.1", ngImport: i0, type: XImageComponent, decorators: [{
415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImageComponent, decorators: [{
416
416
  type: Component,
417
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 x-image-fallback\" [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: "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] }); }
421
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
422
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0", ngImport: i0, type: XImageModule, imports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent], exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent] }); }
423
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImageModule, imports: [XImageComponent, XImagePreviewComponent] }); }
424
424
  }
425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XImageModule, decorators: [{
425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XImageModule, decorators: [{
426
426
  type: NgModule,
427
427
  args: [{
428
428
  exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent],
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, NgModule } from '@angular/core';
2
+ import { input, Component, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
3
3
  import { XPropertyFunction, XToCssPixelValue } from '@ng-nest/ui/core';
4
4
 
5
5
  /**
@@ -21,10 +21,10 @@ class XInnerProperty extends XPropertyFunction(X_INNER_CONFIG_NAME) {
21
21
  */
22
22
  this.padding = input(this.config?.padding ?? '1rem', { transform: XToCssPixelValue });
23
23
  }
24
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInnerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: XInnerProperty, isStandalone: true, selector: "x-inner-property", inputs: { padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
24
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInnerProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XInnerProperty, isStandalone: true, selector: "x-inner-property", inputs: { padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInnerProperty, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInnerProperty, decorators: [{
28
28
  type: Component,
29
29
  args: [{ selector: `${XInnerPrefix}-property`, template: '' }]
30
30
  }] });
@@ -37,10 +37,10 @@ class XInnerComponent extends XInnerProperty {
37
37
  get getPadding() {
38
38
  return this.padding();
39
39
  }
40
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInnerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
41
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.1", type: XInnerComponent, isStandalone: true, selector: "x-inner", host: { properties: { "class": "this.className", "style.padding": "this.getPadding" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0}.x-inner{display:block;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInnerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
41
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0", type: XInnerComponent, isStandalone: true, selector: "x-inner", host: { properties: { "class": "this.className", "style.padding": "this.getPadding" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0}.x-inner{display:block;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInnerComponent, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInnerComponent, decorators: [{
44
44
  type: Component,
45
45
  args: [{ selector: `${XInnerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: [".x-inner{margin:0;padding:0}.x-inner{display:block;width:100%;height:100%}\n"] }]
46
46
  }], propDecorators: { className: [{
@@ -52,11 +52,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
52
52
  }] } });
53
53
 
54
54
  class XInnerModule {
55
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
56
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.1", ngImport: i0, type: XInnerModule, imports: [XInnerComponent], exports: [XInnerComponent] }); }
57
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInnerModule }); }
55
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
56
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0", ngImport: i0, type: XInnerModule, imports: [XInnerComponent], exports: [XInnerComponent] }); }
57
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInnerModule }); }
58
58
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInnerModule, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInnerModule, decorators: [{
60
60
  type: NgModule,
61
61
  args: [{
62
62
  exports: [XInnerComponent],
@@ -1,6 +1,6 @@
1
1
  import { Subject, distinctUntilChanged, takeUntil, debounceTime, interval, fromEvent } from 'rxjs';
2
2
  import * as i0 from '@angular/core';
3
- import { input, Component, viewChild, signal, inject, ViewEncapsulation, ChangeDetectionStrategy, NgModule } from '@angular/core';
3
+ import { input, Component, viewChild, signal, inject, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
4
4
  import { XToNumber, XToBoolean, XToCssPixelValue, XIsFunction, XIsString, XIsEmpty, XIsNotNil } from '@ng-nest/ui/core';
5
5
  import { XFormControlFunction, XValueAccessor } from '@ng-nest/ui/base-form';
6
6
  import { XInputComponent } from '@ng-nest/ui/input';
@@ -143,10 +143,10 @@ class XInputNumberProperty extends XFormControlFunction(X_INPUT_NUMBER_CONFIG_NA
143
143
  */
144
144
  this.inputValidator = input();
145
145
  }
146
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInputNumberProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
147
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: XInputNumberProperty, isStandalone: true, selector: "x-input-number-property", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null }, precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, formatter: { classPropertyName: "formatter", publicName: "formatter", isSignal: true, isRequired: false, transformFunction: null }, hiddenButton: { classPropertyName: "hiddenButton", publicName: "hiddenButton", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, valueTpl: { classPropertyName: "valueTpl", publicName: "valueTpl", isSignal: true, isRequired: false, transformFunction: null }, valueTplContext: { classPropertyName: "valueTplContext", publicName: "valueTplContext", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, inputValidator: { classPropertyName: "inputValidator", publicName: "inputValidator", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
146
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInputNumberProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
147
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.0", type: XInputNumberProperty, isStandalone: true, selector: "x-input-number-property", inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, debounce: { classPropertyName: "debounce", publicName: "debounce", isSignal: true, isRequired: false, transformFunction: null }, precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, bordered: { classPropertyName: "bordered", publicName: "bordered", isSignal: true, isRequired: false, transformFunction: null }, formatter: { classPropertyName: "formatter", publicName: "formatter", isSignal: true, isRequired: false, transformFunction: null }, hiddenButton: { classPropertyName: "hiddenButton", publicName: "hiddenButton", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelWidth: { classPropertyName: "labelWidth", publicName: "labelWidth", isSignal: true, isRequired: false, transformFunction: null }, labelAlign: { classPropertyName: "labelAlign", publicName: "labelAlign", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, valueTpl: { classPropertyName: "valueTpl", publicName: "valueTpl", isSignal: true, isRequired: false, transformFunction: null }, valueTplContext: { classPropertyName: "valueTplContext", publicName: "valueTplContext", isSignal: true, isRequired: false, transformFunction: null }, pattern: { classPropertyName: "pattern", publicName: "pattern", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, inputValidator: { classPropertyName: "inputValidator", publicName: "inputValidator", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
148
148
  }
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInputNumberProperty, decorators: [{
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInputNumberProperty, decorators: [{
150
150
  type: Component,
151
151
  args: [{ selector: `${XInputNumberPrefix}-property`, template: '' }]
152
152
  }] });
@@ -279,20 +279,20 @@ class XInputNumberComponent extends XInputNumberProperty {
279
279
  }
280
280
  this.displayValue.set(displayValue);
281
281
  }
282
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
283
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: XInputNumberComponent, isStandalone: true, selector: "x-input-number", providers: [XValueAccessor(XInputNumberComponent)], viewQueries: [{ propertyName: "inputNumber", first: true, predicate: ["inputNumber"], descendants: true, isSignal: true }, { propertyName: "inputEleRef", first: true, predicate: ["inputEleRef"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #inputNumber class=\"x-input-number\" [class.x-input-number-hidden-button]=\"hiddenButton()\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size()\"\r\n [onlyIcon]=\"!bordered()\"\r\n [disabled]=\"disabledComputed() || minDisabled()\"\r\n (click)=\"!minDisabled() && plus($event, step(), false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled() && down($event, step(), false)\"\r\n (mouseup)=\"up($event)\"\r\n plain\r\n flat\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"hiddenButton() ? '' : beforeButtonTpl\"\r\n [after]=\"hiddenButton() ? '' : afterButtonTpl\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n (xInput)=\"onInput($event); formControlValidator()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size()\"\r\n [onlyIcon]=\"!bordered()\"\r\n [disabled]=\"disabledComputed() || maxDisabled()\"\r\n (click)=\"!maxDisabled() && plus($event, step()); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled() && down($event, step())\"\r\n (mouseup)=\"up($event)\"\r\n plain\r\n flat\r\n ></x-button>\r\n </ng-template>\r\n @if (invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-number{display:inline-block;width:12rem}.x-input-number{margin:0;padding:0}.x-input-number,.x-input-number-input{width:100%}.x-input-number-input input{text-align:center}.x-input-number-hidden-button .x-input-number-input input{text-align:left}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
282
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
283
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0", type: XInputNumberComponent, isStandalone: true, selector: "x-input-number", providers: [XValueAccessor(XInputNumberComponent)], viewQueries: [{ propertyName: "inputNumber", first: true, predicate: ["inputNumber"], descendants: true, isSignal: true }, { propertyName: "inputEleRef", first: true, predicate: ["inputEleRef"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div #inputNumber class=\"x-input-number\" [class.x-input-number-hidden-button]=\"hiddenButton()\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size()\"\r\n [onlyIcon]=\"!bordered()\"\r\n [disabled]=\"disabledComputed() || minDisabled()\"\r\n (click)=\"!minDisabled() && plus($event, step(), false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled() && down($event, step(), false)\"\r\n (mouseup)=\"up($event)\"\r\n plain\r\n flat\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"hiddenButton() ? '' : beforeButtonTpl\"\r\n [after]=\"hiddenButton() ? '' : afterButtonTpl\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n (xInput)=\"onInput($event); formControlValidator()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size()\"\r\n [onlyIcon]=\"!bordered()\"\r\n [disabled]=\"disabledComputed() || maxDisabled()\"\r\n (click)=\"!maxDisabled() && plus($event, step()); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled() && down($event, step())\"\r\n (mouseup)=\"up($event)\"\r\n plain\r\n flat\r\n ></x-button>\r\n </ng-template>\r\n @if (invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-number{display:inline-block;width:12rem}.x-input-number{margin:0;padding:0}.x-input-number,.x-input-number-input{width:100%}.x-input-number-input input{text-align:center}.x-input-number-hidden-button .x-input-number-input input{text-align:left}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: XInputComponent, selector: "x-input" }, { kind: "component", type: XButtonComponent, selector: "x-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
284
284
  }
285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInputNumberComponent, decorators: [{
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInputNumberComponent, decorators: [{
286
286
  type: Component,
287
287
  args: [{ selector: `${XInputNumberPrefix}`, imports: [FormsModule, ReactiveFormsModule, XInputComponent, XButtonComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XInputNumberComponent)], template: "<div #inputNumber class=\"x-input-number\" [class.x-input-number-hidden-button]=\"hiddenButton()\">\r\n <div class=\"x-input-number-row\">\r\n <ng-template #beforeButtonTpl>\r\n <x-button\r\n class=\"x-input-number-reduce\"\r\n icon=\"fto-minus\"\r\n [size]=\"size()\"\r\n [onlyIcon]=\"!bordered()\"\r\n [disabled]=\"disabledComputed() || minDisabled()\"\r\n (click)=\"!minDisabled() && plus($event, step(), false); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!minDisabled() && down($event, step(), false)\"\r\n (mouseup)=\"up($event)\"\r\n plain\r\n flat\r\n ></x-button>\r\n </ng-template>\r\n <x-input\r\n #inputEleRef\r\n class=\"x-input-number-input\"\r\n [label]=\"label()\"\r\n [labelWidth]=\"labelWidth()\"\r\n [labelAlign]=\"labelAlign()\"\r\n [justify]=\"justify()\"\r\n [align]=\"align()\"\r\n [direction]=\"direction()\"\r\n [disabled]=\"disabledComputed()\"\r\n [required]=\"requiredComputed()\"\r\n [validator]=\"validatorComputed()\"\r\n [inputValidator]=\"inputValidator()\"\r\n [icon]=\"icon()\"\r\n [iconSpin]=\"iconSpin()\"\r\n [placeholder]=\"placeholder()\"\r\n [readonly]=\"readonly()\"\r\n [clearable]=\"clearable()\"\r\n [ngModel]=\"displayValue()\"\r\n [valueTpl]=\"valueTpl()\"\r\n [valueTplContext]=\"valueTplContext()\"\r\n [size]=\"size()\"\r\n [min]=\"min()\"\r\n [max]=\"max()\"\r\n [bordered]=\"bordered()\"\r\n [before]=\"hiddenButton() ? '' : beforeButtonTpl\"\r\n [after]=\"hiddenButton() ? '' : afterButtonTpl\"\r\n [pattern]=\"patternComputed()\"\r\n [message]=\"messageComputed()\"\r\n (xInput)=\"onInput($event); formControlValidator()\"\r\n ></x-input>\r\n <ng-template #afterButtonTpl>\r\n <x-button\r\n class=\"x-input-number-plus\"\r\n icon=\"fto-plus\"\r\n [size]=\"size()\"\r\n [onlyIcon]=\"!bordered()\"\r\n [disabled]=\"disabledComputed() || maxDisabled()\"\r\n (click)=\"!maxDisabled() && plus($event, step()); formControlValidator()\"\r\n attrType=\"button\"\r\n (mousedown)=\"!maxDisabled() && down($event, step())\"\r\n (mouseup)=\"up($event)\"\r\n plain\r\n flat\r\n ></x-button>\r\n </ng-template>\r\n @if (invalid()) {\r\n <div class=\"x-border-error x-top-left\"></div>\r\n <div class=\"x-border-error x-top-right\"></div>\r\n <div class=\"x-border-error x-bottom-left\"></div>\r\n <div class=\"x-border-error x-bottom-right\"></div>\r\n }\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-input-number{display:inline-block;width:12rem}.x-input-number{margin:0;padding:0}.x-input-number,.x-input-number-input{width:100%}.x-input-number-input input{text-align:center}.x-input-number-hidden-button .x-input-number-input input{text-align:left}\n"] }]
288
288
  }], ctorParameters: () => [] });
289
289
 
290
290
  class XInputNumberModule {
291
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
292
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.1", ngImport: i0, type: XInputNumberModule, imports: [XInputNumberComponent], exports: [XInputNumberComponent] }); }
293
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInputNumberModule, imports: [XInputNumberComponent] }); }
291
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInputNumberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
292
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0", ngImport: i0, type: XInputNumberModule, imports: [XInputNumberComponent], exports: [XInputNumberComponent] }); }
293
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInputNumberModule, imports: [XInputNumberComponent] }); }
294
294
  }
295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: XInputNumberModule, decorators: [{
295
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImport: i0, type: XInputNumberModule, decorators: [{
296
296
  type: NgModule,
297
297
  args: [{
298
298
  exports: [XInputNumberComponent],