fast-element-plus 1.0.6 → 1.0.9

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 (262) hide show
  1. package/dist/index.full.js +12988 -2359
  2. package/dist/index.full.js.map +1 -1
  3. package/dist/index.full.min.js +1 -1
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +1 -1
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +12988 -2359
  8. package/dist/index.full.mjs.map +1 -1
  9. package/dist/styles/index.css +41 -23
  10. package/dist/styles/index.css.map +1 -1
  11. package/es/components/avatar/src/avatar.d.ts +4 -4
  12. package/es/components/avatar/src/avatar.mjs +1 -1
  13. package/es/components/avatar/src/avatar.mjs.map +1 -1
  14. package/es/components/button/src/button.mjs.map +1 -1
  15. package/es/components/carNumber/src/carNumber.d.ts +13 -5
  16. package/es/components/carNumber/src/carNumber.mjs +1 -1
  17. package/es/components/carNumber/src/carNumber.mjs.map +1 -1
  18. package/es/components/contextMenu/src/contextMenu.mjs +1 -1
  19. package/es/components/contextMenu/src/contextMenu.mjs.map +1 -1
  20. package/es/components/dialog/src/dialog.d.ts +4 -4
  21. package/es/components/dialog/src/dialog.mjs +1 -1
  22. package/es/components/dialog/src/dialog.mjs.map +1 -1
  23. package/es/components/drawer/src/drawer.d.ts +12 -4
  24. package/es/components/drawer/src/drawer.mjs +1 -1
  25. package/es/components/drawer/src/drawer.mjs.map +1 -1
  26. package/es/components/form/src/form.mjs +1 -1
  27. package/es/components/form/src/form.mjs.map +1 -1
  28. package/es/components/form/src/formItem.mjs +1 -1
  29. package/es/components/form/src/formItem.mjs.map +1 -1
  30. package/es/components/formItemTip/src/formItemTip.mjs +1 -1
  31. package/es/components/formItemTip/src/formItemTip.mjs.map +1 -1
  32. package/es/components/icon/src/icon.mjs +1 -1
  33. package/es/components/icon/src/icon.mjs.map +1 -1
  34. package/es/components/iconSelector/src/iconSelector.mjs +1 -1
  35. package/es/components/iconSelector/src/iconSelector.mjs.map +1 -1
  36. package/es/components/image/src/image.mjs +1 -1
  37. package/es/components/image/src/image.mjs.map +1 -1
  38. package/es/components/index.d.ts +1 -0
  39. package/es/components/index.mjs +1 -1
  40. package/es/components/inputDialogPage/index.d.ts +14 -0
  41. package/es/components/inputDialogPage/index.mjs +2 -0
  42. package/es/components/inputDialogPage/index.mjs.map +1 -0
  43. package/es/components/inputDialogPage/src/inputDialogPage.d.ts +131 -0
  44. package/es/components/inputDialogPage/src/inputDialogPage.mjs +2 -0
  45. package/es/components/inputDialogPage/src/inputDialogPage.mjs.map +1 -0
  46. package/es/components/layoutGrid/src/layoutGrid.mjs +1 -1
  47. package/es/components/layoutGrid/src/layoutGrid.mjs.map +1 -1
  48. package/es/components/layoutGrid/src/layoutGridItem.d.ts +6 -6
  49. package/es/components/layoutGrid/src/layoutGridItem.mjs +1 -1
  50. package/es/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
  51. package/es/components/select/src/select.d.ts +39 -34
  52. package/es/components/select/src/select.mjs +1 -1
  53. package/es/components/select/src/select.mjs.map +1 -1
  54. package/es/components/select/src/selectOption.mjs +1 -1
  55. package/es/components/select/src/selectOption.mjs.map +1 -1
  56. package/es/components/selectPage/src/selectPage.d.ts +39 -25
  57. package/es/components/selectPage/src/selectPage.mjs +1 -1
  58. package/es/components/selectPage/src/selectPage.mjs.map +1 -1
  59. package/es/components/selectV2/src/selectV2.d.ts +28 -35
  60. package/es/components/selectV2/src/selectV2.mjs +1 -1
  61. package/es/components/selectV2/src/selectV2.mjs.map +1 -1
  62. package/es/components/table/src/table.d.ts +6 -6
  63. package/es/components/table/src/table.mjs +1 -1
  64. package/es/components/table/src/table.mjs.map +1 -1
  65. package/es/components/table/src/table.type.d.ts +1 -1
  66. package/es/components/table/src/table.type.mjs.map +1 -1
  67. package/es/components/table/src/tableColumn.mjs +1 -1
  68. package/es/components/table/src/tableColumn.mjs.map +1 -1
  69. package/es/components/table/src/tableColumnSettingDialog.mjs +1 -1
  70. package/es/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
  71. package/es/components/table/src/useTable.mjs +1 -1
  72. package/es/components/table/src/useTable.mjs.map +1 -1
  73. package/es/components/table/utils/table.mjs +1 -1
  74. package/es/components/table/utils/table.mjs.map +1 -1
  75. package/es/components/tree/src/tree.d.ts +68 -174
  76. package/es/components/tree/src/tree.mjs +1 -1
  77. package/es/components/tree/src/tree.mjs.map +1 -1
  78. package/es/components/treeSelect/src/treeSelect.d.ts +123 -221
  79. package/es/components/treeSelect/src/treeSelect.mjs +1 -1
  80. package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
  81. package/es/directives/click-copy/index.mjs.map +1 -1
  82. package/es/directives/click-debounce/index.mjs.map +1 -1
  83. package/es/directives/click-draggable/index.mjs.map +1 -1
  84. package/es/directives/click-icon-copy/index.mjs.map +1 -1
  85. package/es/directives/click-longpress/index.mjs.map +1 -1
  86. package/es/directives/click-throttle/index.mjs.map +1 -1
  87. package/es/index.mjs +1 -1
  88. package/es/index.mjs.map +1 -1
  89. package/es/make-installer.mjs +1 -1
  90. package/es/make-installer.mjs.map +1 -1
  91. package/es/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.mjs +2 -0
  92. package/es/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.mjs.map +1 -0
  93. package/es/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.mjs +2 -0
  94. package/es/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.mjs.map +1 -0
  95. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/arrow.mjs +2 -0
  96. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/arrow.mjs.map +1 -0
  97. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/content.mjs +2 -0
  98. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/content.mjs.map +1 -0
  99. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/defaults.mjs +2 -0
  100. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/defaults.mjs.map +1 -0
  101. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/useProps.mjs +2 -0
  102. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/useProps.mjs.map +1 -0
  103. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tag/src/tag.mjs +2 -0
  104. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tag/src/tag.mjs.map +1 -0
  105. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/teleport/src/teleport.mjs +2 -0
  106. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/teleport/src/teleport.mjs.map +1 -0
  107. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tooltip/src/content.mjs +2 -0
  108. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tooltip/src/content.mjs.map +1 -0
  109. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/event.mjs +2 -0
  110. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/event.mjs.map +1 -0
  111. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/size.mjs +2 -0
  112. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/size.mjs.map +1 -0
  113. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-aria/index.mjs +2 -0
  114. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-aria/index.mjs.map +1 -0
  115. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-delayed-toggle/index.mjs +2 -0
  116. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-delayed-toggle/index.mjs.map +1 -0
  117. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-empty-values/index.mjs +2 -0
  118. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-empty-values/index.mjs.map +1 -0
  119. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-size/index.mjs +2 -0
  120. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-size/index.mjs.map +1 -0
  121. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-timeout/index.mjs +2 -0
  122. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-timeout/index.mjs.map +1 -0
  123. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/error.mjs +2 -0
  124. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/error.mjs.map +1 -0
  125. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/types.mjs +2 -0
  126. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/types.mjs.map +1 -0
  127. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/icon.mjs +2 -0
  128. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/icon.mjs.map +1 -0
  129. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/props/runtime.mjs +2 -0
  130. package/es/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/props/runtime.mjs.map +1 -0
  131. package/es/version.d.ts +1 -1
  132. package/es/version.mjs +1 -1
  133. package/es/version.mjs.map +1 -1
  134. package/lib/components/avatar/src/avatar.d.ts +4 -4
  135. package/lib/components/avatar/src/avatar.js +1 -1
  136. package/lib/components/avatar/src/avatar.js.map +1 -1
  137. package/lib/components/button/src/button.js.map +1 -1
  138. package/lib/components/carNumber/src/carNumber.d.ts +13 -5
  139. package/lib/components/carNumber/src/carNumber.js +1 -1
  140. package/lib/components/carNumber/src/carNumber.js.map +1 -1
  141. package/lib/components/contextMenu/src/contextMenu.js +1 -1
  142. package/lib/components/contextMenu/src/contextMenu.js.map +1 -1
  143. package/lib/components/dialog/src/dialog.d.ts +4 -4
  144. package/lib/components/dialog/src/dialog.js +1 -1
  145. package/lib/components/dialog/src/dialog.js.map +1 -1
  146. package/lib/components/drawer/src/drawer.d.ts +12 -4
  147. package/lib/components/drawer/src/drawer.js +1 -1
  148. package/lib/components/drawer/src/drawer.js.map +1 -1
  149. package/lib/components/form/src/form.js +1 -1
  150. package/lib/components/form/src/form.js.map +1 -1
  151. package/lib/components/form/src/formItem.js +1 -1
  152. package/lib/components/form/src/formItem.js.map +1 -1
  153. package/lib/components/formItemTip/src/formItemTip.js +1 -1
  154. package/lib/components/formItemTip/src/formItemTip.js.map +1 -1
  155. package/lib/components/icon/src/icon.js +1 -1
  156. package/lib/components/icon/src/icon.js.map +1 -1
  157. package/lib/components/iconSelector/src/iconSelector.js +1 -1
  158. package/lib/components/iconSelector/src/iconSelector.js.map +1 -1
  159. package/lib/components/image/src/image.js +1 -1
  160. package/lib/components/image/src/image.js.map +1 -1
  161. package/lib/components/index.d.ts +1 -0
  162. package/lib/components/index.js +1 -1
  163. package/lib/components/inputDialogPage/index.d.ts +14 -0
  164. package/lib/components/inputDialogPage/index.js +2 -0
  165. package/lib/components/inputDialogPage/index.js.map +1 -0
  166. package/lib/components/inputDialogPage/src/inputDialogPage.d.ts +131 -0
  167. package/lib/components/inputDialogPage/src/inputDialogPage.js +2 -0
  168. package/lib/components/inputDialogPage/src/inputDialogPage.js.map +1 -0
  169. package/lib/components/layoutGrid/src/layoutGrid.js +1 -1
  170. package/lib/components/layoutGrid/src/layoutGrid.js.map +1 -1
  171. package/lib/components/layoutGrid/src/layoutGridItem.d.ts +6 -6
  172. package/lib/components/layoutGrid/src/layoutGridItem.js +1 -1
  173. package/lib/components/layoutGrid/src/layoutGridItem.js.map +1 -1
  174. package/lib/components/select/src/select.d.ts +39 -34
  175. package/lib/components/select/src/select.js +1 -1
  176. package/lib/components/select/src/select.js.map +1 -1
  177. package/lib/components/select/src/selectOption.js +1 -1
  178. package/lib/components/select/src/selectOption.js.map +1 -1
  179. package/lib/components/selectPage/src/selectPage.d.ts +39 -25
  180. package/lib/components/selectPage/src/selectPage.js +1 -1
  181. package/lib/components/selectPage/src/selectPage.js.map +1 -1
  182. package/lib/components/selectV2/src/selectV2.d.ts +28 -35
  183. package/lib/components/selectV2/src/selectV2.js +1 -1
  184. package/lib/components/selectV2/src/selectV2.js.map +1 -1
  185. package/lib/components/table/src/table.d.ts +6 -6
  186. package/lib/components/table/src/table.js +1 -1
  187. package/lib/components/table/src/table.js.map +1 -1
  188. package/lib/components/table/src/table.type.d.ts +1 -1
  189. package/lib/components/table/src/table.type.js.map +1 -1
  190. package/lib/components/table/src/tableColumn.js +1 -1
  191. package/lib/components/table/src/tableColumn.js.map +1 -1
  192. package/lib/components/table/src/tableColumnSettingDialog.js +1 -1
  193. package/lib/components/table/src/tableColumnSettingDialog.js.map +1 -1
  194. package/lib/components/table/src/useTable.js.map +1 -1
  195. package/lib/components/table/utils/table.js +1 -1
  196. package/lib/components/table/utils/table.js.map +1 -1
  197. package/lib/components/tree/src/tree.d.ts +68 -174
  198. package/lib/components/tree/src/tree.js +1 -1
  199. package/lib/components/tree/src/tree.js.map +1 -1
  200. package/lib/components/treeSelect/src/treeSelect.d.ts +123 -221
  201. package/lib/components/treeSelect/src/treeSelect.js +1 -1
  202. package/lib/components/treeSelect/src/treeSelect.js.map +1 -1
  203. package/lib/directives/click-copy/index.js.map +1 -1
  204. package/lib/directives/click-debounce/index.js.map +1 -1
  205. package/lib/directives/click-draggable/index.js.map +1 -1
  206. package/lib/directives/click-icon-copy/index.js.map +1 -1
  207. package/lib/directives/click-longpress/index.js.map +1 -1
  208. package/lib/directives/click-throttle/index.js.map +1 -1
  209. package/lib/index.js +1 -1
  210. package/lib/index.js.map +1 -1
  211. package/lib/make-installer.js.map +1 -1
  212. package/lib/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.js +2 -0
  213. package/lib/node_modules/.pnpm/@sxzz_popperjs-es@2.11.7/node_modules/@sxzz/popperjs-es/dist/index.js.map +1 -0
  214. package/lib/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.js +2 -0
  215. package/lib/node_modules/.pnpm/@vue_shared@3.5.26/node_modules/@vue/shared/dist/shared.esm-bundler.js.map +1 -0
  216. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/arrow.js +2 -0
  217. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/arrow.js.map +1 -0
  218. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/content.js +2 -0
  219. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/popper/src/content.js.map +1 -0
  220. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/defaults.js +2 -0
  221. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/defaults.js.map +1 -0
  222. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/useProps.js +2 -0
  223. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/select-v2/src/useProps.js.map +1 -0
  224. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tag/src/tag.js +2 -0
  225. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tag/src/tag.js.map +1 -0
  226. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/teleport/src/teleport.js +2 -0
  227. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/teleport/src/teleport.js.map +1 -0
  228. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tooltip/src/content.js +2 -0
  229. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/components/tooltip/src/content.js.map +1 -0
  230. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/event.js +2 -0
  231. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/event.js.map +1 -0
  232. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/size.js +2 -0
  233. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/constants/size.js.map +1 -0
  234. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-aria/index.js +2 -0
  235. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-aria/index.js.map +1 -0
  236. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-delayed-toggle/index.js +2 -0
  237. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-delayed-toggle/index.js.map +1 -0
  238. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-empty-values/index.js +2 -0
  239. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-empty-values/index.js.map +1 -0
  240. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-size/index.js +2 -0
  241. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-size/index.js.map +1 -0
  242. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-timeout/index.js +2 -0
  243. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/hooks/use-timeout/index.js.map +1 -0
  244. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/error.js +2 -0
  245. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/error.js.map +1 -0
  246. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/types.js +2 -0
  247. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/types.js.map +1 -0
  248. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/icon.js +2 -0
  249. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/icon.js.map +1 -0
  250. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/props/runtime.js +2 -0
  251. package/lib/node_modules/.pnpm/element-plus@2.13.0_vue@3.5.26_typescript@5.9.3_/node_modules/element-plus/es/utils/vue/props/runtime.js.map +1 -0
  252. package/lib/version.d.ts +1 -1
  253. package/lib/version.js +1 -1
  254. package/lib/version.js.map +1 -1
  255. package/package.json +3 -3
  256. package/styles/components/dialog.scss +1 -1
  257. package/styles/components/select.scss +35 -0
  258. package/styles/components/selectPage.scss +0 -30
  259. package/styles/components/table.scss +1 -1
  260. package/styles/components/tree.scss +17 -2
  261. package/styles/index.scss +1 -0
  262. package/types/components.d.ts +110 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("element-plus"),a=require("@element-plus/icons-vue");require("../../../constants/index.js");const l=require("@fast-china/utils"),r=require("lodash-unified"),o=require("./common.js"),u=require("../../../constants/regex.js");function n(t){return"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!e.isVNode(t)}const i=e.defineComponent({name:"FaCarNumber",props:{...t.inputProps,placeholder:{type:String,default:"请选择"}},emits:{"update:modelValue":e=>r.isString(e)||r.isNull(e),change:e=>r.isString(e)||r.isNull(e)},setup(r,{attrs:i,emit:d}){const s=e.reactive({value:l.withDefineType(),switchLetter:e.computed(()=>s.value?.length>=1),disabledButton:e.computed(()=>s.value?.length>=8)}),c=e.ref(),p=e.inject(t.formContextKey,void 0),v=e.inject(t.formItemContextKey,void 0),m=e=>2===e.length?`${e} ● `:e.length>2?`${e.slice(0,2)} ● ${e.slice(2)}`:e,_=e=>{s.value??="",s.value+=e},b=()=>{0!==s.value?.length&&(s.value=s.value.substring(0,s.value.length-1))},f=()=>{let e=!1;7===s.value.length?e=u.RegExps.CarNumber.test(s.value):8===s.value.length&&(e=u.RegExps.NewEnergyCarNumber.test(s.value)),e?(d("update:modelValue",s.value),d("change",s.value),v?.prop&&p?.validateField([v.prop])):v?.prop&&p?(d("update:modelValue",s.value),d("change",s.value),p.validateField([v.prop])):t.ElMessage.error("车牌号格式不正确"),c.value?.hide()},g=()=>{s.value=null,d("update:modelValue",null),d("change",null),v?.prop&&p?.validateField([v.prop])};e.watch(()=>r.modelValue,e=>{s.value=e.toString()},{immediate:!0});const h=l.useProps(r,t.inputProps,["modelValue","readonly","formatter"]);l.useRender(()=>e.createVNode(t.ElPopover,{ref:c,width:"auto",popperClass:"fa-car-number__popover",trigger:"click",showArrow:!1,showAfter:0,hideAfter:0},{reference:()=>e.createVNode(t.ElInput,e.mergeProps(h.value,{class:"fa-car-number__input",modelValue:s.value,"onUpdate:modelValue":e=>s.value=e,readonly:!0,formatter:m}),null),default:()=>e.createVNode(e.Fragment,null,[e.createVNode("div",{class:["fa-car-number__popover__area",s.switchLetter?"fa-car-number__popover__hide":""]},[o.CarNumberArea.map(a=>e.createVNode(t.ElButton,{disabled:s.disabledButton,onClick:()=>_(a)},n(a)?a:{default:()=>[a]}))]),e.createVNode("div",{class:["fa-car-number__popover__digit-letter",s.switchLetter?"":"fa-car-number__popover__hide"]},[o.CarNumberDigit.map(a=>e.createVNode(t.ElButton,{disabled:s.disabledButton,onClick:()=>_(a)},n(a)?a:{default:()=>[a]})),o.CarNumberLetter.map(a=>e.createVNode(t.ElButton,{disabled:s.disabledButton,onClick:()=>_(a)},n(a)?a:{default:()=>[a]}))]),e.createVNode("div",{class:"fa-car-number__popover__btn"},[e.createVNode(t.ElButton,{class:"fa-car-number__popover__btn__clear",disabled:null===s.value||0===s.value.length,onClick:g},{default:()=>[e.createTextVNode("清除")]}),e.createVNode(t.ElButton,{class:"fa-car-number__popover__btn__back",type:"danger",icon:a.Back,disabled:null===s.value||0===s.value.length,onClick:b},null),e.createVNode(t.ElButton,{class:"fa-car-number__popover__btn__confirm",type:"primary",disabled:null===s.value||s.value.length<7,onClick:f},{default:()=>[e.createTextVNode("确认")]})])])}))}});exports.default=i;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("element-plus"),r=require("@element-plus/icons-vue");require("../../../constants/index.js");const a=require("@fast-china/utils"),l=require("lodash-unified"),o=require("./common.js"),u=require("@vueuse/core"),n=require("../../../constants/regex.js");function i(t){return"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!e.isVNode(t)}const d=e.defineComponent({name:"FaCarNumber",props:{...t.inputProps,modelValue:{type:String,default:void 0},placeholder:{type:String,default:"请选择"}},emits:{"update:modelValue":e=>l.isString(e)||l.isNull(e),change:e=>l.isString(e)||l.isNull(e)},setup(l,{attrs:d,slots:s,emit:c,expose:p}){const v=u.useVModel(l,"modelValue",c),m=e.reactive({switchLetter:e.computed(()=>v.value?.length>=1),disabledButton:e.computed(()=>v.value?.length>=8)}),_=e.ref(),b=e.inject(t.formContextKey,void 0),f=e.inject(t.formItemContextKey,void 0),g=e=>2===e.length?`${e} ● `:e.length>2?`${e.slice(0,2)} ● ${e.slice(2)}`:e,h=e=>{v.value??="",v.value+=e},N=()=>{0!==v.value?.length&&(v.value=v.value.substring(0,v.value.length-1))},V=()=>{let e=!1;7===v.value.length?e=n.RegExps.CarNumber.test(v.value):8===v.value.length&&(e=n.RegExps.NewEnergyCarNumber.test(v.value)),e?(c("change",v.value),f?.prop&&b?.validateField([f.prop])):f?.prop&&b?(c("change",v.value),b.validateField([f.prop])):t.ElMessage.error("车牌号格式不正确"),_.value?.hide()},C=()=>{v.value=null,c("change",null),f?.prop&&b?.validateField([f.prop])},y=a.useProps(l,t.inputProps,["modelValue","readonly","formatter"]);a.useRender(()=>e.createVNode(t.ElPopover,{ref:_,width:"auto",popperClass:"fa-car-number__popover",trigger:"click",showArrow:!1,showAfter:0,hideAfter:0},{reference:()=>e.createVNode(t.ElInput,e.mergeProps(y.value,{class:"fa-car-number__input",modelValue:v.value,"onUpdate:modelValue":e=>v.value=e,readonly:!0,formatter:g}),null),default:()=>e.createVNode(e.Fragment,null,[e.createVNode("div",{class:["fa-car-number__popover__area",m.switchLetter?"fa-car-number__popover__hide":""]},[o.CarNumberArea.map(r=>e.createVNode(t.ElButton,{disabled:m.disabledButton,onClick:()=>h(r)},i(r)?r:{default:()=>[r]}))]),e.createVNode("div",{class:["fa-car-number__popover__digit-letter",m.switchLetter?"":"fa-car-number__popover__hide"]},[o.CarNumberDigit.map(r=>e.createVNode(t.ElButton,{disabled:m.disabledButton,onClick:()=>h(r)},i(r)?r:{default:()=>[r]})),o.CarNumberLetter.map(r=>e.createVNode(t.ElButton,{disabled:m.disabledButton,onClick:()=>h(r)},i(r)?r:{default:()=>[r]}))]),e.createVNode("div",{class:"fa-car-number__popover__btn"},[e.createVNode(t.ElButton,{class:"fa-car-number__popover__btn__clear",disabled:null===v.value||0===v.value.length,onClick:C},{default:()=>[e.createTextVNode("清除")]}),e.createVNode(t.ElButton,{class:"fa-car-number__popover__btn__back",type:"danger",icon:r.Back,disabled:null===v.value||0===v.value.length,onClick:N},null),e.createVNode(t.ElButton,{class:"fa-car-number__popover__btn__confirm",type:"primary",disabled:null===v.value||v.value.length<7,onClick:V},{default:()=>[e.createTextVNode("确认")]})])])}))}});exports.default=d;
