vxe-pc-ui 4.15.4 → 4.15.6

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 (114) hide show
  1. package/dist/all.esm.js +172 -76
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/cascader/src/cascader.js +2 -2
  5. package/es/collapse/src/collapse.js +71 -10
  6. package/es/collapse/style.css +36 -9
  7. package/es/collapse/style.min.css +1 -1
  8. package/es/date-panel/src/util.js +16 -0
  9. package/es/date-panel/style.css +1 -1
  10. package/es/date-panel/style.min.css +1 -1
  11. package/es/date-picker/src/date-picker.js +52 -34
  12. package/es/icon/{iconfont.1781876596706.ttf → iconfont.1782111198241.ttf} +0 -0
  13. package/es/icon/iconfont.1782111198241.woff +0 -0
  14. package/es/icon/iconfont.1782111198241.woff2 +0 -0
  15. package/es/icon/style.css +5 -1
  16. package/es/icon/style.min.css +1 -1
  17. package/{lib/icon/style/iconfont.1781876596706.ttf → es/iconfont.1782111198241.ttf} +0 -0
  18. package/es/iconfont.1782111198241.woff +0 -0
  19. package/es/iconfont.1782111198241.woff2 +0 -0
  20. package/es/menu/style.css +0 -1
  21. package/es/menu/style.min.css +1 -1
  22. package/es/pulldown/src/pulldown.js +3 -3
  23. package/es/style.css +1 -1
  24. package/es/style.min.css +1 -1
  25. package/es/table-select/src/table-select.js +1 -1
  26. package/es/tree-select/src/tree-select.js +3 -3
  27. package/es/ui/index.js +3 -1
  28. package/es/ui/src/log.js +1 -1
  29. package/es/vxe-collapse/style.css +36 -9
  30. package/es/vxe-collapse/style.min.css +1 -1
  31. package/es/vxe-date-panel/style.css +1 -1
  32. package/es/vxe-date-panel/style.min.css +1 -1
  33. package/es/vxe-icon/style.css +5 -1
  34. package/es/vxe-icon/style.min.css +1 -1
  35. package/es/vxe-menu/style.css +0 -1
  36. package/es/vxe-menu/style.min.css +1 -1
  37. package/lib/cascader/src/cascader.js +2 -2
  38. package/lib/cascader/src/cascader.min.js +1 -1
  39. package/lib/collapse/src/collapse.js +73 -9
  40. package/lib/collapse/src/collapse.min.js +1 -1
  41. package/lib/collapse/style/style.css +36 -9
  42. package/lib/collapse/style/style.min.css +1 -1
  43. package/lib/date-panel/src/util.js +17 -0
  44. package/lib/date-panel/src/util.min.js +1 -1
  45. package/lib/date-panel/style/style.css +1 -1
  46. package/lib/date-panel/style/style.min.css +1 -1
  47. package/lib/date-picker/src/date-picker.js +58 -30
  48. package/lib/date-picker/src/date-picker.min.js +1 -1
  49. package/lib/{iconfont.1781876596706.ttf → icon/style/iconfont.1782111198241.ttf} +0 -0
  50. package/lib/icon/style/iconfont.1782111198241.woff +0 -0
  51. package/lib/icon/style/iconfont.1782111198241.woff2 +0 -0
  52. package/lib/icon/style/style.css +5 -1
  53. package/lib/icon/style/style.min.css +5 -1
  54. package/{es/iconfont.1781876596706.ttf → lib/iconfont.1782111198241.ttf} +0 -0
  55. package/lib/iconfont.1782111198241.woff +0 -0
  56. package/lib/iconfont.1782111198241.woff2 +0 -0
  57. package/lib/index.umd.js +462 -351
  58. package/lib/index.umd.min.js +1 -1
  59. package/lib/menu/style/style.css +0 -1
  60. package/lib/menu/style/style.min.css +1 -1
  61. package/lib/pulldown/src/pulldown.js +3 -3
  62. package/lib/pulldown/src/pulldown.min.js +1 -1
  63. package/lib/style.css +1 -1
  64. package/lib/style.min.css +1 -1
  65. package/lib/table-select/src/table-select.js +1 -1
  66. package/lib/table-select/src/table-select.min.js +1 -1
  67. package/lib/tree-select/src/tree-select.js +3 -3
  68. package/lib/tree-select/src/tree-select.min.js +1 -1
  69. package/lib/ui/index.js +3 -1
  70. package/lib/ui/index.min.js +1 -1
  71. package/lib/ui/src/log.js +1 -1
  72. package/lib/ui/src/log.min.js +1 -1
  73. package/lib/vxe-collapse/style/style.css +36 -9
  74. package/lib/vxe-collapse/style/style.min.css +1 -1
  75. package/lib/vxe-date-panel/style/style.css +1 -1
  76. package/lib/vxe-date-panel/style/style.min.css +1 -1
  77. package/lib/vxe-icon/style/style.css +5 -1
  78. package/lib/vxe-icon/style/style.min.css +1 -1
  79. package/lib/vxe-menu/style/style.css +0 -1
  80. package/lib/vxe-menu/style/style.min.css +1 -1
  81. package/package.json +2 -2
  82. package/packages/cascader/src/cascader.ts +2 -2
  83. package/packages/collapse/src/collapse.ts +75 -14
  84. package/packages/date-panel/src/util.ts +18 -0
  85. package/packages/date-picker/src/date-picker.ts +58 -31
  86. package/packages/pulldown/src/pulldown.ts +3 -3
  87. package/packages/table-select/src/table-select.ts +1 -1
  88. package/packages/tree-select/src/tree-select.ts +3 -3
  89. package/packages/ui/index.ts +2 -0
  90. package/styles/components/collapse.scss +36 -11
  91. package/styles/components/date-panel.scss +1 -1
  92. package/styles/components/icon.scss +5 -1
  93. package/styles/components/menu.scss +0 -1
  94. package/styles/icon/iconfont.ttf +0 -0
  95. package/styles/icon/iconfont.woff +0 -0
  96. package/styles/icon/iconfont.woff2 +0 -0
  97. package/styles/theme/base.scss +7 -0
  98. package/styles/theme/dark.scss +5 -3
  99. package/styles/theme/light.scss +3 -1
  100. package/styles/variable.scss +5 -2
  101. package/types/components/cascader.d.ts +1 -1
  102. package/types/components/collapse.d.ts +13 -3
  103. package/types/components/date-panel.d.ts +6 -6
  104. package/types/components/date-picker.d.ts +4 -0
  105. package/types/components/icon.d.ts +1 -1
  106. package/types/components/table.d.ts +16 -2
  107. package/es/icon/iconfont.1781876596706.woff +0 -0
  108. package/es/icon/iconfont.1781876596706.woff2 +0 -0
  109. package/es/iconfont.1781876596706.woff +0 -0
  110. package/es/iconfont.1781876596706.woff2 +0 -0
  111. package/lib/icon/style/iconfont.1781876596706.woff +0 -0
  112. package/lib/icon/style/iconfont.1781876596706.woff2 +0 -0
  113. package/lib/iconfont.1781876596706.woff +0 -0
  114. package/lib/iconfont.1781876596706.woff2 +0 -0
