znyg-frontend-common 1.0.21 → 1.0.23

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 (323) hide show
  1. package/es/components/index.mjs +2 -0
  2. package/es/components/index.mjs.map +1 -1
  3. package/es/components/znChart/src/znChart.vue.mjs.map +1 -1
  4. package/es/components/znChart/src/znChart.vue2.mjs +1 -2
  5. package/es/components/znChart/src/znChart.vue2.mjs.map +1 -1
  6. package/es/components/znCountTo/src/countUp.mjs +102 -104
  7. package/es/components/znCountTo/src/countUp.mjs.map +1 -1
  8. package/es/components/znCountTo/src/index.vue.mjs.map +1 -1
  9. package/es/components/znCountTo/src/index.vue2.mjs +19 -20
  10. package/es/components/znCountTo/src/index.vue2.mjs.map +1 -1
  11. package/es/components/znForm/index.mjs +11 -0
  12. package/es/components/znForm/index.mjs.map +1 -0
  13. package/es/components/znForm/src/components/Tree.vue.mjs +69 -0
  14. package/es/components/znForm/src/components/Tree.vue.mjs.map +1 -0
  15. package/es/components/znForm/src/components/Tree.vue2.mjs +87 -0
  16. package/es/components/znForm/src/components/Tree.vue2.mjs.map +1 -0
  17. package/es/components/znForm/src/components/ZnFormItem.vue.mjs +25 -0
  18. package/es/components/znForm/src/components/ZnFormItem.vue.mjs.map +1 -0
  19. package/es/components/znForm/src/components/ZnFormItem.vue2.mjs +344 -0
  20. package/es/components/znForm/src/components/ZnFormItem.vue2.mjs.map +1 -0
  21. package/es/components/znForm/src/components/useRenderCheckbox.mjs +26 -0
  22. package/es/components/znForm/src/components/useRenderCheckbox.mjs.map +1 -0
  23. package/es/components/znForm/src/components/useRenderComponent.mjs +21 -0
  24. package/es/components/znForm/src/components/useRenderComponent.mjs.map +1 -0
  25. package/es/components/znForm/src/components/useRenderRadio.mjs +26 -0
  26. package/es/components/znForm/src/components/useRenderRadio.mjs.map +1 -0
  27. package/es/components/znForm/src/components/useRenderSelect.mjs +33 -0
  28. package/es/components/znForm/src/components/useRenderSelect.mjs.map +1 -0
  29. package/es/components/znForm/src/helper/componentMap.mjs +32 -0
  30. package/es/components/znForm/src/helper/componentMap.mjs.map +1 -0
  31. package/es/components/znForm/src/helper/index.mjs +141 -0
  32. package/es/components/znForm/src/helper/index.mjs.map +1 -0
  33. package/es/components/znForm/src/hooks/useZnForm.mjs +155 -0
  34. package/es/components/znForm/src/hooks/useZnForm.mjs.map +1 -0
  35. package/es/components/znForm/src/index.vue.mjs +14 -0
  36. package/es/components/znForm/src/index.vue.mjs.map +1 -0
  37. package/es/components/znForm/src/index.vue2.mjs +462 -0
  38. package/es/components/znForm/src/index.vue2.mjs.map +1 -0
  39. package/es/components/znForm/src/interface/index.mjs +35 -0
  40. package/es/components/znForm/src/interface/index.mjs.map +1 -0
  41. package/es/components/znTable/src/components/ColSetting.vue.mjs.map +1 -1
  42. package/es/components/znTable/src/components/ColSetting.vue2.mjs +1 -1
  43. package/es/components/znTable/src/components/ColSetting.vue2.mjs.map +1 -1
  44. package/es/components/znTable/src/components/Grid/components/GridItem.vue.mjs.map +1 -1
  45. package/es/components/znTable/src/components/Grid/components/GridItem.vue2.mjs +10 -11
  46. package/es/components/znTable/src/components/Grid/components/GridItem.vue2.mjs.map +1 -1
  47. package/es/components/znTable/src/components/Grid/index.vue.mjs.map +1 -1
  48. package/es/components/znTable/src/components/Grid/index.vue2.mjs +8 -12
  49. package/es/components/znTable/src/components/Grid/index.vue2.mjs.map +1 -1
  50. package/es/components/znTable/src/components/Pagination.vue.mjs.map +1 -1
  51. package/es/components/znTable/src/components/Pagination.vue2.mjs +3 -3
  52. package/es/components/znTable/src/components/Pagination.vue2.mjs.map +1 -1
  53. package/es/components/znTable/src/components/SearchForm/components/SearchFormItem.vue.mjs +21 -28
  54. package/es/components/znTable/src/components/SearchForm/components/SearchFormItem.vue.mjs.map +1 -1
  55. package/es/components/znTable/src/components/SearchForm/components/SearchFormItem.vue2.mjs +14 -19
  56. package/es/components/znTable/src/components/SearchForm/components/SearchFormItem.vue2.mjs.map +1 -1
  57. package/es/components/znTable/src/components/SearchForm/index.vue.mjs +29 -32
  58. package/es/components/znTable/src/components/SearchForm/index.vue.mjs.map +1 -1
  59. package/es/components/znTable/src/components/SearchForm/index.vue2.mjs +14 -19
  60. package/es/components/znTable/src/components/SearchForm/index.vue2.mjs.map +1 -1
  61. package/es/components/znTable/src/components/TableColumn.vue2.mjs +9 -7
  62. package/es/components/znTable/src/components/TableColumn.vue2.mjs.map +1 -1
  63. package/es/components/znTable/src/hooks/useSelection.mjs.map +1 -1
  64. package/es/components/znTable/src/hooks/useTable.mjs.map +1 -1
  65. package/es/components/znTable/src/index.vue.mjs +21 -25
  66. package/es/components/znTable/src/index.vue.mjs.map +1 -1
  67. package/es/components/znTable/src/index.vue2.mjs +30 -41
  68. package/es/components/znTable/src/index.vue2.mjs.map +1 -1
  69. package/es/components/znTable/src/utils.mjs +13 -21
  70. package/es/components/znTable/src/utils.mjs.map +1 -1
  71. package/es/components/znTest/src/index.vue2.mjs.map +1 -1
  72. package/es/components/znTreeFilter/src/index.vue.mjs.map +1 -1
  73. package/es/components/znTreeFilter/src/index.vue2.mjs +18 -22
  74. package/es/components/znTreeFilter/src/index.vue2.mjs.map +1 -1
  75. package/es/directives/modules/autoScroll.mjs.map +1 -1
  76. package/es/directives/modules/confirm.mjs +1 -2
  77. package/es/directives/modules/confirm.mjs.map +1 -1
  78. package/es/directives/modules/copy.mjs.map +1 -1
  79. package/es/directives/modules/countTo.mjs.map +1 -1
  80. package/es/directives/modules/drag.mjs.map +1 -1
  81. package/es/directives/modules/tooltip.mjs +2 -3
  82. package/es/directives/modules/tooltip.mjs.map +1 -1
  83. package/es/functions/modules/log.mjs.map +1 -1
  84. package/es/functions/modules/uitls.mjs.map +1 -1
  85. package/es/hooks/useDialog/index.mjs.map +1 -1
  86. package/es/hooks/useDialog/src/index.mjs +4 -5
  87. package/es/hooks/useDialog/src/index.mjs.map +1 -1
  88. package/es/hooks/useDrawer/index.mjs.map +1 -1
  89. package/es/hooks/useDrawer/src/index.mjs +5 -6
  90. package/es/hooks/useDrawer/src/index.mjs.map +1 -1
  91. package/es/hooks/useImageViewer/index.mjs.map +1 -1
  92. package/es/hooks/useImageViewer/src/index.vue.mjs.map +1 -1
  93. package/es/hooks/useImageViewer/src/index.vue2.mjs +6 -6
  94. package/es/hooks/useImageViewer/src/index.vue2.mjs.map +1 -1
  95. package/es/hooks/usePopWindow/index.mjs.map +1 -1
  96. package/es/hooks/usePopWindow/src/index.mjs +2 -4
  97. package/es/hooks/usePopWindow/src/index.mjs.map +1 -1
  98. package/es/index.mjs +6 -5
  99. package/es/index.mjs.map +1 -1
  100. package/es/installer.mjs +2 -1
  101. package/es/installer.mjs.map +1 -1
  102. package/es/utils/index.mjs +1 -1
  103. package/es/utils/index.mjs.map +1 -1
  104. package/es/utils/install.mjs.map +1 -1
  105. package/es/utils/myDevelop.mjs.map +1 -1
  106. package/global.d.ts +1 -0
  107. package/lib/components/index.js +4 -0
  108. package/lib/components/index.js.map +1 -1
  109. package/lib/components/znChart/src/znChart.vue.js.map +1 -1
  110. package/lib/components/znChart/src/znChart.vue2.js +1 -2
  111. package/lib/components/znChart/src/znChart.vue2.js.map +1 -1
  112. package/lib/components/znCountTo/src/countUp.js +102 -104
  113. package/lib/components/znCountTo/src/countUp.js.map +1 -1
  114. package/lib/components/znCountTo/src/index.vue.js.map +1 -1
  115. package/lib/components/znCountTo/src/index.vue2.js +19 -20
  116. package/lib/components/znCountTo/src/index.vue2.js.map +1 -1
  117. package/lib/components/znForm/index.js +34 -0
  118. package/lib/components/znForm/index.js.map +1 -0
  119. package/lib/components/znForm/src/components/Tree.vue.js +73 -0
  120. package/lib/components/znForm/src/components/Tree.vue.js.map +1 -0
  121. package/lib/components/znForm/src/components/Tree.vue2.js +91 -0
  122. package/lib/components/znForm/src/components/Tree.vue2.js.map +1 -0
  123. package/lib/components/znForm/src/components/ZnFormItem.vue.js +29 -0
  124. package/lib/components/znForm/src/components/ZnFormItem.vue.js.map +1 -0
  125. package/lib/components/znForm/src/components/ZnFormItem.vue2.js +348 -0
  126. package/lib/components/znForm/src/components/ZnFormItem.vue2.js.map +1 -0
  127. package/lib/components/znForm/src/components/useRenderCheckbox.js +28 -0
  128. package/lib/components/znForm/src/components/useRenderCheckbox.js.map +1 -0
  129. package/lib/components/znForm/src/components/useRenderComponent.js +23 -0
  130. package/lib/components/znForm/src/components/useRenderComponent.js.map +1 -0
  131. package/lib/components/znForm/src/components/useRenderRadio.js +28 -0
  132. package/lib/components/znForm/src/components/useRenderRadio.js.map +1 -0
  133. package/lib/components/znForm/src/components/useRenderSelect.js +35 -0
  134. package/lib/components/znForm/src/components/useRenderSelect.js.map +1 -0
  135. package/lib/components/znForm/src/helper/componentMap.js +34 -0
  136. package/lib/components/znForm/src/helper/componentMap.js.map +1 -0
  137. package/lib/components/znForm/src/helper/index.js +156 -0
  138. package/lib/components/znForm/src/helper/index.js.map +1 -0
  139. package/lib/components/znForm/src/hooks/useZnForm.js +157 -0
  140. package/lib/components/znForm/src/hooks/useZnForm.js.map +1 -0
  141. package/lib/components/znForm/src/index.vue.js +18 -0
  142. package/lib/components/znForm/src/index.vue.js.map +1 -0
  143. package/lib/components/znForm/src/index.vue2.js +466 -0
  144. package/lib/components/znForm/src/index.vue2.js.map +1 -0
  145. package/lib/components/znForm/src/interface/index.js +38 -0
  146. package/lib/components/znForm/src/interface/index.js.map +1 -0
  147. package/lib/components/znTable/src/components/ColSetting.vue.js +2 -2
  148. package/lib/components/znTable/src/components/ColSetting.vue.js.map +1 -1
  149. package/lib/components/znTable/src/components/ColSetting.vue2.js +1 -1
  150. package/lib/components/znTable/src/components/ColSetting.vue2.js.map +1 -1
  151. package/lib/components/znTable/src/components/Grid/components/GridItem.vue.js.map +1 -1
  152. package/lib/components/znTable/src/components/Grid/components/GridItem.vue2.js +10 -11
  153. package/lib/components/znTable/src/components/Grid/components/GridItem.vue2.js.map +1 -1
  154. package/lib/components/znTable/src/components/Grid/index.vue.js.map +1 -1
  155. package/lib/components/znTable/src/components/Grid/index.vue2.js +8 -12
  156. package/lib/components/znTable/src/components/Grid/index.vue2.js.map +1 -1
  157. package/lib/components/znTable/src/components/Pagination.vue.js.map +1 -1
  158. package/lib/components/znTable/src/components/Pagination.vue2.js +3 -3
  159. package/lib/components/znTable/src/components/Pagination.vue2.js.map +1 -1
  160. package/lib/components/znTable/src/components/SearchForm/components/SearchFormItem.vue.js +21 -28
  161. package/lib/components/znTable/src/components/SearchForm/components/SearchFormItem.vue.js.map +1 -1
  162. package/lib/components/znTable/src/components/SearchForm/components/SearchFormItem.vue2.js +14 -19
  163. package/lib/components/znTable/src/components/SearchForm/components/SearchFormItem.vue2.js.map +1 -1
  164. package/lib/components/znTable/src/components/SearchForm/index.vue.js +29 -32
  165. package/lib/components/znTable/src/components/SearchForm/index.vue.js.map +1 -1
  166. package/lib/components/znTable/src/components/SearchForm/index.vue2.js +14 -19
  167. package/lib/components/znTable/src/components/SearchForm/index.vue2.js.map +1 -1
  168. package/lib/components/znTable/src/components/TableColumn.vue2.js +9 -7
  169. package/lib/components/znTable/src/components/TableColumn.vue2.js.map +1 -1
  170. package/lib/components/znTable/src/hooks/useSelection.js.map +1 -1
  171. package/lib/components/znTable/src/hooks/useTable.js.map +1 -1
  172. package/lib/components/znTable/src/index.vue.js +21 -25
  173. package/lib/components/znTable/src/index.vue.js.map +1 -1
  174. package/lib/components/znTable/src/index.vue2.js +30 -41
  175. package/lib/components/znTable/src/index.vue2.js.map +1 -1
  176. package/lib/components/znTable/src/utils.js +13 -21
  177. package/lib/components/znTable/src/utils.js.map +1 -1
  178. package/lib/components/znTest/src/index.vue2.js.map +1 -1
  179. package/lib/components/znTreeFilter/src/index.vue.js.map +1 -1
  180. package/lib/components/znTreeFilter/src/index.vue2.js +18 -22
  181. package/lib/components/znTreeFilter/src/index.vue2.js.map +1 -1
  182. package/lib/directives/modules/autoScroll.js.map +1 -1
  183. package/lib/directives/modules/confirm.js +1 -2
  184. package/lib/directives/modules/confirm.js.map +1 -1
  185. package/lib/directives/modules/copy.js.map +1 -1
  186. package/lib/directives/modules/countTo.js.map +1 -1
  187. package/lib/directives/modules/drag.js.map +1 -1
  188. package/lib/directives/modules/tooltip.js +2 -3
  189. package/lib/directives/modules/tooltip.js.map +1 -1
  190. package/lib/functions/modules/log.js.map +1 -1
  191. package/lib/functions/modules/uitls.js.map +1 -1
  192. package/lib/hooks/useDialog/index.js.map +1 -1
  193. package/lib/hooks/useDialog/src/index.js +4 -5
  194. package/lib/hooks/useDialog/src/index.js.map +1 -1
  195. package/lib/hooks/useDrawer/index.js.map +1 -1
  196. package/lib/hooks/useDrawer/src/index.js +5 -6
  197. package/lib/hooks/useDrawer/src/index.js.map +1 -1
  198. package/lib/hooks/useImageViewer/index.js.map +1 -1
  199. package/lib/hooks/useImageViewer/src/index.vue.js.map +1 -1
  200. package/lib/hooks/useImageViewer/src/index.vue2.js +6 -6
  201. package/lib/hooks/useImageViewer/src/index.vue2.js.map +1 -1
  202. package/lib/hooks/usePopWindow/index.js.map +1 -1
  203. package/lib/hooks/usePopWindow/src/index.js +2 -4
  204. package/lib/hooks/usePopWindow/src/index.js.map +1 -1
  205. package/lib/index.js +35 -32
  206. package/lib/index.js.map +1 -1
  207. package/lib/installer.js +2 -1
  208. package/lib/installer.js.map +1 -1
  209. package/lib/utils/index.js +1 -1
  210. package/lib/utils/index.js.map +1 -1
  211. package/lib/utils/install.js.map +1 -1
  212. package/lib/utils/myDevelop.js.map +1 -1
  213. package/package.json +1 -1
  214. package/theme-default/index.css +1 -1
  215. package/cdn/index.cdn.js +0 -8
  216. package/cdn/index.cdn.js.map +0 -1
  217. package/cdn/index.cdn.mjs +0 -8
  218. package/cdn/index.cdn.mjs.map +0 -1
  219. package/cdn/index.css +0 -1
  220. package/es/components/index.d.ts +0 -7
  221. package/es/components/znChart/index.d.ts +0 -76
  222. package/es/components/znChart/src/znChart.d.ts +0 -5
  223. package/es/components/znChart/src/znChart.vue.d.ts +0 -76
  224. package/es/components/znCountTo/index.d.ts +0 -233
  225. package/es/components/znCountTo/src/countUp.d.ts +0 -61
  226. package/es/components/znCountTo/src/index.vue.d.ts +0 -234
  227. package/es/components/znTable/index.d.ts +0 -1981
  228. package/es/components/znTable/src/components/ColSetting.vue.d.ts +0 -15
  229. package/es/components/znTable/src/components/Grid/components/GridItem.vue.d.ts +0 -116
  230. package/es/components/znTable/src/components/Grid/index.vue.d.ts +0 -79
  231. package/es/components/znTable/src/components/Grid/interface/index.d.ts +0 -5
  232. package/es/components/znTable/src/components/Pagination.vue.d.ts +0 -31
  233. package/es/components/znTable/src/components/SearchForm/components/SearchFormItem.vue.d.ts +0 -45
  234. package/es/components/znTable/src/components/SearchForm/index.vue.d.ts +0 -304
  235. package/es/components/znTable/src/components/TableColumn.vue.d.ts +0 -30
  236. package/es/components/znTable/src/hooks/interface/index.d.ts +0 -22
  237. package/es/components/znTable/src/hooks/useSelection.d.ts +0 -10
  238. package/es/components/znTable/src/hooks/useTable.d.ts +0 -27
  239. package/es/components/znTable/src/index.vue.d.ts +0 -2001
  240. package/es/components/znTable/src/interface/index.d.ts +0 -68
  241. package/es/components/znTable/src/utils.d.ts +0 -53
  242. package/es/components/znTest/index.d.ts +0 -4
  243. package/es/components/znTest/src/index.vue.d.ts +0 -4
  244. package/es/components/znTreeFilter/index.d.ts +0 -1454
  245. package/es/components/znTreeFilter/src/index.vue.d.ts +0 -1454
  246. package/es/directives/index.d.ts +0 -7
  247. package/es/directives/modules/autoScroll.d.ts +0 -3
  248. package/es/directives/modules/confirm.d.ts +0 -3
  249. package/es/directives/modules/copy.d.ts +0 -3
  250. package/es/directives/modules/countTo.d.ts +0 -6
  251. package/es/directives/modules/drag.d.ts +0 -3
  252. package/es/directives/modules/tooltip.d.ts +0 -3
  253. package/es/functions/index.d.ts +0 -3
  254. package/es/functions/modules/log.d.ts +0 -11
  255. package/es/functions/modules/uitls.d.ts +0 -5
  256. package/es/hooks/index.d.ts +0 -4
  257. package/es/hooks/useDialog/index.d.ts +0 -6
  258. package/es/hooks/useDialog/src/index.d.ts +0 -16
  259. package/es/hooks/useDrawer/index.d.ts +0 -6
  260. package/es/hooks/useDrawer/src/index.d.ts +0 -19
  261. package/es/hooks/useImageViewer/index.d.ts +0 -5
  262. package/es/hooks/useImageViewer/src/index.vue.d.ts +0 -249
  263. package/es/hooks/usePopWindow/index.d.ts +0 -10
  264. package/es/hooks/usePopWindow/src/index.d.ts +0 -15
  265. package/es/hooks/usePopWindow/src/interface/index.d.ts +0 -33
  266. package/es/index.d.ts +0 -11
  267. package/es/installer.d.ts +0 -6
  268. package/es/types.d.ts +0 -6
  269. package/es/utils/index.d.ts +0 -4
  270. package/es/utils/install.d.ts +0 -7
  271. package/es/utils/myDevelop.d.ts +0 -1
  272. package/lib/components/index.d.ts +0 -7
  273. package/lib/components/znChart/index.d.ts +0 -76
  274. package/lib/components/znChart/src/znChart.d.ts +0 -5
  275. package/lib/components/znChart/src/znChart.vue.d.ts +0 -76
  276. package/lib/components/znCountTo/index.d.ts +0 -233
  277. package/lib/components/znCountTo/src/countUp.d.ts +0 -61
  278. package/lib/components/znCountTo/src/index.vue.d.ts +0 -234
  279. package/lib/components/znTable/index.d.ts +0 -1981
  280. package/lib/components/znTable/src/components/ColSetting.vue.d.ts +0 -15
  281. package/lib/components/znTable/src/components/Grid/components/GridItem.vue.d.ts +0 -116
  282. package/lib/components/znTable/src/components/Grid/index.vue.d.ts +0 -79
  283. package/lib/components/znTable/src/components/Grid/interface/index.d.ts +0 -5
  284. package/lib/components/znTable/src/components/Pagination.vue.d.ts +0 -31
  285. package/lib/components/znTable/src/components/SearchForm/components/SearchFormItem.vue.d.ts +0 -45
  286. package/lib/components/znTable/src/components/SearchForm/index.vue.d.ts +0 -304
  287. package/lib/components/znTable/src/components/TableColumn.vue.d.ts +0 -30
  288. package/lib/components/znTable/src/hooks/interface/index.d.ts +0 -22
  289. package/lib/components/znTable/src/hooks/useSelection.d.ts +0 -10
  290. package/lib/components/znTable/src/hooks/useTable.d.ts +0 -27
  291. package/lib/components/znTable/src/index.vue.d.ts +0 -2001
  292. package/lib/components/znTable/src/interface/index.d.ts +0 -68
  293. package/lib/components/znTable/src/utils.d.ts +0 -53
  294. package/lib/components/znTest/index.d.ts +0 -4
  295. package/lib/components/znTest/src/index.vue.d.ts +0 -4
  296. package/lib/components/znTreeFilter/index.d.ts +0 -1454
  297. package/lib/components/znTreeFilter/src/index.vue.d.ts +0 -1454
  298. package/lib/directives/index.d.ts +0 -7
  299. package/lib/directives/modules/autoScroll.d.ts +0 -3
  300. package/lib/directives/modules/confirm.d.ts +0 -3
  301. package/lib/directives/modules/copy.d.ts +0 -3
  302. package/lib/directives/modules/countTo.d.ts +0 -6
  303. package/lib/directives/modules/drag.d.ts +0 -3
  304. package/lib/directives/modules/tooltip.d.ts +0 -3
  305. package/lib/functions/index.d.ts +0 -3
  306. package/lib/functions/modules/log.d.ts +0 -11
  307. package/lib/functions/modules/uitls.d.ts +0 -5
  308. package/lib/hooks/index.d.ts +0 -4
  309. package/lib/hooks/useDialog/index.d.ts +0 -6
  310. package/lib/hooks/useDialog/src/index.d.ts +0 -16
  311. package/lib/hooks/useDrawer/index.d.ts +0 -6
  312. package/lib/hooks/useDrawer/src/index.d.ts +0 -19
  313. package/lib/hooks/useImageViewer/index.d.ts +0 -5
  314. package/lib/hooks/useImageViewer/src/index.vue.d.ts +0 -249
  315. package/lib/hooks/usePopWindow/index.d.ts +0 -10
  316. package/lib/hooks/usePopWindow/src/index.d.ts +0 -15
  317. package/lib/hooks/usePopWindow/src/interface/index.d.ts +0 -33
  318. package/lib/index.d.ts +0 -11
  319. package/lib/installer.d.ts +0 -6
  320. package/lib/types.d.ts +0 -6
  321. package/lib/utils/index.d.ts +0 -4
  322. package/lib/utils/install.d.ts +0 -7
  323. package/lib/utils/myDevelop.d.ts +0 -1
