vxe-pc-ui 4.20.34 → 4.20.35

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 (367) hide show
  1. package/dist/all.esm.js +45718 -45038
  2. package/dist/all.esm.min.js +3 -3
  3. package/dist/style.css +307 -1
  4. package/dist/style.mini.css +1 -1
  5. package/es/alert/src/alert.js +117 -114
  6. package/es/anchor/src/anchor-link.js +110 -107
  7. package/es/anchor/src/anchor.js +212 -209
  8. package/es/avatar/src/avatar.js +132 -129
  9. package/es/backtop/src/backtop.js +267 -264
  10. package/es/badge/src/badge.js +102 -99
  11. package/es/breadcrumb/src/breadcrumb-item.js +104 -101
  12. package/es/breadcrumb/src/breadcrumb.js +70 -67
  13. package/es/button/src/button-group.js +88 -85
  14. package/es/calendar/src/calendar.js +1371 -1368
  15. package/es/card/src/card.js +235 -232
  16. package/es/carousel/src/carousel-item.js +78 -75
  17. package/es/carousel/src/carousel.js +392 -389
  18. package/es/cascader/src/cascader.js +1667 -1664
  19. package/es/checkbox/src/button.js +198 -195
  20. package/es/checkbox/src/checkbox.js +181 -178
  21. package/es/checkbox/src/group.js +210 -207
  22. package/es/collapse/src/collapse-pane.js +98 -95
  23. package/es/collapse/src/collapse.js +340 -337
  24. package/es/color-picker/src/color-picker.js +1116 -1113
  25. package/es/components.d.ts +1 -0
  26. package/es/components.js +3 -0
  27. package/es/context-menu/src/context-menu.js +601 -598
  28. package/es/countdown/src/countdown.js +224 -221
  29. package/es/date-panel/src/date-panel.js +1905 -1902
  30. package/es/date-picker/src/date-picker.js +1537 -1534
  31. package/es/date-range-picker/src/date-range-picker.js +1412 -1409
  32. package/es/divider/src/divider.js +80 -77
  33. package/es/drawer/src/drawer.js +778 -775
  34. package/es/empty/src/empty.js +100 -97
  35. package/es/form/src/form-group.js +74 -71
  36. package/es/form/src/form-item.js +76 -73
  37. package/es/form/src/form.js +789 -786
  38. package/es/icon/src/icon.js +59 -56
  39. package/es/icon/style.css +1 -1
  40. package/es/icon/style.mini.css +1 -1
  41. package/es/icon-picker/src/icon-picker.js +719 -716
  42. package/es/image/src/group.js +130 -127
  43. package/es/image/src/image.js +243 -240
  44. package/es/image/src/preview.js +627 -624
  45. package/es/index.esm.js +2 -0
  46. package/es/index.js +2 -0
  47. package/es/input/src/input.js +2700 -2697
  48. package/es/layout-aside/src/layout-aside.js +138 -135
  49. package/es/layout-body/src/layout-body.js +145 -142
  50. package/es/layout-container/src/layout-container.js +71 -68
  51. package/es/layout-footer/src/layout-footer.js +60 -57
  52. package/es/layout-header/src/layout-header.js +58 -55
  53. package/es/link/src/link.js +131 -128
  54. package/es/list/src/list.js +2174 -2171
  55. package/es/loading/src/loading.js +141 -138
  56. package/es/mention/src/mention.js +49 -46
  57. package/es/menu/src/menu.js +799 -796
  58. package/es/modal/src/modal.js +1519 -1527
  59. package/es/notice-bar/src/notice-bar.js +168 -165
  60. package/es/number-input/src/number-input.js +1094 -1091
  61. package/es/pager/src/pager.js +767 -764
  62. package/es/password-input/src/password-input.js +431 -428
  63. package/es/print/src/page-break.js +63 -60
  64. package/es/print/src/print.js +303 -300
  65. package/es/pulldown/src/pulldown.js +403 -400
  66. package/es/radio/src/button.js +214 -211
  67. package/es/radio/src/group.js +195 -192
  68. package/es/radio/src/radio.js +194 -191
  69. package/es/rate/src/rate.js +164 -161
  70. package/es/result/src/result.js +116 -113
  71. package/es/row/src/col.js +133 -130
  72. package/es/row/src/row.js +111 -108
  73. package/es/scrollbar/src/scrollbar.js +518 -515
  74. package/es/segmented/src/segmented.js +240 -237
  75. package/es/select/src/optgroup.js +44 -41
  76. package/es/select/src/option.js +39 -36
  77. package/es/select/src/select.js +1914 -1896
  78. package/es/slider/src/slider.js +419 -416
  79. package/es/space/src/space.js +190 -187
  80. package/es/splitter/src/splitter-panel.js +146 -143
  81. package/es/splitter/src/splitter.js +917 -914
  82. package/es/step-item/index.d.ts +76 -0
  83. package/es/step-item/index.js +17 -0
  84. package/es/steps/index.d.ts +288 -34
  85. package/es/steps/src/step-info.d.ts +6 -0
  86. package/es/steps/src/step-info.js +20 -0
  87. package/es/steps/src/step-item.d.ts +14 -0
  88. package/es/steps/src/step-item.js +39 -0
  89. package/es/steps/src/steps.d.ts +68 -8
  90. package/es/steps/src/steps.js +299 -47
  91. package/es/steps/src/util.d.ts +7 -0
  92. package/es/steps/src/util.js +44 -0
  93. package/es/steps/style.css +297 -0
  94. package/es/steps/style.mini.css +1 -0
  95. package/es/style.css +307 -1
  96. package/es/style.mini.css +1 -1
  97. package/es/switch/src/switch.js +228 -225
  98. package/es/table-select/src/table-select.js +865 -862
  99. package/es/table-transfer/src/table-transfer.js +61 -58
  100. package/es/tabs/src/tab-pane.js +102 -99
  101. package/es/tabs/src/tabs.js +936 -933
  102. package/es/tag/src/tag.js +163 -160
  103. package/es/text/src/text.js +232 -229
  104. package/es/text-ellipsis/src/text-ellipsis.js +252 -249
  105. package/es/textarea/src/textarea.js +434 -431
  106. package/es/timeline/src/timeline.js +74 -36
  107. package/es/timeline/src/util.js +7 -4
  108. package/es/tip/src/tip.js +117 -114
  109. package/es/tooltip/src/tooltip.js +552 -549
  110. package/es/tour/src/tour.js +49 -46
  111. package/es/transfer/src/transfer.js +95 -92
  112. package/es/tree/src/tree.js +3379 -3376
  113. package/es/tree-select/src/tree-select.js +969 -966
  114. package/es/ui/index.js +8 -2
  115. package/es/ui/src/log.js +1 -1
  116. package/es/upload/src/upload.js +1791 -1788
  117. package/es/vxe-icon/style.css +1 -1
  118. package/es/vxe-icon/style.mini.css +1 -1
  119. package/es/vxe-steps/style.css +297 -0
  120. package/es/vxe-steps/style.mini.css +1 -0
  121. package/es/watermark/src/watermark.js +158 -155
  122. package/lib/alert/src/alert.js +117 -114
  123. package/lib/anchor/src/anchor-link.js +110 -107
  124. package/lib/anchor/src/anchor.js +212 -209
  125. package/lib/avatar/src/avatar.js +132 -129
  126. package/lib/backtop/src/backtop.js +267 -264
  127. package/lib/badge/src/badge.js +102 -99
  128. package/lib/breadcrumb/src/breadcrumb-item.js +104 -101
  129. package/lib/breadcrumb/src/breadcrumb.js +70 -67
  130. package/lib/button/src/button-group.js +88 -85
  131. package/lib/calendar/src/calendar.js +1371 -1368
  132. package/lib/card/src/card.js +235 -232
  133. package/lib/carousel/src/carousel-item.js +78 -75
  134. package/lib/carousel/src/carousel.js +392 -389
  135. package/lib/cascader/src/cascader.js +1665 -1662
  136. package/lib/checkbox/src/button.js +198 -195
  137. package/lib/checkbox/src/checkbox.js +181 -178
  138. package/lib/checkbox/src/group.js +210 -207
  139. package/lib/collapse/src/collapse-pane.js +98 -95
  140. package/lib/collapse/src/collapse.js +340 -337
  141. package/lib/color-picker/src/color-picker.js +1116 -1113
  142. package/lib/components.js +3 -0
  143. package/lib/context-menu/src/context-menu.js +601 -598
  144. package/lib/countdown/src/countdown.js +224 -221
  145. package/lib/date-panel/src/date-panel.js +1905 -1902
  146. package/lib/date-picker/src/date-picker.js +1537 -1534
  147. package/lib/date-range-picker/src/date-range-picker.js +1412 -1409
  148. package/lib/divider/src/divider.js +80 -77
  149. package/lib/drawer/src/drawer.js +778 -775
  150. package/lib/empty/src/empty.js +100 -97
  151. package/lib/form/src/form-group.js +74 -71
  152. package/lib/form/src/form-item.js +76 -73
  153. package/lib/form/src/form.js +789 -786
  154. package/lib/icon/src/icon.js +59 -56
  155. package/lib/icon/style/style.css +1 -1
  156. package/lib/icon/style/style.mini.css +1 -1
  157. package/lib/icon-picker/src/icon-picker.js +719 -716
  158. package/lib/image/src/group.js +130 -127
  159. package/lib/image/src/image.js +243 -240
  160. package/lib/image/src/preview.js +627 -624
  161. package/lib/index.common.js +2 -0
  162. package/lib/index.js +2 -0
  163. package/lib/index.umd.js +47411 -46732
  164. package/lib/index.umd.min.js +3 -3
  165. package/lib/input/src/input.js +2700 -2697
  166. package/lib/layout-aside/src/layout-aside.js +138 -135
  167. package/lib/layout-body/src/layout-body.js +145 -142
  168. package/lib/layout-container/src/layout-container.js +71 -68
  169. package/lib/layout-footer/src/layout-footer.js +60 -57
  170. package/lib/layout-header/src/layout-header.js +58 -55
  171. package/lib/link/src/link.js +131 -128
  172. package/lib/list/src/list.js +2173 -2170
  173. package/lib/loading/src/loading.js +141 -138
  174. package/lib/mention/src/mention.js +49 -46
  175. package/lib/menu/src/menu.js +799 -796
  176. package/lib/modal/src/modal.js +1519 -1527
  177. package/lib/notice-bar/src/notice-bar.js +168 -165
  178. package/lib/number-input/src/number-input.js +1094 -1091
  179. package/lib/pager/src/pager.js +767 -764
  180. package/lib/password-input/src/password-input.js +431 -428
  181. package/lib/print/src/page-break.js +63 -60
  182. package/lib/print/src/print.js +303 -300
  183. package/lib/pulldown/src/pulldown.js +403 -400
  184. package/lib/radio/src/button.js +214 -211
  185. package/lib/radio/src/group.js +195 -192
  186. package/lib/radio/src/radio.js +194 -191
  187. package/lib/rate/src/rate.js +164 -161
  188. package/lib/result/src/result.js +116 -113
  189. package/lib/row/src/col.js +133 -130
  190. package/lib/row/src/row.js +111 -108
  191. package/lib/scrollbar/src/scrollbar.js +518 -515
  192. package/lib/segmented/src/segmented.js +240 -237
  193. package/lib/select/src/optgroup.js +44 -41
  194. package/lib/select/src/option.js +39 -36
  195. package/lib/select/src/select.js +1915 -1897
  196. package/lib/slider/src/slider.js +419 -416
  197. package/lib/space/src/space.js +190 -187
  198. package/lib/splitter/src/splitter-panel.js +146 -143
  199. package/lib/splitter/src/splitter.js +917 -914
  200. package/lib/step-item/index.js +47 -0
  201. package/lib/steps/src/step-info.js +49 -0
  202. package/lib/steps/src/step-item.js +59 -0
  203. package/lib/steps/src/steps.js +298 -46
  204. package/lib/steps/src/util.js +74 -0
  205. package/lib/steps/style/style.css +297 -0
  206. package/lib/steps/style/style.mini.css +1 -0
  207. package/lib/style.css +307 -1
  208. package/lib/style.mini.css +1 -1
  209. package/lib/switch/src/switch.js +228 -225
  210. package/lib/table-select/src/table-select.js +865 -862
  211. package/lib/table-transfer/src/table-transfer.js +61 -58
  212. package/lib/tabs/src/tab-pane.js +102 -99
  213. package/lib/tabs/src/tabs.js +936 -933
  214. package/lib/tag/src/tag.js +163 -160
  215. package/lib/text/src/text.js +232 -229
  216. package/lib/text-ellipsis/src/text-ellipsis.js +252 -249
  217. package/lib/textarea/src/textarea.js +434 -431
  218. package/lib/timeline/src/timeline.js +74 -36
  219. package/lib/timeline/src/util.js +7 -4
  220. package/lib/tip/src/tip.js +117 -114
  221. package/lib/tooltip/src/tooltip.js +552 -549
  222. package/lib/tour/src/tour.js +49 -46
  223. package/lib/transfer/src/transfer.js +95 -92
  224. package/lib/tree/src/tree.js +3379 -3376
  225. package/lib/tree-select/src/tree-select.js +969 -966
  226. package/lib/ui/index.js +8 -2
  227. package/lib/ui/src/log.js +1 -1
  228. package/lib/upload/src/upload.js +1788 -1785
  229. package/lib/vxe-icon/style/style.css +1 -1
  230. package/lib/vxe-icon/style/style.mini.css +1 -1
  231. package/lib/vxe-steps/style/style.css +297 -0
  232. package/lib/vxe-steps/style/style.mini.css +1 -0
  233. package/lib/watermark/src/watermark.js +158 -155
  234. package/package.json +1 -1
  235. package/packages/alert/src/alert.ts +2 -2
  236. package/packages/anchor/src/anchor-link.ts +2 -2
  237. package/packages/anchor/src/anchor.ts +2 -2
  238. package/packages/avatar/src/avatar.ts +2 -2
  239. package/packages/backtop/src/backtop.ts +2 -2
  240. package/packages/badge/src/badge.ts +2 -2
  241. package/packages/breadcrumb/src/breadcrumb-item.ts +2 -2
  242. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  243. package/packages/button/src/button-group.ts +2 -2
  244. package/packages/calendar/src/calendar.ts +2 -2
  245. package/packages/card/src/card.ts +2 -2
  246. package/packages/carousel/src/carousel-item.ts +2 -2
  247. package/packages/carousel/src/carousel.ts +2 -2
  248. package/packages/cascader/src/cascader.ts +2 -2
  249. package/packages/checkbox/src/button.ts +3 -15
  250. package/packages/checkbox/src/checkbox.ts +2 -2
  251. package/packages/checkbox/src/group.ts +2 -2
  252. package/packages/collapse/src/collapse-pane.ts +2 -2
  253. package/packages/collapse/src/collapse.ts +2 -2
  254. package/packages/color-picker/src/color-picker.ts +2 -2
  255. package/packages/components.ts +3 -0
  256. package/packages/context-menu/src/context-menu.ts +3 -16
  257. package/packages/countdown/src/countdown.ts +2 -2
  258. package/packages/date-panel/src/date-panel.ts +2 -2
  259. package/packages/date-picker/src/date-picker.ts +2 -2
  260. package/packages/date-range-picker/src/date-range-picker.ts +2 -2
  261. package/packages/divider/src/divider.ts +2 -2
  262. package/packages/drawer/src/drawer.ts +2 -2
  263. package/packages/empty/src/empty.ts +2 -2
  264. package/packages/form/src/form-group.ts +2 -2
  265. package/packages/form/src/form-item.ts +2 -2
  266. package/packages/form/src/form.ts +2 -2
  267. package/packages/icon/src/icon.ts +2 -2
  268. package/packages/icon-picker/src/icon-picker.ts +2 -2
  269. package/packages/image/src/group.ts +2 -2
  270. package/packages/image/src/image.ts +2 -2
  271. package/packages/image/src/preview.ts +3 -16
  272. package/packages/index.ts +2 -2
  273. package/packages/input/src/input.ts +2 -2
  274. package/packages/layout-aside/src/layout-aside.ts +2 -2
  275. package/packages/layout-body/src/layout-body.ts +2 -2
  276. package/packages/layout-container/src/layout-container.ts +3 -14
  277. package/packages/layout-footer/src/layout-footer.ts +2 -2
  278. package/packages/layout-header/src/layout-header.ts +2 -2
  279. package/packages/link/src/link.ts +2 -2
  280. package/packages/list/src/list.ts +2 -2
  281. package/packages/loading/src/loading.ts +2 -2
  282. package/packages/mention/src/mention.ts +2 -2
  283. package/packages/menu/src/menu.ts +2 -2
  284. package/packages/modal/src/modal.ts +5 -20
  285. package/packages/notice-bar/src/notice-bar.ts +2 -2
  286. package/packages/number-input/src/number-input.ts +3 -17
  287. package/packages/pager/src/pager.ts +2 -2
  288. package/packages/password-input/src/password-input.ts +2 -2
  289. package/packages/print/src/page-break.ts +2 -2
  290. package/packages/print/src/print.ts +2 -2
  291. package/packages/pulldown/src/pulldown.ts +2 -2
  292. package/packages/radio/src/button.ts +3 -16
  293. package/packages/radio/src/group.ts +3 -17
  294. package/packages/radio/src/radio.ts +2 -2
  295. package/packages/rate/src/rate.ts +2 -2
  296. package/packages/result/src/result.ts +2 -2
  297. package/packages/row/src/col.ts +2 -2
  298. package/packages/row/src/row.ts +2 -2
  299. package/packages/scrollbar/src/scrollbar.ts +3 -4
  300. package/packages/segmented/src/segmented.ts +2 -2
  301. package/packages/select/src/optgroup.ts +2 -2
  302. package/packages/select/src/option.ts +2 -2
  303. package/packages/select/src/select.ts +33 -19
  304. package/packages/slider/src/slider.ts +2 -2
  305. package/packages/space/src/space.ts +2 -2
  306. package/packages/splitter/src/splitter-panel.ts +2 -2
  307. package/packages/splitter/src/splitter.ts +2 -2
  308. package/packages/step-item/index.ts +16 -0
  309. package/packages/steps/src/step-info.ts +18 -0
  310. package/packages/steps/src/step-item.ts +41 -0
  311. package/packages/steps/src/steps.ts +273 -13
  312. package/packages/steps/src/util.ts +44 -0
  313. package/packages/switch/src/switch.ts +2 -2
  314. package/packages/table-select/src/table-select.ts +2 -2
  315. package/packages/table-transfer/src/table-transfer.ts +3 -15
  316. package/packages/tabs/src/tab-pane.ts +2 -2
  317. package/packages/tabs/src/tabs.ts +2 -2
  318. package/packages/tag/src/tag.ts +2 -2
  319. package/packages/text/src/text.ts +2 -2
  320. package/packages/text-ellipsis/src/text-ellipsis.ts +2 -2
  321. package/packages/textarea/src/textarea.ts +2 -2
  322. package/packages/timeline/src/timeline-info.ts +17 -17
  323. package/packages/timeline/src/timeline.ts +93 -49
  324. package/packages/timeline/src/util.ts +44 -41
  325. package/packages/tip/src/tip.ts +2 -2
  326. package/packages/tooltip/src/tooltip.ts +2 -2
  327. package/packages/tour/src/tour.ts +2 -2
  328. package/packages/transfer/src/transfer.ts +2 -2
  329. package/packages/tree/src/tree.ts +2 -2
  330. package/packages/tree-select/src/tree-select.ts +2 -2
  331. package/packages/ui/index.ts +8 -1
  332. package/packages/upload/src/upload.ts +2 -2
  333. package/packages/watermark/src/watermark.ts +2 -2
  334. package/styles/all.scss +1 -0
  335. package/styles/components/step-item.scss +0 -0
  336. package/styles/components/steps.scss +354 -0
  337. package/styles/theme/base.scss +9 -0
  338. package/types/all.d.ts +3 -0
  339. package/types/components/gantt.d.ts +1 -3
  340. package/types/components/select.d.ts +1 -13
  341. package/types/components/step-item.d.ts +72 -0
  342. package/types/components/steps.d.ts +67 -8
  343. package/types/components/table.d.ts +7 -66
  344. package/types/handles/form-design.d.ts +1 -4
  345. package/types/ui/global-config.d.ts +2 -0
  346. package/types/ui/global-icon.d.ts +7 -0
  347. /package/dist/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  348. /package/dist/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  349. /package/dist/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  350. /package/es/icon/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  351. /package/es/icon/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  352. /package/es/icon/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  353. /package/es/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  354. /package/es/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  355. /package/es/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  356. /package/es/vxe-icon/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  357. /package/es/vxe-icon/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  358. /package/es/vxe-icon/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  359. /package/lib/icon/style/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  360. /package/lib/icon/style/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  361. /package/lib/icon/style/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  362. /package/lib/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  363. /package/lib/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  364. /package/lib/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  365. /package/lib/vxe-icon/style/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  366. /package/lib/vxe-icon/style/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  367. /package/lib/vxe-icon/style/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
