vxe-pc-ui 3.15.4 → 3.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 (102) hide show
  1. package/es/cascader/src/cascader.js +2 -2
  2. package/es/collapse/src/collapse.js +101 -14
  3. package/es/collapse/style.css +36 -9
  4. package/es/collapse/style.min.css +1 -1
  5. package/es/date-panel/src/util.js +16 -0
  6. package/es/date-panel/style.css +1 -1
  7. package/es/date-panel/style.min.css +1 -1
  8. package/es/date-picker/src/date-picker.js +57 -34
  9. package/es/icon/{iconfont.1781876590487.ttf → iconfont.1782111174200.ttf} +0 -0
  10. package/es/icon/iconfont.1782111174200.woff +0 -0
  11. package/es/icon/iconfont.1782111174200.woff2 +0 -0
  12. package/es/icon/style.css +5 -1
  13. package/es/icon/style.min.css +1 -1
  14. package/{lib/icon/style/iconfont.1781876590487.ttf → es/iconfont.1782111174200.ttf} +0 -0
  15. package/es/iconfont.1782111174200.woff +0 -0
  16. package/es/iconfont.1782111174200.woff2 +0 -0
  17. package/es/pulldown/src/pulldown.js +3 -3
  18. package/es/style.css +1 -1
  19. package/es/style.min.css +1 -1
  20. package/es/table-select/src/table-select.js +1 -1
  21. package/es/tree-select/src/tree-select.js +3 -3
  22. package/es/ui/index.js +3 -1
  23. package/es/ui/src/log.js +1 -1
  24. package/es/vxe-collapse/style.css +36 -9
  25. package/es/vxe-collapse/style.min.css +1 -1
  26. package/es/vxe-date-panel/style.css +1 -1
  27. package/es/vxe-date-panel/style.min.css +1 -1
  28. package/es/vxe-icon/style.css +5 -1
  29. package/es/vxe-icon/style.min.css +1 -1
  30. package/lib/cascader/src/cascader.js +6 -2
  31. package/lib/cascader/src/cascader.min.js +1 -1
  32. package/lib/collapse/src/collapse.js +101 -12
  33. package/lib/collapse/src/collapse.min.js +1 -1
  34. package/lib/collapse/style/style.css +36 -9
  35. package/lib/collapse/style/style.min.css +1 -1
  36. package/lib/date-panel/src/util.js +17 -0
  37. package/lib/date-panel/src/util.min.js +1 -1
  38. package/lib/date-panel/style/style.css +1 -1
  39. package/lib/date-panel/style/style.min.css +1 -1
  40. package/lib/date-picker/src/date-picker.js +59 -30
  41. package/lib/date-picker/src/date-picker.min.js +1 -1
  42. package/lib/{iconfont.1781876590487.ttf → icon/style/iconfont.1782111174200.ttf} +0 -0
  43. package/lib/icon/style/iconfont.1782111174200.woff +0 -0
  44. package/lib/icon/style/iconfont.1782111174200.woff2 +0 -0
  45. package/lib/icon/style/style.css +5 -1
  46. package/lib/icon/style/style.min.css +5 -1
  47. package/{es/iconfont.1781876590487.ttf → lib/iconfont.1782111174200.ttf} +0 -0
  48. package/lib/iconfont.1782111174200.woff +0 -0
  49. package/lib/iconfont.1782111174200.woff2 +0 -0
  50. package/lib/index.umd.js +497 -366
  51. package/lib/index.umd.min.js +1 -1
  52. package/lib/pulldown/src/pulldown.js +9 -3
  53. package/lib/pulldown/src/pulldown.min.js +1 -1
  54. package/lib/style.css +1 -1
  55. package/lib/style.min.css +1 -1
  56. package/lib/table-select/src/table-select.js +3 -1
  57. package/lib/table-select/src/table-select.min.js +1 -1
  58. package/lib/tree-select/src/tree-select.js +9 -3
  59. package/lib/tree-select/src/tree-select.min.js +1 -1
  60. package/lib/ui/index.js +3 -1
  61. package/lib/ui/index.min.js +1 -1
  62. package/lib/ui/src/log.js +1 -1
  63. package/lib/ui/src/log.min.js +1 -1
  64. package/lib/vxe-collapse/style/style.css +36 -9
  65. package/lib/vxe-collapse/style/style.min.css +1 -1
  66. package/lib/vxe-date-panel/style/style.css +1 -1
  67. package/lib/vxe-date-panel/style/style.min.css +1 -1
  68. package/lib/vxe-icon/style/style.css +5 -1
  69. package/lib/vxe-icon/style/style.min.css +1 -1
  70. package/package.json +2 -2
  71. package/packages/cascader/src/cascader.ts +2 -2
  72. package/packages/collapse/src/collapse.ts +112 -16
  73. package/packages/date-panel/src/util.ts +18 -0
  74. package/packages/date-picker/src/date-picker.ts +63 -31
  75. package/packages/pulldown/src/pulldown.ts +3 -3
  76. package/packages/table-select/src/table-select.ts +1 -1
  77. package/packages/tree-select/src/tree-select.ts +3 -3
  78. package/packages/ui/index.ts +2 -0
  79. package/styles/components/collapse.scss +36 -11
  80. package/styles/components/date-panel.scss +1 -1
  81. package/styles/components/icon.scss +5 -1
  82. package/styles/icon/iconfont.ttf +0 -0
  83. package/styles/icon/iconfont.woff +0 -0
  84. package/styles/icon/iconfont.woff2 +0 -0
  85. package/styles/theme/base.scss +7 -0
  86. package/styles/theme/dark.scss +5 -3
  87. package/styles/theme/light.scss +3 -1
  88. package/styles/variable.scss +5 -2
  89. package/types/components/cascader.d.ts +1 -1
  90. package/types/components/collapse.d.ts +11 -3
  91. package/types/components/date-panel.d.ts +6 -6
  92. package/types/components/date-picker.d.ts +4 -0
  93. package/types/components/icon.d.ts +1 -1
  94. package/types/components/table.d.ts +16 -2
  95. package/es/icon/iconfont.1781876590487.woff +0 -0
  96. package/es/icon/iconfont.1781876590487.woff2 +0 -0
  97. package/es/iconfont.1781876590487.woff +0 -0
  98. package/es/iconfont.1781876590487.woff2 +0 -0
  99. package/lib/icon/style/iconfont.1781876590487.woff +0 -0
  100. package/lib/icon/style/iconfont.1781876590487.woff2 +0 -0
  101. package/lib/iconfont.1781876590487.woff +0 -0
  102. package/lib/iconfont.1781876590487.woff2 +0 -0