2
2
  //# sourceMappingURL=carNumber.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"carNumber.js","sources":["../../../../../packages/components/carNumber/src/carNumber.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, inject, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElInput, ElMessage, ElPopover, formContextKey, formItemContextKey, inputProps } from \"element-plus\";\nimport { Back } from \"@element-plus/icons-vue\";\nimport { RegExps } from \"@fast-element-plus/constants\";\nimport { useProps, useRender, withDefineType } from \"@fast-china/utils\";\nimport { isNull, isString } from \"lodash-unified\";\nimport { CarNumberArea, CarNumberDigit, CarNumberLetter } from \"./common\";\nimport type { PopoverInstance } from \"element-plus\";\n\nexport default defineComponent({\n\tname: \"FaCarNumber\",\n\tprops: {\n\t\t...inputProps,\n\t\t/** @description placeholder */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: \"请选择\",\n\t\t},\n\t},\n\temits: {\n\t\t/** @description v-model 回调 */\n\t\t\"update:modelValue\": (value: string) => isString(value) || isNull(value),\n\t\t/** @description 改变 */\n\t\tchange: (value: string) => isString(value) || isNull(value),\n\t},\n\tsetup(props, { attrs, emit }) {\n\t\tconst state = reactive({\n\t\t\tvalue: withDefineType<string>(),\n\t\t\tswitchLetter: computed(() => {\n\t\t\t\tif (state.value?.length >= 1) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t\tdisabledButton: computed(() => {\n\t\t\t\tif (state.value?.length >= 8) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t});\n\n\t\tconst popoverRef = ref<PopoverInstance>();\n\t\t// 获取 el-form 组件上下文\n\t\tconst formContext = inject(formContextKey, undefined);\n\t\t// 获取 el-form-item 组件上下文\n\t\tconst formItemContext = inject(formItemContextKey, undefined);\n\n\t\tconst handleInputFormatter = (value: string): string => {\n\t\t\tif (value.length === 2) {\n\t\t\t\treturn `${value} ● `;\n\t\t\t} else if (value.length > 2) {\n\t\t\t\treturn `${value.slice(0, 2)} ● ${value.slice(2)}`;\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t};\n\n\t\tconst handleSelectCarNumber = (value: string): void => {\n\t\t\tstate.value ??= \"\";\n\t\t\tstate.value += value;\n\t\t};\n\n\t\tconst handleBackClick = (): void => {\n\t\t\tif (state.value?.length === 0) return;\n\t\t\tstate.value = state.value.substring(0, state.value.length - 1);\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tlet success = false;\n\t\t\tif (state.value.length === 7) {\n\t\t\t\tsuccess = RegExps.CarNumber.test(state.value);\n\t\t\t} else if (state.value.length === 8) {\n\t\t\t\tsuccess = RegExps.NewEnergyCarNumber.test(state.value);\n\t\t\t}\n\t\t\tif (success) {\n\t\t\t\temit(\"update:modelValue\", state.value);\n\t\t\t\temit(\"change\", state.value);\n\t\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\t\tformItemContext?.prop && formContext?.validateField([formItemContext.prop]);\n\t\t\t} else {\n\t\t\t\tif (formItemContext?.prop && formContext) {\n\t\t\t\t\temit(\"update:modelValue\", state.value);\n\t\t\t\t\temit(\"change\", state.value);\n\t\t\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\t\t\tformContext.validateField([formItemContext.prop]);\n\t\t\t\t} else {\n\t\t\t\t\tElMessage.error(\"车牌号格式不正确\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tpopoverRef.value?.hide();\n\t\t};\n\n\t\tconst handleClearClick = (): void => {\n\t\t\tstate.value = null;\n\t\t\temit(\"update:modelValue\", null);\n\t\t\temit(\"change\", null);\n\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\tformItemContext?.prop && formContext?.validateField([formItemContext.prop]);\n\t\t};\n\n\t\twatch(\n\t\t\t() => props.modelValue,\n\t\t\t(newValue) => {\n\t\t\t\tstate.value = newValue.toString();\n\t\t\t},\n\t\t\t{\n\t\t\t\timmediate: true,\n\t\t\t}\n\t\t);\n\n\t\tconst elInputProps = useProps(props, inputProps, [\"modelValue\", \"readonly\", \"formatter\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElPopover\n\t\t\t\tref={popoverRef}\n\t\t\t\twidth=\"auto\"\n\t\t\t\tpopperClass=\"fa-car-number__popover\"\n\t\t\t\ttrigger=\"click\"\n\t\t\t\tshowArrow={false}\n\t\t\t\tshowAfter={0}\n\t\t\t\thideAfter={0}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\treference: () => (\n\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t{...elInputProps.value}\n\t\t\t\t\t\t\tclass=\"fa-car-number__input\"\n\t\t\t\t\t\t\tvModel={state.value}\n\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\tformatter={handleInputFormatter}\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class={[\"fa-car-number__popover__area\", state.switchLetter ? \"fa-car-number__popover__hide\" : \"\"]}>\n\t\t\t\t\t\t\t\t{CarNumberArea.map((area) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(area)}>\n\t\t\t\t\t\t\t\t\t\t{area}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class={[\"fa-car-number__popover__digit-letter\", state.switchLetter ? \"\" : \"fa-car-number__popover__hide\"]}>\n\t\t\t\t\t\t\t\t{CarNumberDigit.map((digit) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(digit)}>\n\t\t\t\t\t\t\t\t\t\t{digit}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{CarNumberLetter.map((letter) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(letter)}>\n\t\t\t\t\t\t\t\t\t\t{letter}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"fa-car-number__popover__btn\">\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__clear\"\n\t\t\t\t\t\t\t\t\tdisabled={state.value === null || state.value.length === 0}\n\t\t\t\t\t\t\t\t\tonClick={handleClearClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t清除\n\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__back\"\n\t\t\t\t\t\t\t\t\ttype=\"danger\"\n\t\t\t\t\t\t\t\t\ticon={Back}\n\t\t\t\t\t\t\t\t\tdisabled={state.value === null || state.value.length === 0}\n\t\t\t\t\t\t\t\t\tonClick={handleBackClick}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__confirm\"\n\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\tdisabled={state.value === null || state.value.length < 7}\n\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t确认\n\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</ElPopover>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","CarNumber","name","props","inputProps","placeholder","type","String","default","emits","isString","value","isNull","change","setup","attrs","emit","state","reactive","withDefineType","switchLetter","computed","length","disabledButton","popoverRef","ref","formContext","inject","formContextKey","undefined","formItemContext","formItemContextKey","handleInputFormatter","slice","handleSelectCarNumber","handleBackClick","substring","handleConfirmClick","success","RegExps","test","NewEnergyCarNumber","prop","validateField","ElMessage","error","hide","handleClearClick","watch","modelValue","newValue","immediate","elInputProps","useProps","useRender","_createVNode","ElPopover","width","popperClass","trigger","showArrow","showAfter","hideAfter","reference","ElInput","_mergeProps","class","$event","readonly","formatter","_Fragment","CarNumberArea","map","area","ElButton","disabled","onClick","CarNumberDigit","digit","CarNumberLetter","letter","_createTextVNode","icon","Back"],"mappings":"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"}
