vxe-pc-ui 4.5.1 → 4.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +2 -0
  2. package/es/icon/style.css +1 -1
  3. package/es/list/src/list.js +3 -2
  4. package/es/print/src/util.js +2 -1
  5. package/es/split/src/split-item.js +16 -0
  6. package/es/split/src/split.js +220 -53
  7. package/es/split/style.css +82 -13
  8. package/es/split/style.min.css +1 -1
  9. package/es/style.css +1 -1
  10. package/es/style.min.css +1 -1
  11. package/es/ui/index.js +7 -2
  12. package/es/ui/src/dom.js +0 -1
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-split/style.css +82 -13
  15. package/es/vxe-split/style.min.css +1 -1
  16. package/lib/icon/style/style.css +1 -1
  17. package/lib/icon/style/style.min.css +1 -1
  18. package/lib/index.umd.js +294 -53
  19. package/lib/index.umd.min.js +1 -1
  20. package/lib/list/src/list.js +2 -1
  21. package/lib/list/src/list.min.js +1 -1
  22. package/lib/print/src/util.js +2 -1
  23. package/lib/print/src/util.min.js +1 -1
  24. package/lib/split/src/split-item.js +16 -0
  25. package/lib/split/src/split-item.min.js +1 -1
  26. package/lib/split/src/split.js +265 -47
  27. package/lib/split/src/split.min.js +1 -1
  28. package/lib/split/style/style.css +82 -13
  29. package/lib/split/style/style.min.css +1 -1
  30. package/lib/style.css +1 -1
  31. package/lib/style.min.css +1 -1
  32. package/lib/ui/index.js +7 -2
  33. package/lib/ui/index.min.js +1 -1
  34. package/lib/ui/src/dom.js +0 -2
  35. package/lib/ui/src/dom.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/lib/vxe-split/style/style.css +82 -13
  39. package/lib/vxe-split/style/style.min.css +1 -1
  40. package/package.json +1 -1
  41. package/packages/list/src/list.ts +4 -2
  42. package/packages/print/src/util.ts +3 -1
  43. package/packages/split/src/split-item.ts +18 -0
  44. package/packages/split/src/split.ts +230 -52
  45. package/packages/ui/index.ts +7 -1
  46. package/packages/ui/src/dom.ts +0 -2
  47. package/styles/components/split.scss +105 -12
  48. package/types/components/split-item.d.ts +5 -1
  49. package/types/components/split.d.ts +88 -1
  50. package/types/ui/global-icon.d.ts +6 -0
  51. /package/es/icon/{iconfont.1743051559265.ttf → iconfont.1743080348682.ttf} +0 -0
  52. /package/es/icon/{iconfont.1743051559265.woff → iconfont.1743080348682.woff} +0 -0
  53. /package/es/icon/{iconfont.1743051559265.woff2 → iconfont.1743080348682.woff2} +0 -0
  54. /package/es/{iconfont.1743051559265.ttf → iconfont.1743080348682.ttf} +0 -0
  55. /package/es/{iconfont.1743051559265.woff → iconfont.1743080348682.woff} +0 -0
  56. /package/es/{iconfont.1743051559265.woff2 → iconfont.1743080348682.woff2} +0 -0
  57. /package/lib/icon/style/{iconfont.1743051559265.ttf → iconfont.1743080348682.ttf} +0 -0
  58. /package/lib/icon/style/{iconfont.1743051559265.woff → iconfont.1743080348682.woff} +0 -0
  59. /package/lib/icon/style/{iconfont.1743051559265.woff2 → iconfont.1743080348682.woff2} +0 -0
  60. /package/lib/{iconfont.1743051559265.ttf → iconfont.1743080348682.ttf} +0 -0
  61. /package/lib/{iconfont.1743051559265.woff → iconfont.1743080348682.woff} +0 -0
  62. /package/lib/{iconfont.1743051559265.woff2 → iconfont.1743080348682.woff2} +0 -0
@@ -1,5 +1,5 @@
1
- import { defineComponent, ref, h, reactive, provide, computed, watch, nextTick, onMounted, onActivated } from 'vue';
2
- import { getConfig, createEvent, renderEmptyElement } from '../../ui';
1
+ import { defineComponent, ref, h, reactive, provide, computed, watch, nextTick, onMounted, onUnmounted, onActivated } from 'vue';
2
+ import { getConfig, getIcon, createEvent, globalEvents, renderEmptyElement } from '../../ui';
3
3
  import { getSlotVNs } from '../../ui/src/vn';
