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