1
+ {"version":3,"file":"carNumber.js","sources":["../../../../../packages/components/carNumber/src/carNumber.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, inject, reactive, ref } from \"vue\";\nimport { ElButton, ElInput, ElMessage, ElPopover, formContextKey, formItemContextKey, inputProps } from \"element-plus\";\nimport { Back } from \"@element-plus/icons-vue\";\nimport { RegExps } from \"@fast-element-plus/constants\";\nimport { useProps, useRender } from \"@fast-china/utils\";\nimport { isNull, isString } from \"lodash-unified\";\nimport { CarNumberArea, CarNumberDigit, CarNumberLetter } from \"./common\";\nimport type { PopoverInstance } from \"element-plus\";\nimport { useVModel } from \"@vueuse/core\";\n\nexport default defineComponent({\n\tname: \"FaCarNumber\",\n\tprops: {\n\t\t...inputProps,\n\t\t/** @description v-model绑定值 */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t\t/** @description placeholder */\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: \"请选择\",\n\t\t},\n\t},\n\temits: {\n\t\t/** @description v-model 回调 */\n\t\t\"update:modelValue\": (value: string) => isString(value) || isNull(value),\n\t\t/** @description 改变 */\n\t\tchange: (value: string) => isString(value) || isNull(value),\n\t},\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst modelValue = useVModel(props, \"modelValue\", emit);\n\n\t\tconst state = reactive({\n\t\t\tswitchLetter: computed(() => {\n\t\t\t\tif (modelValue.value?.length >= 1) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t\tdisabledButton: computed(() => {\n\t\t\t\tif (modelValue.value?.length >= 8) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t});\n\n\t\tconst popoverRef = ref<PopoverInstance>();\n\t\t// 获取 el-form 组件上下文\n\t\tconst formContext = inject(formContextKey, undefined);\n\t\t// 获取 el-form-item 组件上下文\n\t\tconst formItemContext = inject(formItemContextKey, undefined);\n\n\t\tconst handleInputFormatter = (value: string): string => {\n\t\t\tif (value.length === 2) {\n\t\t\t\treturn `${value} ● `;\n\t\t\t} else if (value.length > 2) {\n\t\t\t\treturn `${value.slice(0, 2)} ● ${value.slice(2)}`;\n\t\t\t} else {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t};\n\n\t\tconst handleSelectCarNumber = (value: string): void => {\n\t\t\tmodelValue.value ??= \"\";\n\t\t\tmodelValue.value += value;\n\t\t};\n\n\t\tconst handleBackClick = (): void => {\n\t\t\tif (modelValue.value?.length === 0) return;\n\t\t\tmodelValue.value = modelValue.value.substring(0, modelValue.value.length - 1);\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tlet success = false;\n\t\t\tif (modelValue.value.length === 7) {\n\t\t\t\tsuccess = RegExps.CarNumber.test(modelValue.value);\n\t\t\t} else if (modelValue.value.length === 8) {\n\t\t\t\tsuccess = RegExps.NewEnergyCarNumber.test(modelValue.value);\n\t\t\t}\n\t\t\tif (success) {\n\t\t\t\temit(\"change\", modelValue.value);\n\t\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\t\tformItemContext?.prop && formContext?.validateField([formItemContext.prop]);\n\t\t\t} else {\n\t\t\t\tif (formItemContext?.prop && formContext) {\n\t\t\t\t\temit(\"change\", modelValue.value);\n\t\t\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\t\t\tformContext.validateField([formItemContext.prop]);\n\t\t\t\t} else {\n\t\t\t\t\tElMessage.error(\"车牌号格式不正确\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tpopoverRef.value?.hide();\n\t\t};\n\n\t\tconst handleClearClick = (): void => {\n\t\t\tmodelValue.value = null;\n\t\t\temit(\"change\", null);\n\t\t\t// 调用 el-form 内部的校验方法(可自动校验)\n\t\t\tformItemContext?.prop && formContext?.validateField([formItemContext.prop]);\n\t\t};\n\n\t\tconst elInputProps = useProps(props, inputProps, [\"modelValue\", \"readonly\", \"formatter\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElPopover\n\t\t\t\tref={popoverRef}\n\t\t\t\twidth=\"auto\"\n\t\t\t\tpopperClass=\"fa-car-number__popover\"\n\t\t\t\ttrigger=\"click\"\n\t\t\t\tshowArrow={false}\n\t\t\t\tshowAfter={0}\n\t\t\t\thideAfter={0}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\treference: () => (\n\t\t\t\t\t\t<ElInput\n\t\t\t\t\t\t\t{...elInputProps.value}\n\t\t\t\t\t\t\tclass=\"fa-car-number__input\"\n\t\t\t\t\t\t\tvModel={modelValue.value}\n\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t\tformatter={handleInputFormatter}\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class={[\"fa-car-number__popover__area\", state.switchLetter ? \"fa-car-number__popover__hide\" : \"\"]}>\n\t\t\t\t\t\t\t\t{CarNumberArea.map((area) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(area)}>\n\t\t\t\t\t\t\t\t\t\t{area}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class={[\"fa-car-number__popover__digit-letter\", state.switchLetter ? \"\" : \"fa-car-number__popover__hide\"]}>\n\t\t\t\t\t\t\t\t{CarNumberDigit.map((digit) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(digit)}>\n\t\t\t\t\t\t\t\t\t\t{digit}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{CarNumberLetter.map((letter) => (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.disabledButton} onClick={() => handleSelectCarNumber(letter)}>\n\t\t\t\t\t\t\t\t\t\t{letter}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"fa-car-number__popover__btn\">\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__clear\"\n\t\t\t\t\t\t\t\t\tdisabled={modelValue.value === null || modelValue.value.length === 0}\n\t\t\t\t\t\t\t\t\tonClick={handleClearClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t清除\n\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__back\"\n\t\t\t\t\t\t\t\t\ttype=\"danger\"\n\t\t\t\t\t\t\t\t\ticon={Back}\n\t\t\t\t\t\t\t\t\tdisabled={modelValue.value === null || modelValue.value.length === 0}\n\t\t\t\t\t\t\t\t\tonClick={handleBackClick}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\tclass=\"fa-car-number__popover__btn__confirm\"\n\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\tdisabled={modelValue.value === null || modelValue.value.length < 7}\n\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t确认\n\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</ElPopover>\n\t\t));\n\t},\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","CarNumber","name","props","inputProps","modelValue","type","String","default","undefined","placeholder","emits","isString","value","isNull","change","setup","attrs","slots","emit","expose","useVModel","state","reactive","switchLetter","computed","length","disabledButton","popoverRef","ref","formContext","inject","formContextKey","formItemContext","formItemContextKey","handleInputFormatter","slice","handleSelectCarNumber","handleBackClick","substring","handleConfirmClick","success","RegExps","test","NewEnergyCarNumber","prop","validateField","ElMessage","error","hide","handleClearClick","elInputProps","useProps","useRender","_createVNode","ElPopover","width","popperClass","trigger","showArrow","showAfter","hideAfter","reference","ElInput","_mergeProps","class","$event","readonly","formatter","_Fragment","CarNumberArea","map","area","ElButton","disabled","onClick","CarNumberDigit","digit","CarNumberLetter","letter","_createTextVNode","icon","Back"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),i=require("element-plus"),t=require("../../icon/index.js"),o=require("@fast-china/utils"),l=require("@vueuse/core"),s=require("lodash-unified"),n=e.defineComponent({name:"FaContextMenu",props:{data:{type:o.definePropType(Array),default:()=>[]}},emits:{click:(e,i)=>e instanceof MouseEvent&&s.isObject(i)},setup(s,{emit:n,expose:a}){const r=i.useGlobalSize(),u=e.reactive({visible:!1,axis:{x:0,y:0}}),c=()=>{u.visible=!1};return e.onMounted(()=>{l.useEventListener(document,"click",c)}),o.useRender(()=>e.createVNode(e.Transition,{name:"el-zoom-in-top"},{default:()=>[e.withDirectives(e.createVNode("div",{class:["fa-context-menu",`fa-context-menu-${r.value}`,"el-popper el-dropdown__popper"],style:{top:`${u.axis.y+5}px`,left:`${u.axis.x+14}px`},key:Math.random()},[e.createVNode("ul",{class:"el-dropdown-menu"},[s.data.filter(e=>!e.hide).map(i=>e.createVNode("li",{class:["el-dropdown-menu__item",!0===i?.disabled?"is-disabled":""],tabIndex:"-1",onClick:e=>{((e,i)=>{i?.disabled||(i?.click&&i.click(e,i),n("click",e,i))})(e,i)}},[i?.icon?e.createVNode(t.FaIcon,{name:i?.icon},null):null,e.createVNode("span",null,[i.label])]))])]),[[e.vShow,u.visible]])]})),o.useExpose(a,{visible:e.computed(()=>u.visible),open:(e={x:0,y:0})=>{u.axis=e,u.visible=!0},close:c})}});exports.default=n;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),i=require("element-plus"),t=require("../../icon/index.js"),o=require("@fast-china/utils"),s=require("@vueuse/core"),l=require("lodash-unified"),n=e.defineComponent({name:"FaContextMenu",props:{data:{type:o.definePropType(Array),default:()=>[]}},emits:{click:(e,i)=>e instanceof MouseEvent&&l.isObject(i)},setup(l,{attrs:n,slots:a,emit:r,expose:u}){const c=i.useGlobalSize(),d=e.reactive({visible:!1,axis:{x:0,y:0}}),p=()=>{d.visible=!1};return e.onMounted(()=>{s.useEventListener(document,"click",p)}),o.useRender(()=>e.createVNode(e.Transition,{name:"el-zoom-in-top"},{default:()=>[e.withDirectives(e.createVNode("div",{class:["fa-context-menu",`fa-context-menu-${c.value}`,"el-popper el-dropdown__popper"],style:{top:`${d.axis.y+5}px`,left:`${d.axis.x+14}px`},key:Math.random()},[e.createVNode("ul",{class:"el-dropdown-menu"},[l.data.filter(e=>!e.hide).map(i=>e.createVNode("li",{class:["el-dropdown-menu__item",!0===i?.disabled?"is-disabled":""],tabIndex:"-1",onClick:e=>{((e,i)=>{i?.disabled||(i?.click&&i.click(e,i),r("click",e,i))})(e,i)}},[i?.icon?e.createVNode(t.FaIcon,{name:i?.icon},null):null,e.createVNode("span",null,[i.label])]))])]),[[e.vShow,d.visible]])]})),o.useExpose(u,{visible:e.computed(()=>d.visible),open:(e={x:0,y:0})=>{d.axis=e,d.visible=!0},close:p})}});exports.default=n;
2
2
  //# sourceMappingURL=contextMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contextMenu.js","sources":["../../../../../packages/components/contextMenu/src/contextMenu.tsx"],"sourcesContent":["import { Transition, computed, defineComponent, onMounted, reactive } from \"vue\";\nimport { useGlobalSize } from \"element-plus\";\nimport { FaIcon } from \"@fast-element-plus/components/icon\";\nimport { definePropType, useExpose, useRender } from \"@fast-china/utils\";\nimport { useEventListener } from \"@vueuse/core\";\nimport { isObject } from \"lodash-unified\";\nimport type { FaContextMenuData } from \"./contextMenu.type\";\n\nexport default defineComponent({\n\tname: \"FaContextMenu\",\n\tprops: {\n\t\t/** @description 数据 */\n\t\tdata: {\n\t\t\ttype: definePropType<FaContextMenuData[]>(Array),\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\temits: {\n\t\t/** @description 点击事件 */\n\t\tclick: (event: MouseEvent, data: FaContextMenuData) => event instanceof MouseEvent && isObject(data),\n\t},\n\tsetup(props, { emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tvisible: false,\n\t\t\taxis: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t},\n\t\t});\n\n\t\tconst handleClick = (event: MouseEvent, data: FaContextMenuData): void => {\n\t\t\tif (data?.disabled) return;\n\t\t\tdata?.click && data.click(event, data);\n\t\t\temit(\"click\", event, data);\n\t\t};\n\n\t\tconst open = (axis: { x: number; y: number } = { x: 0, y: 0 }): void => {\n\t\t\tstate.axis = axis;\n\t\t\tstate.visible = true;\n\t\t};\n\n\t\tconst close = (): void => {\n\t\t\tstate.visible = false;\n\t\t};\n\n\t\tonMounted(() => {\n\t\t\tuseEventListener(document, \"click\", close);\n\t\t});\n\n\t\tuseRender(() => (\n\t\t\t<Transition name=\"el-zoom-in-top\">\n\t\t\t\t<div\n\t\t\t\t\tclass={[\"fa-context-menu\", `fa-context-menu-${_globalSize.value}`, \"el-popper el-dropdown__popper\"]}\n\t\t\t\t\tstyle={{ top: `${state.axis.y + 5}px`, left: `${state.axis.x + 14}px` }}\n\t\t\t\t\tvShow={state.visible}\n\t\t\t\t\tkey={Math.random()}\n\t\t\t\t>\n\t\t\t\t\t<ul class=\"el-dropdown-menu\">\n\t\t\t\t\t\t{props.data\n\t\t\t\t\t\t\t.filter((f) => !f.hide)\n\t\t\t\t\t\t\t.map((item) => (\n\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\tclass={[\"el-dropdown-menu__item\", item?.disabled === true ? \"is-disabled\" : \"\"]}\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t\tonClick={(event: MouseEvent) => {\n\t\t\t\t\t\t\t\t\t\thandleClick(event, item);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item?.icon ? <FaIcon name={item?.icon} /> : null}\n\t\t\t\t\t\t\t\t\t<span>{item.label}</span>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</Transition>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开菜单 */\n\t\t\topen,\n\t\t\t/** @description 关闭菜单 */\n\t\t\tclose,\n\t\t});\n\t},\n});\n"],"names":["ContextMenu","name","props","data","type","definePropType","Array","default","emits","click","event","MouseEvent","isObject","setup","emit","expose","_globalSize","useGlobalSize","state","reactive","visible","axis","x","y","close","onMounted","useEventListener","document","useRender","_createVNode","Transition","_withDirectives","class","value","style","top","left","key","Math","random","filter","f","hide","map","item","disabled","tabIndex","onClick","handleClick","icon","FaIcon","label","_vShow","useExpose","computed","open"],"mappings":"mRAQAA,oBAA+B,CAC9BC,KAAM,gBACNC,MAAO,CAENC,KAAM,CACLC,KAAMC,EAAAA,eAAoCC,OAC1CC,QAASA,IAAM,KAGjBC,MAAO,CAENC,MAAOA,CAACC,EAAmBP,IAA4BO,aAAiBC,YAAcC,EAAAA,SAAST,IAEhGU,KAAAA,CAAMX,GAAOY,KAAEA,EAAAA,OAAMC,IACpB,MAAMC,EAAcC,EAAAA,gBAEdC,EAAQC,EAAAA,SAAS,CACtBC,SAAS,EACTC,KAAM,CACLC,EAAG,EACHC,EAAG,KAeCC,EAAQA,KACbN,EAAME,SAAU,GAmCjB,OAhCAK,EAAAA,UAAU,KACTC,mBAAiBC,SAAU,QAASH,KAGrCI,YAAU,IAAAC,EAAAA,YAAAC,aAAA,CAAA7B,KAAA,kBAAA,CAAAM,QAAAA,IAAA,CAAAwB,iBAAAF,EAAAA,YAAA,MAAA,CAAAG,MAGA,CAAC,kBAAmB,mBAAmBhB,EAAYiB,QAAS,iCAAgCC,MAC5F,CAAEC,IAAK,GAAGjB,EAAMG,KAAKE,EAAI,MAAOa,KAAM,GAAGlB,EAAMG,KAAKC,EAAI,QAAQe,IAElEC,KAAKC,UAAQ,CAAAV,EAAAA,YAAA,KAAA,CAAAG,MAAA,oBAAA,CAGhB9B,EAAMC,KACLqC,OAAQC,IAAOA,EAAEC,MACjBC,IAAKC,GAAIf,EAAAA,YAAA,KAAA,CAAAG,MAED,CAAC,0BAA6C,IAAnBY,GAAMC,SAAoB,cAAgB,IAAGC,SAAA,KAAAC,QAErErC,IAlCGsC,EAACtC,EAAmBP,KACnCA,GAAM0C,WACV1C,GAAMM,OAASN,EAAKM,MAAMC,EAAOP,GACjCW,EAAK,QAASJ,EAAOP,KAgCd6C,CAAYtC,EAAOkC,KACnB,CAEAA,GAAMK,KAAIpB,EAAAA,YAAAqB,EAAAA,OAAA,CAAAjD,KAAiB2C,GAAMK,MAAI,MAAO,KAAIpB,EAAAA,YAAA,OAAA,KAAA,CAC1Ce,EAAKO,eAEZ,CAAA,CAAAC,EAAAA,MAjBGlC,EAAME,eAuBTiC,EAAAA,UAAUtC,EAAQ,CAExBK,QAASkC,EAAAA,SAAS,IAAMpC,EAAME,SAE9BmC,KA7CYA,CAAClC,EAAiC,CAAEC,EAAG,EAAGC,EAAG,MACzDL,EAAMG,KAAOA,EACbH,EAAME,SAAU,GA6ChBI,SAEF"}