@@ -33,1533 +33,1536 @@ function createInternalData() {
33
33
  // hpTimeout: undefined
34
34
  };
35
35
  }
36
- var date_range_picker_default = defineVxeComponent({
37
- name: "VxeDateRangePicker",
38
- props: {
39
- modelValue: [String, Number, Date, Array],
40
- startValue: [String, Number, Date],
41
- endValue: [String, Number, Date],
42
- immediate: {
43
- type: Boolean,
44
- default: true
45
- },
46
- width: [Number, String],
47
- name: String,
48
- type: {
49
- type: String,
50
- default: "date"
51
- },
52
- clearable: {
53
- type: Boolean,
54
- default: () => getConfig().dateRangePicker.clearable
55
- },
56
- linkedPanels: {
57
- type: Boolean,
58
- default: () => getConfig().dateRangePicker.linkedPanels
59
- },
60
- readonly: {
61
- type: Boolean,
62
- default: null
63
- },
64
- disabled: {
65
- type: Boolean,
66
- default: null
67
- },
68
- placeholder: String,
69
- autoComplete: {
70
- type: String,
71
- default: "off"
72
- },
73
- form: String,
74
- className: String,
75
- inputClassName: {
76
- type: String,
77
- default: () => getConfig().dateRangePicker.inputClassName
78
- },
79
- zIndex: Number,
80
- size: {
81
- type: String,
82
- default: () => getConfig().dateRangePicker.size || getConfig().size
83
- },
84
- // startDate: {
85
- // type: [String, Number, Date] as PropType<VxeDateRangePickerPropTypes.StartDate>,
86
- // default: () => getConfig().dateRangePicker.startDate
87
- // },
88
- // endDate: {
89
- // type: [String, Number, Date] as PropType<VxeDateRangePickerPropTypes.EndDate>,
90
- // default: () => getConfig().dateRangePicker.endDate
91
- // },
92
- minDate: [String, Number, Date],
93
- maxDate: [String, Number, Date],
94
- defaultDate: [String, Number, Date, Array],
95
- defaultTime: [String, Number, Date, Array],
96
- startDay: {
97
- type: [String, Number],
98
- default: () => getConfig().dateRangePicker.startDay
99
- },
100
- labelFormat: String,
101
- valueFormat: String,
102
- timeFormat: String,
103
- valueType: String,
104
- editable: {
105
- type: Boolean,
106
- default: true
107
- },
108
- festivalMethod: Function,
109
- disabledMethod: Function,
110
- separator: {
111
- type: [String, Number],
112
- default: () => getConfig().dateRangePicker.separator
113
- },
114
- // week
115
- selectDay: {
116
- type: [String, Number],
117
- default: () => getConfig().dateRangePicker.selectDay
118
- },
119
- showClearButton: {
120
- type: Boolean,
121
- default: () => getConfig().dateRangePicker.showClearButton
122
- },
123
- showConfirmButton: {
124
- type: Boolean,
125
- default: () => getConfig().dateRangePicker.showConfirmButton
126
- },
127
- autoClose: {
128
- type: Boolean,
129
- default: () => getConfig().dateRangePicker.autoClose
130
- },
131
- prefixIcon: String,
132
- suffixIcon: String,
133
- /**
134
- * 已废弃,请使用 popupConfig.placement
135
- * @deprecated
136
- */
137
- placement: String,
138
- /**
139
- * 已废弃,请使用 popupConfig.transfer
140
- * @deprecated
141
- */
142
- transfer: {
143
- type: Boolean,
144
- default: null
36
+ var date_range_picker_default = (
37
+ /* define-vxe-component start */
38
+ defineVxeComponent({
39
+ name: "VxeDateRangePicker",
40
+ props: {
41
+ modelValue: [String, Number, Date, Array],
42
+ startValue: [String, Number, Date],
43
+ endValue: [String, Number, Date],
44
+ immediate: {
45
+ type: Boolean,
46
+ default: true
47
+ },
48
+ width: [Number, String],
49
+ name: String,
50
+ type: {
51
+ type: String,
52
+ default: "date"
53
+ },
54
+ clearable: {
55
+ type: Boolean,
56
+ default: () => getConfig().dateRangePicker.clearable
57
+ },
58
+ linkedPanels: {
59
+ type: Boolean,
60
+ default: () => getConfig().dateRangePicker.linkedPanels
61
+ },
62
+ readonly: {
63
+ type: Boolean,
64
+ default: null
65
+ },
66
+ disabled: {
67
+ type: Boolean,
68
+ default: null
69
+ },
70
+ placeholder: String,
71
+ autoComplete: {
72
+ type: String,
73
+ default: "off"
74
+ },
75
+ form: String,
76
+ className: String,
77
+ inputClassName: {
78
+ type: String,
79
+ default: () => getConfig().dateRangePicker.inputClassName
80
+ },
81
+ zIndex: Number,
82
+ size: {
83
+ type: String,
84
+ default: () => getConfig().dateRangePicker.size || getConfig().size
85
+ },
86
+ // startDate: {
87
+ // type: [String, Number, Date] as PropType<VxeDateRangePickerPropTypes.StartDate>,
88
+ // default: () => getConfig().dateRangePicker.startDate
89
+ // },
90
+ // endDate: {
91
+ // type: [String, Number, Date] as PropType<VxeDateRangePickerPropTypes.EndDate>,
92
+ // default: () => getConfig().dateRangePicker.endDate
93
+ // },
94
+ minDate: [String, Number, Date],
95
+ maxDate: [String, Number, Date],
96
+ defaultDate: [String, Number, Date, Array],
97
+ defaultTime: [String, Number, Date, Array],
98
+ startDay: {
99
+ type: [String, Number],
100
+ default: () => getConfig().dateRangePicker.startDay
101
+ },
102
+ labelFormat: String,
103
+ valueFormat: String,
104
+ timeFormat: String,
105
+ valueType: String,
106
+ editable: {
107
+ type: Boolean,
108
+ default: true
109
+ },
110
+ festivalMethod: Function,
111
+ disabledMethod: Function,
112
+ separator: {
113
+ type: [String, Number],
114
+ default: () => getConfig().dateRangePicker.separator
115
+ },
116
+ // week
117
+ selectDay: {
118
+ type: [String, Number],
119
+ default: () => getConfig().dateRangePicker.selectDay
120
+ },
121
+ showClearButton: {
122
+ type: Boolean,
123
+ default: () => getConfig().dateRangePicker.showClearButton
124
+ },
125
+ showConfirmButton: {
126
+ type: Boolean,
127
+ default: () => getConfig().dateRangePicker.showConfirmButton
128
+ },
129
+ autoClose: {
130
+ type: Boolean,
131
+ default: () => getConfig().dateRangePicker.autoClose
132
+ },
133
+ prefixIcon: String,
134
+ suffixIcon: String,
135
+ /**
136
+ * 已废弃,请使用 popupConfig.placement
137
+ * @deprecated
138
+ */
139
+ placement: String,
140
+ /**
141
+ * 已废弃,请使用 popupConfig.transfer
142
+ * @deprecated
143
+ */
144
+ transfer: {
145
+ type: Boolean,
146
+ default: null
147
+ },
148
+ timeConfig: Object,
149
+ popupConfig: Object,
150
+ shortcutConfig: Object
145
151
  },
146
- timeConfig: Object,
147
- popupConfig: Object,
148
- shortcutConfig: Object
149
- },
150
- emits: ["update:modelValue", "update:startValue", "update:endValue", "input", "change", "keydown", "keyup", "click", "focus", "blur", "clear", "confirm", "prefix-click", "suffix-click", "date-prev", "date-today", "date-next", "shortcut-click"],
151
- setup(props, context) {
152
- const { slots, emit } = context;
153
- const $xeModal = inject("$xeModal", null);
154
- const $xeDrawer = inject("$xeDrawer", null);
155
- const $xeTable = inject("$xeTable", null);
156
- const $xeCard = inject("$xeCard", null);
157
- const $xeForm = inject("$xeForm", null);
158
- const formItemInfo = inject("xeFormItemInfo", null);
159
- const xID = XEUtils.uniqueId();
160
- const { computeSize } = useFns.useSize(props);
161
- const reactData = reactive(createReactData());
162
- const internalData = createInternalData();
163
- const defaultFuncProps = {
164
- festivalMethod: getConfig().dateRangePicker.festivalMethod,
165
- disabledMethod: getConfig().dateRangePicker.disabledMethod
166
- };
167
- const refElem = ref();
168
- const refInputTarget = ref();
169
- const refInputPanel = ref();
170
- const refPanelWrapper = ref();
171
- const refStartDatePanel = ref();
172
- const refEndDatePanel = ref();
173
- const refMaps = {
174
- refElem,
175
- refInput: refInputTarget
176
- };
177
- const $xeDateRangePicker = {
178
- xID,
179
- props,
180
- context,
181
- reactData,
182
- internalData,
183
- getRefMaps: () => refMaps
184
- };
185
- let dateRangePickerMethods = {};
186
- const computeBtnTransfer = computed(() => {
187
- const { transfer } = props;
188
- const popupOpts = computePopupOpts.value;
189
- if (XEUtils.isBoolean(popupOpts.transfer)) {
190
- return popupOpts.transfer;
191
- }
192
- if (transfer === null) {
193
- const globalTransfer = getConfig().dateRangePicker.transfer;
194
- if (XEUtils.isBoolean(globalTransfer)) {
195
- return globalTransfer;
152
+ emits: ["update:modelValue", "update:startValue", "update:endValue", "input", "change", "keydown", "keyup", "click", "focus", "blur", "clear", "confirm", "prefix-click", "suffix-click", "date-prev", "date-today", "date-next", "shortcut-click"],
153
+ setup(props, context) {
154
+ const { slots, emit } = context;
155
+ const $xeModal = inject("$xeModal", null);
156
+ const $xeDrawer = inject("$xeDrawer", null);
157
+ const $xeTable = inject("$xeTable", null);
158
+ const $xeCard = inject("$xeCard", null);
159
+ const $xeForm = inject("$xeForm", null);
160
+ const formItemInfo = inject("xeFormItemInfo", null);
161
+ const xID = XEUtils.uniqueId();
162
+ const { computeSize } = useFns.useSize(props);
163
+ const reactData = reactive(createReactData());
164
+ const internalData = createInternalData();
165
+ const defaultFuncProps = {
166
+ festivalMethod: getConfig().dateRangePicker.festivalMethod,
167
+ disabledMethod: getConfig().dateRangePicker.disabledMethod
168
+ };
169
+ const refElem = ref();
170
+ const refInputTarget = ref();
171
+ const refInputPanel = ref();
172
+ const refPanelWrapper = ref();
173
+ const refStartDatePanel = ref();
174
+ const refEndDatePanel = ref();
175
+ const refMaps = {
176
+ refElem,
177
+ refInput: refInputTarget
178
+ };
179
+ const $xeDateRangePicker = {
180
+ xID,
181
+ props,
182
+ context,
183
+ reactData,
184
+ internalData,
185
+ getRefMaps: () => refMaps
186
+ };
187
+ let dateRangePickerMethods = {};
188
+ const computeBtnTransfer = computed(() => {
189
+ const { transfer } = props;
190
+ const popupOpts = computePopupOpts.value;
191
+ if (XEUtils.isBoolean(popupOpts.transfer)) {
192
+ return popupOpts.transfer;
196
193
  }
197
- if ($xeTable || $xeModal || $xeDrawer || $xeCard || $xeForm) {
198
- return true;
194
+ if (transfer === null) {
195
+ const globalTransfer = getConfig().dateRangePicker.transfer;
196
+ if (XEUtils.isBoolean(globalTransfer)) {
197
+ return globalTransfer;
198
+ }
199
+ if ($xeTable || $xeModal || $xeDrawer || $xeCard || $xeForm) {
200
+ return true;
201
+ }
199
202
  }
200
- }
201
- return transfer;
202
- });
203
- const computeFormReadonly = computed(() => {
204
- const { readonly } = props;
205
- if (readonly === null) {
206
- if ($xeForm) {
207
- return $xeForm.props.readonly;
203
+ return transfer;
204
+ });
205
+ const computeFormReadonly = computed(() => {
206
+ const { readonly } = props;
207
+ if (readonly === null) {
208
+ if ($xeForm) {
209
+ return $xeForm.props.readonly;
210
+ }
211
+ return false;
208
212
  }
209
- return false;
210
- }
211
- return readonly;
212
- });
213
- const computeIsDisabled = computed(() => {
214
- const { disabled } = props;
215
- if (disabled === null) {
216
- if ($xeForm) {
217
- return $xeForm.props.disabled;
213
+ return readonly;
214
+ });
215
+ const computeIsDisabled = computed(() => {
216
+ const { disabled } = props;
217
+ if (disabled === null) {
218
+ if ($xeForm) {
219
+ return $xeForm.props.disabled;
220
+ }
221
+ return false;
218
222
  }
219
- return false;
220
- }
221
- return disabled;
222
- });
223
- const computeDefaultDates = computed(() => {
224
- const { defaultDate } = props;
225
- if (defaultDate) {
226
- if (XEUtils.isArray(defaultDate)) {
227
- return defaultDate;
223
+ return disabled;
224
+ });
225
+ const computeDefaultDates = computed(() => {
226
+ const { defaultDate } = props;
227
+ if (defaultDate) {
228
+ if (XEUtils.isArray(defaultDate)) {
229
+ return defaultDate;
230
+ }
231
+ if (`${defaultDate}`.indexOf(",") > -1) {
232
+ return `${defaultDate}`.split(",");
233
+ }
234
+ return [defaultDate, defaultDate];
228
235
  }
229
- if (`${defaultDate}`.indexOf(",") > -1) {
230
- return `${defaultDate}`.split(",");
236
+ return [];
237
+ });
238
+ const computeDefaultTimes = computed(() => {
239
+ const { defaultTime } = props;
240
+ if (defaultTime) {
241
+ if (XEUtils.isArray(defaultTime)) {
242
+ return defaultTime;
243
+ }
244
+ if (`${defaultTime}`.indexOf(",") > -1) {
245
+ return `${defaultTime}`.split(",");
246
+ }
247
+ return [defaultTime, defaultTime];
231
248
  }
232
- return [defaultDate, defaultDate];
233
- }
234
- return [];
235
- });
236
- const computeDefaultTimes = computed(() => {
237
- const { defaultTime } = props;
238
- if (defaultTime) {
239
- if (XEUtils.isArray(defaultTime)) {
240
- return defaultTime;
249
+ return [];
250
+ });
251
+ const computeCurrStyle = computed(() => {
252
+ const { width } = props;
253
+ const stys = {};
254
+ if (width) {
255
+ stys.width = toCssUnit(width);
241
256
  }
242
- if (`${defaultTime}`.indexOf(",") > -1) {
243
- return `${defaultTime}`.split(",");
257
+ return stys;
258
+ });
259
+ const computeMVal = computed(() => {
260
+ const { startValue, endValue } = props;
261
+ return `${startValue || ""}${endValue || ""}`;
262
+ });
263
+ const computeIsTimeType = computed(() => {
264
+ const { type } = props;
265
+ return type === "time";
266
+ });
267
+ const computeIsTimeOrDateTimeType = computed(() => {
268
+ const { type } = props;
269
+ const isTimeType = computeIsTimeType.value;
270
+ return isTimeType || type === "datetime";
271
+ });
272
+ const computeIsDatePickerType = computed(() => {
273
+ return ["date", "week", "month", "quarter", "year"].indexOf(props.type) > -1;
274
+ });
275
+ const computeIsClearable = computed(() => {
276
+ return props.clearable;
277
+ });
278
+ const computeInpPlaceholder = computed(() => {
279
+ const { placeholder } = props;
280
+ if (placeholder) {
281
+ return getFuncText(placeholder);
244
282
  }
245
- return [defaultTime, defaultTime];
246
- }
247
- return [];
248
- });
249
- const computeCurrStyle = computed(() => {
250
- const { width } = props;
251
- const stys = {};
252
- if (width) {
253
- stys.width = toCssUnit(width);
254
- }
255
- return stys;
256
- });
257
- const computeMVal = computed(() => {
258
- const { startValue, endValue } = props;
259
- return `${startValue || ""}${endValue || ""}`;
260
- });
261
- const computeIsTimeType = computed(() => {
262
- const { type } = props;
263
- return type === "time";
264
- });
265
- const computeIsTimeOrDateTimeType = computed(() => {
266
- const { type } = props;
267
- const isTimeType = computeIsTimeType.value;
268
- return isTimeType || type === "datetime";
269
- });
270
- const computeIsDatePickerType = computed(() => {
271
- return ["date", "week", "month", "quarter", "year"].indexOf(props.type) > -1;
272
- });
273
- const computeIsClearable = computed(() => {
274
- return props.clearable;
275
- });
276
- const computeInpPlaceholder = computed(() => {
277
- const { placeholder } = props;
278
- if (placeholder) {
279
- return getFuncText(placeholder);
280
- }
281
- const globalPlaceholder = getConfig().dateRangePicker.placeholder;
282
- if (globalPlaceholder) {
283
- return getFuncText(globalPlaceholder);
284
- }
285
- return getI18n("vxe.dateRangePicker.pleaseRange");
286
- });
287
- const computeInpImmediate = computed(() => {
288
- const { immediate } = props;
289
- return immediate;
290
- });
291
- const computeTimeOpts = computed(() => {
292
- return Object.assign({}, getConfig().dateRangePicker.timeConfig, props.timeConfig);
293
- });
294
- const computePopupOpts = computed(() => {
295
- return Object.assign({}, getConfig().dateRangePicker.popupConfig, props.popupConfig);
296
- });
297
- const computeShortcutOpts = computed(() => {
298
- return Object.assign({}, getConfig().dateRangePicker.shortcutConfig, props.shortcutConfig);
299
- });
300
- const computeShortcutList = computed(() => {
301
- const shortcutOpts = computeShortcutOpts.value;
302
- const { options } = shortcutOpts;
303
- if (options) {
304
- return options.map((option, index) => {
305
- return Object.assign(
306
- {
307
- name: `${option.name || option.code || index}`
308
- },
309
- option
310
- );
311
- });
312
- }
313
- return [];
314
- });
315
- const computeDateLabelFormat = computed(() => {
316
- const { labelFormat } = props;
317
- return labelFormat || getI18n(`vxe.input.date.labelFormat.${props.type}`);
318
- });
319
- const computeDateValueFormat = computed(() => {
320
- const { type, valueFormat } = props;
321
- return handleValueFormat(type, valueFormat);
322
- });
323
- const computeFirstDayOfWeek = computed(() => {
324
- const { startDay } = props;
325
- return XEUtils.toNumber(startDay);
326
- });
327
- const computePanelLabelObj = computed(() => {
328
- const { selectStValue, selectEdValue } = reactData;
329
- const vals = selectStValue || selectEdValue ? [selectStValue || "", selectEdValue || ""] : [];
330
- return formatRangeLabel(vals);
331
- });
332
- const computeInputLabel = computed(() => {
333
- const panelLabelObj = computePanelLabelObj.value;
334
- return panelLabelObj.label;
335
- });
336
- const formatRangeLabel = (vals) => {
337
- const { type, separator } = props;
338
- const dateLabelFormat = computeDateLabelFormat.value;
339
- const dateValueFormat = computeDateValueFormat.value;
340
- const firstDayOfWeek = computeFirstDayOfWeek.value;
341
- const startRest = vals[0] ? parseDateObj(vals[0], type, {
342
- valueFormat: dateValueFormat,
343
- labelFormat: dateLabelFormat,
344
- firstDay: firstDayOfWeek
345
- }) : null;
346
- const endRest = vals[1] ? parseDateObj(vals[1], type, {
347
- valueFormat: dateValueFormat,
348
- labelFormat: dateLabelFormat,
349
- firstDay: firstDayOfWeek
350
- }) : null;
351
- const startLabel = startRest ? startRest.label : "";
352
- const endLabel = endRest ? endRest.label : "";
353
- return {
354
- label: (startLabel || endLabel ? [startLabel, endLabel] : []).join(`${separator || " ~ "}`),
355
- startLabel,
356
- endLabel
357
- };
358
- };
359
- const getRangeValue = (sValue, eValue) => {
360
- const { modelValue, valueType, valueFormat } = props;
361
- let isArr = valueFormat === "date" || XEUtils.isArray(modelValue);
362
- if (valueType) {
363
- switch (valueType) {
364
- case "array":
365
- isArr = true;
366
- break;
367
- case "string":
368
- isArr = false;
369
- break;
283
+ const globalPlaceholder = getConfig().dateRangePicker.placeholder;
284
+ if (globalPlaceholder) {
285
+ return getFuncText(globalPlaceholder);
370
286
  }
371
- }
372
- if (sValue || eValue) {
373
- const rest = [sValue || null, eValue || null];
374
- if (isArr) {
375
- return rest;
287
+ return getI18n("vxe.dateRangePicker.pleaseRange");
288
+ });
289
+ const computeInpImmediate = computed(() => {
290
+ const { immediate } = props;
291
+ return immediate;
292
+ });
293
+ const computeTimeOpts = computed(() => {
294
+ return Object.assign({}, getConfig().dateRangePicker.timeConfig, props.timeConfig);
295
+ });
296
+ const computePopupOpts = computed(() => {
297
+ return Object.assign({}, getConfig().dateRangePicker.popupConfig, props.popupConfig);
298
+ });
299
+ const computeShortcutOpts = computed(() => {
300
+ return Object.assign({}, getConfig().dateRangePicker.shortcutConfig, props.shortcutConfig);
301
+ });
302
+ const computeShortcutList = computed(() => {
303
+ const shortcutOpts = computeShortcutOpts.value;
304
+ const { options } = shortcutOpts;
305
+ if (options) {
306
+ return options.map((option, index) => {
307
+ return Object.assign(
308
+ {
309
+ name: `${option.name || option.code || index}`
310
+ },
311
+ option
312
+ );
313
+ });
376
314
  }
377
- return rest.join(",");
378
- }
379
- return isArr ? [] : "";
380
- };
381
- const paraeUpdateModel = () => {
382
- const { type, modelValue } = props;
383
- const dateValueFormat = computeDateValueFormat.value;
384
- let sValue = "";
385
- let eValue = "";
386
- if (XEUtils.isArray(modelValue)) {
387
- const date1 = parseDateString(modelValue[0], type, { valueFormat: dateValueFormat });
388
- const date2 = parseDateString(modelValue[1], type, { valueFormat: dateValueFormat });
389
- if (date1 || date2) {
390
- sValue = date1 || "";
391
- eValue = date2 || "";
315
+ return [];
316
+ });
317
+ const computeDateLabelFormat = computed(() => {
318
+ const { labelFormat } = props;
319
+ return labelFormat || getI18n(`vxe.input.date.labelFormat.${props.type}`);
320
+ });
321
+ const computeDateValueFormat = computed(() => {
322
+ const { type, valueFormat } = props;
323
+ return handleValueFormat(type, valueFormat);
324
+ });
325
+ const computeFirstDayOfWeek = computed(() => {
326
+ const { startDay } = props;
327
+ return XEUtils.toNumber(startDay);
328
+ });
329
+ const computePanelLabelObj = computed(() => {
330
+ const { selectStValue, selectEdValue } = reactData;
331
+ const vals = selectStValue || selectEdValue ? [selectStValue || "", selectEdValue || ""] : [];
332
+ return formatRangeLabel(vals);
333
+ });
334
+ const computeInputLabel = computed(() => {
335
+ const panelLabelObj = computePanelLabelObj.value;
336
+ return panelLabelObj.label;
337
+ });
338
+ const formatRangeLabel = (vals) => {
339
+ const { type, separator } = props;
340
+ const dateLabelFormat = computeDateLabelFormat.value;
341
+ const dateValueFormat = computeDateValueFormat.value;
342
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
343
+ const startRest = vals[0] ? parseDateObj(vals[0], type, {
344
+ valueFormat: dateValueFormat,
345
+ labelFormat: dateLabelFormat,
346
+ firstDay: firstDayOfWeek
347
+ }) : null;
348
+ const endRest = vals[1] ? parseDateObj(vals[1], type, {
349
+ valueFormat: dateValueFormat,
350
+ labelFormat: dateLabelFormat,
351
+ firstDay: firstDayOfWeek
352
+ }) : null;
353
+ const startLabel = startRest ? startRest.label : "";
354
+ const endLabel = endRest ? endRest.label : "";
355
+ return {
356
+ label: (startLabel || endLabel ? [startLabel, endLabel] : []).join(`${separator || " ~ "}`),
357
+ startLabel,
358
+ endLabel
359
+ };
360
+ };
361
+ const getRangeValue = (sValue, eValue) => {
362
+ const { modelValue, valueType, valueFormat } = props;
363
+ let isArr = valueFormat === "date" || XEUtils.isArray(modelValue);
364
+ if (valueType) {
365
+ switch (valueType) {
366
+ case "array":
367
+ isArr = true;
368
+ break;
369
+ case "string":
370
+ isArr = false;
371
+ break;
372
+ }
392
373
  }
393
- } else if (XEUtils.isString(modelValue)) {
394
- const strArr = modelValue.split(",");
395
- if (strArr[0] || strArr[1]) {
396
- sValue = strArr[0] || "";
397
- eValue = strArr[1] || "";
374
+ if (sValue || eValue) {
375
+ const rest = [sValue || null, eValue || null];
376
+ if (isArr) {
377
+ return rest;
378
+ }
379
+ return rest.join(",");
398
380
  }
399
- }
400
- return {
401
- sValue,
402
- eValue
381
+ return isArr ? [] : "";
403
382
  };
404
- };
405
- const parseUpdateData = () => {
406
- const { type, startValue, endValue } = props;
407
- const dateValueFormat = computeDateValueFormat.value;
408
- let sValue = "";
409
- let eValue = "";
410
- sValue = parseDateString(startValue, type, { valueFormat: dateValueFormat });
411
- eValue = parseDateString(endValue, type, { valueFormat: dateValueFormat });
412
- return {
413
- sValue,
414
- eValue
383
+ const paraeUpdateModel = () => {
384
+ const { type, modelValue } = props;
385
+ const dateValueFormat = computeDateValueFormat.value;
386
+ let sValue = "";
387
+ let eValue = "";
388
+ if (XEUtils.isArray(modelValue)) {
389
+ const date1 = parseDateString(modelValue[0], type, { valueFormat: dateValueFormat });
390
+ const date2 = parseDateString(modelValue[1], type, { valueFormat: dateValueFormat });
391
+ if (date1 || date2) {
392
+ sValue = date1 || "";
393
+ eValue = date2 || "";
394
+ }
395
+ } else if (XEUtils.isString(modelValue)) {
396
+ const strArr = modelValue.split(",");
397
+ if (strArr[0] || strArr[1]) {
398
+ sValue = strArr[0] || "";
399
+ eValue = strArr[1] || "";
400
+ }
401
+ }
402
+ return {
403
+ sValue,
404
+ eValue
405
+ };
415
406
  };
416
- };
417
- const updateModelValue = (isModel) => {
418
- const { modelValue, startValue, endValue, valueFormat } = props;
419
- let restObj = {
420
- sValue: "",
421
- eValue: ""
407
+ const parseUpdateData = () => {
408
+ const { type, startValue, endValue } = props;
409
+ const dateValueFormat = computeDateValueFormat.value;
410
+ let sValue = "";
411
+ let eValue = "";
412
+ sValue = parseDateString(startValue, type, { valueFormat: dateValueFormat });
413
+ eValue = parseDateString(endValue, type, { valueFormat: dateValueFormat });
414
+ return {
415
+ sValue,
416
+ eValue
417
+ };
422
418
  };
423
- if (isModel) {
424
- if (modelValue) {
425
- restObj = paraeUpdateModel();
426
- } else {
427
- restObj = parseUpdateData();
428
- }
429
- } else {
430
- if (startValue || endValue) {
431
- restObj = parseUpdateData();
419
+ const updateModelValue = (isModel) => {
420
+ const { modelValue, startValue, endValue, valueFormat } = props;
421
+ let restObj = {
422
+ sValue: "",
423
+ eValue: ""
424
+ };
425
+ if (isModel) {
426
+ if (modelValue) {
427
+ restObj = paraeUpdateModel();
428
+ } else {
429
+ restObj = parseUpdateData();
430
+ }
432
431
  } else {
433
- restObj = paraeUpdateModel();
432
+ if (startValue || endValue) {
433
+ restObj = parseUpdateData();
434
+ } else {
435
+ restObj = paraeUpdateModel();
436
+ }
434
437
  }
435
- }
436
- let startRest = restObj.sValue;
437
- let endRest = restObj.eValue;
438
- if (valueFormat === "timestamp") {
439
- if (XEUtils.isString(startRest) && /^\d+$/.test(startRest)) {
440
- startRest = Number(startRest);
438
+ let startRest = restObj.sValue;
439
+ let endRest = restObj.eValue;
440
+ if (valueFormat === "timestamp") {
441
+ if (XEUtils.isString(startRest) && /^\d+$/.test(startRest)) {
442
+ startRest = Number(startRest);
443
+ }
444
+ if (XEUtils.isString(endRest) && /^\d+$/.test(endRest)) {
445
+ endRest = Number(endRest);
446
+ }
441
447
  }
442
- if (XEUtils.isString(endRest) && /^\d+$/.test(endRest)) {
443
- endRest = Number(endRest);
448
+ reactData.selectStValue = startRest;
449
+ reactData.selectEdValue = endRest;
450
+ reactData.paneEndVal = [startRest, endRest];
451
+ reactData.paneStartVal = [startRest, endRest];
452
+ };
453
+ const triggerEvent = (evnt) => {
454
+ const { selectStValue, selectEdValue } = reactData;
455
+ const value = getRangeValue(selectStValue, selectEdValue);
456
+ dispatchEvent(evnt.type, { value, startValue: selectStValue, endValue: selectEdValue }, evnt);
457
+ };
458
+ const handleChange = (sValue, eValue, evnt) => {
459
+ const { type, modelValue, valueFormat } = props;
460
+ const dateValueFormat = computeDateValueFormat.value;
461
+ let startRest = sValue;
462
+ let endRest = eValue;
463
+ if (hasTimestampValueType(valueFormat)) {
464
+ if (startRest) {
465
+ const dateVal = parseDateValue(startRest, type, { valueFormat: dateValueFormat });
466
+ startRest = dateVal ? dateVal.getTime() : null;
467
+ }
468
+ if (endRest) {
469
+ const dateVal = parseDateValue(endRest, type, { valueFormat: dateValueFormat });
470
+ endRest = dateVal ? dateVal.getTime() : null;
471
+ }
472
+ } else if (hasDateValueType(valueFormat)) {
473
+ if (startRest) {
474
+ startRest = parseDateValue(startRest, type, { valueFormat: dateValueFormat });
475
+ }
476
+ if (endRest) {
477
+ endRest = parseDateValue(endRest, type, { valueFormat: dateValueFormat });
478
+ }
444
479
  }
445
- }
446
- reactData.selectStValue = startRest;
447
- reactData.selectEdValue = endRest;
448
- reactData.paneEndVal = [startRest, endRest];
449
- reactData.paneStartVal = [startRest, endRest];
450
- };
451
- const triggerEvent = (evnt) => {
452
- const { selectStValue, selectEdValue } = reactData;
453
- const value = getRangeValue(selectStValue, selectEdValue);
454
- dispatchEvent(evnt.type, { value, startValue: selectStValue, endValue: selectEdValue }, evnt);
455
- };
456
- const handleChange = (sValue, eValue, evnt) => {
457
- const { type, modelValue, valueFormat } = props;
458
- const dateValueFormat = computeDateValueFormat.value;
459
- let startRest = sValue;
460
- let endRest = eValue;
461
- if (hasTimestampValueType(valueFormat)) {
462
- if (startRest) {
463
- const dateVal = parseDateValue(startRest, type, { valueFormat: dateValueFormat });
464
- startRest = dateVal ? dateVal.getTime() : null;
480
+ reactData.selectStValue = startRest;
481
+ reactData.selectEdValue = endRest;
482
+ const value = getRangeValue(startRest, endRest);
483
+ const isFinish = startRest && endRest || !startRest && !endRest;
484
+ emitModel(value);
485
+ emit("update:startValue", startRest || "");
486
+ emit("update:endValue", endRest || "");
487
+ if (XEUtils.toValueString(modelValue) !== value) {
488
+ dispatchEvent("change", { value, startValue: startRest, endValue: endRest, isFinish }, evnt);
489
+ if ($xeForm && formItemInfo) {
490
+ $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
491
+ }
465
492
  }
466
- if (endRest) {
467
- const dateVal = parseDateValue(endRest, type, { valueFormat: dateValueFormat });
468
- endRest = dateVal ? dateVal.getTime() : null;
493
+ };
494
+ const changeEvent = (evnt) => {
495
+ const inpImmediate = computeInpImmediate.value;
496
+ if (!inpImmediate) {
497
+ triggerEvent(evnt);
469
498
  }
470
- } else if (hasDateValueType(valueFormat)) {
471
- if (startRest) {
472
- startRest = parseDateValue(startRest, type, { valueFormat: dateValueFormat });
499
+ };
500
+ const focusEvent = (evnt) => {
501
+ const popupOpts = computePopupOpts.value;
502
+ const { trigger } = popupOpts;
503
+ reactData.isActivated = true;
504
+ if (!trigger || trigger === "default") {
505
+ dateRangePickerOpenEvent(evnt);
506
+ } else if (trigger === "icon") {
507
+ hidePanel();
473
508
  }
474
- if (endRest) {
475
- endRest = parseDateValue(endRest, type, { valueFormat: dateValueFormat });
509
+ triggerEvent(evnt);
510
+ };
511
+ const clickPrefixEvent = (evnt) => {
512
+ const isDisabled = computeIsDisabled.value;
513
+ if (!isDisabled) {
514
+ const { selectStValue, selectEdValue } = reactData;
515
+ const value = getRangeValue(selectStValue, selectEdValue);
516
+ dispatchEvent("prefix-click", { value, startValue: selectStValue, endValue: selectEdValue }, evnt);
476
517
  }
477
- }
478
- reactData.selectStValue = startRest;
479
- reactData.selectEdValue = endRest;
480
- const value = getRangeValue(startRest, endRest);
481
- const isFinish = startRest && endRest || !startRest && !endRest;
482
- emitModel(value);
483
- emit("update:startValue", startRest || "");
484
- emit("update:endValue", endRest || "");
485
- if (XEUtils.toValueString(modelValue) !== value) {
486
- dispatchEvent("change", { value, startValue: startRest, endValue: endRest, isFinish }, evnt);
487
- if ($xeForm && formItemInfo) {
488
- $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
518
+ };
519
+ const hidePanel = () => {
520
+ return new Promise((resolve) => {
521
+ reactData.visiblePanel = false;
522
+ internalData.hpTimeout = setTimeout(() => {
523
+ reactData.isAniVisible = false;
524
+ resolve();
525
+ }, 350);
526
+ });
527
+ };
528
+ const clearValueEvent = (evnt, value) => {
529
+ const isDatePickerType = computeIsDatePickerType.value;
530
+ if (isDatePickerType) {
531
+ hidePanel();
489
532
  }
490
- }
491
- };
492
- const changeEvent = (evnt) => {
493
- const inpImmediate = computeInpImmediate.value;
494
- if (!inpImmediate) {
495
- triggerEvent(evnt);
496
- }
497
- };
498
- const focusEvent = (evnt) => {
499
- const popupOpts = computePopupOpts.value;
500
- const { trigger } = popupOpts;
501
- reactData.isActivated = true;
502
- if (!trigger || trigger === "default") {
503
- dateRangePickerOpenEvent(evnt);
504
- } else if (trigger === "icon") {
505
- hidePanel();
506
- }
507
- triggerEvent(evnt);
508
- };
509
- const clickPrefixEvent = (evnt) => {
510
- const isDisabled = computeIsDisabled.value;
511
- if (!isDisabled) {
512
- const { selectStValue, selectEdValue } = reactData;
513
- const value = getRangeValue(selectStValue, selectEdValue);
514
- dispatchEvent("prefix-click", { value, startValue: selectStValue, endValue: selectEdValue }, evnt);
515
- }
516
- };
517
- const hidePanel = () => {
518
- return new Promise((resolve) => {
519
- reactData.visiblePanel = false;
520
- internalData.hpTimeout = setTimeout(() => {
521
- reactData.isAniVisible = false;
522
- resolve();
523
- }, 350);
524
- });
525
- };
526
- const clearValueEvent = (evnt, value) => {
527
- const isDatePickerType = computeIsDatePickerType.value;
528
- if (isDatePickerType) {
529
- hidePanel();
530
- }
531
- const startValue = "";
532
- const endValue = "";
533
- handleChange(startValue, endValue, evnt);
534
- dispatchEvent("clear", { value, startValue, endValue }, evnt);
535
- };
536
- const checkValue = () => {
537
- const $startDatePanel = refStartDatePanel.value;
538
- const $endDatePanel = refEndDatePanel.value;
539
- if ($startDatePanel && $endDatePanel) {
540
- const startValue = $startDatePanel.getModelValue();
541
- const endValue = $endDatePanel.getModelValue();
542
- if (!startValue || !endValue) {
543
- handleChange("", "", { type: "check" });
533
+ const startValue = "";
534
+ const endValue = "";
535
+ handleChange(startValue, endValue, evnt);
536
+ dispatchEvent("clear", { value, startValue, endValue }, evnt);
537
+ };
538
+ const checkValue = () => {
539
+ const $startDatePanel = refStartDatePanel.value;
540
+ const $endDatePanel = refEndDatePanel.value;
541
+ if ($startDatePanel && $endDatePanel) {
542
+ const startValue = $startDatePanel.getModelValue();
543
+ const endValue = $endDatePanel.getModelValue();
544
+ if (!startValue || !endValue) {
545
+ handleChange("", "", { type: "check" });
546
+ }
544
547
  }
545
- }
546
- };
547
- const panelCellClassName = ({ date }) => {
548
- const startValue = reactData.selectStValue;
549
- const endValue = reactData.selectEdValue;
550
- if (startValue && endValue) {
551
- const currTime = date.getTime();
552
- const startTime = XEUtils.toStringDate(startValue).getTime();
553
- const endTime = XEUtils.toStringDate(endValue).getTime();
554
- if (currTime >= startTime && currTime <= endTime) {
555
- return "is--range-selected";
548
+ };
549
+ const panelCellClassName = ({ date }) => {
550
+ const startValue = reactData.selectStValue;
551
+ const endValue = reactData.selectEdValue;
552
+ if (startValue && endValue) {
553
+ const currTime = date.getTime();
554
+ const startTime = XEUtils.toStringDate(startValue).getTime();
555
+ const endTime = XEUtils.toStringDate(endValue).getTime();
556
+ if (currTime >= startTime && currTime <= endTime) {
557
+ return "is--range-selected";
558
+ }
556
559
  }
557
- }
558
- return "";
559
- };
560
- const handleSelectClose = () => {
561
- const { autoClose } = props;
562
- const { selectStValue, selectEdValue } = reactData;
563
- const { selectStatus } = internalData;
564
- const isDatePickerType = computeIsDatePickerType.value;
565
- if (autoClose) {
566
- if (selectStatus && isDatePickerType) {
560
+ return "";
561
+ };
562
+ const handleSelectClose = () => {
563
+ const { autoClose } = props;
564
+ const { selectStValue, selectEdValue } = reactData;
565
+ const { selectStatus } = internalData;
566
+ const isDatePickerType = computeIsDatePickerType.value;
567
+ if (autoClose) {
568
+ if (selectStatus && isDatePickerType) {
569
+ if (selectStValue && selectEdValue) {
570
+ hidePanel();
571
+ }
572
+ }
573
+ } else {
567
574
  if (selectStValue && selectEdValue) {
568
- hidePanel();
575
+ internalData.selectStatus = false;
569
576
  }
570
577
  }
571
- } else {
572
- if (selectStValue && selectEdValue) {
573
- internalData.selectStatus = false;
578
+ };
579
+ const clickSuffixEvent = (evnt) => {
580
+ const isDisabled = computeIsDisabled.value;
581
+ if (!isDisabled) {
582
+ const { selectStValue, selectEdValue } = reactData;
583
+ const value = getRangeValue(selectStValue, selectEdValue);
584
+ dispatchEvent("suffix-click", { value, startValue: selectStValue, endValue: selectEdValue }, evnt);
574
585
  }
575
- }
576
- };
577
- const clickSuffixEvent = (evnt) => {
578
- const isDisabled = computeIsDisabled.value;
579
- if (!isDisabled) {
586
+ };
587
+ const blurEvent = (evnt) => {
580
588
  const { selectStValue, selectEdValue } = reactData;
581
- const value = getRangeValue(selectStValue, selectEdValue);
582
- dispatchEvent("suffix-click", { value, startValue: selectStValue, endValue: selectEdValue }, evnt);
583
- }
584
- };
585
- const blurEvent = (evnt) => {
586
- const { selectStValue, selectEdValue } = reactData;
587
- const inpImmediate = computeInpImmediate.value;
588
- const value = "";
589
- if (!inpImmediate) {
590
- handleChange(selectStValue, selectEdValue, evnt);
591
- }
592
- if (!reactData.visiblePanel) {
593
- reactData.isActivated = false;
594
- checkValue();
595
- }
596
- dispatchEvent("blur", { value, startValue: selectStValue, endValue: selectEdValue }, evnt);
597
- if ($xeForm && formItemInfo) {
598
- $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
599
- }
600
- };
601
- const keydownEvent = (evnt) => {
602
- triggerEvent(evnt);
603
- };
604
- const keyupEvent = (evnt) => {
605
- triggerEvent(evnt);
606
- };
607
- const confirmEvent = (evnt) => {
608
- const isTimeType = computeIsTimeType.value;
609
- const $startDatePanel = refStartDatePanel.value;
610
- const $endDatePanel = refEndDatePanel.value;
611
- if ($startDatePanel && $endDatePanel) {
612
- const startValue = $startDatePanel.getModelValue();
613
- const endValue = $endDatePanel.getModelValue();
614
- if (isTimeType) {
615
- $startDatePanel.confirmByEvent(evnt);
616
- $endDatePanel.confirmByEvent(evnt);
617
- } else if (startValue && !endValue || !startValue && endValue) {
618
- handleChange("", "", evnt);
619
- } else {
620
- $startDatePanel.confirmByEvent(evnt);
621
- $endDatePanel.confirmByEvent(evnt);
589
+ const inpImmediate = computeInpImmediate.value;
590
+ const value = "";
591
+ if (!inpImmediate) {
592
+ handleChange(selectStValue, selectEdValue, evnt);
622
593
  }
623
- const value = getRangeValue(startValue, endValue);
624
- dispatchEvent("confirm", { value, startValue, endValue }, evnt);
625
- }
626
- hidePanel();
627
- };
628
- const startPanelChangeEvent = (params) => {
629
- const { paneStartVal } = reactData;
630
- const { selectStatus } = internalData;
631
- const { value, currValue, $event } = params;
632
- const paneVals = value ? XEUtils.isString(value) ? value.split(",") : [value] : [];
633
- let startValue = "";
634
- let endValue = "";
635
- if (selectStatus) {
636
- if (!value && currValue === paneStartVal[0]) {
637
- startValue = currValue;
638
- endValue = currValue;
639
- } else {
640
- startValue = paneVals[0];
641
- if (paneVals[1]) {
642
- endValue = paneVals[1];
643
- } else {
644
- endValue = reactData.selectEdValue;
645
- }
594
+ if (!reactData.visiblePanel) {
595
+ reactData.isActivated = false;
596
+ checkValue();
646
597
  }
647
- } else {
648
- startValue = currValue || XEUtils.last(paneVals);
649
- }
650
- reactData.paneEndVal = [startValue, endValue];
651
- reactData.paneStartVal = [startValue, endValue];
652
- handleChange(startValue, endValue, $event);
653
- handleSelectClose();
654
- if (selectStatus) {
655
- if (startValue && endValue) {
656
- internalData.selectStatus = false;
598
+ dispatchEvent("blur", { value, startValue: selectStValue, endValue: selectEdValue }, evnt);
599
+ if ($xeForm && formItemInfo) {
600
+ $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
657
601
  }
658
- } else {
659
- internalData.selectStatus = true;
660
- }
661
- nextTick(() => {
662
- handleUpdateStartPanelDate();
663
- });
664
- };
665
- const endPanelChangeEvent = (params) => {
666
- const { paneEndVal } = reactData;
667
- const { selectStatus } = internalData;
668
- const { value, currValue, $event } = params;
669
- const paneVals = value ? XEUtils.isString(value) ? value.split(",") : [value] : [];
670
- let startValue = "";
671
- let endValue = "";
672
- if (selectStatus) {
673
- if (!value && currValue === paneEndVal[1]) {
674
- startValue = currValue;
675
- endValue = currValue;
676
- } else {
677
- endValue = paneVals[0];
678
- if (paneVals[1]) {
679
- startValue = paneVals[0];
680
- endValue = paneVals[1];
602
+ };
603
+ const keydownEvent = (evnt) => {
604
+ triggerEvent(evnt);
605
+ };
606
+ const keyupEvent = (evnt) => {
607
+ triggerEvent(evnt);
608
+ };
609
+ const confirmEvent = (evnt) => {
610
+ const isTimeType = computeIsTimeType.value;
611
+ const $startDatePanel = refStartDatePanel.value;
612
+ const $endDatePanel = refEndDatePanel.value;
613
+ if ($startDatePanel && $endDatePanel) {
614
+ const startValue = $startDatePanel.getModelValue();
615
+ const endValue = $endDatePanel.getModelValue();
616
+ if (isTimeType) {
617
+ $startDatePanel.confirmByEvent(evnt);
618
+ $endDatePanel.confirmByEvent(evnt);
619
+ } else if (startValue && !endValue || !startValue && endValue) {
620
+ handleChange("", "", evnt);
681
621
  } else {
682
- startValue = reactData.selectStValue;
622
+ $startDatePanel.confirmByEvent(evnt);
623
+ $endDatePanel.confirmByEvent(evnt);
683
624
  }
625
+ const value = getRangeValue(startValue, endValue);
626
+ dispatchEvent("confirm", { value, startValue, endValue }, evnt);
684
627
  }
685
- } else {
686
- endValue = currValue || XEUtils.last(paneVals);
687
- }
688
- reactData.paneEndVal = [startValue, endValue];
689
- reactData.paneStartVal = [startValue, endValue];
690
- handleChange(startValue, endValue, $event);
691
- handleSelectClose();
692
- if (selectStatus) {
693
- if (startValue && endValue) {
694
- internalData.selectStatus = false;
628
+ hidePanel();
629
+ };
630
+ const startPanelChangeEvent = (params) => {
631
+ const { paneStartVal } = reactData;
632
+ const { selectStatus } = internalData;
633
+ const { value, currValue, $event } = params;
634
+ const paneVals = value ? XEUtils.isString(value) ? value.split(",") : [value] : [];
635
+ let startValue = "";
636
+ let endValue = "";
637
+ if (selectStatus) {
638
+ if (!value && currValue === paneStartVal[0]) {
639
+ startValue = currValue;
640
+ endValue = currValue;
641
+ } else {
642
+ startValue = paneVals[0];
643
+ if (paneVals[1]) {
644
+ endValue = paneVals[1];
645
+ } else {
646
+ endValue = reactData.selectEdValue;
647
+ }
648
+ }
649
+ } else {
650
+ startValue = currValue || XEUtils.last(paneVals);
695
651
  }
696
- } else {
697
- internalData.selectStatus = true;
698
- }
699
- nextTick(() => {
700
- handleUpdateEndPanelDate();
701
- });
702
- };
703
- const handleUpdateStartPanelDate = () => {
704
- const $startDatePanel = refStartDatePanel.value;
705
- const $endDatePanel = refEndDatePanel.value;
706
- if (!$startDatePanel || !$endDatePanel) {
707
- return;
708
- }
709
- const startPanelDate = $startDatePanel.getPanelDate();
710
- const endPanelDate = $endDatePanel.getPanelDate();
711
- if (!startPanelDate || !endPanelDate) {
712
- return;
713
- }
714
- const viewType = $startDatePanel.getViewType();
715
- const startYear = startPanelDate.getFullYear();
716
- const startMonth = startPanelDate.getMonth();
717
- const endYear = endPanelDate.getFullYear();
718
- const endMonth = endPanelDate.getMonth();
719
- switch (viewType) {
720
- case "day":
721
- case "date":
722
- case "week": {
723
- if (endYear <= startYear && endMonth <= startMonth) {
724
- $endDatePanel.setPanelDate(getNextMonth(startPanelDate));
652
+ reactData.paneEndVal = [startValue, endValue];
653
+ reactData.paneStartVal = [startValue, endValue];
654
+ handleChange(startValue, endValue, $event);
655
+ handleSelectClose();
656
+ if (selectStatus) {
657
+ if (startValue && endValue) {
658
+ internalData.selectStatus = false;
725
659
  }
726
- break;
660
+ } else {
661
+ internalData.selectStatus = true;
727
662
  }
728
- case "month":
729
- case "quarter": {
730
- if (endYear <= startYear) {
731
- $endDatePanel.setPanelDate(getNextYear(startPanelDate));
663
+ nextTick(() => {
664
+ handleUpdateStartPanelDate();
665
+ });
666
+ };
667
+ const endPanelChangeEvent = (params) => {
668
+ const { paneEndVal } = reactData;
669
+ const { selectStatus } = internalData;
670
+ const { value, currValue, $event } = params;
671
+ const paneVals = value ? XEUtils.isString(value) ? value.split(",") : [value] : [];
672
+ let startValue = "";
673
+ let endValue = "";
674
+ if (selectStatus) {
675
+ if (!value && currValue === paneEndVal[1]) {
676
+ startValue = currValue;
677
+ endValue = currValue;
678
+ } else {
679
+ endValue = paneVals[0];
680
+ if (paneVals[1]) {
681
+ startValue = paneVals[0];
682
+ endValue = paneVals[1];
683
+ } else {
684
+ startValue = reactData.selectStValue;
685
+ }
732
686
  }
733
- break;
687
+ } else {
688
+ endValue = currValue || XEUtils.last(paneVals);
734
689
  }
735
- case "year": {
736
- const { computeYearList } = $startDatePanel.getComputeMaps();
737
- const yearList = computeYearList.value;
738
- if (yearList.some((item) => XEUtils.isDateSame(item.date, endPanelDate, "yyyy"))) {
739
- $endDatePanel.setPanelDate(getNextYear(startPanelDate, yearList.length));
690
+ reactData.paneEndVal = [startValue, endValue];
691
+ reactData.paneStartVal = [startValue, endValue];
692
+ handleChange(startValue, endValue, $event);
693
+ handleSelectClose();
694
+ if (selectStatus) {
695
+ if (startValue && endValue) {
696
+ internalData.selectStatus = false;
740
697
  }
741
- break;
698
+ } else {
699
+ internalData.selectStatus = true;
700
+ }
701
+ nextTick(() => {
702
+ handleUpdateEndPanelDate();
703
+ });
704
+ };
705
+ const handleUpdateStartPanelDate = () => {
706
+ const $startDatePanel = refStartDatePanel.value;
707
+ const $endDatePanel = refEndDatePanel.value;
708
+ if (!$startDatePanel || !$endDatePanel) {
709
+ return;
710
+ }
711
+ const startPanelDate = $startDatePanel.getPanelDate();
712
+ const endPanelDate = $endDatePanel.getPanelDate();
713
+ if (!startPanelDate || !endPanelDate) {
714
+ return;
742
715
  }
743
- }
744
- };
745
- const startPanelDateBtnChangeEvent = () => {
746
- const { linkedPanels } = props;
747
- const $startDatePanel = refStartDatePanel.value;
748
- const $endDatePanel = refEndDatePanel.value;
749
- if (!$startDatePanel || !$endDatePanel) {
750
- return;
751
- }
752
- const startPanelDate = $startDatePanel.getPanelDate();
753
- const endPanelDate = $endDatePanel.getPanelDate();
754
- if (!startPanelDate || !endPanelDate) {
755
- return;
756
- }
757
- const viewType = $startDatePanel.getViewType();
758
- if (linkedPanels) {
716
+ const viewType = $startDatePanel.getViewType();
717
+ const startYear = startPanelDate.getFullYear();
718
+ const startMonth = startPanelDate.getMonth();
719
+ const endYear = endPanelDate.getFullYear();
720
+ const endMonth = endPanelDate.getMonth();
759
721
  switch (viewType) {
760
722
  case "day":
761
723
  case "date":
762
724
  case "week": {
763
- $endDatePanel.setPanelDate(getNextMonth(startPanelDate));
725
+ if (endYear <= startYear && endMonth <= startMonth) {
726
+ $endDatePanel.setPanelDate(getNextMonth(startPanelDate));
727
+ }
764
728
  break;
765
729
  }
766
730
  case "month":
767
731
  case "quarter": {
768
- $endDatePanel.setPanelDate(getNextYear(startPanelDate));
732
+ if (endYear <= startYear) {
733
+ $endDatePanel.setPanelDate(getNextYear(startPanelDate));
734
+ }
769
735
  break;
770
736
  }
771
737
  case "year": {
772
738
  const { computeYearList } = $startDatePanel.getComputeMaps();
773
739
  const yearList = computeYearList.value;
774
- $endDatePanel.setPanelDate(getNextYear(startPanelDate, yearList.length));
740
+ if (yearList.some((item) => XEUtils.isDateSame(item.date, endPanelDate, "yyyy"))) {
741
+ $endDatePanel.setPanelDate(getNextYear(startPanelDate, yearList.length));
742
+ }
775
743
  break;
776
744
  }
777
745
  }
778
- } else {
779
- handleUpdateStartPanelDate();
780
- }
781
- };
782
- const handleUpdateEndPanelDate = () => {
783
- const $startDatePanel = refStartDatePanel.value;
784
- const $endDatePanel = refEndDatePanel.value;
785
- if (!$startDatePanel || !$endDatePanel) {
786
- return;
787
- }
788
- const startPanelDate = $startDatePanel.getPanelDate();
789
- const endPanelDate = $endDatePanel.getPanelDate();
790
- if (!startPanelDate || !endPanelDate) {
791
- return;
792
- }
793
- const viewType = $endDatePanel.getViewType();
794
- const startYear = startPanelDate.getFullYear();
795
- const startMonth = startPanelDate.getMonth();
796
- const endYear = endPanelDate.getFullYear();
797
- const endMonth = endPanelDate.getMonth();
798
- switch (viewType) {
799
- case "day":
800
- case "date":
801
- case "week": {
802
- if (startYear >= endYear && startMonth >= endMonth) {
803
- $startDatePanel.setPanelDate(getPrevMonth(endPanelDate));
804
- }
805
- break;
746
+ };
747
+ const startPanelDateBtnChangeEvent = () => {
748
+ const { linkedPanels } = props;
749
+ const $startDatePanel = refStartDatePanel.value;
750
+ const $endDatePanel = refEndDatePanel.value;
751
+ if (!$startDatePanel || !$endDatePanel) {
752
+ return;
806
753
  }
807
- case "month":
808
- case "quarter": {
809
- if (startYear >= endYear) {
810
- $startDatePanel.setPanelDate(getPrevYear(endPanelDate));
811
- }
812
- break;
754
+ const startPanelDate = $startDatePanel.getPanelDate();
755
+ const endPanelDate = $endDatePanel.getPanelDate();
756
+ if (!startPanelDate || !endPanelDate) {
757
+ return;
813
758
  }
814
- case "year": {
815
- const { computeYearList } = $endDatePanel.getComputeMaps();
816
- const yearList = computeYearList.value;
817
- if (yearList.some((item) => XEUtils.isDateSame(item.date, startPanelDate, "yyyy"))) {
818
- $startDatePanel.setPanelDate(getPrevYear(endPanelDate, yearList.length));
759
+ const viewType = $startDatePanel.getViewType();
760
+ if (linkedPanels) {
761
+ switch (viewType) {
762
+ case "day":
763
+ case "date":
764
+ case "week": {
765
+ $endDatePanel.setPanelDate(getNextMonth(startPanelDate));
766
+ break;
767
+ }
768
+ case "month":
769
+ case "quarter": {
770
+ $endDatePanel.setPanelDate(getNextYear(startPanelDate));
771
+ break;
772
+ }
773
+ case "year": {
774
+ const { computeYearList } = $startDatePanel.getComputeMaps();
775
+ const yearList = computeYearList.value;
776
+ $endDatePanel.setPanelDate(getNextYear(startPanelDate, yearList.length));
777
+ break;
778
+ }
819
779
  }
820
- break;
780
+ } else {
781
+ handleUpdateStartPanelDate();
782
+ }
783
+ };
784
+ const handleUpdateEndPanelDate = () => {
785
+ const $startDatePanel = refStartDatePanel.value;
786
+ const $endDatePanel = refEndDatePanel.value;
787
+ if (!$startDatePanel || !$endDatePanel) {
788
+ return;
789
+ }
790
+ const startPanelDate = $startDatePanel.getPanelDate();
791
+ const endPanelDate = $endDatePanel.getPanelDate();
792
+ if (!startPanelDate || !endPanelDate) {
793
+ return;
821
794
  }
822
- }
823
- };
824
- const endPanelDateBtnChangeEvent = () => {
825
- const { linkedPanels } = props;
826
- const $startDatePanel = refStartDatePanel.value;
827
- const $endDatePanel = refEndDatePanel.value;
828
- if (!$startDatePanel || !$endDatePanel) {
829
- return;
830
- }
831
- const startPanelDate = $startDatePanel.getPanelDate();
832
- const endPanelDate = $endDatePanel.getPanelDate();
833
- if (!startPanelDate || !endPanelDate) {
834
- return;
835
- }
836
- const viewType = $endDatePanel.getViewType();
837
- if (linkedPanels) {
795
+ const viewType = $endDatePanel.getViewType();
796
+ const startYear = startPanelDate.getFullYear();
797
+ const startMonth = startPanelDate.getMonth();
798
+ const endYear = endPanelDate.getFullYear();
799
+ const endMonth = endPanelDate.getMonth();
838
800
  switch (viewType) {
839
801
  case "day":
840
802
  case "date":
841
803
  case "week": {
842
- $startDatePanel.setPanelDate(getPrevMonth(endPanelDate));
804
+ if (startYear >= endYear && startMonth >= endMonth) {
805
+ $startDatePanel.setPanelDate(getPrevMonth(endPanelDate));
806
+ }
843
807
  break;
844
808
  }
845
809
  case "month":
846
810
  case "quarter": {
847
- $startDatePanel.setPanelDate(getPrevYear(endPanelDate));
811
+ if (startYear >= endYear) {
812
+ $startDatePanel.setPanelDate(getPrevYear(endPanelDate));
813
+ }
848
814
  break;
849
815
  }
850
816
  case "year": {
851
817
  const { computeYearList } = $endDatePanel.getComputeMaps();
852
818
  const yearList = computeYearList.value;
853
- $startDatePanel.setPanelDate(getPrevYear(endPanelDate, yearList.length));
819
+ if (yearList.some((item) => XEUtils.isDateSame(item.date, startPanelDate, "yyyy"))) {
820
+ $startDatePanel.setPanelDate(getPrevYear(endPanelDate, yearList.length));
821
+ }
854
822
  break;
855
823
  }
856
824
  }
857
- } else {
858
- handleUpdateEndPanelDate();
859
- }
860
- };
861
- const handleGlobalMousedownEvent = (evnt) => {
862
- const { visiblePanel, isActivated } = reactData;
863
- const el = refElem.value;
864
- const panelWrapperElem = refPanelWrapper.value;
865
- const isDisabled = computeIsDisabled.value;
866
- if (!isDisabled && isActivated) {
867
- reactData.isActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelWrapperElem).flag;
868
- if (!reactData.isActivated) {
825
+ };
826
+ const endPanelDateBtnChangeEvent = () => {
827
+ const { linkedPanels } = props;
828
+ const $startDatePanel = refStartDatePanel.value;
829
+ const $endDatePanel = refEndDatePanel.value;
830
+ if (!$startDatePanel || !$endDatePanel) {
831
+ return;
832
+ }
833
+ const startPanelDate = $startDatePanel.getPanelDate();
834
+ const endPanelDate = $endDatePanel.getPanelDate();
835
+ if (!startPanelDate || !endPanelDate) {
836
+ return;
837
+ }
838
+ const viewType = $endDatePanel.getViewType();
839
+ if (linkedPanels) {
840
+ switch (viewType) {
841
+ case "day":
842
+ case "date":
843
+ case "week": {
844
+ $startDatePanel.setPanelDate(getPrevMonth(endPanelDate));
845
+ break;
846
+ }
847
+ case "month":
848
+ case "quarter": {
849
+ $startDatePanel.setPanelDate(getPrevYear(endPanelDate));
850
+ break;
851
+ }
852
+ case "year": {
853
+ const { computeYearList } = $endDatePanel.getComputeMaps();
854
+ const yearList = computeYearList.value;
855
+ $startDatePanel.setPanelDate(getPrevYear(endPanelDate, yearList.length));
856
+ break;
857
+ }
858
+ }
859
+ } else {
860
+ handleUpdateEndPanelDate();
861
+ }
862
+ };
863
+ const handleGlobalMousedownEvent = (evnt) => {
864
+ const { visiblePanel, isActivated } = reactData;
865
+ const el = refElem.value;
866
+ const panelWrapperElem = refPanelWrapper.value;
867
+ const isDisabled = computeIsDisabled.value;
868
+ if (!isDisabled && isActivated) {
869
+ reactData.isActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelWrapperElem).flag;
870
+ if (!reactData.isActivated) {
871
+ if (visiblePanel) {
872
+ checkValue();
873
+ hidePanel();
874
+ }
875
+ }
876
+ }
877
+ };
878
+ const handleGlobalKeydownEvent = (evnt) => {
879
+ const { visiblePanel } = reactData;
880
+ const isDisabled = computeIsDisabled.value;
881
+ if (!isDisabled) {
882
+ const isTab = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.TAB);
883
+ const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
884
+ if (isTab) {
885
+ reactData.isActivated = false;
886
+ }
869
887
  if (visiblePanel) {
870
- checkValue();
871
- hidePanel();
888
+ if (isEsc || isTab) {
889
+ checkValue();
890
+ hidePanel();
891
+ }
872
892
  }
873
893
  }
874
- }
875
- };
876
- const handleGlobalKeydownEvent = (evnt) => {
877
- const { visiblePanel } = reactData;
878
- const isDisabled = computeIsDisabled.value;
879
- if (!isDisabled) {
880
- const isTab = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.TAB);
881
- const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
882
- if (isTab) {
894
+ };
895
+ const handleGlobalBlurEvent = () => {
896
+ const { visiblePanel, isActivated } = reactData;
897
+ if (visiblePanel) {
898
+ checkValue();
899
+ hidePanel();
900
+ }
901
+ if (isActivated) {
883
902
  reactData.isActivated = false;
884
903
  }
885
- if (visiblePanel) {
886
- if (isEsc || isTab) {
887
- checkValue();
888
- hidePanel();
904
+ if (visiblePanel || isActivated) {
905
+ const targetElem = refInputTarget.value;
906
+ if (targetElem) {
907
+ targetElem.blur();
889
908
  }
890
909
  }
891
- }
892
- };
893
- const handleGlobalBlurEvent = () => {
894
- const { visiblePanel, isActivated } = reactData;
895
- if (visiblePanel) {
896
- checkValue();
897
- hidePanel();
898
- }
899
- if (isActivated) {
900
- reactData.isActivated = false;
901
- }
902
- if (visiblePanel || isActivated) {
910
+ };
911
+ const handleGlobalResizeEvent = () => {
912
+ const { visiblePanel } = reactData;
913
+ if (visiblePanel) {
914
+ updatePlacement();
915
+ }
916
+ };
917
+ const handleGlobalScrollEvent = () => {
918
+ const { visiblePanel } = reactData;
919
+ if (visiblePanel) {
920
+ updatePlacement();
921
+ }
922
+ };
923
+ const updateZindex = () => {
924
+ const popupOpts = computePopupOpts.value;
925
+ const customZIndex = popupOpts.zIndex || props.zIndex;
926
+ if (customZIndex) {
927
+ reactData.panelIndex = XEUtils.toNumber(customZIndex);
928
+ } else if (reactData.panelIndex < getLastZIndex()) {
929
+ reactData.panelIndex = nextZIndex();
930
+ }
931
+ };
932
+ const updatePlacement = () => {
933
+ const { placement } = props;
934
+ const { panelIndex } = reactData;
903
935
  const targetElem = refInputTarget.value;
904
- if (targetElem) {
905
- targetElem.blur();
936
+ const panelElem = refInputPanel.value;
937
+ if (!panelElem) {
938
+ return nextTick();
906
939
  }
907
- }
908
- };
909
- const handleGlobalResizeEvent = () => {
910
- const { visiblePanel } = reactData;
911
- if (visiblePanel) {
912
- updatePlacement();
913
- }
914
- };
915
- const handleGlobalScrollEvent = () => {
916
- const { visiblePanel } = reactData;
917
- if (visiblePanel) {
918
- updatePlacement();
919
- }
920
- };
921
- const updateZindex = () => {
922
- const popupOpts = computePopupOpts.value;
923
- const customZIndex = popupOpts.zIndex || props.zIndex;
924
- if (customZIndex) {
925
- reactData.panelIndex = XEUtils.toNumber(customZIndex);
926
- } else if (reactData.panelIndex < getLastZIndex()) {
927
- reactData.panelIndex = nextZIndex();
928
- }
929
- };
930
- const updatePlacement = () => {
931
- const { placement } = props;
932
- const { panelIndex } = reactData;
933
- const targetElem = refInputTarget.value;
934
- const panelElem = refInputPanel.value;
935
- if (!panelElem) {
936
- return nextTick();
937
- }
938
- const btnTransfer = computeBtnTransfer.value;
939
- const popupOpts = computePopupOpts.value;
940
- const handleStyle = () => {
941
- const ppObj = updatePanelPlacement(targetElem, panelElem, {
942
- placement: popupOpts.placement || placement,
943
- defaultPlacement: popupOpts.defaultPlacement,
944
- appendTo: popupOpts.appendTo,
945
- teleportTo: btnTransfer
946
- });
947
- const panelStyle = Object.assign(ppObj.style, {
948
- zIndex: panelIndex
949
- });
950
- reactData.panelStyle = panelStyle;
951
- reactData.panelPlacement = ppObj.placement;
940
+ const btnTransfer = computeBtnTransfer.value;
941
+ const popupOpts = computePopupOpts.value;
942
+ const handleStyle = () => {
943
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
944
+ placement: popupOpts.placement || placement,
945
+ defaultPlacement: popupOpts.defaultPlacement,
946
+ appendTo: popupOpts.appendTo,
947
+ teleportTo: btnTransfer
948
+ });
949
+ const panelStyle = Object.assign(ppObj.style, {
950
+ zIndex: panelIndex
951
+ });
952
+ reactData.panelStyle = panelStyle;
953
+ reactData.panelPlacement = ppObj.placement;
954
+ };
955
+ handleStyle();
956
+ return nextTick().then(handleStyle);
952
957
  };
953
- handleStyle();
954
- return nextTick().then(handleStyle);
955
- };
956
- const showPanel = () => {
957
- const { visiblePanel } = reactData;
958
- const isDisabled = computeIsDisabled.value;
959
- if (!isDisabled && !visiblePanel) {
960
- if (!reactData.initialized) {
961
- reactData.initialized = true;
958
+ const showPanel = () => {
959
+ const { visiblePanel } = reactData;
960
+ const isDisabled = computeIsDisabled.value;
961
+ if (!isDisabled && !visiblePanel) {
962
+ if (!reactData.initialized) {
963
+ reactData.initialized = true;
964
+ }
965
+ if (internalData.hpTimeout) {
966
+ clearTimeout(internalData.hpTimeout);
967
+ internalData.hpTimeout = void 0;
968
+ }
969
+ internalData.selectStatus = false;
970
+ reactData.isActivated = true;
971
+ reactData.isAniVisible = true;
972
+ setTimeout(() => {
973
+ reactData.visiblePanel = true;
974
+ handleUpdateStartPanelDate();
975
+ updatePlacement();
976
+ }, 10);
977
+ updateZindex();
978
+ return updatePlacement();
962
979
  }
963
- if (internalData.hpTimeout) {
964
- clearTimeout(internalData.hpTimeout);
965
- internalData.hpTimeout = void 0;
980
+ return nextTick();
981
+ };
982
+ const dateRangePickerOpenEvent = (evnt) => {
983
+ const formReadonly = computeFormReadonly.value;
984
+ if (!formReadonly) {
985
+ evnt.preventDefault();
986
+ showPanel();
966
987
  }
967
- internalData.selectStatus = false;
968
- reactData.isActivated = true;
969
- reactData.isAniVisible = true;
970
- setTimeout(() => {
971
- reactData.visiblePanel = true;
972
- handleUpdateStartPanelDate();
973
- updatePlacement();
974
- }, 10);
975
- updateZindex();
976
- return updatePlacement();
977
- }
978
- return nextTick();
979
- };
980
- const dateRangePickerOpenEvent = (evnt) => {
981
- const formReadonly = computeFormReadonly.value;
982
- if (!formReadonly) {
983
- evnt.preventDefault();
984
- showPanel();
985
- }
986
- };
987
- const clickIconEvent = (evnt) => {
988
- const { visiblePanel } = reactData;
989
- const popupOpts = computePopupOpts.value;
990
- const { trigger } = popupOpts;
991
- if (!trigger || trigger === "default" || trigger === "icon") {
992
- if (visiblePanel) {
993
- hidePanel();
994
- } else {
995
- dateRangePickerOpenEvent(evnt);
988
+ };
989
+ const clickIconEvent = (evnt) => {
990
+ const { visiblePanel } = reactData;
991
+ const popupOpts = computePopupOpts.value;
992
+ const { trigger } = popupOpts;
993
+ if (!trigger || trigger === "default" || trigger === "icon") {
994
+ if (visiblePanel) {
995
+ hidePanel();
996
+ } else {
997
+ dateRangePickerOpenEvent(evnt);
998
+ }
996
999
  }
997
- }
998
- };
999
- const clickEvent = (evnt) => {
1000
- triggerEvent(evnt);
1001
- };
1002
- const handleShortcutEvent = ({ option, $event }) => {
1003
- const { type } = props;
1004
- const shortcutOpts = computeShortcutOpts.value;
1005
- const { autoClose } = shortcutOpts;
1006
- const { code, clickMethod } = option;
1007
- let startValue = reactData.selectStValue;
1008
- let endValue = reactData.selectEdValue;
1009
- let value = getRangeValue(startValue, endValue);
1010
- const shortcutParams = {
1011
- $dateRangePicker: $xeDateRangePicker,
1012
- option,
1013
- value,
1014
- startValue,
1015
- endValue,
1016
- code
1017
1000
  };
1018
- if (!clickMethod && code) {
1019
- const gCommandOpts = commands.get(code);
1020
- const drpCommandMethod = gCommandOpts ? gCommandOpts.dateRangePickerCommandMethod : null;
1021
- if (drpCommandMethod) {
1022
- drpCommandMethod(shortcutParams);
1023
- } else {
1024
- const dateValueFormat = computeDateValueFormat.value;
1025
- const firstDayOfWeek = computeFirstDayOfWeek.value;
1026
- switch (code) {
1027
- case "last1":
1028
- case "last3":
1029
- case "last7":
1030
- case "last30":
1031
- case "last60":
1032
- case "last90":
1033
- case "last180": {
1034
- const restObj = getRangeDateByCode(code, value, type, {
1035
- valueFormat: dateValueFormat,
1036
- firstDay: firstDayOfWeek
1037
- });
1038
- startValue = restObj.startValue;
1039
- endValue = restObj.endValue;
1040
- value = getRangeValue(startValue, endValue);
1041
- shortcutParams.value = value;
1042
- shortcutParams.startValue = startValue;
1043
- shortcutParams.endValue = endValue;
1044
- handleChange(startValue, endValue, $event);
1045
- break;
1001
+ const clickEvent = (evnt) => {
1002
+ triggerEvent(evnt);
1003
+ };
1004
+ const handleShortcutEvent = ({ option, $event }) => {
1005
+ const { type } = props;
1006
+ const shortcutOpts = computeShortcutOpts.value;
1007
+ const { autoClose } = shortcutOpts;
1008
+ const { code, clickMethod } = option;
1009
+ let startValue = reactData.selectStValue;
1010
+ let endValue = reactData.selectEdValue;
1011
+ let value = getRangeValue(startValue, endValue);
1012
+ const shortcutParams = {
1013
+ $dateRangePicker: $xeDateRangePicker,
1014
+ option,
1015
+ value,
1016
+ startValue,
1017
+ endValue,
1018
+ code
1019
+ };
1020
+ if (!clickMethod && code) {
1021
+ const gCommandOpts = commands.get(code);
1022
+ const drpCommandMethod = gCommandOpts ? gCommandOpts.dateRangePickerCommandMethod : null;
1023
+ if (drpCommandMethod) {
1024
+ drpCommandMethod(shortcutParams);
1025
+ } else {
1026
+ const dateValueFormat = computeDateValueFormat.value;
1027
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
1028
+ switch (code) {
1029
+ case "last1":
1030
+ case "last3":
1031
+ case "last7":
1032
+ case "last30":
1033
+ case "last60":
1034
+ case "last90":
1035
+ case "last180": {
1036
+ const restObj = getRangeDateByCode(code, value, type, {
1037
+ valueFormat: dateValueFormat,
1038
+ firstDay: firstDayOfWeek
1039
+ });
1040
+ startValue = restObj.startValue;
1041
+ endValue = restObj.endValue;
1042
+ value = getRangeValue(startValue, endValue);
1043
+ shortcutParams.value = value;
1044
+ shortcutParams.startValue = startValue;
1045
+ shortcutParams.endValue = endValue;
1046
+ handleChange(startValue, endValue, $event);
1047
+ break;
1048
+ }
1049
+ default:
1050
+ errLog("vxe.error.notCommands", [code]);
1051
+ break;
1046
1052
  }
1047
- default:
1048
- errLog("vxe.error.notCommands", [code]);
1049
- break;
1053
+ }
1054
+ } else {
1055
+ const optClickMethod = clickMethod || shortcutOpts.clickMethod;
1056
+ if (optClickMethod) {
1057
+ optClickMethod(shortcutParams);
1050
1058
  }
1051
1059
  }
1052
- } else {
1053
- const optClickMethod = clickMethod || shortcutOpts.clickMethod;
1054
- if (optClickMethod) {
1055
- optClickMethod(shortcutParams);
1060
+ if (autoClose) {
1061
+ hidePanel();
1056
1062
  }
1057
- }
1058
- if (autoClose) {
1059
- hidePanel();
1060
- }
1061
- dispatchEvent("shortcut-click", shortcutParams, $event);
1062
- };
1063
- const dispatchEvent = (type, params, evnt) => {
1064
- emit(type, createEvent(evnt, { $dateRangePicker: $xeDateRangePicker }, params));
1065
- };
1066
- const emitModel = (value) => {
1067
- emit("update:modelValue", value);
1068
- };
1069
- dateRangePickerMethods = {
1070
- dispatchEvent,
1071
- setModelValue(startValue, endValue) {
1072
- reactData.selectStValue = startValue || "";
1073
- reactData.selectEdValue = endValue || "";
1074
- const value = getRangeValue(startValue, endValue);
1075
- emitModel(value);
1076
- },
1077
- setModelValueByEvent(evnt, startValue, endValue) {
1078
- handleChange(startValue || "", endValue || "", evnt);
1079
- },
1080
- focus() {
1081
- const inputElem = refInputTarget.value;
1082
- reactData.isActivated = true;
1083
- inputElem.focus();
1084
- return nextTick();
1085
- },
1086
- blur() {
1087
- const inputElem = refInputTarget.value;
1088
- inputElem.blur();
1089
- reactData.isActivated = false;
1090
- return nextTick();
1091
- },
1092
- select() {
1093
- const inputElem = refInputTarget.value;
1094
- inputElem.select();
1095
- reactData.isActivated = false;
1096
- return nextTick();
1097
- },
1098
- showPanel,
1099
- hidePanel,
1100
- updatePlacement
1101
- };
1102
- Object.assign($xeDateRangePicker, dateRangePickerMethods);
1103
- const renderShortcutBtn = (pos, isVertical) => {
1104
- const shortcutOpts = computeShortcutOpts.value;
1105
- const { position, align, mode } = shortcutOpts;
1106
- const shortcutList = computeShortcutList.value;
1107
- if (isEnableConf(shortcutOpts) && shortcutList.length && (position || "left") === pos) {
1108
- return h(
1109
- "div",
1110
- {
1111
- class: `vxe-date-range-picker--layout-${pos}-wrapper`
1112
- },
1113
- [
1114
- h(VxeButtonGroupComponent, {
1115
- options: shortcutList,
1116
- mode,
1117
- align,
1118
- vertical: isVertical,
1119
- onClick: handleShortcutEvent
1120
- })
1121
- ]
1122
- );
1123
- }
1124
- return renderEmptyElement($xeDateRangePicker);
1125
- };
1126
- const renderPanel = () => {
1127
- const popupOpts = computePopupOpts.value;
1128
- if (popupOpts.enabled === false) {
1129
- return renderEmptyElement($xeDateRangePicker);
1130
- }
1131
- const { type, separator, autoClose, valueFormat, showConfirmButton, showClearButton } = props;
1132
- const { initialized, isAniVisible, visiblePanel, panelPlacement, panelStyle, selectStValue, selectEdValue, paneStartVal, paneEndVal } = reactData;
1133
- const vSize = computeSize.value;
1134
- const btnTransfer = computeBtnTransfer.value;
1135
- const shortcutOpts = computeShortcutOpts.value;
1136
- const isClearable = computeIsClearable.value;
1137
- const panelLabelObj = computePanelLabelObj.value;
1138
- const shortcutList = computeShortcutList.value;
1139
- const isTimeType = computeIsTimeType.value;
1140
- const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
1141
- const defaultDates = computeDefaultDates.value;
1142
- const defaultTimes = computeDefaultTimes.value;
1143
- const timeOpts = computeTimeOpts.value;
1144
- const { appendTo } = popupOpts;
1145
- const { startLabel, endLabel } = panelLabelObj;
1146
- const { position } = shortcutOpts;
1147
- const headerSlot = slots.header;
1148
- const footerSlot = slots.footer;
1149
- const topSlot = slots.top;
1150
- const bottomSlot = slots.bottom;
1151
- const leftSlot = slots.left;
1152
- const rightSlot = slots.right;
1153
- const ppClassName = popupOpts.className;
1154
- const [sdDate, edDate] = defaultDates;
1155
- const [sdTime, edTime] = defaultTimes;
1156
- const hasShortcutBtn = shortcutList.length > 0;
1157
- const showConfirmBtn = showConfirmButton === null ? isTimeOrDateTimeType || !autoClose : showConfirmButton;
1158
- const showClearBtn = showClearButton === null ? isClearable : showClearButton;
1159
- return h(
1160
- Teleport,
1161
- {
1162
- to: getPopupContainer(appendTo),
1163
- disabled: btnTransfer ? !initialized : true
1063
+ dispatchEvent("shortcut-click", shortcutParams, $event);
1064
+ };
1065
+ const dispatchEvent = (type, params, evnt) => {
1066
+ emit(type, createEvent(evnt, { $dateRangePicker: $xeDateRangePicker }, params));
1067
+ };
1068
+ const emitModel = (value) => {
1069
+ emit("update:modelValue", value);
1070
+ };
1071
+ dateRangePickerMethods = {
1072
+ dispatchEvent,
1073
+ setModelValue(startValue, endValue) {
1074
+ reactData.selectStValue = startValue || "";
1075
+ reactData.selectEdValue = endValue || "";
1076
+ const value = getRangeValue(startValue, endValue);
1077
+ emitModel(value);
1164
1078
  },
1165
- [
1166
- h(
1167
- "div",
1168
- {
1169
- ref: refInputPanel,
1170
- class: [
1171
- "vxe-table--ignore-clear vxe-date-range-picker--panel",
1172
- `type--${type}`,
1173
- ppClassName ? XEUtils.isFunction(ppClassName) ? ppClassName({ $dateRangePicker: $xeDateRangePicker }) : ppClassName : "",
1174
- {
1175
- [`size--${vSize}`]: vSize,
1176
- "is--transfer": btnTransfer,
1177
- "ani--leave": isAniVisible,
1178
- "ani--enter": visiblePanel,
1179
- "show--top": !!(topSlot || headerSlot || hasShortcutBtn && (position === "top" || position === "header")),
1180
- "show--bottom": !!(bottomSlot || footerSlot || hasShortcutBtn && (position === "bottom" || position === "footer")),
1181
- "show--left": !!(leftSlot || hasShortcutBtn && position === "left"),
1182
- "show--right": !!(rightSlot || hasShortcutBtn && position === "right")
1183
- }
1184
- ],
1185
- placement: panelPlacement,
1186
- style: panelStyle
1187
- },
1188
- initialized && (visiblePanel || isAniVisible) ? [
1189
- h(
1190
- "div",
1191
- {
1192
- ref: refPanelWrapper,
1193
- class: [
1194
- "vxe-date-range-picker--layout-all-wrapper",
1195
- `type--${type}`,
1196
- {
1197
- [`size--${vSize}`]: vSize
1198
- }
1199
- ]
1200
- },
1201
- [
1202
- topSlot ? h(
1203
- "div",
1204
- {
1205
- class: "vxe-date-range-picker--layout-top-wrapper"
1206
- },
1207
- topSlot({})
1208
- ) : renderShortcutBtn("top"),
1209
- h(
1210
- "div",
1211
- {
1212
- class: "vxe-date-range-picker--layout-body-layout-wrapper"
1213
- },
1214
- [
1215
- leftSlot ? h(
1216
- "div",
1217
- {
1218
- class: "vxe-date-range-picker--layout-left-wrapper"
1219
- },
1220
- leftSlot({})
1221
- ) : renderShortcutBtn("left", true),
1222
- h(
1223
- "div",
1224
- {
1225
- class: "vxe-date-range-picker--layout-body-content-wrapper"
1226
- },
1227
- [
1228
- headerSlot ? h(
1229
- "div",
1230
- {
1231
- class: "vxe-date-range-picker--layout-header-wrapper"
1232
- },
1233
- headerSlot({})
1234
- ) : renderShortcutBtn("header"),
1235
- h(
1236
- "div",
1237
- {
1238
- class: "vxe-date-range-picker--layout-body-wrapper"
1239
- },
1240
- [
1241
- h(VxeDatePanelComponent, {
1242
- ref: refStartDatePanel,
1243
- modelValue: paneStartVal,
1244
- multiple: !isTimeType,
1245
- valueSort: true,
1246
- limitCount: 3,
1247
- defaultMode: "first",
1248
- type: props.type,
1249
- className: props.className,
1250
- minDate: props.minDate,
1251
- maxDate: props.maxDate,
1252
- startDay: props.startDay,
1253
- labelFormat: props.labelFormat,
1254
- valueFormat: valueFormat === "date" || valueFormat === "timestamp" ? "" : valueFormat,
1255
- timeFormat: props.timeFormat,
1256
- defaultDate: sdDate,
1257
- defaultTime: sdTime,
1258
- timeConfig: timeOpts,
1259
- festivalMethod: props.festivalMethod || defaultFuncProps.festivalMethod,
1260
- disabledMethod: props.disabledMethod || defaultFuncProps.disabledMethod,
1261
- selectDay: props.selectDay,
1262
- cellClassName: panelCellClassName,
1263
- onChange: startPanelChangeEvent,
1264
- onDatePrev: startPanelDateBtnChangeEvent,
1265
- onDateToday: startPanelDateBtnChangeEvent,
1266
- onDateNext: startPanelDateBtnChangeEvent
1267
- }),
1268
- h(VxeDatePanelComponent, {
1269
- ref: refEndDatePanel,
1270
- modelValue: paneEndVal,
1271
- multiple: !isTimeType,
1272
- valueSort: true,
1273
- limitCount: 3,
1274
- defaultMode: "last",
1275
- type: props.type,
1276
- className: props.className,
1277
- minDate: props.minDate,
1278
- maxDate: props.maxDate,
1279
- startDay: props.startDay,
1280
- labelFormat: props.labelFormat,
1281
- valueFormat: valueFormat === "date" || valueFormat === "timestamp" ? "" : valueFormat,
1282
- timeFormat: props.timeFormat,
1283
- defaultDate: edDate,
1284
- defaultTime: edTime,
1285
- timeConfig: timeOpts,
1286
- festivalMethod: props.festivalMethod || defaultFuncProps.festivalMethod,
1287
- disabledMethod: props.disabledMethod || defaultFuncProps.disabledMethod,
1288
- selectDay: props.selectDay,
1289
- cellClassName: panelCellClassName,
1290
- onChange: endPanelChangeEvent,
1291
- onDatePrev: endPanelDateBtnChangeEvent,
1292
- onDateToday: endPanelDateBtnChangeEvent,
1293
- onDateNext: endPanelDateBtnChangeEvent
1294
- })
1295
- ]
1296
- ),
1297
- h(
1298
- "div",
1299
- {
1300
- class: "vxe-date-range-picker--layout-footer-wrapper"
1301
- },
1302
- [
1303
- h(
1304
- "div",
1305
- {
1306
- class: "vxe-date-range-picker--layout-footer-label"
1307
- },
1308
- startLabel || endLabel ? [h("span", startLabel), h("span", `${separator || ""}`), h("span", endLabel)] : `${separator || ""}`
1309
- ),
1310
- h(
1311
- "div",
1312
- {
1313
- class: "vxe-date-range-picker--layout-footer-custom"
1314
- },
1315
- footerSlot ? footerSlot({}) : [renderShortcutBtn("footer")]
1316
- ),
1317
- h(
1318
- "div",
1319
- {
1320
- class: "vxe-date-range-picker--layout-footer-btns"
1321
- },
1322
- [
1323
- showClearBtn ? h(VxeButtonComponent, {
1324
- size: "mini",
1325
- disabled: !(selectStValue || selectEdValue),
1326
- content: getI18n("vxe.button.clear"),
1327
- onClick: clearValueEvent
1328
- }) : renderEmptyElement($xeDateRangePicker),
1329
- showConfirmBtn ? h(VxeButtonComponent, {
1330
- size: "mini",
1331
- status: "primary",
1332
- content: getI18n("vxe.button.confirm"),
1333
- onClick: confirmEvent
1334
- }) : renderEmptyElement($xeDateRangePicker)
1335
- ]
1336
- )
1337
- ]
1338
- )
1339
- ]
1340
- ),
1341
- rightSlot ? h(
1342
- "div",
1343
- {
1344
- class: "vxe-date-range-picker--layout-right-wrapper"
1345
- },
1346
- rightSlot({})
1347
- ) : renderShortcutBtn("right", true)
1348
- ]
1349
- ),
1350
- bottomSlot ? h(
1351
- "div",
1352
- {
1353
- class: "vxe-date-range-picker--layout-bottom-wrapper"
1354
- },
1355
- bottomSlot({})
1356
- ) : renderShortcutBtn("bottom")
1357
- ]
1358
- )
1359
- ] : []
1360
- )
1361
- ]
1362
- );
1363
- };
1364
- const renderPrefixIcon = () => {
1365
- const { prefixIcon } = props;
1366
- const prefixSlot = slots.prefix;
1367
- return prefixSlot || prefixIcon ? h(
1368
- "div",
1369
- {
1370
- class: "vxe-date-range-picker--prefix",
1371
- onClick: clickPrefixEvent
1079
+ setModelValueByEvent(evnt, startValue, endValue) {
1080
+ handleChange(startValue || "", endValue || "", evnt);
1372
1081
  },
1373
- [
1374
- h(
1375
- "div",
1376
- {
1377
- class: "vxe-date-range-picker--prefix-icon"
1378
- },
1379
- prefixSlot ? getSlotVNs(prefixSlot({})) : [
1380
- h("i", {
1381
- class: prefixIcon
1382
- })
1383
- ]
1384
- )
1385
- ]
1386
- ) : null;
1387
- };
1388
- const renderSuffixIcon = () => {
1389
- const { suffixIcon } = props;
1390
- const { selectStValue, selectEdValue } = reactData;
1391
- const suffixSlot = slots.suffix;
1392
- const isDisabled = computeIsDisabled.value;
1393
- const isClearable = computeIsClearable.value;
1394
- return h(
1395
- "div",
1396
- {
1397
- class: [
1398
- "vxe-date-range-picker--suffix",
1399
- {
1400
- "is--clear": isClearable && !isDisabled && (selectStValue || selectEdValue)
1401
- }
1402
- ]
1082
+ focus() {
1083
+ const inputElem = refInputTarget.value;
1084
+ reactData.isActivated = true;
1085
+ inputElem.focus();
1086
+ return nextTick();
1087
+ },
1088
+ blur() {
1089
+ const inputElem = refInputTarget.value;
1090
+ inputElem.blur();
1091
+ reactData.isActivated = false;
1092
+ return nextTick();
1093
+ },
1094
+ select() {
1095
+ const inputElem = refInputTarget.value;
1096
+ inputElem.select();
1097
+ reactData.isActivated = false;
1098
+ return nextTick();
1403
1099
  },
1404
- [
1405
- isClearable ? h(
1100
+ showPanel,
1101
+ hidePanel,
1102
+ updatePlacement
1103
+ };
1104
+ Object.assign($xeDateRangePicker, dateRangePickerMethods);
1105
+ const renderShortcutBtn = (pos, isVertical) => {
1106
+ const shortcutOpts = computeShortcutOpts.value;
1107
+ const { position, align, mode } = shortcutOpts;
1108
+ const shortcutList = computeShortcutList.value;
1109
+ if (isEnableConf(shortcutOpts) && shortcutList.length && (position || "left") === pos) {
1110
+ return h(
1406
1111
  "div",
1407
1112
  {
1408
- class: "vxe-date-range-picker--clear-icon",
1409
- onClick: clearValueEvent
1113
+ class: `vxe-date-range-picker--layout-${pos}-wrapper`
1410
1114
  },
1411
1115
  [
1412
- h("i", {
1413
- class: getIcon().INPUT_CLEAR
1116
+ h(VxeButtonGroupComponent, {
1117
+ options: shortcutList,
1118
+ mode,
1119
+ align,
1120
+ vertical: isVertical,
1121
+ onClick: handleShortcutEvent
1414
1122
  })
1415
1123
  ]
1416
- ) : renderEmptyElement($xeDateRangePicker),
1417
- renderExtraSuffixIcon(),
1418
- suffixSlot || suffixIcon ? h(
1419
- "div",
1420
- {
1421
- class: "vxe-date-range-picker--suffix-icon",
1422
- onClick: clickSuffixEvent
1423
- },
1424
- suffixSlot ? getSlotVNs(suffixSlot({})) : [
1425
- h("i", {
1426
- class: suffixIcon
1427
- })
1124
+ );
1125
+ }
1126
+ return renderEmptyElement($xeDateRangePicker);
1127
+ };
1128
+ const renderPanel = () => {
1129
+ const popupOpts = computePopupOpts.value;
1130
+ if (popupOpts.enabled === false) {
1131
+ return renderEmptyElement($xeDateRangePicker);
1132
+ }
1133
+ const { type, separator, autoClose, valueFormat, showConfirmButton, showClearButton } = props;
1134
+ const { initialized, isAniVisible, visiblePanel, panelPlacement, panelStyle, selectStValue, selectEdValue, paneStartVal, paneEndVal } = reactData;
1135
+ const vSize = computeSize.value;
1136
+ const btnTransfer = computeBtnTransfer.value;
1137
+ const shortcutOpts = computeShortcutOpts.value;
1138
+ const isClearable = computeIsClearable.value;
1139
+ const panelLabelObj = computePanelLabelObj.value;
1140
+ const shortcutList = computeShortcutList.value;
1141
+ const isTimeType = computeIsTimeType.value;
1142
+ const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
1143
+ const defaultDates = computeDefaultDates.value;
1144
+ const defaultTimes = computeDefaultTimes.value;
1145
+ const timeOpts = computeTimeOpts.value;
1146
+ const { appendTo } = popupOpts;
1147
+ const { startLabel, endLabel } = panelLabelObj;
1148
+ const { position } = shortcutOpts;
1149
+ const headerSlot = slots.header;
1150
+ const footerSlot = slots.footer;
1151
+ const topSlot = slots.top;
1152
+ const bottomSlot = slots.bottom;
1153
+ const leftSlot = slots.left;
1154
+ const rightSlot = slots.right;
1155
+ const ppClassName = popupOpts.className;
1156
+ const [sdDate, edDate] = defaultDates;
1157
+ const [sdTime, edTime] = defaultTimes;
1158
+ const hasShortcutBtn = shortcutList.length > 0;
1159
+ const showConfirmBtn = showConfirmButton === null ? isTimeOrDateTimeType || !autoClose : showConfirmButton;
1160
+ const showClearBtn = showClearButton === null ? isClearable : showClearButton;
1161
+ return h(
1162
+ Teleport,
1163
+ {
1164
+ to: getPopupContainer(appendTo),
1165
+ disabled: btnTransfer ? !initialized : true
1166
+ },
1167
+ [
1168
+ h(
1169
+ "div",
1170
+ {
1171
+ ref: refInputPanel,
1172
+ class: [
1173
+ "vxe-table--ignore-clear vxe-date-range-picker--panel",
1174
+ `type--${type}`,
1175
+ ppClassName ? XEUtils.isFunction(ppClassName) ? ppClassName({ $dateRangePicker: $xeDateRangePicker }) : ppClassName : "",
1176
+ {
1177
+ [`size--${vSize}`]: vSize,
1178
+ "is--transfer": btnTransfer,
1179
+ "ani--leave": isAniVisible,
1180
+ "ani--enter": visiblePanel,
1181
+ "show--top": !!(topSlot || headerSlot || hasShortcutBtn && (position === "top" || position === "header")),
1182
+ "show--bottom": !!(bottomSlot || footerSlot || hasShortcutBtn && (position === "bottom" || position === "footer")),
1183
+ "show--left": !!(leftSlot || hasShortcutBtn && position === "left"),
1184
+ "show--right": !!(rightSlot || hasShortcutBtn && position === "right")
1185
+ }
1186
+ ],
1187
+ placement: panelPlacement,
1188
+ style: panelStyle
1189
+ },
1190
+ initialized && (visiblePanel || isAniVisible) ? [
1191
+ h(
1192
+ "div",
1193
+ {
1194
+ ref: refPanelWrapper,
1195
+ class: [
1196
+ "vxe-date-range-picker--layout-all-wrapper",
1197
+ `type--${type}`,
1198
+ {
1199
+ [`size--${vSize}`]: vSize
1200
+ }
1201
+ ]
1202
+ },
1203
+ [
1204
+ topSlot ? h(
1205
+ "div",
1206
+ {
1207
+ class: "vxe-date-range-picker--layout-top-wrapper"
1208
+ },
1209
+ topSlot({})
1210
+ ) : renderShortcutBtn("top"),
1211
+ h(
1212
+ "div",
1213
+ {
1214
+ class: "vxe-date-range-picker--layout-body-layout-wrapper"
1215
+ },
1216
+ [
1217
+ leftSlot ? h(
1218
+ "div",
1219
+ {
1220
+ class: "vxe-date-range-picker--layout-left-wrapper"
1221
+ },
1222
+ leftSlot({})
1223
+ ) : renderShortcutBtn("left", true),
1224
+ h(
1225
+ "div",
1226
+ {
1227
+ class: "vxe-date-range-picker--layout-body-content-wrapper"
1228
+ },
1229
+ [
1230
+ headerSlot ? h(
1231
+ "div",
1232
+ {
1233
+ class: "vxe-date-range-picker--layout-header-wrapper"
1234
+ },
1235
+ headerSlot({})
1236
+ ) : renderShortcutBtn("header"),
1237
+ h(
1238
+ "div",
1239
+ {
1240
+ class: "vxe-date-range-picker--layout-body-wrapper"
1241
+ },
1242
+ [
1243
+ h(VxeDatePanelComponent, {
1244
+ ref: refStartDatePanel,
1245
+ modelValue: paneStartVal,
1246
+ multiple: !isTimeType,
1247
+ valueSort: true,
1248
+ limitCount: 3,
1249
+ defaultMode: "first",
1250
+ type: props.type,
1251
+ className: props.className,
1252
+ minDate: props.minDate,
1253
+ maxDate: props.maxDate,
1254
+ startDay: props.startDay,
1255
+ labelFormat: props.labelFormat,
1256
+ valueFormat: valueFormat === "date" || valueFormat === "timestamp" ? "" : valueFormat,
1257
+ timeFormat: props.timeFormat,
1258
+ defaultDate: sdDate,
1259
+ defaultTime: sdTime,
1260
+ timeConfig: timeOpts,
1261
+ festivalMethod: props.festivalMethod || defaultFuncProps.festivalMethod,
1262
+ disabledMethod: props.disabledMethod || defaultFuncProps.disabledMethod,
1263
+ selectDay: props.selectDay,
1264
+ cellClassName: panelCellClassName,
1265
+ onChange: startPanelChangeEvent,
1266
+ onDatePrev: startPanelDateBtnChangeEvent,
1267
+ onDateToday: startPanelDateBtnChangeEvent,
1268
+ onDateNext: startPanelDateBtnChangeEvent
1269
+ }),
1270
+ h(VxeDatePanelComponent, {
1271
+ ref: refEndDatePanel,
1272
+ modelValue: paneEndVal,
1273
+ multiple: !isTimeType,
1274
+ valueSort: true,
1275
+ limitCount: 3,
1276
+ defaultMode: "last",
1277
+ type: props.type,
1278
+ className: props.className,
1279
+ minDate: props.minDate,
1280
+ maxDate: props.maxDate,
1281
+ startDay: props.startDay,
1282
+ labelFormat: props.labelFormat,
1283
+ valueFormat: valueFormat === "date" || valueFormat === "timestamp" ? "" : valueFormat,
1284
+ timeFormat: props.timeFormat,
1285
+ defaultDate: edDate,
1286
+ defaultTime: edTime,
1287
+ timeConfig: timeOpts,
1288
+ festivalMethod: props.festivalMethod || defaultFuncProps.festivalMethod,
1289
+ disabledMethod: props.disabledMethod || defaultFuncProps.disabledMethod,
1290
+ selectDay: props.selectDay,
1291
+ cellClassName: panelCellClassName,
1292
+ onChange: endPanelChangeEvent,
1293
+ onDatePrev: endPanelDateBtnChangeEvent,
1294
+ onDateToday: endPanelDateBtnChangeEvent,
1295
+ onDateNext: endPanelDateBtnChangeEvent
1296
+ })
1297
+ ]
1298
+ ),
1299
+ h(
1300
+ "div",
1301
+ {
1302
+ class: "vxe-date-range-picker--layout-footer-wrapper"
1303
+ },
1304
+ [
1305
+ h(
1306
+ "div",
1307
+ {
1308
+ class: "vxe-date-range-picker--layout-footer-label"
1309
+ },
1310
+ startLabel || endLabel ? [h("span", startLabel), h("span", `${separator || ""}`), h("span", endLabel)] : `${separator || ""}`
1311
+ ),
1312
+ h(
1313
+ "div",
1314
+ {
1315
+ class: "vxe-date-range-picker--layout-footer-custom"
1316
+ },
1317
+ footerSlot ? footerSlot({}) : [renderShortcutBtn("footer")]
1318
+ ),
1319
+ h(
1320
+ "div",
1321
+ {
1322
+ class: "vxe-date-range-picker--layout-footer-btns"
1323
+ },
1324
+ [
1325
+ showClearBtn ? h(VxeButtonComponent, {
1326
+ size: "mini",
1327
+ disabled: !(selectStValue || selectEdValue),
1328
+ content: getI18n("vxe.button.clear"),
1329
+ onClick: clearValueEvent
1330
+ }) : renderEmptyElement($xeDateRangePicker),
1331
+ showConfirmBtn ? h(VxeButtonComponent, {
1332
+ size: "mini",
1333
+ status: "primary",
1334
+ content: getI18n("vxe.button.confirm"),
1335
+ onClick: confirmEvent
1336
+ }) : renderEmptyElement($xeDateRangePicker)
1337
+ ]
1338
+ )
1339
+ ]
1340
+ )
1341
+ ]
1342
+ ),
1343
+ rightSlot ? h(
1344
+ "div",
1345
+ {
1346
+ class: "vxe-date-range-picker--layout-right-wrapper"
1347
+ },
1348
+ rightSlot({})
1349
+ ) : renderShortcutBtn("right", true)
1350
+ ]
1351
+ ),
1352
+ bottomSlot ? h(
1353
+ "div",
1354
+ {
1355
+ class: "vxe-date-range-picker--layout-bottom-wrapper"
1356
+ },
1357
+ bottomSlot({})
1358
+ ) : renderShortcutBtn("bottom")
1359
+ ]
1360
+ )
1361
+ ] : []
1362
+ )
1363
+ ]
1364
+ );
1365
+ };
1366
+ const renderPrefixIcon = () => {
1367
+ const { prefixIcon } = props;
1368
+ const prefixSlot = slots.prefix;
1369
+ return prefixSlot || prefixIcon ? h(
1370
+ "div",
1371
+ {
1372
+ class: "vxe-date-range-picker--prefix",
1373
+ onClick: clickPrefixEvent
1374
+ },
1375
+ [
1376
+ h(
1377
+ "div",
1378
+ {
1379
+ class: "vxe-date-range-picker--prefix-icon"
1380
+ },
1381
+ prefixSlot ? getSlotVNs(prefixSlot({})) : [
1382
+ h("i", {
1383
+ class: prefixIcon
1384
+ })
1385
+ ]
1386
+ )
1387
+ ]
1388
+ ) : null;
1389
+ };
1390
+ const renderSuffixIcon = () => {
1391
+ const { suffixIcon } = props;
1392
+ const { selectStValue, selectEdValue } = reactData;
1393
+ const suffixSlot = slots.suffix;
1394
+ const isDisabled = computeIsDisabled.value;
1395
+ const isClearable = computeIsClearable.value;
1396
+ return h(
1397
+ "div",
1398
+ {
1399
+ class: [
1400
+ "vxe-date-range-picker--suffix",
1401
+ {
1402
+ "is--clear": isClearable && !isDisabled && (selectStValue || selectEdValue)
1403
+ }
1428
1404
  ]
1429
- ) : renderEmptyElement($xeDateRangePicker)
1430
- ]
1431
- );
1432
- };
1433
- const renderExtraSuffixIcon = () => {
1434
- return h(
1435
- "div",
1436
- {
1437
- class: "vxe-date-range-picker--control-icon",
1438
- onClick: clickIconEvent
1439
- },
1440
- [
1441
- h("i", {
1442
- class: ["vxe-date-range-picker--date-picker-icon", getIcon().DATE_PICKER_DATE]
1443
- })
1444
- ]
1445
- );
1446
- };
1447
- const renderVN = () => {
1448
- const { className, inputClassName, type, name, autoComplete } = props;
1449
- const { selectStValue, selectEdValue, visiblePanel, isActivated } = reactData;
1450
- const vSize = computeSize.value;
1451
- const isDisabled = computeIsDisabled.value;
1452
- const formReadonly = computeFormReadonly.value;
1453
- const inputLabel = computeInputLabel.value;
1454
- if (formReadonly) {
1405
+ },
1406
+ [
1407
+ isClearable ? h(
1408
+ "div",
1409
+ {
1410
+ class: "vxe-date-range-picker--clear-icon",
1411
+ onClick: clearValueEvent
1412
+ },
1413
+ [
1414
+ h("i", {
1415
+ class: getIcon().INPUT_CLEAR
1416
+ })
1417
+ ]
1418
+ ) : renderEmptyElement($xeDateRangePicker),
1419
+ renderExtraSuffixIcon(),
1420
+ suffixSlot || suffixIcon ? h(
1421
+ "div",
1422
+ {
1423
+ class: "vxe-date-range-picker--suffix-icon",
1424
+ onClick: clickSuffixEvent
1425
+ },
1426
+ suffixSlot ? getSlotVNs(suffixSlot({})) : [
1427
+ h("i", {
1428
+ class: suffixIcon
1429
+ })
1430
+ ]
1431
+ ) : renderEmptyElement($xeDateRangePicker)
1432
+ ]
1433
+ );
1434
+ };
1435
+ const renderExtraSuffixIcon = () => {
1455
1436
  return h(
1456
1437
  "div",
1457
1438
  {
1458
- ref: refElem,
1459
- class: ["vxe-date-range-picker--readonly", `type--${type}`, className]
1439
+ class: "vxe-date-range-picker--control-icon",
1440
+ onClick: clickIconEvent
1460
1441
  },
1461
- inputLabel
1442
+ [
1443
+ h("i", {
1444
+ class: ["vxe-date-range-picker--date-picker-icon", getIcon().DATE_PICKER_DATE]
1445
+ })
1446
+ ]
1462
1447
  );
1463
- }
1464
- const currStyle = computeCurrStyle.value;
1465
- const inpPlaceholder = computeInpPlaceholder.value;
1466
- const isClearable = computeIsClearable.value;
1467
- const prefix = renderPrefixIcon();
1468
- const suffix = renderSuffixIcon();
1469
- return h(
1470
- "div",
1471
- {
1472
- ref: refElem,
1473
- class: [
1474
- "vxe-date-range-picker",
1475
- `type--${type}`,
1476
- className,
1477
- {
1478
- [`size--${vSize}`]: vSize,
1479
- "is--prefix": !!prefix,
1480
- "is--suffix": !!suffix,
1481
- "is--visible": visiblePanel,
1482
- "is--disabled": isDisabled,
1483
- "is--active": isActivated,
1484
- "show--clear": isClearable && !isDisabled && (selectStValue || selectEdValue)
1485
- }
1486
- ],
1487
- style: currStyle,
1488
- spellcheck: false
1489
- },
1490
- [
1491
- prefix || renderEmptyElement($xeDateRangePicker),
1492
- h(
1448
+ };
1449
+ const renderVN = () => {
1450
+ const { className, inputClassName, type, name, autoComplete } = props;
1451
+ const { selectStValue, selectEdValue, visiblePanel, isActivated } = reactData;
1452
+ const vSize = computeSize.value;
1453
+ const isDisabled = computeIsDisabled.value;
1454
+ const formReadonly = computeFormReadonly.value;
1455
+ const inputLabel = computeInputLabel.value;
1456
+ if (formReadonly) {
1457
+ return h(
1493
1458
  "div",
1494
1459
  {
1495
- class: "vxe-date-range-picker--wrapper"
1460
+ ref: refElem,
1461
+ class: ["vxe-date-range-picker--readonly", `type--${type}`, className]
1496
1462
  },
1497
- [
1498
- h("input", {
1499
- ref: refInputTarget,
1500
- class: "vxe-date-range-picker--inner" + (inputClassName ? " " + inputClassName : ""),
1501
- value: inputLabel,
1502
- name,
1503
- type: "text",
1504
- placeholder: inpPlaceholder,
1505
- editable: false,
1506
- disabled: isDisabled,
1507
- autocomplete: autoComplete,
1508
- onKeydown: keydownEvent,
1509
- onKeyup: keyupEvent,
1510
- onClick: clickEvent,
1511
- onChange: changeEvent,
1512
- onFocus: focusEvent,
1513
- onBlur: blurEvent
1514
- })
1515
- ]
1516
- ),
1517
- suffix || renderEmptyElement($xeDateRangePicker),
1518
- // 下拉面板
1519
- renderPanel()
1520
- ]
1463
+ inputLabel
1464
+ );
1465
+ }
1466
+ const currStyle = computeCurrStyle.value;
1467
+ const inpPlaceholder = computeInpPlaceholder.value;
1468
+ const isClearable = computeIsClearable.value;
1469
+ const prefix = renderPrefixIcon();
1470
+ const suffix = renderSuffixIcon();
1471
+ return h(
1472
+ "div",
1473
+ {
1474
+ ref: refElem,
1475
+ class: [
1476
+ "vxe-date-range-picker",
1477
+ `type--${type}`,
1478
+ className,
1479
+ {
1480
+ [`size--${vSize}`]: vSize,
1481
+ "is--prefix": !!prefix,
1482
+ "is--suffix": !!suffix,
1483
+ "is--visible": visiblePanel,
1484
+ "is--disabled": isDisabled,
1485
+ "is--active": isActivated,
1486
+ "show--clear": isClearable && !isDisabled && (selectStValue || selectEdValue)
1487
+ }
1488
+ ],
1489
+ style: currStyle,
1490
+ spellcheck: false
1491
+ },
1492
+ [
1493
+ prefix || renderEmptyElement($xeDateRangePicker),
1494
+ h(
1495
+ "div",
1496
+ {
1497
+ class: "vxe-date-range-picker--wrapper"
1498
+ },
1499
+ [
1500
+ h("input", {
1501
+ ref: refInputTarget,
1502
+ class: "vxe-date-range-picker--inner" + (inputClassName ? " " + inputClassName : ""),
1503
+ value: inputLabel,
1504
+ name,
1505
+ type: "text",
1506
+ placeholder: inpPlaceholder,
1507
+ editable: false,
1508
+ disabled: isDisabled,
1509
+ autocomplete: autoComplete,
1510
+ onKeydown: keydownEvent,
1511
+ onKeyup: keyupEvent,
1512
+ onClick: clickEvent,
1513
+ onChange: changeEvent,
1514
+ onFocus: focusEvent,
1515
+ onBlur: blurEvent
1516
+ })
1517
+ ]
1518
+ ),
1519
+ suffix || renderEmptyElement($xeDateRangePicker),
1520
+ // 下拉面板
1521
+ renderPanel()
1522
+ ]
1523
+ );
1524
+ };
1525
+ watch(
1526
+ () => props.modelValue,
1527
+ () => {
1528
+ updateModelValue(true);
1529
+ }
1521
1530
  );
1522
- };
1523
- watch(
1524
- () => props.modelValue,
1525
- () => {
1526
- updateModelValue(true);
1527
- }
1528
- );
1529
- watch(computeMVal, () => {
1530
- updateModelValue(false);
1531
- });
1532
- updateModelValue(true);
1533
- nextTick(() => {
1534
- globalEvents.on($xeDateRangePicker, "mousedown", handleGlobalMousedownEvent);
1535
- globalEvents.on($xeDateRangePicker, "keydown", handleGlobalKeydownEvent);
1536
- globalEvents.on($xeDateRangePicker, "blur", handleGlobalBlurEvent);
1537
- globalEvents.on($xeDateRangePicker, "resize", handleGlobalResizeEvent);
1538
- globalEvents.on($xeDateRangePicker, "scroll", handleGlobalScrollEvent);
1539
- });
1540
- onDeactivated(() => {
1541
- checkValue();
1542
- });
1543
- onBeforeUnmount(() => {
1544
- checkValue();
1545
- });
1546
- onUnmounted(() => {
1547
- globalEvents.off($xeDateRangePicker, "mousedown");
1548
- globalEvents.off($xeDateRangePicker, "keydown");
1549
- globalEvents.off($xeDateRangePicker, "blur");
1550
- globalEvents.off($xeDateRangePicker, "resize");
1551
- globalEvents.off($xeDateRangePicker, "scroll");
1552
- XEUtils.assign(reactData, createReactData());
1553
- XEUtils.assign(internalData, createInternalData());
1554
- });
1555
- provide("$xeDateRangePicker", $xeDateRangePicker);
1556
- $xeDateRangePicker.renderVN = renderVN;
1557
- return $xeDateRangePicker;
1558
- },
1559
- render() {
1560
- return this.renderVN();
1561
- }
1562
- });
1531
+ watch(computeMVal, () => {
1532
+ updateModelValue(false);
1533
+ });
1534
+ updateModelValue(true);
1535
+ nextTick(() => {
1536
+ globalEvents.on($xeDateRangePicker, "mousedown", handleGlobalMousedownEvent);
1537
+ globalEvents.on($xeDateRangePicker, "keydown", handleGlobalKeydownEvent);
1538
+ globalEvents.on($xeDateRangePicker, "blur", handleGlobalBlurEvent);
1539
+ globalEvents.on($xeDateRangePicker, "resize", handleGlobalResizeEvent);
1540
+ globalEvents.on($xeDateRangePicker, "scroll", handleGlobalScrollEvent);
1541
+ });
1542
+ onDeactivated(() => {
1543
+ checkValue();
1544
+ });
1545
+ onBeforeUnmount(() => {
1546
+ checkValue();
1547
+ });
1548
+ onUnmounted(() => {
1549
+ globalEvents.off($xeDateRangePicker, "mousedown");
1550
+ globalEvents.off($xeDateRangePicker, "keydown");
1551
+ globalEvents.off($xeDateRangePicker, "blur");
1552
+ globalEvents.off($xeDateRangePicker, "resize");
1553
+ globalEvents.off($xeDateRangePicker, "scroll");
1554
+ XEUtils.assign(reactData, createReactData());
1555
+ XEUtils.assign(internalData, createInternalData());
1556
+ });
1557
+ provide("$xeDateRangePicker", $xeDateRangePicker);
1558
+ $xeDateRangePicker.renderVN = renderVN;
1559
+ return $xeDateRangePicker;
1560
+ },
1561
+ render() {
1562
+ return this.renderVN();
1563
+ }
1564
+ })
1565
+ );
1563
1566
  export {
1564
1567
  date_range_picker_default as default
1565
1568
  };