@@ -78,11 +78,11 @@ export default defineVxeComponent({
78
78
  filterConfig: Object,
79
79
  showFullLabel: {
80
80
  type: Boolean,
81
- default: getConfig().cascader.showFullLabel
81
+ default: () => getConfig().cascader.showFullLabel
82
82
  },
83
83
  separator: {
84
84
  type: String,
85
- default: getConfig().cascader.separator
85
+ default: () => getConfig().cascader.separator
86
86
  },
87
87
  multiple: Boolean,
88
88
  className: [String, Function],
@@ -1,8 +1,22 @@
1
- import { ref, h, reactive, provide, computed, watch } from 'vue';
1
+ import { ref, h, reactive, provide, computed, watch, nextTick, onUnmounted } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import { getConfig, getIcon, createEvent, permission, renderEmptyElement, useSize } from '../../ui';
4
+ import { toCssUnit } from '../../ui/src/dom';
4
5
  import { getSlotVNs } from '../../ui/src/vn';
5
6
  import XEUtils from 'xe-utils';
7
+ function createReactData() {
8
+ return {
9
+ staticPanes: [],
10
+ activeNames: [],
11
+ initNames: [],
12
+ cachePaneMaps: {}
13
+ };
14
+ }
15
+ function createInternalData() {
16
+ return {
17
+ // esTime: null
18
+ };
19
+ }
6
20
  export default defineVxeComponent({
7
21
  name: 'VxeCollapse',
8
22
  props: {
@@ -12,6 +26,10 @@ export default defineVxeComponent({
12
26
  type: Boolean,
13
27
  default: () => getConfig().collapse.padding
14
28
  },
29
+ border: {
30
+ type: Boolean,
31
+ default: () => getConfig().collapse.border
32
+ },
15
33
  expandConfig: Object,
16
34
  size: {
17
35
  type: String,
@@ -29,12 +47,8 @@ export default defineVxeComponent({
29
47
  const xID = XEUtils.uniqueId();
30
48
  const { computeSize } = useSize(props);
31
49
  const refElem = ref();
32
- const reactData = reactive({
33
- staticPanes: [],
34
- activeNames: [],
35
- initNames: [],
36
- cachePaneMaps: {}
37
- });
50
+ const reactData = reactive(createReactData());
51
+ const internalData = createInternalData();
38
52
  const refMaps = {
39
53
  refElem
40
54
  };
@@ -55,6 +69,7 @@ export default defineVxeComponent({
55
69
  props,
56
70
  context,
57
71
  reactData,
72
+ internalData,
58
73
  getRefMaps: () => refMaps,
59
74
  getComputeMaps: () => computeMaps
60
75
  };
@@ -85,6 +100,7 @@ export default defineVxeComponent({
85
100
  if (name) {
86
101
  const isActive = activeNames.includes(name);
87
102
  nameMaps[`${name}`] = {
103
+ height: 0,
88
104
  loading: false
89
105
  };
90
106
  if (isActive) {
@@ -120,8 +136,14 @@ export default defineVxeComponent({
120
136
  };
121
137
  const handleClickEvent = (evnt, item) => {
122
138
  const { activeNames } = reactData;
139
+ const { esTime } = internalData;
123
140
  const { name } = item;
141
+ if (esTime) {
142
+ clearTimeout(esTime);
143
+ }
124
144
  if (name) {
145
+ const headEl = evnt.currentTarget;
146
+ const bodyEl = headEl.nextElementSibling;
125
147
  const aIndex = activeNames.indexOf(name);
126
148
  let expanded = false;
127
149
  if (aIndex === -1) {
@@ -131,6 +153,35 @@ export default defineVxeComponent({
131
153
  else {
132
154
  activeNames.splice(aIndex, 1);
133
155
  }
156
+ const startAnimation = () => {
157
+ const itemEl = bodyEl.firstElementChild;
158
+ if (itemEl) {
159
+ bodyEl.style.height = toCssUnit(itemEl.scrollHeight);
160
+ if (expanded) {
161
+ internalData.esTime = setTimeout(() => {
162
+ bodyEl.style.height = '';
163
+ internalData.esTime = undefined;
164
+ }, 200);
165
+ }
166
+ else {
167
+ nextTick(() => {
168
+ requestAnimationFrame(() => {
169
+ bodyEl.style.height = '';
170
+ });
171
+ });
172
+ }
173
+ }
174
+ };
175
+ if (bodyEl) {
176
+ const itemEl = bodyEl.firstElementChild;
177
+ if (itemEl) {
178
+ startAnimation();
179
+ }
180
+ else {
181
+ bodyEl.style.height = '0';
182
+ nextTick(startAnimation);
183
+ }
184
+ }
134
185
  addInitName(name);
135
186
  dispatchEvent('change', { value: activeNames, name }, evnt);
136
187
  dispatchEvent('toggle-expand', { value: activeNames, name, expanded }, evnt);
@@ -179,7 +230,8 @@ export default defineVxeComponent({
179
230
  ]),
180
231
  h('div', {
181
232
  class: ['vxe-collapse--item-content', {
182
- 'is--visible': isActive
233
+ 'is--visible': isActive,
234
+ 'is--hidden': !isActive
183
235
  }]
184
236
  }, [
185
237
  name && initNames.includes(name)
@@ -194,7 +246,7 @@ export default defineVxeComponent({
194
246
  });
195
247
  };
196
248
  const renderVN = () => {
197
- const { padding } = props;
249
+ const { padding, border } = props;
198
250
  const vSize = computeSize.value;
199
251
  const itemOptions = computeItemOptions.value;
200
252
  const itemStaticOptions = computeItemStaticOptions.value;
@@ -204,7 +256,8 @@ export default defineVxeComponent({
204
256
  ref: refElem,
205
257
  class: ['vxe-collapse', {
206
258
  [`size--${vSize}`]: vSize,
207
- 'is--padding': padding
259
+ 'is--padding': padding,
260
+ 'is--border': border
208
261
  }]
209
262
  }, [
210
263
  h('div', {
@@ -238,6 +291,14 @@ export default defineVxeComponent({
238
291
  });
239
292
  reactData.activeNames = props.modelValue || [];
240
293
  initDefaultName(reactData.staticPanes.length ? reactData.staticPanes : props.options);
294
+ onUnmounted(() => {
295
+ const { esTime } = internalData;
296
+ if (esTime) {
297
+ clearTimeout(esTime);
298
+ }
299
+ XEUtils.assign(reactData, createReactData());
300
+ XEUtils.assign(internalData, createInternalData());
301
+ });
241
302
  provide('$xeCollapse', $xeCollapse);
242
303
  $xeCollapse.renderVN = renderVN;
243
304
  return $xeCollapse;
@@ -1,29 +1,45 @@
1
1
  .vxe-collapse {
2
- font-size: var(--vxe-ui-font-size-default);
2
+ font-size: var(--vxe-ui-collapse-font-size);
3
3
  color: var(--vxe-ui-font-color);
4
4
  font-family: var(--vxe-ui-font-family);
5
5
  }
6
+ .vxe-collapse.is--padding .vxe-collapse--item-header {
7
+ padding: 0 var(--vxe-ui-collapse-scope-padding);
8
+ }
6
9
  .vxe-collapse.is--padding .vxe-collapse--item-inner {
7
- padding: var(--vxe-ui-layout-padding-default);
10
+ padding: var(--vxe-ui-collapse-scope-padding);
11
+ }
12
+ .vxe-collapse.is--border > .vxe-collapse-item {
13
+ border-top: 1px solid var(--vxe-ui-collapse-border-color);
14
+ }
15
+ .vxe-collapse.is--border > .vxe-collapse-item:last-child {
16
+ border-bottom: 1px solid var(--vxe-ui-collapse-border-color);
17
+ }
18
+ .vxe-collapse.is--border > .vxe-collapse-item > .vxe-collapse--item-content > .vxe-collapse--item-inner {
19
+ border-top: 1px solid var(--vxe-ui-collapse-border-color);
8
20
  }
9
21
 
10
22
  .vxe-collapse-slots {
11
23
  display: none;
12
24
  }
13
25
 
14
- .vxe-collapse--item-content.is--visible .vxe-collapse--item-inner {
15
- display: block;
26
+ .vxe-collapse--item-content {
27
+ overflow: hidden;
28
+ transition: height 0.2s ease-in-out;
29
+ }
30
+ .vxe-collapse--item-content.is--hidden {
31
+ height: 0;
16
32
  }
17
33
 
18
34
  .vxe-collapse--item-inner {
19
- display: none;
35
+ position: relative;
20
36
  }
21
37
 
22
38
  .vxe-collapse--item-header {
23
39
  display: flex;
24
40
  flex-direction: row;
25
41
  align-items: center;
26
- height: 1.8em;
42
+ min-height: var(--vxe-ui-collapse-scope-min-height);
27
43
  cursor: pointer;
28
44
  }
29
45
 
@@ -44,12 +60,23 @@
44
60
  transition: transform 0.2s ease-in-out;
45
61
  }
46
62
 
63
+ .vxe-collapse {
64
+ --vxe-ui-collapse-font-size: var(--vxe-ui-font-size-default);
65
+ --vxe-ui-collapse-scope-min-height: var(--vxe-ui-collapse-min-height-default);
66
+ --vxe-ui-collapse-scope-padding: var(--vxe-ui-layout-padding-double);
67
+ }
47
68
  .vxe-collapse.size--medium {
48
- font-size: var(--vxe-ui-font-size-medium);
69
+ --vxe-ui-collapse-font-size:var(--vxe-ui-font-size-medium);
70
+ --vxe-ui-collapse-scope-min-height: var(--vxe-ui-collapse-min-height-medium);
71
+ --vxe-ui-collapse-scope-padding: calc(var(--vxe-ui-layout-padding-double) - 4px);
49
72
  }
50
73
  .vxe-collapse.size--small {
51
- font-size: var(--vxe-ui-font-size-small);
74
+ --vxe-ui-collapse-font-size:var(--vxe-ui-font-size-small);
75
+ --vxe-ui-collapse-scope-min-height: var(--vxe-ui-collapse-min-height-small);
76
+ --vxe-ui-collapse-scope-padding: calc(var(--vxe-ui-layout-padding-double) - 6px);
52
77
  }
53
78
  .vxe-collapse.size--mini {
54
- font-size: var(--vxe-ui-font-size-mini);
79
+ --vxe-ui-collapse-font-size:var(--vxe-ui-font-size-mini);
80
+ --vxe-ui-collapse-scope-min-height: var(--vxe-ui-collapse-min-height-mini);
81
+ --vxe-ui-collapse-scope-padding: calc(var(--vxe-ui-layout-padding-double) - 8px);
55
82
  }
@@ -1 +1 @@
1
- .vxe-collapse{font-size:var(--vxe-ui-font-size-default);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family)}.vxe-collapse.is--padding .vxe-collapse--item-inner{padding:var(--vxe-ui-layout-padding-default)}.vxe-collapse-slots{display:none}.vxe-collapse--item-content.is--visible .vxe-collapse--item-inner{display:block}.vxe-collapse--item-inner{display:none}.vxe-collapse--item-header{display:flex;flex-direction:row;align-items:center;height:1.8em;cursor:pointer}.vxe-collapse--item-icon,.vxe-collapse--item-switch{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-right:var(--vxe-ui-layout-padding-half)}.vxe-collapse--item-switch{flex-shrink:0;cursor:pointer}.vxe-collapse--item-switch>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-collapse.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-collapse.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-collapse.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ .vxe-collapse{font-size:var(--vxe-ui-collapse-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family)}.vxe-collapse.is--padding .vxe-collapse--item-header{padding:0 var(--vxe-ui-collapse-scope-padding)}.vxe-collapse.is--padding .vxe-collapse--item-inner{padding:var(--vxe-ui-collapse-scope-padding)}.vxe-collapse.is--border>.vxe-collapse-item{border-top:1px solid var(--vxe-ui-collapse-border-color)}.vxe-collapse.is--border>.vxe-collapse-item:last-child{border-bottom:1px solid var(--vxe-ui-collapse-border-color)}.vxe-collapse.is--border>.vxe-collapse-item>.vxe-collapse--item-content>.vxe-collapse--item-inner{border-top:1px solid var(--vxe-ui-collapse-border-color)}.vxe-collapse-slots{display:none}.vxe-collapse--item-content{overflow:hidden;transition:height .2s ease-in-out}.vxe-collapse--item-content.is--hidden{height:0}.vxe-collapse--item-inner{position:relative}.vxe-collapse--item-header{display:flex;flex-direction:row;align-items:center;min-height:var(--vxe-ui-collapse-scope-min-height);cursor:pointer}.vxe-collapse--item-icon,.vxe-collapse--item-switch{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-right:var(--vxe-ui-layout-padding-half)}.vxe-collapse--item-switch{flex-shrink:0;cursor:pointer}.vxe-collapse--item-switch>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-collapse{--vxe-ui-collapse-font-size:var(--vxe-ui-font-size-default);--vxe-ui-collapse-scope-min-height:var(--vxe-ui-collapse-min-height-default);--vxe-ui-collapse-scope-padding:var(--vxe-ui-layout-padding-double)}.vxe-collapse.size--medium{--vxe-ui-collapse-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-collapse-scope-min-height:var(--vxe-ui-collapse-min-height-medium);--vxe-ui-collapse-scope-padding:calc(var(--vxe-ui-layout-padding-double) - 4px)}.vxe-collapse.size--small{--vxe-ui-collapse-font-size:var(--vxe-ui-font-size-small);--vxe-ui-collapse-scope-min-height:var(--vxe-ui-collapse-min-height-small);--vxe-ui-collapse-scope-padding:calc(var(--vxe-ui-layout-padding-double) - 6px)}.vxe-collapse.size--mini{--vxe-ui-collapse-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-collapse-scope-min-height:var(--vxe-ui-collapse-min-height-mini);--vxe-ui-collapse-scope-padding:calc(var(--vxe-ui-layout-padding-double) - 8px)}
@@ -240,3 +240,19 @@ export function isAllSameChar(str, char) {
240
240
  }
241
241
  return true;
242
242
  }
243
+ export function checkDateFormat(numStr, formatKey) {
244
+ const numVal = XEUtils.toNumber(numStr);
245
+ switch (formatKey) {
246
+ case 'yyyy':
247
+ return (numVal >= 9999 ? 9999 : (numVal < 1 ? 1 : numVal));
248
+ case 'MM':
249
+ return (numVal >= 12 ? 12 : (numVal < 1 ? 1 : numVal));
250
+ case 'dd':
251
+ return (numVal >= 31 ? 31 : (numVal < 1 ? 1 : numVal));
252
+ case 'HH':
253
+ case 'mm':
254
+ case 'ss':
255
+ return (numVal >= 59 ? 59 : (numVal <= 0 ? 0 : numVal));
256
+ }
257
+ return numVal;
258
+ }
@@ -206,7 +206,7 @@
206
206
  color: var(--vxe-ui-font-primary-color);
207
207
  }
208
208
  .vxe-date-panel--view-item.is--hover .vxe-date-panel--view-item-inner {
209
- background-color: var(--vxe-ui-font-primary-tinge-color);
209
+ background-color: var(--vxe-ui-base-hover-background-color);
210
210
  }
211
211
  .vxe-date-panel--view-item.is--selected .vxe-date-panel--view-item-inner {
212
212
  color: var(--vxe-ui-input-date-picker-selected-color);
@@ -1 +1 @@
1
- .vxe-date-panel{color:var(--vxe-ui-font-color);flex-shrink:0}.vxe-date-panel--time-layout-wrapper,.vxe-date-panel--wrapper{border:0 solid var(--vxe-ui-base-popup-border-color);border-radius:var(--vxe-ui-base-border-radius)}.vxe-date-panel--time-left-wrapper,.vxe-date-panel--wrapper{display:inline-flex;flex-direction:column;padding:.8em}.vxe-date-panel--time-right-wrapper{padding:.8em .8em .8em 0}.vxe-date-panel--time-layout-wrapper{display:inline-flex;flex-direction:row}.vxe-date-panel--time-title{display:flex;align-items:center;justify-content:center;flex-grow:1;text-align:center;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);height:2em;font-weight:700}.vxe-date-panel--time-header{position:relative;flex-shrink:0}.vxe-date-panel--picker-header,.vxe-date-panel--time-header{display:flex;flex-direction:row;align-items:center;height:3em;padding-bottom:.5em}.vxe-date-panel--picker-header{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-date-panel--picker-header .vxe-date-panel--picker-type-wrapper{flex-grow:1;font-size:1.1em}.vxe-date-panel--picker-header .vxe-date-panel--picker-btn-wrapper{flex-shrink:0;text-align:center}.vxe-date-panel--picker-type-wrapper{display:flex;align-items:center}.vxe-date-panel--picker-type-wrapper .vxe-date-panel--picker-btn,.vxe-date-panel--picker-type-wrapper .vxe-date-panel--picker-label{display:inline-block}.vxe-date-panel--picker-btn-wrapper{display:flex;flex-direction:row}.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-current-btn,.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-next-btn,.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-prev-btn{height:2.2em;padding:0 .5em;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-input-border-color);margin-left:.5em}.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-current-btn i,.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-next-btn i,.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-prev-btn i{font-size:1.2em}.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-btn:not(.is--disabled):active{transform:scale(.9)}.vxe-date-panel--picker-btn,.vxe-date-panel--picker-label{display:flex;align-items:center;justify-content:center;background-color:var(--vxe-ui-layout-background-color)}.vxe-date-panel--picker-btn.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-date-panel--picker-btn:not(.is--disabled){cursor:pointer}.vxe-date-panel--picker-btn:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color);background-color:#fff}.vxe-date-panel--picker-btn:not(.is--disabled):active{background-color:#fff}.vxe-date-panel--picker-btns .vxe-date-panel--picker-btn{margin-left:.6em}.vxe-date-panel--picker-btns .vxe-date-panel--picker-btn:first-child{margin-left:0}.vxe-date-panel--view-wrapper{display:flex;flex-direction:column;line-height:1.5}.vxe-date-panel--picker-body{border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-date-panel--view-header{box-shadow:inset 0 -1px 0 0 var(--vxe-ui-base-popup-border-color);text-align:center}.vxe-date-panel--view-body{display:inline-flex;flex-direction:column;width:24em}.vxe-date-panel--view-wrapper.type--day .vxe-date-panel--view-body,.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-body{height:18em}.vxe-date-panel--view-header .vxe-date-panel--view-row{height:2em}.vxe-date-panel--time-body,.vxe-date-panel--view-body{height:20em}.vxe-date-panel.type--time .vxe-date-panel--time-body{height:15em}.vxe-date-panel--view-body .vxe-date-panel--view-item{cursor:pointer}.vxe-date-panel--view-body .vxe-date-panel--view-item.is--disabled,.vxe-date-panel--view-body .vxe-date-panel--view-item.is--range-disabled{cursor:no-drop}.vxe-date-panel--view-body .vxe-date-panel--view-item.is--over{cursor:no-drop}.vxe-date-panel--view-row{display:flex;flex-direction:row}.vxe-date-panel--view-item{position:relative;padding:.2em}.vxe-date-panel--view-item.is--next .vxe-date-panel--view-item-inner,.vxe-date-panel--view-item.is--prev .vxe-date-panel--view-item-inner{color:var(--vxe-ui-font-disabled-color)}.vxe-date-panel--view-item.is--next .vxe-date-panel--festival,.vxe-date-panel--view-item.is--next .vxe-date-panel--label,.vxe-date-panel--view-item.is--prev .vxe-date-panel--festival,.vxe-date-panel--view-item.is--prev .vxe-date-panel--label{color:var(--vxe-ui-font-disabled-color)}.vxe-date-panel--view-item.is--now .vxe-date-panel--view-item-inner{color:var(--vxe-ui-base-popup-border-color)}.vxe-date-panel--view-item.is--now:not(.is--selected).is--current{color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item.is--now:not(.is--selected).is--current .vxe-date-panel--festival,.vxe-date-panel--view-item.is--now:not(.is--selected).is--current .vxe-date-panel--label{color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item.is--hover .vxe-date-panel--view-item-inner{background-color:var(--vxe-ui-font-primary-tinge-color)}.vxe-date-panel--view-item.is--selected .vxe-date-panel--view-item-inner{color:var(--vxe-ui-input-date-picker-selected-color);background-color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item.is--selected.is--hover .vxe-date-panel--view-item-inner{box-shadow:0 0 6px 1px var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item.is--selected.is--next .vxe-date-panel--festival,.vxe-date-panel--view-item.is--selected.is--next .vxe-date-panel--label,.vxe-date-panel--view-item.is--selected.is--prev .vxe-date-panel--festival,.vxe-date-panel--view-item.is--selected.is--prev .vxe-date-panel--label{color:var(--vxe-ui-base-popup-border-color)}.vxe-date-panel--view-item.is--selected .vxe-date-panel--festival,.vxe-date-panel--view-item.is--selected .vxe-date-panel--label{color:var(--vxe-ui-input-date-picker-festival-selected-color)}.vxe-date-panel--view-item.is--selected .vxe-date-panel--label.is-notice:before{background-color:var(--vxe-ui-input-date-picker-notice-selected-background-color)}.vxe-date-panel--view-item.is--range-selected{background-color:var(--vxe-ui-font-primary-tinge-color)}.vxe-date-panel--view-item.is--range-disabled .vxe-date-panel--view-item-inner{color:var(--vxe-ui-input-disabled-color);background-color:inherit}.vxe-date-panel--view-item.is--disabled .vxe-date-panel--view-item-inner{color:var(--vxe-ui-input-disabled-color);background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-date-panel--view-item.is--disabled .vxe-date-panel--festival,.vxe-date-panel--view-item.is--disabled .vxe-date-panel--label{color:var(--vxe-ui-input-disabled-color)}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item{padding:.2em 0}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item .vxe-date-panel--view-item-inner{border-radius:0}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item:first-child{padding:.2em 0 .2em .2em;border-right:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item:first-child .vxe-date-panel--view-item-inner{color:var(--vxe-ui-input-date-festival-color)}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item:last-child{padding:.2em .2em .2em 0}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--hover:first-child .vxe-date-panel--view-item-inner,.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--selected:first-child .vxe-date-panel--view-item-inner{border-radius:var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius)}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--hover:last-child .vxe-date-panel--view-item-inner,.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--selected:last-child .vxe-date-panel--view-item-inner{border-radius:0 var(--vxe-ui-base-border-radius) var(--vxe-ui-base-border-radius) 0}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--now:not(.is--selected):first-child .vxe-date-panel--view-item-inner{color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;border:1px solid transparent;border-radius:var(--vxe-ui-base-border-radius);overflow:hidden}.vxe-date-panel--view-item-label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-date-panel--festival,.vxe-date-panel--label{width:100%;display:block;overflow:hidden;text-align:center}.vxe-date-panel--label{position:relative;height:1.4em;line-height:1.4em}.vxe-date-panel--label.is-notice:before{content:"";position:absolute;width:.25em;height:.25em;left:50%;top:0;transform:translateX(-50%);border-radius:100%;background-color:var(--vxe-ui-input-date-notice-background-color)}.vxe-date-panel--label--extra{position:absolute;right:-.1em;top:-.4em;font-size:12px;transform:scale(.9);color:var(--vxe-ui-input-date-extra-color)}.vxe-date-panel--label--extra.is-important{color:var(--vxe-ui-input-date-extra-important-color)}.vxe-date-panel--festival{color:var(--vxe-ui-input-date-festival-color);height:1em;line-height:1em;overflow:hidden}.vxe-date-panel--festival.is-important{color:var(--vxe-ui-input-date-festival-important-color)}.vxe-date-panel--festival--label{display:block;font-size:1em;transform:scale(.8)}@keyframes festivalOverlap2{0%,100%,45%{transform:translateY(0)}50%,95%{transform:translateY(-14px)}}@keyframes festivalOverlap3{0%,100%,20%{transform:translateY(0)}25%,45%,75%,95%{transform:translateY(-14px)}50%,70%{transform:translateY(-28px)}}.vxe-date-panel--festival--overlap{display:block;font-size:.86em}.vxe-date-panel--festival--overlap.overlap--2{animation:festivalOverlap2 6s infinite ease-in-out}.vxe-date-panel--festival--overlap.overlap--3{animation:festivalOverlap3 9s infinite ease-in-out}.vxe-date-panel--festival--overlap>span{height:14px;display:block;transform:scale(.8)}.vxe-date-panel--time-body{position:relative;display:flex;flex-direction:row;border:1px solid var(--vxe-ui-base-popup-border-color);flex-grow:1;border-radius:var(--vxe-ui-base-border-radius);-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-date-panel--time-body>ul{height:100%;overflow:hidden;margin:0;padding:0;width:3.2em}.vxe-date-panel--time-body>ul:after,.vxe-date-panel--time-body>ul:before{content:" ";display:block;height:6em}.vxe-date-panel--time-body>ul:hover{overflow-y:auto}.vxe-date-panel--time-body>ul>li{display:block;height:2em;line-height:2em;padding-left:.4em}.vxe-date-panel--time-body>ul>li:not(.is--disabled):hover{background-color:var(--vxe-ui-input-date-picker-hover-background-color);cursor:pointer}.vxe-date-panel--time-body>ul>li.is--selected{font-weight:700;color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--time-body>ul>li.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-date-panel--time-body .vxe-date-panel--time-minute-list{border-left:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-date-panel--time-body .vxe-date-panel--time-second-list{border-left:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-date-panel.type--time .vxe-date-panel--time-body>ul{width:4em}.vxe-date-panel.type--time .vxe-date-panel--time-body>ul>li{height:2.2em;line-height:2.2em;padding-left:.8em}.vxe-date-panel{font-size:var(--vxe-ui-font-size-default)}.vxe-date-panel.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-date-panel.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-date-panel.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ .vxe-date-panel{color:var(--vxe-ui-font-color);flex-shrink:0}.vxe-date-panel--time-layout-wrapper,.vxe-date-panel--wrapper{border:0 solid var(--vxe-ui-base-popup-border-color);border-radius:var(--vxe-ui-base-border-radius)}.vxe-date-panel--time-left-wrapper,.vxe-date-panel--wrapper{display:inline-flex;flex-direction:column;padding:.8em}.vxe-date-panel--time-right-wrapper{padding:.8em .8em .8em 0}.vxe-date-panel--time-layout-wrapper{display:inline-flex;flex-direction:row}.vxe-date-panel--time-title{display:flex;align-items:center;justify-content:center;flex-grow:1;text-align:center;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);height:2em;font-weight:700}.vxe-date-panel--time-header{position:relative;flex-shrink:0}.vxe-date-panel--picker-header,.vxe-date-panel--time-header{display:flex;flex-direction:row;align-items:center;height:3em;padding-bottom:.5em}.vxe-date-panel--picker-header{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-date-panel--picker-header .vxe-date-panel--picker-type-wrapper{flex-grow:1;font-size:1.1em}.vxe-date-panel--picker-header .vxe-date-panel--picker-btn-wrapper{flex-shrink:0;text-align:center}.vxe-date-panel--picker-type-wrapper{display:flex;align-items:center}.vxe-date-panel--picker-type-wrapper .vxe-date-panel--picker-btn,.vxe-date-panel--picker-type-wrapper .vxe-date-panel--picker-label{display:inline-block}.vxe-date-panel--picker-btn-wrapper{display:flex;flex-direction:row}.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-current-btn,.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-next-btn,.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-prev-btn{height:2.2em;padding:0 .5em;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-input-border-color);margin-left:.5em}.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-current-btn i,.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-next-btn i,.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-prev-btn i{font-size:1.2em}.vxe-date-panel--picker-btn-wrapper .vxe-date-panel--picker-btn:not(.is--disabled):active{transform:scale(.9)}.vxe-date-panel--picker-btn,.vxe-date-panel--picker-label{display:flex;align-items:center;justify-content:center;background-color:var(--vxe-ui-layout-background-color)}.vxe-date-panel--picker-btn.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-date-panel--picker-btn:not(.is--disabled){cursor:pointer}.vxe-date-panel--picker-btn:not(.is--disabled):hover{color:var(--vxe-ui-font-primary-color);background-color:#fff}.vxe-date-panel--picker-btn:not(.is--disabled):active{background-color:#fff}.vxe-date-panel--picker-btns .vxe-date-panel--picker-btn{margin-left:.6em}.vxe-date-panel--picker-btns .vxe-date-panel--picker-btn:first-child{margin-left:0}.vxe-date-panel--view-wrapper{display:flex;flex-direction:column;line-height:1.5}.vxe-date-panel--picker-body{border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-date-panel--view-header{box-shadow:inset 0 -1px 0 0 var(--vxe-ui-base-popup-border-color);text-align:center}.vxe-date-panel--view-body{display:inline-flex;flex-direction:column;width:24em}.vxe-date-panel--view-wrapper.type--day .vxe-date-panel--view-body,.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-body{height:18em}.vxe-date-panel--view-header .vxe-date-panel--view-row{height:2em}.vxe-date-panel--time-body,.vxe-date-panel--view-body{height:20em}.vxe-date-panel.type--time .vxe-date-panel--time-body{height:15em}.vxe-date-panel--view-body .vxe-date-panel--view-item{cursor:pointer}.vxe-date-panel--view-body .vxe-date-panel--view-item.is--disabled,.vxe-date-panel--view-body .vxe-date-panel--view-item.is--range-disabled{cursor:no-drop}.vxe-date-panel--view-body .vxe-date-panel--view-item.is--over{cursor:no-drop}.vxe-date-panel--view-row{display:flex;flex-direction:row}.vxe-date-panel--view-item{position:relative;padding:.2em}.vxe-date-panel--view-item.is--next .vxe-date-panel--view-item-inner,.vxe-date-panel--view-item.is--prev .vxe-date-panel--view-item-inner{color:var(--vxe-ui-font-disabled-color)}.vxe-date-panel--view-item.is--next .vxe-date-panel--festival,.vxe-date-panel--view-item.is--next .vxe-date-panel--label,.vxe-date-panel--view-item.is--prev .vxe-date-panel--festival,.vxe-date-panel--view-item.is--prev .vxe-date-panel--label{color:var(--vxe-ui-font-disabled-color)}.vxe-date-panel--view-item.is--now .vxe-date-panel--view-item-inner{color:var(--vxe-ui-base-popup-border-color)}.vxe-date-panel--view-item.is--now:not(.is--selected).is--current{color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item.is--now:not(.is--selected).is--current .vxe-date-panel--festival,.vxe-date-panel--view-item.is--now:not(.is--selected).is--current .vxe-date-panel--label{color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item.is--hover .vxe-date-panel--view-item-inner{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-date-panel--view-item.is--selected .vxe-date-panel--view-item-inner{color:var(--vxe-ui-input-date-picker-selected-color);background-color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item.is--selected.is--hover .vxe-date-panel--view-item-inner{box-shadow:0 0 6px 1px var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item.is--selected.is--next .vxe-date-panel--festival,.vxe-date-panel--view-item.is--selected.is--next .vxe-date-panel--label,.vxe-date-panel--view-item.is--selected.is--prev .vxe-date-panel--festival,.vxe-date-panel--view-item.is--selected.is--prev .vxe-date-panel--label{color:var(--vxe-ui-base-popup-border-color)}.vxe-date-panel--view-item.is--selected .vxe-date-panel--festival,.vxe-date-panel--view-item.is--selected .vxe-date-panel--label{color:var(--vxe-ui-input-date-picker-festival-selected-color)}.vxe-date-panel--view-item.is--selected .vxe-date-panel--label.is-notice:before{background-color:var(--vxe-ui-input-date-picker-notice-selected-background-color)}.vxe-date-panel--view-item.is--range-selected{background-color:var(--vxe-ui-font-primary-tinge-color)}.vxe-date-panel--view-item.is--range-disabled .vxe-date-panel--view-item-inner{color:var(--vxe-ui-input-disabled-color);background-color:inherit}.vxe-date-panel--view-item.is--disabled .vxe-date-panel--view-item-inner{color:var(--vxe-ui-input-disabled-color);background-color:var(--vxe-ui-input-disabled-background-color)}.vxe-date-panel--view-item.is--disabled .vxe-date-panel--festival,.vxe-date-panel--view-item.is--disabled .vxe-date-panel--label{color:var(--vxe-ui-input-disabled-color)}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item{padding:.2em 0}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item .vxe-date-panel--view-item-inner{border-radius:0}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item:first-child{padding:.2em 0 .2em .2em;border-right:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item:first-child .vxe-date-panel--view-item-inner{color:var(--vxe-ui-input-date-festival-color)}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item:last-child{padding:.2em .2em .2em 0}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--hover:first-child .vxe-date-panel--view-item-inner,.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--selected:first-child .vxe-date-panel--view-item-inner{border-radius:var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius)}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--hover:last-child .vxe-date-panel--view-item-inner,.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--selected:last-child .vxe-date-panel--view-item-inner{border-radius:0 var(--vxe-ui-base-border-radius) var(--vxe-ui-base-border-radius) 0}.vxe-date-panel--view-wrapper.type--week .vxe-date-panel--view-item.is--now:not(.is--selected):first-child .vxe-date-panel--view-item-inner{color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--view-item-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;border:1px solid transparent;border-radius:var(--vxe-ui-base-border-radius);overflow:hidden}.vxe-date-panel--view-item-label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-date-panel--festival,.vxe-date-panel--label{width:100%;display:block;overflow:hidden;text-align:center}.vxe-date-panel--label{position:relative;height:1.4em;line-height:1.4em}.vxe-date-panel--label.is-notice:before{content:"";position:absolute;width:.25em;height:.25em;left:50%;top:0;transform:translateX(-50%);border-radius:100%;background-color:var(--vxe-ui-input-date-notice-background-color)}.vxe-date-panel--label--extra{position:absolute;right:-.1em;top:-.4em;font-size:12px;transform:scale(.9);color:var(--vxe-ui-input-date-extra-color)}.vxe-date-panel--label--extra.is-important{color:var(--vxe-ui-input-date-extra-important-color)}.vxe-date-panel--festival{color:var(--vxe-ui-input-date-festival-color);height:1em;line-height:1em;overflow:hidden}.vxe-date-panel--festival.is-important{color:var(--vxe-ui-input-date-festival-important-color)}.vxe-date-panel--festival--label{display:block;font-size:1em;transform:scale(.8)}@keyframes festivalOverlap2{0%,100%,45%{transform:translateY(0)}50%,95%{transform:translateY(-14px)}}@keyframes festivalOverlap3{0%,100%,20%{transform:translateY(0)}25%,45%,75%,95%{transform:translateY(-14px)}50%,70%{transform:translateY(-28px)}}.vxe-date-panel--festival--overlap{display:block;font-size:.86em}.vxe-date-panel--festival--overlap.overlap--2{animation:festivalOverlap2 6s infinite ease-in-out}.vxe-date-panel--festival--overlap.overlap--3{animation:festivalOverlap3 9s infinite ease-in-out}.vxe-date-panel--festival--overlap>span{height:14px;display:block;transform:scale(.8)}.vxe-date-panel--time-body{position:relative;display:flex;flex-direction:row;border:1px solid var(--vxe-ui-base-popup-border-color);flex-grow:1;border-radius:var(--vxe-ui-base-border-radius);-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-date-panel--time-body>ul{height:100%;overflow:hidden;margin:0;padding:0;width:3.2em}.vxe-date-panel--time-body>ul:after,.vxe-date-panel--time-body>ul:before{content:" ";display:block;height:6em}.vxe-date-panel--time-body>ul:hover{overflow-y:auto}.vxe-date-panel--time-body>ul>li{display:block;height:2em;line-height:2em;padding-left:.4em}.vxe-date-panel--time-body>ul>li:not(.is--disabled):hover{background-color:var(--vxe-ui-input-date-picker-hover-background-color);cursor:pointer}.vxe-date-panel--time-body>ul>li.is--selected{font-weight:700;color:var(--vxe-ui-font-primary-color)}.vxe-date-panel--time-body>ul>li.is--disabled{color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-date-panel--time-body .vxe-date-panel--time-minute-list{border-left:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-date-panel--time-body .vxe-date-panel--time-second-list{border-left:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-date-panel.type--time .vxe-date-panel--time-body>ul{width:4em}.vxe-date-panel.type--time .vxe-date-panel--time-body>ul>li{height:2.2em;line-height:2.2em;padding-left:.8em}.vxe-date-panel{font-size:var(--vxe-ui-font-size-default)}.vxe-date-panel.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-date-panel.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-date-panel.size--mini{font-size:var(--vxe-ui-font-size-mini)}
@@ -5,7 +5,7 @@ import { getConfig, getIcon, getI18n, commands, createEvent, globalEvents, GLOBA
5
5
  import { getFuncText, getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils';
6
6
  import { updatePanelPlacement, getEventTargetNode, hasControlKey } from '../../ui/src/dom';
7
7
  import { getSlotVNs } from '../../ui/src/vn';
8
- import { parseDateObj, parseDateValue, getDateByCode, handleValueFormat, hasDateValueType, hasTimestampValueType, isAllSameChar, getChunkDefaultNum } from '../../date-panel/src/util';
8
+ import { parseDateObj, parseDateValue, getDateByCode, handleValueFormat, hasDateValueType, hasTimestampValueType, isAllSameChar, getChunkDefaultNum, checkDateFormat } from '../../date-panel/src/util';
9
9
  import { createComponentLog } from '../../ui/src/log';
10
10
  import VxeDatePanelComponent from '../../date-panel/src/date-panel';
11
11
  import VxeButtonComponent from '../../button/src/button';
@@ -257,6 +257,12 @@ export default defineVxeComponent({
257
257
  }
258
258
  return [];
259
259
  });
260
+ const computeDateStartDate = computed(() => {
261
+ return props.startDate ? XEUtils.toStringDate(props.startDate) : null;
262
+ });
263
+ const computeDateEndDate = computed(() => {
264
+ return props.endDate ? XEUtils.toStringDate(props.endDate) : null;
265
+ });
260
266
  const computeLimitMaxCount = computed(() => {
261
267
  return props.multiple ? XEUtils.toNumber(props.limitCount) : 0;
262
268
  });
@@ -506,13 +512,31 @@ export default defineVxeComponent({
506
512
  handleInputLabel(panelLabel, true);
507
513
  };
508
514
  const afterCheckValue = (inpVal) => {
509
- const { type } = props;
515
+ const { type, editable, multiple, maskedConfig } = props;
510
516
  const { inputLabel } = internalData;
511
517
  const dateLabelFormat = computeDateLabelFormat.value;
518
+ const maskedOpts = computeMaskedOpts.value;
512
519
  if (!inpVal) {
513
520
  handleChange('', { type: 'check' });
514
521
  return;
515
522
  }
523
+ // 掩码格式处理
524
+ if (editable && !multiple && (isEnableConf(maskedConfig) || maskedOpts.enabled)) {
525
+ const allMaskedKeys = dateLabelFormat.match(new RegExp(`(${inputMaskedKeys.join('|')})+`, 'g'));
526
+ if (allMaskedKeys) {
527
+ allMaskedKeys.forEach(formatKey => {
528
+ const fkIndex = dateLabelFormat.indexOf(formatKey);
529
+ if (fkIndex > -1) {
530
+ const val = XEUtils.toNumber(inpVal.slice(fkIndex, formatKey.length).replace(/\D/g, ''));
531
+ inpVal = inpVal.slice(0, fkIndex) + XEUtils.padStart(checkDateFormat(val, formatKey), formatKey.length, '0') + inpVal.slice(fkIndex + formatKey.length);
532
+ }
533
+ });
534
+ }
535
+ }
536
+ const $datePanel = refDatePanel.value;
537
+ if ($datePanel) {
538
+ return $datePanel.checkValue(inpVal);
539
+ }
516
540
  let inpDateVal = parseDateValue(inpVal, type, {
517
541
  valueFormat: dateLabelFormat
518
542
  });
@@ -560,6 +584,16 @@ export default defineVxeComponent({
560
584
  dispatchEvent('suffix-click', { value: inputValue }, evnt);
561
585
  }
562
586
  };
587
+ const checkMaskedInputValue = (numStr, chunkFormat, isFull) => {
588
+ const maskedOpts = computeMaskedOpts.value;
589
+ const { align } = maskedOpts;
590
+ const maskChar = computeMaskChar.value;
591
+ const restVal = checkDateFormat(XEUtils.toNumber(numStr), chunkFormat);
592
+ if (isFull) {
593
+ return XEUtils.padStart(restVal, chunkFormat.length, '0');
594
+ }
595
+ return XEUtils[align === 'right' ? 'padStart' : 'padEnd'](restVal, chunkFormat.length, maskChar);
596
+ };
563
597
  const handleArrowInputDate = (evnt, isUpArrow, isDwArrow, isLtArrow, isRtArrow) => {
564
598
  const { type, multiple } = props;
565
599
  if (multiple) {
@@ -593,7 +627,7 @@ export default defineVxeComponent({
593
627
  const chunkValue = inpValue.slice(chunkStartIndex, chunkEndIndex);
594
628
  if (parseInputKayMaps[selectKey]) {
595
629
  const chunkNum = (isAllSameChar(chunkValue, maskChar) ? getChunkDefaultNum(selectKey) : XEUtils.toNumber(chunkValue)) + (isUpArrow ? 1 : -1);
596
- const restValue = inpValue.slice(0, chunkStartIndex) + XEUtils.padStart(chunkNum, chunkFormat.length, '0') + inpValue.slice(chunkEndIndex);
630
+ const restValue = inpValue.slice(0, chunkStartIndex) + checkMaskedInputValue(chunkNum, chunkFormat, true) + inpValue.slice(chunkEndIndex);
597
631
  evnt.preventDefault();
598
632
  if (restValue.indexOf(maskChar) === -1) {
599
633
  // 解析日期
@@ -654,6 +688,8 @@ export default defineVxeComponent({
654
688
  return;
655
689
  }
656
690
  const { isTriggerMasked } = internalData;
691
+ const maskedOpts = computeMaskedOpts.value;
692
+ const { align } = maskedOpts;
657
693
  const dateMaskedFormat = computeDateMaskedFormat.value;
658
694
  const maskChar = computeMaskChar.value;
659
695
  let inpValue = targetElem.value || dateMaskedFormat;
@@ -673,7 +709,7 @@ export default defineVxeComponent({
673
709
  const chunkEndIndex = chunkStartIndex + chunkFormat.length;
674
710
  const currKeyIndex = allMaskedKeys.indexOf(selectKey);
675
711
  // 全选 | 如果无效字符
676
- const isAllSelected = !selectionStart && selectionEnd === inpValue.length;
712
+ const isAllSelected = !selectionStart && selectionEnd === inpValue.length && allMaskedKeys.length > 1;
677
713
  const isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
678
714
  if (isAllSelected || isNotMasked) {
679
715
  inpValue = dateMaskedFormat;
@@ -683,11 +719,12 @@ export default defineVxeComponent({
683
719
  const chunkNumList = isTriggerMasked && !isBackspaceKey ? [] : chunkNums.slice(0);
684
720
  if (isNumKey) {
685
721
  chunkNumList.push(numKey);
722
+ chunkValue = checkMaskedInputValue(chunkNumList.join(''), chunkFormat, false);
686
723
  }
687
724
  else if (isBackspaceKey) {
688
725
  chunkNumList.pop();
726
+ chunkValue = XEUtils[align === 'right' ? 'padStart' : 'padEnd'](chunkNumList.join(''), chunkFormat.length, maskChar);
689
727
  }
690
- chunkValue = chunkNumList.join('').padEnd(chunkFormat.length, maskChar);
691
728
  let restValue = inpValue.slice(0, chunkStartIndex) + chunkValue + inpValue.slice(chunkEndIndex);
692
729
  restValue = restValue.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
693
730
  targetElem.value = restValue;
@@ -719,7 +756,7 @@ export default defineVxeComponent({
719
756
  const prveChunkNums = (prveChunkValue.match(/\d/g) || []);
720
757
  if (prveChunkNums.length) {
721
758
  prveChunkNums.pop();
722
- prveChunkValue = prveChunkNums.join('').padEnd(prveChunkFormat.length, maskChar);
759
+ prveChunkValue = XEUtils[align === 'right' ? 'padStart' : 'padEnd'](prveChunkNums.join(''), prveChunkFormat.length, maskChar);
723
760
  restValue = restValue.slice(0, prveChunkStartIndex) + prveChunkValue + restValue.slice(prveChunkEndIndex);
724
761
  targetElem.value = restValue;
725
762
  handleInputLabel(restValue, false);
@@ -809,7 +846,7 @@ export default defineVxeComponent({
809
846
  }
810
847
  }
811
848
  // 全选 | 如果无效字符
812
- const isAllSelected = !selectionStart && selectionEnd === inpValue.length;
849
+ const isAllSelected = !selectionStart && selectionEnd === inpValue.length && allMaskedKeys.length > 1;
813
850
  const isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
814
851
  if (isAllSelected || isNotMasked) {
815
852
  let restValue = '';
@@ -853,7 +890,6 @@ export default defineVxeComponent({
853
890
  }
854
891
  };
855
892
  const blurEvent = (evnt) => {
856
- const $datePanel = refDatePanel.value;
857
893
  const { inputValue } = reactData;
858
894
  const inpImmediate = computeInpImmediate.value;
859
895
  const value = inputValue;
@@ -864,12 +900,7 @@ export default defineVxeComponent({
864
900
  const { inputLabel } = internalData;
865
901
  reactData.isActivated = false;
866
902
  // 未打开面板时才校验
867
- if ($datePanel) {
868
- $datePanel.checkValue(inputLabel);
869
- }
870
- else {
871
- afterCheckValue(inputLabel);
872
- }
903
+ afterCheckValue(inputLabel);
873
904
  }
874
905
  dispatchEvent('blur', { value }, evnt);
875
906
  // 自动更新校验状态
@@ -925,18 +956,12 @@ export default defineVxeComponent({
925
956
  const isEnter = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER);
926
957
  if (editable) {
927
958
  if (isEnter) {
928
- const $datePanel = refDatePanel.value;
929
959
  const { inputLabel } = internalData;
930
960
  const targetElem = refInputTarget.value;
931
961
  if (visiblePanel) {
932
962
  hidePanel();
933
963
  }
934
- if ($datePanel) {
935
- $datePanel.checkValue(inputLabel);
936
- }
937
- else {
938
- afterCheckValue(inputLabel);
939
- }
964
+ afterCheckValue(inputLabel);
940
965
  if (targetElem) {
941
966
  targetElem.blur();
942
967
  }
@@ -983,7 +1008,6 @@ export default defineVxeComponent({
983
1008
  };
984
1009
  // 全局事件
985
1010
  const handleGlobalMousedownEvent = (evnt) => {
986
- const $datePanel = refDatePanel.value;
987
1011
  const { visiblePanel, isActivated } = reactData;
988
1012
  const el = refElem.value;
989
1013
  const panelWrapperElem = refPanelWrapper.value;
@@ -997,12 +1021,7 @@ export default defineVxeComponent({
997
1021
  if (visiblePanel) {
998
1022
  hidePanel();
999
1023
  const { inputLabel } = internalData;
1000
- if ($datePanel) {
1001
- $datePanel.checkValue(inputLabel);
1002
- }
1003
- else {
1004
- afterCheckValue(inputLabel);
1005
- }
1024
+ afterCheckValue(inputLabel);
1006
1025
  }
1007
1026
  }
1008
1027
  }
@@ -1041,7 +1060,6 @@ export default defineVxeComponent({
1041
1060
  }
1042
1061
  };
1043
1062
  const handleGlobalBlurEvent = () => {
1044
- const $datePanel = refDatePanel.value;
1045
1063
  const { isActivated, visiblePanel } = reactData;
1046
1064
  if (visiblePanel) {
1047
1065
  hidePanel();
@@ -1050,9 +1068,7 @@ export default defineVxeComponent({
1050
1068
  reactData.isActivated = false;
1051
1069
  }
1052
1070
  if (visiblePanel || isActivated) {
1053
- if ($datePanel) {
1054
- $datePanel.checkValue(internalData.inputLabel);
1055
- }
1071
+ afterCheckValue(internalData.inputLabel);
1056
1072
  const targetElem = refInputTarget.value;
1057
1073
  if (targetElem) {
1058
1074
  targetElem.blur();
@@ -1265,6 +1281,8 @@ export default defineVxeComponent({
1265
1281
  const isDateTimeType = computeIsDateTimeType.value;
1266
1282
  const shortcutList = computeShortcutList.value;
1267
1283
  const timeOpts = computeTimeOpts.value;
1284
+ const dateStartDate = computeDateStartDate.value;
1285
+ const dateEndDate = computeDateEndDate.value;
1268
1286
  const { position } = shortcutOpts;
1269
1287
  const headerSlot = slots.header;
1270
1288
  const footerSlot = slots.footer;
@@ -1333,8 +1351,8 @@ export default defineVxeComponent({
1333
1351
  className: props.className,
1334
1352
  multiple: props.multiple,
1335
1353
  limitCount: props.limitCount,
1336
- startDate: props.startDate,
1337
- endDate: props.endDate,
1354
+ startDate: dateStartDate,
1355
+ endDate: dateEndDate,
1338
1356
  defaultDate: props.defaultDate,
1339
1357
  defaultTime: props.defaultTime,
1340
1358
  minDate: props.minDate,