1
+ {"version":3,"file":"contextMenu.js","sources":["../../../../../packages/components/contextMenu/src/contextMenu.tsx"],"sourcesContent":["import { Transition, computed, defineComponent, onMounted, reactive } from \"vue\";\nimport { useGlobalSize } from \"element-plus\";\nimport { FaIcon } from \"@fast-element-plus/components/icon\";\nimport { definePropType, useExpose, useRender } from \"@fast-china/utils\";\nimport { useEventListener } from \"@vueuse/core\";\nimport { isObject } from \"lodash-unified\";\nimport type { FaContextMenuData } from \"./contextMenu.type\";\n\nexport default defineComponent({\n\tname: \"FaContextMenu\",\n\tprops: {\n\t\t/** @description 数据 */\n\t\tdata: {\n\t\t\ttype: definePropType<FaContextMenuData[]>(Array),\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\temits: {\n\t\t/** @description 点击事件 */\n\t\tclick: (event: MouseEvent, data: FaContextMenuData) => event instanceof MouseEvent && isObject(data),\n\t},\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tvisible: false,\n\t\t\taxis: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0,\n\t\t\t},\n\t\t});\n\n\t\tconst handleClick = (event: MouseEvent, data: FaContextMenuData): void => {\n\t\t\tif (data?.disabled) return;\n\t\t\tdata?.click && data.click(event, data);\n\t\t\temit(\"click\", event, data);\n\t\t};\n\n\t\tconst open = (axis: { x: number; y: number } = { x: 0, y: 0 }): void => {\n\t\t\tstate.axis = axis;\n\t\t\tstate.visible = true;\n\t\t};\n\n\t\tconst close = (): void => {\n\t\t\tstate.visible = false;\n\t\t};\n\n\t\tonMounted(() => {\n\t\t\tuseEventListener(document, \"click\", close);\n\t\t});\n\n\t\tuseRender(() => (\n\t\t\t<Transition name=\"el-zoom-in-top\">\n\t\t\t\t<div\n\t\t\t\t\tclass={[\"fa-context-menu\", `fa-context-menu-${_globalSize.value}`, \"el-popper el-dropdown__popper\"]}\n\t\t\t\t\tstyle={{ top: `${state.axis.y + 5}px`, left: `${state.axis.x + 14}px` }}\n\t\t\t\t\tvShow={state.visible}\n\t\t\t\t\tkey={Math.random()}\n\t\t\t\t>\n\t\t\t\t\t<ul class=\"el-dropdown-menu\">\n\t\t\t\t\t\t{props.data\n\t\t\t\t\t\t\t.filter((f) => !f.hide)\n\t\t\t\t\t\t\t.map((item) => (\n\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\tclass={[\"el-dropdown-menu__item\", item?.disabled === true ? \"is-disabled\" : \"\"]}\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t\tonClick={(event: MouseEvent) => {\n\t\t\t\t\t\t\t\t\t\thandleClick(event, item);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item?.icon ? <FaIcon name={item?.icon} /> : null}\n\t\t\t\t\t\t\t\t\t<span>{item.label}</span>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</Transition>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开菜单 */\n\t\t\topen,\n\t\t\t/** @description 关闭菜单 */\n\t\t\tclose,\n\t\t});\n\t},\n});\n"],"names":["ContextMenu","name","props","data","type","definePropType","Array","default","emits","click","event","MouseEvent","isObject","setup","attrs","slots","emit","expose","_globalSize","useGlobalSize","state","reactive","visible","axis","x","y","close","onMounted","useEventListener","document","useRender","_createVNode","Transition","_withDirectives","class","value","style","top","left","key","Math","random","filter","f","hide","map","item","disabled","tabIndex","onClick","handleClick","icon","FaIcon","label","_vShow","useExpose","computed","open"],"mappings":"mRAQAA,oBAA+B,CAC9BC,KAAM,gBACNC,MAAO,CAENC,KAAM,CACLC,KAAMC,EAAAA,eAAoCC,OAC1CC,QAASA,IAAM,KAGjBC,MAAO,CAENC,MAAOA,CAACC,EAAmBP,IAA4BO,aAAiBC,YAAcC,EAAAA,SAAST,IAEhGU,KAAAA,CAAMX,GAAOY,MAAEA,EAAAA,MAAOC,EAAAA,KAAOC,EAAAA,OAAMC,IAClC,MAAMC,EAAcC,EAAAA,gBAEdC,EAAQC,EAAAA,SAAS,CACtBC,SAAS,EACTC,KAAM,CACLC,EAAG,EACHC,EAAG,KAeCC,EAAQA,KACbN,EAAME,SAAU,GAmCjB,OAhCAK,EAAAA,UAAU,KACTC,mBAAiBC,SAAU,QAASH,KAGrCI,YAAU,IAAAC,EAAAA,YAAAC,aAAA,CAAA/B,KAAA,kBAAA,CAAAM,QAAAA,IAAA,CAAA0B,iBAAAF,EAAAA,YAAA,MAAA,CAAAG,MAGA,CAAC,kBAAmB,mBAAmBhB,EAAYiB,QAAS,iCAAgCC,MAC5F,CAAEC,IAAK,GAAGjB,EAAMG,KAAKE,EAAI,MAAOa,KAAM,GAAGlB,EAAMG,KAAKC,EAAI,QAAQe,IAElEC,KAAKC,UAAQ,CAAAV,EAAAA,YAAA,KAAA,CAAAG,MAAA,oBAAA,CAGhBhC,EAAMC,KACLuC,OAAQC,IAAOA,EAAEC,MACjBC,IAAKC,GAAIf,EAAAA,YAAA,KAAA,CAAAG,MAED,CAAC,0BAA6C,IAAnBY,GAAMC,SAAoB,cAAgB,IAAGC,SAAA,KAAAC,QAErEvC,IAlCGwC,EAACxC,EAAmBP,KACnCA,GAAM4C,WACV5C,GAAMM,OAASN,EAAKM,MAAMC,EAAOP,GACjCa,EAAK,QAASN,EAAOP,KAgCd+C,CAAYxC,EAAOoC,KACnB,CAEAA,GAAMK,KAAIpB,EAAAA,YAAAqB,EAAAA,OAAA,CAAAnD,KAAiB6C,GAAMK,MAAI,MAAO,KAAIpB,EAAAA,YAAA,OAAA,KAAA,CAC1Ce,EAAKO,eAEZ,CAAA,CAAAC,EAAAA,MAjBGlC,EAAME,eAuBTiC,EAAAA,UAAUtC,EAAQ,CAExBK,QAASkC,EAAAA,SAAS,IAAMpC,EAAME,SAE9BmC,KA7CYA,CAAClC,EAAiC,CAAEC,EAAG,EAAGC,EAAG,MACzDL,EAAMG,KAAOA,EACbH,EAAME,SAAU,GA6ChBI,SAEF"}
@@ -69,7 +69,7 @@ export declare const faDialogProps: {
69
69
  /** @description 隐藏底部操作 */
70
70
  hideFooter: BooleanConstructor;
71
71
  /** @description 撑满高度 */
72
- fillHeight: BooleanConstructor;
72
+ fullHeight: BooleanConstructor;
73
73
  /** @description 显示关闭回调 */
74
74
  showBeforeClose: BooleanConstructor;
75
75
  /** @description 打开之后 */
@@ -215,7 +215,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
215
215
  /** @description 隐藏底部操作 */
216
216
  hideFooter: BooleanConstructor;
217
217
  /** @description 撑满高度 */
218
- fillHeight: BooleanConstructor;
218
+ fullHeight: BooleanConstructor;
219
219
  /** @description 显示关闭回调 */
220
220
  showBeforeClose: BooleanConstructor;
221
221
  /** @description 打开之后 */
@@ -360,7 +360,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
360
360
  /** @description 隐藏底部操作 */
361
361
  hideFooter: BooleanConstructor;
362
362
  /** @description 撑满高度 */
363
- fillHeight: BooleanConstructor;
363
+ fullHeight: BooleanConstructor;
364
364
  /** @description 显示关闭回调 */
365
365
  showBeforeClose: BooleanConstructor;
366
366
  /** @description 打开之后 */
@@ -438,7 +438,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
438
438
  closeButtonText: string;
439
439
  confirmButtonText: string;
440
440
  hideFooter: boolean;
441
- fillHeight: boolean;
441
+ fullHeight: boolean;
442
442
  showBeforeClose: boolean;
443
443
  closeOnClickModal: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
444
444
  closeOnPressEscape: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("element-plus"),l=require("@element-plus/icons-vue"),t=require("@fast-element-plus/icons-vue"),a=require("@fast-china/utils"),n=require("lodash-unified"),i={...o.dialogProps,alignCenter:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!0},overflow:{type:Boolean,default:!0},top:{type:String,default:"5vh"},width:{type:[String,Number],default:"90%"},showRefresh:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showConfirmButton:{type:Boolean,default:!0},disabledConfirmButton:Boolean,closeButtonText:{type:String,default:"取消"},confirmButtonText:{type:String,default:"确认"},hideFooter:Boolean,fillHeight:Boolean,showBeforeClose:Boolean,afterOpen:{type:a.definePropType(Function)}},r={...o.dialogEmits,"update:modelValue":e=>n.isBoolean(e),confirmClick:()=>!0},s=e.defineComponent({name:"FaDialog",props:i,emits:r,slots:a.makeSlots(),setup(n,{attrs:i,slots:r,emit:s,expose:d}){const c=o.useGlobalSize(),u=e.reactive({loading:!1,visible:!1,fullscreen:!1,refreshing:!1}),f=e.ref();let g;const p=o=>{u.visible=!0,g=o,e.nextTick(()=>{u.loading=!0,a.execFunction(n.afterOpen??o).then(()=>{s("open")}).catch(e=>{a.consoleError("FaDialog",e),u.visible=!1}).finally(()=>{u.loading=!1})})},_=e=>{u.loading=!0,a.execFunction(e).then(()=>{s("close"),u.visible=!1}).catch(e=>{a.consoleError("FaDialog",e)}).finally(()=>{u.loading=!1})},h=()=>{u.loading||(u.refreshing=!0,u.loading=!0,setTimeout(()=>{u.refreshing=!1,p(g),o.ElMessage.success("刷新成功")},500))},m=e=>{if(u.loading)return;if(document.querySelector(".el-image-viewer__wrapper"))return;const l=()=>{a.execFunction(n.beforeClose).then(()=>{s("close"),e()}).catch(e=>{a.consoleError("FaDialog",e)})};n.showBeforeClose?o.ElMessageBox.confirm("确定关闭?",{type:"warning"}).then(()=>{l()}):l()},v=()=>{u.loading||(u.fullscreen=!u.fullscreen)},B=()=>{u.loading||s("confirmClick")},C=()=>{u.loading||_()};e.watch(()=>u.visible,e=>{s("update:modelValue",e)});const b=a.useProps(n,o.dialogProps,["modelValue","fullscreen","showClose","beforeClose"]);return a.useRender(()=>e.createVNode(o.ElDialog,e.mergeProps(b.value,{ref:f,class:["fa-dialog",`fa-dialog-${c.value}`,{"fa-dialog__fill-height":n.fillHeight,"fa-dialog__fullscreen":u.fullscreen}],modelValue:u.visible,"onUpdate:modelValue":e=>u.visible=e,fullscreen:u.fullscreen,showClose:!1,beforeClose:m,onOpened:()=>s("opened"),onClosed:()=>s("closed"),onOpenAutoFocus:()=>s("openAutoFocus"),onCloseAutoFocus:()=>s("closeAutoFocus")}),{header:()=>e.createVNode(e.Fragment,null,[e.createVNode("div",{class:"fa-dialog__header-title"},[n.title,r.header&&r.header({loading:u.loading,close:C})]),n.showRefresh&&e.createVNode("div",{title:"刷新",class:["fa-dialog__header-icon",u.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:h},[e.createVNode(o.ElIcon,null,{default:()=>[e.createVNode(l.Refresh,null,null)]})]),n.showFullscreen&&e.createVNode("div",{title:u.fullscreen?"关闭全屏显示":"全屏显示",class:["fa-dialog__header-icon",u.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:v},[e.createVNode(o.ElIcon,null,{default:()=>[u.fullscreen?e.createVNode(t.FullScreenExit,null,null):e.createVNode(t.FullScreen,null,null)]})]),n.showClose&&e.createVNode("div",{title:"关闭",class:["fa-dialog__header-icon",u.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:C},[e.createVNode(o.ElIcon,null,{default:()=>[e.createVNode(l.Close,null,null)]})])]),default:()=>e.withDirectives(e.createVNode(o.ElScrollbar,{"element-loading-text":"加载中..."},{default:()=>[!u.refreshing&&r.default&&r.default(u)]}),[[e.resolveDirective("loading"),u.loading]]),...!n.hideFooter&&{footer:()=>e.createVNode(e.Fragment,null,[r.footer&&r.footer({loading:u.loading,close:C}),n.showCloseButton&&e.createVNode(o.ElButton,{disabled:u.loading,onClick:C},{default:()=>[n.closeButtonText]}),n.showConfirmButton&&e.createVNode(o.ElButton,{loading:u.loading,loadingIcon:l.Eleme,disabled:n.disabledConfirmButton,type:"primary",onClick:B},{default:()=>[u.loading?"加载中...":n.confirmButtonText]})])}})),a.useExpose(d,{dialogContentRef:e.computed(()=>f.value?.dialogContentRef),resetPosition:e.computed(()=>f.value?.resetPosition),loading:e.computed(()=>u.loading),visible:e.computed(()=>u.visible),open:p,close:_,refresh:h,doLoading:e=>{u.loading=!0,a.execFunction(e).then().catch(e=>{a.consoleError("FaDialog",e)}).finally(()=>{u.loading=!1})}})}});exports.default=s,exports.faDialogEmits=r,exports.faDialogProps=i;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("element-plus"),o=require("@element-plus/icons-vue"),a=require("@fast-element-plus/icons-vue"),t=require("@fast-china/utils"),i=require("lodash-unified"),n={...l.dialogProps,alignCenter:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!0},overflow:{type:Boolean,default:!0},top:{type:String,default:"5vh"},width:{type:[String,Number],default:"90%"},showRefresh:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showConfirmButton:{type:Boolean,default:!0},disabledConfirmButton:Boolean,closeButtonText:{type:String,default:"取消"},confirmButtonText:{type:String,default:"确认"},hideFooter:Boolean,fullHeight:Boolean,showBeforeClose:Boolean,afterOpen:{type:t.definePropType(Function)}},r={...l.dialogEmits,"update:modelValue":e=>i.isBoolean(e),confirmClick:()=>!0},s=e.defineComponent({name:"FaDialog",props:n,emits:r,slots:t.makeSlots(),setup(i,{attrs:n,slots:r,emit:s,expose:d}){const u=l.useGlobalSize(),c=e.reactive({loading:!1,visible:!1,fullscreen:!1,refreshing:!1}),f=e.ref();let g;const _=l=>{c.visible=!0,g=l,e.nextTick(()=>{c.loading=!0,t.execFunction(i.afterOpen??l).then(()=>{s("open")}).catch(e=>{t.consoleError("FaDialog",e),c.visible=!1}).finally(()=>{c.loading=!1})})},p=e=>{c.loading=!0,t.execFunction(e).then(()=>{s("close"),c.visible=!1}).catch(e=>{t.consoleError("FaDialog",e)}).finally(()=>{c.loading=!1})},h=()=>{c.loading||(c.refreshing=!0,c.loading=!0,setTimeout(()=>{c.refreshing=!1,_(g),l.ElMessage.success("刷新成功")},500))},m=e=>{if(c.loading)return;if(document.querySelector(".el-image-viewer__wrapper"))return;const o=()=>{t.execFunction(i.beforeClose).then(()=>{s("close"),e()}).catch(e=>{t.consoleError("FaDialog",e)})};i.showBeforeClose?l.ElMessageBox.confirm("确定关闭?",{type:"warning"}).then(()=>{o()}):o()},v=()=>{c.loading||(c.fullscreen=!c.fullscreen)},B=()=>{c.loading||s("confirmClick")},b=()=>{c.loading||p()};e.watch(()=>c.visible,e=>{s("update:modelValue",e)});const C=t.useProps(i,l.dialogProps,["modelValue","fullscreen","showClose","beforeClose"]),y=t.useEmits(l.dialogEmits,s,["update:modelValue"]);return t.useRender(()=>e.createVNode(l.ElDialog,e.mergeProps(C.value,y.value,{ref:f,class:["fa-dialog",`fa-dialog-${u.value}`,{"fa-dialog__full-height":i.fullHeight,"fa-dialog__fullscreen":c.fullscreen}],modelValue:c.visible,"onUpdate:modelValue":e=>c.visible=e,fullscreen:c.fullscreen,showClose:!1,beforeClose:m}),{header:()=>e.createVNode(e.Fragment,null,[e.createVNode("div",{class:"fa-dialog__header-title"},[i.title,r.header&&r.header({loading:c.loading,close:b})]),i.showRefresh&&e.createVNode("div",{title:"刷新",class:["fa-dialog__header-icon",c.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:h},[e.createVNode(l.ElIcon,null,{default:()=>[e.createVNode(o.Refresh,null,null)]})]),i.showFullscreen&&e.createVNode("div",{title:c.fullscreen?"关闭全屏显示":"全屏显示",class:["fa-dialog__header-icon",c.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:v},[e.createVNode(l.ElIcon,null,{default:()=>[c.fullscreen?e.createVNode(a.FullScreenExit,null,null):e.createVNode(a.FullScreen,null,null)]})]),i.showClose&&e.createVNode("div",{title:"关闭",class:["fa-dialog__header-icon",c.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:b},[e.createVNode(l.ElIcon,null,{default:()=>[e.createVNode(o.Close,null,null)]})])]),default:()=>e.withDirectives(e.createVNode(l.ElScrollbar,{"element-loading-text":"加载中..."},{default:()=>[!c.refreshing&&r.default&&r.default(c)]}),[[e.resolveDirective("loading"),c.loading]]),...!i.hideFooter&&{footer:()=>e.createVNode(e.Fragment,null,[r.footer&&r.footer({loading:c.loading,close:b}),i.showCloseButton&&e.createVNode(l.ElButton,{disabled:c.loading,onClick:b},{default:()=>[i.closeButtonText]}),i.showConfirmButton&&e.createVNode(l.ElButton,{loading:c.loading,loadingIcon:o.Eleme,disabled:i.disabledConfirmButton,type:"primary",onClick:B},{default:()=>[c.loading?"加载中...":i.confirmButtonText]})])}})),t.useExpose(d,{dialogContentRef:e.computed(()=>f.value?.dialogContentRef),resetPosition:e.computed(()=>f.value?.resetPosition),loading:e.computed(()=>c.loading),visible:e.computed(()=>c.visible),open:_,close:p,refresh:h,doLoading:e=>{c.loading=!0,t.execFunction(e).then().catch(e=>{t.consoleError("FaDialog",e)}).finally(()=>{c.loading=!1})}})}});exports.default=s,exports.faDialogEmits=r,exports.faDialogProps=n;
2
2
  //# sourceMappingURL=dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sources":["../../../../../packages/components/dialog/src/dialog.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDialog, ElIcon, ElMessage, ElMessageBox, ElScrollbar, dialogEmits, dialogProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreen, FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { DialogInstance } from \"element-plus\";\nimport type { VNode } from \"vue\";\n\nexport const faDialogProps = {\n\t...dialogProps,\n\t/** @description whether to align the dialog both horizontally and vertically*/\n\talignCenter: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description draggable Dialog can overflow the viewport */\n\toverflow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description value for `margin-top` of Dialog CSS, default is 15vh */\n\ttop: {\n\t\ttype: String,\n\t\tdefault: \"5vh\",\n\t},\n\t/** @description width of Dialog, default is 50% */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"90%\",\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 撑满高度 */\n\tfillHeight: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDialogEmits = {\n\t...dialogEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDialogSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDialog\",\n\tprops: faDialogProps,\n\temits: faDialogEmits,\n\tslots: makeSlots<FaDialogSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst dialogRef = ref<DialogInstance>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\tconst elDialogProps = useProps(props, dialogProps, [\"modelValue\", \"fullscreen\", \"showClose\", \"beforeClose\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDialog\n\t\t\t\t{...elDialogProps.value}\n\t\t\t\tref={dialogRef}\n\t\t\t\tclass={[\n\t\t\t\t\t\"fa-dialog\",\n\t\t\t\t\t`fa-dialog-${_globalSize.value}`,\n\t\t\t\t\t{ \"fa-dialog__fill-height\": props.fillHeight, \"fa-dialog__fullscreen\": state.fullscreen },\n\t\t\t\t]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tfullscreen={state.fullscreen}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t\tonOpened={() => emit(\"opened\")}\n\t\t\t\tonClosed={() => emit(\"closed\")}\n\t\t\t\tonOpenAutoFocus={() => emit(\"openAutoFocus\")}\n\t\t\t\tonCloseAutoFocus={() => emit(\"closeAutoFocus\")}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-dialog__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 弹窗内容引用 */\n\t\t\tdialogContentRef: computed(() => dialogRef.value?.dialogContentRef),\n\t\t\t/** @description 重置位置 */\n\t\t\tresetPosition: computed(() => dialogRef.value?.resetPosition),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDialogProps","dialogProps","alignCenter","type","Boolean","default","appendToBody","draggable","destroyOnClose","overflow","top","String","width","Number","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","confirmButtonText","hideFooter","fillHeight","showBeforeClose","afterOpen","definePropType","Function","faDialogEmits","dialogEmits","value","isBoolean","confirmClick","Dialog","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","refreshing","dialogRef","ref","cacheOpenFunction","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","elDialogProps","useProps","useRender","_createVNode","ElDialog","_mergeProps","class","modelValue","$event","showClose","onOpened","onClosed","onOpenAutoFocus","onCloseAutoFocus","header","_Fragment","title","close","onClick","ElIcon","Refresh","FullScreenExit","FullScreen","Close","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","disabled","loadingIcon","Eleme","useExpose","dialogContentRef","computed","resetPosition","open","refresh","doLoading","loadingFunction"],"mappings":"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"}
1
+ {"version":3,"file":"dialog.js","sources":["../../../../../packages/components/dialog/src/dialog.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDialog, ElIcon, ElMessage, ElMessageBox, ElScrollbar, dialogEmits, dialogProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreen, FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useEmits, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { DialogInstance } from \"element-plus\";\nimport type { VNode } from \"vue\";\n\nexport const faDialogProps = {\n\t...dialogProps,\n\t/** @description whether to align the dialog both horizontally and vertically*/\n\talignCenter: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description draggable Dialog can overflow the viewport */\n\toverflow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description value for `margin-top` of Dialog CSS, default is 15vh */\n\ttop: {\n\t\ttype: String,\n\t\tdefault: \"5vh\",\n\t},\n\t/** @description width of Dialog, default is 50% */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"90%\",\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 撑满高度 */\n\tfullHeight: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDialogEmits = {\n\t...dialogEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDialogSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDialog\",\n\tprops: faDialogProps,\n\temits: faDialogEmits,\n\tslots: makeSlots<FaDialogSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst dialogRef = ref<DialogInstance>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\tconst elDialogProps = useProps(props, dialogProps, [\"modelValue\", \"fullscreen\", \"showClose\", \"beforeClose\"]);\n\t\tconst elDialogEmits = useEmits(dialogEmits, emit, [\"update:modelValue\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDialog\n\t\t\t\t{...elDialogProps.value}\n\t\t\t\t{...elDialogEmits.value}\n\t\t\t\tref={dialogRef}\n\t\t\t\tclass={[\n\t\t\t\t\t\"fa-dialog\",\n\t\t\t\t\t`fa-dialog-${_globalSize.value}`,\n\t\t\t\t\t{ \"fa-dialog__full-height\": props.fullHeight, \"fa-dialog__fullscreen\": state.fullscreen },\n\t\t\t\t]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tfullscreen={state.fullscreen}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-dialog__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 弹窗内容引用 */\n\t\t\tdialogContentRef: computed(() => dialogRef.value?.dialogContentRef),\n\t\t\t/** @description 重置位置 */\n\t\t\tresetPosition: computed(() => dialogRef.value?.resetPosition),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDialogProps","dialogProps","alignCenter","type","Boolean","default","appendToBody","draggable","destroyOnClose","overflow","top","String","width","Number","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","confirmButtonText","hideFooter","fullHeight","showBeforeClose","afterOpen","definePropType","Function","faDialogEmits","dialogEmits","value","isBoolean","confirmClick","Dialog","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","refreshing","dialogRef","ref","cacheOpenFunction","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","elDialogProps","useProps","elDialogEmits","useEmits","useRender","_createVNode","ElDialog","_mergeProps","class","modelValue","$event","showClose","header","_Fragment","title","close","onClick","ElIcon","Refresh","FullScreenExit","FullScreen","Close","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","disabled","loadingIcon","Eleme","useExpose","dialogContentRef","computed","resetPosition","open","refresh","doLoading","loadingFunction"],"mappings":"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"}
@@ -60,7 +60,9 @@ export declare const faDrawerProps: {
60
60
  withHeader: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
61
61
  modalFade: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
62
62
  headerAriaLevel: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "2", boolean>;
63
- appendTo: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown, "body", boolean>;
63
+ appendTo: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (
64
+ /** @description 关闭按钮文字,默认取消 */
65
+ ...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown, "body", boolean>;
64
66
  beforeClose: {
65
67
  readonly type: import('vue').PropType<import('element-plus').DialogBeforeCloseFn>;
66
68
  readonly required: false;
@@ -206,7 +208,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
206
208
  withHeader: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
207
209
  modalFade: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
208
210
  headerAriaLevel: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "2", boolean>;
209
- appendTo: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown, "body", boolean>;
211
+ appendTo: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (
212
+ /** @description 关闭按钮文字,默认取消 */
213
+ ...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown, "body", boolean>;
210
214
  beforeClose: {
211
215
  readonly type: import('vue').PropType<import('element-plus').DialogBeforeCloseFn>;
212
216
  readonly required: false;
@@ -353,7 +357,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
353
357
  withHeader: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
354
358
  modalFade: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
355
359
  headerAriaLevel: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "2", boolean>;
356
- appendTo: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown, "body", boolean>;
360
+ appendTo: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (
361
+ /** @description 关闭按钮文字,默认取消 */
362
+ ...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown, "body", boolean>;
357
363
  beforeClose: {
358
364
  readonly type: import('vue').PropType<import('element-plus').DialogBeforeCloseFn>;
359
365
  readonly required: false;
@@ -422,7 +428,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
422
428
  title: string;
423
429
  center: boolean;
424
430
  showClose: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>;
425
- appendTo: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown>;
431
+ appendTo: import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>) | ((new (...args: any[]) => string | HTMLElement) | (() => import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (
432
+ /** @description 关闭按钮文字,默认取消 */
433
+ ...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown>))[], unknown, unknown>;
426
434
  modelValue: boolean;
427
435
  transition: undefined;
428
436
  fullscreen: boolean;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("element-plus"),l=require("@element-plus/icons-vue"),a=require("@fast-element-plus/icons-vue"),t=require("@fast-china/utils"),n=require("lodash-unified"),r={...o.drawerProps,appendToBody:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!0},showRefresh:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showConfirmButton:{type:Boolean,default:!0},disabledConfirmButton:Boolean,closeButtonText:{type:String,default:"取消"},confirmButtonText:{type:String,default:"确认"},hideFooter:Boolean,showBeforeClose:Boolean,afterOpen:{type:t.definePropType(Function)}},s={...o.drawerEmits,"update:modelValue":e=>n.isBoolean(e),confirmClick:()=>!0},i=e.defineComponent({name:"FaDrawer",props:r,emits:s,slots:t.makeSlots(),setup(n,{attrs:r,slots:s,emit:i,expose:d}){const c=o.useGlobalSize(),u=e.reactive({loading:!1,visible:!1,fullscreen:!1,size:n.size??"30%",dragging:!1,refreshing:!1}),f=e.ref();let p;const _=o=>{u.visible=!0,p=o,e.nextTick(()=>{u.loading=!0,t.execFunction(n.afterOpen??o).then(()=>{i("open")}).catch(e=>{t.consoleError("FaDrawer",e),u.visible=!1}).finally(()=>{u.loading=!1})})},g=e=>{u.loading=!0,t.execFunction(e).then(()=>{i("close"),u.visible=!1}).catch(e=>{t.consoleError("FaDrawer",e)}).finally(()=>{u.loading=!1})},m=()=>{u.refreshing=!0,u.loading=!0,setTimeout(()=>{u.refreshing=!1,_(p),o.ElMessage.success("刷新成功")},500)},h=e=>{if(u.loading)return;if(document.querySelector(".el-image-viewer__wrapper"))return;const l=()=>{t.execFunction(n.beforeClose).then(()=>{i("close"),e()}).catch(e=>{t.consoleError("FaDialog",e)})};n.showBeforeClose?o.ElMessageBox.confirm("确定关闭?",{type:"warning"}).then(()=>{l()}):l()},w=()=>{u.loading||(u.fullscreen=!u.fullscreen)},v=()=>{u.loading||i("confirmClick")},b=()=>{u.loading||g()};e.watch(()=>u.visible,e=>{i("update:modelValue",e)});const C=()=>{document.onmousemove=e=>{let o=document.body.clientWidth-e.pageX;const l=.2*document.body.clientWidth,a=.95*document.body.clientWidth;o=o>a?a:o<l?l:o,u.size=`${o}px`},document.onmouseup=()=>{document.onmousemove=document.onmouseup=null}},B=t.useProps(n,o.drawerProps,["modelValue","size","showClose","beforeClose"]);return t.useRender(()=>e.createVNode(o.ElDrawer,e.mergeProps(B.value,{ref:f,class:["fa-drawer",`fa-drawer-${c.value}`,{"fa-drawer__fullscreen":u.fullscreen}],modelValue:u.visible,"onUpdate:modelValue":e=>u.visible=e,size:u.size,showClose:!1,beforeClose:h,onOpened:()=>i("opened"),onClosed:()=>i("closed"),onOpenAutoFocus:()=>i("openAutoFocus"),onCloseAutoFocus:()=>i("closeAutoFocus")}),{header:()=>e.createVNode(e.Fragment,null,[e.createVNode("div",{class:"fa-drawer__header-title"},[n.title,s.header&&s.header({loading:u.loading,close:b})]),n.showRefresh&&e.createVNode("div",{title:"刷新",class:["fa-drawer__header-icon",u.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:m},[e.createVNode(o.ElIcon,{class:"icon"},{default:()=>[e.createVNode(l.Refresh,null,null)]})]),n.showFullscreen&&e.createVNode("div",{title:u.fullscreen?"关闭全屏显示":"全屏显示",class:["fa-drawer__header-icon",u.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:w},[e.createVNode(o.ElIcon,null,{default:()=>[u.fullscreen?e.createVNode(a.FullScreenExit,null,null):e.createVNode(a.FullScreen,null,null)]})]),n.showClose&&e.createVNode("div",{title:"关闭",class:["fa-drawer__header-icon",u.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:b},[e.createVNode(o.ElIcon,{class:"icon"},{default:()=>[e.createVNode(l.Close,null,null)]})])]),default:()=>e.createVNode(e.Fragment,null,[n.draggable&&e.createVNode("div",{class:"fa-drawer__draggable",onmousedown:C},null),e.withDirectives(e.createVNode(o.ElScrollbar,{"element-loading-text":"加载中..."},{default:()=>[!u.refreshing&&s.default&&s.default(u)]}),[[e.resolveDirective("loading"),u.loading]])]),...!n.hideFooter&&{footer:()=>e.createVNode(e.Fragment,null,[s.footer&&s.footer({loading:u.loading,close:b}),n.showCloseButton&&e.createVNode(o.ElButton,{disabled:u.loading,onClick:b},{default:()=>[n.closeButtonText]}),n.showConfirmButton&&e.createVNode(o.ElButton,{loading:u.loading,loadingIcon:l.Eleme,disabled:n.disabledConfirmButton,type:"primary",onClick:v},{default:()=>[u.loading?"加载中...":n.confirmButtonText]})])}})),t.useExpose(d,{handleClose:e.computed(()=>f.value?.handleClose),afterEnter:e.computed(()=>f.value?.afterEnter),afterLeave:e.computed(()=>f.value?.afterLeave),loading:e.computed(()=>u.loading),visible:e.computed(()=>u.visible),open:_,close:g,refresh:m,doLoading:e=>{u.loading=!0,t.execFunction(e).then().catch(e=>{t.consoleError("FaDrawer",e)}).finally(()=>{u.loading=!1})}})}});exports.default=i,exports.faDrawerEmits=s,exports.faDrawerProps=r;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),o=require("element-plus"),l=require("@element-plus/icons-vue"),a=require("@fast-element-plus/icons-vue"),t=require("@fast-china/utils"),r=require("lodash-unified"),n={...o.drawerProps,appendToBody:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!0},showRefresh:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showConfirmButton:{type:Boolean,default:!0},disabledConfirmButton:Boolean,closeButtonText:{type:String,default:"取消"},confirmButtonText:{type:String,default:"确认"},hideFooter:Boolean,showBeforeClose:Boolean,afterOpen:{type:t.definePropType(Function)}},i={...o.drawerEmits,"update:modelValue":e=>r.isBoolean(e),confirmClick:()=>!0},s=e.defineComponent({name:"FaDrawer",props:n,emits:i,slots:t.makeSlots(),setup(r,{attrs:n,slots:i,emit:s,expose:d}){const c=o.useGlobalSize(),u=e.reactive({loading:!1,visible:!1,fullscreen:!1,size:r.size??"30%",dragging:!1,refreshing:!1}),f=e.ref();let _;const g=o=>{u.visible=!0,_=o,e.nextTick(()=>{u.loading=!0,t.execFunction(r.afterOpen??o).then(()=>{s("open")}).catch(e=>{t.consoleError("FaDrawer",e),u.visible=!1}).finally(()=>{u.loading=!1})})},m=e=>{u.loading=!0,t.execFunction(e).then(()=>{s("close"),u.visible=!1}).catch(e=>{t.consoleError("FaDrawer",e)}).finally(()=>{u.loading=!1})},p=()=>{u.refreshing=!0,u.loading=!0,setTimeout(()=>{u.refreshing=!1,g(_),o.ElMessage.success("刷新成功")},500)},h=e=>{if(u.loading)return;if(document.querySelector(".el-image-viewer__wrapper"))return;const l=()=>{t.execFunction(r.beforeClose).then(()=>{s("close"),e()}).catch(e=>{t.consoleError("FaDialog",e)})};r.showBeforeClose?o.ElMessageBox.confirm("确定关闭?",{type:"warning"}).then(()=>{l()}):l()},w=()=>{u.loading||(u.fullscreen=!u.fullscreen)},v=()=>{u.loading||s("confirmClick")},b=()=>{u.loading||m()};e.watch(()=>u.visible,e=>{s("update:modelValue",e)});const B=()=>{document.onmousemove=e=>{let o=document.body.clientWidth-e.pageX;const l=.2*document.body.clientWidth,a=.95*document.body.clientWidth;o=o>a?a:o<l?l:o,u.size=`${o}px`},document.onmouseup=()=>{document.onmousemove=document.onmouseup=null}},C=t.useProps(r,o.drawerProps,["modelValue","size","showClose","beforeClose"]),V=t.useEmits(o.drawerEmits,s,["update:modelValue"]);return t.useRender(()=>e.createVNode(o.ElDrawer,e.mergeProps(C.value,V.value,{ref:f,class:["fa-drawer",`fa-drawer-${c.value}`,{"fa-drawer__fullscreen":u.fullscreen}],modelValue:u.visible,"onUpdate:modelValue":e=>u.visible=e,size:u.size,showClose:!1,beforeClose:h}),{header:()=>e.createVNode(e.Fragment,null,[e.createVNode("div",{class:"fa-drawer__header-title"},[r.title,i.header&&i.header({loading:u.loading,close:b})]),r.showRefresh&&e.createVNode("div",{title:"刷新",class:["fa-drawer__header-icon",u.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:p},[e.createVNode(o.ElIcon,{class:"icon"},{default:()=>[e.createVNode(l.Refresh,null,null)]})]),r.showFullscreen&&e.createVNode("div",{title:u.fullscreen?"关闭全屏显示":"全屏显示",class:["fa-drawer__header-icon",u.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:w},[e.createVNode(o.ElIcon,null,{default:()=>[u.fullscreen?e.createVNode(a.FullScreenExit,null,null):e.createVNode(a.FullScreen,null,null)]})]),r.showClose&&e.createVNode("div",{title:"关闭",class:["fa-drawer__header-icon",u.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:b},[e.createVNode(o.ElIcon,{class:"icon"},{default:()=>[e.createVNode(l.Close,null,null)]})])]),default:()=>e.createVNode(e.Fragment,null,[r.draggable&&e.createVNode("div",{class:"fa-drawer__draggable",onmousedown:B},null),e.withDirectives(e.createVNode(o.ElScrollbar,{"element-loading-text":"加载中..."},{default:()=>[!u.refreshing&&i.default&&i.default(u)]}),[[e.resolveDirective("loading"),u.loading]])]),...!r.hideFooter&&{footer:()=>e.createVNode(e.Fragment,null,[i.footer&&i.footer({loading:u.loading,close:b}),r.showCloseButton&&e.createVNode(o.ElButton,{disabled:u.loading,onClick:b},{default:()=>[r.closeButtonText]}),r.showConfirmButton&&e.createVNode(o.ElButton,{loading:u.loading,loadingIcon:l.Eleme,disabled:r.disabledConfirmButton,type:"primary",onClick:v},{default:()=>[u.loading?"加载中...":r.confirmButtonText]})])}})),t.useExpose(d,{handleClose:e.computed(()=>f.value?.handleClose),afterEnter:e.computed(()=>f.value?.afterEnter),afterLeave:e.computed(()=>f.value?.afterLeave),loading:e.computed(()=>u.loading),visible:e.computed(()=>u.visible),open:g,close:m,refresh:p,doLoading:e=>{u.loading=!0,t.execFunction(e).then().catch(e=>{t.consoleError("FaDrawer",e)}).finally(()=>{u.loading=!1})}})}});exports.default=s,exports.faDrawerEmits=i,exports.faDrawerProps=n;
2
2
  //# sourceMappingURL=drawer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.js","sources":["../../../../../packages/components/drawer/src/drawer.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDrawer, ElIcon, ElMessage, ElMessageBox, ElScrollbar, drawerEmits, drawerProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreen, FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { VNode } from \"vue\";\n\nexport const faDrawerProps = {\n\t...drawerProps,\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDrawerEmits = {\n\t...drawerEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDrawerSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDrawer\",\n\tprops: faDrawerProps,\n\temits: faDrawerEmits,\n\tslots: makeSlots<FaDrawerSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\tsize: props.size ?? \"30%\",\n\t\t\tdragging: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst drawerRef = ref<InstanceType<typeof ElDrawer>>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\t/**\n\t\t * 处理拖拽\n\t\t */\n\t\tconst handleDraggableMousedown = (): void => {\n\t\t\tdocument.onmousemove = (moveEvent: MouseEvent): void => {\n\t\t\t\t// 获取鼠标距离浏览器右边缘的距离\n\t\t\t\tlet realWidth = document.body.clientWidth - moveEvent.pageX;\n\t\t\t\tconst width20 = document.body.clientWidth * 0.2;\n\t\t\t\tconst width95 = document.body.clientWidth * 0.95;\n\t\t\t\t// 宽度不能大于浏览器宽度 95%,不能小于宽度的 20%\n\t\t\t\trealWidth = realWidth > width95 ? width95 : realWidth < width20 ? width20 : realWidth;\n\t\t\t\tstate.size = `${realWidth}px`;\n\t\t\t};\n\t\t\tdocument.onmouseup = (): void => {\n\t\t\t\tdocument.onmousemove = document.onmouseup = null;\n\t\t\t};\n\t\t};\n\n\t\tconst elDrawerProps = useProps(props, drawerProps, [\"modelValue\", \"size\", \"showClose\", \"beforeClose\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDrawer\n\t\t\t\t{...elDrawerProps.value}\n\t\t\t\tref={drawerRef}\n\t\t\t\tclass={[\"fa-drawer\", `fa-drawer-${_globalSize.value}`, { \"fa-drawer__fullscreen\": state.fullscreen }]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tsize={state.size}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t\tonOpened={() => emit(\"opened\")}\n\t\t\t\tonClosed={() => emit(\"closed\")}\n\t\t\t\tonOpenAutoFocus={() => emit(\"openAutoFocus\")}\n\t\t\t\tonCloseAutoFocus={() => emit(\"closeAutoFocus\")}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-drawer__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t{props.draggable && <div class=\"fa-drawer__draggable\" onmousedown={handleDraggableMousedown} />}\n\t\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDrawer>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 用于关闭 Drawer, 该方法会调用传入的 before-close 方法 */\n\t\t\thandleClose: computed(() => drawerRef.value?.handleClose),\n\t\t\t/** @description 进入动画后的回调 */\n\t\t\tafterEnter: computed(() => drawerRef.value?.afterEnter),\n\t\t\t/** @description 离开动画后的回调 */\n\t\t\tafterLeave: computed(() => drawerRef.value?.afterLeave),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDrawerProps","drawerProps","appendToBody","type","Boolean","default","draggable","destroyOnClose","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","String","confirmButtonText","hideFooter","showBeforeClose","afterOpen","definePropType","Function","faDrawerEmits","drawerEmits","value","isBoolean","confirmClick","Drawer","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","size","dragging","refreshing","drawerRef","ref","cacheOpenFunction","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","handleDraggableMousedown","onmousemove","moveEvent","realWidth","body","clientWidth","pageX","width20","width95","onmouseup","elDrawerProps","useProps","useRender","_createVNode","ElDrawer","_mergeProps","class","modelValue","$event","showClose","onOpened","onClosed","onOpenAutoFocus","onCloseAutoFocus","header","_Fragment","title","close","onClick","ElIcon","Refresh","FullScreenExit","FullScreen","Close","onmousedown","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","disabled","loadingIcon","Eleme","useExpose","computed","afterEnter","afterLeave","open","refresh","doLoading","loadingFunction"],"mappings":"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"}
1
+ {"version":3,"file":"drawer.js","sources":["../../../../../packages/components/drawer/src/drawer.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDrawer, ElIcon, ElMessage, ElMessageBox, ElScrollbar, drawerEmits, drawerProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreen, FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useEmits, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { VNode } from \"vue\";\n\nexport const faDrawerProps = {\n\t...drawerProps,\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDrawerEmits = {\n\t...drawerEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDrawerSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDrawer\",\n\tprops: faDrawerProps,\n\temits: faDrawerEmits,\n\tslots: makeSlots<FaDrawerSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\tsize: props.size ?? \"30%\",\n\t\t\tdragging: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst drawerRef = ref<InstanceType<typeof ElDrawer>>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDrawer\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\t/**\n\t\t * 处理拖拽\n\t\t */\n\t\tconst handleDraggableMousedown = (): void => {\n\t\t\tdocument.onmousemove = (moveEvent: MouseEvent): void => {\n\t\t\t\t// 获取鼠标距离浏览器右边缘的距离\n\t\t\t\tlet realWidth = document.body.clientWidth - moveEvent.pageX;\n\t\t\t\tconst width20 = document.body.clientWidth * 0.2;\n\t\t\t\tconst width95 = document.body.clientWidth * 0.95;\n\t\t\t\t// 宽度不能大于浏览器宽度 95%,不能小于宽度的 20%\n\t\t\t\trealWidth = realWidth > width95 ? width95 : realWidth < width20 ? width20 : realWidth;\n\t\t\t\tstate.size = `${realWidth}px`;\n\t\t\t};\n\t\t\tdocument.onmouseup = (): void => {\n\t\t\t\tdocument.onmousemove = document.onmouseup = null;\n\t\t\t};\n\t\t};\n\n\t\tconst elDrawerProps = useProps(props, drawerProps, [\"modelValue\", \"size\", \"showClose\", \"beforeClose\"]);\n\t\tconst elDrawerEmits = useEmits(drawerEmits, emit, [\"update:modelValue\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDrawer\n\t\t\t\t{...elDrawerProps.value}\n\t\t\t\t{...elDrawerEmits.value}\n\t\t\t\tref={drawerRef}\n\t\t\t\tclass={[\"fa-drawer\", `fa-drawer-${_globalSize.value}`, { \"fa-drawer__fullscreen\": state.fullscreen }]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tsize={state.size}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-drawer__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-drawer__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon class=\"icon\">\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t{props.draggable && <div class=\"fa-drawer__draggable\" onmousedown={handleDraggableMousedown} />}\n\t\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDrawer>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 用于关闭 Drawer, 该方法会调用传入的 before-close 方法 */\n\t\t\thandleClose: computed(() => drawerRef.value?.handleClose),\n\t\t\t/** @description 进入动画后的回调 */\n\t\t\tafterEnter: computed(() => drawerRef.value?.afterEnter),\n\t\t\t/** @description 离开动画后的回调 */\n\t\t\tafterLeave: computed(() => drawerRef.value?.afterLeave),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDrawerProps","drawerProps","appendToBody","type","Boolean","default","draggable","destroyOnClose","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","String","confirmButtonText","hideFooter","showBeforeClose","afterOpen","definePropType","Function","faDrawerEmits","drawerEmits","value","isBoolean","confirmClick","Drawer","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","size","dragging","refreshing","drawerRef","ref","cacheOpenFunction","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","handleDraggableMousedown","onmousemove","moveEvent","realWidth","body","clientWidth","pageX","width20","width95","onmouseup","elDrawerProps","useProps","elDrawerEmits","useEmits","useRender","_createVNode","ElDrawer","_mergeProps","class","modelValue","$event","showClose","header","_Fragment","title","close","onClick","ElIcon","Refresh","FullScreenExit","FullScreen","Close","onmousedown","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","disabled","loadingIcon","Eleme","useExpose","computed","afterEnter","afterLeave","open","refresh","doLoading","loadingFunction"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("element-plus"),o=require("../../layoutGrid/index.js"),r=require("@fast-china/utils"),t=require("lodash-unified"),a=require("../utils/form.js"),s={...l.formProps,labelWidth:{type:[String,Number],default:"auto"},labelSuffix:{type:String,default:":"},scrollToError:{type:Boolean,default:!0},detailForm:Boolean,grid:{type:Boolean,default:!0},cols:{type:r.definePropType([String,Number,Object]),default:()=>({xs:1,sm:2,md:3,lg:4,xl:5})}},d=e.defineComponent({name:"FaForm",props:s,slots:r.makeSlots(),setup(s,{attrs:d,slots:u,expose:i}){const f=l.useGlobalSize(),c=e.reactive({cols:e.computed(()=>{if(t.isObject(s.cols))return s.cols;{const e=t.isNumber(s.cols)?s.cols:Number(s.cols);return{xs:1,sm:e,md:e,lg:e,xl:e}}}),gap:e.computed(()=>"small"===f.value?[15,0]:[20,0])}),m=e.ref();e.provide("faFormCols",c.cols);const p=r.useProps(s,l.formProps);return r.useRender(()=>e.createVNode(l.ElForm,e.mergeProps(p.value,{ref:m,class:["fa-form",`fa-form-${f.value}`,{[`fa-form-detail fa-form-detail_${f.value}`]:s.detailForm}]}),{default:()=>s.grid?e.createVNode(o.FaLayoutGrid,{collapsed:!0,gap:c.gap,cols:c.cols},{default:()=>[u.default&&u.default(c)]}):u.default&&u.default(c)})),r.useExpose(i,{validate:()=>a.formUtil.validate(m),validateField:e.computed(()=>m.value?.validateField),resetFields:e.computed(()=>m.value?.resetFields),clearValidate:e.computed(()=>m.value?.clearValidate),scrollToField:e.computed(()=>m.value?.scrollToField),fields:e.computed(()=>m.value?.fields),validateScrollToField:()=>a.formUtil.validateScrollToField(m)})}});exports.default=d,exports.faFormProps=s;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("element-plus"),o=require("../../layoutGrid/index.js"),t=require("@fast-china/utils"),r=require("lodash-unified"),a=require("../utils/form.js"),s={...l.formProps,labelWidth:{type:[String,Number],default:"auto"},labelSuffix:{type:String,default:":"},scrollToError:{type:Boolean,default:!0},detailForm:Boolean,grid:{type:Boolean,default:!0},cols:{type:t.definePropType([String,Number,Object]),default:()=>({xs:1,sm:2,md:3,lg:4,xl:5})}},d=e.defineComponent({name:"FaForm",props:s,slots:t.makeSlots(),setup(s,{attrs:d,slots:u,emit:i,expose:f}){const c=l.useGlobalSize(),m=e.reactive({cols:e.computed(()=>{if(r.isObject(s.cols))return s.cols;{const e=r.isNumber(s.cols)?s.cols:Number(s.cols);return{xs:1,sm:e,md:e,lg:e,xl:e}}}),gap:e.computed(()=>"small"===c.value?[15,0]:[20,0])}),p=e.ref();e.provide("faFormCols",m.cols);const n=t.useProps(s,l.formProps);return t.useRender(()=>e.createVNode(l.ElForm,e.mergeProps(n.value,{ref:p,class:["fa-form",`fa-form-${c.value}`,{[`fa-form-detail fa-form-detail_${c.value}`]:s.detailForm}]}),{default:()=>s.grid?e.createVNode(o.FaLayoutGrid,{collapsed:!0,gap:m.gap,cols:m.cols},{default:()=>[u.default&&u.default(m)]}):u.default&&u.default(m)})),t.useExpose(f,{validate:()=>a.formUtil.validate(p),validateField:e.computed(()=>p.value?.validateField),resetFields:e.computed(()=>p.value?.resetFields),clearValidate:e.computed(()=>p.value?.clearValidate),scrollToField:e.computed(()=>p.value?.scrollToField),fields:e.computed(()=>p.value?.fields),validateScrollToField:()=>a.formUtil.validateScrollToField(p)})}});exports.default=d,exports.faFormProps=s;
2
2
  //# sourceMappingURL=form.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sources":["../../../../../packages/components/form/src/form.tsx"],"sourcesContent":["import { computed, defineComponent, provide, reactive, ref } from \"vue\";\nimport { ElForm, formProps, useGlobalSize } from \"element-plus\";\nimport { FaLayoutGrid } from \"@fast-element-plus/components/layoutGrid\";\nimport { definePropType, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isNumber, isObject } from \"lodash-unified\";\nimport { formUtil } from \"../utils/form\";\nimport type { FaLayoutGridBreakPoint } from \"@fast-element-plus/components/layoutGrid\";\nimport type { FormInstance, FormItemContext, FormValidationResult } from \"element-plus\";\n\nexport const faFormProps = {\n\t...formProps,\n\t/** @description Width of label, e.g. `'50px'`. All its direct child form items will inherit this value. `auto` is supported. */\n\tlabelWidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"auto\",\n\t},\n\t/** @description Suffix of the label. */\n\tlabelSuffix: {\n\t\ttype: String,\n\t\tdefault: \":\",\n\t},\n\t/** @description When validation fails, scroll to the first error form entry. */\n\tscrollToError: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 详情From,会删除 FormItem 的 paddinfa-bottom */\n\tdetailForm: Boolean,\n\t/** @description Grid布局*/\n\tgrid: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description Grid布局列配置 */\n\tcols: {\n\t\ttype: definePropType<string | number | Record<FaLayoutGridBreakPoint, number>>([String, Number, Object]),\n\t\tdefault: (): Record<FaLayoutGridBreakPoint, number> => ({ xs: 1, sm: 2, md: 3, lg: 4, xl: 5 }),\n\t},\n};\n\ntype FaFormSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: unknown;\n};\n\nexport default defineComponent({\n\tname: \"FaForm\",\n\tprops: faFormProps,\n\tslots: makeSlots<FaFormSlots>(),\n\tsetup(props, { attrs, slots, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tcols: computed(() => {\n\t\t\t\tif (isObject(props.cols)) {\n\t\t\t\t\treturn props.cols;\n\t\t\t\t} else {\n\t\t\t\t\tconst colsNumber = isNumber(props.cols) ? props.cols : Number(props.cols);\n\t\t\t\t\treturn { xs: 1, sm: colsNumber, md: colsNumber, lg: colsNumber, xl: colsNumber };\n\t\t\t\t}\n\t\t\t}),\n\t\t\tgap: computed(() => (_globalSize.value === \"small\" ? [15, 0] : [20, 0])),\n\t\t});\n\n\t\tconst formRef = ref<FormInstance>();\n\n\t\t// 注入 cols\n\t\tprovide(\"faFormCols\", state.cols);\n\n\t\tconst elFormProps = useProps(props, formProps);\n\n\t\tuseRender(() => (\n\t\t\t<ElForm\n\t\t\t\t{...elFormProps.value}\n\t\t\t\tref={formRef}\n\t\t\t\tclass={[\"fa-form\", `fa-form-${_globalSize.value}`, { [`fa-form-detail fa-form-detail_${_globalSize.value}`]: props.detailForm }]}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\tprops.grid ? (\n\t\t\t\t\t\t\t<FaLayoutGrid collapsed gap={state.gap} cols={state.cols}>\n\t\t\t\t\t\t\t\t{slots.default && slots.default(state)}\n\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tslots.default && slots.default(state)\n\t\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</ElForm>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 对整个表单的内容进行验证。 接收一个回调函数,或返回 Promise。 */\n\t\t\tvalidate: (): FormValidationResult => formUtil.validate(formRef),\n\t\t\t/** @description 验证具体的某个字段。 */\n\t\t\tvalidateField: computed(() => formRef.value?.validateField),\n\t\t\t/** @description 重置该表单项,将其值重置为初始值,并移除校验结果 */\n\t\t\tresetFields: computed(() => formRef.value?.resetFields),\n\t\t\t/** @description 清理某个字段的表单验证信息。 */\n\t\t\tclearValidate: computed(() => formRef.value?.clearValidate),\n\t\t\t/** @description 滚动到指定的字段 */\n\t\t\tscrollToField: computed(() => formRef.value?.scrollToField),\n\t\t\t/** @description 获取所有字段的 context */\n\t\t\tfields: computed(() => formRef.value?.fields as FormItemContext[]),\n\t\t\t/** @description 对整个表单的内容进行验证,带滚动。 接收一个回调函数,或返回 Promise。 */\n\t\t\tvalidateScrollToField: (): FormValidationResult => formUtil.validateScrollToField(formRef),\n\t\t});\n\t},\n});\n"],"names":["faFormProps","formProps","labelWidth","type","String","Number","default","labelSuffix","scrollToError","Boolean","detailForm","grid","cols","definePropType","Object","xs","sm","md","lg","xl","Form","name","props","slots","makeSlots","setup","attrs","expose","_globalSize","useGlobalSize","state","reactive","computed","isObject","colsNumber","isNumber","gap","value","formRef","ref","provide","elFormProps","useProps","useRender","_createVNode","ElForm","_mergeProps","class","FaLayoutGrid","collapsed","useExpose","validate","formUtil","validateField","resetFields","clearValidate","scrollToField","fields","validateScrollToField"],"mappings":"6RASaA,EAAc,IACvBC,EAAAA,UAEHC,WAAY,CACXC,KAAM,CAACC,OAAQC,QACfC,QAAS,QAGVC,YAAa,CACZJ,KAAMC,OACNE,QAAS,KAGVE,cAAe,CACdL,KAAMM,QACNH,SAAS,GAGVI,WAAYD,QAEZE,KAAM,CACLR,KAAMM,QACNH,SAAS,GAGVM,KAAM,CACLT,KAAMU,EAAAA,eAAyE,CAACT,OAAQC,OAAQS,SAChGR,QAASA,KAAAA,CAAiDS,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAGC,GAAI,MAS5FC,oBAA+B,CAC9BC,KAAM,SACNC,MAAOtB,EACPuB,MAAOC,EAAAA,YACPC,KAAAA,CAAMH,GAAOI,MAAEA,EAAAA,MAAOH,EAAAA,OAAOI,IAC5B,MAAMC,EAAcC,EAAAA,gBAEdC,EAAQC,EAAAA,SAAS,CACtBnB,KAAMoB,EAAAA,SAAS,KACd,GAAIC,EAAAA,SAASX,EAAMV,MAClB,OAAOU,EAAMV,KACP,CACN,MAAMsB,EAAaC,WAASb,EAAMV,MAAQU,EAAMV,KAAOP,OAAOiB,EAAMV,MACpE,MAAO,CAAEG,GAAI,EAAGC,GAAIkB,EAAYjB,GAAIiB,EAAYhB,GAAIgB,EAAYf,GAAIe,EACrE,IAEDE,IAAKJ,EAAAA,SAAS,IAA6B,UAAtBJ,EAAYS,MAAoB,CAAC,GAAI,GAAK,CAAC,GAAI,MAG/DC,EAAUC,EAAAA,MAGhBC,UAAQ,aAAcV,EAAMlB,MAE5B,MAAM6B,EAAcC,EAAAA,SAASpB,EAAOrB,aAqBpC,OAnBA0C,EAAAA,UAAU,IAAAC,EAAAA,YAAAC,EAAAA,OAAAC,EAAAA,WAEJL,EAAYJ,MAAK,CAAAE,IAChBD,EAAOS,MACL,CAAC,UAAW,WAAWnB,EAAYS,QAAS,CAAE,CAAC,iCAAiCT,EAAYS,SAAUf,EAAMZ,eAAa,CAG/HJ,QAASA,IACRgB,EAAMX,KAAIiC,EAAAA,YAAAI,EAAAA,aAAA,CAAAC,WAAA,EAAAb,IACoBN,EAAMM,IAAGxB,KAAQkB,EAAMlB,MAAI,CAAAN,QAAAA,IAAA,CACtDiB,EAAMjB,SAAWiB,EAAMjB,QAAQwB,MAGjCP,EAAMjB,SAAWiB,EAAMjB,QAAQwB,MAM7BoB,EAAAA,UAAUvB,EAAQ,CAExBwB,SAAUA,IAA4BC,EAAAA,SAASD,SAASb,GAExDe,cAAerB,EAAAA,SAAS,IAAMM,EAAQD,OAAOgB,eAE7CC,YAAatB,EAAAA,SAAS,IAAMM,EAAQD,OAAOiB,aAE3CC,cAAevB,EAAAA,SAAS,IAAMM,EAAQD,OAAOkB,eAE7CC,cAAexB,EAAAA,SAAS,IAAMM,EAAQD,OAAOmB,eAE7CC,OAAQzB,EAAAA,SAAS,IAAMM,EAAQD,OAAOoB,QAEtCC,sBAAuBA,IAA4BN,WAASM,sBAAsBpB,IAEpF"}
1
+ {"version":3,"file":"form.js","sources":["../../../../../packages/components/form/src/form.tsx"],"sourcesContent":["import { computed, defineComponent, provide, reactive, ref } from \"vue\";\nimport { ElForm, formProps, useGlobalSize } from \"element-plus\";\nimport { FaLayoutGrid } from \"@fast-element-plus/components/layoutGrid\";\nimport { definePropType, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isNumber, isObject } from \"lodash-unified\";\nimport { formUtil } from \"../utils/form\";\nimport type { FaLayoutGridBreakPoint } from \"@fast-element-plus/components/layoutGrid\";\nimport type { FormInstance, FormItemContext, FormValidationResult } from \"element-plus\";\n\nexport const faFormProps = {\n\t...formProps,\n\t/** @description Width of label, e.g. `'50px'`. All its direct child form items will inherit this value. `auto` is supported. */\n\tlabelWidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"auto\",\n\t},\n\t/** @description Suffix of the label. */\n\tlabelSuffix: {\n\t\ttype: String,\n\t\tdefault: \":\",\n\t},\n\t/** @description When validation fails, scroll to the first error form entry. */\n\tscrollToError: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 详情From,会删除 FormItem 的 paddinfa-bottom */\n\tdetailForm: Boolean,\n\t/** @description Grid布局*/\n\tgrid: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description Grid布局列配置 */\n\tcols: {\n\t\ttype: definePropType<string | number | Record<FaLayoutGridBreakPoint, number>>([String, Number, Object]),\n\t\tdefault: (): Record<FaLayoutGridBreakPoint, number> => ({ xs: 1, sm: 2, md: 3, lg: 4, xl: 5 }),\n\t},\n};\n\ntype FaFormSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: unknown;\n};\n\nexport default defineComponent({\n\tname: \"FaForm\",\n\tprops: faFormProps,\n\tslots: makeSlots<FaFormSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tcols: computed(() => {\n\t\t\t\tif (isObject(props.cols)) {\n\t\t\t\t\treturn props.cols;\n\t\t\t\t} else {\n\t\t\t\t\tconst colsNumber = isNumber(props.cols) ? props.cols : Number(props.cols);\n\t\t\t\t\treturn { xs: 1, sm: colsNumber, md: colsNumber, lg: colsNumber, xl: colsNumber };\n\t\t\t\t}\n\t\t\t}),\n\t\t\tgap: computed(() => (_globalSize.value === \"small\" ? [15, 0] : [20, 0])),\n\t\t});\n\n\t\tconst formRef = ref<FormInstance>();\n\n\t\t// 注入 cols\n\t\tprovide(\"faFormCols\", state.cols);\n\n\t\tconst elFormProps = useProps(props, formProps);\n\n\t\tuseRender(() => (\n\t\t\t<ElForm\n\t\t\t\t{...elFormProps.value}\n\t\t\t\tref={formRef}\n\t\t\t\tclass={[\"fa-form\", `fa-form-${_globalSize.value}`, { [`fa-form-detail fa-form-detail_${_globalSize.value}`]: props.detailForm }]}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tdefault: () =>\n\t\t\t\t\t\tprops.grid ? (\n\t\t\t\t\t\t\t<FaLayoutGrid collapsed gap={state.gap} cols={state.cols}>\n\t\t\t\t\t\t\t\t{slots.default && slots.default(state)}\n\t\t\t\t\t\t\t</FaLayoutGrid>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tslots.default && slots.default(state)\n\t\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t</ElForm>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 对整个表单的内容进行验证。 接收一个回调函数,或返回 Promise。 */\n\t\t\tvalidate: (): FormValidationResult => formUtil.validate(formRef),\n\t\t\t/** @description 验证具体的某个字段。 */\n\t\t\tvalidateField: computed(() => formRef.value?.validateField),\n\t\t\t/** @description 重置该表单项,将其值重置为初始值,并移除校验结果 */\n\t\t\tresetFields: computed(() => formRef.value?.resetFields),\n\t\t\t/** @description 清理某个字段的表单验证信息。 */\n\t\t\tclearValidate: computed(() => formRef.value?.clearValidate),\n\t\t\t/** @description 滚动到指定的字段 */\n\t\t\tscrollToField: computed(() => formRef.value?.scrollToField),\n\t\t\t/** @description 获取所有字段的 context */\n\t\t\tfields: computed(() => formRef.value?.fields as FormItemContext[]),\n\t\t\t/** @description 对整个表单的内容进行验证,带滚动。 接收一个回调函数,或返回 Promise。 */\n\t\t\tvalidateScrollToField: (): FormValidationResult => formUtil.validateScrollToField(formRef),\n\t\t});\n\t},\n});\n"],"names":["faFormProps","formProps","labelWidth","type","String","Number","default","labelSuffix","scrollToError","Boolean","detailForm","grid","cols","definePropType","Object","xs","sm","md","lg","xl","Form","name","props","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","computed","isObject","colsNumber","isNumber","gap","value","formRef","ref","provide","elFormProps","useProps","useRender","_createVNode","ElForm","_mergeProps","class","FaLayoutGrid","collapsed","useExpose","validate","formUtil","validateField","resetFields","clearValidate","scrollToField","fields","validateScrollToField"],"mappings":"6RASaA,EAAc,IACvBC,EAAAA,UAEHC,WAAY,CACXC,KAAM,CAACC,OAAQC,QACfC,QAAS,QAGVC,YAAa,CACZJ,KAAMC,OACNE,QAAS,KAGVE,cAAe,CACdL,KAAMM,QACNH,SAAS,GAGVI,WAAYD,QAEZE,KAAM,CACLR,KAAMM,QACNH,SAAS,GAGVM,KAAM,CACLT,KAAMU,EAAAA,eAAyE,CAACT,OAAQC,OAAQS,SAChGR,QAASA,KAAAA,CAAiDS,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAGC,GAAI,EAAGC,GAAI,MAS5FC,oBAA+B,CAC9BC,KAAM,SACNC,MAAOtB,EACPuB,MAAOC,EAAAA,YACPC,KAAAA,CAAMH,GAAOI,MAAEA,EAAAA,MAAOH,EAAAA,KAAOI,EAAAA,OAAMC,IAClC,MAAMC,EAAcC,EAAAA,gBAEdC,EAAQC,EAAAA,SAAS,CACtBpB,KAAMqB,EAAAA,SAAS,KACd,GAAIC,EAAAA,SAASZ,EAAMV,MAClB,OAAOU,EAAMV,KACP,CACN,MAAMuB,EAAaC,WAASd,EAAMV,MAAQU,EAAMV,KAAOP,OAAOiB,EAAMV,MACpE,MAAO,CAAEG,GAAI,EAAGC,GAAImB,EAAYlB,GAAIkB,EAAYjB,GAAIiB,EAAYhB,GAAIgB,EACrE,IAEDE,IAAKJ,EAAAA,SAAS,IAA6B,UAAtBJ,EAAYS,MAAoB,CAAC,GAAI,GAAK,CAAC,GAAI,MAG/DC,EAAUC,EAAAA,MAGhBC,UAAQ,aAAcV,EAAMnB,MAE5B,MAAM8B,EAAcC,EAAAA,SAASrB,EAAOrB,aAqBpC,OAnBA2C,EAAAA,UAAU,IAAAC,EAAAA,YAAAC,EAAAA,OAAAC,EAAAA,WAEJL,EAAYJ,MAAK,CAAAE,IAChBD,EAAOS,MACL,CAAC,UAAW,WAAWnB,EAAYS,QAAS,CAAE,CAAC,iCAAiCT,EAAYS,SAAUhB,EAAMZ,eAAa,CAG/HJ,QAASA,IACRgB,EAAMX,KAAIkC,EAAAA,YAAAI,EAAAA,aAAA,CAAAC,WAAA,EAAAb,IACoBN,EAAMM,IAAGzB,KAAQmB,EAAMnB,MAAI,CAAAN,QAAAA,IAAA,CACtDiB,EAAMjB,SAAWiB,EAAMjB,QAAQyB,MAGjCR,EAAMjB,SAAWiB,EAAMjB,QAAQyB,MAM7BoB,EAAAA,UAAUvB,EAAQ,CAExBwB,SAAUA,IAA4BC,EAAAA,SAASD,SAASb,GAExDe,cAAerB,EAAAA,SAAS,IAAMM,EAAQD,OAAOgB,eAE7CC,YAAatB,EAAAA,SAAS,IAAMM,EAAQD,OAAOiB,aAE3CC,cAAevB,EAAAA,SAAS,IAAMM,EAAQD,OAAOkB,eAE7CC,cAAexB,EAAAA,SAAS,IAAMM,EAAQD,OAAOmB,eAE7CC,OAAQzB,EAAAA,SAAS,IAAMM,EAAQD,OAAOoB,QAEtCC,sBAAuBA,IAA4BN,WAASM,sBAAsBpB,IAEpF"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("element-plus"),r=require("../../formItemTip/index.js"),a=require("../../layoutGrid/index.js"),l=require("@fast-china/utils"),s=require("lodash-unified"),o={...t.formItemProps,tips:String,grid:{type:Boolean,default:!0},offset:{type:[String,Number],default:0},span:{type:[String,Number]},row:Boolean},u=e.defineComponent({name:"FaFormItem",props:o,slots:l.makeSlots(),setup(o,{attrs:u,slots:i,expose:p}){const d=e.ref(),m=e.inject("cols",e.ref(4)),f=l.useProps(o,t.formItemProps),n=o.grid?a.FaLayoutGridItem:e.Fragment;return l.useRender(()=>e.createVNode(n,(()=>{if(!o.grid)return{};if(o.span)return{span:s.isNumber(o.span)?o.span:Number(o.span),offset:s.isNumber(o.offset)?o.offset:Number(o.offset)};{const e={span:1,offset:s.isNumber(o.offset)?o.offset:Number(o.offset)};return o.row&&(e.span=m.value),e}})(),{default:()=>[e.createVNode(t.ElFormItem,e.mergeProps({ref:d},f.value),{default:()=>i.default(),...i.label&&!o.tips&&{label:({label:e})=>i.label({label:e})},...i.label&&o.tips&&{label:({label:t})=>e.createVNode(r.FaFormItemTip,null,{label:()=>i.label({label:t})})},...!i.label&&o.tips&&{label:({label:t})=>e.createVNode(r.FaFormItemTip,{label:t??o.label,tips:o.tips},null)},...i.error&&{error:({error:e})=>i.error({error:e})}})]})),l.useExpose(p,{size:e.computed(()=>d.value?.size),validateMessage:e.computed(()=>d.value?.validateMessage),validateState:e.computed(()=>d.value?.validateState),validate:e.computed(()=>d.value?.validate),clearValidate:e.computed(()=>d.value?.clearValidate),resetField:e.computed(()=>d.value?.resetField)})}});exports.default=u,exports.faFormItemProps=o;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=require("element-plus"),r=require("../../formItemTip/index.js"),a=require("../../layoutGrid/index.js"),l=require("@fast-china/utils"),s=require("lodash-unified"),o={...t.formItemProps,tips:String,grid:{type:Boolean,default:!0},offset:{type:[String,Number],default:0},span:{type:[String,Number]},row:Boolean},u=e.defineComponent({name:"FaFormItem",props:o,slots:l.makeSlots(),setup(o,{attrs:u,slots:i,emit:p,expose:d}){const m=e.ref(),f=e.inject("cols",e.ref(4)),n=l.useProps(o,t.formItemProps),b=o.grid?a.FaLayoutGridItem:e.Fragment;return l.useRender(()=>e.createVNode(b,(()=>{if(!o.grid)return{};if(o.span)return{span:s.isNumber(o.span)?o.span:Number(o.span),offset:s.isNumber(o.offset)?o.offset:Number(o.offset)};{const e={span:1,offset:s.isNumber(o.offset)?o.offset:Number(o.offset)};return o.row&&(e.span=f.value),e}})(),{default:()=>[e.createVNode(t.ElFormItem,e.mergeProps({ref:m},n.value),{default:()=>i.default(),...i.label&&!o.tips&&{label:({label:e})=>i.label({label:e})},...i.label&&o.tips&&{label:({label:t})=>e.createVNode(r.FaFormItemTip,null,{label:()=>i.label({label:t})})},...!i.label&&o.tips&&{label:({label:t})=>e.createVNode(r.FaFormItemTip,{label:t??o.label,tips:o.tips},null)},...i.error&&{error:({error:e})=>i.error({error:e})}})]})),l.useExpose(d,{size:e.computed(()=>m.value?.size),validateMessage:e.computed(()=>m.value?.validateMessage),validateState:e.computed(()=>m.value?.validateState),validate:e.computed(()=>m.value?.validate),clearValidate:e.computed(()=>m.value?.clearValidate),resetField:e.computed(()=>m.value?.resetField)})}});exports.default=u,exports.faFormItemProps=o;
2
2
  //# sourceMappingURL=formItem.js.map