@@ -2,5 +2,7 @@ export { ZnChart } from './znChart/index.mjs';
2
2
  export { ZnTable } from './znTable/index.mjs';
3
3
  export { ZnTreeFilter } from './znTreeFilter/index.mjs';
4
4
  export { ZnCountTo } from './znCountTo/index.mjs';
5
+ export { ZnForm } from './znForm/index.mjs';
5
6
  export { ZnTest } from './znTest/index.mjs';
7
+ export { useZnForm } from './znForm/src/hooks/useZnForm.mjs';
6
8
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"znChart.vue.mjs","sources":["../../../../../../packages/components/znChart/src/znChart.vue"],"sourcesContent":["<template>\n <div ref=\"chartRef\" class=\"chart-div\" :style=\"{ width: props.width, height: props.height }\"></div>\n</template>\n\n<script setup lang=\"ts\" name=\"ZnChart\">\n import { markRaw, onBeforeUnmount, onMounted, ref, watch } from 'vue'\n import * as echarts from 'echarts'\n defineOptions({\n name: 'ZnChart'\n })\n const props = defineProps({\n option: {\n type: Object,\n default: () => {\n return {\n xAxis: {\n type: 'category',\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n },\n yAxis: {\n type: 'value'\n },\n series: [\n {\n data: [150, 230, 224, 218, 135, 147, 260],\n type: 'line'\n }\n ]\n }\n }\n },\n width: {\n type: String,\n default: '500px'\n },\n height: {\n type: String,\n default: '400px'\n },\n loading: {\n type: Boolean,\n default: false\n }\n })\n\n const chartRef = ref(null)\n const chartInstance = ref()\n\n // 绘制\n const draw = () => {\n if (chartInstance.value && props.option) {\n chartInstance.value.setOption(props.option, true)\n }\n }\n\n const init = () => {\n if (!chartRef.value) return\n\n // 校验 Dom 节点上是否已经挂载了 ECharts 实例,只有未挂载时才初始化\n chartInstance.value = echarts.getInstanceByDom(chartRef.value)\n if (!chartInstance.value) {\n chartInstance.value = markRaw(echarts.init(chartRef.value))\n draw()\n }\n }\n\n // 对父组件暴露获取Echarts的实例\n defineExpose({\n getInstance: () => chartInstance.value,\n draw\n })\n\n watch(\n () => props.option,\n () => {\n draw()\n },\n {\n deep: true,\n immediate: true\n }\n )\n watch(\n () => props.loading,\n (loading) => {\n if (loading) {\n chartInstance.value.showLoading()\n } else {\n chartInstance.value.hideLoading()\n }\n }\n )\n\n onMounted(() => {\n init()\n })\n\n onBeforeUnmount(() => {\n // 容器被销毁之后,销毁实例,避免内存泄漏\n chartInstance.value?.dispose()\n })\n</script>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;;;;SACW,YAAU,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,QAAA,EAAA;AAAM,EAAA,OAAAA,WAAY,EAAAC,kBAAA;AAAA,IAAA,KAAA;AAAA,IAAA;AAAA,MAAE,GAAK,EAAA,UAAA;AAAA,MAAA,KAAA,EAAA,WAAA;AAAA;;;;;;;AAAnC,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"znChart.vue.mjs","sources":["../../../../../../packages/components/znChart/src/znChart.vue"],"sourcesContent":["<template>\n <div ref=\"chartRef\" class=\"chart-div\" :style=\"{ width: props.width, height: props.height }\"></div>\n</template>\n\n<script setup lang=\"ts\" name=\"ZnChart\">\n import { markRaw, onBeforeUnmount, onMounted, ref, watch } from 'vue'\n import * as echarts from 'echarts'\n defineOptions({\n name: 'ZnChart'\n })\n const props = defineProps({\n option: {\n type: Object,\n default: () => {\n return {\n xAxis: {\n type: 'category',\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n },\n yAxis: {\n type: 'value'\n },\n series: [\n {\n data: [150, 230, 224, 218, 135, 147, 260],\n type: 'line'\n }\n ]\n }\n }\n },\n width: {\n type: String,\n default: '500px'\n },\n height: {\n type: String,\n default: '400px'\n },\n loading: {\n type: Boolean,\n default: false\n }\n })\n\n const chartRef = ref(null)\n const chartInstance = ref()\n\n // 绘制\n const draw = () => {\n if (chartInstance.value && props.option) {\n chartInstance.value.setOption(props.option, true)\n }\n }\n\n const init = () => {\n if (!chartRef.value) return\n\n // 校验 Dom 节点上是否已经挂载了 ECharts 实例,只有未挂载时才初始化\n chartInstance.value = echarts.getInstanceByDom(chartRef.value)\n if (!chartInstance.value) {\n chartInstance.value = markRaw(echarts.init(chartRef.value))\n draw()\n }\n }\n\n // 对父组件暴露获取Echarts的实例\n defineExpose({\n getInstance: () => chartInstance.value,\n draw\n })\n\n watch(\n () => props.option,\n () => {\n draw()\n },\n {\n deep: true,\n immediate: true\n }\n )\n watch(\n () => props.loading,\n (loading) => {\n if (loading) {\n chartInstance.value.showLoading()\n } else {\n chartInstance.value.hideLoading()\n }\n }\n )\n\n onMounted(() => {\n init()\n })\n\n onBeforeUnmount(() => {\n // 容器被销毁之后,销毁实例,避免内存泄漏\n chartInstance.value?.dispose()\n })\n</script>\n"],"names":["_openBlock","_createElementBlock"],"mappings":";;;;;;SACW,YAAU,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,QAAA,EAAA;AAAM,EAAA,OAAAA,WAAY,EAAAC,kBAAA;AAAA,IAAA,KAAA;AAAA,IAAA;AAAA,MAAE,GAAK,EAAA,UAAA;AAAA,MAAA,KAAA,EAAA,WAAA;AAAA;;;;;;;AAAnC,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;;;;;"}
@@ -87,8 +87,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
87
87
  init();
88
88
  });
89
89
  onBeforeUnmount(() => {
90
- var _a;
91
- (_a = chartInstance.value) == null ? void 0 : _a.dispose();
90
+ chartInstance.value?.dispose();
92
91
  });
93
92
  const __returned__ = { props, chartRef, chartInstance, draw, init };
94
93
  Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
