vxe-pc-ui 3.16.6 → 3.16.8

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 (61) hide show
  1. package/es/cascader/src/cascader.js +66 -24
  2. package/es/cascader/style.css +9 -9
  3. package/es/cascader/style.min.css +1 -1
  4. package/es/date-range-picker/src/date-range-picker.js +25 -9
  5. package/es/icon/style.css +1 -1
  6. package/es/menu/src/menu.js +82 -32
  7. package/es/menu/style.css +16 -7
  8. package/es/menu/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 +3 -3
  12. package/es/ui/src/log.js +1 -1
  13. package/es/vxe-cascader/style.css +9 -9
  14. package/es/vxe-cascader/style.min.css +1 -1
  15. package/es/vxe-menu/style.css +16 -7
  16. package/es/vxe-menu/style.min.css +1 -1
  17. package/lib/cascader/src/cascader.js +89 -29
  18. package/lib/cascader/src/cascader.min.js +1 -1
  19. package/lib/cascader/style/style.css +9 -9
  20. package/lib/cascader/style/style.min.css +1 -1
  21. package/lib/date-range-picker/src/date-range-picker.js +23 -9
  22. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  23. package/lib/icon/style/style.css +1 -1
  24. package/lib/icon/style/style.min.css +1 -1
  25. package/lib/index.umd.js +203 -71
  26. package/lib/index.umd.min.js +1 -1
  27. package/lib/menu/src/menu.js +85 -29
  28. package/lib/menu/src/menu.min.js +1 -1
  29. package/lib/menu/style/style.css +16 -7
  30. package/lib/menu/style/style.min.css +1 -1
  31. package/lib/style.css +1 -1
  32. package/lib/style.min.css +1 -1
  33. package/lib/ui/index.js +3 -3
  34. package/lib/ui/index.min.js +1 -1
  35. package/lib/ui/src/log.js +1 -1
  36. package/lib/ui/src/log.min.js +1 -1
  37. package/lib/vxe-cascader/style/style.css +9 -9
  38. package/lib/vxe-cascader/style/style.min.css +1 -1
  39. package/lib/vxe-menu/style/style.css +16 -7
  40. package/lib/vxe-menu/style/style.min.css +1 -1
  41. package/package.json +1 -1
  42. package/packages/cascader/src/cascader.ts +66 -23
  43. package/packages/date-range-picker/src/date-range-picker.ts +23 -9
  44. package/packages/menu/src/menu.ts +92 -29
  45. package/packages/ui/index.ts +2 -2
  46. package/styles/components/cascader.scss +9 -9
  47. package/styles/components/menu.scss +10 -4
  48. package/types/components/cascader.d.ts +1 -0
  49. package/types/components/menu.d.ts +6 -0
  50. /package/es/icon/{iconfont.1783838609874.ttf → iconfont.1783923648005.ttf} +0 -0
  51. /package/es/icon/{iconfont.1783838609874.woff → iconfont.1783923648005.woff} +0 -0
  52. /package/es/icon/{iconfont.1783838609874.woff2 → iconfont.1783923648005.woff2} +0 -0
  53. /package/es/{iconfont.1783838609874.ttf → iconfont.1783923648005.ttf} +0 -0
  54. /package/es/{iconfont.1783838609874.woff → iconfont.1783923648005.woff} +0 -0
  55. /package/es/{iconfont.1783838609874.woff2 → iconfont.1783923648005.woff2} +0 -0
  56. /package/lib/icon/style/{iconfont.1783838609874.ttf → iconfont.1783923648005.ttf} +0 -0
  57. /package/lib/icon/style/{iconfont.1783838609874.woff → iconfont.1783923648005.woff} +0 -0
  58. /package/lib/icon/style/{iconfont.1783838609874.woff2 → iconfont.1783923648005.woff2} +0 -0
  59. /package/lib/{iconfont.1783838609874.ttf → iconfont.1783923648005.ttf} +0 -0
  60. /package/lib/{iconfont.1783838609874.woff → iconfont.1783923648005.woff} +0 -0
  61. /package/lib/{iconfont.1783838609874.woff2 → iconfont.1783923648005.woff2} +0 -0
@@ -8,6 +8,23 @@ import { createComponentLog } from '../../ui/src/log';
8
8
  import VxeLoadingComponent from '../../loading';
9
9
  const { errLog } = createComponentLog('menu');
10
10
  const { menus, getConfig, getIcon } = VxeUI;
