vxe-pc-ui 4.15.1 → 4.15.3

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 (133) hide show
  1. package/dist/all.esm.js +834 -175
  2. package/es/backtop/src/backtop.js +2 -1
  3. package/es/button/src/button.js +3 -2
  4. package/es/calendar/src/calendar.js +2 -1
  5. package/es/cascader/src/cascader.js +2 -1
  6. package/es/checkbox/src/group.js +5 -1
  7. package/es/date-panel/src/util.js +27 -4
  8. package/es/date-picker/src/date-picker.js +609 -45
  9. package/es/date-range-picker/src/date-range-picker.js +20 -4
  10. package/es/drawer/src/drawer.js +2 -0
  11. package/es/form/render/index.js +3 -2
  12. package/es/form/src/form.js +6 -5
  13. package/es/form/src/itemInfo.js +6 -5
  14. package/es/input/src/input.js +2 -1
  15. package/es/menu/src/menu.js +2 -1
  16. package/es/modal/src/modal.js +5 -2
  17. package/es/number-input/src/number-input.js +2 -3
  18. package/es/pager/src/pager.js +4 -3
  19. package/es/radio/src/group.js +5 -1
  20. package/es/select/src/select.js +25 -20
  21. package/es/splitter/src/splitter.js +12 -7
  22. package/es/table-select/src/table-select.js +21 -16
  23. package/es/tabs/src/tabs.js +4 -3
  24. package/es/textarea/src/textarea.js +2 -1
  25. package/es/tree/src/tree.js +3 -2
  26. package/es/tree-select/src/tree-select.js +2 -1
  27. package/es/ui/index.js +1 -1
  28. package/es/ui/src/log.js +7 -1
  29. package/es/upload/src/upload.js +12 -3
  30. package/lib/backtop/src/backtop.js +5 -2
  31. package/lib/backtop/src/backtop.min.js +1 -1
  32. package/lib/button/src/button.js +4 -1
  33. package/lib/button/src/button.min.js +1 -1
  34. package/lib/calendar/src/calendar.js +4 -1
  35. package/lib/calendar/src/calendar.min.js +1 -1
  36. package/lib/cascader/src/cascader.js +4 -1
  37. package/lib/cascader/src/cascader.min.js +1 -1
  38. package/lib/checkbox/src/group.js +5 -1
  39. package/lib/checkbox/src/group.min.js +1 -1
  40. package/lib/date-panel/src/util.js +37 -6
  41. package/lib/date-panel/src/util.min.js +1 -1
  42. package/lib/date-picker/src/date-picker.js +665 -43
  43. package/lib/date-picker/src/date-picker.min.js +1 -1
  44. package/lib/date-range-picker/src/date-range-picker.js +21 -3
  45. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  46. package/lib/drawer/src/drawer.js +2 -0
  47. package/lib/drawer/src/drawer.min.js +1 -1
  48. package/lib/form/render/index.js +4 -1
  49. package/lib/form/render/index.min.js +1 -1
  50. package/lib/form/src/form.js +8 -4
  51. package/lib/form/src/form.min.js +1 -1
  52. package/lib/form/src/itemInfo.js +7 -4
  53. package/lib/form/src/itemInfo.min.js +1 -1
  54. package/lib/index.umd.js +916 -137
  55. package/lib/index.umd.min.js +1 -1
  56. package/lib/input/src/input.js +6 -3
  57. package/lib/input/src/input.min.js +1 -1
  58. package/lib/menu/src/menu.js +4 -1
  59. package/lib/menu/src/menu.min.js +1 -1
  60. package/lib/modal/src/modal.js +8 -2
  61. package/lib/modal/src/modal.min.js +1 -1
  62. package/lib/number-input/src/number-input.js +2 -3
  63. package/lib/pager/src/pager.js +6 -2
  64. package/lib/pager/src/pager.min.js +1 -1
  65. package/lib/radio/src/group.js +5 -1
  66. package/lib/radio/src/group.min.js +1 -1
  67. package/lib/select/src/select.js +27 -20
  68. package/lib/select/src/select.min.js +1 -1
  69. package/lib/splitter/src/splitter.js +17 -9
  70. package/lib/splitter/src/splitter.min.js +1 -1
  71. package/lib/table-select/src/table-select.js +22 -15
  72. package/lib/table-select/src/table-select.min.js +1 -1
  73. package/lib/tabs/src/tabs.js +7 -3
  74. package/lib/tabs/src/tabs.min.js +1 -1
  75. package/lib/textarea/src/textarea.js +4 -1
  76. package/lib/textarea/src/textarea.min.js +1 -1
  77. package/lib/tree/src/tree.js +7 -4
  78. package/lib/tree/src/tree.min.js +1 -1
  79. package/lib/tree-select/src/tree-select.js +7 -3
  80. package/lib/tree-select/src/tree-select.min.js +1 -1
  81. package/lib/ui/index.js +1 -1
  82. package/lib/ui/index.min.js +1 -1
  83. package/lib/ui/src/log.js +8 -1
  84. package/lib/ui/src/log.min.js +1 -1
  85. package/lib/upload/src/upload.js +20 -3
  86. package/lib/upload/src/upload.min.js +1 -1
  87. package/package.json +1 -1
  88. package/packages/backtop/src/backtop.ts +3 -1
  89. package/packages/button/src/button.ts +4 -2
  90. package/packages/calendar/src/calendar.ts +3 -1
  91. package/packages/cascader/src/cascader.ts +3 -1
  92. package/packages/checkbox/src/group.ts +6 -2
  93. package/packages/date-panel/src/util.ts +28 -3
  94. package/packages/date-picker/src/date-picker.ts +624 -48
  95. package/packages/date-range-picker/src/date-range-picker.ts +19 -4
  96. package/packages/drawer/src/drawer.ts +2 -0
  97. package/packages/form/render/index.ts +4 -2
  98. package/packages/form/src/form.ts +7 -5
  99. package/packages/form/src/itemInfo.ts +7 -5
  100. package/packages/input/src/input.ts +3 -1
  101. package/packages/menu/src/menu.ts +3 -1
  102. package/packages/modal/src/modal.ts +6 -2
  103. package/packages/number-input/src/number-input.ts +2 -6
  104. package/packages/pager/src/pager.ts +5 -3
  105. package/packages/radio/src/group.ts +6 -2
  106. package/packages/select/src/select.ts +29 -22
  107. package/packages/splitter/src/splitter.ts +13 -7
  108. package/packages/table-select/src/table-select.ts +24 -17
  109. package/packages/tabs/src/tabs.ts +5 -3
  110. package/packages/textarea/src/textarea.ts +3 -1
  111. package/packages/tree/src/tree.ts +4 -2
  112. package/packages/tree-select/src/tree-select.ts +3 -1
  113. package/packages/ui/src/log.ts +7 -0
  114. package/packages/upload/src/upload.ts +14 -3
  115. package/types/components/date-picker.d.ts +27 -1
  116. package/types/components/date-range-picker.d.ts +4 -0
  117. package/types/components/drawer.d.ts +2 -0
  118. package/types/components/modal.d.ts +2 -0
  119. package/types/components/splitter.d.ts +1 -0
  120. package/types/components/table.d.ts +29 -3
  121. package/types/components/upload.d.ts +28 -1
  122. /package/es/icon/{iconfont.1781675429363.ttf → iconfont.1781852740683.ttf} +0 -0
  123. /package/es/icon/{iconfont.1781675429363.woff → iconfont.1781852740683.woff} +0 -0
  124. /package/es/icon/{iconfont.1781675429363.woff2 → iconfont.1781852740683.woff2} +0 -0
  125. /package/es/{iconfont.1781675429363.ttf → iconfont.1781852740683.ttf} +0 -0
  126. /package/es/{iconfont.1781675429363.woff → iconfont.1781852740683.woff} +0 -0
  127. /package/es/{iconfont.1781675429363.woff2 → iconfont.1781852740683.woff2} +0 -0
  128. /package/lib/icon/style/{iconfont.1781675429363.ttf → iconfont.1781852740683.ttf} +0 -0
  129. /package/lib/icon/style/{iconfont.1781675429363.woff → iconfont.1781852740683.woff} +0 -0
  130. /package/lib/icon/style/{iconfont.1781675429363.woff2 → iconfont.1781852740683.woff2} +0 -0
  131. /package/lib/{iconfont.1781675429363.ttf → iconfont.1781852740683.ttf} +0 -0
  132. /package/lib/{iconfont.1781675429363.woff → iconfont.1781852740683.woff} +0 -0
  133. /package/lib/{iconfont.1781675429363.woff2 → iconfont.1781852740683.woff2} +0 -0
package/dist/all.esm.js CHANGED
@@ -80,19 +80,25 @@ function checkDynamic() {
80
80
  }
81
81
  }
82
82
 
83
- const version$1 = `ui v${"4.15.1"}`;
84
- const warnLog = log.create('warn', version$1);
85
- const errLog = log.create('error', version$1);
83
+ const version$1 = `ui v${"4.15.3"}`;
84
+ function createComponentLog(name) {
85
+ return {
86
+ warnLog: log.create('warn', `${version$1} ${name}`),
87
+ errLog: log.create('error', `${version$1} ${name}`)
88
+ };
89
+ }
90
+ const warnLog$b = log.create('warn', version$1);
91
+ log.create('error', version$1);
86
92
 
87
- const version = "4.15.1";
93
+ const version = "4.15.3";
88
94
  VxeUI.uiVersion = version;
89
95
  VxeUI.dynamicApp = dynamicApp;
90
96
  function config(options) {
91
- warnLog('vxe.error.delFunc', ['config', 'setConfig']);
97
+ warnLog$b('vxe.error.delFunc', ['config', 'setConfig']);
92
98
  return setConfig$1(options);
93
99
  }
94
100
  function setup(options) {
95
- warnLog('vxe.error.delFunc', ['setup', 'setConfig']);
101
+ warnLog$b('vxe.error.delFunc', ['setup', 'setConfig']);
96
102
  return setConfig$1(options);
97
103
  }
98
104
  VxeUI.config = config;
@@ -3041,6 +3047,7 @@ dynamicApp.use(VxeTooltip);
3041
3047
  VxeUI.component(VxeTooltipComponent);
3042
3048
  const Tooltip = VxeTooltip;
3043
3049
 