4
4
  import { toCssUnit, isScale, addClass, removeClass } from '../../ui/src/dom';
5
5
  import { getGlobalDefaultConfig } from '../../ui/src/utils';
@@ -17,9 +17,21 @@ export default defineComponent({
17
17
  type: Boolean,
18
18
  default: () => getConfig().split.border
19
19
  },
20
- itemConfig: Object
20
+ padding: {
21
+ type: Boolean,
22
+ default: () => getConfig().split.padding
23
+ },
24
+ itemConfig: Object,
25
+ barConfig: Object,
26
+ actionConfig: Object
21
27
  },
22
- emits: [],
28
+ emits: [
29
+ 'action-dblclick',
30
+ 'action-click',
31
+ 'resize-start',
32
+ 'resize-drag',
33
+ 'resize-end'
34
+ ],
23
35
  setup(props, context) {
24
36
  const { emit, slots } = context;
25
37
  const xID = XEUtils.uniqueId();
@@ -31,8 +43,33 @@ export default defineComponent({
31
43
  const computeItemOpts = computed(() => {
32
44
  return Object.assign({}, getConfig().split.itemConfig, props.itemConfig);
33
45
  });
46
+ const computeBarOpts = computed(() => {
47
+ return Object.assign({}, getConfig().split.barConfig, props.barConfig);
48
+ });
49
+ const computeActionOpts = computed(() => {
50
+ return Object.assign({}, getConfig().split.actionConfig, props.actionConfig);
51
+ });
52
+ const computeIsFoldNext = computed(() => {
53
+ const actionOpts = computeActionOpts.value;
54
+ return actionOpts.direction === 'next';
55
+ });
56
+ const computeBarStyle = computed(() => {
57
+ const barOpts = computeBarOpts.value;
58
+ const { width, height } = barOpts;
59
+ const stys = {};
60
+ if (height) {
61
+ stys.height = toCssUnit(height);
62
+ }
63
+ if (width) {
64
+ stys.width = toCssUnit(width);
65
+ }
66
+ return stys;
67
+ });
34
68
  const computeMaps = {
35
- computeItemOpts
69
+ computeItemOpts,
70
+ computeBarOpts,
71
+ computeActionOpts,
72
+ computeIsFoldNext
36
73
  };
37
74
  const refMaps = {
38
75
  refElem
@@ -60,6 +97,38 @@ export default defineComponent({
60
97
  }
61
98
  return [];
62
99
  };
100
+ const getDefaultActionIcon = (item) => {
101
+ const { vertical } = props;
102
+ const { showAction, isExpand } = item;
103
+ const isFoldNext = computeIsFoldNext.value;
104
+ const topIcon = 'SPLIT_TOP_ACTION';
105
+ const bottomIcon = 'SPLIT_BOTTOM_ACTION';
106
+ const leftIcon = 'SPLIT_LEFT_ACTION';
107
+ const rightIcon = 'SPLIT_RIGHT_ACTION';
108
+ if (showAction) {
109
+ let iconName = '';
110
+ if (isFoldNext) {
111
+ if (vertical) {
112
+ iconName = isExpand ? bottomIcon : topIcon;
113
+ }
114
+ else {
115
+ iconName = isExpand ? rightIcon : leftIcon;
116
+ }
117
+ }
118
+ else {
119
+ if (vertical) {
120
+ iconName = isExpand ? topIcon : bottomIcon;
121
+ }
122
+ else {
123
+ iconName = isExpand ? leftIcon : rightIcon;
124
+ }
125
+ }
126
+ if (iconName) {
127
+ return getIcon()[iconName];
128
+ }
129
+ }
130
+ return '';
131
+ };
63
132
  const recalculate = () => {
64
133
  return nextTick().then(() => {
65
134
  const { vertical } = props;
@@ -135,80 +204,137 @@ export default defineComponent({
135
204
  evnt.preventDefault();
136
205
  const { vertical } = props;
137
206
  const { staticItems } = reactData;
138
- const handleEl = evnt.currentTarget;
207
+ const barEl = evnt.currentTarget;
208
+ const handleEl = barEl.parentElement;
139
209
  const el = refElem.value;
140
210
  if (!el) {
141
211
  return;
142
212
  }
143
- const itemId = handleEl.getAttribute('xid');
213
+ const itemId = handleEl.getAttribute('itemid');
144
214
  const itemIndex = XEUtils.findIndexOf(staticItems, item => item.id === itemId);
145
215
  const item = staticItems[itemIndex];
146
216
  if (!item) {
147
217
  return;
148
218
  }
219
+ if (!item.isExpand) {
220
+ return;
221
+ }
222
+ const isFoldNext = computeIsFoldNext.value;
149
223
  const itemOpts = computeItemOpts.value;
150
224
  const allMinWidth = XEUtils.toNumber(itemOpts.minWidth);
151
225
  const allMinHeight = XEUtils.toNumber(itemOpts.minHeight);
152
- const prevItem = staticItems[itemIndex - 1];
153
- const prevItemEl = prevItem ? el.querySelector(`.vxe-split-item[xid="${prevItem.id}"]`) : null;
154
- const currItemEl = item ? el.querySelector(`.vxe-split-item[xid="${item.id}"]`) : null;
155
- const prevWidth = prevItemEl ? prevItemEl.clientWidth : 0;
226
+ const targetItem = staticItems[itemIndex + (isFoldNext ? 1 : -1)];
227
+ const targetItemEl = targetItem ? el.querySelector(`.vxe-split-item[itemid="${targetItem.id}"]`) : null;
228
+ const currItemEl = item ? el.querySelector(`.vxe-split-item[itemid="${item.id}"]`) : null;
229
+ const targetWidth = targetItemEl ? targetItemEl.clientWidth : 0;
156
230
  const currWidth = currItemEl ? currItemEl.clientWidth : 0;
157
- const prevHeight = prevItemEl ? prevItemEl.clientHeight : 0;
231
+ const targetHeight = targetItemEl ? targetItemEl.clientHeight : 0;
158
232
  const currHeight = currItemEl ? currItemEl.clientHeight : 0;
159
- const prevMinWidth = XEUtils.toNumber(prevItem ? getGlobalDefaultConfig(prevItem.minWidth, allMinWidth) : allMinWidth);
233
+ const targetMinWidth = XEUtils.toNumber(targetItem ? getGlobalDefaultConfig(targetItem.minWidth, allMinWidth) : allMinWidth);
160
234
  const currMinWidth = XEUtils.toNumber(getGlobalDefaultConfig(item.minWidth, allMinWidth));
161
- const prevMinHeight = XEUtils.toNumber(prevItem ? getGlobalDefaultConfig(prevItem.minHeight, allMinHeight) : allMinHeight);
235
+ const targetMinHeight = XEUtils.toNumber(targetItem ? getGlobalDefaultConfig(targetItem.minHeight, allMinHeight) : allMinHeight);
162
236
  const currMinHeight = XEUtils.toNumber(getGlobalDefaultConfig(item.minHeight, allMinHeight));
163
237
  const disX = evnt.clientX;
164
238
  const disY = evnt.clientY;
165
239
  addClass(el, 'is--drag');
166
- document.onmousemove = evnt => {
240
+ document.onmousemove = (evnt) => {
167
241
  evnt.preventDefault();
168
242
  if (vertical) {
169
- const offsetTop = evnt.clientY - disY;
243
+ const offsetTop = isFoldNext ? (disY - evnt.clientY) : (evnt.clientY - disY);
170
244
  if (offsetTop > 0) {
171
- if (prevItem) {
245
+ if (targetItem) {
172
246
  if (currHeight - offsetTop >= currMinHeight) {
173
- prevItem.renderHeight = prevHeight + offsetTop;
174
- item.renderHeight = currHeight - offsetTop;
247
+ const reHeight = currHeight - offsetTop;
248
+ targetItem.resizeHeight = targetHeight + offsetTop;
249
+ item.resizeHeight = reHeight;
250
+ dispatchEvent('resize-drag', { item, name: item.name, offsetHeight: offsetTop, resizeHeight: reHeight, offsetWidth: 0, resizeWidth: 0 }, evnt);
175
251
  }
176
252
  }
177
253
  }
178
254
  else {
179
- if (prevItem) {
180
- if (prevHeight + offsetTop >= prevMinHeight) {
181
- prevItem.renderHeight = prevHeight + offsetTop;
182
- item.renderHeight = currHeight - offsetTop;
255
+ if (targetItem) {
256
+ if (targetHeight + offsetTop >= targetMinHeight) {
257
+ const reHeight = currHeight - offsetTop;
258
+ targetItem.resizeHeight = targetHeight + offsetTop;
259
+ item.resizeHeight = reHeight;
260
+ dispatchEvent('resize-drag', { item, name: item.name, offsetHeight: offsetTop, resizeHeight: reHeight, offsetWidth: 0, resizeWidth: 0 }, evnt);
183
261
  }
184
262
  }
185
263
  }
186
264
  }
187
265
  else {
188
- const offsetLeft = evnt.clientX - disX;
266
+ const offsetLeft = isFoldNext ? (disX - evnt.clientX) : (evnt.clientX - disX);
189
267
  if (offsetLeft > 0) {
190
- if (prevItem) {
268
+ if (targetItem) {
191
269
  if (currWidth - offsetLeft >= currMinWidth) {
192
- prevItem.renderWidth = prevWidth + offsetLeft;
193
- item.renderWidth = currWidth - offsetLeft;
270
+ const reWidth = currWidth - offsetLeft;
271
+ targetItem.resizeWidth = targetWidth + offsetLeft;
272
+ item.resizeWidth = reWidth;
273
+ dispatchEvent('resize-drag', { item, name: item.name, offsetHeight: 0, resizeHeight: 0, offsetWidth: offsetLeft, resizeWidth: reWidth }, evnt);
194
274
  }
195
275
  }
196
276
  }
197
277
  else {
198
- if (prevItem) {
199
- if (prevWidth + offsetLeft >= prevMinWidth) {
200
- prevItem.renderWidth = prevWidth + offsetLeft;
201
- item.renderWidth = currWidth - offsetLeft;
278
+ if (targetItem) {
279
+ if (targetWidth + offsetLeft >= targetMinWidth) {
280
+ const reWidth = currWidth - offsetLeft;
281
+ targetItem.resizeWidth = targetWidth + offsetLeft;
282
+ item.resizeWidth = reWidth;
283
+ dispatchEvent('resize-drag', { item, name: item.name, offsetHeight: 0, resizeHeight: 0, offsetWidth: offsetLeft, resizeWidth: reWidth }, evnt);
202
284
  }
203
285
  }
204
286
  }
205
287
  }
206
288
  };
207
- document.onmouseup = () => {
289
+ document.onmouseup = (evnt) => {
208
290
  document.onmousemove = null;
209
291
  document.onmouseup = null;
210
292
  removeClass(el, 'is--drag');
293
+ dispatchEvent('resize-end', { item, name: item.name, resizeHeight: item.resizeHeight, resizeWidth: item.resizeWidth }, evnt);
211
294
  };
295
+ dispatchEvent('resize-start', { item, name: item.name }, evnt);
296
+ };
297
+ const handleItemActionEvent = (evnt) => {
298
+ const el = refElem.value;
299
+ if (!el) {
300
+ return;
301
+ }
302
+ const { vertical } = props;
303
+ const { staticItems } = reactData;
304
+ const isFoldNext = computeIsFoldNext.value;
305
+ const btnEl = evnt.currentTarget;
306
+ const handleEl = btnEl.parentElement;
307
+ const itemId = handleEl.getAttribute('itemid');
308
+ const itemIndex = XEUtils.findIndexOf(staticItems, item => item.id === itemId);
309
+ const item = staticItems[itemIndex];
310
+ const targetItem = staticItems[itemIndex + (isFoldNext ? 1 : -1)];
311
+ if (item) {
312
+ const { showAction, isExpand } = item;
313
+ if (showAction) {
314
+ if (vertical) {
315
+ if (targetItem) {
316
+ targetItem.isVisible = !isExpand;
317
+ targetItem.foldHeight = 0;
318
+ item.isExpand = !isExpand;
319
+ item.isVisible = true;
320
+ item.foldHeight = isExpand ? (targetItem.resizeHeight || targetItem.renderHeight) + (item.resizeHeight || item.renderHeight) : 0;
321
+ }
322
+ }
323
+ else {
324
+ if (targetItem) {
325
+ targetItem.isVisible = !isExpand;
326
+ targetItem.foldWidth = 0;
327
+ item.isExpand = !isExpand;
328
+ item.isVisible = true;
329
+ item.foldWidth = isExpand ? (targetItem.resizeWidth || targetItem.renderWidth) + (item.resizeWidth || item.renderWidth) : 0;
330
+ }
331
+ }
332
+ dispatchEvent(evnt.type === 'dblclick' ? 'action-dblclick' : 'action-click', { item, name: item.name, targetItem, targetName: targetItem ? targetItem.name : '', expanded: item.isExpand }, evnt);
333
+ }
334
+ }
335
+ };
336
+ const handleGlobalResizeEvent = () => {
337
+ recalculate();
212
338
  };
213
339
  const splitMethods = {
214
340
  dispatchEvent,
@@ -216,46 +342,81 @@ export default defineComponent({
216
342
  };
217
343
  const splitPrivateMethods = {};
218
344
  Object.assign($xeSplit, splitMethods, splitPrivateMethods);
345
+ const renderHandleBar = (item) => {
346
+ const barStyle = computeBarStyle.value;
347
+ const actionOpts = computeActionOpts.value;
348
+ const isFoldNext = computeIsFoldNext.value;
349
+ const { id, isExpand, showAction } = item;
350
+ const btnOns = {};
351
+ if (actionOpts.trigger === 'dblclick') {
352
+ btnOns.onDblclick = handleItemActionEvent;
353
+ }
354
+ else {
355
+ btnOns.onClick = handleItemActionEvent;
356
+ }
357
+ return h('div', {
358
+ itemid: id,
359
+ class: ['vxe-split-item-handle', isFoldNext ? 'to--next' : 'to--prev']
360
+ }, [
361
+ h('div', {
362
+ class: 'vxe-split-item-handle-bar',
363
+ style: barStyle,
364
+ onMousedown: dragEvent
365
+ }),
366
+ showAction
367
+ ? h('span', Object.assign({ class: 'vxe-split-item-action-btn' }, btnOns), [
368
+ h('i', {
369
+ class: (isExpand ? actionOpts.openIcon : actionOpts.closeIcon) || getDefaultActionIcon(item)
370
+ })
371
+ ])
372
+ : renderEmptyElement($xeSplit)
373
+ ]);
374
+ };
219
375
  const renderItems = () => {
220
- const { border, vertical } = props;
376
+ const { border, padding, vertical } = props;
221
377
  const { staticItems } = reactData;
378
+ const isFoldNext = computeIsFoldNext.value;
222
379
  const itemVNs = [];
223
380
  staticItems.forEach((item, index) => {
224
- const { id, slots, renderHeight, renderWidth } = item;
381
+ const { id, slots, renderHeight, resizeHeight, foldHeight, renderWidth, resizeWidth, foldWidth, isVisible, isExpand } = item;
225
382
  const defaultSlot = slots ? slots.default : null;
226
383
  const stys = {};
384
+ const itemWidth = isVisible ? (foldWidth || resizeWidth || renderWidth) : 0;
385
+ const itemHeight = isVisible ? (foldHeight || resizeHeight || renderHeight) : 0;
227
386
  if (vertical) {
228
- if (renderHeight) {
229
- stys.height = toCssUnit(renderHeight);
387
+ if (itemHeight) {
388
+ stys.height = toCssUnit(itemHeight);
230
389
  }
231
390
  }
232
391
  else {
233
- if (renderWidth) {
234
- stys.width = toCssUnit(renderWidth);
392
+ if (itemWidth) {
393
+ stys.width = toCssUnit(itemWidth);
235
394
  }
236
395
  }
237
396
  itemVNs.push(h('div', {
238
- xid: id,
397
+ itemid: id,
239
398
  class: ['vxe-split-item', vertical ? 'is--vertical' : 'is--horizontal', {
399
+ 'is--padding': padding,
240
400
  'is--border': border,
241
- 'is--height': renderHeight,
242
- 'is--width': renderWidth,
243
- 'is--fill': !renderHeight && !renderWidth,
244
- 'is--handle': index > 0
401
+ 'is--height': itemHeight,
402
+ 'is--width': itemWidth,
403
+ 'is--fill': isVisible && !itemHeight && !itemWidth,
404
+ 'is--handle': index > 0,
405
+ 'is--expand': isExpand,
406
+ 'is--hidden': !isVisible
245
407
  }],
246
408
  style: stys
247
409
  }, [
248
- index
249
- ? h('div', {
250
- xid: id,
251
- class: 'vxe-split-item-handle',
252
- onMousedown: dragEvent
253
- })
254
- : renderEmptyElement($xeSplit),
410
+ index && !isFoldNext ? renderHandleBar(item) : renderEmptyElement($xeSplit),
255
411
  h('div', {
256
- xid: id,
412
+ itemid: id,
257
413
  class: 'vxe-split-item--wrapper'
258
- }, defaultSlot ? callSlot(defaultSlot, {}) : [])
414
+ }, [
415
+ h('div', {
416
+ class: 'vxe-split-item--inner'
417
+ }, defaultSlot ? callSlot(defaultSlot, {}) : [])
418
+ ]),
419
+ isFoldNext && index < staticItems.length - 1 ? renderHandleBar(item) : renderEmptyElement($xeSplit)
259
420
  ]));
260
421
  });
261
422
  return h('div', {
@@ -287,7 +448,13 @@ export default defineComponent({
287
448
  recalculate();
288
449
  });
289
450
  onMounted(() => {
290
- recalculate();
451
+ nextTick(() => {
452
+ recalculate();
453
+ });
454
+ globalEvents.on($xeSplit, 'resize', handleGlobalResizeEvent);
455
+ });
456
+ onUnmounted(() => {
457
+ globalEvents.off($xeSplit, 'resize');
291
458
  });
292
459
  onActivated(() => {
293
460
  recalculate();
@@ -32,34 +32,54 @@
32
32
  }
33
33
 
34
34
  .vxe-split-item-handle {
35
+ position: relative;
35
36
  flex-shrink: 0;
36
- background-color: var(--vxe-split-handle-bar-background-color);
37
37
  -webkit-user-select: none;
38
38
  -moz-user-select: none;
39
39
  user-select: none;
40
40
  }
41
- .vxe-split-item-handle:hover {
42
- background-color: var(--vxe-ui-font-primary-lighten-color);
43
- }
44
- .vxe-split-item-handle:active {
45
- background-color: var(--vxe-ui-font-primary-darken-color);
46
- }
47
41
 
48
42
  .vxe-split-item--wrapper {
49
43
  position: relative;
50
44
  word-break: break-word;
51
- overflow: auto;
45
+ overflow: hidden;
52
46
  flex-grow: 1;
53
47
  }
54
- .vxe-split-item--wrapper > .vxe-split {
48
+
49
+ .vxe-split-item--inner {
50
+ height: 100%;
51
+ width: 100%;
52
+ overflow: auto;
53
+ }
54
+ .vxe-split-item--inner > .vxe-split {
55
55
  height: 100%;
56
56
  }
57
57
 
58
+ .vxe-split-item-handle-bar {
59
+ background-color: var(--vxe-split-handle-bar-background-color);
60
+ }
61
+
62
+ .vxe-split-item-action-btn {
63
+ display: block;
64
+ position: absolute;
65
+ z-index: 2;
66
+ cursor: pointer;
67
+ background-color: var(--vxe-ui-layout-background-color);
68
+ border: 1px solid var(--vxe-ui-input-border-color);
69
+ transition: transform 0.1s ease-in-out;
70
+ }
71
+
58
72
  .vxe-split-item {
59
73
  display: flex;
60
74
  position: relative;
61
75
  overflow: auto;
62
76
  }
77
+ .vxe-split-item.is--hidden {
78
+ width: 0;
79
+ }
80
+ .vxe-split-item.is--padding > .vxe-split-item--wrapper {
81
+ padding: var(--vxe-ui-layout-padding-default);
82
+ }
63
83
  .vxe-split-item.is--fill {
64
84
  flex-grow: 1;
65
85
  }
@@ -69,12 +89,44 @@
69
89
  .vxe-split-item.is--border > .vxe-split-item--wrapper, .vxe-split-item.is--border > .vxe-split-item-handle {
70
90
  border: 1px solid var(--vxe-ui-base-popup-border-color);
71
91
  }
92
+ .vxe-split-item.is--expand.is--horizontal > .vxe-split-item-handle .vxe-split-item-handle-bar {
93
+ cursor: w-resize;
94
+ }
95
+ .vxe-split-item.is--expand.is--vertical > .vxe-split-item-handle .vxe-split-item-handle-bar {
96
+ cursor: n-resize;
97
+ }
98
+ .vxe-split-item.is--expand > .vxe-split-item-handle > .vxe-split-item-handle-bar {
99
+ background-color: var(--vxe-split-handle-bar-background-color);
100
+ }
101
+ .vxe-split-item.is--expand > .vxe-split-item-handle > .vxe-split-item-handle-bar:hover {
102
+ background-color: var(--vxe-ui-font-primary-lighten-color);
103
+ }
104
+ .vxe-split-item.is--expand > .vxe-split-item-handle > .vxe-split-item-handle-bar:active {
105
+ background-color: var(--vxe-ui-font-primary-darken-color);
106
+ }
72
107
  .vxe-split-item.is--horizontal {
73
108
  flex-direction: row;
74
109
  }
75
- .vxe-split-item.is--horizontal > .vxe-split-item-handle {
110
+ .vxe-split-item.is--horizontal > .vxe-split-item-handle.to--prev .vxe-split-item-action-btn {
111
+ left: 0;
112
+ }
113
+ .vxe-split-item.is--horizontal > .vxe-split-item-handle.to--next .vxe-split-item-action-btn {
114
+ right: 0;
115
+ }
116
+ .vxe-split-item.is--horizontal > .vxe-split-item-handle .vxe-split-item-handle-bar {
76
117
  width: var(--vxe-split-handle-bar-width);
77
- cursor: w-resize;
118
+ height: 100%;
119
+ }
120
+ .vxe-split-item.is--horizontal > .vxe-split-item-handle .vxe-split-item-action-btn {
121
+ top: 50%;
122
+ transform: translateY(-50%);
123
+ padding: 1em 0;
124
+ }
125
+ .vxe-split-item.is--horizontal > .vxe-split-item-handle .vxe-split-item-action-btn:hover {
126
+ color: var(--vxe-ui-font-primary-color);
127
+ }
128
+ .vxe-split-item.is--horizontal > .vxe-split-item-handle .vxe-split-item-action-btn:active {
129
+ transform: translateY(-50%) scale(0.9);
78
130
  }
79
131
  .vxe-split-item.is--horizontal.is--border > .vxe-split-item-handle {
80
132
  border-width: 1px 0 1px 0;
@@ -82,9 +134,26 @@
82
134
  .vxe-split-item.is--vertical {
83
135
  flex-direction: column;
84
136
  }
85
- .vxe-split-item.is--vertical > .vxe-split-item-handle {
137
+ .vxe-split-item.is--vertical > .vxe-split-item-handle.to--prev .vxe-split-item-action-btn {
138
+ top: 0;
139
+ }
140
+ .vxe-split-item.is--vertical > .vxe-split-item-handle.to--next .vxe-split-item-action-btn {
141
+ bottom: 0;
142
+ }
143
+ .vxe-split-item.is--vertical > .vxe-split-item-handle .vxe-split-item-handle-bar {
86
144
  height: var(--vxe-split-handle-bar-height);
87
- cursor: n-resize;
145
+ width: 100%;
146
+ }
147
+ .vxe-split-item.is--vertical > .vxe-split-item-handle .vxe-split-item-action-btn {
148
+ left: 50%;
149
+ transform: translateX(-50%);
150
+ padding: 0 1em;
151
+ }
152
+ .vxe-split-item.is--vertical > .vxe-split-item-handle .vxe-split-item-action-btn:hover {
153
+ color: var(--vxe-ui-font-primary-color);
154
+ }
155
+ .vxe-split-item.is--vertical > .vxe-split-item-handle .vxe-split-item-action-btn:active {
156
+ transform: translateX(-50%) scale(0.9);
88
157
  }
89
158
  .vxe-split-item.is--vertical.is--border > .vxe-split-item-handle {
90
159
  border-width: 0 1px 0 1px;
@@ -1 +1 @@
1
- .vxe-split.is--vertical>.vxe-split-wrapper{flex-direction:column}.vxe-split.is--vertical>.vxe-split-wrapper>.vxe-split-item{width:100%}.vxe-split.is--drag{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-split.is--drag>.vxe-split-wrapper>.vxe-split-item>.vxe-split-item--wrapper::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:0 0}.vxe-split-wrapper{height:100%;display:flex;flex-direction:row;overflow:hidden}.vxe-split-slots{display:none}.vxe-split-item-handle{flex-shrink:0;background-color:var(--vxe-split-handle-bar-background-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-split-item-handle:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-split-item-handle:active{background-color:var(--vxe-ui-font-primary-darken-color)}.vxe-split-item--wrapper{position:relative;word-break:break-word;overflow:auto;flex-grow:1}.vxe-split-item--wrapper>.vxe-split{height:100%}.vxe-split-item{display:flex;position:relative;overflow:auto}.vxe-split-item.is--fill{flex-grow:1}.vxe-split-item.is--height,.vxe-split-item.is--width{flex-shrink:0}.vxe-split-item.is--border>.vxe-split-item--wrapper,.vxe-split-item.is--border>.vxe-split-item-handle{border:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-split-item.is--horizontal{flex-direction:row}.vxe-split-item.is--horizontal>.vxe-split-item-handle{width:var(--vxe-split-handle-bar-width);cursor:w-resize}.vxe-split-item.is--horizontal.is--border>.vxe-split-item-handle{border-width:1px 0 1px 0}.vxe-split-item.is--vertical{flex-direction:column}.vxe-split-item.is--vertical>.vxe-split-item-handle{height:var(--vxe-split-handle-bar-height);cursor:n-resize}.vxe-split-item.is--vertical.is--border>.vxe-split-item-handle{border-width:0 1px 0 1px}
1
+ .vxe-split.is--vertical>.vxe-split-wrapper{flex-direction:column}.vxe-split.is--vertical>.vxe-split-wrapper>.vxe-split-item{width:100%}.vxe-split.is--drag{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-split.is--drag>.vxe-split-wrapper>.vxe-split-item>.vxe-split-item--wrapper::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:0 0}.vxe-split-wrapper{height:100%;display:flex;flex-direction:row;overflow:hidden}.vxe-split-slots{display:none}.vxe-split-item-handle{position:relative;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-split-item--wrapper{position:relative;word-break:break-word;overflow:hidden;flex-grow:1}.vxe-split-item--inner{height:100%;width:100%;overflow:auto}.vxe-split-item--inner>.vxe-split{height:100%}.vxe-split-item-handle-bar{background-color:var(--vxe-split-handle-bar-background-color)}.vxe-split-item-action-btn{display:block;position:absolute;z-index:2;cursor:pointer;background-color:var(--vxe-ui-layout-background-color);border:1px solid var(--vxe-ui-input-border-color);transition:transform .1s ease-in-out}.vxe-split-item{display:flex;position:relative;overflow:auto}.vxe-split-item.is--hidden{width:0}.vxe-split-item.is--padding>.vxe-split-item--wrapper{padding:var(--vxe-ui-layout-padding-default)}.vxe-split-item.is--fill{flex-grow:1}.vxe-split-item.is--height,.vxe-split-item.is--width{flex-shrink:0}.vxe-split-item.is--border>.vxe-split-item--wrapper,.vxe-split-item.is--border>.vxe-split-item-handle{border:1px solid var(--vxe-ui-base-popup-border-color)}.vxe-split-item.is--expand.is--horizontal>.vxe-split-item-handle .vxe-split-item-handle-bar{cursor:w-resize}.vxe-split-item.is--expand.is--vertical>.vxe-split-item-handle .vxe-split-item-handle-bar{cursor:n-resize}.vxe-split-item.is--expand>.vxe-split-item-handle>.vxe-split-item-handle-bar{background-color:var(--vxe-split-handle-bar-background-color)}.vxe-split-item.is--expand>.vxe-split-item-handle>.vxe-split-item-handle-bar:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-split-item.is--expand>.vxe-split-item-handle>.vxe-split-item-handle-bar:active{background-color:var(--vxe-ui-font-primary-darken-color)}.vxe-split-item.is--horizontal{flex-direction:row}.vxe-split-item.is--horizontal>.vxe-split-item-handle.to--prev .vxe-split-item-action-btn{left:0}.vxe-split-item.is--horizontal>.vxe-split-item-handle.to--next .vxe-split-item-action-btn{right:0}.vxe-split-item.is--horizontal>.vxe-split-item-handle .vxe-split-item-handle-bar{width:var(--vxe-split-handle-bar-width);height:100%}.vxe-split-item.is--horizontal>.vxe-split-item-handle .vxe-split-item-action-btn{top:50%;transform:translateY(-50%);padding:1em 0}.vxe-split-item.is--horizontal>.vxe-split-item-handle .vxe-split-item-action-btn:hover{color:var(--vxe-ui-font-primary-color)}.vxe-split-item.is--horizontal>.vxe-split-item-handle .vxe-split-item-action-btn:active{transform:translateY(-50%) scale(.9)}.vxe-split-item.is--horizontal.is--border>.vxe-split-item-handle{border-width:1px 0 1px 0}.vxe-split-item.is--vertical{flex-direction:column}.vxe-split-item.is--vertical>.vxe-split-item-handle.to--prev .vxe-split-item-action-btn{top:0}.vxe-split-item.is--vertical>.vxe-split-item-handle.to--next .vxe-split-item-action-btn{bottom:0}.vxe-split-item.is--vertical>.vxe-split-item-handle .vxe-split-item-handle-bar{height:var(--vxe-split-handle-bar-height);width:100%}.vxe-split-item.is--vertical>.vxe-split-item-handle .vxe-split-item-action-btn{left:50%;transform:translateX(-50%);padding:0 1em}.vxe-split-item.is--vertical>.vxe-split-item-handle .vxe-split-item-action-btn:hover{color:var(--vxe-ui-font-primary-color)}.vxe-split-item.is--vertical>.vxe-split-item-handle .vxe-split-item-action-btn:active{transform:translateX(-50%) scale(.9)}.vxe-split-item.is--vertical.is--border>.vxe-split-item-handle{border-width:0 1px 0 1px}