11
+ function createInternalData() {
12
+ return {
13
+ menuEffectMaps: {}
14
+ };
15
+ }
16
+ function createReactData() {
17
+ return {
18
+ initialized: false,
19
+ isEnterCollapse: false,
20
+ collapseStyle: {},
21
+ collapseZindex: 0,
22
+ activeName: '',
23
+ menuList: [],
24
+ itemHeight: 1
25
+ };
26
+ }
27
+ let nemuUniqueKey = 100000000;
11
28
  export default {
12
29
  name: 'VxeMenu',
13
30
  mixins: [
@@ -43,19 +60,8 @@ export default {
43
60
  }
44
61
  },
45
62
  data() {
46
- const reactData = {
47
- initialized: false,
48
- isEnterCollapse: false,
49
- collapseStyle: {},
50
- collapseZindex: 0,
51
- activeName: null,
52
- menuList: [],
53
- itemHeight: 1
54
- };
55
- return {
56
- xID: XEUtils.uniqueId(),
57
- reactData
58
- };
63
+ const reactData = createReactData();
64
+ return Object.assign(Object.assign({}, {}), { xID: XEUtils.uniqueId(), reactData });
59
65
  },
60
66
  computed: Object.assign(Object.assign({}, {}), { computeMenuOpts() {
61
67
  const $xeMenu = this;
@@ -162,7 +168,7 @@ export default {
162
168
  const reactData = $xeMenu.reactData;
163
169
  const { options, expandAll } = props;
164
170
  reactData.menuList = XEUtils.mapTree(options, (item, index, items, path, parent) => {
165
- const objItem = Object.assign(Object.assign({}, item), { parentKey: parent ? (parent.name || path.slice(0, path.length - 1).join(',')) : '', level: path.length, itemKey: item.name || path.join(','), isExactActive: false, isActive: false, isExpand: XEUtils.isBoolean(item.expanded) ? item.expanded : !!expandAll, hasChild: item.children && item.children.length > 0 });
171
+ const objItem = Object.assign(Object.assign({}, item), { parentKey: parent ? (parent.name || path.slice(0, path.length - 1).join(',')) : '', level: path.length, itemId: ++nemuUniqueKey, itemKey: item.name || path.join(','), isExactActive: false, isActive: false, isExpand: XEUtils.isBoolean(item.expanded) ? item.expanded : !!expandAll, hasChild: item.children && item.children.length > 0 });
166
172
  return objItem;
167
173
  }, { children: 'children', mapChildren: 'childList' });
168
174
  },
@@ -221,11 +227,18 @@ export default {
221
227
  handleClickIconCollapse(evnt, item, itemList) {
222
228
  const $xeMenu = this;
223
229
  const props = $xeMenu;
230
+ const internalData = $xeMenu.internalData;
224
231
  const { accordion } = props;
225
- const { hasChild, isExpand } = item;
232
+ const { menuEffectMaps } = internalData;
233
+ const { itemId, hasChild, isExpand } = item;
234
+ const isCollapsed = $xeMenu.computeIsCollapsed;
235
+ const expanded = !isExpand;
226
236
  if (hasChild) {
227
237
  evnt.stopPropagation();
228
238
  evnt.preventDefault();
239
+ if (menuEffectMaps[itemId]) {
240
+ clearTimeout(menuEffectMaps[itemId]);
241
+ }
229
242
  if (accordion) {
230
243
  itemList.forEach(obj => {
231
244
  if (obj !== item) {
@@ -233,7 +246,33 @@ export default {
233
246
  }
234
247
  });
235
248
  }
236
- item.isExpand = !isExpand;
249
+ item.isExpand = expanded;
250
+ const wrapperEl = isCollapsed ? $xeMenu.$refs.refCollapseElem : $xeMenu.$refs.refElem;
251
+ if (wrapperEl) {
252
+ const nemuEl = wrapperEl.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${itemId}"]`);
253
+ const groupEl = nemuEl ? nemuEl.querySelector('.vxe-menu--item-group') : null;
254
+ if (groupEl) {
255
+ if (expanded) {
256
+ groupEl.style.height = '0';
257
+ groupEl.setAttribute('data-effect', 'y');
258
+ requestAnimationFrame(() => {
259
+ groupEl.style.height = `${groupEl.scrollHeight}px`;
260
+ });
261
+ }
262
+ else {
263
+ groupEl.style.height = `${groupEl.scrollHeight}px`;
264
+ groupEl.setAttribute('data-effect', 'y');
265
+ requestAnimationFrame(() => {
266
+ groupEl.style.height = '0';
267
+ });
268
+ }
269
+ menuEffectMaps[itemId] = setTimeout(() => {
270
+ delete menuEffectMaps[itemId];
271
+ groupEl.removeAttribute('data-effect');
272
+ groupEl.style.height = '';
273
+ }, 350);
274
+ }
275
+ }
237
276
  }
238
277
  },
239
278
  handleContextmenuEvent(evnt, item) {
@@ -308,7 +347,7 @@ export default {
308
347
  const $xeMenu = this;
309
348
  const reactData = $xeMenu.reactData;
310
349
  const { collapseStyle } = reactData;
311
- const el = this.$refs.refElem;
350
+ const el = $xeMenu.$refs.refElem;
312
351
  reactData.collapseStyle = Object.assign({}, collapseStyle, {
313
352
  width: el ? toCssUnit(el.offsetWidth) : ''
314
353
  });
@@ -375,7 +414,7 @@ export default {
375
414
  renderDefaultChildren(h, item, itemList) {
376
415
  const $xeMenu = this;
377
416
  const reactData = $xeMenu.reactData;
378
- const { itemKey, level, hasChild, isActive, isExactActive, isExpand, routerLink, childList } = item;
417
+ const { itemId, itemKey, level, hasChild, isActive, isExactActive, isExpand, routerLink, childList } = item;
379
418
  const { isEnterCollapse } = reactData;
380
419
  const isCollapsed = $xeMenu.computeIsCollapsed;
381
420
  if (item.permissionCode) {
@@ -389,7 +428,10 @@ export default {
389
428
  'is--exact-active': isExactActive,
390
429
  'is--active': isActive,
391
430
  'is--expand': (!isCollapsed || isEnterCollapse) && isExpand
392
- }]
431
+ }],
432
+ attrs: {
433
+ 'data-menu-id': itemId
434
+ }
393
435
  }, [
394
436
  routerLink
395
437
  ? h('router-link', {
@@ -427,7 +469,7 @@ export default {
427
469
  },
428
470
  renderCollapseChildren(h, item, itemList) {
429
471
  const $xeMenu = this;
430
- const { itemKey, level, hasChild, isActive, isExactActive, routerLink, childList } = item;
472
+ const { itemId, itemKey, level, hasChild, isActive, isExactActive, routerLink, childList } = item;
431
473
  if (item.permissionCode) {
432
474
  if (!permission.checkVisible(item.permissionCode)) {
433
475
  return renderEmptyElement($xeMenu);
@@ -438,7 +480,10 @@ export default {
438
480
  class: ['vxe-menu--item-wrapper', `vxe-menu--item-level${level}`, {
439
481
  'is--exact-active': isExactActive,
440
482
  'is--active': isActive
441
- }]
483
+ }],
484
+ attrs: {
485
+ 'data-menu-id': itemId
486
+ }
442
487
  }, [
443
488
  routerLink
444
489
  ? h('router-link', {
@@ -552,6 +597,16 @@ export default {
552
597
  $xeMenu.handleCollapseMenu();
553
598
  }
554
599
  },
600
+ created() {
601
+ const $xeMenu = this;
602
+ const props = $xeMenu;
603
+ $xeMenu.internalData = createInternalData();
604
+ const reactData = $xeMenu.reactData;
605
+ reactData.initialized = !!props.collapsed;
606
+ reactData.activeName = props.value;
607
+ $xeMenu.updateMenuConfig();
608
+ $xeMenu.updateActiveMenu(true);
609
+ },
555
610
  mounted() {
556
611
  const $xeMenu = this;
557
612
  const props = $xeMenu;
@@ -560,12 +615,13 @@ export default {
560
615
  if (menuConfig && !VxeUIContextMenu) {
561
616
  errLog('vxe.error.reqComp', ['vxe-context-menu']);
562
617
  }
563
- globalEvents.on($xeMenu, 'resize', $xeMenu.updateCollapseStyle);
564
618
  $xeMenu.updateCollapseStyle();
619
+ globalEvents.on($xeMenu, 'resize', $xeMenu.updateCollapseStyle);
565
620
  },
566
621
  beforeDestroy() {
567
622
  const $xeMenu = this;
568
- globalEvents.off($xeMenu, 'resize');
623
+ const reactData = $xeMenu.reactData;
624
+ const internalData = $xeMenu.internalData;
569
625
  const collapseEl = $xeMenu.$refs.refCollapseElem;
570
626
  if (collapseEl) {
571
627
  const parentNode = collapseEl.parentNode;
@@ -573,15 +629,9 @@ export default {
573
629
  parentNode.removeChild(collapseEl);
574
630
  }
575
631
  }
576
- },
577
- created() {
578
- const $xeMenu = this;
579
- const props = $xeMenu;
580
- const reactData = $xeMenu.reactData;
581
- reactData.initialized = !!props.collapsed;
582
- reactData.activeName = props.value;
583
- $xeMenu.updateMenuConfig();
584
- $xeMenu.updateActiveMenu(true);
632
+ globalEvents.off($xeMenu, 'resize');
633
+ XEUtils.assign(reactData, createReactData());
634
+ XEUtils.assign(internalData, createInternalData());
585
635
  },
586
636
  render(h) {
587
637
  return this.renderVN(h);
package/es/menu/style.css CHANGED
@@ -1,16 +1,20 @@
1
- .vxe-menu {
1
+ .vxe-menu,
2
+ .vxe-menu--collapse-wrapper {
2
3
  --vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-default);
3
4
  --vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-default);
4
5
  }
5
- .vxe-menu.size--medium {
6
+ .vxe-menu.size--medium,
7
+ .vxe-menu--collapse-wrapper.size--medium {
6
8
  --vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-medium);
7
9
  --vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-medium);
8
10
  }
9
- .vxe-menu.size--small {
11
+ .vxe-menu.size--small,
12
+ .vxe-menu--collapse-wrapper.size--small {
10
13
  --vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-small);
11
14
  --vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-small);
12
15
  }
13
- .vxe-menu.size--mini {
16
+ .vxe-menu.size--mini,
17
+ .vxe-menu--collapse-wrapper.size--mini {
14
18
  --vxe-ui-menu-current-font-size: var(--vxe-ui-font-size-mini);
15
19
  --vxe-ui-menu-current-item-height: var(--vxe-ui-menu-item-height-mini);
16
20
  }
@@ -27,7 +31,8 @@
27
31
  min-height: 4em;
28
32
  }
29
33
 
30
- .vxe-menu {
34
+ .vxe-menu,
35
+ .vxe-menu--collapse-wrapper {
31
36
  font-size: var(--vxe-ui-menu-current-font-size);
32
37
  color: var(--vxe-ui-font-color);
33
38
  font-family: var(--vxe-ui-font-family);
@@ -125,7 +130,11 @@
125
130
  }
126
131
 
127
132
  .vxe-menu--item-group {
128
- display: none;
133
+ height: 0;
134
+ overflow: hidden;
135
+ }
136
+ .vxe-menu--item-group[data-effect] {
137
+ transition: height 0.3s ease-in-out;
129
138
  }
130
139
 
131
140
  .vxe-menu--item-wrapper.is--active > .vxe-menu--item-link {
@@ -136,5 +145,5 @@
136
145
  background-color: var(--vxe-ui-base-active-background-color);
137
146
  }
138
147
  .vxe-menu--item-wrapper.is--expand > .vxe-menu--item-group {
139
- display: block;
148
+ height: auto;
140
149
  }
@@ -1 +1 @@
1
- .vxe-menu{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-default)}.vxe-menu.size--medium{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-medium)}.vxe-menu.size--small{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-small)}.vxe-menu.size--mini{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-mini)}.vxe-menu{position:relative}.vxe-menu.is--collapsed .vxe-menu--item-custom-title,.vxe-menu.is--collapsed .vxe-menu--item-link-collapse,.vxe-menu.is--collapsed .vxe-menu--item-link-title{display:none}.vxe-menu.is--loading{min-height:4em}.vxe-menu{font-size:var(--vxe-ui-menu-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper{display:none;position:absolute;overflow:auto;background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper.is--collapsed{display:block;transition:all .25s ease-in-out}.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-custom-title,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-collapse,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-title{display:none}.vxe-menu--collapse-wrapper.is--enter{box-shadow:var(--vxe-ui-menu-collapse-wrapper-box-shadow)}.vxe-menu--item-link{display:flex;flex-direction:row;align-items:center;height:var(--vxe-ui-menu-current-item-height);color:var(--vxe-ui-font-color);text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-menu--item-link:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-menu--item-custom-title,.vxe-menu--item-link,.vxe-menu--item-link-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-menu--item-link-icon{flex-shrink:0;width:var(--vxe-ui-menu-icon-width);text-align:center}.vxe-menu--item-custom-title,.vxe-menu--item-link-title{flex-grow:1;padding-left:.2em}.vxe-menu--item-link-collapse{flex-shrink:0;padding:.5em}.vxe-menu--item-link-collapse i{display:inline-block;font-size:.8em;transition:transform .25s ease-in-out}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double)}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 1)}.vxe-menu--item-wrapper.vxe-menu--item-level2>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 2)}.vxe-menu--item-wrapper.vxe-menu--item-level3>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 3)}.vxe-menu--item-wrapper.vxe-menu--item-level4>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 4)}.vxe-menu--item-wrapper.vxe-menu--item-level5>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 5)}.vxe-menu--item-wrapper.vxe-menu--item-level6>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 6)}.vxe-menu--item-wrapper.vxe-menu--item-level7>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 7)}.vxe-menu--item-group{display:none}.vxe-menu--item-wrapper.is--active>.vxe-menu--item-link{font-weight:700}.vxe-menu--item-wrapper.is--exact-active>.vxe-menu--item-link{color:var(--vxe-ui-font-primary-color);background-color:var(--vxe-ui-base-active-background-color)}.vxe-menu--item-wrapper.is--expand>.vxe-menu--item-group{display:block}
1
+ .vxe-menu,.vxe-menu--collapse-wrapper{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-default)}.vxe-menu--collapse-wrapper.size--medium,.vxe-menu.size--medium{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-medium)}.vxe-menu--collapse-wrapper.size--small,.vxe-menu.size--small{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-small)}.vxe-menu--collapse-wrapper.size--mini,.vxe-menu.size--mini{--vxe-ui-menu-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-menu-current-item-height:var(--vxe-ui-menu-item-height-mini)}.vxe-menu{position:relative}.vxe-menu.is--collapsed .vxe-menu--item-custom-title,.vxe-menu.is--collapsed .vxe-menu--item-link-collapse,.vxe-menu.is--collapsed .vxe-menu--item-link-title{display:none}.vxe-menu.is--loading{min-height:4em}.vxe-menu,.vxe-menu--collapse-wrapper{font-size:var(--vxe-ui-menu-current-font-size);color:var(--vxe-ui-font-color);font-family:var(--vxe-ui-font-family);background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper{display:none;position:absolute;overflow:auto;background-color:var(--vxe-ui-layout-background-color)}.vxe-menu--collapse-wrapper.is--collapsed{display:block;transition:all .25s ease-in-out}.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-custom-title,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-collapse,.vxe-menu--collapse-wrapper:not(.is--enter) .vxe-menu--item-link-title{display:none}.vxe-menu--collapse-wrapper.is--enter{box-shadow:var(--vxe-ui-menu-collapse-wrapper-box-shadow)}.vxe-menu--item-link{display:flex;flex-direction:row;align-items:center;height:var(--vxe-ui-menu-current-item-height);color:var(--vxe-ui-font-color);text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-menu--item-link:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-menu--item-custom-title,.vxe-menu--item-link,.vxe-menu--item-link-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-menu--item-link-icon{flex-shrink:0;width:var(--vxe-ui-menu-icon-width);text-align:center}.vxe-menu--item-custom-title,.vxe-menu--item-link-title{flex-grow:1;padding-left:.2em}.vxe-menu--item-link-collapse{flex-shrink:0;padding:.5em}.vxe-menu--item-link-collapse i{display:inline-block;font-size:.8em;transition:transform .25s ease-in-out}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double)}.vxe-menu--item-wrapper.vxe-menu--item-level1>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 1)}.vxe-menu--item-wrapper.vxe-menu--item-level2>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 2)}.vxe-menu--item-wrapper.vxe-menu--item-level3>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 3)}.vxe-menu--item-wrapper.vxe-menu--item-level4>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 4)}.vxe-menu--item-wrapper.vxe-menu--item-level5>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 5)}.vxe-menu--item-wrapper.vxe-menu--item-level6>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 6)}.vxe-menu--item-wrapper.vxe-menu--item-level7>.vxe-menu--item-link{padding:0 var(--vxe-ui-layout-padding-double) 0 calc(var(--vxe-ui-layout-padding-double) * 7)}.vxe-menu--item-group{height:0;overflow:hidden}.vxe-menu--item-group[data-effect]{transition:height .3s ease-in-out}.vxe-menu--item-wrapper.is--active>.vxe-menu--item-link{font-weight:700}.vxe-menu--item-wrapper.is--exact-active>.vxe-menu--item-link{color:var(--vxe-ui-font-primary-color);background-color:var(--vxe-ui-base-active-background-color)}.vxe-menu--item-wrapper.is--expand>.vxe-menu--item-group{height:auto}