3050
+ const { warnLog: warnLog$a } = createComponentLog('button');
3044
3051
  const VxeButtonComponent = defineVxeComponent({
3045
3052
  name: 'VxeButton',
3046
3053
  props: {
@@ -3759,7 +3766,7 @@ const VxeButtonComponent = defineVxeComponent({
3759
3766
  $xeButton.renderVN = renderVN;
3760
3767
  onMounted(() => {
3761
3768
  if (props.type === 'text') {
3762
- warnLog('vxe.error.delProp', ['[button] type=text', 'mode=text']);
3769
+ warnLog$a('vxe.error.delProp', ['type=text', 'mode=text']);
3763
3770
  }
3764
3771
  globalEvents.on($xeButton, 'mousewheel', handleGlobalMousewheelEvent);
3765
3772
  globalEvents.on($xeButton, 'mousedown', handleGlobalMousedownEvent);
@@ -3786,12 +3793,13 @@ dynamicApp.use(VxeButton);
3786
3793
  VxeUI.component(VxeButtonComponent);
3787
3794
  const Button = VxeButton;
3788
3795
 
3789
- function createInternalData$d() {
3796
+ const { errLog: errLog$h } = createComponentLog('backtop');
3797
+ function createInternalData$e() {
3790
3798
  return {
3791
3799
  targetEl: null
3792
3800
  };
3793
3801
  }
3794
- function createReactData$a() {
3802
+ function createReactData$f() {
3795
3803
  return {
3796
3804
  showBtn: false,
3797
3805
  backtopZindex: 0
@@ -3870,8 +3878,8 @@ var VxeBacktopComponent = defineVxeComponent({
3870
3878
  const xID = XEUtils.uniqueId();
3871
3879
  const refElem = ref();
3872
3880
  const { computeSize } = useSize(props);
3873
- const internalData = createInternalData$d();
3874
- const reactData = reactive(createReactData$a());
3881
+ const internalData = createInternalData$e();
3882
+ const reactData = reactive(createReactData$f());
3875
3883
  const refMaps = {
3876
3884
  refElem
3877
3885
  };
@@ -3963,13 +3971,13 @@ var VxeBacktopComponent = defineVxeComponent({
3963
3971
  const { target } = props;
3964
3972
  if (!target) {
3965
3973
  removeScrollEvent();
3966
- errLog('vxe.error.reqProp', ['target']);
3974
+ errLog$h('vxe.error.reqProp', ['target']);
3967
3975
  return;
3968
3976
  }
3969
3977
  if (XEUtils.isString(target)) {
3970
3978
  const tEl = document.querySelector(target);
3971
3979
  if (!tEl) {
3972
- errLog('vxe.error.errProp', [`target=${target}`, 'body']);
3980
+ errLog$h('vxe.error.errProp', [`target=${target}`, 'body']);
3973
3981
  }
3974
3982
  const { targetEl } = internalData;
3975
3983
  if (targetEl !== tEl) {
@@ -4048,8 +4056,8 @@ var VxeBacktopComponent = defineVxeComponent({
4048
4056
  });
4049
4057
  onBeforeUnmount(() => {
4050
4058
  removeScrollEvent();
4051
- XEUtils.assign(reactData, createReactData$a());
4052
- XEUtils.assign(internalData, createInternalData$d());
4059
+ XEUtils.assign(reactData, createReactData$f());
4060
+ XEUtils.assign(internalData, createInternalData$e());
4053
4061
  });
4054
4062
  $xeBacktop.renderVN = renderVN;
4055
4063
  return $xeBacktop;
@@ -4412,6 +4420,18 @@ dynamicApp.use(VxeButtonGroup);
4412
4420
  VxeUI.component(VxeButtonGroupComponent);
4413
4421
  const ButtonGroup = VxeButtonGroup;
4414
4422
 
4423
+ function getChunkDefaultNum(selectKey) {
4424
+ const currDate = new Date();
4425
+ switch (selectKey) {
4426
+ case 'y': return currDate.getFullYear();
4427
+ case 'M': return currDate.getMonth() + 1;
4428
+ case 'd': return currDate.getDate();
4429
+ case 'H': return currDate.getHours();
4430
+ case 'm': return currDate.getMinutes();
4431
+ case 's': return currDate.getSeconds();
4432
+ }
4433
+ return 0;
4434
+ }
4415
4435
  function hasTimestampValueType(valueFormat) {
4416
4436
  return valueFormat === 'timestamp';
4417
4437
  }
@@ -4475,7 +4495,7 @@ function getDateQuarter(date) {
4475
4495
  }
4476
4496
  return 4;
4477
4497
  }
4478
- const parseDateValue = (val, type, options) => {
4498
+ function parseDateValue(val, type, options) {
4479
4499
  const { valueFormat } = options;
4480
4500
  if (val) {
4481
4501
  if (type === 'time') {
@@ -4490,7 +4510,7 @@ const parseDateValue = (val, type, options) => {
4490
4510
  return XEUtils.toStringDate(val, valueFormat);
4491
4511
  }
4492
4512
  return null;
4493
- };
4513
+ }
4494
4514
  const parseDateString = (val, type, options) => {
4495
4515
  const dValue = parseDateValue(val, type, options);
4496
4516
  return dValue ? XEUtils.toDateString(dValue, options.valueFormat) : '';
@@ -4627,10 +4647,22 @@ function getRangeDateByCode(code, val, type, options) {
4627
4647
  /**
4628
4648
  * 判断周的年份是否跨年
4629
4649
  */
4630
- const checkWeekOfsetYear = (W, M) => {
4650
+ function checkWeekOfsetYear(W, M) {
4631
4651
  return `${W}` === '1' && `${M}` === '12';
4632
- };
4652
+ }
4653
+ function isAllSameChar(str, char) {
4654
+ if (str.length === 0) {
4655
+ return false;
4656
+ }
4657
+ for (let i = 0; i < str.length; i++) {
4658
+ if (str[i] !== char) {
4659
+ return false;
4660
+ }
4661
+ }
4662
+ return true;
4663
+ }
4633
4664
 
4665
+ const { errLog: errLog$g } = createComponentLog('calendar');
4634
4666
  const { menus: menus$2, getConfig: getConfig$2, getI18n: getI18n$1 } = VxeUI;
4635
4667
  var VxeCalendarComponent = defineVxeComponent({
4636
4668
  name: 'VxeCalendar',
@@ -5898,7 +5930,7 @@ var VxeCalendarComponent = defineVxeComponent({
5898
5930
  const { menuConfig } = props;
5899
5931
  const VxeUIContextMenu = VxeUI.getComponent('VxeContextMenu');
5900
5932
  if (menuConfig && !VxeUIContextMenu) {
5901
- errLog('vxe.error.reqComp', ['vxe-context-menu']);
5933
+ errLog$g('vxe.error.reqComp', ['vxe-context-menu']);
5902
5934
  }
5903
5935
  dateOpenPanel();
5904
5936
  });
@@ -6680,7 +6712,7 @@ function deNodeValue$1(nodeid) {
6680
6712
  return nodeid ? decodeURIComponent(`${nodeid}`) : nodeid;
6681
6713
  }
6682
6714
 
6683
- function createReactData$9() {
6715
+ function createReactData$e() {
6684
6716
  return {
6685
6717
  scrollYLoad: false,
6686
6718
  bodyHeight: 0,
@@ -6691,7 +6723,7 @@ function createReactData$9() {
6691
6723
  items: []
6692
6724
  };
6693
6725
  }
6694
- function createInternalData$c() {
6726
+ function createInternalData$d() {
6695
6727
  return {
6696
6728
  resizeObserver: undefined,
6697
6729
  fullData: [],
@@ -6734,8 +6766,8 @@ var VxeListComponent = defineVxeComponent({
6734
6766
  const xID = XEUtils.uniqueId();
6735
6767
  const browseObj = XEUtils.browse();
6736
6768
  const { computeSize } = useSize(props);
6737
- const reactData = reactive(createReactData$9());
6738
- const internalData = createInternalData$c();
6769
+ const reactData = reactive(createReactData$e());
6770
+ const internalData = createInternalData$d();
6739
6771
  const refElem = ref();
6740
6772
  const refVirtualWrapper = ref();
6741
6773
  const refVirtualBody = ref();
@@ -7067,8 +7099,8 @@ var VxeListComponent = defineVxeComponent({
7067
7099
  resizeObserver.disconnect();
7068
7100
  }
7069
7101
  globalEvents.off($xeList, 'resize');
7070
- XEUtils.assign(reactData, createReactData$9());
7071
- XEUtils.assign(internalData, createInternalData$c());
7102
+ XEUtils.assign(reactData, createReactData$e());
7103
+ XEUtils.assign(internalData, createInternalData$d());
7072
7104
  });
7073
7105
  $xeList.renderVN = renderVN;
7074
7106
  return $xeList;
@@ -7100,6 +7132,7 @@ function toFloatValueFixed(inputValue, type, digitsValue, roundingMode) {
7100
7132
  }
7101
7133
  }
7102
7134
 
7135
+ const { warnLog: warnLog$9 } = createComponentLog('input');
7103
7136
  var VxeInputComponent = defineVxeComponent({
7104
7137
  name: 'VxeInput',
7105
7138
  props: {
@@ -9736,13 +9769,13 @@ var VxeInputComponent = defineVxeComponent({
9736
9769
  onMounted(() => {
9737
9770
  const { type } = props;
9738
9771
  if (['date', 'time', 'datetime', 'week', 'month', 'quarter', 'year'].includes(type)) {
9739
- warnLog('vxe.error.useNew', [`<vxe-input type="${type}" ... />`, `<vxe-date-picker type="${type}" ... />`]);
9772
+ warnLog$9('vxe.error.useNew', [`<vxe-input type="${type}" ... />`, `<vxe-date-picker type="${type}" ... />`]);
9740
9773
  }
9741
9774
  else if (['number', 'integer', 'float'].includes(type)) {
9742
- warnLog('vxe.error.useNew', [`<vxe-input type="${type}" ... />`, `<vxe-number-input type="${type}" ... />`]);
9775
+ warnLog$9('vxe.error.useNew', [`<vxe-input type="${type}" ... />`, `<vxe-number-input type="${type}" ... />`]);
9743
9776
  }
9744
9777
  else if (['password'].includes(type)) {
9745
- warnLog('vxe.error.useNew', [`<vxe-input type="${type}" ... />`, '<vxe-password-input ... />']);
9778
+ warnLog$9('vxe.error.useNew', [`<vxe-input type="${type}" ... />`, '<vxe-password-input ... />']);
9746
9779
  }
9747
9780
  const inputElem = refInputTarget.value;
9748
9781
  if (inputElem) {
@@ -9774,13 +9807,14 @@ var VxeInputComponent = defineVxeComponent({
9774
9807
  }
9775
9808
  });
9776
9809
 
9810
+ const { errLog: errLog$f } = createComponentLog('cascader');
9777
9811
  /**
9778
9812
  * 生成节点的唯一主键
9779
9813
  */
9780
9814
  function getNodeUniqueId$1() {
9781
9815
  return XEUtils.uniqueId('node_');
9782
9816
  }
9783
- function createReactData$8() {
9817
+ function createReactData$d() {
9784
9818
  return {
9785
9819
  initialized: false,
9786
9820
  searchValue: '',
@@ -9803,7 +9837,7 @@ function createReactData$8() {
9803
9837
  lazyOptFlag: 1
9804
9838
  };
9805
9839
  }
9806
- function createInternalData$b() {
9840
+ function createInternalData$c() {
9807
9841
  return {
9808
9842
  // hpTimeout: undefined,
9809
9843
  listVirtualYOpts: {
@@ -9930,8 +9964,8 @@ var VxeCascaderComponent = defineVxeComponent({
9930
9964
  const refInpSearch = ref();
9931
9965
  const refChunkWrapper = ref();
9932
9966
  const refOptionPanel = ref();
9933
- const reactData = reactive(createReactData$8());
9934
- const internalData = createInternalData$b();
9967
+ const reactData = reactive(createReactData$d());
9968
+ const internalData = createInternalData$c();
9935
9969
  const refMaps = {
9936
9970
  refElem
9937
9971
  };
@@ -11447,7 +11481,7 @@ var VxeCascaderComponent = defineVxeComponent({
11447
11481
  loadData(props.options || []);
11448
11482
  onMounted(() => {
11449
11483
  if (props.filterable) {
11450
- errLog('vxe.error.notProp', ['filterable']);
11484
+ errLog$f('vxe.error.notProp', ['filterable']);
11451
11485
  }
11452
11486
  globalEvents.on($xeCascader, 'mousewheel', handleGlobalMousewheelEvent);
11453
11487
  globalEvents.on($xeCascader, 'mousedown', handleGlobalMousedownEvent);
@@ -11459,7 +11493,7 @@ var VxeCascaderComponent = defineVxeComponent({
11459
11493
  globalEvents.off($xeCascader, 'mousedown');
11460
11494
  globalEvents.off($xeCascader, 'blur');
11461
11495
  globalEvents.off($xeCascader, 'resize');
11462
- XEUtils.assign(internalData, createInternalData$b());
11496
+ XEUtils.assign(internalData, createInternalData$c());
11463
11497
  });
11464
11498
  provide('$xeCascader', $xeCascader);
11465
11499
  $xeCascader.renderVN = renderVN;
@@ -11792,7 +11826,10 @@ dynamicApp.use(VxeCheckboxButton);
11792
11826
  VxeUI.component(VxeCheckboxButtonComponent);
11793
11827
  const CheckboxButton = VxeCheckboxButton;
11794
11828
 
11795
- function createInternalData$a() {
11829
+ function createReactData$c() {
11830
+ return {};
11831
+ }
11832
+ function createInternalData$b() {
11796
11833
  return {
11797
11834
  // isLoaded: false
11798
11835
  };
@@ -11831,8 +11868,8 @@ var VxeCheckboxGroupComponent = defineVxeComponent({
11831
11868
  const $xeForm = inject('$xeForm', null);
11832
11869
  const formItemInfo = inject('xeFormItemInfo', null);
11833
11870
  const xID = XEUtils.uniqueId();
11834
- const reactData = reactive({});
11835
- const internalData = createInternalData$a();
11871
+ const reactData = reactive(createReactData$c());
11872
+ const internalData = createInternalData$b();
11836
11873
  const computeIsReadonly = computed(() => {
11837
11874
  const { readonly } = props;
11838
11875
  if (readonly === null) {
@@ -11991,7 +12028,8 @@ var VxeCheckboxGroupComponent = defineVxeComponent({
11991
12028
  });
11992
12029
  });
11993
12030
  onUnmounted(() => {
11994
- XEUtils.assign(internalData, createInternalData$a());
12031
+ XEUtils.assign(reactData, createReactData$c());
12032
+ XEUtils.assign(internalData, createInternalData$b());
11995
12033
  });
11996
12034
  provide('$xeCheckboxGroup', $xeCheckboxGroup);
11997
12035
  $xeCheckboxGroup.renderVN = renderVN;
@@ -12709,7 +12747,6 @@ var VxeNumberInputComponent = defineVxeComponent({
12709
12747
  type: String,
12710
12748
  default: () => getConfig$3().numberInput.size || getConfig$3().size
12711
12749
  },
12712
- // number、integer、float
12713
12750
  min: {
12714
12751
  type: [String, Number],
12715
12752
  default: null
@@ -12732,12 +12769,12 @@ var VxeNumberInputComponent = defineVxeComponent({
12732
12769
  default: () => getConfig$3().numberInput.currencySymbol
12733
12770
  },
12734
12771
  controlConfig: Object,
12735
- // float
12772
+ // number、float、amount
12736
12773
  roundingMode: {
12737
12774
  type: String,
12738
12775
  default: () => getConfig$3().numberInput.roundingMode
12739
12776
  },
12740
- // float
12777
+ // float、amount
12741
12778
  digits: {
12742
12779
  type: [String, Number],
12743
12780
  default: null
@@ -14734,12 +14771,12 @@ dynamicApp.use(VxeColorPicker);
14734
14771
  VxeUI.component(VxeColorPickerComponent);
14735
14772
  const ColorPicker = VxeColorPicker;
14736
14773
 
14737
- function createInternalData$9() {
14774
+ function createInternalData$a() {
14738
14775
  return {
14739
14776
  // leaveTime: null
14740
14777
  };
14741
14778
  }
14742
- function createReactData$7() {
14779
+ function createReactData$b() {
14743
14780
  return {
14744
14781
  visible: false,
14745
14782
  activeOption: null,
@@ -14794,8 +14831,8 @@ var VxeContextMenuComponent = defineVxeComponent({
14794
14831
  const xID = XEUtils.uniqueId();
14795
14832
  const refElem = ref();
14796
14833
  const { computeSize } = useSize(props);
14797
- const internalData = createInternalData$9();
14798
- const reactData = reactive(createReactData$7());
14834
+ const internalData = createInternalData$a();
14835
+ const reactData = reactive(createReactData$b());
14799
14836
  const refMaps = {
14800
14837
  refElem
14801
14838
  };
@@ -15350,8 +15387,8 @@ var VxeContextMenuComponent = defineVxeComponent({
15350
15387
  globalEvents.off($xeContextMenu, 'keydown');
15351
15388
  globalEvents.off($xeContextMenu, 'mousedown');
15352
15389
  globalEvents.off($xeContextMenu, 'blur');
15353
- XEUtils.assign(reactData, createReactData$7());
15354
- XEUtils.assign(internalData, createInternalData$9());
15390
+ XEUtils.assign(reactData, createReactData$b());
15391
+ XEUtils.assign(internalData, createInternalData$a());
15355
15392
  });
15356
15393
  $xeContextMenu.renderVN = renderVN;
15357
15394
  return $xeContextMenu;
@@ -17609,6 +17646,33 @@ dynamicApp.use(VxeDatePanel);
17609
17646
  VxeUI.component(VxeDatePanelComponent);
17610
17647
  const DatePanel = VxeDatePanel;
17611
17648
 
17649
+ const { warnLog: warnLog$8, errLog: errLog$e } = createComponentLog('date-picker');
17650
+ const maskedTypes = ['year', 'month', 'date', 'datetime', 'time'];
17651
+ const inputMaskedKeys = ['y', 'M', 'd', 'H', 'm', 'n', 's'];
17652
+ const parseInputKayMaps = {};
17653
+ inputMaskedKeys.forEach(key => {
17654
+ parseInputKayMaps[key] = true;
17655
+ });
17656
+ function createReactData$a() {
17657
+ return {
17658
+ initialized: false,
17659
+ panelIndex: 0,
17660
+ visiblePanel: false,
17661
+ isAniVisible: false,
17662
+ panelStyle: {},
17663
+ panelPlacement: '',
17664
+ isActivated: false,
17665
+ inputValue: '',
17666
+ labelFlag: 0
17667
+ };
17668
+ }
17669
+ function createInternalData$9() {
17670
+ return {
17671
+ // hpTimeout: undefined,
17672
+ inputLabel: '',
17673
+ laseFocusMasked: 0
17674
+ };
17675
+ }
17612
17676
  var VxeDatePickerComponent = defineVxeComponent({
17613
17677
  name: 'VxeDatePicker',
17614
17678
  props: {
@@ -17700,6 +17764,7 @@ var VxeDatePickerComponent = defineVxeComponent({
17700
17764
  type: Boolean,
17701
17765
  default: () => getConfig$3().datePicker.autoClose
17702
17766
  },
17767
+ maskedConfig: Object,
17703
17768
  prefixIcon: String,
17704
17769
  suffixIcon: String,
17705
17770
  placement: String,
@@ -17740,20 +17805,8 @@ var VxeDatePickerComponent = defineVxeComponent({
17740
17805
  const formItemInfo = inject('xeFormItemInfo', null);
17741
17806
  const xID = XEUtils.uniqueId();
17742
17807
  const { computeSize } = useSize(props);
17743
- const reactData = reactive({
17744
- initialized: false,
17745
- panelIndex: 0,
17746
- visiblePanel: false,
17747
- isAniVisible: false,
17748
- panelStyle: {},
17749
- panelPlacement: '',
17750
- isActivated: false,
17751
- inputValue: '',
17752
- inputLabel: ''
17753
- });
17754
- const internalData = {
17755
- hpTimeout: undefined
17756
- };
17808
+ const reactData = reactive(createReactData$a());
17809
+ const internalData = createInternalData$9();
17757
17810
  const refElem = ref();
17758
17811
  const refInputTarget = ref();
17759
17812
  const refInputPanel = ref();
@@ -17819,6 +17872,44 @@ var VxeDatePickerComponent = defineVxeComponent({
17819
17872
  const computeIsClearable = computed(() => {
17820
17873
  return props.clearable;
17821
17874
  });
17875
+ const computeIsDatePanelType = computed(() => {
17876
+ const isDateTimeType = computeIsDateTimeType.value;
17877
+ return isDateTimeType || ['date', 'week', 'month', 'quarter', 'year'].indexOf(props.type) > -1;
17878
+ });
17879
+ const computeDateListValue = computed(() => {
17880
+ const { modelValue, type, multiple } = props;
17881
+ const isDatePanelType = computeIsDatePanelType.value;
17882
+ const dateValueFormat = computeDateValueFormat.value;
17883
+ if (multiple && modelValue && isDatePanelType) {
17884
+ return XEUtils.toValueString(modelValue).split(',').map(item => {
17885
+ const date = parseDateValue(item, type, {
17886
+ valueFormat: dateValueFormat
17887
+ });
17888
+ if (XEUtils.isValidDate(date)) {
17889
+ return date;
17890
+ }
17891
+ return date;
17892
+ });
17893
+ }
17894
+ return [];
17895
+ });
17896
+ const computeLimitMaxCount = computed(() => {
17897
+ return props.multiple ? XEUtils.toNumber(props.limitCount) : 0;
17898
+ });
17899
+ const computeDateMultipleValue = computed(() => {
17900
+ const dateListValue = computeDateListValue.value;
17901
+ const dateValueFormat = computeDateValueFormat.value;
17902
+ return dateListValue.map(date => XEUtils.toDateString(date, dateValueFormat));
17903
+ });
17904
+ const computeOverCount = computed(() => {
17905
+ const { multiple } = props;
17906
+ const limitMaxCount = computeLimitMaxCount.value;
17907
+ const dateMultipleValue = computeDateMultipleValue.value;
17908
+ if (multiple && limitMaxCount) {
17909
+ return dateMultipleValue.length >= limitMaxCount;
17910
+ }
17911
+ return false;
17912
+ });
17822
17913
  const computeInputReadonly = computed(() => {
17823
17914
  const { type, editable, multiple } = props;
17824
17915
  const formReadonly = computeFormReadonly.value;
@@ -17868,6 +17959,10 @@ var VxeDatePickerComponent = defineVxeComponent({
17868
17959
  const { type, valueFormat } = props;
17869
17960
  return handleValueFormat(type, valueFormat);
17870
17961
  });
17962
+ const computeDateMaskedFormat = computed(() => {
17963
+ const dateLabelFormat = computeDateLabelFormat.value;
17964
+ return dateLabelFormat;
17965
+ });
17871
17966
  const computeFirstDayOfWeek = computed(() => {
17872
17967
  const { startDay } = props;
17873
17968
  return XEUtils.toNumber(startDay);
@@ -17888,6 +17983,14 @@ var VxeDatePickerComponent = defineVxeComponent({
17888
17983
  return dateObj.label;
17889
17984
  }).join(', ');
17890
17985
  });
17986
+ const computeMaskedOpts = computed(() => {
17987
+ return Object.assign({}, getConfig$3().datePicker.maskedConfig, props.maskedConfig);
17988
+ });
17989
+ const computeMaskChar = computed(() => {
17990
+ const maskedOpts = computeMaskedOpts.value;
17991
+ const { maskPlaceholder } = maskedOpts;
17992
+ return (maskPlaceholder ? ('' + maskPlaceholder)[0] : '') || '*';
17993
+ });
17891
17994
  const updateModelValue = () => {
17892
17995
  const { modelValue } = props;
17893
17996
  let val = '';
@@ -17901,6 +18004,12 @@ var VxeDatePickerComponent = defineVxeComponent({
17901
18004
  }
17902
18005
  reactData.inputValue = val;
17903
18006
  };
18007
+ const handleInputLabel = (text, isUpdate) => {
18008
+ internalData.inputLabel = text;
18009
+ if (isUpdate) {
18010
+ reactData.labelFlag++;
18011
+ }
18012
+ };
17904
18013
  const triggerEvent = (evnt) => {
17905
18014
  const { inputValue } = reactData;
17906
18015
  dispatchEvent(evnt.type, { value: inputValue }, evnt);
@@ -17946,7 +18055,7 @@ var VxeDatePickerComponent = defineVxeComponent({
17946
18055
  const inputEvent = (evnt) => {
17947
18056
  const inputElem = evnt.target;
17948
18057
  const value = inputElem.value;
17949
- reactData.inputLabel = value;
18058
+ handleInputLabel(value, true);
17950
18059
  dispatchEvent('input', { value }, evnt);
17951
18060
  };
17952
18061
  const changeEvent = (evnt) => {
@@ -17955,15 +18064,6 @@ var VxeDatePickerComponent = defineVxeComponent({
17955
18064
  triggerEvent(evnt);
17956
18065
  }
17957
18066
  };
17958
- const focusEvent = (evnt) => {
17959
- const popupOpts = computePopupOpts.value;
17960
- const { trigger } = popupOpts;
17961
- reactData.isActivated = true;
17962
- if (!trigger || trigger === 'default') {
17963
- datePickerOpenEvent(evnt);
17964
- }
17965
- triggerEvent(evnt);
17966
- };
17967
18067
  const clickPrefixEvent = (evnt) => {
17968
18068
  const isDisabled = computeIsDisabled.value;
17969
18069
  if (!isDisabled) {
@@ -17980,6 +18080,107 @@ var VxeDatePickerComponent = defineVxeComponent({
17980
18080
  }, 350);
17981
18081
  });
17982
18082
  };
18083
+ const dateChange = (date, isReload) => {
18084
+ const { modelValue, multiple } = props;
18085
+ const isDateTimeType = computeIsDateTimeType.value;
18086
+ const dateValueFormat = computeDateValueFormat.value;
18087
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
18088
+ if (props.type === 'week') {
18089
+ const sWeek = XEUtils.toNumber(props.selectDay);
18090
+ date = XEUtils.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
18091
+ }
18092
+ const inpVal = XEUtils.toDateString(date, dateValueFormat, { firstDay: firstDayOfWeek });
18093
+ if (multiple) {
18094
+ const overCount = computeOverCount.value;
18095
+ // 如果为多选
18096
+ if (isDateTimeType) {
18097
+ // 如果是datetime特殊类型
18098
+ const dateListValue = [...computeDateListValue.value];
18099
+ const datetimeRest = [];
18100
+ const eqIndex = XEUtils.findIndexOf(dateListValue, val => XEUtils.isDateSame(date, val, 'yyyyMMdd'));
18101
+ if (eqIndex === -1) {
18102
+ if (overCount) {
18103
+ // 如果超出最大多选数量
18104
+ return;
18105
+ }
18106
+ dateListValue.push(date);
18107
+ }
18108
+ else {
18109
+ dateListValue.splice(eqIndex, 1);
18110
+ }
18111
+ dateListValue.forEach(item => {
18112
+ if (item) {
18113
+ datetimeRest.push(item);
18114
+ }
18115
+ });
18116
+ handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' });
18117
+ }
18118
+ else {
18119
+ const dateMultipleValue = computeDateMultipleValue.value;
18120
+ // 如果是日期类型
18121
+ if (dateMultipleValue.some(val => XEUtils.isEqual(val, inpVal))) {
18122
+ handleChange(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' });
18123
+ }
18124
+ else {
18125
+ if (overCount) {
18126
+ // 如果超出最大多选数量
18127
+ return;
18128
+ }
18129
+ handleChange(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' });
18130
+ }
18131
+ }
18132
+ }
18133
+ else {
18134
+ // 如果为单选
18135
+ if (!XEUtils.isEqual(modelValue, inpVal)) {
18136
+ handleChange(inpVal, { type: 'update' });
18137
+ }
18138
+ }
18139
+ };
18140
+ const dateRevert = () => {
18141
+ const panelLabel = computePanelLabel.value;
18142
+ handleInputLabel(panelLabel, true);
18143
+ };
18144
+ const afterCheckValue = (inpVal) => {
18145
+ const { type } = props;
18146
+ const { inputLabel } = internalData;
18147
+ const dateLabelFormat = computeDateLabelFormat.value;
18148
+ if (!inpVal) {
18149
+ handleChange('', { type: 'check' });
18150
+ return;
18151
+ }
18152
+ let inpDateVal = parseDateValue(inpVal, type, {
18153
+ valueFormat: dateLabelFormat
18154
+ });
18155
+ if (!XEUtils.isValidDate(inpDateVal)) {
18156
+ dateRevert();
18157
+ return;
18158
+ }
18159
+ if (type === 'time') {
18160
+ inpDateVal = XEUtils.toDateString(inpDateVal, dateLabelFormat);
18161
+ if (inputLabel !== inpDateVal) {
18162
+ handleChange(inpDateVal, { type: 'check' });
18163
+ }
18164
+ handleInputLabel(inpDateVal, true);
18165
+ return;
18166
+ }
18167
+ let isChange = false;
18168
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
18169
+ if (type === 'datetime') {
18170
+ const dateValue = reactData.inputValue;
18171
+ if (inpVal !== XEUtils.toDateString(dateValue, dateLabelFormat) || inpVal !== XEUtils.toDateString(inpDateVal, dateLabelFormat)) {
18172
+ isChange = true;
18173
+ }
18174
+ }
18175
+ else {
18176
+ isChange = true;
18177
+ }
18178
+ const label = XEUtils.toDateString(inpDateVal, dateLabelFormat, { firstDay: firstDayOfWeek });
18179
+ handleInputLabel(label, true);
18180
+ if (isChange) {
18181
+ dateChange(inpDateVal);
18182
+ }
18183
+ };
17983
18184
  const clearValueEvent = (evnt, value) => {
17984
18185
  const isDatePickerType = computeIsDatePickerType.value;
17985
18186
  if (isDatePickerType) {
@@ -17995,6 +18196,298 @@ var VxeDatePickerComponent = defineVxeComponent({
17995
18196
  dispatchEvent('suffix-click', { value: inputValue }, evnt);
17996
18197
  }
17997
18198
  };
18199
+ const handleArrowInputDate = (evnt, isUpArrow, isDwArrow, isLtArrow, isRtArrow) => {
18200
+ const { type, multiple } = props;
18201
+ if (multiple) {
18202
+ return;
18203
+ }
18204
+ const targetElem = refInputTarget.value;
18205
+ if (!targetElem) {
18206
+ return;
18207
+ }
18208
+ const inpValue = targetElem.value;
18209
+ if (!inpValue) {
18210
+ return;
18211
+ }
18212
+ const dateMaskedFormat = computeDateMaskedFormat.value;
18213
+ const dateLabelFormat = computeDateLabelFormat.value;
18214
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
18215
+ const maskChar = computeMaskChar.value;
18216
+ const selectionStart = targetElem.selectionStart || 0;
18217
+ let selectKey = dateMaskedFormat[selectionStart];
18218
+ if (!parseInputKayMaps[selectKey]) {
18219
+ selectKey = dateMaskedFormat[selectionStart - 1];
18220
+ }
18221
+ const skRest = dateMaskedFormat.match(new RegExp(selectKey + '+'));
18222
+ if (!skRest) {
18223
+ return;
18224
+ }
18225
+ if (isUpArrow || isDwArrow) {
18226
+ const chunkFormat = skRest[0] || '';
18227
+ const chunkStartIndex = skRest.index || 0;
18228
+ const chunkEndIndex = chunkStartIndex + chunkFormat.length;
18229
+ const chunkValue = inpValue.slice(chunkStartIndex, chunkEndIndex);
18230
+ if (parseInputKayMaps[selectKey]) {
18231
+ const chunkNum = (isAllSameChar(chunkValue, maskChar) ? getChunkDefaultNum(selectKey) : XEUtils.toNumber(chunkValue)) + (isUpArrow ? 1 : -1);
18232
+ const restValue = inpValue.slice(0, chunkStartIndex) + XEUtils.padStart(chunkNum, chunkFormat.length, '0') + inpValue.slice(chunkEndIndex);
18233
+ evnt.preventDefault();
18234
+ if (restValue.indexOf(maskChar) === -1) {
18235
+ // 解析日期
18236
+ const inpDateVal = parseDateValue(restValue, type, {
18237
+ valueFormat: dateLabelFormat
18238
+ });
18239
+ if (XEUtils.isValidDate(inpDateVal)) {
18240
+ const label = XEUtils.toDateString(inpDateVal, dateLabelFormat, { firstDay: firstDayOfWeek });
18241
+ targetElem.value = label;
18242
+ handleInputLabel(label, false);
18243
+ }
18244
+ }
18245
+ else {
18246
+ targetElem.value = restValue;
18247
+ handleInputLabel(restValue, false);
18248
+ }
18249
+ }
18250
+ targetElem.setSelectionRange(chunkStartIndex, chunkEndIndex);
18251
+ }
18252
+ else if (isLtArrow || isRtArrow) {
18253
+ const currKeyIndex = inputMaskedKeys.indexOf(selectKey);
18254
+ if (currKeyIndex > -1) {
18255
+ const allMaskedKeys = XEUtils.map(dateMaskedFormat.match(new RegExp(`(${inputMaskedKeys.join('|')})+`, 'g')) || [], fullKey => fullKey[0]);
18256
+ const currIndex = XEUtils.findIndexOf(allMaskedKeys, key => selectKey === key[0]);
18257
+ const targetFormatKey = isLtArrow ? (allMaskedKeys[currIndex - 1] || allMaskedKeys[0]) : (allMaskedKeys[currIndex + 1] || allMaskedKeys[allMaskedKeys.length - 1]);
18258
+ const targetKey = targetFormatKey ? targetFormatKey[0] : '';
18259
+ const sktRest = dateMaskedFormat.match(new RegExp(targetKey + '+'));
18260
+ if (sktRest) {
18261
+ evnt.preventDefault();
18262
+ const mtStartIndex = sktRest.index || 0;
18263
+ const mtEndIndex = mtStartIndex + sktRest[0].length;
18264
+ targetElem.setSelectionRange(mtStartIndex, mtEndIndex);
18265
+ }
18266
+ }
18267
+ }
18268
+ internalData.isTriggerMasked = true;
18269
+ };
18270
+ const handleMaskedInputDate = (evnt) => {
18271
+ const { multiple } = props;
18272
+ if (multiple) {
18273
+ return;
18274
+ }
18275
+ const targetElem = refInputTarget.value;
18276
+ if (!targetElem) {
18277
+ return;
18278
+ }
18279
+ const isControlKey = hasControlKey(evnt);
18280
+ if (isControlKey) {
18281
+ return;
18282
+ }
18283
+ evnt.preventDefault();
18284
+ const eKey = evnt.key;
18285
+ const isDeleleKey = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.DELETE);
18286
+ const isBackspaceKey = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.BACKSPACE);
18287
+ const isNumKey = eKey >= '0' && eKey <= '9';
18288
+ const numKey = isNumKey ? evnt.key : '';
18289
+ if (!(isDeleleKey || isBackspaceKey || isNumKey)) {
18290
+ return;
18291
+ }
18292
+ const { isTriggerMasked } = internalData;
18293
+ const dateMaskedFormat = computeDateMaskedFormat.value;
18294
+ const maskChar = computeMaskChar.value;
18295
+ let inpValue = targetElem.value || dateMaskedFormat;
18296
+ const selectionStart = targetElem.selectionStart || 0;
18297
+ const selectionEnd = targetElem.selectionEnd || 0;
18298
+ let selectKey = dateMaskedFormat[selectionStart];
18299
+ if (!parseInputKayMaps[selectKey]) {
18300
+ selectKey = dateMaskedFormat[selectionStart - 1];
18301
+ }
18302
+ const skRest = dateMaskedFormat.match(new RegExp(selectKey + '+'));
18303
+ if (!skRest) {
18304
+ return;
18305
+ }
18306
+ const allMaskedKeys = XEUtils.map(dateMaskedFormat.match(new RegExp(`(${inputMaskedKeys.join('|')})+`, 'g')) || [], fullKey => fullKey[0]);
18307
+ const chunkFormat = skRest[0] || '';
18308
+ const chunkStartIndex = skRest.index || 0;
18309
+ const chunkEndIndex = chunkStartIndex + chunkFormat.length;
18310
+ const currKeyIndex = allMaskedKeys.indexOf(selectKey);
18311
+ // 全选 | 如果无效字符
18312
+ const isAllSelected = !selectionStart && selectionEnd === inpValue.length;
18313
+ const isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
18314
+ if (isAllSelected || isNotMasked) {
18315
+ inpValue = dateMaskedFormat;
18316
+ }
18317
+ let chunkValue = isDeleleKey ? '' : inpValue.slice(chunkStartIndex, chunkEndIndex);
18318
+ const chunkNums = (chunkValue.match(/\d/g) || []);
18319
+ const chunkNumList = isTriggerMasked && !isBackspaceKey ? [] : chunkNums.slice(0);
18320
+ if (isNumKey) {
18321
+ chunkNumList.push(numKey);
18322
+ }
18323
+ else if (isBackspaceKey) {
18324
+ chunkNumList.pop();
18325
+ }
18326
+ chunkValue = chunkNumList.join('').padEnd(chunkFormat.length, maskChar);
18327
+ let restValue = inpValue.slice(0, chunkStartIndex) + chunkValue + inpValue.slice(chunkEndIndex);
18328
+ restValue = restValue.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
18329
+ targetElem.value = restValue;
18330
+ handleInputLabel(restValue, false);
18331
+ // 如果是全选/删除
18332
+ if (isAllSelected) {
18333
+ if (isBackspaceKey || isDeleleKey) {
18334
+ const firstMaskedKeys = allMaskedKeys[0];
18335
+ const firstSkRest = dateMaskedFormat.match(new RegExp(`${firstMaskedKeys}+`));
18336
+ if (firstSkRest) {
18337
+ const firstChunkFormat = firstSkRest[0];
18338
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
18339
+ internalData.isTriggerMasked = true;
18340
+ return;
18341
+ }
18342
+ }
18343
+ }
18344
+ else {
18345
+ if (isBackspaceKey && !chunkNums.length) {
18346
+ // 回退到上一个数字块
18347
+ for (let i = currKeyIndex - 1; i >= 0; i--) {
18348
+ const prveChunkKey = allMaskedKeys[i];
18349
+ const prveSkRest = dateMaskedFormat.match(new RegExp(`${prveChunkKey}+`));
18350
+ if (prveSkRest) {
18351
+ const prveChunkFormat = prveSkRest[0];
18352
+ const prveChunkStartIndex = prveSkRest.index || 0;
18353
+ const prveChunkEndIndex = prveChunkStartIndex + prveChunkFormat.length;
18354
+ let prveChunkValue = restValue.slice(prveChunkStartIndex, prveChunkEndIndex);
18355
+ const prveChunkNums = (prveChunkValue.match(/\d/g) || []);
18356
+ if (prveChunkNums.length) {
18357
+ prveChunkNums.pop();
18358
+ prveChunkValue = prveChunkNums.join('').padEnd(prveChunkFormat.length, maskChar);
18359
+ restValue = restValue.slice(0, prveChunkStartIndex) + prveChunkValue + restValue.slice(prveChunkEndIndex);
18360
+ targetElem.value = restValue;
18361
+ handleInputLabel(restValue, false);
18362
+ targetElem.setSelectionRange(prveChunkStartIndex, prveChunkEndIndex);
18363
+ return;
18364
+ }
18365
+ }
18366
+ }
18367
+ const firstMaskedKeys = allMaskedKeys[0];
18368
+ const firstSkRest = dateMaskedFormat.match(new RegExp(`${firstMaskedKeys}+`));
18369
+ if (firstSkRest) {
18370
+ const firstChunkFormat = firstSkRest[0];
18371
+ restValue = dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
18372
+ targetElem.value = restValue;
18373
+ handleInputLabel(restValue, false);
18374
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
18375
+ internalData.isTriggerMasked = true;
18376
+ return;
18377
+ }
18378
+ return;
18379
+ }
18380
+ }
18381
+ let maskStartIndex = skRest.index || 0;
18382
+ let maskEndIndex = maskStartIndex + skRest[0].length;
18383
+ // 如果输入完成,跳转下一个
18384
+ if (chunkNumList.length >= chunkValue.length) {
18385
+ const nextKeys = allMaskedKeys.slice(currKeyIndex + 1);
18386
+ if (currKeyIndex > -1) {
18387
+ const nextRest = nextKeys.length ? dateMaskedFormat.match(new RegExp(`(${nextKeys.join('|')})+`)) : null;
18388
+ // 如果当前数字块已输入,则跳转下一个数字块
18389
+ if (nextRest) {
18390
+ maskStartIndex = nextRest.index || 0;
18391
+ maskEndIndex = maskStartIndex + nextRest[0].length;
18392
+ targetElem.setSelectionRange(maskStartIndex, maskEndIndex);
18393
+ }
18394
+ else {
18395
+ targetElem.setSelectionRange(maskStartIndex, maskEndIndex);
18396
+ }
18397
+ }
18398
+ internalData.isTriggerMasked = true;
18399
+ return;
18400
+ }
18401
+ targetElem.setSelectionRange(maskStartIndex, maskEndIndex);
18402
+ internalData.isTriggerMasked = false;
18403
+ };
18404
+ const handleMaskedSelectedDate = (evnt, isFocus) => {
18405
+ const { type, multiple, modelValue } = props;
18406
+ if (multiple) {
18407
+ return;
18408
+ }
18409
+ if (!maskedTypes.includes(type)) {
18410
+ return;
18411
+ }
18412
+ const targetElem = refInputTarget.value;
18413
+ if (!targetElem) {
18414
+ return;
18415
+ }
18416
+ const { laseFocusMasked } = internalData;
18417
+ if (laseFocusMasked && Date.now() - laseFocusMasked < 100) {
18418
+ return;
18419
+ }
18420
+ const dateMaskedFormat = computeDateMaskedFormat.value;
18421
+ const maskChar = computeMaskChar.value;
18422
+ const selectionStart = targetElem.selectionStart || 0;
18423
+ const selectionEnd = targetElem.selectionEnd || 0;
18424
+ const inpValue = targetElem.value;
18425
+ const allMaskedKeys = XEUtils.map(dateMaskedFormat.match(new RegExp(`(${inputMaskedKeys.join('|')})+`, 'g')) || [], fullKey => fullKey[0]);
18426
+ // 如果为空
18427
+ if (!inpValue) {
18428
+ let restValue = dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
18429
+ // 还原值
18430
+ if (isFocus && modelValue) {
18431
+ const chunkNums = (('' + XEUtils.toNumber(modelValue)).match(/\d/g) || []);
18432
+ let useNumIndex = 0;
18433
+ restValue = dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), (txt) => chunkNums[useNumIndex++] || txt);
18434
+ }
18435
+ const firstMaskedKeys = allMaskedKeys[0];
18436
+ const firstSkRest = dateMaskedFormat.match(new RegExp(`${firstMaskedKeys}+`));
18437
+ if (firstSkRest) {
18438
+ evnt.preventDefault();
18439
+ const firstChunkFormat = firstSkRest[0];
18440
+ targetElem.value = restValue;
18441
+ handleInputLabel(restValue, false);
18442
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
18443
+ internalData.laseFocusMasked = Date.now();
18444
+ return;
18445
+ }
18446
+ }
18447
+ // 全选 | 如果无效字符
18448
+ const isAllSelected = !selectionStart && selectionEnd === inpValue.length;
18449
+ const isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
18450
+ if (isAllSelected || isNotMasked) {
18451
+ let restValue = '';
18452
+ // 还原值
18453
+ if (isNotMasked && inpValue) {
18454
+ const chunkNums = inpValue.match(/\d/g) || [];
18455
+ let useNumIndex = 0;
18456
+ restValue = dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), () => chunkNums[useNumIndex++] || maskChar);
18457
+ }
18458
+ else {
18459
+ dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
18460
+ }
18461
+ const firstMaskedKeys = allMaskedKeys[0];
18462
+ const firstSkRest = dateMaskedFormat.match(new RegExp(`${firstMaskedKeys}+`));
18463
+ if (firstSkRest) {
18464
+ evnt.preventDefault();
18465
+ const firstChunkFormat = firstSkRest[0];
18466
+ targetElem.value = restValue;
18467
+ handleInputLabel(restValue, false);
18468
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
18469
+ internalData.laseFocusMasked = Date.now();
18470
+ return;
18471
+ }
18472
+ }
18473
+ // 是否选择数字块
18474
+ let selectKey = dateMaskedFormat[selectionStart];
18475
+ if (!parseInputKayMaps[selectKey]) {
18476
+ selectKey = dateMaskedFormat[selectionStart - 1];
18477
+ }
18478
+ if (selectKey) {
18479
+ evnt.preventDefault();
18480
+ const skRest = dateMaskedFormat.match(new RegExp(selectKey + '+'));
18481
+ if (skRest) {
18482
+ const chunkFormat = skRest[0] || '';
18483
+ const chunkStartIndex = skRest.index || 0;
18484
+ const chunkEndIndex = chunkStartIndex + chunkFormat.length;
18485
+ targetElem.setSelectionRange(chunkStartIndex, chunkEndIndex);
18486
+ internalData.isTriggerMasked = true;
18487
+ internalData.laseFocusMasked = Date.now();
18488
+ }
18489
+ }
18490
+ };
17998
18491
  const blurEvent = (evnt) => {
17999
18492
  const $datePanel = refDatePanel.value;
18000
18493
  const { inputValue } = reactData;
@@ -18004,10 +18497,14 @@ var VxeDatePickerComponent = defineVxeComponent({
18004
18497
  handleChange(value, evnt);
18005
18498
  }
18006
18499
  if (!reactData.visiblePanel) {
18500
+ const { inputLabel } = internalData;
18007
18501
  reactData.isActivated = false;
18008
18502
  // 未打开面板时才校验
18009
18503
  if ($datePanel) {
18010
- $datePanel.checkValue(reactData.inputLabel);
18504
+ $datePanel.checkValue(inputLabel);
18505
+ }
18506
+ else {
18507
+ afterCheckValue(inputLabel);
18011
18508
  }
18012
18509
  }
18013
18510
  dispatchEvent('blur', { value }, evnt);
@@ -18016,7 +18513,81 @@ var VxeDatePickerComponent = defineVxeComponent({
18016
18513
  $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
18017
18514
  }
18018
18515
  };
18516
+ const focusEvent = (evnt) => {
18517
+ const { multiple, editable, maskedConfig } = props;
18518
+ const maskedOpts = computeMaskedOpts.value;
18519
+ const popupOpts = computePopupOpts.value;
18520
+ const { trigger } = popupOpts;
18521
+ reactData.isActivated = true;
18522
+ if (!trigger || trigger === 'default') {
18523
+ datePickerOpenEvent(evnt);
18524
+ setTimeout(() => {
18525
+ if (editable && !multiple && (isEnableConf(maskedConfig) || maskedOpts.enabled)) {
18526
+ handleMaskedSelectedDate(evnt, true);
18527
+ }
18528
+ }, 15);
18529
+ }
18530
+ else if (trigger === 'icon') {
18531
+ hidePanel();
18532
+ setTimeout(() => {
18533
+ if (editable && !multiple && (isEnableConf(maskedConfig) || maskedOpts.enabled)) {
18534
+ handleMaskedSelectedDate(evnt, true);
18535
+ }
18536
+ }, 15);
18537
+ }
18538
+ else {
18539
+ if (editable && !multiple && (isEnableConf(maskedConfig) || maskedOpts.enabled)) {
18540
+ handleMaskedSelectedDate(evnt, true);
18541
+ }
18542
+ }
18543
+ triggerEvent(evnt);
18544
+ };
18545
+ const clickEvent = (evnt) => {
18546
+ const { editable, maskedConfig } = props;
18547
+ const maskedOpts = computeMaskedOpts.value;
18548
+ if (editable && (isEnableConf(maskedConfig) || maskedOpts.enabled)) {
18549
+ handleMaskedSelectedDate(evnt);
18550
+ }
18551
+ triggerEvent(evnt);
18552
+ };
18019
18553
  const keydownEvent = (evnt) => {
18554
+ const { type, editable, maskedConfig } = props;
18555
+ const { visiblePanel } = reactData;
18556
+ const maskedOpts = computeMaskedOpts.value;
18557
+ const isUpArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_UP);
18558
+ const isDwArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_DOWN);
18559
+ const isLtArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_LEFT);
18560
+ const isRtArrow = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ARROW_RIGHT);
18561
+ const isEnter = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER);
18562
+ if (editable) {
18563
+ if (isEnter) {
18564
+ const $datePanel = refDatePanel.value;
18565
+ const { inputLabel } = internalData;
18566
+ const targetElem = refInputTarget.value;
18567
+ if (visiblePanel) {
18568
+ hidePanel();
18569
+ }
18570
+ if ($datePanel) {
18571
+ $datePanel.checkValue(inputLabel);
18572
+ }
18573
+ else {
18574
+ afterCheckValue(inputLabel);
18575
+ }
18576
+ if (targetElem) {
18577
+ targetElem.blur();
18578
+ }
18579
+ }
18580
+ else if (maskedTypes.includes(type)) {
18581
+ if (isEnableConf(maskedConfig) || maskedOpts.enabled) {
18582
+ if (maskedOpts.isArrow && (isUpArrow || isDwArrow || isLtArrow || isRtArrow)) {
18583
+ handleArrowInputDate(evnt, isUpArrow, isDwArrow, isLtArrow, isRtArrow);
18584
+ }
18585
+ else if (maskedOpts.isMasked) {
18586
+ handleMaskedInputDate(evnt);
18587
+ }
18588
+ }
18589
+ }
18590
+ }
18020
18591
  triggerEvent(evnt);
18021
18592
  };
18022
18593
  const keyupEvent = (evnt) => {
@@ -18044,7 +18615,7 @@ var VxeDatePickerComponent = defineVxeComponent({
18044
18615
  dispatchEvent('confirm', params, params.$event);
18045
18616
  };
18046
18617
  const panelRevertEvent = (params) => {
18047
- reactData.inputLabel = params.label;
18618
+ handleInputLabel(params.label, true);
18048
18619
  };
18049
18620
  // 全局事件
18050
18621
  const handleGlobalMousedownEvent = (evnt) => {
@@ -18054,25 +18625,34 @@ var VxeDatePickerComponent = defineVxeComponent({
18054
18625
  const panelWrapperElem = refPanelWrapper.value;
18055
18626
  const isDisabled = computeIsDisabled.value;
18056
18627
  if (!isDisabled && isActivated) {
18057
- reactData.isActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelWrapperElem).flag;
18058
- if (!reactData.isActivated) {
18628
+ const currActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelWrapperElem).flag;
18629
+ if (currActivated !== isActivated) {
18630
+ reactData.isActivated = currActivated;
18631
+ }
18632
+ if (!currActivated) {
18059
18633
  if (visiblePanel) {
18060
18634
  hidePanel();
18635
+ const { inputLabel } = internalData;
18061
18636
  if ($datePanel) {
18062
- $datePanel.checkValue(reactData.inputLabel);
18637
+ $datePanel.checkValue(inputLabel);
18638
+ }
18639
+ else {
18640
+ afterCheckValue(inputLabel);
18063
18641
  }
18064
18642
  }
18065
18643
  }
18066
18644
  }
18067
18645
  };
18068
18646
  const handleGlobalKeydownEvent = (evnt) => {
18069
- const { visiblePanel } = reactData;
18647
+ const { isActivated, visiblePanel } = reactData;
18070
18648
  const isDisabled = computeIsDisabled.value;
18071
18649
  if (!isDisabled) {
18072
18650
  const isTab = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.TAB);
18073
18651
  const isEsc = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ESCAPE);
18074
18652
  if (isTab) {
18075
- reactData.isActivated = false;
18653
+ if (isActivated) {
18654
+ reactData.isActivated = false;
18655
+ }
18076
18656
  }
18077
18657
  if (visiblePanel) {
18078
18658
  if (isEsc || isTab) {
@@ -18107,7 +18687,7 @@ var VxeDatePickerComponent = defineVxeComponent({
18107
18687
  }
18108
18688
  if (visiblePanel || isActivated) {
18109
18689
  if ($datePanel) {
18110
- $datePanel.checkValue(reactData.inputLabel);
18690
+ $datePanel.checkValue(internalData.inputLabel);
18111
18691
  }
18112
18692
  const targetElem = refInputTarget.value;
18113
18693
  if (targetElem) {
@@ -18137,6 +18717,9 @@ var VxeDatePickerComponent = defineVxeComponent({
18137
18717
  const { panelIndex } = reactData;
18138
18718
  const targetElem = refInputTarget.value;
18139
18719
  const panelElem = refInputPanel.value;
18720
+ if (!panelElem) {
18721
+ return nextTick();
18722
+ }
18140
18723
  const btnTransfer = computeBtnTransfer.value;
18141
18724
  const popupOpts = computePopupOpts.value;
18142
18725
  const handleStyle = () => {
@@ -18184,15 +18767,18 @@ var VxeDatePickerComponent = defineVxeComponent({
18184
18767
  }
18185
18768
  };
18186
18769
  const clickIconEvent = (evnt) => {
18770
+ const { visiblePanel } = reactData;
18187
18771
  const popupOpts = computePopupOpts.value;
18188
18772
  const { trigger } = popupOpts;
18189
18773
  if (!trigger || trigger === 'default' || trigger === 'icon') {
18190
- datePickerOpenEvent(evnt);
18774
+ if (visiblePanel) {
18775
+ hidePanel();
18776
+ }
18777
+ else {
18778
+ datePickerOpenEvent(evnt);
18779
+ }
18191
18780
  }
18192
18781
  };
18193
- const clickEvent = (evnt) => {
18194
- triggerEvent(evnt);
18195
- };
18196
18782
  const handleShortcutEvent = ({ option, $event }) => {
18197
18783
  const { type } = props;
18198
18784
  const { inputValue } = reactData;
@@ -18231,7 +18817,7 @@ var VxeDatePickerComponent = defineVxeComponent({
18231
18817
  break;
18232
18818
  }
18233
18819
  default:
18234
- errLog('vxe.error.notCommands', [`[date-picker] ${code}`]);
18820
+ errLog$e('vxe.error.notCommands', [code]);
18235
18821
  break;
18236
18822
  }
18237
18823
  }
@@ -18302,6 +18888,10 @@ var VxeDatePickerComponent = defineVxeComponent({
18302
18888
  return renderEmptyElement($xeDatePicker);
18303
18889
  };
18304
18890
  const renderPanel = () => {
18891
+ const popupOpts = computePopupOpts.value;
18892
+ if (popupOpts.enabled === false) {
18893
+ return renderEmptyElement($xeDatePicker);
18894
+ }
18305
18895
  const { type, multiple, showClearButton, showConfirmButton } = props;
18306
18896
  const { initialized, isAniVisible, visiblePanel, panelPlacement, panelStyle, inputValue } = reactData;
18307
18897
  const vSize = computeSize.value;
@@ -18311,7 +18901,6 @@ var VxeDatePickerComponent = defineVxeComponent({
18311
18901
  const isDateTimeType = computeIsDateTimeType.value;
18312
18902
  const shortcutList = computeShortcutList.value;
18313
18903
  const timeOpts = computeTimeOpts.value;
18314
- const popupOpts = computePopupOpts.value;
18315
18904
  const { position } = shortcutOpts;
18316
18905
  const headerSlot = slots.header;
18317
18906
  const footerSlot = slots.footer;
@@ -18513,7 +19102,8 @@ var VxeDatePickerComponent = defineVxeComponent({
18513
19102
  };
18514
19103
  const renderVN = () => {
18515
19104
  const { className, type, name, autoComplete } = props;
18516
- const { inputValue, inputLabel, visiblePanel, isActivated } = reactData;
19105
+ const { inputValue, visiblePanel, isActivated, labelFlag } = reactData;
19106
+ const { inputLabel } = internalData;
18517
19107
  const vSize = computeSize.value;
18518
19108
  const isDisabled = computeIsDisabled.value;
18519
19109
  const formReadonly = computeFormReadonly.value;
@@ -18549,7 +19139,7 @@ var VxeDatePickerComponent = defineVxeComponent({
18549
19139
  h('input', {
18550
19140
  ref: refInputTarget,
18551
19141
  class: 'vxe-date-picker--inner',
18552
- value: inputLabel,
19142
+ value: labelFlag ? inputLabel : '',
18553
19143
  name,
18554
19144
  type: 'text',
18555
19145
  placeholder: inpPlaceholder,
@@ -18571,7 +19161,7 @@ var VxeDatePickerComponent = defineVxeComponent({
18571
19161
  ]);
18572
19162
  };
18573
19163
  watch(computePanelLabel, (val) => {
18574
- reactData.inputLabel = val;
19164
+ handleInputLabel(val, true);
18575
19165
  });
18576
19166
  watch(() => props.modelValue, () => {
18577
19167
  updateModelValue();
@@ -18583,6 +19173,17 @@ var VxeDatePickerComponent = defineVxeComponent({
18583
19173
  globalEvents.on($xeDatePicker, 'blur', handleGlobalBlurEvent);
18584
19174
  globalEvents.on($xeDatePicker, 'resize', handleGlobalResizeEvent);
18585
19175
  });
19176
+ onMounted(() => {
19177
+ const { type, multiple, maskedConfig } = props;
19178
+ if (isEnableConf(maskedConfig)) {
19179
+ if (multiple) {
19180
+ errLog$e('vxe.error.notSupportProp', ['multiple', 'control-config.enabled=true', 'control-config.enabled=false']);
19181
+ }
19182
+ if (!maskedTypes.includes(type)) {
19183
+ warnLog$8('vxe.error.notSupportProp', ['control-config.enabled=true', `type=${type}`, `type=${maskedTypes.join('|')}`]);
19184
+ }
19185
+ }
19186
+ });
18586
19187
  onUnmounted(() => {
18587
19188
  globalEvents.off($xeDatePicker, 'mousewheel');
18588
19189
  globalEvents.off($xeDatePicker, 'mousedown');
@@ -18608,6 +19209,7 @@ dynamicApp.use(VxeDatePicker);
18608
19209
  VxeUI.component(VxeDatePickerComponent);
18609
19210
  const DatePicker = VxeDatePicker;
18610
19211
 
19212
+ const { errLog: errLog$d } = createComponentLog('date-range-picker');
18611
19213
  var VxeDateRangePickerComponent = defineVxeComponent({
18612
19214
  name: 'VxeDateRangePicker',
18613
19215
  props: {
@@ -19058,6 +19660,9 @@ var VxeDateRangePickerComponent = defineVxeComponent({
19058
19660
  if (!trigger || trigger === 'default') {
19059
19661
  dateRangePickerOpenEvent(evnt);
19060
19662
  }
19663
+ else if (trigger === 'icon') {
19664
+ hidePanel();
19665
+ }
19061
19666
  triggerEvent(evnt);
19062
19667
  };
19063
19668
  const clickPrefixEvent = (evnt) => {
@@ -19369,6 +19974,9 @@ var VxeDateRangePickerComponent = defineVxeComponent({
19369
19974
  const { panelIndex } = reactData;
19370
19975
  const targetElem = refInputTarget.value;
19371
19976
  const panelElem = refInputPanel.value;
19977
+ if (!panelElem) {
19978
+ return nextTick();
19979
+ }
19372
19980
  const btnTransfer = computeBtnTransfer.value;
19373
19981
  const popupOpts = computePopupOpts.value;
19374
19982
  const handleStyle = () => {
@@ -19417,10 +20025,16 @@ var VxeDateRangePickerComponent = defineVxeComponent({
19417
20025
  }
19418
20026
  };
19419
20027
  const clickIconEvent = (evnt) => {
20028
+ const { visiblePanel } = reactData;
19420
20029
  const popupOpts = computePopupOpts.value;
19421
20030
  const { trigger } = popupOpts;
19422
20031
  if (!trigger || trigger === 'default' || trigger === 'icon') {
19423
- dateRangePickerOpenEvent(evnt);
20032
+ if (visiblePanel) {
20033
+ hidePanel();
20034
+ }
20035
+ else {
20036
+ dateRangePickerOpenEvent(evnt);
20037
+ }
19424
20038
  }
19425
20039
  };
19426
20040
  const clickEvent = (evnt) => {
@@ -19473,7 +20087,7 @@ var VxeDateRangePickerComponent = defineVxeComponent({
19473
20087
  break;
19474
20088
  }
19475
20089
  default:
19476
- errLog('vxe.error.notCommands', [`[date-range-picker] ${code}`]);
20090
+ errLog$d('vxe.error.notCommands', [code]);
19477
20091
  break;
19478
20092
  }
19479
20093
  }
@@ -19546,6 +20160,10 @@ var VxeDateRangePickerComponent = defineVxeComponent({
19546
20160
  return renderEmptyElement($xeDateRangePicker);
19547
20161
  };
19548
20162
  const renderPanel = () => {
20163
+ const popupOpts = computePopupOpts.value;
20164
+ if (popupOpts.enabled === false) {
20165
+ return renderEmptyElement($xeDateRangePicker);
20166
+ }
19549
20167
  const { type, separator, autoClose, showConfirmButton, showClearButton } = props;
19550
20168
  const { initialized, isAniVisible, visiblePanel, panelPlacement, panelStyle, startValue, endValue } = reactData;
19551
20169
  const vSize = computeSize.value;
@@ -19558,7 +20176,6 @@ var VxeDateRangePickerComponent = defineVxeComponent({
19558
20176
  const defaultDates = computeDefaultDates.value;
19559
20177
  const defaultTimes = computeDefaultTimes.value;
19560
20178
  const timeOpts = computeTimeOpts.value;
19561
- const popupOpts = computePopupOpts.value;
19562
20179
  const { startLabel, endLabel } = panelLabelObj;
19563
20180
  const { position } = shortcutOpts;
19564
20181
  const headerSlot = slots.header;
@@ -19998,6 +20615,7 @@ var VxeDrawerComponent = defineVxeComponent({
19998
20615
  type: Boolean,
19999
20616
  default: () => getConfig$3().drawer.showTitleOverflow
20000
20617
  },
20618
+ preload: Boolean,
20001
20619
  width: [Number, String],
20002
20620
  height: [Number, String],
20003
20621
  resize: {
@@ -20504,6 +21122,7 @@ var VxeDrawerComponent = defineVxeComponent({
20504
21122
  }
20505
21123
  });
20506
21124
  onMounted(() => {
21125
+ reactData.initialized = !!props.preload;
20507
21126
  nextTick(() => {
20508
21127
  if (props.modelValue) {
20509
21128
  openDrawer();
@@ -20673,6 +21292,7 @@ dynamicApp.use(VxeEmpty);
20673
21292
  VxeUI.component(VxeEmptyComponent);
20674
21293
  const Empty = VxeEmpty;
20675
21294
 
21295
+ const { errLog: errLog$c } = createComponentLog('form');
20676
21296
  class ItemInfo {
20677
21297
  constructor($xeForm, item) {
20678
21298
  const { field, itemRender, formatter } = item;
@@ -20680,22 +21300,22 @@ class ItemInfo {
20680
21300
  if (XEUtils.isString(formatter)) {
20681
21301
  const gFormatOpts = formats.get(formatter);
20682
21302
  if (!gFormatOpts || !gFormatOpts.formItemFormatMethod) {
20683
- errLog('vxe.error.notFormats', [`[form] ${formatter}`]);
21303
+ errLog$c('vxe.error.notFormats', [formatter]);
20684
21304
  }
20685
21305
  }
20686
21306
  else if (XEUtils.isArray(formatter)) {
20687
21307
  const gFormatOpts = formats.get(formatter[0]);
20688
21308
  if (!gFormatOpts || !gFormatOpts.formItemFormatMethod) {
20689
- errLog('vxe.error.notFormats', [`[form] ${formatter[0]}`]);
21309
+ errLog$c('vxe.error.notFormats', [formatter[0]]);
20690
21310
  }
20691
21311
  }
20692
21312
  }
20693
21313
  if (field && itemRender) {
20694
21314
  if (itemRender.startField && `${itemRender.startField}`.indexOf(field) >= 0) {
20695
- errLog('vxe.error.modelConflicts', [`[form] field=${field}`, `item-render.startField=${itemRender.startField}`]);
21315
+ errLog$c('vxe.error.modelConflicts', [`field=${field}`, `item-render.startField=${itemRender.startField}`]);
20696
21316
  }
20697
21317
  if (itemRender.endField && `${itemRender.endField}`.indexOf(field) >= 0) {
20698
- errLog('vxe.error.modelConflicts', [`[form] field=${field}`, `item-render.endField=${itemRender.endField}`]);
21318
+ errLog$c('vxe.error.modelConflicts', [`field=${field}`, `item-render.endField=${itemRender.endField}`]);
20699
21319
  }
20700
21320
  }
20701
21321
  Object.assign(this, {
@@ -21419,6 +22039,7 @@ const VxeFormConfigItem = defineVxeComponent({
21419
22039
  }
21420
22040
  });
21421
22041
 
22042
+ const { errLog: errLog$b } = createComponentLog('form');
21422
22043
  const componentDefaultModelProp = 'modelValue';
21423
22044
  /**
21424
22045
  * 已废弃
@@ -21505,7 +22126,7 @@ function getComponentOns(renderOpts, params, eFns, eventOns) {
21505
22126
  XEUtils.objectEach(events, (func, key) => {
21506
22127
  ons[getOnName(key)] = function (...args) {
21507
22128
  if (!XEUtils.isFunction(func)) {
21508
- errLog('vxe.error.errFunc', [`[form] ${func}`]);
22129
+ errLog$b('vxe.error.errFunc', [func]);
21509
22130
  }
21510
22131
  func(params, ...args);
21511
22132
  };
@@ -21932,6 +22553,7 @@ renderer.mixin({
21932
22553
  // 以上已废弃
21933
22554
  });
21934
22555
 
22556
+ const { warnLog: warnLog$7, errLog: errLog$a } = createComponentLog('form');
21935
22557
  class Rule {
21936
22558
  constructor(rule) {
21937
22559
  Object.assign(this, {
@@ -22052,7 +22674,7 @@ function checkRuleStatus(rule, data, val) {
22052
22674
  }
22053
22675
  return true;
22054
22676
  }
22055
- function createReactData$6() {
22677
+ function createReactData$9() {
22056
22678
  return {
22057
22679
  collapseAll: false,
22058
22680
  staticItems: [],
@@ -22169,7 +22791,7 @@ var VxeFormComponent = defineVxeComponent({
22169
22791
  const $xeGrid = inject('$xeGrid', null);
22170
22792
  const xID = XEUtils.uniqueId();
22171
22793
  const { computeSize } = useSize(props);
22172
- const reactData = reactive(createReactData$6());
22794
+ const reactData = reactive(createReactData$9());
22173
22795
  const internalData = createInternalData$8();
22174
22796
  const refElem = ref();
22175
22797
  const refTooltip = ref();
@@ -22240,7 +22862,7 @@ var VxeFormComponent = defineVxeComponent({
22240
22862
  XEUtils.each(item.slots, (func) => {
22241
22863
  if (!XEUtils.isFunction(func)) {
22242
22864
  if (!slots[func]) {
22243
- errLog('vxe.error.notSlot', [`[form] ${func}`]);
22865
+ errLog$a('vxe.error.notSlot', [func]);
22244
22866
  }
22245
22867
  }
22246
22868
  });
@@ -22463,11 +23085,11 @@ var VxeFormComponent = defineVxeComponent({
22463
23085
  customValid = validatorMethod(validParams);
22464
23086
  }
22465
23087
  else {
22466
- warnLog('vxe.error.notValidators', [`[form] ${validator}`]);
23088
+ warnLog$7('vxe.error.notValidators', [validator]);
22467
23089
  }
22468
23090
  }
22469
23091
  else {
22470
- errLog('vxe.error.notValidators', [`[form] ${validator}`]);
23092
+ errLog$a('vxe.error.notValidators', [validator]);
22471
23093
  }
22472
23094
  }
22473
23095
  else {
@@ -22857,7 +23479,7 @@ var VxeFormComponent = defineVxeComponent({
22857
23479
  onMounted(() => {
22858
23480
  nextTick(() => {
22859
23481
  if (props.customLayout && props.items) {
22860
- errLog('vxe.error.errConflicts', ['[form] custom-layout', 'items']);
23482
+ errLog$a('vxe.error.errConflicts', ['custom-layout', 'items']);
22861
23483
  }
22862
23484
  });
22863
23485
  globalEvents.on($xeForm, 'resize', handleGlobalResizeEvent);
@@ -24274,7 +24896,7 @@ function createInternalData$7() {
24274
24896
  // mdTime: 0
24275
24897
  };
24276
24898
  }
24277
- function createReactData$5() {
24899
+ function createReactData$8() {
24278
24900
  return {};
24279
24901
  }
24280
24902
  var VxeImageComponent = defineVxeComponent({
@@ -24334,7 +24956,7 @@ var VxeImageComponent = defineVxeComponent({
24334
24956
  const refElem = ref();
24335
24957
  const { computeSize } = useSize(props);
24336
24958
  const internalData = createInternalData$7();
24337
- const reactData = reactive(createReactData$5());
24959
+ const reactData = reactive(createReactData$8());
24338
24960
  const refMaps = {
24339
24961
  refElem
24340
24962
  };
@@ -24520,7 +25142,7 @@ var VxeImageComponent = defineVxeComponent({
24520
25142
  ]);
24521
25143
  };
24522
25144
  onBeforeUnmount(() => {
24523
- XEUtils.assign(reactData, createReactData$5());
25145
+ XEUtils.assign(reactData, createReactData$8());
24524
25146
  XEUtils.assign(internalData, createInternalData$7());
24525
25147
  });
24526
25148
  $xeImage.renderVN = renderVN;
@@ -24813,7 +25435,7 @@ const LayoutAside = VxeLayoutAside;
24813
25435
  function createInternalData$6() {
24814
25436
  return {};
24815
25437
  }
24816
- function createReactData$4() {
25438
+ function createReactData$7() {
24817
25439
  return {};
24818
25440
  }
24819
25441
  var VxeLayoutBodyComponent = defineVxeComponent({
@@ -24839,7 +25461,7 @@ var VxeLayoutBodyComponent = defineVxeComponent({
24839
25461
  const refElem = ref();
24840
25462
  const { computeSize } = useSize(props);
24841
25463
  const internalData = createInternalData$6();
24842
- const reactData = reactive(createReactData$4());
25464
+ const reactData = reactive(createReactData$7());
24843
25465
  const refMaps = {
24844
25466
  refElem
24845
25467
  };
@@ -25263,6 +25885,7 @@ dynamicApp.use(VxeList);
25263
25885
  VxeUI.component(VxeListComponent);
25264
25886
  const List = VxeList;
25265
25887
 
25888
+ const { errLog: errLog$9 } = createComponentLog('menu');
25266
25889
  const { menus: menus$1, getConfig: getConfig$1, getIcon: getIcon$1 } = VxeUI;
25267
25890
  var VxeMenuComponent = defineVxeComponent({
25268
25891
  name: 'VxeMenu',
@@ -25749,7 +26372,7 @@ var VxeMenuComponent = defineVxeComponent({
25749
26372
  const { menuConfig } = props;
25750
26373
  const VxeUIContextMenu = VxeUI.getComponent('VxeContextMenu');
25751
26374
  if (menuConfig && !VxeUIContextMenu) {
25752
- errLog('vxe.error.reqComp', ['vxe-context-menu']);
26375
+ errLog$9('vxe.error.reqComp', ['vxe-context-menu']);
25753
26376
  }
25754
26377
  globalEvents.on($xeMenu, 'resize', updateCollapseStyle);
25755
26378
  updateCollapseStyle();
@@ -25783,6 +26406,7 @@ dynamicApp.use(VxeMenu);
25783
26406
  VxeUI.component(VxeMenuComponent);
25784
26407
  const Menu = VxeMenu;
25785
26408
 
26409
+ const { warnLog: warnLog$6, errLog: errLog$8 } = createComponentLog('modal');
25786
26410
  const allActiveModals = [];
25787
26411
  const msgQueue = [];
25788
26412
  const notifyQueue = [];
@@ -25869,6 +26493,7 @@ var VxeModalComponent = defineVxeComponent({
25869
26493
  type: Boolean,
25870
26494
  default: () => getConfig$3().modal.showFooter
25871
26495
  },
26496
+ preload: Boolean,
25872
26497
  showZoom: Boolean,
25873
26498
  zoomConfig: Object,
25874
26499
  showMaximize: {
@@ -27168,11 +27793,12 @@ var VxeModalComponent = defineVxeComponent({
27168
27793
  });
27169
27794
  onMounted(() => {
27170
27795
  if (props.type === 'modal' && props.showFooter && !(props.showConfirmButton || props.showCancelButton || slots.footer)) {
27171
- warnLog('vxe.modal.footPropErr');
27796
+ warnLog$6('vxe.modal.footPropErr');
27172
27797
  }
27798
+ reactData.initialized = !!props.preload;
27173
27799
  nextTick(() => {
27174
27800
  if (props.storage && !props.id) {
27175
- errLog('vxe.error.reqProp', ['[modal] id']);
27801
+ errLog$8('vxe.error.reqProp', ['id']);
27176
27802
  }
27177
27803
  if (props.modelValue) {
27178
27804
  openModal();
@@ -27624,12 +28250,34 @@ dynamicApp.use(VxeOption);
27624
28250
  VxeUI.component(VxeOptionComponent);
27625
28251
  const Option = VxeOption;
27626
28252
 
28253
+ const { errLog: errLog$7 } = createComponentLog('select');
27627
28254
  function isOptionVisible(option) {
27628
28255
  return option.visible !== false;
27629
28256
  }
27630
28257
  function getOptUniqueId$1() {
27631
28258
  return XEUtils.uniqueId('opt_');
27632
28259
  }
28260
+ function createReactData$6() {
28261
+ return {
28262
+ initialized: false,
28263
+ scrollYLoad: false,
28264
+ bodyHeight: 0,
28265
+ topSpaceHeight: 0,
28266
+ optList: [],
28267
+ staticOptions: [],
28268
+ reactFlag: 0,
28269
+ currentOption: null,
28270
+ searchValue: '',
28271
+ searchLoading: false,
28272
+ panelIndex: 0,
28273
+ panelStyle: {},
28274
+ panelPlacement: null,
28275
+ triggerFocusPanel: false,
28276
+ visiblePanel: false,
28277
+ isAniVisible: false,
28278
+ isActivated: false
28279
+ };
28280
+ }
27633
28281
  function createInternalData$5() {
27634
28282
  return {
27635
28283
  // isLoaded: false,
@@ -27805,25 +28453,7 @@ var VxeSelectComponent = defineVxeComponent({
27805
28453
  const refOptionPanel = ref();
27806
28454
  const refVirtualBody = ref();
27807
28455
  const { computeSize } = useSize(props);
27808
- const reactData = reactive({
27809
- initialized: false,
27810
- scrollYLoad: false,
27811
- bodyHeight: 0,
27812
- topSpaceHeight: 0,
27813
- optList: [],
27814
- staticOptions: [],
27815
- reactFlag: 0,
27816
- currentOption: null,
27817
- searchValue: '',
27818
- searchLoading: false,
27819
- panelIndex: 0,
27820
- panelStyle: {},
27821
- panelPlacement: null,
27822
- triggerFocusPanel: false,
27823
- visiblePanel: false,
27824
- isAniVisible: false,
27825
- isActivated: false
27826
- });
28456
+ const reactData = reactive(createReactData$6());
27827
28457
  const internalData = createInternalData$5();
27828
28458
  const refMaps = {
27829
28459
  refElem
@@ -28855,7 +29485,7 @@ var VxeSelectComponent = defineVxeComponent({
28855
29485
  });
28856
29486
  }
28857
29487
  else {
28858
- errLog('vxe.error.notConflictProp', ['default-config.selectMode=all', 'multiple=true']);
29488
+ errLog$7('vxe.error.notConflictProp', ['default-config.selectMode=all', 'multiple=true']);
28859
29489
  }
28860
29490
  }
28861
29491
  else if (selectMode === 'first' || selectMode === 'last') {
@@ -29345,6 +29975,7 @@ var VxeSelectComponent = defineVxeComponent({
29345
29975
  globalEvents.off($xeSelect, 'keydown');
29346
29976
  globalEvents.off($xeSelect, 'blur');
29347
29977
  globalEvents.off($xeSelect, 'resize');
29978
+ XEUtils.assign(reactData, createReactData$6());
29348
29979
  XEUtils.assign(internalData, createInternalData$5());
29349
29980
  });
29350
29981
  provide('$xeSelect', $xeSelect);
@@ -29356,6 +29987,7 @@ var VxeSelectComponent = defineVxeComponent({
29356
29987
  }
29357
29988
  });
29358
29989
 
29990
+ const { warnLog: warnLog$5, errLog: errLog$6 } = createComponentLog('pager');
29359
29991
  var VxePagerComponent = defineVxeComponent({
29360
29992
  name: 'VxePager',
29361
29993
  props: {
@@ -29957,7 +30589,7 @@ var VxePagerComponent = defineVxeComponent({
29957
30589
  * @deprecated
29958
30590
  */
29959
30591
  jumpPage(currentPage) {
29960
- warnLog('vxe.error.delFunc', ['[pager] jumpPage', 'setCurrentPage']);
30592
+ warnLog$5('vxe.error.delFunc', ['jumpPage', 'setCurrentPage']);
29961
30593
  return $xePager.setCurrentPage(currentPage);
29962
30594
  }
29963
30595
  };
@@ -30028,7 +30660,7 @@ var VxePagerComponent = defineVxeComponent({
30028
30660
  childNodes.push(renderFn());
30029
30661
  }
30030
30662
  else {
30031
- errLog('vxe.error.notProp', [`[pager] layouts -> ${name}`]);
30663
+ errLog$6('vxe.error.notProp', [`layouts -> ${name}`]);
30032
30664
  }
30033
30665
  });
30034
30666
  if (slots.right) {
@@ -30554,7 +31186,7 @@ function handlePrint(opts, printHtml = '') {
30554
31186
  if (styleUrls && styleUrls.length) {
30555
31187
  styleUrls.forEach(url => {
30556
31188
  if (!/.css$/.test(url)) {
30557
- warnLog('vxe.error.errProp', [url, `${url}.css`]);
31189
+ warnLog$b('vxe.error.errProp', [url, `${url}.css`]);
30558
31190
  }
30559
31191
  });
30560
31192
  }
@@ -31783,6 +32415,9 @@ dynamicApp.use(VxeRadioButton);
31783
32415
  VxeUI.component(VxeRadioButtonComponent);
31784
32416
  const RadioButton = VxeRadioButton;
31785
32417
 
32418
+ function createReactData$5() {
32419
+ return {};
32420
+ }
31786
32421
  function createInternalData$4() {
31787
32422
  return {
31788
32423
  // isLoaded: false
@@ -31824,7 +32459,7 @@ var VxeRadioGroupComponent = defineVxeComponent({
31824
32459
  const formItemInfo = inject('xeFormItemInfo', null);
31825
32460
  const xID = XEUtils.uniqueId();
31826
32461
  const { computeSize } = useSize(props);
31827
- const reactData = reactive({});
32462
+ const reactData = reactive(createReactData$5());
31828
32463
  const internalData = createInternalData$4();
31829
32464
  const computeIsReadonly = computed(() => {
31830
32465
  const { readonly } = props;
@@ -31961,6 +32596,7 @@ var VxeRadioGroupComponent = defineVxeComponent({
31961
32596
  });
31962
32597
  });
31963
32598
  onUnmounted(() => {
32599
+ XEUtils.assign(reactData, createReactData$5());
31964
32600
  XEUtils.assign(internalData, createInternalData$4());
31965
32601
  });
31966
32602
  provide('$xeRadioGroup', $xeRadioGroup);
@@ -32346,7 +32982,7 @@ dynamicApp.use(VxeRow);
32346
32982
  VxeUI.component(VxeRowComponent);
32347
32983
  const Row = VxeRow;
32348
32984
 
32349
- function createReactData$3() {
32985
+ function createReactData$4() {
32350
32986
  return {
32351
32987
  groupName: XEUtils.uniqueId('xe_group_'),
32352
32988
  selectStyle: {
@@ -32387,7 +33023,7 @@ var VxeSegmentedComponent = defineVxeComponent({
32387
33023
  const refElem = ref();
32388
33024
  const refWrapperElem = ref();
32389
33025
  const refSelectedElem = ref();
32390
- const reactData = reactive(createReactData$3());
33026
+ const reactData = reactive(createReactData$4());
32391
33027
  const refMaps = {
32392
33028
  refElem
32393
33029
  };
@@ -32560,7 +33196,7 @@ var VxeSegmentedComponent = defineVxeComponent({
32560
33196
  updateStyle();
32561
33197
  });
32562
33198
  onBeforeUnmount(() => {
32563
- XEUtils.assign(reactData, createReactData$3());
33199
+ XEUtils.assign(reactData, createReactData$4());
32564
33200
  });
32565
33201
  $xeSegmented.renderVN = renderVN;
32566
33202
  return $xeSegmented;
@@ -32588,6 +33224,7 @@ dynamicApp.use(VxeSelect);
32588
33224
  VxeUI.component(VxeSelectComponent);
32589
33225
  const Select = VxeSelect;
32590
33226
 
33227
+ const { warnLog: warnLog$4, errLog: errLog$5 } = createComponentLog('splitter');
32591
33228
  var VxeSplitComponent = defineVxeComponent({
32592
33229
  name: 'VxeSplitter',
32593
33230
  props: {
@@ -32638,7 +33275,8 @@ var VxeSplitComponent = defineVxeComponent({
32638
33275
  staticItems: [],
32639
33276
  itemList: [],
32640
33277
  barWidth: 0,
32641
- barHeight: 0
33278
+ barHeight: 0,
33279
+ resizeFlag: 0
32642
33280
  });
32643
33281
  const internalData = {
32644
33282
  wrapperWidth: 0,
@@ -32786,13 +33424,13 @@ var VxeSplitComponent = defineVxeComponent({
32786
33424
  };
32787
33425
  reactData.itemList = list.map(item => {
32788
33426
  if (item.showAction) {
32789
- warnLog('vxe.error.removeProp', ['[splitter] show-action']);
33427
+ warnLog$4('vxe.error.removeProp', ['show-action']);
32790
33428
  }
32791
33429
  if (item.slots) {
32792
33430
  XEUtils.each(item.slots, (func) => {
32793
33431
  if (!XEUtils.isFunction(func)) {
32794
33432
  if (!slots[func]) {
32795
- errLog('vxe.error.notSlot', [`[splitter] ${func}`]);
33433
+ errLog$5('vxe.error.notSlot', [func]);
32796
33434
  }
32797
33435
  }
32798
33436
  });
@@ -32802,10 +33440,10 @@ var VxeSplitComponent = defineVxeComponent({
32802
33440
  });
32803
33441
  });
32804
33442
  if (staticItems.length) {
32805
- errLog('vxe.error.errConflicts', ['<vxe-splitter-panel ...>', 'items']);
33443
+ errLog$5('vxe.error.errConflicts', ['<vxe-splitter-panel ...>', 'items']);
32806
33444
  }
32807
33445
  if ((showPrevButton || showNextButton) && reactData.itemList.length > 2) {
32808
- errLog('vxe.error.errConflicts', ['action-config.showPrevButton | action-config.showNextButton', 'Only supports 2 item']);
33446
+ errLog$5('vxe.error.errConflicts', ['action-config.showPrevButton | action-config.showNextButton', 'Only supports 2 item']);
32809
33447
  }
32810
33448
  return recalculate();
32811
33449
  };
@@ -33141,6 +33779,7 @@ var VxeSplitComponent = defineVxeComponent({
33141
33779
  document.onmousemove = (evnt) => {
33142
33780
  evnt.preventDefault();
33143
33781
  handleDrag(evnt);
33782
+ reactData.resizeFlag++;
33144
33783
  };
33145
33784
  document.onmouseup = (evnt) => {
33146
33785
  document.onmousemove = null;
@@ -33152,6 +33791,7 @@ var VxeSplitComponent = defineVxeComponent({
33152
33791
  removeClass(el, 'is--drag');
33153
33792
  dispatchEvent('resize-end', { prevItem, nextItem, offsetHeight: targetOffsetHeight, offsetWidth: targetOffsetWidth }, evnt);
33154
33793
  recalculate();
33794
+ reactData.resizeFlag++;
33155
33795
  };
33156
33796
  if (rsSplitterLineEl) {
33157
33797
  rsSplitterLineEl.style.display = 'block';
@@ -33206,6 +33846,7 @@ var VxeSplitComponent = defineVxeComponent({
33206
33846
  dispatchEvent('toggle-expand', { prevItem, nextItem, expanded, item }, evnt);
33207
33847
  }
33208
33848
  recalculate();
33849
+ reactData.resizeFlag++;
33209
33850
  };
33210
33851
  const handlePrevActionDblclickEvent = (evnt) => {
33211
33852
  const { itemList } = reactData;
@@ -33488,15 +34129,15 @@ var VxeSplitComponent = defineVxeComponent({
33488
34129
  const actionOpts = computeActionOpts.value;
33489
34130
  const { showPrevButton, showNextButton } = actionOpts;
33490
34131
  if (props.items && props.items.length) {
33491
- errLog('vxe.error.errConflicts', ['<vxe-splitter-panel ...>', 'items']);
34132
+ errLog$5('vxe.error.errConflicts', ['<vxe-splitter-panel ...>', 'items']);
33492
34133
  }
33493
34134
  reactData.itemList = val || [];
33494
34135
  if ((showPrevButton || showNextButton) && reactData.itemList.length > 2) {
33495
- errLog('vxe.error.modelConflicts', ['[splitter] action-config.showPrevButton | action-config.showNextButton', '<vxe-splitter-panel ...> Only supports 2 panel']);
34136
+ errLog$5('vxe.error.modelConflicts', ['action-config.showPrevButton | action-config.showNextButton', '<vxe-splitter-panel ...> Only supports 2 panel']);
33496
34137
  }
33497
34138
  reactData.itemList.forEach(item => {
33498
34139
  if (item.showAction) {
33499
- warnLog('vxe.error.removeProp', ['[splitter] showAction']);
34140
+ warnLog$4('vxe.error.removeProp', ['showAction']);
33500
34141
  }
33501
34142
  });
33502
34143
  recalculate();
@@ -33515,7 +34156,7 @@ var VxeSplitComponent = defineVxeComponent({
33515
34156
  }
33516
34157
  const actionOpts = computeActionOpts.value;
33517
34158
  if (actionOpts.direction) {
33518
- errLog('vxe.error.delProp', ['[splitter] action-config.direction', 'action-config.showPrevButton | action-config.showNextButton']);
34159
+ errLog$5('vxe.error.delProp', ['action-config.direction', 'action-config.showPrevButton | action-config.showNextButton']);
33519
34160
  }
33520
34161
  globalEvents.on($xeSplitter, 'resize', handleGlobalResizeEvent);
33521
34162
  });
@@ -34362,9 +35003,24 @@ dynamicApp.use(VxeTabPane);
34362
35003
  VxeUI.component(VxeTabPaneComponent);
34363
35004
  const TabPane = VxeTabPane;
34364
35005
 
35006
+ const { errLog: errLog$4 } = createComponentLog('table-select');
34365
35007
  function getRowUniqueId() {
34366
35008
  return XEUtils.uniqueId('row_');
34367
35009
  }
35010
+ function createReactData$3() {
35011
+ return {
35012
+ initialized: false,
35013
+ tableColumns: [],
35014
+ fullOptionList: [],
35015
+ panelIndex: 0,
35016
+ panelStyle: {},
35017
+ panelPlacement: null,
35018
+ triggerFocusPanel: false,
35019
+ visiblePanel: false,
35020
+ isAniVisible: false,
35021
+ isActivated: false
35022
+ };
35023
+ }
34368
35024
  function createInternalData$3() {
34369
35025
  return {
34370
35026
  // hpTimeout: undefined,
@@ -34444,18 +35100,7 @@ var VxeTableSelectComponent = defineVxeComponent({
34444
35100
  const refGridWrapper = ref();
34445
35101
  const refOptionPanel = ref();
34446
35102
  const refGrid = ref();
34447
- const reactData = reactive({
34448
- initialized: false,
34449
- tableColumns: [],
34450
- fullOptionList: [],
34451
- panelIndex: 0,
34452
- panelStyle: {},
34453
- panelPlacement: null,
34454
- triggerFocusPanel: false,
34455
- visiblePanel: false,
34456
- isAniVisible: false,
34457
- isActivated: false
34458
- });
35103
+ const reactData = reactive(createReactData$3());
34459
35104
  const internalData = createInternalData$3();
34460
35105
  const refMaps = {
34461
35106
  refElem
@@ -34710,12 +35355,12 @@ var VxeTableSelectComponent = defineVxeComponent({
34710
35355
  rowid = getRowUniqueId();
34711
35356
  }
34712
35357
  if (keyMaps[rowid]) {
34713
- errLog('vxe.error.repeatKey', [`[table-select] ${rowKeyField}`, rowid]);
35358
+ errLog$4('vxe.error.repeatKey', [rowKeyField, rowid]);
34714
35359
  }
34715
35360
  keyMaps[rowid] = true;
34716
35361
  const value = item[valueField];
34717
35362
  if (rowMaps[value]) {
34718
- errLog('vxe.error.repeatKey', [`[table-select] ${valueField}`, value]);
35363
+ errLog$4('vxe.error.repeatKey', [valueField, value]);
34719
35364
  }
34720
35365
  rowMaps[value] = { item, index, items, parent: null, nodes: [] };
34721
35366
  });
@@ -35059,11 +35704,12 @@ var VxeTableSelectComponent = defineVxeComponent({
35059
35704
  globalEvents.off($xeTableSelect, 'mousedown');
35060
35705
  globalEvents.off($xeTableSelect, 'blur');
35061
35706
  globalEvents.off($xeTableSelect, 'resize');
35707
+ XEUtils.assign(reactData, createReactData$3());
35062
35708
  XEUtils.assign(internalData, createInternalData$3());
35063
35709
  });
35064
35710
  nextTick(() => {
35065
35711
  if (!VxeTableGridComponent) {
35066
- errLog('vxe.error.reqComp', ['[table-select] vxe-grid']);
35712
+ errLog$4('vxe.error.reqComp', ['vxe-grid']);
35067
35713
  }
35068
35714
  });
35069
35715
  provide('$xeTableSelect', $xeTableSelect);
@@ -35084,6 +35730,7 @@ dynamicApp.use(VxeTableSelect);
35084
35730
  VxeUI.component(VxeTableSelectComponent);
35085
35731
  const TableSelect = VxeTableSelect;
35086
35732
 
35733
+ const { warnLog: warnLog$3, errLog: errLog$3 } = createComponentLog('tabs');
35087
35734
  const scrollbarOffsetSize = 20;
35088
35735
  var VxeTabsComponent = defineVxeComponent({
35089
35736
  name: 'VxeTabs',
@@ -35439,7 +36086,7 @@ var VxeTabsComponent = defineVxeComponent({
35439
36086
  });
35440
36087
  }
35441
36088
  else {
35442
- errLog('vxe.error.notFunc', ['refresh-config.queryMethod']);
36089
+ errLog$3('vxe.error.notFunc', ['refresh-config.queryMethod']);
35443
36090
  }
35444
36091
  }
35445
36092
  };
@@ -35620,11 +36267,11 @@ var VxeTabsComponent = defineVxeComponent({
35620
36267
  return handlePrevNext(true);
35621
36268
  },
35622
36269
  prevTab() {
35623
- warnLog('vxe.error.delFunc', ['[tabs] prevTab', 'prev']);
36270
+ warnLog$3('vxe.error.delFunc', ['prevTab', 'prev']);
35624
36271
  return tabsMethods.prev();
35625
36272
  },
35626
36273
  nextTab() {
35627
- warnLog('vxe.error.delFunc', ['[tabs] nextTab', 'next']);
36274
+ warnLog$3('vxe.error.delFunc', ['nextTab', 'next']);
35628
36275
  return tabsMethods.next();
35629
36276
  }
35630
36277
  };
@@ -36392,6 +37039,7 @@ dynamicApp.use(VxeText);
36392
37039
  VxeUI.component(VxeTextComponent);
36393
37040
  const Text = VxeText;
36394
37041
 
37042
+ const { warnLog: warnLog$2 } = createComponentLog('textarea');
36395
37043
  let autoTxtElem;
36396
37044
  var VxeTextareaComponent = defineVxeComponent({
36397
37045
  name: 'VxeTextarea',
@@ -36756,7 +37404,7 @@ var VxeTextareaComponent = defineVxeComponent({
36756
37404
  nextTick(() => {
36757
37405
  const { autosize, autoSize } = props;
36758
37406
  if (autosize) {
36759
- warnLog('vxe.error.delProp', ['autosize', 'auto-size']);
37407
+ warnLog$2('vxe.error.delProp', ['autosize', 'auto-size']);
36760
37408
  }
36761
37409
  if (autosize || autoSize) {
36762
37410
  updateAutoTxt();
@@ -37128,6 +37776,7 @@ function clearRowAnimate(elem, clss) {
37128
37776
  }, 500);
37129
37777
  }
37130
37778
 
37779
+ const { errLog: errLog$2 } = createComponentLog('tree');
37131
37780
  const { menus, getConfig, getI18n, getIcon } = VxeUI;
37132
37781
  /**
37133
37782
  * 生成节点的唯一主键
@@ -37837,7 +38486,7 @@ var VxeTreeComponent = defineVxeComponent({
37837
38486
  handleData(true);
37838
38487
  if (sYLoad) {
37839
38488
  if (!(props.height || props.maxHeight)) {
37840
- errLog('vxe.error.reqProp', ['[tree] height | max-height | virtual-y-config.enabled=false']);
38489
+ errLog$2('vxe.error.reqProp', ['height | max-height | virtual-y-config.enabled=false']);
37841
38490
  }
37842
38491
  }
37843
38492
  return computeScrollLoad().then(() => {
@@ -39773,17 +40422,17 @@ var VxeTreeComponent = defineVxeComponent({
39773
40422
  const { transform, drag, menuConfig } = props;
39774
40423
  const dragOpts = computeDragOpts.value;
39775
40424
  if (drag && !transform) {
39776
- errLog('vxe.error.notSupportProp', ['drag', 'transform=false', 'transform=true']);
40425
+ errLog$2('vxe.error.notSupportProp', ['drag', 'transform=false', 'transform=true']);
39777
40426
  }
39778
40427
  if (dragOpts.isCrossTreeDrag) {
39779
- errLog('vxe.error.notProp', ['drag-config.isCrossTreeDrag']);
40428
+ errLog$2('vxe.error.notProp', ['drag-config.isCrossTreeDrag']);
39780
40429
  }
39781
40430
  // if (valueField) {
39782
40431
  // errLog('vxe.error.delProp', ['value-field', 'value-field'])
39783
40432
  // }
39784
40433
  const VxeUIContextMenu = VxeUI.getComponent('VxeContextMenu');
39785
40434
  if (menuConfig && !VxeUIContextMenu) {
39786
- errLog('vxe.error.reqComp', ['vxe-context-menu']);
40435
+ errLog$2('vxe.error.reqComp', ['vxe-context-menu']);
39787
40436
  }
39788
40437
  if (props.autoResize) {
39789
40438
  const el = refElem.value;
@@ -39832,6 +40481,7 @@ dynamicApp.use(VxeTree);
39832
40481
  VxeUI.component(VxeTreeComponent);
39833
40482
  const Tree = VxeTree;
39834
40483
 
40484
+ const { warnLog: warnLog$1, errLog: errLog$1 } = createComponentLog('tree-select');
39835
40485
  function getOptUniqueId() {
39836
40486
  return XEUtils.uniqueId('node_');
39837
40487
  }
@@ -40197,12 +40847,12 @@ var VxeTreeSelectComponent = defineVxeComponent({
40197
40847
  nodeid = getOptUniqueId();
40198
40848
  }
40199
40849
  if (keyMaps[nodeid]) {
40200
- errLog('vxe.error.repeatKey', [nodeKeyField, nodeid]);
40850
+ errLog$1('vxe.error.repeatKey', [nodeKeyField, nodeid]);
40201
40851
  }
40202
40852
  keyMaps[nodeid] = true;
40203
40853
  const value = item[valueField];
40204
40854
  if (nodeMaps[value]) {
40205
- errLog('vxe.error.repeatKey', [valueField, value]);
40855
+ errLog$1('vxe.error.repeatKey', [valueField, value]);
40206
40856
  }
40207
40857
  nodeMaps[value] = {
40208
40858
  item,
@@ -40799,7 +41449,7 @@ var VxeTreeSelectComponent = defineVxeComponent({
40799
41449
  cacheLazyDataMap();
40800
41450
  onMounted(() => {
40801
41451
  if (XEUtils.isBoolean(props.autoClose)) {
40802
- warnLog('vxe.error.delProp', ['auto-close', 'checked-closable | clear-closable']);
41452
+ warnLog$1('vxe.error.delProp', ['auto-close', 'checked-closable | clear-closable']);
40803
41453
  }
40804
41454
  globalEvents.on($xeTreeSelect, 'mousewheel', handleGlobalMousewheelEvent);
40805
41455
  globalEvents.on($xeTreeSelect, 'mousedown', handleGlobalMousedownEvent);
@@ -40934,6 +41584,7 @@ const saveLocalFile = (options) => {
40934
41584
  return Promise.reject(new Error(getI18n$2('vxe.error.notExp')));
40935
41585
  };
40936
41586
 
41587
+ const { warnLog, errLog } = createComponentLog('upload');
40937
41588
  function createReactData() {
40938
41589
  return {
40939
41590
  isDragUploadStatus: false,
@@ -41141,8 +41792,12 @@ var VxeUploadComponent = defineVxeComponent({
41141
41792
  'remove-fail',
41142
41793
  'download',
41143
41794
  'download-fail',
41795
+ 'upload-start',
41144
41796
  'upload-success',
41145
41797
  'upload-error',
41798
+ 'upload-end',
41799
+ 'upload-queue-start',
41800
+ 'upload-queue-end',
41146
41801
  'sort-dragend',
41147
41802
  'more-visible'
41148
41803
  ],
@@ -41476,6 +42131,7 @@ var VxeUploadComponent = defineVxeComponent({
41476
42131
  const fileKey = getFieldKey(item);
41477
42132
  const uploadFn = props.uploadMethod || getConfig$3().upload.uploadMethod;
41478
42133
  if (uploadFn) {
42134
+ dispatchEvent('upload-start', { option: item }, null);
41479
42135
  return Promise.resolve(uploadFn({
41480
42136
  $upload: $xeUpload,
41481
42137
  file,
@@ -41516,6 +42172,7 @@ var VxeUploadComponent = defineVxeComponent({
41516
42172
  if (cacheItem) {
41517
42173
  cacheItem.loading = false;
41518
42174
  }
42175
+ dispatchEvent('upload-end', { option: item }, null);
41519
42176
  });
41520
42177
  }
41521
42178
  else {
@@ -41624,6 +42281,7 @@ var VxeUploadComponent = defineVxeComponent({
41624
42281
  }
41625
42282
  }
41626
42283
  }
42284
+ dispatchEvent('upload-queue-start', { files: selectFiles }, evnt);
41627
42285
  const cacheMaps = Object.assign({}, reactData.fileCacheMaps);
41628
42286
  const newFileList = multiple ? fileList : [];
41629
42287
  const uploadPromiseRests = [];
@@ -41660,6 +42318,7 @@ var VxeUploadComponent = defineVxeComponent({
41660
42318
  });
41661
42319
  Promise.all(urlMode ? uploadPromiseRests : []).then(() => {
41662
42320
  const restFileList = reactData.fileList;
42321
+ dispatchEvent('upload-queue-end', { options: restFileList, files: selectFiles }, evnt);
41663
42322
  handleChange(restFileList);
41664
42323
  // 自动更新校验状态
41665
42324
  if ($xeForm && formItemInfo) {
@@ -42721,10 +43380,10 @@ var VxeUploadComponent = defineVxeComponent({
42721
43380
  });
42722
43381
  onMounted(() => {
42723
43382
  if (props.multiple && props.singleMode) {
42724
- errLog('vxe.error.errConflicts', ['[upload] multiple', 'single-mode']);
43383
+ errLog('vxe.error.errConflicts', ['multiple', 'single-mode']);
42725
43384
  }
42726
43385
  if (props.imageStyle) {
42727
- warnLog('vxe.error.delProp', ['[upload] image-style', 'image-config']);
43386
+ warnLog('vxe.error.delProp', ['image-style', 'image-config']);
42728
43387
  }
42729
43388
  if (props.dragSort) {
42730
43389
  initTpImg();