@@ -95,11 +95,11 @@ export default {
95
95
  filterConfig: Object,
96
96
  showFullLabel: {
97
97
  type: Boolean,
98
- default: getConfig().cascader.showFullLabel
98
+ default: () => getConfig().cascader.showFullLabel
99
99
  },
100
100
  separator: {
101
101
  type: String,
102
- default: getConfig().cascader.separator
102
+ default: () => getConfig().cascader.separator
103
103
  },
104
104
  multiple: Boolean,
105
105
  className: [String, Function],
@@ -1,7 +1,21 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import { getConfig, getIcon, createEvent, permission, renderEmptyElement, globalMixins } from '../../ui';
3
+ import { toCssUnit } from '../../ui/src/dom';
3
4
  import { getSlotVNs } from '../../ui/src/vn';
4
5
  import XEUtils from 'xe-utils';
6
+ function createReactData() {
7
+ return {
8
+ staticPanes: [],
9
+ activeNames: [],
10
+ initNames: [],
11
+ cachePaneMaps: {}
12
+ };
13
+ }
14
+ function createInternalData() {
15
+ return {
16
+ // esTime: null
17
+ };
18
+ }
5
19
  export default {
6
20
  name: 'VxeCollapse',
7
21
  mixins: [
@@ -9,12 +23,16 @@ export default {
9
23
  globalMixins.permissionMixin
10
24
  ],
11
25
  props: {
12
- modelValue: Array,
26
+ value: Array,
13
27
  options: Array,
14
28
  padding: {
15
29
  type: Boolean,
16
30
  default: () => getConfig().collapse.padding
17
31
  },
32
+ border: {
33
+ type: Boolean,
34
+ default: () => getConfig().collapse.border
35
+ },
18
36
  expandConfig: Object,
19
37
  size: {
20
38
  type: String,
@@ -29,16 +47,9 @@ export default {
29
47
  },
30
48
  data() {
31
49
  const xID = XEUtils.uniqueId();
32
- const reactData = {
33
- staticPanes: [],
34
- activeNames: [],
35
- initNames: [],
36
- cachePaneMaps: {}
37
- };
38
- return {
39
- xID,
40
- reactData
41
- };
50
+ const reactData = createReactData();
51
+ return Object.assign(Object.assign({}, {}), { xID,
52
+ reactData });
42
53
  },
43
54
  computed: Object.assign(Object.assign({}, {}), { computeItemOptions() {
44
55
  const $xeCollapse = this;
@@ -56,6 +67,11 @@ export default {
56
67
  const $xeCollapse = this;
57
68
  const props = $xeCollapse;
58
69
  return Object.assign({}, getConfig().collapse.expandConfig, props.expandConfig);
70
+ },
71
+ computeSpFlag() {
72
+ const $xeCollapse = this;
73
+ const reactData = $xeCollapse.reactData;
74
+ return reactData.staticPanes;
59
75
  } }),
60
76
  methods: {
61
77
  //
@@ -96,6 +112,7 @@ export default {
96
112
  if (name) {
97
113
  const isActive = activeNames.includes(name);
98
114
  nameMaps[`${name}`] = {
115
+ height: 0,
99
116
  loading: false
100
117
  };
101
118
  if (isActive) {
@@ -128,9 +145,12 @@ export default {
128
145
  handleClickEvent(evnt, item) {
129
146
  const $xeCollapse = this;
130
147
  const reactData = $xeCollapse.reactData;
148
+ const internalData = $xeCollapse.internalData;
131
149
  const { activeNames } = reactData;
132
150
  const { name } = item;
133
151
  if (name) {
152
+ const headEl = evnt.currentTarget;
153
+ const bodyEl = headEl.nextElementSibling;
134
154
  const aIndex = activeNames.indexOf(name);
135
155
  let expanded = false;
136
156
  if (aIndex === -1) {
@@ -140,6 +160,35 @@ export default {
140
160
  else {
141
161
  activeNames.splice(aIndex, 1);
142
162
  }
163
+ const startAnimation = () => {
164
+ const itemEl = bodyEl.firstElementChild;
165
+ if (itemEl) {
166
+ bodyEl.style.height = toCssUnit(itemEl.scrollHeight);
167
+ if (expanded) {
168
+ internalData.esTime = setTimeout(() => {
169
+ bodyEl.style.height = '';
170
+ internalData.esTime = undefined;
171
+ }, 200);
172
+ }
173
+ else {
174
+ $xeCollapse.$nextTick(() => {
175
+ requestAnimationFrame(() => {
176
+ bodyEl.style.height = '';
177
+ });
178
+ });
179
+ }
180
+ }
181
+ };
182
+ if (bodyEl) {
183
+ const itemEl = bodyEl.firstElementChild;
184
+ if (itemEl) {
185
+ startAnimation();
186
+ }
187
+ else {
188
+ bodyEl.style.height = '0';
189
+ $xeCollapse.$nextTick(startAnimation);
190
+ }
191
+ }
143
192
  $xeCollapse.addInitName(name);
144
193
  $xeCollapse.dispatchEvent('change', { value: activeNames, name }, evnt);
145
194
  $xeCollapse.dispatchEvent('toggle-expand', { value: activeNames, name, expanded }, evnt);
@@ -193,7 +242,8 @@ export default {
193
242
  ]),
194
243
  h('div', {
195
244
  class: ['vxe-collapse--item-content', {
196
- 'is--visible': isActive
245
+ 'is--visible': isActive,
246
+ 'is--hidden': !isActive
197
247
  }]
198
248
  }, [
199
249
  name && initNames.includes(name)
@@ -211,7 +261,7 @@ export default {
211
261
  const $xeCollapse = this;
212
262
  const props = $xeCollapse;
213
263
  const slots = $xeCollapse.$scopedSlots;
214
- const { padding } = props;
264
+ const { padding, border } = props;
215
265
  const vSize = $xeCollapse.computeSize;
216
266
  const itemOptions = $xeCollapse.computeItemOptions;
217
267
  const itemStaticOptions = $xeCollapse.computeItemStaticOptions;
@@ -221,7 +271,8 @@ export default {
221
271
  ref: 'refElem',
222
272
  class: ['vxe-collapse', {
223
273
  [`size--${vSize}`]: vSize,
224
- 'is--padding': padding
274
+ 'is--padding': padding,
275
+ 'is--border': border
225
276
  }]
226
277
  }, [
227
278
  h('div', {
@@ -231,6 +282,42 @@ export default {
231
282
  ]);
232
283
  }
233
284
  },
285
+ watch: {
286
+ value(val) {
287
+ const $xeCollapse = this;
288
+ const reactData = $xeCollapse.reactData;
289
+ reactData.activeNames = val || [];
290
+ },
291
+ options() {
292
+ const $xeCollapse = this;
293
+ const props = $xeCollapse;
294
+ $xeCollapse.initDefaultName(props.options);
295
+ },
296
+ computeSpFlag() {
297
+ const $xeCollapse = this;
298
+ const reactData = $xeCollapse.reactData;
299
+ $xeCollapse.initDefaultName(reactData.staticPanes);
300
+ }
301
+ },
302
+ created() {
303
+ const $xeCollapse = this;
304
+ const props = $xeCollapse;
305
+ const reactData = $xeCollapse.reactData;
306
+ $xeCollapse.internalData = createInternalData();
307
+ reactData.activeNames = props.value || [];
308
+ $xeCollapse.initDefaultName(reactData.staticPanes.length ? reactData.staticPanes : props.options);
309
+ },
310
+ destroyed() {
311
+ const $xeCollapse = this;
312
+ const reactData = $xeCollapse.reactData;
313
+ const internalData = $xeCollapse.internalData;
314
+ const { esTime } = internalData;
315
+ if (esTime) {
316
+ clearTimeout(esTime);
317
+ }
318
+ XEUtils.assign(reactData, createReactData());
319
+ XEUtils.assign(internalData, createInternalData());
320
+ },
234
321
  render(h) {
235
322
  return this.renderVN(h);
236
323
  }
@@ -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
 
@@ -45,12 +61,23 @@
45
61
  transition: transform 0.2s ease-in-out;
46
62
  }
47
63
 
64
+ .vxe-collapse {
65
+ --vxe-ui-collapse-font-size: var(--vxe-ui-font-size-default);
66
+ --vxe-ui-collapse-scope-min-height: var(--vxe-ui-collapse-min-height-default);
67
+ --vxe-ui-collapse-scope-padding: var(--vxe-ui-layout-padding-double);
68
+ }
48
69
  .vxe-collapse.size--medium {
49
- font-size: var(--vxe-ui-font-size-medium);
70
+ --vxe-ui-collapse-font-size:var(--vxe-ui-font-size-medium);
71
+ --vxe-ui-collapse-scope-min-height: var(--vxe-ui-collapse-min-height-medium);
72
+ --vxe-ui-collapse-scope-padding: calc(var(--vxe-ui-layout-padding-double) - 4px);
50
73
  }
51
74
  .vxe-collapse.size--small {
52
- font-size: var(--vxe-ui-font-size-small);
75
+ --vxe-ui-collapse-font-size:var(--vxe-ui-font-size-small);
76
+ --vxe-ui-collapse-scope-min-height: var(--vxe-ui-collapse-min-height-small);
77
+ --vxe-ui-collapse-scope-padding: calc(var(--vxe-ui-layout-padding-double) - 6px);
53
78
  }
54
79
  .vxe-collapse.size--mini {
55
- font-size: var(--vxe-ui-font-size-mini);
80
+ --vxe-ui-collapse-font-size:var(--vxe-ui-font-size-mini);
81
+ --vxe-ui-collapse-scope-min-height: var(--vxe-ui-collapse-min-height-mini);
82
+ --vxe-ui-collapse-scope-padding: calc(var(--vxe-ui-layout-padding-double) - 8px);
56
83
  }
@@ -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;-ms-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;-ms-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
+ }
@@ -208,7 +208,7 @@
208
208
  color: var(--vxe-ui-font-primary-color);
209
209
  }
210
210
  .vxe-date-panel--view-item.is--hover .vxe-date-panel--view-item-inner {
211
- background-color: var(--vxe-ui-font-primary-tinge-color);
211
+ background-color: var(--vxe-ui-base-hover-background-color);
212
212
  }
213
213
  .vxe-date-panel--view-item.is--selected .vxe-date-panel--view-item-inner {
214
214
  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;-ms-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;-ms-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;-ms-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;-ms-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;-ms-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;-ms-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)}
@@ -4,7 +4,7 @@ import { getConfig, getIcon, getI18n, commands, createEvent, globalEvents, GLOBA
4
4
  import { getFuncText, getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils';
5
5
  import { updatePanelPlacement, getEventTargetNode, hasControlKey } from '../../ui/src/dom';
6
6
  import { getSlotVNs } from '../../ui/src/vn';
7
- import { parseDateObj, parseDateValue, getDateByCode, handleValueFormat, hasDateValueType, hasTimestampValueType, isAllSameChar, getChunkDefaultNum } from '../../date-panel/src/util';
7
+ import { parseDateObj, parseDateValue, getDateByCode, handleValueFormat, hasDateValueType, hasTimestampValueType, isAllSameChar, getChunkDefaultNum, checkDateFormat } from '../../date-panel/src/util';
8
8
  import { createComponentLog } from '../../ui/src/log';
9
9
  import VxeDatePanelComponent from '../../date-panel/src/date-panel';
10
10
  import VxeButtonComponent from '../../button/src/button';
@@ -269,6 +269,16 @@ export default {
269
269
  }
270
270
  return [];
271
271
  },
272
+ computeDateStartDate() {
273
+ const $xeDatePicker = this;
274
+ const props = $xeDatePicker;
275
+ return props.startDate ? XEUtils.toStringDate(props.startDate) : null;
276
+ },
277
+ computeDateEndDate() {
278
+ const $xeDatePicker = this;
279
+ const props = $xeDatePicker;
280
+ return props.endDate ? XEUtils.toStringDate(props.endDate) : null;
281
+ },
272
282
  computeLimitMaxCount() {
273
283
  const $xeDatePicker = this;
274
284
  const props = $xeDatePicker;
@@ -594,13 +604,31 @@ export default {
594
604
  const props = $xeDatePicker;
595
605
  const reactData = $xeDatePicker.reactData;
596
606
  const internalData = $xeDatePicker.internalData;
597
- const { type } = props;
607
+ const { type, editable, multiple, maskedConfig } = props;
598
608
  const { inputLabel } = internalData;
599
609
  const dateLabelFormat = $xeDatePicker.computeDateLabelFormat;
610
+ const maskedOpts = $xeDatePicker.computeMaskedOpts;
600
611
  if (!inpVal) {
601
612
  $xeDatePicker.handleChange('', { type: 'check' });
602
613
  return;
603
614
  }
615
+ // 掩码格式处理
616
+ if (editable && !multiple && (isEnableConf(maskedConfig) || maskedOpts.enabled)) {
617
+ const allMaskedKeys = dateLabelFormat.match(new RegExp(`(${inputMaskedKeys.join('|')})+`, 'g'));
618
+ if (allMaskedKeys) {
619
+ allMaskedKeys.forEach(formatKey => {
620
+ const fkIndex = dateLabelFormat.indexOf(formatKey);
621
+ if (fkIndex > -1) {
622
+ const val = XEUtils.toNumber(inpVal.slice(fkIndex, formatKey.length).replace(/\D/g, ''));
623
+ inpVal = inpVal.slice(0, fkIndex) + XEUtils.padStart(checkDateFormat(val, formatKey), formatKey.length, '0') + inpVal.slice(fkIndex + formatKey.length);
624
+ }
625
+ });
626
+ }
627
+ }
628
+ const $datePanel = $xeDatePicker.$refs.refDatePanel;
629
+ if ($datePanel) {
630
+ return $datePanel.checkValue(inpVal);
631
+ }
604
632
  let inpDateVal = parseDateValue(inpVal, type, {
605
633
  valueFormat: dateLabelFormat
606
634
  });
@@ -651,6 +679,17 @@ export default {
651
679
  $xeDatePicker.dispatchEvent('suffix-click', { value: inputValue }, evnt);
652
680
  }
653
681
  },
682
+ checkMaskedInputValue(numStr, chunkFormat, isFull) {
683
+ const $xeDatePicker = this;
684
+ const maskedOpts = $xeDatePicker.computeMaskedOpts;
685
+ const { align } = maskedOpts;
686
+ const maskChar = $xeDatePicker.computeMaskChar;
687
+ const restVal = checkDateFormat(XEUtils.toNumber(numStr), chunkFormat);
688
+ if (isFull) {
689
+ return XEUtils.padStart(restVal, chunkFormat.length, '0');
690
+ }
691
+ return XEUtils[align === 'right' ? 'padStart' : 'padEnd'](restVal, chunkFormat.length, maskChar);
692
+ },
654
693
  handleArrowInputDate(evnt, isUpArrow, isDwArrow, isLtArrow, isRtArrow) {
655
694
  const $xeDatePicker = this;
656
695
  const props = $xeDatePicker;
@@ -687,7 +726,7 @@ export default {
687
726
  const chunkValue = inpValue.slice(chunkStartIndex, chunkEndIndex);
688
727
  if (parseInputKayMaps[selectKey]) {
689
728
  const chunkNum = (isAllSameChar(chunkValue, maskChar) ? getChunkDefaultNum(selectKey) : XEUtils.toNumber(chunkValue)) + (isUpArrow ? 1 : -1);
690
- const restValue = inpValue.slice(0, chunkStartIndex) + XEUtils.padStart(chunkNum, chunkFormat.length, '0') + inpValue.slice(chunkEndIndex);
729
+ const restValue = inpValue.slice(0, chunkStartIndex) + $xeDatePicker.checkMaskedInputValue(chunkNum, chunkFormat, true) + inpValue.slice(chunkEndIndex);
691
730
  evnt.preventDefault();
692
731
  if (restValue.indexOf(maskChar) === -1) {
693
732
  // 解析日期
@@ -751,6 +790,8 @@ export default {
751
790
  return;
752
791
  }
753
792
  const { isTriggerMasked } = internalData;
793
+ const maskedOpts = $xeDatePicker.computeMaskedOpts;
794
+ const { align } = maskedOpts;
754
795
  const dateMaskedFormat = $xeDatePicker.computeDateMaskedFormat;
755
796
  const maskChar = $xeDatePicker.computeMaskChar;
756
797
  let inpValue = targetElem.value || dateMaskedFormat;
@@ -770,7 +811,7 @@ export default {
770
811
  const chunkEndIndex = chunkStartIndex + chunkFormat.length;
771
812
  const currKeyIndex = allMaskedKeys.indexOf(selectKey);
772
813
  // 全选 | 如果无效字符
773
- const isAllSelected = !selectionStart && selectionEnd === inpValue.length;
814
+ const isAllSelected = !selectionStart && selectionEnd === inpValue.length && allMaskedKeys.length > 1;
774
815
  const isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
775
816
  if (isAllSelected || isNotMasked) {
776
817
  inpValue = dateMaskedFormat;
@@ -780,11 +821,12 @@ export default {
780
821
  const chunkNumList = isTriggerMasked && !isBackspaceKey ? [] : chunkNums.slice(0);
781
822
  if (isNumKey) {
782
823
  chunkNumList.push(numKey);
824
+ chunkValue = $xeDatePicker.checkMaskedInputValue(chunkNumList.join(''), chunkFormat, false);
783
825
  }
784
826
  else if (isBackspaceKey) {
785
827
  chunkNumList.pop();
828
+ chunkValue = XEUtils[align === 'right' ? 'padStart' : 'padEnd'](chunkNumList.join(''), chunkFormat.length, maskChar);
786
829
  }
787
- chunkValue = chunkNumList.join('').padEnd(chunkFormat.length, maskChar);
788
830
  let restValue = inpValue.slice(0, chunkStartIndex) + chunkValue + inpValue.slice(chunkEndIndex);
789
831
  restValue = restValue.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
790
832
  targetElem.value = restValue;
@@ -816,7 +858,7 @@ export default {
816
858
  const prveChunkNums = (prveChunkValue.match(/\d/g) || []);
817
859
  if (prveChunkNums.length) {
818
860
  prveChunkNums.pop();
819
- prveChunkValue = prveChunkNums.join('').padEnd(prveChunkFormat.length, maskChar);
861
+ prveChunkValue = XEUtils[align === 'right' ? 'padStart' : 'padEnd'](prveChunkNums.join(''), prveChunkFormat.length, maskChar);
820
862
  restValue = restValue.slice(0, prveChunkStartIndex) + prveChunkValue + restValue.slice(prveChunkEndIndex);
821
863
  targetElem.value = restValue;
822
864
  $xeDatePicker.handleInputLabel(restValue, false);
@@ -909,7 +951,7 @@ export default {
909
951
  }
910
952
  }
911
953
  // 全选 | 如果无效字符
912
- const isAllSelected = !selectionStart && selectionEnd === inpValue.length;
954
+ const isAllSelected = !selectionStart && selectionEnd === inpValue.length && allMaskedKeys.length > 1;
913
955
  const isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
914
956
  if (isAllSelected || isNotMasked) {
915
957
  let restValue = '';
@@ -958,7 +1000,6 @@ export default {
958
1000
  const internalData = $xeDatePicker.internalData;
959
1001
  const $xeForm = $xeDatePicker.$xeForm;
960
1002
  const formItemInfo = $xeDatePicker.formItemInfo;
961
- const $datePanel = $xeDatePicker.$refs.refDatePanel;
962
1003
  const { inputValue } = reactData;
963
1004
  const inpImmediate = $xeDatePicker.computeInpImmediate;
964
1005
  const value = inputValue;
@@ -969,12 +1010,7 @@ export default {
969
1010
  const { inputLabel } = internalData;
970
1011
  reactData.isActivated = false;
971
1012
  // 未打开面板时才校验
972
- if ($datePanel) {
973
- $datePanel.checkValue(inputLabel);
974
- }
975
- else {
976
- $xeDatePicker.afterCheckValue(inputLabel);
977
- }
1013
+ $xeDatePicker.afterCheckValue(inputLabel);
978
1014
  }
979
1015
  $xeDatePicker.dispatchEvent('blur', { value }, evnt);
980
1016
  // 自动更新校验状态
@@ -1039,18 +1075,12 @@ export default {
1039
1075
  const isEnter = globalEvents.hasKey(evnt, GLOBAL_EVENT_KEYS.ENTER);
1040
1076
  if (editable) {
1041
1077
  if (isEnter) {
1042
- const $datePanel = $xeDatePicker.$refs.refDatePanel;
1043
1078
  const { inputLabel } = internalData;
1044
1079
  const targetElem = $xeDatePicker.$refs.refInputTarget;
1045
1080
  if (visiblePanel) {
1046
1081
  $xeDatePicker.hidePanel();
1047
1082
  }
1048
- if ($datePanel) {
1049
- $datePanel.checkValue(inputLabel);
1050
- }
1051
- else {
1052
- $xeDatePicker.afterCheckValue(inputLabel);
1053
- }
1083
+ $xeDatePicker.afterCheckValue(inputLabel);
1054
1084
  if (targetElem) {
1055
1085
  targetElem.blur();
1056
1086
  }
@@ -1106,7 +1136,6 @@ export default {
1106
1136
  const $xeDatePicker = this;
1107
1137
  const reactData = $xeDatePicker.reactData;
1108
1138
  const internalData = $xeDatePicker.internalData;
1109
- const $datePanel = $xeDatePicker.$refs.refDatePanel;
1110
1139
  const { visiblePanel, isActivated } = reactData;
1111
1140
  const el = $xeDatePicker.$refs.refElem;
1112
1141
  const panelWrapperElem = $xeDatePicker.$refs.refPanelWrapper;
@@ -1120,12 +1149,7 @@ export default {
1120
1149
  if (visiblePanel) {
1121
1150
  $xeDatePicker.hidePanel();
1122
1151
  const { inputLabel } = internalData;
1123
- if ($datePanel) {
1124
- $datePanel.checkValue(inputLabel);
1125
- }
1126
- else {
1127
- $xeDatePicker.afterCheckValue(inputLabel);
1128
- }
1152
+ $xeDatePicker.afterCheckValue(inputLabel);
1129
1153
  }
1130
1154
  }
1131
1155
  }
@@ -1169,7 +1193,6 @@ export default {
1169
1193
  const $xeDatePicker = this;
1170
1194
  const reactData = $xeDatePicker.reactData;
1171
1195
  const internalData = $xeDatePicker.internalData;
1172
- const $datePanel = $xeDatePicker.$refs.refDatePanel;
1173
1196
  const { isActivated, visiblePanel } = reactData;
1174
1197
  if (visiblePanel) {
1175
1198
  $xeDatePicker.hidePanel();
@@ -1178,9 +1201,7 @@ export default {
1178
1201
  reactData.isActivated = false;
1179
1202
  }
1180
1203
  if (visiblePanel || isActivated) {
1181
- if ($datePanel) {
1182
- $datePanel.checkValue(internalData.inputLabel);
1183
- }
1204
+ $xeDatePicker.afterCheckValue(internalData.inputLabel);
1184
1205
  const targetElem = $xeDatePicker.$refs.refInputTarget;
1185
1206
  if (targetElem) {
1186
1207
  targetElem.blur();
@@ -1426,6 +1447,8 @@ export default {
1426
1447
  const isDateTimeType = $xeDatePicker.computeIsDateTimeType;
1427
1448
  const shortcutList = $xeDatePicker.computeShortcutList;
1428
1449
  const timeOpts = $xeDatePicker.computeTimeOpts;
1450
+ const dateStartDate = $xeDatePicker.computeDateStartDate;
1451
+ const dateEndDate = $xeDatePicker.computeDateEndDate;
1429
1452
  const { position } = shortcutOpts;
1430
1453
  const headerSlot = slots.header;
1431
1454
  const footerSlot = slots.footer;
@@ -1493,8 +1516,8 @@ export default {
1493
1516
  className: props.className,
1494
1517
  multiple: props.multiple,
1495
1518
  limitCount: props.limitCount,
1496
- startDate: props.startDate,
1497
- endDate: props.endDate,
1519
+ startDate: dateStartDate,
1520
+ endDate: dateEndDate,
1498
1521
  defaultDate: props.defaultDate,
1499
1522
  defaultTime: props.defaultTime,
1500
1523
  minDate: props.minDate,