@@ -1 +1 @@
1
- {"version":3,"file":"znChart.vue2.mjs","sources":["../../../../../../packages/components/znChart/src/znChart.vue"],"sourcesContent":["<template>\n <div ref=\"chartRef\" class=\"chart-div\" :style=\"{ width: props.width, height: props.height }\"></div>\n</template>\n\n<script setup lang=\"ts\" name=\"ZnChart\">\n import { markRaw, onBeforeUnmount, onMounted, ref, watch } from 'vue'\n import * as echarts from 'echarts'\n defineOptions({\n name: 'ZnChart'\n })\n const props = defineProps({\n option: {\n type: Object,\n default: () => {\n return {\n xAxis: {\n type: 'category',\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n },\n yAxis: {\n type: 'value'\n },\n series: [\n {\n data: [150, 230, 224, 218, 135, 147, 260],\n type: 'line'\n }\n ]\n }\n }\n },\n width: {\n type: String,\n default: '500px'\n },\n height: {\n type: String,\n default: '400px'\n },\n loading: {\n type: Boolean,\n default: false\n }\n })\n\n const chartRef = ref(null)\n const chartInstance = ref()\n\n // 绘制\n const draw = () => {\n if (chartInstance.value && props.option) {\n chartInstance.value.setOption(props.option, true)\n }\n }\n\n const init = () => {\n if (!chartRef.value) return\n\n // 校验 Dom 节点上是否已经挂载了 ECharts 实例,只有未挂载时才初始化\n chartInstance.value = echarts.getInstanceByDom(chartRef.value)\n if (!chartInstance.value) {\n chartInstance.value = markRaw(echarts.init(chartRef.value))\n draw()\n }\n }\n\n // 对父组件暴露获取Echarts的实例\n defineExpose({\n getInstance: () => chartInstance.value,\n draw\n })\n\n watch(\n () => props.option,\n () => {\n draw()\n },\n {\n deep: true,\n immediate: true\n }\n )\n watch(\n () => props.loading,\n (loading) => {\n if (loading) {\n chartInstance.value.showLoading()\n } else {\n chartInstance.value.hideLoading()\n }\n }\n )\n\n onMounted(() => {\n init()\n })\n\n onBeforeUnmount(() => {\n // 容器被销毁之后,销毁实例,避免内存泄漏\n chartInstance.value?.dispose()\n })\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUE,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAmCd,IAAM,MAAA,QAAA,GAAW,IAAI,IAAI,CAAA,CAAA;AACzB,IAAA,MAAM,gBAAgB,GAAI,EAAA,CAAA;AAG1B,IAAA,MAAM,uBAAa,MAAA,CAAA,MAAA;AACjB,MAAI,IAAA,aAAA,CAAc,KAAS,IAAA,KAAA,CAAM,MAAQ,EAAA;AACvC,QAAA,aAAA,CAAc,KAAM,CAAA,SAAA,CAAU,KAAM,CAAA,MAAA,EAAQ,IAAI,CAAA,CAAA;AAAA,OAClD;AAAA,KAHW,EAAA,MAAA,CAAA,CAAA;AAMb,IAAA,MAAM,uBAAa,MAAA,CAAA,MAAA;AACjB,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA,OAAA;AAGrB,MAAA,aAAA,CAAc,KAAQ,GAAA,OAAA,CAAQ,gBAAiB,CAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AAC7D,MAAI,IAAA,CAAC,cAAc,KAAO,EAAA;AACxB,QAAA,aAAA,CAAc,QAAQ,OAAQ,CAAA,OAAA,CAAQ,IAAK,CAAA,QAAA,CAAS,KAAK,CAAC,CAAA,CAAA;AAC1D,QAAK,IAAA,EAAA,CAAA;AAAA,OACP;AAAA,KARW,EAAA,MAAA,CAAA,CAAA;AAYb,IAAa,QAAA,CAAA;AAAA,MACX,WAAA,kBAAmB,MAAA,CAAA,MAAA,aAAA,CAAc,KAApB,EAAA,aAAA,CAAA;AAAA,MACb,IAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,MAAA;AAAA,MACZ,MAAM;AACJ,QAAK,IAAA,EAAA,CAAA;AAAA,OACP;AAAA,MACA;AAAA,QACE,IAAM,EAAA,IAAA;AAAA,QACN,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AACA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,OAAA;AAAA,MACZ,CAAC,OAAY,KAAA;AACX,QAAA,IAAI,OAAS,EAAA;AACX,UAAA,aAAA,CAAc,MAAM,WAAY,EAAA,CAAA;AAAA,SAC3B,MAAA;AACL,UAAA,aAAA,CAAc,MAAM,WAAY,EAAA,CAAA;AAAA,SAClC;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAK,IAAA,EAAA,CAAA;AAAA,KACN,CAAA,CAAA;AAED,IAAA,eAAA,CAAgB,MAAM;;AAEpB,MAAA,CAAA,EAAA,GAAA,aAAA,CAAc,UAAd,IAAqB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,EAAA,CAAA;AAAA,KACtB,CAAA,CAAA;;;;;;;;;"}
1
+ {"version":3,"file":"znChart.vue2.mjs","sources":["../../../../../../packages/components/znChart/src/znChart.vue"],"sourcesContent":["<template>\n <div ref=\"chartRef\" class=\"chart-div\" :style=\"{ width: props.width, height: props.height }\"></div>\n</template>\n\n<script setup lang=\"ts\" name=\"ZnChart\">\n import { markRaw, onBeforeUnmount, onMounted, ref, watch } from 'vue'\n import * as echarts from 'echarts'\n defineOptions({\n name: 'ZnChart'\n })\n const props = defineProps({\n option: {\n type: Object,\n default: () => {\n return {\n xAxis: {\n type: 'category',\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n },\n yAxis: {\n type: 'value'\n },\n series: [\n {\n data: [150, 230, 224, 218, 135, 147, 260],\n type: 'line'\n }\n ]\n }\n }\n },\n width: {\n type: String,\n default: '500px'\n },\n height: {\n type: String,\n default: '400px'\n },\n loading: {\n type: Boolean,\n default: false\n }\n })\n\n const chartRef = ref(null)\n const chartInstance = ref()\n\n // 绘制\n const draw = () => {\n if (chartInstance.value && props.option) {\n chartInstance.value.setOption(props.option, true)\n }\n }\n\n const init = () => {\n if (!chartRef.value) return\n\n // 校验 Dom 节点上是否已经挂载了 ECharts 实例,只有未挂载时才初始化\n chartInstance.value = echarts.getInstanceByDom(chartRef.value)\n if (!chartInstance.value) {\n chartInstance.value = markRaw(echarts.init(chartRef.value))\n draw()\n }\n }\n\n // 对父组件暴露获取Echarts的实例\n defineExpose({\n getInstance: () => chartInstance.value,\n draw\n })\n\n watch(\n () => props.option,\n () => {\n draw()\n },\n {\n deep: true,\n immediate: true\n }\n )\n watch(\n () => props.loading,\n (loading) => {\n if (loading) {\n chartInstance.value.showLoading()\n } else {\n chartInstance.value.hideLoading()\n }\n }\n )\n\n onMounted(() => {\n init()\n })\n\n onBeforeUnmount(() => {\n // 容器被销毁之后,销毁实例,避免内存泄漏\n chartInstance.value?.dispose()\n })\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUE,IAAA,MAAM,KAAQ,GAAA,OAAA;AAmCd,IAAM,MAAA,QAAA,GAAW,IAAI,IAAI,CAAA;AACzB,IAAA,MAAM,gBAAgB,GAAI,EAAA;AAG1B,IAAA,MAAM,uBAAa,MAAA,CAAA,MAAA;AACjB,MAAI,IAAA,aAAA,CAAc,KAAS,IAAA,KAAA,CAAM,MAAQ,EAAA;AACvC,QAAA,aAAA,CAAc,KAAM,CAAA,SAAA,CAAU,KAAM,CAAA,MAAA,EAAQ,IAAI,CAAA;AAAA;AAClD,KAHW,EAAA,MAAA,CAAA;AAMb,IAAA,MAAM,uBAAa,MAAA,CAAA,MAAA;AACjB,MAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AAGrB,MAAA,aAAA,CAAc,KAAQ,GAAA,OAAA,CAAQ,gBAAiB,CAAA,QAAA,CAAS,KAAK,CAAA;AAC7D,MAAI,IAAA,CAAC,cAAc,KAAO,EAAA;AACxB,QAAA,aAAA,CAAc,QAAQ,OAAQ,CAAA,OAAA,CAAQ,IAAK,CAAA,QAAA,CAAS,KAAK,CAAC,CAAA;AAC1D,QAAK,IAAA,EAAA;AAAA;AACP,KARW,EAAA,MAAA,CAAA;AAYb,IAAa,QAAA,CAAA;AAAA,MACX,WAAA,kBAAmB,MAAA,CAAA,MAAA,aAAA,CAAc,KAApB,EAAA,aAAA,CAAA;AAAA,MACb;AAAA,KACD,CAAA;AAED,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,MAAA;AAAA,MACZ,MAAM;AACJ,QAAK,IAAA,EAAA;AAAA,OACP;AAAA,MACA;AAAA,QACE,IAAM,EAAA,IAAA;AAAA,QACN,SAAW,EAAA;AAAA;AACb,KACF;AACA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,OAAA;AAAA,MACZ,CAAC,OAAY,KAAA;AACX,QAAA,IAAI,OAAS,EAAA;AACX,UAAA,aAAA,CAAc,MAAM,WAAY,EAAA;AAAA,SAC3B,MAAA;AACL,UAAA,aAAA,CAAc,MAAM,WAAY,EAAA;AAAA;AAClC;AACF,KACF;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAK,IAAA,EAAA;AAAA,KACN,CAAA;AAED,IAAA,eAAA,CAAgB,MAAM;AAEpB,MAAA,aAAA,CAAc,OAAO,OAAQ,EAAA;AAAA,KAC9B,CAAA;;;;;;;;;"}
@@ -1,107 +1,9 @@
1
1
  var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- const _CountUp = class _CountUp {
3
+ class CountUp {
6
4
  constructor(target, endVal, options) {
7
5
  this.endVal = endVal;
8
6
  this.options = options;
9
- __publicField(this, "version", "2.8.0");
10
- __publicField(this, "defaults", {
11
- startVal: 0,
12
- decimalPlaces: 0,
13
- duration: 2,
14
- useEasing: true,
15
- useGrouping: true,
16
- useIndianSeparators: false,
17
- smartEasingThreshold: 999,
18
- smartEasingAmount: 333,
19
- separator: ",",
20
- decimal: ".",
21
- prefix: "",
22
- suffix: "",
23
- enableScrollSpy: false,
24
- scrollSpyDelay: 200,
25
- scrollSpyOnce: false
26
- });
27
- __publicField(this, "rAF");
28
- __publicField(this, "startTime");
29
- __publicField(this, "remaining");
30
- __publicField(this, "finalEndVal", null);
31
- // for smart easing
32
- __publicField(this, "useEasing", true);
33
- __publicField(this, "countDown", false);
34
- __publicField(this, "el");
35
- __publicField(this, "formattingFn");
36
- __publicField(this, "easingFn");
37
- __publicField(this, "error", "");
38
- __publicField(this, "startVal", 0);
39
- __publicField(this, "duration");
40
- __publicField(this, "paused", true);
41
- __publicField(this, "frameVal");
42
- __publicField(this, "once", false);
43
- __publicField(this, "count", /* @__PURE__ */ __name((timestamp) => {
44
- if (!this.startTime) {
45
- this.startTime = timestamp;
46
- }
47
- const progress = timestamp - this.startTime;
48
- this.remaining = this.duration - progress;
49
- if (this.useEasing) {
50
- if (this.countDown) {
51
- this.frameVal = this.startVal - this.easingFn(progress, 0, this.startVal - this.endVal, this.duration);
52
- } else {
53
- this.frameVal = this.easingFn(progress, this.startVal, this.endVal - this.startVal, this.duration);
54
- }
55
- } else {
56
- this.frameVal = this.startVal + (this.endVal - this.startVal) * (progress / this.duration);
57
- }
58
- const wentPast = this.countDown ? this.frameVal < this.endVal : this.frameVal > this.endVal;
59
- this.frameVal = wentPast ? this.endVal : this.frameVal;
60
- this.frameVal = Number(this.frameVal.toFixed(this.options.decimalPlaces));
61
- this.printValue(this.frameVal);
62
- if (progress < this.duration) {
63
- this.rAF = requestAnimationFrame(this.count);
64
- } else if (this.finalEndVal !== null) {
65
- this.update(this.finalEndVal);
66
- } else {
67
- if (this.options.onCompleteCallback) {
68
- this.options.onCompleteCallback();
69
- }
70
- }
71
- }, "count"));
72
- // default format and easing functions
73
- __publicField(this, "formatNumber", /* @__PURE__ */ __name((num) => {
74
- const neg = num < 0 ? "-" : "";
75
- let result, x1, x2, x3;
76
- result = Math.abs(num).toFixed(this.options.decimalPlaces);
77
- result += "";
78
- const x = result.split(".");
79
- x1 = x[0];
80
- x2 = x.length > 1 ? this.options.decimal + x[1] : "";
81
- if (this.options.useGrouping) {
82
- x3 = "";
83
- let factor = 3, j = 0;
84
- for (let i = 0, len = x1.length; i < len; ++i) {
85
- if (this.options.useIndianSeparators && i === 4) {
86
- factor = 2;
87
- j = 1;
88
- }
89
- if (i !== 0 && j % factor === 0) {
90
- x3 = this.options.separator + x3;
91
- }
92
- j++;
93
- x3 = x1[len - i - 1] + x3;
94
- }
95
- x1 = x3;
96
- }
97
- if (this.options.numerals && this.options.numerals.length) {
98
- x1 = x1.replace(/[0-9]/g, (w) => this.options.numerals[+w]);
99
- x2 = x2.replace(/[0-9]/g, (w) => this.options.numerals[+w]);
100
- }
101
- return neg + this.options.prefix + x1 + x2 + this.options.suffix;
102
- }, "formatNumber"));
103
- // t: current time, b: beginning value, c: change in value, d: duration
104
- __publicField(this, "easeOutExpo", /* @__PURE__ */ __name((t, b, c, d) => c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b, "easeOutExpo"));
105
7
  this.options = {
106
8
  ...this.defaults,
107
9
  ...options
@@ -137,6 +39,43 @@ const _CountUp = class _CountUp {
137
39
  }
138
40
  }
139
41
  }
42
+ static {
43
+ __name(this, "CountUp");
44
+ }
45
+ version = "2.8.0";
46
+ defaults = {
47
+ startVal: 0,
48
+ decimalPlaces: 0,
49
+ duration: 2,
50
+ useEasing: true,
51
+ useGrouping: true,
52
+ useIndianSeparators: false,
53
+ smartEasingThreshold: 999,
54
+ smartEasingAmount: 333,
55
+ separator: ",",
56
+ decimal: ".",
57
+ prefix: "",
58
+ suffix: "",
59
+ enableScrollSpy: false,
60
+ scrollSpyDelay: 200,
61
+ scrollSpyOnce: false
62
+ };
63
+ rAF;
64
+ startTime;
65
+ remaining;
66
+ finalEndVal = null;
67
+ // for smart easing
68
+ useEasing = true;
69
+ countDown = false;
70
+ el;
71
+ formattingFn;
72
+ easingFn;
73
+ error = "";
74
+ startVal = 0;
75
+ duration;
76
+ paused = true;
77
+ frameVal;
78
+ once = false;
140
79
  handleScroll(self) {
141
80
  if (!self || !window || self.once) return;
142
81
  const bottomOfScroll = window.innerHeight + window.scrollY;
@@ -233,11 +172,39 @@ const _CountUp = class _CountUp {
233
172
  this.determineDirectionAndSmartEasing();
234
173
  this.rAF = requestAnimationFrame(this.count);
235
174
  }
175
+ count = /* @__PURE__ */ __name((timestamp) => {
176
+ if (!this.startTime) {
177
+ this.startTime = timestamp;
178
+ }
179
+ const progress = timestamp - this.startTime;
180
+ this.remaining = this.duration - progress;
181
+ if (this.useEasing) {
182
+ if (this.countDown) {
183
+ this.frameVal = this.startVal - this.easingFn(progress, 0, this.startVal - this.endVal, this.duration);
184
+ } else {
185
+ this.frameVal = this.easingFn(progress, this.startVal, this.endVal - this.startVal, this.duration);
186
+ }
187
+ } else {
188
+ this.frameVal = this.startVal + (this.endVal - this.startVal) * (progress / this.duration);
189
+ }
190
+ const wentPast = this.countDown ? this.frameVal < this.endVal : this.frameVal > this.endVal;
191
+ this.frameVal = wentPast ? this.endVal : this.frameVal;
192
+ this.frameVal = Number(this.frameVal.toFixed(this.options.decimalPlaces));
193
+ this.printValue(this.frameVal);
194
+ if (progress < this.duration) {
195
+ this.rAF = requestAnimationFrame(this.count);
196
+ } else if (this.finalEndVal !== null) {
197
+ this.update(this.finalEndVal);
198
+ } else {
199
+ if (this.options.onCompleteCallback) {
200
+ this.options.onCompleteCallback();
201
+ }
202
+ }
203
+ }, "count");
236
204
  printValue(val) {
237
- var _a;
238
205
  if (!this.el) return;
239
206
  const result = this.formattingFn(val);
240
- if ((_a = this.options.plugin) == null ? void 0 : _a.render) {
207
+ if (this.options.plugin?.render) {
241
208
  this.options.plugin.render(this.el, result);
242
209
  return;
243
210
  }
@@ -267,9 +234,40 @@ const _CountUp = class _CountUp {
267
234
  this.duration = Number(this.options.duration) * 1e3;
268
235
  this.remaining = this.duration;
269
236
  }
270
- };
271
- __name(_CountUp, "CountUp");
272
- let CountUp = _CountUp;
237
+ // default format and easing functions
238
+ formatNumber = /* @__PURE__ */ __name((num) => {
239
+ const neg = num < 0 ? "-" : "";
240
+ let result, x1, x2, x3;
241
+ result = Math.abs(num).toFixed(this.options.decimalPlaces);
242
+ result += "";
243
+ const x = result.split(".");
244
+ x1 = x[0];
245
+ x2 = x.length > 1 ? this.options.decimal + x[1] : "";
246
+ if (this.options.useGrouping) {
247
+ x3 = "";
248
+ let factor = 3, j = 0;
249
+ for (let i = 0, len = x1.length; i < len; ++i) {
250
+ if (this.options.useIndianSeparators && i === 4) {
251
+ factor = 2;
252
+ j = 1;
253
+ }
254
+ if (i !== 0 && j % factor === 0) {
255
+ x3 = this.options.separator + x3;
256
+ }
257
+ j++;
258
+ x3 = x1[len - i - 1] + x3;
259
+ }
260
+ x1 = x3;
261
+ }
262
+ if (this.options.numerals && this.options.numerals.length) {
263
+ x1 = x1.replace(/[0-9]/g, (w) => this.options.numerals[+w]);
264
+ x2 = x2.replace(/[0-9]/g, (w) => this.options.numerals[+w]);
265
+ }
266
+ return neg + this.options.prefix + x1 + x2 + this.options.suffix;
267
+ }, "formatNumber");
268
+ // t: current time, b: beginning value, c: change in value, d: duration
269
+ easeOutExpo = /* @__PURE__ */ __name((t, b, c, d) => c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b, "easeOutExpo");
270
+ }
273
271
 
274
272
  export { CountUp };
275
273
  //# sourceMappingURL=countUp.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"countUp.mjs","sources":["../../../../../../packages/components/znCountTo/src/countUp.ts"],"sourcesContent":["export interface CountUpOptions {\r\n // (default)\r\n startVal?: number // number to start at (0)\r\n decimalPlaces?: number // number of decimal places (0)\r\n duration?: number // animation duration in seconds (2)\r\n useGrouping?: boolean // example: 1,000 vs 1000 (true)\r\n useIndianSeparators?: boolean // example: 1,00,000 vs 100,000 (false)\r\n useEasing?: boolean // ease animation (true)\r\n smartEasingThreshold?: number // smooth easing for large numbers above this if useEasing (999)\r\n smartEasingAmount?: number // amount to be eased for numbers above threshold (333)\r\n separator?: string // grouping separator (,)\r\n decimal?: string // decimal (.)\r\n // easingFn: easing function for animation (easeOutExpo)\r\n easingFn?: (t: number, b: number, c: number, d: number) => number\r\n formattingFn?: (n: number) => string // this function formats result\r\n prefix?: string // text prepended to result\r\n suffix?: string // text appended to result\r\n numerals?: string[] // numeral glyph substitution\r\n enableScrollSpy?: boolean // start animation when target is in view\r\n scrollSpyDelay?: number // delay (ms) after target comes into view\r\n scrollSpyOnce?: boolean // run only once\r\n onCompleteCallback?: () => any // gets called when animation completes\r\n onStartCallback?: () => any // gets called when animation starts\r\n plugin?: CountUpPlugin // for alternate animations\r\n}\r\n\r\nexport declare interface CountUpPlugin {\r\n render(elem: HTMLElement, formatted: string): void\r\n}\r\n\r\n// playground: stackblitz.com/edit/countup-typescript\r\nexport class CountUp {\r\n version = '2.8.0'\r\n private defaults: CountUpOptions = {\r\n startVal: 0,\r\n decimalPlaces: 0,\r\n duration: 2,\r\n useEasing: true,\r\n useGrouping: true,\r\n useIndianSeparators: false,\r\n smartEasingThreshold: 999,\r\n smartEasingAmount: 333,\r\n separator: ',',\r\n decimal: '.',\r\n prefix: '',\r\n suffix: '',\r\n enableScrollSpy: false,\r\n scrollSpyDelay: 200,\r\n scrollSpyOnce: false\r\n }\r\n private rAF: any\r\n private startTime: number\r\n private remaining: number\r\n private finalEndVal: number = null // for smart easing\r\n private useEasing = true\r\n private countDown = false\r\n el: HTMLElement | HTMLInputElement\r\n formattingFn: (num: number) => string\r\n easingFn?: (t: number, b: number, c: number, d: number) => number\r\n error = ''\r\n startVal = 0\r\n duration: number\r\n paused = true\r\n frameVal: number\r\n once = false\r\n\r\n constructor(\r\n target: string | HTMLElement | HTMLInputElement,\r\n private endVal: number,\r\n public options?: CountUpOptions\r\n ) {\r\n this.options = {\r\n ...this.defaults,\r\n ...options\r\n }\r\n this.formattingFn = this.options.formattingFn ? this.options.formattingFn : this.formatNumber\r\n this.easingFn = this.options.easingFn ? this.options.easingFn : this.easeOutExpo\r\n\r\n this.startVal = this.validateValue(this.options.startVal)\r\n this.frameVal = this.startVal\r\n this.endVal = this.validateValue(endVal)\r\n this.options.decimalPlaces = Math.max(0 || this.options.decimalPlaces)\r\n this.resetDuration()\r\n this.options.separator = String(this.options.separator)\r\n this.useEasing = this.options.useEasing\r\n if (this.options.separator === '') {\r\n this.options.useGrouping = false\r\n }\r\n this.el = typeof target === 'string' ? document.getElementById(target) : target\r\n if (this.el) {\r\n this.printValue(this.startVal)\r\n } else {\r\n this.error = '[CountUp] target is null or undefined'\r\n }\r\n\r\n // scroll spy\r\n if (typeof window !== 'undefined' && this.options.enableScrollSpy) {\r\n if (!this.error) {\r\n // set up global array of onscroll functions to handle multiple instances\r\n window['onScrollFns'] = window['onScrollFns'] || []\r\n window['onScrollFns'].push(() => this.handleScroll(this))\r\n window.onscroll = () => {\r\n window['onScrollFns'].forEach((fn) => fn())\r\n }\r\n this.handleScroll(this)\r\n } else {\r\n console.error(this.error, target)\r\n }\r\n }\r\n }\r\n\r\n handleScroll(self: CountUp): void {\r\n if (!self || !window || self.once) return\r\n const bottomOfScroll = window.innerHeight + window.scrollY\r\n const rect = self.el.getBoundingClientRect()\r\n const topOfEl = rect.top + window.pageYOffset\r\n const bottomOfEl = rect.top + rect.height + window.pageYOffset\r\n if (bottomOfEl < bottomOfScroll && bottomOfEl > window.scrollY && self.paused) {\r\n // in view\r\n self.paused = false\r\n setTimeout(() => self.start(), self.options.scrollSpyDelay)\r\n if (self.options.scrollSpyOnce) self.once = true\r\n } else if ((window.scrollY > bottomOfEl || topOfEl > bottomOfScroll) && !self.paused) {\r\n // out of view\r\n self.reset()\r\n }\r\n }\r\n\r\n /**\r\n * Smart easing works by breaking the animation into 2 parts, the second part being the\r\n * smartEasingAmount and first part being the total amount minus the smartEasingAmount. It works\r\n * by disabling easing for the first part and enabling it on the second part. It is used if\r\n * useEasing is true and the total animation amount exceeds the smartEasingThreshold.\r\n */\r\n private determineDirectionAndSmartEasing(): void {\r\n const end = this.finalEndVal ? this.finalEndVal : this.endVal\r\n this.countDown = this.startVal > end\r\n const animateAmount = end - this.startVal\r\n if (Math.abs(animateAmount) > this.options.smartEasingThreshold && this.options.useEasing) {\r\n this.finalEndVal = end\r\n const up = this.countDown ? 1 : -1\r\n this.endVal = end + up * this.options.smartEasingAmount\r\n this.duration = this.duration / 2\r\n } else {\r\n this.endVal = end\r\n this.finalEndVal = null\r\n }\r\n if (this.finalEndVal !== null) {\r\n // setting finalEndVal indicates smart easing\r\n this.useEasing = false\r\n } else {\r\n this.useEasing = this.options.useEasing\r\n }\r\n }\r\n\r\n // start animation\r\n start(callback?: (args?: any) => any): void {\r\n if (this.error) {\r\n return\r\n }\r\n if (this.options.onStartCallback) {\r\n this.options.onStartCallback()\r\n }\r\n if (callback) {\r\n this.options.onCompleteCallback = callback\r\n }\r\n if (this.duration > 0) {\r\n this.determineDirectionAndSmartEasing()\r\n this.paused = false\r\n this.rAF = requestAnimationFrame(this.count)\r\n } else {\r\n this.printValue(this.endVal)\r\n }\r\n }\r\n\r\n // pause/resume animation\r\n pauseResume(): void {\r\n if (!this.paused) {\r\n cancelAnimationFrame(this.rAF)\r\n } else {\r\n this.startTime = null\r\n this.duration = this.remaining\r\n this.startVal = this.frameVal\r\n this.determineDirectionAndSmartEasing()\r\n this.rAF = requestAnimationFrame(this.count)\r\n }\r\n this.paused = !this.paused\r\n }\r\n\r\n // reset to startVal so animation can be run again\r\n reset(): void {\r\n cancelAnimationFrame(this.rAF)\r\n this.paused = true\r\n this.resetDuration()\r\n this.startVal = this.validateValue(this.options.startVal)\r\n this.frameVal = this.startVal\r\n this.printValue(this.startVal)\r\n }\r\n\r\n // pass a new endVal and start animation\r\n update(newEndVal: string | number): void {\r\n cancelAnimationFrame(this.rAF)\r\n this.startTime = null\r\n this.endVal = this.validateValue(newEndVal)\r\n if (this.endVal === this.frameVal) {\r\n return\r\n }\r\n this.startVal = this.frameVal\r\n if (this.finalEndVal == null) {\r\n this.resetDuration()\r\n }\r\n this.finalEndVal = null\r\n this.determineDirectionAndSmartEasing()\r\n this.rAF = requestAnimationFrame(this.count)\r\n }\r\n\r\n count = (timestamp: number): void => {\r\n if (!this.startTime) {\r\n this.startTime = timestamp\r\n }\r\n\r\n const progress = timestamp - this.startTime\r\n this.remaining = this.duration - progress\r\n\r\n // to ease or not to ease\r\n if (this.useEasing) {\r\n if (this.countDown) {\r\n this.frameVal = this.startVal - this.easingFn(progress, 0, this.startVal - this.endVal, this.duration)\r\n } else {\r\n this.frameVal = this.easingFn(progress, this.startVal, this.endVal - this.startVal, this.duration)\r\n }\r\n } else {\r\n this.frameVal = this.startVal + (this.endVal - this.startVal) * (progress / this.duration)\r\n }\r\n\r\n // don't go past endVal since progress can exceed duration in the last frame\r\n const wentPast = this.countDown ? this.frameVal < this.endVal : this.frameVal > this.endVal\r\n this.frameVal = wentPast ? this.endVal : this.frameVal\r\n\r\n // decimal\r\n this.frameVal = Number(this.frameVal.toFixed(this.options.decimalPlaces))\r\n\r\n // format and print value\r\n this.printValue(this.frameVal)\r\n\r\n // whether to continue\r\n if (progress < this.duration) {\r\n this.rAF = requestAnimationFrame(this.count)\r\n } else if (this.finalEndVal !== null) {\r\n // smart easing\r\n this.update(this.finalEndVal)\r\n } else {\r\n if (this.options.onCompleteCallback) {\r\n this.options.onCompleteCallback()\r\n }\r\n }\r\n }\r\n\r\n printValue(val: number): void {\r\n if (!this.el) return\r\n const result = this.formattingFn(val)\r\n if (this.options.plugin?.render) {\r\n this.options.plugin.render(this.el, result)\r\n return\r\n }\r\n if (this.el.tagName === 'INPUT') {\r\n const input = this.el as HTMLInputElement\r\n input.value = result\r\n } else if (this.el.tagName === 'text' || this.el.tagName === 'tspan') {\r\n this.el.textContent = result\r\n } else {\r\n this.el.innerHTML = result\r\n }\r\n }\r\n\r\n ensureNumber(n: any): boolean {\r\n return typeof n === 'number' && !isNaN(n)\r\n }\r\n\r\n validateValue(value: string | number): number {\r\n const newValue = Number(value)\r\n if (!this.ensureNumber(newValue)) {\r\n this.error = `[CountUp] invalid start or end value: ${value}`\r\n return null\r\n } else {\r\n return newValue\r\n }\r\n }\r\n\r\n private resetDuration(): void {\r\n this.startTime = null\r\n this.duration = Number(this.options.duration) * 1000\r\n this.remaining = this.duration\r\n }\r\n\r\n // default format and easing functions\r\n\r\n formatNumber = (num: number): string => {\r\n const neg = num < 0 ? '-' : ''\r\n let result: string, x1: string, x2: string, x3: string\r\n result = Math.abs(num).toFixed(this.options.decimalPlaces)\r\n result += ''\r\n const x = result.split('.')\r\n x1 = x[0]\r\n x2 = x.length > 1 ? this.options.decimal + x[1] : ''\r\n if (this.options.useGrouping) {\r\n x3 = ''\r\n let factor = 3,\r\n j = 0\r\n for (let i = 0, len = x1.length; i < len; ++i) {\r\n if (this.options.useIndianSeparators && i === 4) {\r\n factor = 2\r\n j = 1\r\n }\r\n if (i !== 0 && j % factor === 0) {\r\n x3 = this.options.separator + x3\r\n }\r\n j++\r\n x3 = x1[len - i - 1] + x3\r\n }\r\n x1 = x3\r\n }\r\n // optional numeral substitution\r\n if (this.options.numerals && this.options.numerals.length) {\r\n x1 = x1.replace(/[0-9]/g, (w) => this.options.numerals[+w])\r\n x2 = x2.replace(/[0-9]/g, (w) => this.options.numerals[+w])\r\n }\r\n return neg + this.options.prefix + x1 + x2 + this.options.suffix\r\n }\r\n\r\n // t: current time, b: beginning value, c: change in value, d: duration\r\n easeOutExpo = (t: number, b: number, c: number, d: number): number => (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b\r\n}\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"countUp.mjs","sources":["../../../../../../packages/components/znCountTo/src/countUp.ts"],"sourcesContent":["export interface CountUpOptions {\r\n // (default)\r\n startVal?: number // number to start at (0)\r\n decimalPlaces?: number // number of decimal places (0)\r\n duration?: number // animation duration in seconds (2)\r\n useGrouping?: boolean // example: 1,000 vs 1000 (true)\r\n useIndianSeparators?: boolean // example: 1,00,000 vs 100,000 (false)\r\n useEasing?: boolean // ease animation (true)\r\n smartEasingThreshold?: number // smooth easing for large numbers above this if useEasing (999)\r\n smartEasingAmount?: number // amount to be eased for numbers above threshold (333)\r\n separator?: string // grouping separator (,)\r\n decimal?: string // decimal (.)\r\n // easingFn: easing function for animation (easeOutExpo)\r\n easingFn?: (t: number, b: number, c: number, d: number) => number\r\n formattingFn?: (n: number) => string // this function formats result\r\n prefix?: string // text prepended to result\r\n suffix?: string // text appended to result\r\n numerals?: string[] // numeral glyph substitution\r\n enableScrollSpy?: boolean // start animation when target is in view\r\n scrollSpyDelay?: number // delay (ms) after target comes into view\r\n scrollSpyOnce?: boolean // run only once\r\n onCompleteCallback?: () => any // gets called when animation completes\r\n onStartCallback?: () => any // gets called when animation starts\r\n plugin?: CountUpPlugin // for alternate animations\r\n}\r\n\r\nexport declare interface CountUpPlugin {\r\n render(elem: HTMLElement, formatted: string): void\r\n}\r\n\r\n// playground: stackblitz.com/edit/countup-typescript\r\nexport class CountUp {\r\n version = '2.8.0'\r\n private defaults: CountUpOptions = {\r\n startVal: 0,\r\n decimalPlaces: 0,\r\n duration: 2,\r\n useEasing: true,\r\n useGrouping: true,\r\n useIndianSeparators: false,\r\n smartEasingThreshold: 999,\r\n smartEasingAmount: 333,\r\n separator: ',',\r\n decimal: '.',\r\n prefix: '',\r\n suffix: '',\r\n enableScrollSpy: false,\r\n scrollSpyDelay: 200,\r\n scrollSpyOnce: false\r\n }\r\n private rAF: any\r\n private startTime: number\r\n private remaining: number\r\n private finalEndVal: number = null // for smart easing\r\n private useEasing = true\r\n private countDown = false\r\n el: HTMLElement | HTMLInputElement\r\n formattingFn: (num: number) => string\r\n easingFn?: (t: number, b: number, c: number, d: number) => number\r\n error = ''\r\n startVal = 0\r\n duration: number\r\n paused = true\r\n frameVal: number\r\n once = false\r\n\r\n constructor(\r\n target: string | HTMLElement | HTMLInputElement,\r\n private endVal: number,\r\n public options?: CountUpOptions\r\n ) {\r\n this.options = {\r\n ...this.defaults,\r\n ...options\r\n }\r\n this.formattingFn = this.options.formattingFn ? this.options.formattingFn : this.formatNumber\r\n this.easingFn = this.options.easingFn ? this.options.easingFn : this.easeOutExpo\r\n\r\n this.startVal = this.validateValue(this.options.startVal)\r\n this.frameVal = this.startVal\r\n this.endVal = this.validateValue(endVal)\r\n this.options.decimalPlaces = Math.max(0 || this.options.decimalPlaces)\r\n this.resetDuration()\r\n this.options.separator = String(this.options.separator)\r\n this.useEasing = this.options.useEasing\r\n if (this.options.separator === '') {\r\n this.options.useGrouping = false\r\n }\r\n this.el = typeof target === 'string' ? document.getElementById(target) : target\r\n if (this.el) {\r\n this.printValue(this.startVal)\r\n } else {\r\n this.error = '[CountUp] target is null or undefined'\r\n }\r\n\r\n // scroll spy\r\n if (typeof window !== 'undefined' && this.options.enableScrollSpy) {\r\n if (!this.error) {\r\n // set up global array of onscroll functions to handle multiple instances\r\n window['onScrollFns'] = window['onScrollFns'] || []\r\n window['onScrollFns'].push(() => this.handleScroll(this))\r\n window.onscroll = () => {\r\n window['onScrollFns'].forEach((fn) => fn())\r\n }\r\n this.handleScroll(this)\r\n } else {\r\n console.error(this.error, target)\r\n }\r\n }\r\n }\r\n\r\n handleScroll(self: CountUp): void {\r\n if (!self || !window || self.once) return\r\n const bottomOfScroll = window.innerHeight + window.scrollY\r\n const rect = self.el.getBoundingClientRect()\r\n const topOfEl = rect.top + window.pageYOffset\r\n const bottomOfEl = rect.top + rect.height + window.pageYOffset\r\n if (bottomOfEl < bottomOfScroll && bottomOfEl > window.scrollY && self.paused) {\r\n // in view\r\n self.paused = false\r\n setTimeout(() => self.start(), self.options.scrollSpyDelay)\r\n if (self.options.scrollSpyOnce) self.once = true\r\n } else if ((window.scrollY > bottomOfEl || topOfEl > bottomOfScroll) && !self.paused) {\r\n // out of view\r\n self.reset()\r\n }\r\n }\r\n\r\n /**\r\n * Smart easing works by breaking the animation into 2 parts, the second part being the\r\n * smartEasingAmount and first part being the total amount minus the smartEasingAmount. It works\r\n * by disabling easing for the first part and enabling it on the second part. It is used if\r\n * useEasing is true and the total animation amount exceeds the smartEasingThreshold.\r\n */\r\n private determineDirectionAndSmartEasing(): void {\r\n const end = this.finalEndVal ? this.finalEndVal : this.endVal\r\n this.countDown = this.startVal > end\r\n const animateAmount = end - this.startVal\r\n if (Math.abs(animateAmount) > this.options.smartEasingThreshold && this.options.useEasing) {\r\n this.finalEndVal = end\r\n const up = this.countDown ? 1 : -1\r\n this.endVal = end + up * this.options.smartEasingAmount\r\n this.duration = this.duration / 2\r\n } else {\r\n this.endVal = end\r\n this.finalEndVal = null\r\n }\r\n if (this.finalEndVal !== null) {\r\n // setting finalEndVal indicates smart easing\r\n this.useEasing = false\r\n } else {\r\n this.useEasing = this.options.useEasing\r\n }\r\n }\r\n\r\n // start animation\r\n start(callback?: (args?: any) => any): void {\r\n if (this.error) {\r\n return\r\n }\r\n if (this.options.onStartCallback) {\r\n this.options.onStartCallback()\r\n }\r\n if (callback) {\r\n this.options.onCompleteCallback = callback\r\n }\r\n if (this.duration > 0) {\r\n this.determineDirectionAndSmartEasing()\r\n this.paused = false\r\n this.rAF = requestAnimationFrame(this.count)\r\n } else {\r\n this.printValue(this.endVal)\r\n }\r\n }\r\n\r\n // pause/resume animation\r\n pauseResume(): void {\r\n if (!this.paused) {\r\n cancelAnimationFrame(this.rAF)\r\n } else {\r\n this.startTime = null\r\n this.duration = this.remaining\r\n this.startVal = this.frameVal\r\n this.determineDirectionAndSmartEasing()\r\n this.rAF = requestAnimationFrame(this.count)\r\n }\r\n this.paused = !this.paused\r\n }\r\n\r\n // reset to startVal so animation can be run again\r\n reset(): void {\r\n cancelAnimationFrame(this.rAF)\r\n this.paused = true\r\n this.resetDuration()\r\n this.startVal = this.validateValue(this.options.startVal)\r\n this.frameVal = this.startVal\r\n this.printValue(this.startVal)\r\n }\r\n\r\n // pass a new endVal and start animation\r\n update(newEndVal: string | number): void {\r\n cancelAnimationFrame(this.rAF)\r\n this.startTime = null\r\n this.endVal = this.validateValue(newEndVal)\r\n if (this.endVal === this.frameVal) {\r\n return\r\n }\r\n this.startVal = this.frameVal\r\n if (this.finalEndVal == null) {\r\n this.resetDuration()\r\n }\r\n this.finalEndVal = null\r\n this.determineDirectionAndSmartEasing()\r\n this.rAF = requestAnimationFrame(this.count)\r\n }\r\n\r\n count = (timestamp: number): void => {\r\n if (!this.startTime) {\r\n this.startTime = timestamp\r\n }\r\n\r\n const progress = timestamp - this.startTime\r\n this.remaining = this.duration - progress\r\n\r\n // to ease or not to ease\r\n if (this.useEasing) {\r\n if (this.countDown) {\r\n this.frameVal = this.startVal - this.easingFn(progress, 0, this.startVal - this.endVal, this.duration)\r\n } else {\r\n this.frameVal = this.easingFn(progress, this.startVal, this.endVal - this.startVal, this.duration)\r\n }\r\n } else {\r\n this.frameVal = this.startVal + (this.endVal - this.startVal) * (progress / this.duration)\r\n }\r\n\r\n // don't go past endVal since progress can exceed duration in the last frame\r\n const wentPast = this.countDown ? this.frameVal < this.endVal : this.frameVal > this.endVal\r\n this.frameVal = wentPast ? this.endVal : this.frameVal\r\n\r\n // decimal\r\n this.frameVal = Number(this.frameVal.toFixed(this.options.decimalPlaces))\r\n\r\n // format and print value\r\n this.printValue(this.frameVal)\r\n\r\n // whether to continue\r\n if (progress < this.duration) {\r\n this.rAF = requestAnimationFrame(this.count)\r\n } else if (this.finalEndVal !== null) {\r\n // smart easing\r\n this.update(this.finalEndVal)\r\n } else {\r\n if (this.options.onCompleteCallback) {\r\n this.options.onCompleteCallback()\r\n }\r\n }\r\n }\r\n\r\n printValue(val: number): void {\r\n if (!this.el) return\r\n const result = this.formattingFn(val)\r\n if (this.options.plugin?.render) {\r\n this.options.plugin.render(this.el, result)\r\n return\r\n }\r\n if (this.el.tagName === 'INPUT') {\r\n const input = this.el as HTMLInputElement\r\n input.value = result\r\n } else if (this.el.tagName === 'text' || this.el.tagName === 'tspan') {\r\n this.el.textContent = result\r\n } else {\r\n this.el.innerHTML = result\r\n }\r\n }\r\n\r\n ensureNumber(n: any): boolean {\r\n return typeof n === 'number' && !isNaN(n)\r\n }\r\n\r\n validateValue(value: string | number): number {\r\n const newValue = Number(value)\r\n if (!this.ensureNumber(newValue)) {\r\n this.error = `[CountUp] invalid start or end value: ${value}`\r\n return null\r\n } else {\r\n return newValue\r\n }\r\n }\r\n\r\n private resetDuration(): void {\r\n this.startTime = null\r\n this.duration = Number(this.options.duration) * 1000\r\n this.remaining = this.duration\r\n }\r\n\r\n // default format and easing functions\r\n\r\n formatNumber = (num: number): string => {\r\n const neg = num < 0 ? '-' : ''\r\n let result: string, x1: string, x2: string, x3: string\r\n result = Math.abs(num).toFixed(this.options.decimalPlaces)\r\n result += ''\r\n const x = result.split('.')\r\n x1 = x[0]\r\n x2 = x.length > 1 ? this.options.decimal + x[1] : ''\r\n if (this.options.useGrouping) {\r\n x3 = ''\r\n let factor = 3,\r\n j = 0\r\n for (let i = 0, len = x1.length; i < len; ++i) {\r\n if (this.options.useIndianSeparators && i === 4) {\r\n factor = 2\r\n j = 1\r\n }\r\n if (i !== 0 && j % factor === 0) {\r\n x3 = this.options.separator + x3\r\n }\r\n j++\r\n x3 = x1[len - i - 1] + x3\r\n }\r\n x1 = x3\r\n }\r\n // optional numeral substitution\r\n if (this.options.numerals && this.options.numerals.length) {\r\n x1 = x1.replace(/[0-9]/g, (w) => this.options.numerals[+w])\r\n x2 = x2.replace(/[0-9]/g, (w) => this.options.numerals[+w])\r\n }\r\n return neg + this.options.prefix + x1 + x2 + this.options.suffix\r\n }\r\n\r\n // t: current time, b: beginning value, c: change in value, d: duration\r\n easeOutExpo = (t: number, b: number, c: number, d: number): number => (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue.mjs","sources":["../../../../../../packages/components/znCountTo/src/index.vue"],"sourcesContent":["<template>\r\n <div class=\"zn-count-to\">\r\n <slot name=\"prefix\">\r\n <span v-if=\"prefix\">{{ prefix }}</span>\r\n </slot>\r\n <p :class=\"`zn-count-to__content--outer`\">\r\n <span ref=\"countRef\" :class=\"[countClass]\">{{ init }}</span>\r\n <span :class=\"[unitClass]\">{{ unitText }}</span>\r\n </p>\r\n <slot name=\"suffix\">\r\n <span v-if=\"suffix\">{{ suffix }}</span>\r\n </slot>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\n import { CountUp } from './countUp'\r\n import { ref, watch, onMounted, onUnmounted, unref } from 'vue'\r\n\r\n defineOptions({ name: 'ZnCountTo' })\r\n\r\n interface Unit {\r\n value: number\r\n label: string\r\n }\r\n\r\n interface CountToProps {\r\n init?: number // 初始值,后面会被 startVal 覆盖\r\n startVal?: number // 起始值,即动画开始前显示的数值\r\n endVal: number // 结束值,即动画结束后显示的数值\r\n prefix?: string // 数值的前缀\r\n suffix?: string // 数值的后缀\r\n decimals?: number // 保留几位小数\r\n decimal?: string // 分隔整数和小数的符号,默认是小数点\r\n duration?: number // 动画持续的时间,单位是秒\r\n delay?: number // 动画延迟开始的时间,单位是秒\r\n autoplay?: boolean // 是否自动播放\r\n useEasing?: boolean // 是否使用 easing 动画效果\r\n useGroup?: boolean // 是否使用分组,分组后每三位会用一个符号分隔,即 1000 位 1,000\r\n separator?: string // 用于分组(useGroup)的符号\r\n simplify?: boolean // 是否简化显示,设为 true 后会使用 unit 单位来做相关省略\r\n unit?: Unit[] // 自定义单位,如 { value: 3, label: \"K+\" }, { value: 6, label: \"M+\" } 即大于 3 位数小于 6 位数的用 k+ 来做省略 1000 即显示为 1K+\r\n countClass?: string // count 数字的 class\r\n unitClass?: string // 单位的 class\r\n loop?: number // 循环次数\r\n }\r\n\r\n const props = withDefaults(defineProps<CountToProps>(), {\r\n init: 0,\r\n startVal: 0,\r\n prefix: '',\r\n suffix: '',\r\n decimals: 0,\r\n decimal: '.',\r\n duration: 3,\r\n delay: 0,\r\n autoplay: true,\r\n useEasing: true,\r\n useGroup: true,\r\n separator: ',',\r\n simplify: false,\r\n unit: () => [\r\n { value: 3, label: 'K+' },\r\n { value: 6, label: 'M+' },\r\n { value: 9, label: 'B+' }\r\n ],\r\n countClass: '',\r\n unitClass: '',\r\n loop: 1\r\n })\r\n\r\n type CountToEmits = {\r\n init: [counter: CountUp]\r\n finished: []\r\n }\r\n\r\n const emits = defineEmits<CountToEmits>()\r\n\r\n const countRef = ref()\r\n const counter = ref<CountUp>()\r\n const unitText = ref('')\r\n\r\n // endVal change & autoplay: true, restart animate\r\n watch(\r\n () => props.endVal,\r\n (value) => {\r\n if (props.autoplay) {\r\n counter.value.update(value)\r\n }\r\n }\r\n )\r\n\r\n onMounted(() => {\r\n if (props.autoplay) {\r\n initCountUp()\r\n setTimeout(() => {\r\n loopAnim()\r\n }, props.delay)\r\n }\r\n })\r\n\r\n onUnmounted(() => {\r\n cancelAnimationFrame(delayRafId)\r\n counter.value?.reset()\r\n })\r\n\r\n const initCountUp = () => {\r\n if (!unref(countRef)) return\r\n const endVal = getValue(props.endVal)\r\n counter.value = new CountUp(unref(countRef), endVal, {\r\n startVal: props.startVal,\r\n useEasing: props.useEasing,\r\n useGrouping: props.useGroup,\r\n separator: props.separator,\r\n decimal: props.decimal,\r\n duration: props.duration\r\n })\r\n if (unref(counter).error) {\r\n console.error(unref(counter).error)\r\n return\r\n }\r\n emits('init', unref(counter))\r\n }\r\n\r\n const getValue = (val: number) => {\r\n let res = 0\r\n if (props.simplify) {\r\n const { endVal, unitText: u } = transformValue(val)\r\n unitText.value = u\r\n res = endVal\r\n } else {\r\n res = val\r\n }\r\n return res\r\n }\r\n\r\n const transformValue = (val: number) => {\r\n const len = props.unit.length\r\n let res = {\r\n endVal: 0,\r\n unitText: ''\r\n }\r\n if (val < Math.pow(10, props.unit[0].value)) res.endVal = val\r\n else {\r\n for (let i = 1; i < len; i++) {\r\n if (val >= Math.pow(10, props.unit[i - 1].value) && val < Math.pow(10, props.unit[i].value)) {\r\n res = getHandleVal(val, i)\r\n }\r\n }\r\n }\r\n if (val > Math.pow(10, props.unit[len - 1].value)) {\r\n res = getHandleVal(val, len)\r\n }\r\n return res\r\n }\r\n\r\n const getHandleVal = (val: number, len: number) => {\r\n return {\r\n endVal: parseInt(val / Math.pow(10, props.unit[len - 1].value) + ''),\r\n unitText: props.unit[len - 1].label\r\n }\r\n }\r\n\r\n // loop animation\r\n const finished = ref(false)\r\n let loopCount = 0\r\n const loopAnim = () => {\r\n loopCount++\r\n counter.value.start(() => {\r\n const isTruly = typeof props.loop === 'boolean' && props.loop\r\n if (isTruly || props.loop > loopCount) {\r\n useDelay(() => {\r\n counter.value.reset()\r\n loopAnim()\r\n }, props.delay)\r\n } else {\r\n finished.value = true\r\n }\r\n })\r\n }\r\n\r\n let delayRafId: number = 0\r\n // delay to execute callback function\r\n const useDelay = (cb: () => unknown, seconds = 1) => {\r\n let startTime: number\r\n function count(timestamp: number) {\r\n if (!startTime) startTime = timestamp\r\n const diff = timestamp - startTime\r\n if (diff < seconds * 1000) {\r\n delayRafId = requestAnimationFrame(count)\r\n } else {\r\n cb()\r\n }\r\n }\r\n delayRafId = requestAnimationFrame(count)\r\n }\r\n\r\n watch(finished, (flag) => {\r\n if (flag) {\r\n emits('finished')\r\n }\r\n })\r\n\r\n const restart = () => {\r\n initCountUp()\r\n setTimeout(() => {\r\n loopAnim()\r\n }, props.delay)\r\n }\r\n\r\n const pause = () => {\r\n counter.value.pauseResume()\r\n }\r\n\r\n const reset = () => {\r\n counter.value.reset()\r\n }\r\n\r\n defineExpose({\r\n restart,\r\n pause,\r\n reset,\r\n init: initCountUp\r\n })\r\n</script>\r\n"],"names":["_openBlock","_createElementBlock","_renderSlot","_createCommentVNode","_createElementVNode","_normalizeClass","_toDisplayString"],"mappings":";;;;;;;AAKQ,MAAA,UAAA,GAAK,EALb,GAAA,EAAA,CAAA,EAAA,CAAA;;EAAA,KAAA,iCAAA,CAAA,2BAAA,CAAA,CAAA;;;AAEI,SAAA,YAEO,oBAFP,EAAA,MAAA,EAEO,OAAA,QAAA,EAAA;SADOA,SAAM,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,IAAAC,WAAA,IAAA,CAAA,MAAA,EAAlB,QAAuC,EAAA,IAAA,MAAA;AAAA,MAH7C,MAAA,CAAA,MAAA,IAAAF,SAAA,EAAA,EAAAC,kBAAA;AAAA;;;;;WAKIE,kBAGI,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,KAAA,CAAA;AAAA,IAFkBC,kBAAA,CAAA,KAAA,UAAA,EAAA;AAAA,MAAAA,kBAAA;AAAA,QAN1B,MAAA;AAAA,QAMoC;AAAA,UAAA,GAAA,EAAA,UAAA;AAAA,UAC9B,KAAgD,EAAAC,cAAA,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA;AAAA,SAAA;AAAA,QAAzCC,eAAA,CAPb,OAOqB,IAAA,CAAA;AAAA,QAAA,CAAA;AAAA;AAAA,OAAS;AAAA,MAAAF,kBAAA;AAAA,QAAM,MAAA;AAAA,QAAA;AAAA,UAAA,KAAA,EAAAC,cAAA,CAAA,CAAA,MAAA,CAAA,SAAA,CAAA,CAAA;AAAA,SAEhC;AAAA,QAEOC,eAAA,CAAA,OAAA,QAAA,CAAA;AAAA,QAAA,CAAA;AAAA;AAAA,OAAA;AAAA,KAAA,CAAA;AAAA,4BADL,QAAuC,EAAA,IAAA,MAAA;AAAA,MAV7C,MAAA,CAAA,MAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA;AAAA;;;;;;;;;AAEI,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"index.vue.mjs","sources":["../../../../../../packages/components/znCountTo/src/index.vue"],"sourcesContent":["<template>\r\n <div class=\"zn-count-to\">\r\n <slot name=\"prefix\">\r\n <span v-if=\"prefix\">{{ prefix }}</span>\r\n </slot>\r\n <p :class=\"`zn-count-to__content--outer`\">\r\n <span ref=\"countRef\" :class=\"[countClass]\">{{ init }}</span>\r\n <span :class=\"[unitClass]\">{{ unitText }}</span>\r\n </p>\r\n <slot name=\"suffix\">\r\n <span v-if=\"suffix\">{{ suffix }}</span>\r\n </slot>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\n import { CountUp } from './countUp'\r\n import { ref, watch, onMounted, onUnmounted, unref } from 'vue'\r\n\r\n defineOptions({ name: 'ZnCountTo' })\r\n\r\n interface Unit {\r\n value: number\r\n label: string\r\n }\r\n\r\n interface CountToProps {\r\n init?: number // 初始值,后面会被 startVal 覆盖\r\n startVal?: number // 起始值,即动画开始前显示的数值\r\n endVal: number // 结束值,即动画结束后显示的数值\r\n prefix?: string // 数值的前缀\r\n suffix?: string // 数值的后缀\r\n decimals?: number // 保留几位小数\r\n decimal?: string // 分隔整数和小数的符号,默认是小数点\r\n duration?: number // 动画持续的时间,单位是秒\r\n delay?: number // 动画延迟开始的时间,单位是秒\r\n autoplay?: boolean // 是否自动播放\r\n useEasing?: boolean // 是否使用 easing 动画效果\r\n useGroup?: boolean // 是否使用分组,分组后每三位会用一个符号分隔,即 1000 位 1,000\r\n separator?: string // 用于分组(useGroup)的符号\r\n simplify?: boolean // 是否简化显示,设为 true 后会使用 unit 单位来做相关省略\r\n unit?: Unit[] // 自定义单位,如 { value: 3, label: \"K+\" }, { value: 6, label: \"M+\" } 即大于 3 位数小于 6 位数的用 k+ 来做省略 1000 即显示为 1K+\r\n countClass?: string // count 数字的 class\r\n unitClass?: string // 单位的 class\r\n loop?: number // 循环次数\r\n }\r\n\r\n const props = withDefaults(defineProps<CountToProps>(), {\r\n init: 0,\r\n startVal: 0,\r\n prefix: '',\r\n suffix: '',\r\n decimals: 0,\r\n decimal: '.',\r\n duration: 3,\r\n delay: 0,\r\n autoplay: true,\r\n useEasing: true,\r\n useGroup: true,\r\n separator: ',',\r\n simplify: false,\r\n unit: () => [\r\n { value: 3, label: 'K+' },\r\n { value: 6, label: 'M+' },\r\n { value: 9, label: 'B+' }\r\n ],\r\n countClass: '',\r\n unitClass: '',\r\n loop: 1\r\n })\r\n\r\n type CountToEmits = {\r\n init: [counter: CountUp]\r\n finished: []\r\n }\r\n\r\n const emits = defineEmits<CountToEmits>()\r\n\r\n const countRef = ref()\r\n const counter = ref<CountUp>()\r\n const unitText = ref('')\r\n\r\n // endVal change & autoplay: true, restart animate\r\n watch(\r\n () => props.endVal,\r\n (value) => {\r\n if (props.autoplay) {\r\n counter.value.update(value)\r\n }\r\n }\r\n )\r\n\r\n onMounted(() => {\r\n if (props.autoplay) {\r\n initCountUp()\r\n setTimeout(() => {\r\n loopAnim()\r\n }, props.delay)\r\n }\r\n })\r\n\r\n onUnmounted(() => {\r\n cancelAnimationFrame(delayRafId)\r\n counter.value?.reset()\r\n })\r\n\r\n const initCountUp = () => {\r\n if (!unref(countRef)) return\r\n const endVal = getValue(props.endVal)\r\n counter.value = new CountUp(unref(countRef), endVal, {\r\n startVal: props.startVal,\r\n useEasing: props.useEasing,\r\n useGrouping: props.useGroup,\r\n separator: props.separator,\r\n decimal: props.decimal,\r\n duration: props.duration\r\n })\r\n if (unref(counter).error) {\r\n console.error(unref(counter).error)\r\n return\r\n }\r\n emits('init', unref(counter))\r\n }\r\n\r\n const getValue = (val: number) => {\r\n let res = 0\r\n if (props.simplify) {\r\n const { endVal, unitText: u } = transformValue(val)\r\n unitText.value = u\r\n res = endVal\r\n } else {\r\n res = val\r\n }\r\n return res\r\n }\r\n\r\n const transformValue = (val: number) => {\r\n const len = props.unit.length\r\n let res = {\r\n endVal: 0,\r\n unitText: ''\r\n }\r\n if (val < Math.pow(10, props.unit[0].value)) res.endVal = val\r\n else {\r\n for (let i = 1; i < len; i++) {\r\n if (val >= Math.pow(10, props.unit[i - 1].value) && val < Math.pow(10, props.unit[i].value)) {\r\n res = getHandleVal(val, i)\r\n }\r\n }\r\n }\r\n if (val > Math.pow(10, props.unit[len - 1].value)) {\r\n res = getHandleVal(val, len)\r\n }\r\n return res\r\n }\r\n\r\n const getHandleVal = (val: number, len: number) => {\r\n return {\r\n endVal: parseInt(val / Math.pow(10, props.unit[len - 1].value) + ''),\r\n unitText: props.unit[len - 1].label\r\n }\r\n }\r\n\r\n // loop animation\r\n const finished = ref(false)\r\n let loopCount = 0\r\n const loopAnim = () => {\r\n loopCount++\r\n counter.value.start(() => {\r\n const isTruly = typeof props.loop === 'boolean' && props.loop\r\n if (isTruly || props.loop > loopCount) {\r\n useDelay(() => {\r\n counter.value.reset()\r\n loopAnim()\r\n }, props.delay)\r\n } else {\r\n finished.value = true\r\n }\r\n })\r\n }\r\n\r\n let delayRafId: number = 0\r\n // delay to execute callback function\r\n const useDelay = (cb: () => unknown, seconds = 1) => {\r\n let startTime: number\r\n function count(timestamp: number) {\r\n if (!startTime) startTime = timestamp\r\n const diff = timestamp - startTime\r\n if (diff < seconds * 1000) {\r\n delayRafId = requestAnimationFrame(count)\r\n } else {\r\n cb()\r\n }\r\n }\r\n delayRafId = requestAnimationFrame(count)\r\n }\r\n\r\n watch(finished, (flag) => {\r\n if (flag) {\r\n emits('finished')\r\n }\r\n })\r\n\r\n const restart = () => {\r\n initCountUp()\r\n setTimeout(() => {\r\n loopAnim()\r\n }, props.delay)\r\n }\r\n\r\n const pause = () => {\r\n counter.value.pauseResume()\r\n }\r\n\r\n const reset = () => {\r\n counter.value.reset()\r\n }\r\n\r\n defineExpose({\r\n restart,\r\n pause,\r\n reset,\r\n init: initCountUp\r\n })\r\n</script>\r\n"],"names":["_openBlock","_createElementBlock","_renderSlot","_createCommentVNode","_createElementVNode","_normalizeClass","_toDisplayString"],"mappings":";;;;;;;AAKQ,MAAA,UAAA,GAAK,EALb,GAAA,EAAA,CAAA,EAAA;;EAAA,KAAA,iCAAA,CAAA,2BAAA,CAAA;;;AAEI,SAAA,YAEO,oBAFP,EAAA,MAAA,EAEO,OAAA,QAAA,EAAA;SADOA,SAAM,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,IAAAC,WAAA,IAAA,CAAA,MAAA,EAAlB,QAAuC,EAAA,IAAA,MAAA;AAAA,MAH7C,MAAA,CAAA,MAAA,IAAAF,SAAA,EAAA,EAAAC,kBAAA;AAAA;;;;;WAKIE,kBAGI,CAAA,MAAA,EAAA,IAAA;AAAA,KAAA,CAAA;AAAA,IAFkBC,kBAAA,CAAA,KAAA,UAAA,EAAA;AAAA,MAAAA,kBAAA;AAAA,QAN1B,MAAA;AAAA,QAMoC;AAAA,UAAA,GAAA,EAAA,UAAA;AAAA,UAC9B,KAAgD,EAAAC,cAAA,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA;AAAA,SAAA;AAAA,QAAzCC,eAAA,CAPb,OAOqB,IAAA,CAAA;AAAA,QAAA;AAAA;AAAA,OAAS;AAAA,MAAAF,kBAAA;AAAA,QAAM,MAAA;AAAA,QAAA;AAAA,UAAA,KAAA,EAAAC,cAAA,CAAA,CAAA,MAAA,CAAA,SAAA,CAAA;AAAA,SAEhC;AAAA,QAEOC,eAAA,CAAA,OAAA,QAAA,CAAA;AAAA,QAAA;AAAA;AAAA;AAAA,KAAA,CAAA;AAAA,4BADL,QAAuC,EAAA,IAAA,MAAA;AAAA,MAV7C,MAAA,CAAA,MAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA;AAAA;;;;;;;;;AAEI,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;;;;;"}
@@ -7,28 +7,28 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  ...{ name: "ZnCountTo" },
8
8
  __name: "index",
9
9
  props: {
10
- init: { default: 0 },
11
- startVal: { default: 0 },
12
- endVal: {},
13
- prefix: { default: "" },
14
- suffix: { default: "" },
15
- decimals: { default: 0 },
16
- decimal: { default: "." },
17
- duration: { default: 3 },
18
- delay: { default: 0 },
19
- autoplay: { type: Boolean, default: true },
20
- useEasing: { type: Boolean, default: true },
21
- useGroup: { type: Boolean, default: true },
22
- separator: { default: "," },
23
- simplify: { type: Boolean, default: false },
24
- unit: { default: /* @__PURE__ */ __name(() => [
10
+ init: { type: Number, required: false, default: 0 },
11
+ startVal: { type: Number, required: false, default: 0 },
12
+ endVal: { type: Number, required: true },
13
+ prefix: { type: String, required: false, default: "" },
14
+ suffix: { type: String, required: false, default: "" },
15
+ decimals: { type: Number, required: false, default: 0 },
16
+ decimal: { type: String, required: false, default: "." },
17
+ duration: { type: Number, required: false, default: 3 },
18
+ delay: { type: Number, required: false, default: 0 },
19
+ autoplay: { type: Boolean, required: false, default: true },
20
+ useEasing: { type: Boolean, required: false, default: true },
21
+ useGroup: { type: Boolean, required: false, default: true },
22
+ separator: { type: String, required: false, default: "," },
23
+ simplify: { type: Boolean, required: false, default: false },
24
+ unit: { type: Array, required: false, default: /* @__PURE__ */ __name(() => [
25
25
  { value: 3, label: "K+" },
26
26
  { value: 6, label: "M+" },
27
27
  { value: 9, label: "B+" }
28
28
  ], "default") },
29
- countClass: { default: "" },
30
- unitClass: { default: "" },
31
- loop: { default: 1 }
29
+ countClass: { type: String, required: false, default: "" },
30
+ unitClass: { type: String, required: false, default: "" },
31
+ loop: { type: Number, required: false, default: 1 }
32
32
  },
33
33
  emits: ["init", "finished"],
34
34
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -54,9 +54,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
54
54
  }
55
55
  });
56
56
  onUnmounted(() => {
57
- var _a;
58
57
  cancelAnimationFrame(delayRafId);
59
- (_a = counter.value) == null ? void 0 : _a.reset();
58
+ counter.value?.reset();
60
59
  });
61
60
  const initCountUp = /* @__PURE__ */ __name(() => {
62
61
  if (!unref(countRef)) return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.mjs","sources":["../../../../../../packages/components/znCountTo/src/index.vue"],"sourcesContent":["<template>\r\n <div class=\"zn-count-to\">\r\n <slot name=\"prefix\">\r\n <span v-if=\"prefix\">{{ prefix }}</span>\r\n </slot>\r\n <p :class=\"`zn-count-to__content--outer`\">\r\n <span ref=\"countRef\" :class=\"[countClass]\">{{ init }}</span>\r\n <span :class=\"[unitClass]\">{{ unitText }}</span>\r\n </p>\r\n <slot name=\"suffix\">\r\n <span v-if=\"suffix\">{{ suffix }}</span>\r\n </slot>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\n import { CountUp } from './countUp'\r\n import { ref, watch, onMounted, onUnmounted, unref } from 'vue'\r\n\r\n defineOptions({ name: 'ZnCountTo' })\r\n\r\n interface Unit {\r\n value: number\r\n label: string\r\n }\r\n\r\n interface CountToProps {\r\n init?: number // 初始值,后面会被 startVal 覆盖\r\n startVal?: number // 起始值,即动画开始前显示的数值\r\n endVal: number // 结束值,即动画结束后显示的数值\r\n prefix?: string // 数值的前缀\r\n suffix?: string // 数值的后缀\r\n decimals?: number // 保留几位小数\r\n decimal?: string // 分隔整数和小数的符号,默认是小数点\r\n duration?: number // 动画持续的时间,单位是秒\r\n delay?: number // 动画延迟开始的时间,单位是秒\r\n autoplay?: boolean // 是否自动播放\r\n useEasing?: boolean // 是否使用 easing 动画效果\r\n useGroup?: boolean // 是否使用分组,分组后每三位会用一个符号分隔,即 1000 位 1,000\r\n separator?: string // 用于分组(useGroup)的符号\r\n simplify?: boolean // 是否简化显示,设为 true 后会使用 unit 单位来做相关省略\r\n unit?: Unit[] // 自定义单位,如 { value: 3, label: \"K+\" }, { value: 6, label: \"M+\" } 即大于 3 位数小于 6 位数的用 k+ 来做省略 1000 即显示为 1K+\r\n countClass?: string // count 数字的 class\r\n unitClass?: string // 单位的 class\r\n loop?: number // 循环次数\r\n }\r\n\r\n const props = withDefaults(defineProps<CountToProps>(), {\r\n init: 0,\r\n startVal: 0,\r\n prefix: '',\r\n suffix: '',\r\n decimals: 0,\r\n decimal: '.',\r\n duration: 3,\r\n delay: 0,\r\n autoplay: true,\r\n useEasing: true,\r\n useGroup: true,\r\n separator: ',',\r\n simplify: false,\r\n unit: () => [\r\n { value: 3, label: 'K+' },\r\n { value: 6, label: 'M+' },\r\n { value: 9, label: 'B+' }\r\n ],\r\n countClass: '',\r\n unitClass: '',\r\n loop: 1\r\n })\r\n\r\n type CountToEmits = {\r\n init: [counter: CountUp]\r\n finished: []\r\n }\r\n\r\n const emits = defineEmits<CountToEmits>()\r\n\r\n const countRef = ref()\r\n const counter = ref<CountUp>()\r\n const unitText = ref('')\r\n\r\n // endVal change & autoplay: true, restart animate\r\n watch(\r\n () => props.endVal,\r\n (value) => {\r\n if (props.autoplay) {\r\n counter.value.update(value)\r\n }\r\n }\r\n )\r\n\r\n onMounted(() => {\r\n if (props.autoplay) {\r\n initCountUp()\r\n setTimeout(() => {\r\n loopAnim()\r\n }, props.delay)\r\n }\r\n })\r\n\r\n onUnmounted(() => {\r\n cancelAnimationFrame(delayRafId)\r\n counter.value?.reset()\r\n })\r\n\r\n const initCountUp = () => {\r\n if (!unref(countRef)) return\r\n const endVal = getValue(props.endVal)\r\n counter.value = new CountUp(unref(countRef), endVal, {\r\n startVal: props.startVal,\r\n useEasing: props.useEasing,\r\n useGrouping: props.useGroup,\r\n separator: props.separator,\r\n decimal: props.decimal,\r\n duration: props.duration\r\n })\r\n if (unref(counter).error) {\r\n console.error(unref(counter).error)\r\n return\r\n }\r\n emits('init', unref(counter))\r\n }\r\n\r\n const getValue = (val: number) => {\r\n let res = 0\r\n if (props.simplify) {\r\n const { endVal, unitText: u } = transformValue(val)\r\n unitText.value = u\r\n res = endVal\r\n } else {\r\n res = val\r\n }\r\n return res\r\n }\r\n\r\n const transformValue = (val: number) => {\r\n const len = props.unit.length\r\n let res = {\r\n endVal: 0,\r\n unitText: ''\r\n }\r\n if (val < Math.pow(10, props.unit[0].value)) res.endVal = val\r\n else {\r\n for (let i = 1; i < len; i++) {\r\n if (val >= Math.pow(10, props.unit[i - 1].value) && val < Math.pow(10, props.unit[i].value)) {\r\n res = getHandleVal(val, i)\r\n }\r\n }\r\n }\r\n if (val > Math.pow(10, props.unit[len - 1].value)) {\r\n res = getHandleVal(val, len)\r\n }\r\n return res\r\n }\r\n\r\n const getHandleVal = (val: number, len: number) => {\r\n return {\r\n endVal: parseInt(val / Math.pow(10, props.unit[len - 1].value) + ''),\r\n unitText: props.unit[len - 1].label\r\n }\r\n }\r\n\r\n // loop animation\r\n const finished = ref(false)\r\n let loopCount = 0\r\n const loopAnim = () => {\r\n loopCount++\r\n counter.value.start(() => {\r\n const isTruly = typeof props.loop === 'boolean' && props.loop\r\n if (isTruly || props.loop > loopCount) {\r\n useDelay(() => {\r\n counter.value.reset()\r\n loopAnim()\r\n }, props.delay)\r\n } else {\r\n finished.value = true\r\n }\r\n })\r\n }\r\n\r\n let delayRafId: number = 0\r\n // delay to execute callback function\r\n const useDelay = (cb: () => unknown, seconds = 1) => {\r\n let startTime: number\r\n function count(timestamp: number) {\r\n if (!startTime) startTime = timestamp\r\n const diff = timestamp - startTime\r\n if (diff < seconds * 1000) {\r\n delayRafId = requestAnimationFrame(count)\r\n } else {\r\n cb()\r\n }\r\n }\r\n delayRafId = requestAnimationFrame(count)\r\n }\r\n\r\n watch(finished, (flag) => {\r\n if (flag) {\r\n emits('finished')\r\n }\r\n })\r\n\r\n const restart = () => {\r\n initCountUp()\r\n setTimeout(() => {\r\n loopAnim()\r\n }, props.delay)\r\n }\r\n\r\n const pause = () => {\r\n counter.value.pauseResume()\r\n }\r\n\r\n const reset = () => {\r\n counter.value.reset()\r\n }\r\n\r\n defineExpose({\r\n restart,\r\n pause,\r\n reset,\r\n init: initCountUp\r\n })\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CE,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AA6Bd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAA,MAAM,WAAW,GAAI,EAAA,CAAA;AACrB,IAAA,MAAM,UAAU,GAAa,EAAA,CAAA;AAC7B,IAAM,MAAA,QAAA,GAAW,IAAI,EAAE,CAAA,CAAA;AAGvB,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,MAAA;AAAA,MACZ,CAAC,KAAU,KAAA;AACT,QAAA,IAAI,MAAM,QAAU,EAAA;AAClB,UAAQ,OAAA,CAAA,KAAA,CAAM,OAAO,KAAK,CAAA,CAAA;AAAA,SAC5B;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,MAAM,QAAU,EAAA;AAClB,QAAY,WAAA,EAAA,CAAA;AACZ,QAAA,UAAA,CAAW,MAAM;AACf,UAAS,QAAA,EAAA,CAAA;AAAA,SACX,EAAG,MAAM,KAAK,CAAA,CAAA;AAAA,OAChB;AAAA,KACD,CAAA,CAAA;AAED,IAAA,WAAA,CAAY,MAAM;;AAChB,MAAA,oBAAA,CAAqB,UAAU,CAAA,CAAA;AAC/B,MAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAAA,KAChB,CAAA,CAAA;AAED,IAAA,MAAM,8BAAoB,MAAA,CAAA,MAAA;AACxB,MAAI,IAAA,CAAC,KAAM,CAAA,QAAQ,CAAG,EAAA,OAAA;AACtB,MAAM,MAAA,MAAA,GAAS,QAAS,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AACpC,MAAA,OAAA,CAAQ,QAAQ,IAAI,OAAA,CAAQ,KAAM,CAAA,QAAQ,GAAG,MAAQ,EAAA;AAAA,QACnD,UAAU,KAAM,CAAA,QAAA;AAAA,QAChB,WAAW,KAAM,CAAA,SAAA;AAAA,QACjB,aAAa,KAAM,CAAA,QAAA;AAAA,QACnB,WAAW,KAAM,CAAA,SAAA;AAAA,QACjB,SAAS,KAAM,CAAA,OAAA;AAAA,QACf,UAAU,KAAM,CAAA,QAAA;AAAA,OACjB,CAAA,CAAA;AACD,MAAI,IAAA,KAAA,CAAM,OAAO,CAAA,CAAE,KAAO,EAAA;AACxB,QAAA,OAAA,CAAQ,KAAM,CAAA,KAAA,CAAM,OAAO,CAAA,CAAE,KAAK,CAAA,CAAA;AAClC,QAAA,OAAA;AAAA,OACF;AACA,MAAM,KAAA,CAAA,MAAA,EAAQ,KAAM,CAAA,OAAO,CAAC,CAAA,CAAA;AAAA,KAfV,EAAA,aAAA,CAAA,CAAA;AAkBpB,IAAM,MAAA,QAAA,2BAAY,GAAgB,KAAA;AAChC,MAAA,IAAI,GAAM,GAAA,CAAA,CAAA;AACV,MAAA,IAAI,MAAM,QAAU,EAAA;AAClB,QAAA,MAAM,EAAE,MAAQ,EAAA,QAAA,EAAU,CAAE,EAAA,GAAI,eAAe,GAAG,CAAA,CAAA;AAClD,QAAA,QAAA,CAAS,KAAQ,GAAA,CAAA,CAAA;AACjB,QAAM,GAAA,GAAA,MAAA,CAAA;AAAA,OACD,MAAA;AACL,QAAM,GAAA,GAAA,GAAA,CAAA;AAAA,OACR;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KATQ,EAAA,UAAA,CAAA,CAAA;AAYjB,IAAM,MAAA,cAAA,2BAAkB,GAAgB,KAAA;AACtC,MAAM,MAAA,GAAA,GAAM,MAAM,IAAK,CAAA,MAAA,CAAA;AACvB,MAAA,IAAI,GAAM,GAAA;AAAA,QACR,MAAQ,EAAA,CAAA;AAAA,QACR,QAAU,EAAA,EAAA;AAAA,OACZ,CAAA;AACA,MAAI,IAAA,GAAA,GAAM,IAAK,CAAA,GAAA,CAAI,EAAI,EAAA,KAAA,CAAM,IAAK,CAAA,CAAC,CAAE,CAAA,KAAK,CAAG,EAAA,GAAA,CAAI,MAAS,GAAA,GAAA,CAAA;AAAA,WACrD;AACH,QAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,GAAA,EAAK,CAAK,EAAA,EAAA;AAC5B,UAAI,IAAA,GAAA,IAAO,KAAK,GAAI,CAAA,EAAA,EAAI,MAAM,IAAK,CAAA,CAAA,GAAI,CAAC,CAAE,CAAA,KAAK,KAAK,GAAM,GAAA,IAAA,CAAK,IAAI,EAAI,EAAA,KAAA,CAAM,KAAK,CAAC,CAAA,CAAE,KAAK,CAAG,EAAA;AAC3F,YAAM,GAAA,GAAA,YAAA,CAAa,KAAK,CAAC,CAAA,CAAA;AAAA,WAC3B;AAAA,SACF;AAAA,OACF;AACA,MAAI,IAAA,GAAA,GAAM,IAAK,CAAA,GAAA,CAAI,EAAI,EAAA,KAAA,CAAM,KAAK,GAAM,GAAA,CAAC,CAAE,CAAA,KAAK,CAAG,EAAA;AACjD,QAAM,GAAA,GAAA,YAAA,CAAa,KAAK,GAAG,CAAA,CAAA;AAAA,OAC7B;AACA,MAAO,OAAA,GAAA,CAAA;AAAA,KAjBc,EAAA,gBAAA,CAAA,CAAA;AAoBvB,IAAM,MAAA,YAAA,mBAAgB,MAAA,CAAA,CAAA,GAAA,EAAa,GAAgB,KAAA;AACjD,MAAO,OAAA;AAAA,QACL,MAAQ,EAAA,QAAA,CAAS,GAAM,GAAA,IAAA,CAAK,GAAI,CAAA,EAAA,EAAI,KAAM,CAAA,IAAA,CAAK,GAAM,GAAA,CAAC,CAAE,CAAA,KAAK,IAAI,EAAE,CAAA;AAAA,QACnE,QAAU,EAAA,KAAA,CAAM,IAAK,CAAA,GAAA,GAAM,CAAC,CAAE,CAAA,KAAA;AAAA,OAChC,CAAA;AAAA,KAJmB,EAAA,cAAA,CAAA,CAAA;AAQrB,IAAM,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAC1B,IAAA,IAAI,SAAY,GAAA,CAAA,CAAA;AAChB,IAAA,MAAM,2BAAiB,MAAA,CAAA,MAAA;AACrB,MAAA,SAAA,EAAA,CAAA;AACA,MAAQ,OAAA,CAAA,KAAA,CAAM,MAAM,MAAM;AACxB,QAAA,MAAM,OAAU,GAAA,OAAO,KAAM,CAAA,IAAA,KAAS,aAAa,KAAM,CAAA,IAAA,CAAA;AACzD,QAAI,IAAA,OAAA,IAAW,KAAM,CAAA,IAAA,GAAO,SAAW,EAAA;AACrC,UAAA,QAAA,CAAS,MAAM;AACb,YAAA,OAAA,CAAQ,MAAM,KAAM,EAAA,CAAA;AACpB,YAAS,QAAA,EAAA,CAAA;AAAA,WACX,EAAG,MAAM,KAAK,CAAA,CAAA;AAAA,SACT,MAAA;AACL,UAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,SACnB;AAAA,OACD,CAAA,CAAA;AAAA,KAZc,EAAA,UAAA,CAAA,CAAA;AAejB,IAAA,IAAI,UAAqB,GAAA,CAAA,CAAA;AAEzB,IAAA,MAAM,QAAW,mBAAA,MAAA,CAAA,CAAC,EAAmB,EAAA,OAAA,GAAU,CAAM,KAAA;AACnD,MAAI,IAAA,SAAA,CAAA;AACJ,MAAA,SAAS,MAAM,SAAmB,EAAA;AAChC,QAAI,IAAA,CAAC,WAAuB,SAAA,GAAA,SAAA,CAAA;AAC5B,QAAA,MAAM,OAAO,SAAY,GAAA,SAAA,CAAA;AACzB,QAAI,IAAA,IAAA,GAAO,UAAU,GAAM,EAAA;AACzB,UAAA,UAAA,GAAa,sBAAsB,KAAK,CAAA,CAAA;AAAA,SACnC,MAAA;AACL,UAAG,EAAA,EAAA,CAAA;AAAA,SACL;AAAA,OACF;AARS,MAAA,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA,CAAA;AAST,MAAA,UAAA,GAAa,sBAAsB,KAAK,CAAA,CAAA;AAAA,KAXzB,EAAA,UAAA,CAAA,CAAA;AAcjB,IAAM,KAAA,CAAA,QAAA,EAAU,CAAC,IAAS,KAAA;AACxB,MAAA,IAAI,IAAM,EAAA;AACR,QAAA,KAAA,CAAM,UAAU,CAAA,CAAA;AAAA,OAClB;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,0BAAgB,MAAA,CAAA,MAAA;AACpB,MAAY,WAAA,EAAA,CAAA;AACZ,MAAA,UAAA,CAAW,MAAM;AACf,QAAS,QAAA,EAAA,CAAA;AAAA,OACX,EAAG,MAAM,KAAK,CAAA,CAAA;AAAA,KAJA,EAAA,SAAA,CAAA,CAAA;AAOhB,IAAA,MAAM,wBAAc,MAAA,CAAA,MAAA;AAClB,MAAA,OAAA,CAAQ,MAAM,WAAY,EAAA,CAAA;AAAA,KADd,EAAA,OAAA,CAAA,CAAA;AAId,IAAA,MAAM,wBAAc,MAAA,CAAA,MAAA;AAClB,MAAA,OAAA,CAAQ,MAAM,KAAM,EAAA,CAAA;AAAA,KADR,EAAA,OAAA,CAAA,CAAA;AAId,IAAa,QAAA,CAAA;AAAA,MACX,OAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAM,EAAA,WAAA;AAAA,KACP,CAAA,CAAA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../../../../packages/components/znCountTo/src/index.vue"],"sourcesContent":["<template>\r\n <div class=\"zn-count-to\">\r\n <slot name=\"prefix\">\r\n <span v-if=\"prefix\">{{ prefix }}</span>\r\n </slot>\r\n <p :class=\"`zn-count-to__content--outer`\">\r\n <span ref=\"countRef\" :class=\"[countClass]\">{{ init }}</span>\r\n <span :class=\"[unitClass]\">{{ unitText }}</span>\r\n </p>\r\n <slot name=\"suffix\">\r\n <span v-if=\"suffix\">{{ suffix }}</span>\r\n </slot>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\n import { CountUp } from './countUp'\r\n import { ref, watch, onMounted, onUnmounted, unref } from 'vue'\r\n\r\n defineOptions({ name: 'ZnCountTo' })\r\n\r\n interface Unit {\r\n value: number\r\n label: string\r\n }\r\n\r\n interface CountToProps {\r\n init?: number // 初始值,后面会被 startVal 覆盖\r\n startVal?: number // 起始值,即动画开始前显示的数值\r\n endVal: number // 结束值,即动画结束后显示的数值\r\n prefix?: string // 数值的前缀\r\n suffix?: string // 数值的后缀\r\n decimals?: number // 保留几位小数\r\n decimal?: string // 分隔整数和小数的符号,默认是小数点\r\n duration?: number // 动画持续的时间,单位是秒\r\n delay?: number // 动画延迟开始的时间,单位是秒\r\n autoplay?: boolean // 是否自动播放\r\n useEasing?: boolean // 是否使用 easing 动画效果\r\n useGroup?: boolean // 是否使用分组,分组后每三位会用一个符号分隔,即 1000 位 1,000\r\n separator?: string // 用于分组(useGroup)的符号\r\n simplify?: boolean // 是否简化显示,设为 true 后会使用 unit 单位来做相关省略\r\n unit?: Unit[] // 自定义单位,如 { value: 3, label: \"K+\" }, { value: 6, label: \"M+\" } 即大于 3 位数小于 6 位数的用 k+ 来做省略 1000 即显示为 1K+\r\n countClass?: string // count 数字的 class\r\n unitClass?: string // 单位的 class\r\n loop?: number // 循环次数\r\n }\r\n\r\n const props = defineProps({\n init: { type: Number, required: false, default: 0 },\n startVal: { type: Number, required: false, default: 0 },\n endVal: { type: Number, required: true },\n prefix: { type: String, required: false, default: '' },\n suffix: { type: String, required: false, default: '' },\n decimals: { type: Number, required: false, default: 0 },\n decimal: { type: String, required: false, default: '.' },\n duration: { type: Number, required: false, default: 3 },\n delay: { type: Number, required: false, default: 0 },\n autoplay: { type: Boolean, required: false, default: true },\n useEasing: { type: Boolean, required: false, default: true },\n useGroup: { type: Boolean, required: false, default: true },\n separator: { type: String, required: false, default: ',' },\n simplify: { type: Boolean, required: false, default: false },\n unit: { type: Array, required: false, default: () => [\r\n { value: 3, label: 'K+' },\r\n { value: 6, label: 'M+' },\r\n { value: 9, label: 'B+' }\r\n ] },\n countClass: { type: String, required: false, default: '' },\n unitClass: { type: String, required: false, default: '' },\n loop: { type: Number, required: false, default: 1 }\n})\r\n\r\n type CountToEmits = {\r\n init: [counter: CountUp]\r\n finished: []\r\n }\r\n\r\n const emits = defineEmits([\"init\", \"finished\"])\r\n\r\n const countRef = ref()\r\n const counter = ref<CountUp>()\r\n const unitText = ref('')\r\n\r\n // endVal change & autoplay: true, restart animate\r\n watch(\r\n () => props.endVal,\r\n (value) => {\r\n if (props.autoplay) {\r\n counter.value.update(value)\r\n }\r\n }\r\n )\r\n\r\n onMounted(() => {\r\n if (props.autoplay) {\r\n initCountUp()\r\n setTimeout(() => {\r\n loopAnim()\r\n }, props.delay)\r\n }\r\n })\r\n\r\n onUnmounted(() => {\r\n cancelAnimationFrame(delayRafId)\r\n counter.value?.reset()\r\n })\r\n\r\n const initCountUp = () => {\r\n if (!unref(countRef)) return\r\n const endVal = getValue(props.endVal)\r\n counter.value = new CountUp(unref(countRef), endVal, {\r\n startVal: props.startVal,\r\n useEasing: props.useEasing,\r\n useGrouping: props.useGroup,\r\n separator: props.separator,\r\n decimal: props.decimal,\r\n duration: props.duration\r\n })\r\n if (unref(counter).error) {\r\n console.error(unref(counter).error)\r\n return\r\n }\r\n emits('init', unref(counter))\r\n }\r\n\r\n const getValue = (val: number) => {\r\n let res = 0\r\n if (props.simplify) {\r\n const { endVal, unitText: u } = transformValue(val)\r\n unitText.value = u\r\n res = endVal\r\n } else {\r\n res = val\r\n }\r\n return res\r\n }\r\n\r\n const transformValue = (val: number) => {\r\n const len = props.unit.length\r\n let res = {\r\n endVal: 0,\r\n unitText: ''\r\n }\r\n if (val < Math.pow(10, props.unit[0].value)) res.endVal = val\r\n else {\r\n for (let i = 1; i < len; i++) {\r\n if (val >= Math.pow(10, props.unit[i - 1].value) && val < Math.pow(10, props.unit[i].value)) {\r\n res = getHandleVal(val, i)\r\n }\r\n }\r\n }\r\n if (val > Math.pow(10, props.unit[len - 1].value)) {\r\n res = getHandleVal(val, len)\r\n }\r\n return res\r\n }\r\n\r\n const getHandleVal = (val: number, len: number) => {\r\n return {\r\n endVal: parseInt(val / Math.pow(10, props.unit[len - 1].value) + ''),\r\n unitText: props.unit[len - 1].label\r\n }\r\n }\r\n\r\n // loop animation\r\n const finished = ref(false)\r\n let loopCount = 0\r\n const loopAnim = () => {\r\n loopCount++\r\n counter.value.start(() => {\r\n const isTruly = typeof props.loop === 'boolean' && props.loop\r\n if (isTruly || props.loop > loopCount) {\r\n useDelay(() => {\r\n counter.value.reset()\r\n loopAnim()\r\n }, props.delay)\r\n } else {\r\n finished.value = true\r\n }\r\n })\r\n }\r\n\r\n let delayRafId: number = 0\r\n // delay to execute callback function\r\n const useDelay = (cb: () => unknown, seconds = 1) => {\r\n let startTime: number\r\n function count(timestamp: number) {\r\n if (!startTime) startTime = timestamp\r\n const diff = timestamp - startTime\r\n if (diff < seconds * 1000) {\r\n delayRafId = requestAnimationFrame(count)\r\n } else {\r\n cb()\r\n }\r\n }\r\n delayRafId = requestAnimationFrame(count)\r\n }\r\n\r\n watch(finished, (flag) => {\r\n if (flag) {\r\n emits('finished')\r\n }\r\n })\r\n\r\n const restart = () => {\r\n initCountUp()\r\n setTimeout(() => {\r\n loopAnim()\r\n }, props.delay)\r\n }\r\n\r\n const pause = () => {\r\n counter.value.pauseResume()\r\n }\r\n\r\n const reset = () => {\r\n counter.value.reset()\r\n }\r\n\r\n defineExpose({\r\n restart,\r\n pause,\r\n reset,\r\n init: initCountUp\r\n })\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CE,IAAA,MAAM,KAAQ,GAAA,OAAA;AA8Bd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAEd,IAAA,MAAM,WAAW,GAAI,EAAA;AACrB,IAAA,MAAM,UAAU,GAAa,EAAA;AAC7B,IAAM,MAAA,QAAA,GAAW,IAAI,EAAE,CAAA;AAGvB,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,MAAA;AAAA,MACZ,CAAC,KAAU,KAAA;AACT,QAAA,IAAI,MAAM,QAAU,EAAA;AAClB,UAAQ,OAAA,CAAA,KAAA,CAAM,OAAO,KAAK,CAAA;AAAA;AAC5B;AACF,KACF;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,MAAM,QAAU,EAAA;AAClB,QAAY,WAAA,EAAA;AACZ,QAAA,UAAA,CAAW,MAAM;AACf,UAAS,QAAA,EAAA;AAAA,SACX,EAAG,MAAM,KAAK,CAAA;AAAA;AAChB,KACD,CAAA;AAED,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,oBAAA,CAAqB,UAAU,CAAA;AAC/B,MAAA,OAAA,CAAQ,OAAO,KAAM,EAAA;AAAA,KACtB,CAAA;AAED,IAAA,MAAM,8BAAoB,MAAA,CAAA,MAAA;AACxB,MAAI,IAAA,CAAC,KAAM,CAAA,QAAQ,CAAG,EAAA;AACtB,MAAM,MAAA,MAAA,GAAS,QAAS,CAAA,KAAA,CAAM,MAAM,CAAA;AACpC,MAAA,OAAA,CAAQ,QAAQ,IAAI,OAAA,CAAQ,KAAM,CAAA,QAAQ,GAAG,MAAQ,EAAA;AAAA,QACnD,UAAU,KAAM,CAAA,QAAA;AAAA,QAChB,WAAW,KAAM,CAAA,SAAA;AAAA,QACjB,aAAa,KAAM,CAAA,QAAA;AAAA,QACnB,WAAW,KAAM,CAAA,SAAA;AAAA,QACjB,SAAS,KAAM,CAAA,OAAA;AAAA,QACf,UAAU,KAAM,CAAA;AAAA,OACjB,CAAA;AACD,MAAI,IAAA,KAAA,CAAM,OAAO,CAAA,CAAE,KAAO,EAAA;AACxB,QAAA,OAAA,CAAQ,KAAM,CAAA,KAAA,CAAM,OAAO,CAAA,CAAE,KAAK,CAAA;AAClC,QAAA;AAAA;AAEF,MAAM,KAAA,CAAA,MAAA,EAAQ,KAAM,CAAA,OAAO,CAAC,CAAA;AAAA,KAfV,EAAA,aAAA,CAAA;AAkBpB,IAAM,MAAA,QAAA,2BAAY,GAAgB,KAAA;AAChC,MAAA,IAAI,GAAM,GAAA,CAAA;AACV,MAAA,IAAI,MAAM,QAAU,EAAA;AAClB,QAAA,MAAM,EAAE,MAAQ,EAAA,QAAA,EAAU,CAAE,EAAA,GAAI,eAAe,GAAG,CAAA;AAClD,QAAA,QAAA,CAAS,KAAQ,GAAA,CAAA;AACjB,QAAM,GAAA,GAAA,MAAA;AAAA,OACD,MAAA;AACL,QAAM,GAAA,GAAA,GAAA;AAAA;AAER,MAAO,OAAA,GAAA;AAAA,KATQ,EAAA,UAAA,CAAA;AAYjB,IAAM,MAAA,cAAA,2BAAkB,GAAgB,KAAA;AACtC,MAAM,MAAA,GAAA,GAAM,MAAM,IAAK,CAAA,MAAA;AACvB,MAAA,IAAI,GAAM,GAAA;AAAA,QACR,MAAQ,EAAA,CAAA;AAAA,QACR,QAAU,EAAA;AAAA,OACZ;AACA,MAAI,IAAA,GAAA,GAAM,IAAK,CAAA,GAAA,CAAI,EAAI,EAAA,KAAA,CAAM,IAAK,CAAA,CAAC,CAAE,CAAA,KAAK,CAAG,EAAA,GAAA,CAAI,MAAS,GAAA,GAAA;AAAA,WACrD;AACH,QAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,GAAA,EAAK,CAAK,EAAA,EAAA;AAC5B,UAAI,IAAA,GAAA,IAAO,KAAK,GAAI,CAAA,EAAA,EAAI,MAAM,IAAK,CAAA,CAAA,GAAI,CAAC,CAAE,CAAA,KAAK,KAAK,GAAM,GAAA,IAAA,CAAK,IAAI,EAAI,EAAA,KAAA,CAAM,KAAK,CAAC,CAAA,CAAE,KAAK,CAAG,EAAA;AAC3F,YAAM,GAAA,GAAA,YAAA,CAAa,KAAK,CAAC,CAAA;AAAA;AAC3B;AACF;AAEF,MAAI,IAAA,GAAA,GAAM,IAAK,CAAA,GAAA,CAAI,EAAI,EAAA,KAAA,CAAM,KAAK,GAAM,GAAA,CAAC,CAAE,CAAA,KAAK,CAAG,EAAA;AACjD,QAAM,GAAA,GAAA,YAAA,CAAa,KAAK,GAAG,CAAA;AAAA;AAE7B,MAAO,OAAA,GAAA;AAAA,KAjBc,EAAA,gBAAA,CAAA;AAoBvB,IAAM,MAAA,YAAA,mBAAgB,MAAA,CAAA,CAAA,GAAA,EAAa,GAAgB,KAAA;AACjD,MAAO,OAAA;AAAA,QACL,MAAQ,EAAA,QAAA,CAAS,GAAM,GAAA,IAAA,CAAK,GAAI,CAAA,EAAA,EAAI,KAAM,CAAA,IAAA,CAAK,GAAM,GAAA,CAAC,CAAE,CAAA,KAAK,IAAI,EAAE,CAAA;AAAA,QACnE,QAAU,EAAA,KAAA,CAAM,IAAK,CAAA,GAAA,GAAM,CAAC,CAAE,CAAA;AAAA,OAChC;AAAA,KAJmB,EAAA,cAAA,CAAA;AAQrB,IAAM,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA;AAC1B,IAAA,IAAI,SAAY,GAAA,CAAA;AAChB,IAAA,MAAM,2BAAiB,MAAA,CAAA,MAAA;AACrB,MAAA,SAAA,EAAA;AACA,MAAQ,OAAA,CAAA,KAAA,CAAM,MAAM,MAAM;AACxB,QAAA,MAAM,OAAU,GAAA,OAAO,KAAM,CAAA,IAAA,KAAS,aAAa,KAAM,CAAA,IAAA;AACzD,QAAI,IAAA,OAAA,IAAW,KAAM,CAAA,IAAA,GAAO,SAAW,EAAA;AACrC,UAAA,QAAA,CAAS,MAAM;AACb,YAAA,OAAA,CAAQ,MAAM,KAAM,EAAA;AACpB,YAAS,QAAA,EAAA;AAAA,WACX,EAAG,MAAM,KAAK,CAAA;AAAA,SACT,MAAA;AACL,UAAA,QAAA,CAAS,KAAQ,GAAA,IAAA;AAAA;AACnB,OACD,CAAA;AAAA,KAZc,EAAA,UAAA,CAAA;AAejB,IAAA,IAAI,UAAqB,GAAA,CAAA;AAEzB,IAAA,MAAM,QAAW,mBAAA,MAAA,CAAA,CAAC,EAAmB,EAAA,OAAA,GAAU,CAAM,KAAA;AACnD,MAAI,IAAA,SAAA;AACJ,MAAA,SAAS,MAAM,SAAmB,EAAA;AAChC,QAAI,IAAA,CAAC,WAAuB,SAAA,GAAA,SAAA;AAC5B,QAAA,MAAM,OAAO,SAAY,GAAA,SAAA;AACzB,QAAI,IAAA,IAAA,GAAO,UAAU,GAAM,EAAA;AACzB,UAAA,UAAA,GAAa,sBAAsB,KAAK,CAAA;AAAA,SACnC,MAAA;AACL,UAAG,EAAA,EAAA;AAAA;AACL;AAPO,MAAA,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA;AAST,MAAA,UAAA,GAAa,sBAAsB,KAAK,CAAA;AAAA,KAXzB,EAAA,UAAA,CAAA;AAcjB,IAAM,KAAA,CAAA,QAAA,EAAU,CAAC,IAAS,KAAA;AACxB,MAAA,IAAI,IAAM,EAAA;AACR,QAAA,KAAA,CAAM,UAAU,CAAA;AAAA;AAClB,KACD,CAAA;AAED,IAAA,MAAM,0BAAgB,MAAA,CAAA,MAAA;AACpB,MAAY,WAAA,EAAA;AACZ,MAAA,UAAA,CAAW,MAAM;AACf,QAAS,QAAA,EAAA;AAAA,OACX,EAAG,MAAM,KAAK,CAAA;AAAA,KAJA,EAAA,SAAA,CAAA;AAOhB,IAAA,MAAM,wBAAc,MAAA,CAAA,MAAA;AAClB,MAAA,OAAA,CAAQ,MAAM,WAAY,EAAA;AAAA,KADd,EAAA,OAAA,CAAA;AAId,IAAA,MAAM,wBAAc,MAAA,CAAA,MAAA;AAClB,MAAA,OAAA,CAAQ,MAAM,KAAM,EAAA;AAAA,KADR,EAAA,OAAA,CAAA;AAId,IAAa,QAAA,CAAA;AAAA,MACX,OAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAM,EAAA;AAAA,KACP,CAAA;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,11 @@
1
+ import { withInstall } from '../../utils/install.mjs';
2
+ import index from './src/index.vue.mjs';
3
+ export { default as ZnFormItem } from './src/components/ZnFormItem.vue.mjs';
4
+ export { ComponentNameEnum, formEnumMapKey } from './src/interface/index.mjs';
5
+ export { deleteObjProperty, getFormProp, getProp, getPx, handleNestProp, hyphenToCamelCase, isEmptyVal, isNumber, isObject, isResponsive, isString, setComponentSlots, setFormProp, setProp } from './src/helper/index.mjs';
6
+ export { useZnForm } from './src/hooks/useZnForm.mjs';
7
+
8
+ const ZnForm = withInstall(index);
9
+
10
+ export { ZnForm, ZnForm as default };
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/components/znForm/index.ts"],"sourcesContent":["import { withInstall } from '../../utils/install'\r\nimport index from './src/index.vue'\r\n\r\nimport ZnFormItem from './src/components/ZnFormItem.vue'\r\n// import Tree from './src/components/Tree.vue'\r\nexport type { ZnFormProps, ProFormOnEmits } from './src/index.vue'\r\n\r\nexport * from './src/interface'\r\nexport * from './src/helper'\r\nexport { useZnForm } from './src/hooks/useZnForm'\r\n\r\nexport { ZnFormItem }\r\n\r\nexport const ZnForm = withInstall(index) // 增加类型\r\n\r\nexport default ZnForm\r\n"],"names":[],"mappings":";;;;;;;AAaa,MAAA,MAAA,GAAS,YAAY,KAAK;;;;"}